YOLOv8 và YOLOv9#
Quá trình phát triển của phát hiện vật thể thời gian thực luôn được thúc đẩy bởi nhu cầu cải thiện độ chính xác, giảm độ trễ và tận dụng phần cứng hiệu quả hơn. Hai cột mốc quan trọng trong hành trình này là Ultralytics YOLOv8 và YOLOv9. Mặc dù cả hai model đều thể hiện năng lực tiên tiến nhất trong computer vision, chúng đáp ứng các nhu cầu triển khai, triết lý kiến trúc và hệ sinh thái dành cho nhà phát triển khác nhau.
Hướng dẫn toàn diện này phân tích sự khác biệt về kỹ thuật, các đổi mới kiến trúc và những yếu tố thực tiễn khi triển khai, giúp bạn chọn model phù hợp cho dự án trí tuệ nhân tạo tiếp theo.
Nguồn gốc model và triết lý cốt lõi#
Trước khi đi sâu vào các chỉ số, cần hiểu rõ nguồn gốc và mục tiêu thiết kế chính của từng model.
Ultralytics YOLOv8: Chuẩn mực hệ sinh thái linh hoạt#
Được phát triển bởi đội ngũ Ultralytics, YOLOv8 được thiết kế không chỉ như một bộ phát hiện vật thể độc lập mà còn là một framework đa nhiệm thống nhất. Model ưu tiên trải nghiệm nhà phát triển liền mạch, yêu cầu bộ nhớ thấp và khả năng tương thích phần cứng rộng.
- Tác giả: Glenn Jocher, Ayush Chaurasia và Jing Qiu
- Tổ chức: Ultralytics
- Ngày: 2023-01-10
- GitHub: ultralytics/ultralytics
- Tài liệu: Tài liệu YOLOv8
YOLOv9: Thông tin gradient có thể lập trình#
Được các nhà nghiên cứu tại Academia Sinica phát triển độc lập, YOLOv9 tập trung sâu vào lý thuyết kiến trúc, cụ thể là giải quyết hiện tượng nút thắt thông tin trong mạng neural sâu.
- Tác giả: Chien-Yao Wang và Hong-Yuan Mark Liao
- Tổ chức: Viện Khoa học Thông tin, Academia Sinica, Đài Loan
- Ngày: 2024-02-21
- Arxiv: 2402.13616
- GitHub: WongKinYiu/yolov9
Nếu đang lên kế hoạch triển khai thương mại quy mô lớn, hãy cân nhắc khám phá Ultralytics Platform để đơn giản hóa quy trình huấn luyện trên cloud, quản lý dataset và tạo API endpoint chỉ bằng một cú nhấp.
Phân tích chuyên sâu về kiến trúc#
Các lựa chọn kiến trúc trong deep learning quyết định hiệu quả học của model và tốc độ chạy trên phần cứng mục tiêu như NVIDIA Jetson hoặc CPU Intel.
Kiến trúc YOLOv8: C2f và các head tách biệt#
YOLOv8 giới thiệu module C2f (nút thắt Cross-Stage Partial với hai phép tích chập), thay thế module C3 cũ hơn. Thay đổi này cải thiện luồng gradient và giúp mạng học được các biểu diễn đặc trưng phong phú hơn mà không gây áp lực lớn lên bộ nhớ GPU.
Ngoài ra, YOLOv8 sử dụng thiết kế không anchor với head tách biệt. Bằng cách xử lý phân loại và hồi quy qua các luồng riêng, model hội tụ nhanh hơn trong quá trình huấn luyện và tổng quát hóa tốt hơn trên nhiều dataset tùy chỉnh.
Kiến trúc YOLOv9: PGI và GELAN#
YOLOv9 giới thiệu Thông tin gradient có thể lập trình (PGI) và Mạng tổng hợp lớp hiệu quả tổng quát (GELAN). PGI đảm bảo dữ liệu quan trọng không bị mất khi đi qua các lớp của mạng, nhờ đó cung cấp gradient đáng tin cậy để cập nhật trọng số. GELAN tối đa hóa hiệu quả sử dụng tham số, cho phép model đạt độ chính xác cao trong khi vẫn cố gắng giữ FLOPs ở mức hợp lý.
Dù ấn tượng về mặt toán học, việc YOLOv9 phụ thuộc vào các nhánh phụ có thể đảo ngược cụ thể trong quá trình huấn luyện có thể khiến code huấn luyện khó tùy chỉnh hơn so với các pipeline tiêu chuẩn.
Chỉ số hiệu năng và benchmark#
Bảng dưới đây so sánh trực tiếp các model ở nhiều kích thước khác nhau. Hiệu năng được đo trên dataset MS COCO, một benchmark tiêu chuẩn cho phát hiện vật thể.
| Model | kích thước (pixel) | mAPval 50-95 | Tốc độ CPU ONNX (ms) | Tốc độ T4 TensorRT10 (ms) | params (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv8n | 640 | 37.3 | 80.4 | 1.47 | 3.2 | 8.7 |
| YOLOv8s | 640 | 44.9 | 128.4 | 2.66 | 11.2 | 28.6 |
| YOLOv8m | 640 | 50.2 | 234.7 | 5.86 | 25.9 | 78.9 |
| YOLOv8l | 640 | 52.9 | 375.2 | 9.06 | 43.7 | 165.1 |
| YOLOv8x | 640 | 53.9 | 479.1 | 14.37 | 68.2 | 257.8 |
| YOLOv9t | 640 | 38.3 | - | 2.3 | 2.0 | 7.7 |
| YOLOv9s | 640 | 46.8 | - | 3.54 | 7.2 | 26.7 |
| YOLOv9m | 640 | 51.4 | - | 6.43 | 20.1 | 76.8 |
| YOLOv9c | 640 | 53.0 | - | 7.16 | 25.5 | 102.8 |
| YOLOv9e | 640 | 55.6 | - | 16.77 | 58.1 | 192.5 |
Lưu ý: Các giá trị tốt nhất trong mỗi cột được in đậm.
Phân tích các yếu tố đánh đổi#
YOLOv9 đạt độ chính xác đỉnh cao (mAP) nhỉnh hơn, đặc biệt với biến thể e cỡ lớn. Tuy nhiên, điều này đi kèm với một sự đánh đổi. Ultralytics YOLOv8 có lợi thế đáng kể về tốc độ suy luận, đặc biệt khi được biên dịch sang các định dạng như TensorRT hoặc ONNX. Với các ứng dụng cần tốc độ khung hình cao (FPS) trên phần cứng edge hạn chế (như Raspberry Pi hoặc chip di động đời cũ), các biến thể n và s của YOLOv8 mang lại sự cân bằng hiệu năng thiết thực hơn nhiều.
Hiệu quả huấn luyện và tích hợp hệ sinh thái#
Chọn model không chỉ đơn thuần là xem các bảng độ chính xác; trải nghiệm nhà phát triển cũng rất quan trọng.
Lợi thế của Ultralytics: Dễ sử dụng#
Huấn luyện YOLOv9 thường đòi hỏi phải clone các repository GitHub phức tạp, quản lý cẩn thận môi trường PyTorch và cấu hình thủ công trọng số loss phụ trợ.
Ngược lại, Ultralytics YOLOv8 được hỗ trợ bởi Python API được tinh giản đáng kể. Được xây dựng để dễ sử dụng, model xử lý sẵn việc tăng cường dữ liệu, ghi log (với các công cụ như Weights & Biases và Comet ML) cũng như phân phối workload trên phần cứng.
from ultralytics import YOLO
# Tải model YOLOv8 small đã huấn luyện trước
model = YOLO("yolov8s.pt")
# Huấn luyện model hiệu quả trên dữ liệu tùy chỉnh
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Xuất model để triển khai trên edge
model.export(format="engine", quantize=16) # Xuất sang TensorRTAPI duy nhất này giúp rút ngắn đáng kể thời gian từ prototype đến production. Ngoài ra, YOLOv8 thường yêu cầu ít bộ nhớ CUDA hơn trong quá trình huấn luyện, cho phép nhà phát triển sử dụng batch size lớn hơn trên phần cứng phổ thông.
Tính linh hoạt theo tác vụ#
Mặc dù YOLOv9 là một bộ phát hiện bounding box xuất sắc, các ứng dụng AI thị giác trong thực tế thường đòi hỏi nhiều hơn. YOLOv8 là một giải pháp đa năng mạnh mẽ, hỗ trợ sẵn Phân đoạn instance, Ước tính tư thế, Phân loại ảnh và Bounding box định hướng (OBB). Sử dụng một framework duy nhất cho nhiều tác vụ giúp giảm đáng kể độ cồng kềnh của phần mềm và chi phí bảo trì.
Nếu bắt đầu một dự án mới, bạn cũng có thể muốn đánh giá Ultralytics YOLO11 hoặc phiên bản tiên tiến nhất YOLO26, trong đó YOLO26 cung cấp tùy chọn suy luận end-to-end không cần NMS.
Các trường hợp sử dụng thực tế#
Các model này hoạt động ra sao trong môi trường production?
Drone tự hành và robotics#
Đối với các ứng dụng robotics cần tránh chướng ngại vật nhanh chóng, YOLOv8 là lựa chọn ưu tiên. Độ trễ cực thấp của YOLOv8n đảm bảo các hệ thống tự hành phản ứng với môi trường theo thời gian thực, tránh va chạm. Khả năng xuất model trực tiếp sang OpenVINO và CoreML giúp việc triển khai trên các chip công suất thấp thường dùng trong drone thương mại trở nên dễ dàng.
Phát hiện lỗi độ phân giải cao#
Trong các môi trường sản xuất chuyên biệt, nơi việc phát hiện những bất thường siêu nhỏ là yếu tố thiết yếu và có thể xử lý offline, YOLOv9 có thể đạt hiệu quả cao. Kiến trúc PGI giúp mạng giữ lại các chi tiết hình ảnh tinh vi cần thiết để nhận diện vết nứt nhỏ hoặc lỗi hàn trên PCB.
Phân tích bán lẻ thông minh và an ninh#
Để theo dõi khách hàng giữa các lối đi trong cửa hàng hoặc quản lý hệ thống thanh toán tự động, YOLOv8 mang lại sự cân bằng tốt nhất. Khả năng chạy đồng thời phát hiện và theo dõi nhiều vật thể bằng các thuật toán tiêu chuẩn như BoT-SORT giúp model trở thành giải pháp vững chắc cho các hệ thống bán lẻ nhiều camera.
Trường hợp sử dụng và khuyến nghị#
Việc lựa chọn giữa YOLOv8 và YOLOv9 phụ thuộc vào yêu cầu cụ thể của dự án, các giới hạn triển khai và hệ sinh thái bạn ưu tiên.
Khi nào nên chọn YOLOv8#
YOLOv8 là lựa chọn phù hợp cho:
- Triển khai đa tác vụ linh hoạt: Các dự án cần một model đã được kiểm chứng cho phát hiện, phân đoạn, phân loại và ước lượng tư thế trong hệ sinh thái Ultralytics.
- Hệ thống sản xuất đã thiết lập: Các môi trường sản xuất hiện có được xây dựng trên kiến trúc YOLOv8 với quy trình triển khai ổn định, đã được kiểm thử kỹ lưỡng.
- Hỗ trợ cộng đồng và hệ sinh thái rộng rãi: Các ứng dụng hưởng lợi từ kho hướng dẫn phong phú, tích hợp bên thứ ba và tài nguyên cộng đồng tích cực của YOLOv8.
Khi nào nên chọn YOLOv9#
YOLOv9 được khuyến nghị cho:
- Nghiên cứu về nút thắt thông tin: Các dự án học thuật nghiên cứu kiến trúc Programmable Gradient Information (PGI) và Generalized Efficient Layer Aggregation Network (GELAN).
- Nghiên cứu tối ưu hóa luồng gradient: Các nghiên cứu tập trung vào việc tìm hiểu và giảm thiểu mất mát thông tin trong các lớp mạng sâu khi huấn luyện.
- Đánh giá hiệu năng phát hiện độ chính xác cao: Các tình huống cần hiệu năng mạnh của YOLOv9 trên benchmark COCO làm mốc tham chiếu để so sánh kiến trúc.
Khi nào nên chọn Ultralytics (YOLO26)#
Với hầu hết dự án mới, Ultralytics YOLO26 mang đến sự kết hợp tốt nhất giữa hiệu năng và trải nghiệm dành cho nhà phát triển:
- Triển khai trên thiết bị biên không cần NMS: Các ứng dụng cần inference có độ trễ thấp và ổn định mà không phải xử lý hậu kỳ Non-Maximum Suppression phức tạp.
- Môi trường chỉ có CPU: Các thiết bị không có GPU tăng tốc chuyên dụng, nơi tốc độ CPU inference nhanh hơn đến 43% của YOLO26 mang lại lợi thế rõ rệt.
- Phát hiện vật thể nhỏ: Các tình huống khó như ảnh chụp từ drone trên không hoặc phân tích cảm biến IoT, trong đó ProgLoss và STAL cải thiện đáng kể độ chính xác khi phát hiện vật thể rất nhỏ.
Bước tiến tiếp theo: YOLO26#
YOLOv8 và YOLOv9 đều mạnh mẽ, nhưng lĩnh vực AI phát triển nhanh chóng. Với các nhóm cần hiệu năng tốt nhất, YOLO26 mới ra mắt kế thừa những thành tựu của các thế hệ trước.
YOLO26 giới thiệu tùy chọn thiết kế end-to-end không cần NMS (nms=False), loại bỏ các nút thắt hậu xử lý phức tạp, giúp triển khai đơn giản hơn và độ trễ dễ dự đoán hơn. Nhờ Optimizer MuSGD mới, các hàm loss ProgLoss + STAL được cải tiến và loại bỏ DFL (loại bỏ Distribution Focal Loss để đơn giản hóa quá trình xuất model và cải thiện khả năng tương thích với thiết bị edge/công suất thấp), model đạt tốc độ suy luận trên CPU nhanh hơn tới 43% đồng thời cải thiện khả năng nhận diện vật thể nhỏ. Với các nhà phát triển muốn khai thác tối đa điện toán edge, chúng tôi đặc biệt khuyến nghị đánh giá YOLO26.
Tóm lại, dù YOLOv9 mang đến những nghiên cứu kiến trúc hấp dẫn và độ chính xác đỉnh cao xuất sắc, Ultralytics YOLOv8 vẫn là lựa chọn thiết thực, được hỗ trợ tốt và linh hoạt nhất đối với phần lớn kỹ sư computer vision muốn nhanh chóng phát hành phần mềm đáng tin cậy.