[YOLO Series] Thử nhận diện lửa bằng Yolov4 trên GPU với Keras

Xin chào các mem, trong bài trước chúng ta đã tìm cách train model YOLOv4 bằng COLAB rất nhanh gọn tại đây. Hôm nay chúng ta sẽ tìm cách Thử nhận diện lửa bằng Yolov4 trên GPU với Keras

Nói thêm chút là sau khi train 3000 vòng trên COLAB mình đã có file weights YOLOv4 train với dữ liệu là hình ảnh các ngọn lửa (file weights tại đây cho các bạn ngại train). Bây giờ chúng ta sẽ sử dụng nó để nhận diện lửa trên PC.

yolo sample

Bắt đầu nào!

Phần 1 – Khó khăn khi chạy YOLOv4 trên OpenCV

Trong bài trước mình có guide các bạn chạy YOLOv3 trên OpenCV tại đây. Tuy nhiên sau khi lên YOLOv4 thì nó có thêm một hàm activation mới là hàm “mish” nên khi anh em chạy sẽ bị lỗi Unsupported như hình dưới:

yolo opencv mish error

Hiện có một giải pháp là 1 số bạn sử dụng source opencv, thêm hàm này vào manual và sau đó build lại. Tuy nhiên việc này làm khá mất thời gian và cũng cần hiểu biết về c, c++ nên tạm thời mình chưa đề cập ở đây (bạn nào làm được thì share lên Group trao đổi, chia sẻ: https://facebook.com/groups/miaigroup cho anh em với nhé, xin cảm ơn)

Ngoài ra còn có 1 lý do nữa là anh em đang muốn tìm hiểu cách chạy YOLO trên GPU cho nó nhanh nữa nên mình quyết định viết bài về Yolov4 trên Keras luôn nhé anh em.

Let’s go!

Phần 2 – Chuẩn bị nguyên vật liệu để chạy YOLOv4 trên Keras

Đầu tiên anh em cứ clone cái source của mình về cái đã nhé, sau đó minh sẽ phân tích cách làm chi tiết sau. Anh em chạy lệnh git:

Sau khi chạy xong thì cài đặt các thư viện cần thiết với lệnh:

Đợi khá lâu đó cho các thư viện được cài đặt thành công. Nếu cài đặt có lỗi gì các bạn cứ post lên Group trao đổi, chia sẻ: https://facebook.com/groups/miaigroup để thảo luận nhé.

Phần 3 – Convert YOLOv4 model sang Keras Model

File weights bình thường anh em train ra nó lưu ở 1 định dạng riêng và do đó khi muốn chạy trên Keras anh em sẽ phải thực hiện convert. Anh em mở file convert.py và chú ý đoạn source này:

Các bạn cần chú ý các dòng sau:

  • Dòng 2: Đây là tên file h5 sau khi convert xong. Các bạn có thể để mặc định cũng được.
  • Dòng 3: File anchors.txt mặc định của YOLOv4.
  • Dòng 4: Ta cần kiểm tra chắc chắn file yolo.names chứa danh sách class đã train ở bài trước. Ví dụ như bài này của mình chứa 1 dòng duy nhất là “Fire” (không có dấu nháy nhé)
  • Dòng 5 : Tiếp theo hãy sửa dòng weights_path = ‘yolov4-custom_last.weights’ thành tên file weights mà bạn đã train ở bài trước. Còn nếu tên file weights của bạn cũng là yolov4-custom_last.weights thì thôi, cứ để nguyên là ngon lành cành đào.

Rồi bây giờ anh em chạy file convert.py 1 phát nào:

Anh em đợi một chút cho nó chạy, khi nào màn hình hiện ra dòng chữ Model converted..done! là thành công nhá.

Bây giờ anh em kiểm tra trong thư mực hiện tại đã có thêm file yolov4_weight.h5, đó chính là keras model của chúng ta với đuôi h5 quen thuộc nhé.

Đi tiếp nha!

Phần 4 – Thực hiện nhận diện lửa

Tiếp theo bạn để ý mình đã để sẵn 2 file ảnh để test trong thư mục project là 000341.jpg và 000449.jpg.

Các bạn tìm đến đoạn source sau trong file test.py và thử sửa đoạn này thành các file ảnh của bạn:

Sau khi sửa xong thì chạy file test.py và nếu okie thì kết quả đây:

yolov4 trên GPU

Như vậy chúng ta đã biết cách chạy được YOLOV4 trên GPU với Keras. Bài này vừa giúp các bạn thử nghiệm được model YOLOv4 đã train vừa có thể tăng tốc nếu máy bạn có GPU.

Mình xin tạm dừng ở đây và hẹn gặp lại các bạn trong các bài tiếp theo của series NLP còn đang dang dở.

Hãy join cùng cộng đồng Mì AI nhé!

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

Cảm ơn bài tham khảo rất hay của Ma-Dan!

Nguyễn Chiến Thắng

Một người đam mê những điều mới mẻ và công nghệ hiện đại. Uớc mơ cháy bỏng dùng AI, ML để làm cho cuộc sống tốt đẹp hơn! Liên hệ: thangnch@gmail.com hoặc facebook.com/thangnch

Related Post

2 Replies to “[YOLO Series] Thử nhận diện lửa bằng Yolov4 trên GPU với Keras”

  1. Loi: em install theo anh nhu trong setup.txt thi no bat tensor > 2.2 moi dung dc keras, em install tensorflow >= 2.2 thi no bat tensor < 2.0 moi dung duoc @@ cuoi cung khong biet dung ban tensor nao

Leave a Reply

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