1. Giới thiệu
YOLO (You Only Look Once) là một thuật toán mạng neural nhân tạo (AI) được phát triển để nhận diện vật thể trong ảnh và video. YOLO được biết đến với tốc độ xử lý nhanh chóng và độ chính xác cao, khiến nó trở thành một lựa chọn phổ biến cho các ứng dụng real-time như phát hiện tự động, giám sát video và robot.
Phiên bản mới nhất của YOLO, YOLO v9 mang đến nhiều cải tiến đáng kể so với các phiên bản trước.
2. Cách hoạt động thuật toán
YOLO v9 sử dụng kiến trúc mạng neural convolutional network để trích xuất các đặc điểm từ hình ảnh đầu vào. Sau đó, mạng lưới dự đoán cả vị trí và lớp của các vật thể trong ảnh. Khác với các phương pháp nhận diện vật thể hai giai đoạn truyền thống, YOLO chỉ thực hiện một lần tính toán để dự đoán tất cả các vật thể trong ảnh, do đó đạt được tốc độ xử lý nhanh hơn đáng kể.
2.1 Các giai đoạn chính:
- Chia nhỏ hình ảnh: Hình ảnh đầu vào được chia thành các ô lưới có kích thước bằng nhau.
- Trích xuất đặc điểm: Mỗi ô lưới được xử lý bởi mạng CNN để trích xuất các đặc điểm của các vật thể có thể có trong ô lưới đó.
- Dự đoán vị trí và lớp: Mạng lưới dự đoán vị trí và lớp (loại đối tượng) của các vật thể trong mỗi ô lưới.
- Loại bỏ các dự đoán sai: Các dự đoán có độ tin cậy thấp hoặc chồng chéo nhau sẽ được loại bỏ.
- Trả về kết quả: Vị trí và lớp của các vật thể được phát hiện sẽ được hiển thị trên hình ảnh.
2.2 Cải tiến so với các phiên bản trước:
YOLO v9 có nhiều cải tiến so với các phiên bản trước, bao gồm:
- Sử dụng bộ xương EfficientNet: EfficientNet là một kiến trúc mạng neural được tối ưu hóa cho hiệu suất và độ chính xác. YOLO v9 sử dụng EfficientNet làm bộ xương chính, giúp tăng tốc độ xử lý và độ chính xác của mô hình.
- Cải tiến thuật toán dự đoán khung: YOLO v9 sử dụng thuật toán dự đoán khung mới giúp cải thiện khả năng xác định vị trí chính xác của các vật thể.
- Hỗ trợ nhiều kích thước đầu vào: YOLO v9 có thể xử lý hình ảnh với nhiều kích thước khác nhau, từ nhỏ đến lớn.
- Tối ưu hóa cho hiệu suất: YOLO v9 được tối ưu hóa cho hiệu suất trên nhiều nền tảng phần cứng khác nhau, bao gồm CPU, GPU và TPU.
3. Các tính năng nổi bật
YOLO v9 có nhiều tính năng nổi bật, bao gồm:
- Tốc độ xử lý nhanh: YOLO v9 có thể xử lý hình ảnh với tốc độ lên đến 1000 FPS trên GPU cao cấp.
- Độ chính xác cao: YOLO v9 đạt độ chính xác cao trên nhiều tập dữ liệu nhận diện vật thể tiêu chuẩn.
- Programmable Gradient Information (PGI): PGI là kỹ thuật mới giúp điều chỉnh luồng gradient trong quá trình huấn luyện mạng neural, nhằm cải thiện hiệu suất và độ chính xác của mô hình. Thay vì sử dụng luồng gradient cố định, PGI cho phép lập trình luồng gradient theo cách linh hoạt, điều chỉnh thông tin truyền ngược đến các lớp trước trong mạng.
- Khả năng phát hiện nhiều vật thể: YOLO v9 có thể phát hiện nhiều vật thể trong một hình ảnh, bao gồm cả các vật thể nhỏ và chồng chéo nhau.
- Dễ sử dụng: YOLO v9 có API đơn giản và dễ sử dụng, giúp người dùng dễ dàng triển khai mô hình vào các ứng dụng của họ.
- Open source: YOLO v9 là open source và miễn phí sử dụng, cho phép người dùng tùy chỉnh và cải tiến mô hình theo nhu cầu của họ.
4. So sánh với các phiên bản trước
Phiên bản | Tốc độ | Độ chính xác | Cải tiến |
---|---|---|---|
YOLO v1 | 45 FPS | 52% | - |
YOLO v2 | 150 FPS | 70% | Sử dụng mạng neural Darknet-19, thuật toán dự đoán khung mới |
YOLO v3 | 300 FPS | 80% | Sử dụng mạng neural Darknet-53, FPN (Feature Pyramid Network) |
YOLO v4 | 600 FPS | 86% | Sử dụng CSPDarknet53, SimSiam, YOLO Nano |
YOLO v5 | 1000 FPS | 86% | Sử dụng CSPNet (Cross Stage Partial connections), Spatial Attention Module (SAM), Path Aggregation Network (PAN) |
YOLO v6 | 1300 FPS | 90% | Sử dụng CSPDarknet53, SimSiam, YOLO Nano |
YOLO v7 | 1600 FPS | 93% | Sử dụng TNT (Transformer-based Neck), YOLO Nano, Bag of Freebies |
YOLO v8 | 2000 FPS | 95% | Sử dụng CSPNetv5, YOLO Nano, Bag of Freebies, Scale-Aware Routing |
YOLO v9 | 2500 FPS | 97% | Sử dụng EfficientNet, YOLO Nano, Bag of Freebies, Scale-Aware Routing, Focus Module v5 |
- Perfomance
5. Cách sử dụng
Có nhiều cách để sử dụng YOLO v9, bao gồm:
- Sử dụng API Python: YOLO v9 cung cấp API Python đơn giản giúp người dùng dễ dàng triển khai mô hình vào các ứng dụng của họ.
- Sử dụng Darknet: YOLO v9 có thể được sử dụng với Darknet, một khung phần mềm mã nguồn mở để huấn luyện và sử dụng các mô hình mạng neural.
- Sử dụng các thư viện bên thứ ba: Có nhiều thư viện bên thứ ba hỗ trợ YOLO v9, bao gồm TensorFlow, PyTorch và OpenCV.
6. Ứng dụng
YOLOv9 có thể được sử dụng trong nhiều ứng dụng khác nhau trong lĩnh vực Computer Vision, bao gồm:
- Giám sát an ninh: YOLOv9 có thể được sử dụng để nhận diện và phân loại đối tượng trong các hệ thống giám sát an ninh để giúp theo dõi và phát hiện các hành vi đáng ngờ.
- Ô tô tự hành: Trong lĩnh vực ô tô tự hành, YOLOv9 có thể được sử dụng để nhận diện các đối tượng xung quanh và đưa ra các quyết định an toàn.
- Y tế: Trong lĩnh vực y tế, YOLOv9 có thể được sử dụng để nhận diện và phân loại các bất thường trên hình ảnh y khoa, giúp trong chẩn đoán và điều trị bệnh.
- Robot...
7. Kết luận
YOLO v9 là mô hình nhận diện vật thể tiên tiến nhất hiện nay với tốc độ xử lý nhanh, độ chính xác cao và khả năng sử dụng linh hoạt.
Tài liệu và nguồn tham khảo
- https://viso.ai/computer-vision/yolov9/
- Link paper: https://arxiv.org/pdf/2402.13616.pdf
- Link github: https://github.com/WongKinYiu/yolov9
- Link demo: https://youtu.be/HzO4QkpBOnE