YOLOv10 và YOLOv5#
Lựa chọn kiến trúc mạng nơ-ron phù hợp có ý nghĩa then chốt để triển khai thành công các pipeline computer vision trong production. Trang này cung cấp phân tích kỹ thuật chuyên sâu, so sánh YOLOv10 và YOLOv5, hai model có ảnh hưởng lớn trong quá trình phát triển của object detection thời gian thực. Dù cả hai model đều tạo ra tác động đáng kể trong cộng đồng AI, chúng đại diện cho những thời kỳ và triết lý thiết kế kiến trúc deep learning khác nhau.
Hướng dẫn này đánh giá các kiến trúc dựa trên độ chính xác trung bình trung bình (mAP), độ trễ suy luận, hiệu quả tham số và hỗ trợ hệ sinh thái, giúp bạn chọn model phù hợp nhất với nhu cầu triển khai.
Tổng quan về model#
YOLOv10: Phát hiện đối tượng end-to-end theo thời gian thực#
Được phát triển bởi các nhà nghiên cứu tại Đại học Thanh Hoa, YOLOv10 giới thiệu một phương pháp mới cho object detection bằng cách loại bỏ nhu cầu hậu xử lý.
- 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
- Bài báo nghiên cứu: arXiv:2405.14458
- Mã nguồn: Kho GitHub YOLOv10
Bước đột phá định hình của YOLOv10 là Thiết kế end-to-end không cần NMS. Trước đây, các model YOLO dựa vào Non-Maximum Suppression (NMS) để lọc các bounding box dư thừa. YOLOv10 sử dụng phương pháp gán kép nhất quán để huấn luyện không cần NMS, qua đó giảm đáng kể biến động độ trễ suy luận và đơn giản hóa logic triển khai. Ngoài ra, kiến trúc có thiết kế toàn diện hướng đến hiệu quả và độ chính xác, tối ưu triệt để nhiều thành phần để giảm dư thừa tính toán.
YOLOv5: Tiêu chuẩn ngành về tính dễ sử dụng#
Ra mắt ngay sau khi kho Ultralytics PyTorch được thành lập, YOLOv5 đã định hình lại kỳ vọng của developer về một framework AI thị giác mã nguồn mở. Đây vẫn là một trong những kiến trúc được triển khai rộng rãi nhất trên toàn cầu.
- Tác giả: Glenn Jocher
- Tổ chức: Ultralytics
- Ngày: 2020-06-26
- Mã nguồn: Kho GitHub YOLOv5
YOLOv5 được đánh giá cao nhờ Dễ sử dụng và Hệ sinh thái được bảo trì tốt. Được viết hoàn toàn bằng PyTorch, model mang đến trải nghiệm liền mạch từ "bắt đầu từ con số không đến thành thạo", với hỗ trợ sẵn cho huấn luyện, validation và export sang các định dạng như ONNX và TensorRT. Không như YOLOv10 chủ yếu tập trung vào object detection thuần túy, YOLOv5 thể hiện Tính linh hoạt vượt trội khi hỗ trợ phân đoạn đối tượng và phân loại ảnh trong cùng một Python API thống nhất.
So sánh hiệu năng và chỉ số#
Trực quan hóa mối quan hệ giữa tốc độ và độ chính xác là điều cần thiết để xác định model mang lại độ chính xác tốt nhất trong một giới hạn tốc độ nhất định. Hiểu rõ các chỉ số hiệu năng này là nền tảng để lựa chọn model phù hợp với các giới hạn phần cứng cụ thể của bạn.
| 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 |
| YOLOv5n | 640 | 28.0 | - | 1.12 | 1.9 | 4.5 |
| YOLOv5s | 640 | 37.4 | - | 1.92 | 7.2 | 16.5 |
| YOLOv5m | 640 | 45.4 | - | 4.03 | 21.2 | 49.0 |
| YOLOv5l | 640 | 49.0 | - | 6.61 | 46.5 | 109.1 |
| YOLOv5x | 640 | 50.7 | - | 11.89 | 86.7 | 205.7 |
Phân tích kỹ thuật#
- Độ chính xác (mAP): YOLOv10 cho thấy ưu thế rõ rệt về độ chính xác giữa các thế hệ. Chẳng hạn, model YOLOv10-X đạt 54.4% mAPval, vượt YOLOv5x (50.7% mAP). Bước tiến này phần lớn đến từ chiến lược huấn luyện không cần NMS và những cải tiến kiến trúc được giới thiệu vào năm 2024.
- Độ trễ suy luận: Model YOLOv5 đặc biệt nhanh trong các benchmark TensorRT T4 thuần (ví dụ: YOLOv5n đạt 1.12ms), nhưng YOLOv10 loại bỏ hoàn toàn bước hậu xử lý NMS. Trong các triển khai thực tế end-to-end, thiết kế không cần NMS của YOLOv10 mang lại độ trễ nhất quán và có tính xác định hơn, điều này rất quan trọng đối với các ứng dụng thời gian thực như xe tự hành và robot.
- Hiệu quả tham số: Các model YOLOv10 duy trì Cân bằng hiệu năng rất cạnh tranh. YOLOv10-S đạt 46.3% mAP với 7.2M tham số, bằng số lượng tham số của YOLOv5s nhưng YOLOv5s chỉ đạt 37.4% mAP.
Khi triển khai lên các thiết bị AI edge như NVIDIA Jetson, các model không có logic NMS (như YOLOv10 hoặc YOLO26 được export với nms=False) thường được biên dịch sang TensorRT dễ dàng hơn, tránh các thao tác dự phòng trên CPU.
Trường hợp sử dụng và khuyến nghị#
Việc lựa chọn giữa YOLOv10 và YOLOv5 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à lựa chọn hệ sinh thái của bạn.
Khi nào nên chọn YOLOv10#
YOLOv10 là lựa chọn phù hợp 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 YOLOv5#
YOLOv5 được khuyến nghị cho:
- Các hệ thống production đã được kiểm chứng: Những triển khai hiện có coi trọng lịch sử ổn định lâu dài, tài liệu phong phú và sự hỗ trợ rộng rãi từ cộng đồng của YOLOv5.
- Huấn luyện với tài nguyên hạn chế: Các môi trường có tài nguyên GPU hạn chế, nơi pipeline huấn luyện hiệu quả và nhu cầu bộ nhớ thấp hơn của YOLOv5 là một lợi thế.
- Hỗ trợ nhiều định dạng export: Các dự án cần triển khai trên nhiều định dạng, bao gồm ONNX, TensorRT, CoreML và LiteRT.
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ỏ.
Lợi thế của Ultralytics#
Dù YOLOv10 có năng lực detection xuất sắc, việc dựa vào các kho học thuật đôi khi có thể làm phức tạp pipeline production. Khi sử dụng gói Python chính thức của Ultralytics, bạn có quyền truy cập vào một hệ sinh thái thống nhất hỗ trợ cả YOLOv5 lẫn YOLOv10, cùng nhiều tính năng nâng cao.
- Hiệu quả huấn luyện: Các kiến trúc Ultralytics YOLO được tối ưu sâu để giảm nhu cầu bộ nhớ trong quá trình huấn luyện. Không như các model Transformer nặng (chẳng hạn RT-DETR) cần dung lượng bộ nhớ CUDA rất lớn, bạn có thể dễ dàng huấn luyện YOLOv5 và YOLOv10 trên các GPU phổ thông.
- Tích hợp hệ sinh thái: Khả năng tích hợp với Ultralytics Platform cho phép developer quản lý dataset trực quan, theo dõi experiment bằng Weights & Biases và tự động tinh chỉnh hyperparameter.
Ví dụ code: Huấn luyện liền mạch#
Với thư viện Ultralytics, việc chuyển đổi giữa các kiến trúc này đơn giản như thay đổi chuỗi tên model. Pipeline huấn luyện tự động xử lý tăng cường dữ liệu, điều chỉnh tỷ lệ và cấu hình optimizer.
from ultralytics import YOLO
# Để dùng YOLOv5:
# model = YOLO("yolov5su.pt")
# Để dùng YOLOv10:
model = YOLO("yolov10s.pt")
# Huấn luyện model trên dataset tùy chỉnh
results = model.train(
data="coco8.yaml",
epochs=100,
imgsz=640,
batch=16,
device=0, # Dùng GPU 0
)
# Export model đã huấn luyện sang định dạng ONNX
path = model.export(format="onnx")Thế hệ tiếp theo: Ultralytics YOLO26#
Nếu hôm nay bạn bắt đầu một dự án machine learning mới, chúng tôi đặc biệt khuyến nghị đánh giá Ultralytics YOLO26 mới nhất. Được phát hành vào tháng 1 năm 2026, model đại diện cho công nghệ tiên tiến nhất hiện nay khi kết hợp những đổi mới tốt nhất trong năm năm qua.
YOLO26 tích hợp sẵn Thiết kế end-to-end không cần NMS do YOLOv10 tiên phong dưới dạng head một-một tùy chọn (nms=False), cho phép triển khai nhanh chóng và có tính xác định. Ngoài ra, YOLO26 giới thiệu một số đột phá quan trọng:
- Suy luận CPU nhanh hơn tới 43%: Bằng cách loại bỏ module Distribution Focal Loss (DFL), YOLO26 tăng tốc đáng kể trên các CPU phổ thông, trở thành lựa chọn hàng đầu cho triển khai trên thiết bị di động và cảm biến IoT công suất thấp.
- Optimizer MuSGD: Lấy cảm hứng từ các kỹ thuật huấn luyện Large Language Model (LLM) như Kimi K2 của Moonshot AI, YOLO26 sử dụng phương pháp kết hợp SGD và Muon. Điều này đảm bảo các lần chạy huấn luyện cực kỳ ổn định và hội tụ nhanh hơn nhiều so với các optimizer SGD và AdamW tiêu chuẩn được sử dụng trong các model YOLO trước đây.
- ProgLoss + STAL: Các hàm loss tiên tiến này cải thiện đáng kể khả năng nhận diện đối tượng nhỏ, yếu tố then chốt cho ảnh chụp bằng drone và các ứng dụng an ninh hàng không.
- Làm chủ theo từng tác vụ: Trong khi YOLOv10 chỉ là detector bounding box, YOLO26 cung cấp các cải tiến kiến trúc chuyên biệt cho mọi tác vụ, bao gồm Ước lượng log-khả năng có điều kiện (RLE) cho Pose và các hàm loss góc chuyên biệt cho Bounding Box định hướng (OBB).
Nếu bạn đang khám phá bức tranh tổng quan hơn về object detection, bạn cũng có thể quan tâm đến việc so sánh các kiến trúc này với những framework khác. Hãy xem các bài phân tích chuyên sâu của chúng tôi về YOLO11 và EfficientDet hoặc RT-DETR và YOLOv8 để tham khảo benchmark toàn diện hơn.
Dù bạn sử dụng nền tảng vững chắc của YOLOv5, đổi mới không cần NMS của YOLOv10 hay hiệu năng tiên tiến vượt trội của YOLO26, hệ sinh thái Ultralytics đều cung cấp các công cụ cần thiết để nhanh chóng và hiệu quả đưa ứng dụng AI thị giác của bạn vào thực tế.