BKTel - Machine Learning Tutorial 01: Vehicles Counting - Python - OpenCV - YOLOv3

Поделиться
HTML-код
  • Опубликовано: 29 авг 2024

Комментарии • 98

  • @nhatmai7072
    @nhatmai7072 6 месяцев назад +3

    tổng hợp lại 1 số lỗi trong quá trình mình ngồi để chạy đc project này
    cv2 ko có mấy cái attribute cái này thì dùng pycharm r cài cái opencv-contribu-python j j đó là đc
    line 82 sửa thành cái này boxes.append([int(x), int(y), int(w), int(h)])
    line tầm 69 70 xóa bớt 1 vòng for ngoài cùng đi r sửa thành như này 2 dòng đầu thành như này for detection in layer_output:
    scores = detection[2:]

  • @nguyenvanhung7899
    @nguyenvanhung7899 2 года назад +1

    thầy giảng hay quá ạ. E cảm ơn thầy!

  • @codeworld_thongnguyen
    @codeworld_thongnguyen 2 года назад +1

    giảng dễ hiểu quá ạ!!!

  •  4 года назад +1

    thầy giảng hay quá

  • @anhoangduc4626
    @anhoangduc4626 4 года назад +1

    Cám ơn thầy

  • @MLIoTLab
    @MLIoTLab  4 года назад +2

    Lưu ý: Nhiều bạn hay bị 2 lỗi sau:
    1) error: (-212:Parsing error) Failed to parse NetParameter file: yolov3.weights in function: Nguyên nhân là ở đoạn clip phút 7:33 mình có chuyển định dạng file cfg từ (Text Document txt) sang (Tất cả tập tin *.*). Nên các bạn lưu ý làm như vậy.
    Nếu ko các bạn có thể sửa đoạn này trong code thêm txt.
    Line 21: YOLOV3_CFG = 'yolov3-tiny.cfg.txt'
    2) Lỗi liên quan đến cv2 Ví dụ - 219 AttributeError: module 'cv2.cv2' has no attribute 'TrackerKCF_create': Nguyên nhân là do liên quan đến phiên bản cv2. Nên các bạn lưu ý cài đặt đúng như hướng dẫn.

    • @buivuhoang1529
      @buivuhoang1529 3 года назад

      em cài y hệt vậy mà thầy pin install opencv-contrib-python sao vẫn lỗi ạ

    • @MLIoTLab
      @MLIoTLab  3 года назад

      Em kiểm tra version xem ntn nhé. Và em bị lỗi gì?

  • @thangtranmanh3707
    @thangtranmanh3707 4 года назад

    cảm ơn thầy nhiều ạ

  • @trungnguyenbui1883
    @trungnguyenbui1883 4 года назад +1

    hay quá ạ

  • @annhien5381
    @annhien5381 Год назад

    ad có thể hướng dẫn về cách dự báo nhu cầu giao thông khi làm quy hoạch mạng lươi đường đô thị không ạ

  • @NamNguyen-vk4ul
    @NamNguyen-vk4ul Год назад

    mình đã chạy được chương trình nhưng nó không nhận diện được vehicle trong video, chỉ show được video thôi ạ
    Can't get output layers
    Can't get output layers
    Traceback (most recent call last):
    File "D:\HocLapTrinhDaiHoc\MachineLearning\vehicles_counting\main.py", line 244, in
    counting_vehicle('highway.mp4', 'vehicles.avi')
    File "D:\HocLapTrinhDaiHoc\MachineLearning\vehicles_counting\main.py", line 190, in counting_vehicle
    boxes, class_ids, confidences = detections_yolo3(net, frame, CONFIDENCE_SETTING, YOLOV3_WIDTH,
    File "D:\HocLapTrinhDaiHoc\MachineLearning\vehicles_counting\main.py", line 50, in detections_yolo3
    layer_output = net.forward(get_output_layers(net))
    KeyboardInterrupt

  • @NamLe-fl4sz
    @NamLe-fl4sz 4 месяца назад

    Thầy đang dùng model pretrain đúng k ạ

  • @vinhho7855
    @vinhho7855 2 года назад +1

    Traceback (most recent call last):
    File "D:\BKU\vehicles_counting\main.py", line 1, in
    import cv2
    ModuleNotFoundError: No module named 'cv2'
    lỗi này làm sao thầy

    • @MLIoTLab
      @MLIoTLab  2 года назад

      Em chưa cài thư viện á em. Em xem kỹ từ đầu video đến hết nhé.

    • @dongmanh6851
      @dongmanh6851 Год назад

      @@MLIoTLab thầy cho e xin code đc ko ạ

  • @namothanh8196
    @namothanh8196 3 года назад

    thầy cho em hỏi là dùng thuật toán gì ạ , sử dụng những bộ thư viện nào?thầy có thể cho em xin slide được không ạ

  • @huutruong8527
    @huutruong8527 2 месяца назад

    Có share code không ạ

  • @nguyenlamofficial99
    @nguyenlamofficial99 3 года назад

    Thầy ơi, thầy hướng dẫn em phần nhận diện biển số xe với ạ

  • @nguyenxuantuyen2684
    @nguyenxuantuyen2684 2 года назад

    thầy ơi, e muốn chạy chương trình này ở bản yolov5 thì làm sao ạ. e có chuyển yolov5.pt sang .onnx để opencv hỗ trợ mà vẫn bị lỗi: IndexError: index 540346 is out of bounds for axis 0 with size 25195

    • @MLIoTLab
      @MLIoTLab  2 года назад

      Em check cái issue này nhé: github.com/ultralytics/yolov5/issues/239

  • @QuanNguyen-kh7ix
    @QuanNguyen-kh7ix 3 года назад

    thầy ơi em xài open cv xác định chuyển động rồi em có vùng các phương tiện rồi bỏ vô transfer learning nhận dạng rồi đếm số xe như thầy có đc ko thầy!

    • @MLIoTLab
      @MLIoTLab  3 года назад

      Có vẻ hướng này ko hiệu quả đâu em

  • @axlejmusic3204
    @axlejmusic3204 2 года назад +1

    Can't get output layers
    Traceback (most recent call last):
    File "d:\Kuliah\AI\New folder\vehicles_counting-master\main.py", line 250, in
    counting_vehicle('highway.mp4', 'vehicles.avi')
    File "d:\Kuliah\AI\New folder\vehicles_counting-master\main.py", line 196, in counting_vehicle
    boxes, class_ids, confidences = detections_yolo3(net, frame, CONFIDENCE_SETTING, YOLOV3_WIDTH,
    File "d:\Kuliah\AI\New folder\vehicles_counting-master\main.py", line 70, in detections_yolo3
    scores = detection[5:]
    IndexError: invalid index to scalar variable.
    i have tracecall like that

    • @MLIoTLab
      @MLIoTLab  2 года назад

      Bạn xem các comment phía dưới có cách khắc phục nhé.

    • @TuanNguyen-xx2qd
      @TuanNguyen-xx2qd Год назад

      @@MLIoTLab em cũng đang bị lỗi này có vác nào sửa được chưa ạ

    • @thinhletruong8262
      @thinhletruong8262 10 месяцев назад

      xin cách khắc phục lỗi này vs mn

  • @cuongleviet6325
    @cuongleviet6325 3 года назад +1

    Traceback (most recent call last):
    File "F:/Lap trinh/Python/Tutorial/BKU/vehicles_counting/main.py", line 250, in
    counting_vehicle('highway.mp4', 'vehicles.avi')
    File "F:/Lap trinh/Python/Tutorial/BKU/vehicles_counting/main.py", line 220, in counting_vehicle
    new_tracker.init(frame, tuple(box))
    TypeError: integer argument expected, got float
    Tôi chạy code thì bị lỗi như thế này, làm ơn chỉ giúp ạ

    • @huongphanngoc6163
      @huongphanngoc6163 3 года назад +7

      Bác sửa dòng 83 thành thế này nhé: boxes.append([int(x), int(y), int(w), int(h)])

    • @KienLe-fc3zt
      @KienLe-fc3zt 3 года назад

      @@huongphanngoc6163 cho em hỏi là sao nó không nhận đc motorbike ạ. Dù em đã thêm classes 4 vào.

    • @buivuhoang1529
      @buivuhoang1529 3 года назад

      bác fix dc 2 lỗi ý chưa chỉ e fix với

    • @buivuhoang1529
      @buivuhoang1529 2 года назад +2

      @@huongphanngoc6163 bác cho e hỏi e bị lỗi như này thì sửa sao v bác
      File "C:/BKU/vehicles_counting/main.py", line 250, in
      counting_vehicle('highway.mp4', 'vehicles.avi')
      File "C:/BKU/vehicles_counting/main.py", line 197, in counting_vehicle
      YOLOV3_HEIGHT, width, height, classes=CLASSES)
      File "C:/BKU/vehicles_counting/main.py", line 70, in detections_yolo3
      scores = detection[5:]
      IndexError: invalid index to scalar variable.

    • @v.v5214
      @v.v5214 2 года назад

      hóng ai fix dc quá

  • @quangtavan4884
    @quangtavan4884 8 месяцев назад

    Sao e người đi bộ k nhận diện vậy thầy

  • @duyutc4484
    @duyutc4484 3 года назад

    Thầy ơi,Thư viện imutils ko sử dụng được với anaconda ạ?Mong thầy trả lời e ạ.

    • @MLIoTLab
      @MLIoTLab  3 года назад

      sao không được vậy bạn?
      Vẫn dùng: pip install imutils

  • @nguyenxuantuyen2684
    @nguyenxuantuyen2684 2 года назад

    E muốn tính số xe hiện tại trong một vùng nhất định được kẻ thì làm tn ạ. Tks

    • @MLIoTLab
      @MLIoTLab  2 года назад

      Lúc đó bài toán của bạn sẽ chuyển sang dạng xác định 1 đối tượng đi vào và đi ra 1 polygon. Khi nào đối tượng đi vào polygon thì bạn tracking, khi nào đối tượng đi ra polygon thì bạn đếm lên.

    • @nguyenxuantuyen2684
      @nguyenxuantuyen2684 2 года назад

      @@MLIoTLab e cảm ơn thầy. Nếu muốn xác định số xe đang có trong ROI thì sẽ xử lý thế nào ạ

  • @ongnguyen4730
    @ongnguyen4730 2 года назад +1

    Code vẫn chạy đc thầy ạ nhưng nó k thể xuất ra đc video mà cũng k hiện lỗi vẫn chạy mã đếm xe bình thường là lỗi gì vậy ạ

    • @MLIoTLab
      @MLIoTLab  2 года назад

      Có vẻ lạ quá nhỉ? Nếu ko ra thì phải hiện lỗi gì chứ :)

    • @kiencaptian6644
      @kiencaptian6644 2 года назад

      Fix dc chưa bro

    • @kiencaptian6644
      @kiencaptian6644 2 года назад

      @@MLIoTLab kiểu chạy ở console thôi thầy ạ nó ko hiện video lên

    • @ongnguyen4730
      @ongnguyen4730 2 года назад +1

      @@kiencaptian6644 k hiện ra lỗi nên k biết chỗ nào để fix bro ạ. Chơi code khác thôi

    • @dongmanh6851
      @dongmanh6851 Год назад

      ​@@MLIoTLab thầy cho e xin code yolo3 vs ah

  • @bachhuynh1562
    @bachhuynh1562 4 года назад

    FPS đạt được là bao nhiêu vậy thầy.
    Thấy nên thêm để có sự so sánh. Cảm ơn thầy

    • @MLIoTLab
      @MLIoTLab  4 года назад

      Cám ơn bạn. Video mục đích để các bạn mới biết AI có thể làm được gì, và 1 cách đơn giản để tiếp cận nó. Nên kết quả ko chú trọng vào các metric :).

  • @tuyetphuongpham8320
    @tuyetphuongpham8320 2 года назад +1

    thưa thầy e gặp lỗi này phải fix thế nào ạ
    C:\Users\Administrator\Anaconda3\envs\ComputerVision\python.exe D:/a/vehicles_counting/main.py
    Can't get output layers
    Traceback (most recent call last):
    File "D:/a/vehicles_counting/main.py", line 250, in
    counting_vehicle('highway.mp4', 'vehicles.avi')
    File "D:/a/vehicles_counting/main.py", line 197, in counting_vehicle
    YOLOV3_HEIGHT, width, height, classes=CLASSES)
    File "D:/a/vehicles_counting/main.py", line 70, in detections_yolo3
    scores = detection[5:]
    IndexError: invalid index to scalar variable.

    • @MLIoTLab
      @MLIoTLab  2 года назад

      Em đọc mấy comment có hướng dẫn fix nhé.

    • @namtrannguyen2073
      @namtrannguyen2073 Год назад

      Đã sửa lỗi này được chưa ạ?

  • @thanhnguyenminh4740
    @thanhnguyenminh4740 2 года назад

    Dạ thầy cho em hỏi lỗi này là gì vậy ạ
    Traceback (most recent call last):
    File "D:\Code PY\ML\vehicles_counting\main.py", line 250, in
    counting_vehicle('highway.mp4', 'vehicles.avi')
    File "D:\Code PY\ML\vehicles_counting\main.py", line 220, in counting_vehicle
    new_tracker.init(frame, tuple(box))
    cv2.error: OpenCV(4.5.3) :-1: error: (-5:Bad argument) in function 'init'
    > Overload resolution failed:
    > - Can't parse 'boundingBox'. Sequence item with index 0 has a wrong type
    > - Can't parse 'boundingBox'. Sequence item with index 0 has a wrong type

    • @MLIoTLab
      @MLIoTLab  2 года назад

      Ở phía dưới có bạn hướng dẫn á em "Bác sửa dòng 83 thành thế này nhé: boxes.append([int(x), int(y), int(w), int(h)])". Em thử xem nhé.

    • @thanhnguyenminh4740
      @thanhnguyenminh4740 2 года назад

      @@MLIoTLab dạ em cảm ơn thầy ạ

  • @sangha5473
    @sangha5473 3 года назад

    module 'cv2.cv2' has no attribute 'TrackerKCF_create' e bị lỗi này và đã cài pip install opencv-contrib-python nhưng vẫn bị ạ

    • @MLIoTLab
      @MLIoTLab  3 года назад

      Em kiểm tra xem trong danh sách pip của em có cài sẵn cái opencv-python không? Nếu có thì uninstall nó ra luôn nhé.

    • @sangha5473
      @sangha5473 3 года назад

      dạ e cài đc r ạ

  • @letanat8966
    @letanat8966 4 года назад

    em muốn hỏi là e liên kết camera bên ngoài được không. không dùng video

    • @MLIoTLab
      @MLIoTLab  4 года назад

      Chào bạn, nếu bạn dùng camera của device thì bạn sửa đoạn code đọc video thành cap = cv2.VideoCapture(0) trong đó 0 là Cam_ID. Nếu bạn dùng nguồn cam stream thì code như sau cap = cv2.VideoCapture(stream_link)

    • @letanat8966
      @letanat8966 4 года назад

      @@MLIoTLab e nhúng vào Kit kết nối camera được phải ko ad có chỉnh sửa gì ko

    • @MLIoTLab
      @MLIoTLab  4 года назад

      @@letanat8966 đúng rồi em, nếu có thì chắc chỉ chỉnh sửa về môi trường thôi em.

    • @letanat8966
      @letanat8966 4 года назад

      @@MLIoTLab thầy ơi cho e hỏi làm thế nào để chỉnh sửa thanh ngang trong video vậy thầy. video của thầy đang để ngang. giờ e muốn để đúng để sử dụng video khác làm như thế nào thầy

    • @MLIoTLab
      @MLIoTLab  4 года назад

      @@letanat8966 Em muốn chỉnh cái đó, thì chỉnh các function sau:
      1. check_location: Kiểm tra cái điểm trung tâm của object đã chạy qua cái line để đếm hay chưa, cái này đang code là theo chiều trên xuống, em đổi sang chiều khác.
      2. check_start_line: Kiểm tra điểm trung tâm của obj đã chạy qua cái line để bắt đầu tracking obj này.
      3. Các dòng code hiễn thị: 235, 237, ...

  • @thypham9434
    @thypham9434 3 года назад

    Dạ thầy ơi, code này dành cho video ở một ngã tư được không vậy ạ?

    • @MLIoTLab
      @MLIoTLab  3 года назад +1

      được nhé em. Code lại phần xác định cần counting ở đâu.

    • @thypham9434
      @thypham9434 3 года назад

      @@MLIoTLab thầy có thể làm một video hướng dẫn về node giao thông ở ngã tư không ạ?

    • @MLIoTLab
      @MLIoTLab  3 года назад

      @@thypham9434 Cái này cũng tương tự bài toán trong clip thôi em, em đọc thêm code để hiểu và phát triển thêm nhé.

  • @namanhnguyen5447
    @namanhnguyen5447 3 года назад

    Traceback (most recent call last):
    File "E:\BKU\vehicles_counting\main.py", line 250, in
    counting_vehicle('highway.mp4', 'vehicles.avi')
    File "E:\BKU\vehicles_counting\main.py", line 220, in counting_vehicle
    new_tracker.init(frame, tuple(box))
    cv2.error: OpenCV(4.5.3) :-1: error: (-5:Bad argument) in function 'init'
    > Overload resolution failed:
    > - Can't parse 'boundingBox'. Sequence item with index 0 has a wrong type
    > - Can't parse 'boundingBox'. Sequence item with index 0 has a wrong type
    Em bị lỗi này, nhờ anh chị chỉ giáo ạ

    • @MLIoTLab
      @MLIoTLab  2 года назад +1

      Ở phía dưới có bạn hướng dẫn á em "Bác sửa dòng 83 thành thế này nhé: boxes.append([int(x), int(y), int(w), int(h)])". Em thử xem nhé.

  • @amquangphuoc5377
    @amquangphuoc5377 3 года назад

    Detect xe máy chưa đc b ơi

    • @MLIoTLab
      @MLIoTLab  3 года назад

      Bạn đã bổ sung classes 4 vào dòng số 18 chưa?
      # Define vehicle class
      VEHICLE_CLASSES = [1, 2, 3, 4, 5, 6, 7]

    • @amquangphuoc5377
      @amquangphuoc5377 3 года назад

      @@MLIoTLab Mình bổ sung vô rồi, nhưng detect ko tốt lắm, đa số làm tìm không ra được>
      Bạn có thể làm video tutorial source code cho c# không?

    • @sontranthanh9335
      @sontranthanh9335 3 года назад

      @@MLIoTLab Motorbike được detect thành Car . không biết lỗi từ đâu

    • @dungngoc5182
      @dungngoc5182 3 года назад

      @@sontranthanh9335 đây là dùng yolov3 tiny nên muốn chính xác nhất b nên dùng bản yolov3 608

  • @v.v5214
    @v.v5214 2 года назад +2

    :̣̣̣̣̣̣̣( em bij lỗi này kb fix sao ạ
    Can't get output layers
    Traceback (most recent call last):
    File "D:/BKU/vehicles_counting/main.py", line 250, in
    counting_vehicle('highway.mp4', 'vehicles.avi')
    File "D:/BKU/vehicles_counting/main.py", line 197, in counting_vehicle
    YOLOV3_HEIGHT, width, height, classes=CLASSES)
    File "D:/BKU/vehicles_counting/main.py", line 70, in detections_yolo3
    scores = detection[5:]
    IndexError: invalid index to scalar variable.

    • @namtrannguyen2073
      @namtrannguyen2073 Год назад

      đã sửa lỗi này được chưa ạ?

    • @user-jl7cn4eg8j
      @user-jl7cn4eg8j 9 месяцев назад

      bạn fix được chưa ạ? mình cũng bị y hệt