YOLOv6-3.0 và YOLOv10#
Lĩnh vực thị giác máy tính ngày càng phức tạp, khiến việc chọn model tối ưu trở thành quyết định quan trọng đối với developer và kỹ sư machine learning. Khi đánh giá quá trình phát triển của tác vụ phát hiện vật thể và các model Ultralytics YOLO, điều quan trọng là phải hiểu những đánh đổi giữa các phương pháp kiến trúc khác nhau. Hướng dẫn này so sánh toàn diện về kỹ thuật giữa YOLOv6-3.0 và YOLOv10, hai model có ưu điểm riêng khi triển khai trong môi trường công nghiệp và edge.
Tìm hiểu YOLOv6-3.0: Thiết kế cho thông lượng công nghiệp#
Được phát triển để tối đa hóa thông lượng trong các ứng dụng công nghiệp phía máy chủ, YOLOv6-3.0 ưu tiên suy luận nhanh trên bộ tăng tốc phần cứng, đặc biệt là GPU. Nhờ sử dụng backbone được tối ưu hóa, model hướng tới sự cân bằng giữa xử lý video tốc độ cao và độ chính xác cạnh tranh.
- Tác giả: Chuyi Li, Lulu Li, Yifei Geng, và cộng sự.
- Tổ chức: Meituan
- Ngày: 2023-01-13
- Arxiv: 2301.05586
- GitHub: meituan/YOLOv6
Điểm nổi bật về kiến trúc#
Cốt lõi của YOLOv6-3.0 là thiết kế thân thiện với phần cứng. Model tích hợp module Ghép nối hai chiều (BiC) trong kiến trúc neck để tăng cường hợp nhất đặc trưng đa tỷ lệ. Ngoài ra, mạng sử dụng chiến lược Huấn luyện có hỗ trợ anchor (AAT), kết hợp khéo léo độ ổn định của các bộ phát hiện dựa trên anchor trong quá trình huấn luyện với tốc độ suy luận của phương pháp không dùng anchor.
Được tăng tốc bởi backbone EfficientRep, model này phát huy hiệu quả trong các tác vụ tự động hóa sản xuất cường độ cao, nơi xử lý theo lô trên phần cứng NVIDIA mạnh (chẳng hạn GPU T4 hoặc A100) là thông lệ. Model hoạt động tốt trong các cụm máy chủ, nhưng sự phụ thuộc vào các tối ưu hóa phần cứng cụ thể có thể làm giảm hiệu quả trên CPU edge công suất thấp.
Tìm hiểu YOLOv10: Tiên phong không cần NMS#
Ra mắt hơn một năm sau đó, YOLOv10 tạo bước chuyển đổi bằng cách giải quyết một trong những nút thắt dai dẳng nhất trong pipeline phát hiện truyền thống: hậu xử lý bằng loại bỏ hộp giới hạn không cực đại (NMS).
- 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
Điểm nổi bật về kiến trúc#
Đóng góp lớn của YOLOv10 cho lĩnh vực này là thiết kế end-to-end không cần NMS. Bằng cách sử dụng cơ chế gán kép nhất quán trong quá trình huấn luyện, mạng được buộc phải tạo ra chính xác một bounding box chất lượng cao cho mỗi vật thể, loại bỏ nhu cầu thực hiện các thao tác NMS dựa trên heuristic khi suy luận. Đổi mới này giúp giảm đáng kể độ trễ suy luận end-to-end và đơn giản hóa đáng kể logic triển khai trên các thiết bị edge như bộ xử lý thần kinh (NPU).
Ngoài ra, model có thiết kế tổng thể hướng đến hiệu quả và độ chính xác. Thông qua tối ưu hóa toàn diện nhiều layer, YOLOv10 giảm mạnh phần tính toán dư thừa. Nhờ vậy, model rất phù hợp với môi trường hạn chế tài nguyên, bao gồm xe tự hành và robot edge.
So sánh hiệu năng chi tiết#
Khi benchmark các model này, hiệu năng thường được đo theo độ chính xác, tốc độ và hiệu quả sử dụng tham số. Bảng dưới đây minh họa hiệu năng của các quy mô khác nhau trong những kiến trúc này.
| Model | kích thước (pixel) | mAPval 50-95 | Tốc độ CPU ONNX (ms) | Tốc độ T4 TensorRT10 (ms) | params (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv6-3.0n | 640 | 37.5 | - | 1.17 | 4.7 | 11.4 |
| YOLOv6-3.0s | 640 | 45.0 | - | 2.66 | 18.5 | 45.3 |
| YOLOv6-3.0m | 640 | 50.0 | - | 5.28 | 34.9 | 85.8 |
| YOLOv6-3.0l | 640 | 52.8 | - | 8.95 | 59.6 | 150.7 |
| 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 |
Phân tích#
YOLOv10 luôn đạt độ chính xác trung bình (mAP) cao hơn YOLOv6-3.0 trong các nhóm kích thước tương đương. Ví dụ, YOLOv10n đạt mAP 38.5% chỉ với 2.3 triệu tham số, trong khi YOLOv6-3.0n đạt 37.5% với số tham số nhiều hơn gấp đôi. Tuy nhiên, YOLOv6-3.0n có độ trễ suy luận TensorRT thuần nhanh hơn trên GPU T4 (1.17ms), cho thấy model được tối ưu sâu cho phần cứng xử lý song song.
Mặc dù các chỉ số độ trễ thuần trên GPU có thể hơi nghiêng về YOLOv6 trong các micro-benchmark, việc YOLOv10 không cần NMS thường giúp pipeline end-to-end trong thực tế chạy nhanh hơn, đặc biệt trên phần cứng edge, nơi hậu xử lý có thể tạo nút thắt cho CPU.
Trường hợp sử dụng và khuyến nghị#
Việc chọn YOLOv6 hay YOLOv10 phụ thuộc vào yêu cầu cụ thể của dự án, các ràng buộc triển khai và ưu tiên về hệ sinh thái.
Khi nào nên chọn YOLOv6#
YOLOv6 là lựa chọn phù hợp cho:
- Triển khai tương thích với phần cứng công nghiệp: Các tình huống mà thiết kế nhận biết phần cứng và tái tham số hóa hiệu quả của model mang lại hiệu năng tối ưu trên phần cứng mục tiêu cụ thể.
- Detection một giai đoạn tốc độ cao: Các ứng dụng ưu tiên tốc độ suy luận GPU thô để xử lý video thời gian thực trong môi trường được kiểm soát.
- Tích hợp hệ sinh thái Meituan: Các nhóm đang làm việc trong ngăn xếp công nghệ và hạ tầng triển khai của Meituan.
Khi nào nên chọn YOLOv10#
YOLOv10 được khuyến nghị cho:
- Phát hiện thời gian thực không cần NMS: Các ứng dụng hưởng lợi từ khả năng phát hiện end-to-end không cần Non-Maximum Suppression, giúp giảm độ phức tạp khi triển khai.
- Cân bằng giữa tốc độ và độ chính xác: Các dự án cần sự cân bằng tốt giữa tốc độ inference và độ chính xác phát hiện trên nhiều quy mô model.
- Ứng dụng cần độ trễ ổn định: Các tình huống triển khai yêu cầu thời gian inference có thể dự đoán, chẳng hạn như robotics hoặc hệ thống tự hành.
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ỏ.
Ưu thế của Ultralytics: Vì sao YOLO26 là lựa chọn vượt trội#
Mặc dù YOLOv6-3.0 và YOLOv10 cung cấp các kiến trúc nền tảng vững chắc, môi trường production hiện đại đòi hỏi model kết hợp độ chính xác hàng đầu với khả năng sử dụng dễ dàng. Đây là điểm mà framework model Ultralytics YOLO26 vượt trội rõ rệt so với các bản phát hành học thuật độc lập.
Ra mắt vào tháng 1 năm 2026, YOLO26 tích hợp những cải tiến tốt nhất của các năm trước và được đóng gói trong một hệ sinh thái được duy trì tỉ mỉ.
Những cải tiến chính của YOLO26#
- Thiết kế end-to-end không cần NMS: Dựa trên khái niệm tiên phong trong YOLOv10, head one-to-one tùy chọn của YOLO26 (
nms=False) bỏ qua bước hậu xử lý NMS, giúp thời gian suy luận ổn định và dễ dự đoán hơn, đồng thời dễ đưa vào production hơn đáng kể. - Optimizer MuSGD: Lấy cảm hứng từ các phương pháp tối ưu hóa LLM như Kimi K2 của Moonshot AI, optimizer lai giữa SGD và Muon này đảm bảo quá trình huấn luyện cực kỳ ổn định và hội tụ nhanh hơn rõ rệt.
- Suy luận trên CPU nhanh hơn tới 43%: YOLO26 có các đơn giản hóa kiến trúc dành riêng cho thiết bị edge, giúp model vượt trội rõ rệt khi triển khai trên chip IoT và CPU phổ thông.
- Loại bỏ DFL: Việc loại bỏ Distribution Focal Loss đơn giản hóa quá trình export head, cải thiện đáng kể khả năng tương thích với các engine triển khai công suất thấp như OpenVINO hoặc NCNN.
- ProgLoss + STAL: Các công thức loss nâng cao giúp tăng đáng kể độ chính xác khi nhận diện vật thể nhỏ, yếu tố quan trọng đối với hoạt động UAV bằng drone và theo dõi đối tượng ở xa.
Ngoài ra, không giống các repository chỉ hỗ trợ một tác vụ, hệ sinh thái Ultralytics hỗ trợ sẵn nhiều tác vụ thị giác, bao gồm phát hiện bounding box, phân đoạn instance, phân loại ảnh và ước lượng tư thế.
Hiệu quả huấn luyện và tối ưu hóa bộ nhớ#
Một ưu điểm quan trọng của các model Ultralytics YOLO so với kiến trúc dựa trên Transformer như RT-DETR phức tạp là mức tiêu thụ bộ nhớ CUDA cực thấp trong quá trình huấn luyện. Developer có thể dễ dàng fine-tune YOLO26 trên GPU phổ thông hoặc thông qua tài nguyên cloud miễn phí, góp phần dân chủ hóa đáng kể quá trình phát triển AI.
Ví dụ code: Bắt đầu với YOLO26#
Tính dễ sử dụng của Ultralytics Python API cho phép bạn tải, huấn luyện và kiểm thử model chỉ với vài dòng code.
from ultralytics import YOLO
# Khởi tạo model nano YOLO26 tiên tiến
model = YOLO("yolo26n.pt")
# Huấn luyện model dễ dàng trên dataset COCO8
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=0)
# Đánh giá hiệu năng model trên dữ liệu validation
metrics = model.val()
# Chạy suy luận thời gian thực không cần NMS trên ảnh đầu vào
predictions = model.predict("https://ultralytics.com/images/bus.jpg", nms=False)
# Export sang định dạng ONNX để triển khai đa nền tảng
model.export(format="onnx")Kết luận và các lựa chọn thay thế#
Khi chọn giữa YOLOv6-3.0 và YOLOv10, quyết định phụ thuộc vào môi trường triển khai. YOLOv6-3.0 vẫn phù hợp với backend máy chủ có thông lượng cao, trang bị nhiều GPU và tập trung xử lý video theo lô. YOLOv10 cung cấp kiến trúc thông minh hơn, không cần NMS, phù hợp hơn với yêu cầu cân bằng độ chính xác và tích hợp edge phức tạp.
Tuy nhiên, với developer muốn đạt hiệu năng không thỏa hiệp, được hỗ trợ bởi tài liệu toàn diện, ghi log trên cloud thông qua Nền tảng Ultralytics và tính linh hoạt đa tác vụ, YOLO26 là lựa chọn được khuyến nghị dứt khoát.
Với yêu cầu về hạ tầng cũ, các nhóm cũng có thể tìm hiểu thế hệ trước Ultralytics YOLO11, hoặc khám phá YOLO-World để khai thác khả năng phát hiện với từ vựng mở độc đáo.