YOLOv10 và YOLOv8#
Lĩnh vực phát hiện đối tượng thời gian thực liên tục chứng kiến sự ra đời nhanh chóng của các kiến trúc đột phá, mỗi kiến trúc đều tìm cách mở rộng giới hạn về độ chính xác, tốc độ suy luận và hiệu quả tính toán. Trong hướng dẫn kỹ thuật toàn diện này, chúng tôi so sánh hai cột mốc lớn trong lĩnh vực thị giác máy tính: YOLOv10 và Ultralytics YOLOv8. YOLOv8 thiết lập một tiêu chuẩn rất linh hoạt và sẵn sàng cho production, trong khi YOLOv10 giới thiệu những thay đổi kiến trúc nhằm loại bỏ các nút thắt hậu xử lý.
Việc hiểu rõ ưu điểm riêng, kiến trúc và chỉ số hiệu năng của các model này là rất quan trọng đối với developer và nhà nghiên cứu muốn triển khai các giải pháp AI thị giác tiên tiến nhất trong những tình huống thực tế.
Thông số kỹ thuật và nhóm tác giả#
Để đánh giá hiệu quả các model này, việc tìm hiểu nguồn gốc và trọng tâm chính của các nhóm nghiên cứu tương ứng sẽ hữu ích.
YOLOv10: Hiệu quả đầu-cuối#
Được phát triển bởi các nhà nghiên cứu tại Đại học Thanh Hoa, YOLOv10 được thiết kế để giải quyết chi phí tính toán phát sinh từ các bước hậu xử lý trong những thế hệ trước.
- Tác giả: Ao Wang, Hui Chen, Lihao Liu và cộng sự
- Tổ chức: Đại học Thanh Hoa
- Ngày: 2024-05-23
- Arxiv: 2405.14458
- GitHub: THU-MIG/yolov10
- Tài liệu: Tài liệu YOLOv10
Ultralytics YOLOv8: Tiêu chuẩn linh hoạt#
Ra mắt vào đầu năm 2023, YOLOv8 nhanh chóng trở thành lựa chọn phổ biến trong ngành nhờ kiến trúc mạnh mẽ và khả năng tích hợp vượt trội vào hệ sinh thái machine learning rộng lớn.
- Tác giả: Glenn Jocher, Ayush Chaurasia và Jing Qiu
- Tổ chức: Ultralytics
- Ngày: 2023-01-10
- GitHub: ultralytics/ultralytics
Các cải tiến kiến trúc#
Cả hai model đều cải tiến đáng kể kiến trúc YOLO truyền thống, dù chúng tập trung vào những khía cạnh hơi khác nhau của pipeline.
Kiến trúc YOLOv10#
Điểm nổi bật của YOLOv10 là chiến lược huấn luyện không cần NMS. Theo cách truyền thống, các bộ phát hiện đối tượng dựa vào ức chế phi cực đại (NMS) trong quá trình inference để lọc các hộp giới hạn chồng lấn. Bước này có thể làm tăng độ trễ và khiến việc triển khai end-to-end phức tạp hơn. YOLOv10 sử dụng cơ chế gán kép nhất quán trong quá trình huấn luyện, cho phép model tự nhiên dự đoán một hộp giới hạn chính xác duy nhất cho mỗi đối tượng. Ngoài ra, model áp dụng thiết kế tổng thể nhằm cân bằng hiệu quả và độ chính xác, tối ưu nhiều thành phần để giảm đáng kể FLOPs và số lượng tham số.
Kiến trúc YOLOv8#
YOLOv8 giới thiệu đầu phát hiện không dùng anchor, thay thế các phương pháp dựa trên anchor của những phiên bản tiền nhiệm. Điều này giúp giảm số lượng dự đoán hộp và tăng tốc các thao tác NMS. Ngoài ra, YOLOv8 tích hợp module C2f (nút thắt cổ chai phân đoạn từng phần theo giai đoạn với hai phép tích chập), giúp cải thiện luồng gradient và cho phép mạng học các biểu diễn đặc trưng phong phú hơn mà không làm tăng đáng kể chi phí tính toán. Đầu tách biệt phân chia riêng tác vụ phân loại và hồi quy, giúp hội tụ nhanh hơn và tăng độ chính xác tổng thể.
Hiệu năng và benchmark#
Khi triển khai model lên thiết bị edge hoặc máy chủ cloud, sự cân bằng giữa tốc độ và độ chính xác là yếu tố then chốt. Bảng dưới đây so sánh trực tiếp hai model ở nhiều kích thước khác nhau.
| Model | kích thước (pixel) | mAPval 50-95 | Tốc độ CPU ONNX (ms) | Tốc độ T4 TensorRT10 (ms) | params (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv10n | 640 | 38.5 | - | 1.84 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.3 | - | 2.49 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.1 | - | 4.74 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.5 | - | 5.74 | 19.1 | 92.0 |
| YOLOv10l | 640 | 53.2 | - | 7.28 | 24.4 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 10.70 | 29.5 | 160.4 |
| 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 |
Lưu ý: Dấu gạch ngang (-) biểu thị các chỉ số chưa được báo cáo chính thức trong điều kiện kiểm thử giống hệt nhau.
Như dữ liệu cho thấy, YOLOv10 có hiệu quả sử dụng tham số vượt trội, thường đạt mAP ngang bằng hoặc cao hơn các phiên bản YOLOv8 tương ứng trong khi sử dụng ít tham số và FLOPs hơn. Tuy nhiên, YOLOv8 vẫn có tính cạnh tranh cao, với tích hợp TensorRT được tối ưu tốt, giúp giảm thiểu độ trễ inference trên GPU hiện đại.
Khi nhắm đến môi trường production, sử dụng các định dạng như ONNX hoặc TensorRT có thể cải thiện đáng kể tốc độ inference. Cả YOLOv8 và YOLOv10 đều hỗ trợ xuất model liền mạch sang các định dạng graph được tối ưu cao này.
Hệ sinh thái, hiệu quả huấn luyện và tính linh hoạt#
Việc chọn model không chỉ dựa vào benchmark lý thuyết; trải nghiệm của developer và hệ sinh thái xung quanh cũng quan trọng không kém.
Lợi thế của Ultralytics#
Một trong những thế mạnh cốt lõi của YOLOv8 là khả năng tích hợp chặt chẽ với hệ sinh thái Ultralytics. Môi trường này mang đến trải nghiệm từ “zero đến thành thạo”, với Python API trực quan và tài liệu phong phú. Không giống các repository tập trung vào nghiên cứu có thể yêu cầu thiết lập môi trường phức tạp, các model Ultralytics nổi tiếng nhờ dễ sử dụng.
Ngoài ra, YOLOv8 vốn rất linh hoạt. Trong khi YOLOv10 chỉ được tối ưu cho phát hiện đối tượng, framework Ultralytics cho phép developer chuyển đổi liền mạch giữa các tác vụ phát hiện đối tượng, phân đoạn instance, phân loại ảnh, ước lượng tư thế và hộp giới hạn định hướng (OBB) trong cùng một thư viện và cấu trúc API.
Yêu cầu bộ nhớ và huấn luyện#
Các model Ultralytics YOLO được thiết kế chú trọng hiệu quả huấn luyện. So với các model Transformer phức tạp, chúng thường dùng ít bộ nhớ hơn trong quá trình huấn luyện và inference, cho phép developer huấn luyện các model hiện đại nhất trên phần cứng phổ thông hoặc instance cloud tiêu chuẩn mà không hết bộ nhớ CUDA. Hyperparameter mặc định được tinh chỉnh tốt cùng các phương pháp tăng cường dữ liệu tích hợp giúp đảm bảo hội tụ nhanh.
Dưới đây là ví dụ thực tế cho thấy việc huấn luyện và kiểm định model bằng Python API của Ultralytics đơn giản như thế nào:
from ultralytics import YOLO
# Tải model đã huấn luyện trước (khuyến nghị YOLOv8 cho các tác vụ tổng quát)
model = YOLO("yolov8n.pt")
# Huấn luyện model trên dataset COCO8 với cơ chế quản lý bộ nhớ tự động
results = model.train(data="coco8.yaml", epochs=50, imgsz=640, device=0)
# Chạy inference trên ảnh kiểm thử
predictions = model("https://ultralytics.com/images/zidane.jpg")
predictions[0].show()Thế hệ tiếp theo: YOLO26#
Dù YOLOv8 và YOLOv10 là những cột mốc ấn tượng, lĩnh vực machine learning vẫn không ngừng phát triển. Với developer bắt đầu dự án mới, chúng tôi đặc biệt khuyến nghị sử dụng YOLO26, model chủ lực mới nhất của Ultralytics, ra mắt vào tháng 1 năm 2026.
YOLO26 kết hợp những tiến bộ kiến trúc tốt nhất trong những năm qua vào một framework duy nhất được tối ưu cao. Model kế thừa thiết kế end-to-end không cần NMS do các model như YOLOv10 tiên phong, giúp tinh giản pipeline triển khai và giảm biến động độ trễ. Ngoài ra, YOLO26 giới thiệu optimizer MuSGD, một phương pháp lai lấy cảm hứng từ độ ổn định trong huấn luyện LLM, giúp hội tụ nhanh và ổn định hơn.
Các cải tiến chính của YOLO26 gồm:
- Inference trên CPU nhanh hơn tới 43%: Được tối ưu mạnh cho thiết bị edge nhờ loại bỏ Distribution Focal Loss (DFL).
- ProgLoss + STAL: Các hàm loss tiên tiến giúp cải thiện đáng kể khả năng nhận diện đối tượng nhỏ, yếu tố thiết yếu với ảnh chụp từ drone và cảm biến IoT.
- Cải tiến theo tác vụ: Kiến trúc chuyên biệt cho phân đoạn, ước lượng tư thế và OBB, đảm bảo hiệu năng hàng đầu trên mọi lĩnh vực thị giác máy tính.
Trường hợp sử dụng lý tưởng và chiến lược triển khai#
Khi lựa chọn giữa các kiến trúc này, hãy cân nhắc nhu cầu cụ thể của môi trường triển khai:
- Chọn YOLOv10 nếu: Bạn đang xây dựng pipeline chỉ dành cho phát hiện đối tượng, cần tối đa hóa hiệu quả tham số và muốn thử nghiệm các triển khai ban đầu của kiến trúc không cần NMS.
- Chọn Ultralytics YOLOv8 nếu: Bạn cần một model ổn định cao, sẵn sàng cho production và được hỗ trợ bởi Ultralytics Platform mạnh mẽ. Đây là lựa chọn lý tưởng nếu dự án yêu cầu nhiều tác vụ (ví dụ: phát hiện đối tượng rồi phân đoạn chúng) trên cùng một codebase thống nhất, dễ bảo trì.
- Chọn YOLO26 (Khuyến nghị) nếu: Bạn muốn đạt sự cân bằng tối ưu giữa độ chính xác hiện đại nhất, hiệu quả không cần NMS end-to-end nguyên bản và tốc độ cao nhất có thể trên CPU cùng phần cứng edge.
Nếu đang tìm hiểu bức tranh tổng thể, bạn cũng có thể muốn so sánh các model này với YOLO11 hoặc khám phá các tích hợp triển khai edge cụ thể như Intel OpenVINO để tăng tốc thêm cho các ứng dụng AI thị giác. Nhờ sử dụng các công cụ thống nhất do Ultralytics cung cấp, việc triển khai giải pháp thị giác máy tính mạnh mẽ chưa bao giờ dễ tiếp cận đến vậy.