YOLOLYTIC – Phần mềm phát hiện vật thể mạnh mẽ sử dụng YOLO v8

Hôm nay mình giới thiệu đến các bạn phần mềm YOLOLYTIC do “nhà trồng được” cho mục đích object detection – phát hiện vật thể. Đây là ứng dụng viết cho Windows (.exe) để người dùng dễ dàng thao tác với button, textbox thay vì chạy Python hay Jupyter notebook.

YOLOLYTIC sử dụng YOLO v8 – một trong những thư viện tốt nhất hiện nay về object detection. Ngoài ra YOLOLYTIC còn được tích hợp CUDA 11.8 giúp bạn khai thác tối đa năng lực của GPU.

Lưu ý: hiện tại chương trình chỉ có phiên bản GPU, chưa có phiên bản CPU nên bắt buộc bạn phải có GPU NVIDIA để chạy

Đây là phần mềm “đa ngôn ngữ” khi sử dụng C++ để xử lý giải thuật và C# để viết giao diện & xử lý sự kiện người dùng.

Với việc tích hợp nhiều thư viện như TGMTplayer để phát hiện vật thể từ camera IP thì YOLOLYTIC rất phù hợp để áp dụng vào đời sống.

Phần 1: chức năng của YOLOLYTIC

YOLOLYTIC chia ra thành 5 tab cho 5 chức năng chính như sau:

  1. Image: phát hiện object từ ảnh, kết quả hiển thị được trên Listview
  2. Folder: phát hiện object trong folder chứa ảnh. 3 loại ảnh detect được là jpg, png và bmp
  3. Webcam: phát hiện object realtime từ webcam
  4. Video/camera: có thể detect từ file video hoặc camera IP. Để play được camera IP các bạn làm theo bài Danh sách stream link các camera IP phổ biến để tìm stream
  5. Extract frame: dùng để extract frame và annotation (*.txt) detect được, dùng để retrain nếu detect thiếu hoặc sai

Chức năng khác

  • Hiển thị trạng thái phần mềm có sử dụng CUDA hay không
  • Chạy đa luồng khai thác tối đa năng lực phần cứng (CPU/GPU)

Phần 2: hướng dẫn sử dụng

Bước 1: cài đặt thư viện cần thiết
Đây là phần mềm viết bằng C++ 2022 x64.NET framework 4.7.2 nên các bạn cần tải về và cài đặt trước khi sử dụng.

Bước 2: cài đặt CUDA

  • Download CUDA 11.8
  • Download cuDNN 8.6.0 cho CUDA 11.x

Bước 3: convert file weight *.pt sang *.onnx

Chương trình chỉ hỗ trợ format *.onnx, không đọc được trực tiếp định dạng *.pt, vì vậy bạn cần phải convert pt => onnx trước khi sử dụng.

Bạn cần phải cài đặt Pytorch
pip install torch==2.4.0 torchvision==0.19.0 torchaudio==2.4.0 --index-url https://download.pytorch.org/whl/cu121

và ultralytics để convert file
pip install ultralytics

Sau khi cài xong dùng câu lệnh bên dưới để convert file *.pt sang *.onnx. Định dạng *.onnx được hỗ trợ bởi OpenCV C++.
!yolo export model='./yolov8n.pt' imgsz=640,640 format=onnx opset=12 simplify=True dynamic=False

Bước 4: chạy chương trình Yololytic.exe
Download hoặc clone repository ở link cuối bài, sau đó chạy file Yololytic.exe.

Các bạn cần load model trước khi detect, lưu ý khi training với image size bao nhiêu thì khi load model cũng phải chọn bấy nhiêu. Classes path là file chứa các class name, chấp nhận đuôi .names. Khi load thành công model thì các tab mới enable.

⚠ Lưu ý: hiện tại YOLO v8 chỉ chạy được với OpenCV 4.7.0, các phiên bản mới hơn hay cũ hơn đều không chạy được.

Ứng dụng

YOLOLYTIC là chương trình mẫu, có thể retrain model và chỉnh sửa giao diện, chức năng để phù hợp với các bài toán khác nhau:

  • Phát hiện người, xe ra vào thay thế cho chức năng của camera. Camera cảnh báo chuyển động cả khi chó mèo xuất hiện
  • Tích hợp với relay để mở barrier khi có xe

⬇ Download

Chương trình Yololytic.exe nằm trong folder bin.
https://github.com/thigiacmaytinh/YOLOLYTICv8

Folder pretrain có commit sẵn file onnx để các bạn sử dụng.