Skip to content
Mì AI Mì AI Mì AI

Học AI theo cách Mì ăn liền!

Mì AI Mì AI Mì AI

Học AI theo cách Mì ăn liền!

  • Trang chủ
  • Kênh Youtube
  • Facebook Group
  • Nói về chủ tiệm Mì
  • Trang chủ
  • Kênh Youtube
  • Facebook Group
  • Nói về chủ tiệm Mì
Close

Search

  • Trang chủ
  • Kênh Youtube
  • Facebook Group
  • Nói về chủ tiệm Mì
Mì AI Mì AI Mì AI

Học AI theo cách Mì ăn liền!

Mì AI Mì AI Mì AI

Học AI theo cách Mì ăn liền!

  • Trang chủ
  • Kênh Youtube
  • Facebook Group
  • Nói về chủ tiệm Mì
  • Trang chủ
  • Kênh Youtube
  • Facebook Group
  • Nói về chủ tiệm Mì
Close

Search

  • Trang chủ
  • Kênh Youtube
  • Facebook Group
  • Nói về chủ tiệm Mì
Computer Vision

[Yolo Series] #2 – Cách train Yolo để detect các object đặc thù

By Chủ tiệm Mì
August 9, 2019 9 Min Read
67

Xin chào các bạn, chúng ta lại cùng tìm hiểu tiếp về Yolo với cách train YOLO nhé. Trong bài trước, mình đã hướng dẫn các bác sử dụng Yolo để phát hiện các đối tượng trong ảnh tại đây: http://miai.vn/2019/08/05/yolo-series-1-su-dung-yolo-de-nhan-dang-doi-tuong-trong-anh/

Tuy nhiên có một vấn đề như này, model mặc định của Yolo chỉ được train trên 80 đối tượng như: hoa, lá, xe máy, oto, xe bus…. nên nếu bạn muốn phát hiện các đối tượng đặc thù như: súng ống, đạn dược… thì sẽ không thể làm được.

Hôm nay mình sẽ chỉ các bạn từng bước để có thể train model nhận dạng các đối tượng đặc thù theo nhu cầu riêng. Ví dụ hôm nay mình sẽ chọn nhận dạng SÚNG NGẮN nhé. Quên mất, máy mình là máy MacOS nên mình sẽ guide dựa trên đó, trên window hơi khác tý, các bạn cần thì comment mình sẽ guide thêm.

Chúng ta cần làm những gì?

Để train được cho Yolo nhận diện các đối tượng đặc thù theo yêu cầu, cúng ta sẽ cần làm các bước lớn sau.

  1. Tải source code Darknet – Yolo về máy tính, chỉnh tham số và tiến hành biên dịch (make) source code đó ra file thực thi tùy theo hệ điều hành (window thì là exe, macos với linux thì file bash thì phải, tóm lại là file chạy được)
  2. Chuẩn bị dữ liệu train: Hình ảnh của đối tượng bạn định train. Ví dụ như bài này là súng ngắn.
  3. Gán nhãn cho dữ liệu: Cụ thể là với từng ảnh trong dữ liệu, chúng ta sẽ gán nhãn cho máy biết đâu là đối tượng cần nhận dạng bằng cách vẽ một hình chữ nhật xung quanh đối tượng đó. Cái này có tool nhé.
  4. Tạo các file cần thiết để phục vụ quá trình train, chỉnh sửa tham số train trong file cấu hình Yolo.
  5. Chạy lệnh train và ngồi uống cafe đợi.
  6. Tận hưởng thành quả bằng cách detect thử một ảnh sample.

Bước 1. Tải source Darknet về máy

Đầu tiên các bạn tạo thư mục MiAI_Yolo_2 trên máy tính tại đâu nào tùy bạn nhé. Chúng ta sẽ chuyển vào và làm việc trong thư mục này.

Trên Command Prompt hoặc Terminal hãy chuyển vào thư mục MiAI_Yolo_2 bằnh lệnh cd MiAI_Yolo_2, sau đó gõ lệnh:

git clone https://github.com/pjreddie/darknet

Sau khi đợi vài phút, trong thư mục MiAI_Yolo_2 sẽ có thêm thư mục darknet với 1 mớ folder bên trong, như vậy là tải thành công rồi. Bây giờ chúng ta sẽ chuyển sang bước biên dịch (make). Ở bước này, đầu tiên bạn mở file Makefile trong thư mục darknet và lưu ý 2 dòng sau:

# dòng GPU bên dưới để là 1 nếu máy bạn có GPU, ngược lại để 0
GPU=0 
# dòng OPENCV để 1 nếu bạn muốn dùng thư viện OpenCV 
OPENCV=0

Mình thì hay để OpenCV=1 để mở nhiều kiểu file ảnh hơn (nếu bị lỗi thì các bạn cứ để OPENCV=0 cũng okie vì mấy khi mở các file ảnh khù khoằm đâu).

Update: Bạn Bùi Lộc có góp thêm idea là nếu để opencv=1 bị lỗi thì gõ lệnh:

SUDO APT-GET INSTALL LIBOPENCV-DEV

Xong, bây giờ bạn lưu lại file Makefile và gõ tiếp lệnh:

make

Sau đó ngồi đợi cho máy chạy xong, nếu không có báo lỗi gì là thành công, chuyển sang bước sau.

Chú ý: Nếu gõ make bị lỗi thì làm như sau: (cách nhanh gọn nhé, chi tiết có nhiều cách nhưng ko mì ăn liền được)

  • Trên window thì cài :Visual Studio 2017 (chẳng hạn)
  • Trên macos thì cài: XCode bản mới nhất

Gõ thêm đoạn này:

export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib:/usr/local/cudnn/lib
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

Bước 2. Chuẩn bị dữ liệu train

Dữ liệu train thì các bạn collect trên internet hoặc từ bất cứ nguồn nào bạn có sẵn. Càng nhiều càng tốt và ảnh nên tính bằng đơn vị nghìn cho model ngon lành hơn nhé. Ví dụ về súng ngắn, các bạn có thể tìm bài mình chia sẻ về ảnh súng tại Thư viện Mì AI: https://miai.vn/thu-vien-mi-ai nhé!

Sau khi có dữ liệu, bạn hãy vào thư mục darknet/data và tạo folder images. Copy tât cả các ảnh bạn dùng để train vào thư mục images.

Tiếp đó quay ra xóa toàn bộ file trong thư mục darknet/data/labels (nếu có file, nếu không có thư mục labels thì tạo ra nhé) và chuyển sang bước 3.

Bước 3. Gán nhãn cho dữ liệu

Để gán nhãn cho dữ liệu, chúng ta sẽ sử dụng một công cụ có sẵn là LabelImg tại đây https://github.com/tzutalin/labelImg.

Các bạn hãy mở Terminal hay Command Promt, chuyển vào thư mục darknet (nếu đang ở thư mục khác) và chạy lệnh:

git clone https://github.com/tzutalin/labelImg

Lại ngồi đợi tý nhé, món này tải hơi lâu. Sau khi chạy xong thì sẽ có một thư mục labelImg được tạo ra trong thư mục darknet, ta chuyển vào trong đó bằng lệnh cd lblImg.

Bây giờ bạn mở link https://github.com/tzutalin/labelImg và kéo xuống phần Installation để xem cách cài đặt các thư viện với từng OS cho chi tiết nhé. Nhưng tóm lại , đại khái là chạy 2 lệnh:

# lệnh cài đặt thư viện pyqt5 (GUI) và lxml
pip install pyqt5 lxml
# lệnh chạy biên dịch mã nguồn thư viện
make qt5py3

Sau khi chạy xong thì mở ứng dụng labelImg bằng lệnh:

python labelImg.py

Một giao diện sẽ hiển thị lên như sau:

Trong đó:

  • Bạn chọn Open Dir và trỏ vào thư mục images đã tạo ở trên để load các ảnh.
  • Bạn chọn Change Save Dir và trỏ vào thư mục labels ở trên, để lưu file gán nhãn.
  • Chú ý chọn để cho format là Yolo chứ ko phải là Pascal VOC nhé.

Rồi bây giờ bạn cứ duyệt qua từng file ảnh, chọn Creat Rectbox để vẽ hình chữ nhật quanh vật thể và gắn nhãn cho nó là gun. Vì chúng ta đang train súng nên để vậy, còn bạn train món khác thì thay bằng tên khác. Nhớ nhấn Command +S (hoặc Ctrl +S nếu là window) để lưu lại thao tác gán nhãn với từng file ảnh nhé! Chú ý đây là với cách train YOLO này, nhiều model YOLO biến thể khác sẽ có cách khác.

Bước 4. Chuẩn bị các file cần thiết phục vụ quá trình train dữ liệu

Trong bước này, với cách train YOLO của mình, chúng ta sẽ cần làm việc với 06 file như sau:

  • yolo.data
  • yolo.names
  • train.txt
  • val.txt
  • yolov3.cfg
  • darknet53.conv.74

Chúng ta sẽ đi cụ thể vào từng file như sau:

Đầu tiên là file yolo.names là tên các đối tượng bạn sẽ định nhận dạng. Ví dụ: hoa, súng, oto, xe máy….mỗi tên một dòng. Trong lần này mình chỉ train duy nhất 1 đối tượng là SÚNG NGẮN nên file này mình chỉ để một dòng là GUN. Bạn phải tự tạo ra file này và lưu trong thư mục /darknet/

Tiếp theo là tạo ra 2 file train.txt và val.txt. File train sẽ chứa danh sách các file ảnh sẽ sử dụng để train và tương tự file val.txt sẽ chứa danh sách các file ảnh đẻ thực hiện validation cho model. Thông thường chia ngẫu nhiên theo tỷ lệ 80/20 nghĩa là 80% dữ liệu dành cho train và 20% dữ liệu dành cho val. Tất nhiên tùy các bạn nhé. File train.txt và val.txt sẽ để mỗi ảnh một dòng. Ví dụ:

data/images/sung01.png
data/images/sung_gold.png
data/images/sung_black.png
data/images/sung_2233.png
....

Hai file train và val này cũng lưu trong thư mục /darknet/ luôn.

Giờ ta tiếp tục với file yolo.data, file này sẽ gồm 5 dòng (các phần comment tiếng Việt các bạn phải bỏ đi khi tạo file nhé, mình viết vào để các bạn hiểu thôi):

classses = 1 # Số lượng class, ở đây chỉ có 1 đối tượng lên classes=1
train = train.txt # trỏ đến file train của ta thôi
valid = val.txt # trỏ đến file val của ta
names = yolo.names # trỏ đến file names làm bên trên
backup = backup # là đường dẫn sẽ lưu các file weights trong quá trình train

Done, save lại file này vào thư mục /darknet/ và đi đến file tiếp theo. Mở file yolov3.cfg (trong thư mục /darknet/cfg/) và sửa các dòng như sau:

  • Dòng 7, nếu máy bạn nhiều RAM/GPU VRAM thì để nguyên, còn không thì sửa số 8 thành 16 nhé.
  • Dòng 603, sửa lại thành filters=18 (số 18 tính bằng các lấy số (class + 5)*3 nhé. Ví dụ sau bạn train có 2 class thì sẽ là (2+5)*3 = 21.
  • Dòng 610, sửa lại thành classses=1 (hoặc bằng số nào đó khác nếu bạn train nhiều hơn 1 class)
  • Dòng 689 và 776, sửa giống dòng 603
  • Dòng 696 và 783, sửa giống dòng 610

Ok save file yolov3.cfg lại. Đi tiếp đến file cuối cùng nào. File darket53.conv.74, file này thì các bạn tải tại đây https://pjreddie.com/media/files/darknet53.conv.74 và để vào thư mục darknet/

Done. Sang bước 5 nhé.

Bước 5. Tiến hành train model

Chuyển ra thư mục darknet. Nếu bạn dùng MacOS hay Linux thì chạy lệnh sau để biến file darknet thành file executable nhé:

chmod +x darknet

Tiếp tục mở file cfg/yolov3.cfg và tới dòng 20 sửa max_batches=900000 (to hơn cũng được) để cho hệ thống chạy nhé, nếu không train sẽ không chạy.

Update:Chú ý thêm 1 cái nữa là mặc định thì darknet sẽ save weight theo thuật toán như sau (với cách train YOLO này nhé):

  • Dưới 1000 vòng lặp, save weights mỗi 100 vòng.
  • Trên 1000 vòng lặp, save weights mỗi 10,000 vòng.

Mình thấy thế hơi lâu vì mình thì chỉ train tầm 5,000-6,000 là cùng. Vì vậy các bạn mở file /darknet/examples/detector.c, tìm đến dòng 138 và sửa lại theo ý thích. Ví dụ

if(i%2000==0 || (i < 1000 && i%100 == 0)){

Sửa như trên có nghĩa là nếu dưới 1000 vòng lặp thì save weight mỗi 100 vòng còn lại thì save weights mỗi 2000 vòng lặp nhé. Sau khi sửa xong bạn phải thực hiện biên dịch, make lại như đã làm ở bước 1 nhé.

Rồi, cuối cùng chạy lệnh để train nào:

./darknet detector train yolo.data cfg/yolov3.cfg darknet53.conv.74

Nếu mọi thứ thành công, bạn sẽ nhìn thấy màn hình dạng như sau. Còn nếu có lỗi thì các bạn đọc để sửa, vướng đâu thì comment nhé.

Nguồn: https://user-images.githubusercontent.com/

Nếu train bị lỗi, các bạn có thể tham khảo post này: https://miai.vn/2019/11/05/tong-hop-phuong-an-khac-phuc-loi-khi-train-yolo/ để tìm cách khắc phục hoặc post lên group nhé Group trao đổi, chia sẻ: https://facebook.com/groups/miaigroup .

Bước 6. Kiểm thử quá trình train bằng cách detect thử 1 ảnh

Trong quá trình train YOLO, bạn để ý 2 tham số loss và avg loss, nếu thấy nó bão hòa và không thay đổi nhiều nữa thì có thể stop lại quá trình train.

Sau khi train xong bạn sẽ thấy các file weight lưu ở folder backup nhé. Ví dụ: yolov3_900.weights, yolov3.backup… bạn dùng file nào mới nhất ấy. Ví dụ mình dùng yolov3.backup đi.

Các bạn kiếm thử một ảnh sample nào đó tương đồng một chút với dữ liệu train nói trên nhé (khác quá là ko nhận ra được đâu, vì nó được dạy như nào thì biết thế mà 😀 ). Ví dụ kiếm 1 file tên là sung_test.png đi, ta sẽ sử dụng file YOLO.py đã tải về ở Bài 1 (https://miai.vn/2019/08/05/yolo-series-1-su-dung-yolo-de-nhan-dang-doi-tuong-trong-anh/) để kiểm thử bằng cách chạy lệnh:

python YOLO.py -i sung_test.jpg -cl yolo.names -w backup/yolov3.backup -c cfg/yolov3.cfg

Nếu mọi thứ okie thì bạn sẽ nhận được ảnh có vật thể được nhận dạng kiểu như này :

Như vậy các bạn đã biết cách train YOLO và bước đầu tự làm chủ được Yolov3 rồi đó.Nếu có lỗi gì, vướng gì về cách train YOLO thì các bạn comment, mình sẽ giải đáp nhé. Chúc các bạn thành công.

Tags:

aidarknetdeep learningmachine learningobject detectionpythontrainYolo
Author

Chủ tiệm Mì

Follow Me
Other Articles
Previous

[Computer Vision] Chia sẻ dữ liệu ảnh súng và dao để train model

Next

[Face Recognize] Thử làm hệ thống chấm công bằng nhận dạng khuôn mặt

67 Comments
  1. Tùng Trần says:
    August 12, 2019 at 5:49 am

    ‘.’ is not recognized as an internal or external command,
    operable program or batch file.

    em bị lỗi này là ntn ạ

    Reply
    1. Nguyễn Chiến Thắng says:
      August 12, 2019 at 6:23 am

      Em dùng trên Window ah? Có gì chat với anh qua facebook cho nhanh nhé. Face anh là : http://fb.me/thangnch

      Reply
      1. Hung Tan says:
        September 9, 2019 at 10:46 pm

        Anh cho em hỏi sao em làm y hệt mà vẫn lỗi.?

        Reply
        1. Nguyễn Chiến Thắng says:
          September 9, 2019 at 10:48 pm

          Em up lên group cho tiện nhé.

          Group trao đổi, chia sẻ: https://www.facebook.com/groups/miaigroup

          Reply
  2. Tùng Trần says:
    August 12, 2019 at 10:04 am

    fb báo : không thể xử lý yêu cầu ạ

    Reply
    1. Nguyễn Chiến Thắng says:
      August 12, 2019 at 10:44 am

      Bạn vào lại link này nhé: https://www.facebook.com/thangnch

      Reply
      1. Tùng Trần says:
        August 13, 2019 at 2:46 am

        e ib rồi ạ

        Reply
  3. [YOLO Series] Cách train Yolo trên Google Colab – Mì AI says:
    August 15, 2019 at 6:03 am

    […] [Yolo Series] #2 – Cách train Yolo để detect các object đặc thù […]

    Reply
  4. Phạm Việt Anh says:
    August 16, 2019 at 1:59 am

    fillters = (1 + 5) * 3 nhé anh

    Reply
    1. Nguyễn Chiến Thắng says:
      August 16, 2019 at 2:01 am

      Đã sửa rồi. Thanks em, typing dài nên đôi lúc bị sai!

      Reply
  5. Lưu Thanh Ngân says:
    August 17, 2019 at 9:02 am

    Em chạy make bị lỗi
    Lỗi là
    process_begin: CreateProcess(NULL, chmod +x *.sh, …) failed.
    make (e=2): The system cannot find the file specified.
    make: *** [Makefile:161: setchmod] Error 2
    Lỗi này xử lý thế nào ạ?

    Reply
    1. Nguyễn Chiến Thắng says:
      August 17, 2019 at 9:18 am

      Em chụp ảnh xong post vào group nhìn cho dễ nhé.
      Các bạn trong group cũng hỗ trợ em luôn.

      Link đây nhé: Group trao đổi, chia sẻ: https://www.facebook.com/groups/miaigroup

      Reply
  6. HamHocHoi says:
    August 24, 2019 at 4:50 pm

    Cái ảnh trong data súng bác đánh label và bounding box hết chưa? Nếu có sẵn thì cho mình xịn với.

    Reply
    1. Nguyễn Chiến Thắng says:
      August 25, 2019 at 2:32 am

      Thanks bạn quan tâm. Mình có gán nhãn hết rồi nhưng vì hỏng máy nên toàn bộ data đã bay hết. Chưa kịp up lên để share cùng cả nhà. Mình đang tìm trên cloud mà chưa ra.

      #MìAI
      Fanpage: http://facebook.com/miaiblog
      Group trao đổi, chia sẻ: https://www.facebook.com/groups/miaigroup
      Website: https://miai.vn
      Youtube: http://bit.ly/miaiyoutube

      Reply
  7. [YOLO Series] Train và detect sử dụng YOLO model trên Windows – Mì AI says:
    August 25, 2019 at 2:16 am

    […] phần này, các bạn có thể tham khảo bài viết Số 2 – https://miai.vn/2019/08/09/yolo-series-2-cach-train-yolo-de-detect-cac-object-dac-thu/ , Bươc 2 và Bước 3 nhé. Chỉ khác một chút là các bạn nhấn Change Save Dir và […]

    Reply
  8. [YOLO Series] Thử làm hệ thống chống khủng bố – Gun Detection – Mì AI says:
    August 26, 2019 at 2:33 am

    […] [Yolo Series] #2 – Cách train Yolo để detect các object đặc thù [YOLO Series] Cách train Yolo trên Google Colab [YOLO Series] Train và detect sử dụng YOLO model trên Windows […]

    Reply
  9. Hieu Nguyen says:
    September 4, 2019 at 2:54 pm

    Anh ơi lệnh make ở bước 1 là mình gõ lệnh ở đâu vậy anh

    Reply
    1. Nguyễn Chiến Thắng says:
      September 4, 2019 at 4:09 pm

      Gõ trong folder darknet trên terminal hoặc command prompt em nhé.

      Em post lên group cho tiện trao đổi nhé!

      Group trao đổi, chia sẻ: https://www.facebook.com/groups/miaigroup

      Reply
      1. Hieu Nguyen says:
        September 6, 2019 at 1:18 pm

        nó báo lỗi ‘make’ is not recognized as an internal or external command,
        operable program or batch file. trong khi e cài visual studio 2019 rồi a

        Reply
        1. Hoang Khai says:
          September 9, 2019 at 7:36 pm

          Chào bạn, mình cũng bị lỗi tương tự vậy, bạn đã fix được chưa ? Hướng dẫn mình với ạ

          Reply
          1. Nguyễn Chiến Thắng says:
            September 9, 2019 at 10:38 pm

            Bạn lên group Mì AI nhé. Các lỗi này hầu hết fix đc rồi.

            Group trao đổi, chia sẻ: https://www.facebook.com/groups/miaigroup

  10. Nam Vu says:
    September 6, 2019 at 10:18 am

    Resizing
    448
    terminate called after throwing an instance of ‘std::out_of_range’
    what(): basic_string::substr: __pos (which is 140) > this->size() (which is 0)
    Aborted (core dumped)
    ———————————————————–
    Khi bắt đầu quá trình trên em bị lỗi này và chưa biết fix thế nào!
    Anh có biết nguyên nhân do ddaaau không ạ?

    Reply
    1. Nguyễn Chiến Thắng says:
      September 6, 2019 at 11:16 am

      Em post lên group cho tiện nhé!

      Reply
  11. Nam Vu says:
    September 6, 2019 at 12:15 pm

    Em fix được rồi ạ.
    Em đang train hơn 100 imgs dùng cho nhận diện silense plate.
    model chạy hơn 1 tiếng rồi mà chưa có dấu hiệu dừng lại!!! Em đang dùng CPU.

    Reply
    1. Nguyễn Chiến Thắng says:
      September 6, 2019 at 12:55 pm

      Yeah! Em theo dõi loss nếu ko thấy giảm thêm thì dừng bằng Ctrl C nhé!

      Reply
    2. Hoàng Ng says:
      October 17, 2019 at 1:28 am

      Fix lỗi này thế nào vậy bạn?

      Reply
      1. Nguyễn Chiến Thắng says:
        October 18, 2019 at 1:48 am

        Lỗi gì bạn nhỉ?

        Reply
  12. Computer Vision & Pi – Chương 4. Train model Tiny YOLOv3 để xem có đưa lên Pi được không? - Mì AI says:
    March 2, 2020 at 3:38 am

    […] khái cách train mình đã có bài rất chi tiết rồi, các bạn có thể tìm lại tại đây. Mình chỉ đi sâu vào phần chỉnh sửa file yolov3-tiny.cfg vì nó khác đôi chút […]

    Reply
  13. mạnh says:
    March 27, 2020 at 3:48 am

    chỗ chạy lệnh làm sao để tắt ảnh đang chạy để chạy ảnh khác vậy anh ?

    Reply
    1. Nguyễn Chiến Thắng says:
      March 27, 2020 at 2:24 pm

      Nghĩa là như nào nhỉ? Em post lên group Group trao đổi, chia sẻ: https://facebook.com/groups/miaigroup trao đổi cho tiện nha.

      Reply
      1. mạnh says:
        March 28, 2020 at 6:15 am

        chỗ chạy lệnh cmd á anh, lúc e test thử bằng lệnh python YOLO.py -i imgTEst/2.jpg -cl yolo.names -w backup/yolov3_900.weights -c cfg/yolov3.cfg nó ra YOLO Execution time: 0.13503623008728027 nó chạy ok nhưng cứ nhấp nháy mãi chỗ đó
        làm sao để chạy ảnh khác ạ,

        Reply
  14. khuong says:
    April 10, 2020 at 10:20 am

    Ảnh lỗi rồi ad

    Reply
    1. Nguyễn Chiến Thắng says:
      April 12, 2020 at 3:04 am

      Thanks bạn. Mình sẽ fix luôn.

      Reply
  15. Kim says:
    April 20, 2020 at 9:20 am

    Cho em hỏi là e không tìm thấy file YOLO.py trong thư mục darknet ạ, hay trong thư mục darknet thay bằng file khác vậy a
    >python YOLO.py -i data/images/armas.jpg -cl yolo.names -w backup/yolov3_2000.weights -c cfg/yolov3.cfg
    python: can’t open file ‘YOLO.py’: [Errno 2] No such file or directory

    Reply
    1. Nguyễn Chiến Thắng says:
      April 21, 2020 at 3:20 am

      Em thử chụp ảnh màn hình post lên group cho dễ theo dõi và trả lời nhé: Group trao đổi, chia sẻ: https://facebook.com/groups/miaigroup

      Reply
  16. quốc đạt says:
    May 15, 2020 at 10:51 am

    anh có thể guide cho em cách chạy trên window được không ạ?

    Reply
    1. Nguyễn Chiến Thắng says:
      May 17, 2020 at 4:01 pm

      Em có thể tham gia Group trao đổi, chia sẻ: https://facebook.com/groups/miaigroup
      Em post bài trên đó rồi anh sẽ guide nhé!

      Reply
  17. [YOLO Series] Train YOLO v4 train trên COLAB chi tiết và đẩy đủ (A-Z) - Mì AI says:
    May 25, 2020 at 4:28 am

    […] [Yolo Series] #2 – Cách train Yolo để detect các object đặc thù […]

    Reply
  18. Pham Phuc says:
    June 7, 2020 at 5:23 pm

    hi anh Thắng ạ.
    Em đã train được nhưng đến phần kiểm tra thì nó chỉ hiện ra cái hình test với dòng YOLO Execution time: 0.1477370262145996
    Nhưng ko hiện ra hình kèm những box như trong link bài [YOLO Series] #1 ạ.
    Em cảm ơn anh!

    Reply
    1. Nguyễn Chiến Thắng says:
      June 8, 2020 at 8:42 am

      Em chụp màn hình và up lên group Group trao đổi, chia sẻ: https://facebook.com/groups/miaigroup cho tiện trao đổi hơn nhé!

      Reply
  19. Nguyễn Tiến Hoàng says:
    July 20, 2020 at 11:21 am

    Chào ad ạ
    Em muốn train cho sdd thì cách làm có giống không ạ????

    Reply
    1. Nguyễn Chiến Thắng says:
      July 21, 2020 at 1:38 am

      Same same em ah. Nhưng nó sẽ khác 1 chút. Anh sẽ có bài cho SSD sau nhé!

      Reply
  20. sh111894 says:
    September 9, 2020 at 7:19 am

    Cho em hỏi chút là 2 tham số loss và avg loss mình có thể nhìn thấy ở đâu được ạ?

    Reply
  21. Hướng dẫn training Object detection với YOLOv4 sử dụng Google Colab. – DevAI says:
    December 16, 2020 at 2:20 pm

    […] [Yolo Series] #2 – Cách train Yolo để detect các object đặc thù […]

    Reply
  22. Quang says:
    March 30, 2021 at 1:00 am

    là sao để mở Makefile ạ

    Reply
    1. Nguyễn Chiến Thắng says:
      March 30, 2021 at 7:38 am

      Bạn cứ mở ra thôi. Cần thêm gì bạn post lên Group: https://www.facebook.com/groups/miaigroup nhé!

      Reply
  23. Lê Minh says:
    April 7, 2021 at 10:12 am

    darknet detector train yolo.data cfg/yolov3.cfg darknet53.conv.74
    cho em hỏi là lúc em chạy lệnh này mà nó ra lỗi: First section must be [net] or [network]: Invalid argument
    darknet: ./src/utils.c:256: error: Assertion `0′ failed.
    là như thế nào ạ 🙁

    Reply
    1. Nguyễn Chiến Thắng says:
      April 9, 2021 at 9:21 am

      Ban post lên nhóm cho tiện trao đổi nhé!

      Reply
  24. Lê Minh says:
    April 23, 2021 at 10:48 am

    anh cho em hỏi thêm về tham số max_batch trong MakeFile được không ạ?
    tại em nghe anh nói thì em vẫn ko biết nó để làm gì, có phải để càng cao là số batch nó lấy cho 1 lần train là càng nhiều hay không? và nếu lấy max_batch vượt quá số lượng dataset thì có bị gì ko?

    Reply
    1. Nguyễn Chiến Thắng says:
      April 24, 2021 at 8:50 am

      Max_batch là số lượng vòng lặp tối đa mà ta sẽ train. Anh thì toàn để to oành lên sau đó tuỳ vào loss mà stop giữa chừng. Loss ngon thì ta stop thôi. Để nhỏ qua lại phải chạy tiếp khi cần 😀

      Reply
  25. NguyenDuyHung says:
    May 19, 2021 at 5:24 pm

    Em bị lỗi như này khi chạy lênh make ạ
    em đã cài gnu32 và mingw32 rồi ạ

    gcc -Iinclude/ -Isrc/ -DGPU -I/usr/local/cuda/include/ -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -DGPU -c ./src/gemm.c -o obj/gemm.o
    In file included from ./src/utils.h:5:0,
    from ./src/gemm.c:2:
    include/darknet.h:6:21: fatal error: pthread.h: No such file or directory
    #include
    ^
    compilation terminated.
    Makefile:89: recipe for target ‘obj/gemm.o’ failed
    make: *** [obj/gemm.o] Error 1

    Reply
    1. Nguyễn Chiến Thắng says:
      May 19, 2021 at 5:28 pm

      Em post lên Group trao đổi, chia sẻ: https://facebook.com/groups/miaigroup cho tiện trao đổi nhé!

      Reply
  26. Dương vũ hưng says:
    October 7, 2021 at 6:33 pm

    anh Thăng cho em hỏi, làm cách nào để giảm loss trong traiining yolo4 thế ạ? em đã tinh chỉnh data nhiều lần nhưng loss không giảm là bao

    Reply
    1. Nguyễn Chiến Thắng says:
      October 13, 2021 at 11:23 pm

      Em post bài toán cụ thể lên Group trao đổi, chia sẻ: https://facebook.com/groups/miaigroup nhé!

      Reply
  27. Tuyên says:
    December 5, 2021 at 8:49 pm

    a thắng cho e hỏi là e có dataset đèn giao thông xanh, đỏ. E cần 1 bản yolo detect được người, đèn giao thông và stop sign. Liệu e có thể traing thêm thẳng vào bản yolo-tiny đã được đào tạo sẵn k ạ.

    Reply
    1. Nguyễn Chiến Thắng says:
      December 21, 2021 at 10:20 am

      Có em. Em train thoải mái.

      Reply
  28. Hưng says:
    March 23, 2022 at 7:06 pm

    Nếu như muốn thêm lệnh đếm đối tượng đặc thù thì sao vậy anh

    Reply
    1. Nguyễn Chiến Thắng says:
      March 27, 2022 at 4:24 pm

      Thì sau khi detect xong em for loop rồi count thôi em.
      Chi tiết em post lên Group trao đổi, chia sẻ: https://facebook.com/groups/miaigroup thảo luận cho tiện nha!

      Reply
      1. Nguyễn Tấn Hưng says:
        March 28, 2022 at 10:43 pm

        không biết là em có thể nhắn tin riêng trên facebook của anh để trao đổi được không ạ

        Reply
        1. Nguyễn Chiến Thắng says:
          March 28, 2022 at 10:47 pm

          Em post lên Group trao đổi, chia sẻ: https://facebook.com/groups/miaigroup nha.
          Để sau đó mình để lại kiến thức cho các bạn đi sau nữa!

          Reply
  29. TRẦN HỮU QUỐC SƠN says:
    September 8, 2022 at 8:06 pm

    Em chạy make bị lỗi á anh, thế thêm dòng này ở đâu vậy anh ?
    export PATH=/usr/local/cuda/bin:$PATH
    export LD_LIBRARY_PATH=/usr/local/cuda/lib:/usr/local/cudnn/lib
    export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

    Reply
    1. Nguyễn Chiến Thắng says:
      November 4, 2022 at 2:24 pm

      Bạn post lên https://facebook.com/groups/miaigroup trao đổi cho tiện nhé!

      Reply
  30. Nguyễn Chiến Thắng says:
    May 9, 2023 at 10:56 am

    Slide nào bạn nhỉ?

    Reply
  31. Đình Duy says:
    August 16, 2023 at 2:12 pm

    Em dùng window, ở bước 2 khi nhập lệnh “make qt5py3” em bị lỗi này, anh giúp em với ạ
    make : The term ‘make’ is not recognized as the name of a cmdlet, function, script file, or operable program. Check
    the spelling of the name, or if a path was included, verify that the path is correct and try again.
    At line:1 char:1
    + make qt5py3
    + ~~~~
    + CategoryInfo : ObjectNotFound: (make:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

    Reply
    1. Nguyễn Chiến Thắng says:
      August 26, 2023 at 5:14 pm

      Bạn chụp hình màn hình và gửi lên Group trao đổi, chia sẻ: https://facebook.com/groups/miaigroup xem cho tiện nhé!

      Reply
  32. Lai Nhu Y says:
    October 12, 2024 at 1:23 pm

    Chạy dòng lệnh này ở đâu hả bạn
    ./darknet detector train yolo.data cfg/yolov3.cfg darknet53.conv.74

    Reply
    1. Nguyễn Chiến Thắng says:
      October 15, 2024 at 10:16 am

      Bạn post lên Group trao đổi, chia sẻ: https://facebook.com/groups/miaigroup trao đổi cho tiện nhé!

      Reply
Show Comments

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Recent Posts

  • Tìm hiểu và cài đặt OpenClaw – trợ lý ảo 24/7 thông minh đa chức năng – Mì Ai
  • Dùng thử Pika – robot học Tiếng Anh cho trẻ cực đỉnh – Mì AI
  • TopView.AI 4.0 – nền tảng tạo AI video cộng tác bá đạo – Mì AI
  • Storm MCP – giải pháp nhanh gọn nhẹ để có MCP Server trong 5 phút – Mì AI
  • VoxCPM thử voice cloning với checkpoint finetune Tiếng Việt – Mì AI

Recent Comments

  1. Chủ tiệm Mì on Thử xây dựng hệ thống Agentic AI với LangGraph – Mì AI
  2. Nguyễn Chiến Thắng on [Nhận diện biển số xe] Chương 3 – Phát hiện biển số bằng OpenCV thuần
  3. Trần Sơn Dương on [Nhận diện biển số xe] Chương 3 – Phát hiện biển số bằng OpenCV thuần
  4. Salomon on [CV] Thử làm model cảnh báo ngủ gật cho tài xế oto bằng Dlib và Resnet
  5. khang on Xây dựng hệ thống nhận diện thủ ngữ – ngôn ngữ ký hiệu tay – để giao tiếp với người khuyết tật

Categories

  • Basic
  • Computer Vision
  • Data Science – Data Analysis
  • Generative AI
  • MÌ ÚP
  • Natural Language Processing
  • RNN-LSTM-GRU
  • Share Data

Là người đi trước, hãy biết đưa tay lại phía sau.

Nguyễn Chiến Thắng
Cảm ơn các bạn đã ủng hộ Mì AI!