YOLOv10 so với YOLOv5#
Việc lựa chọn kiến trúc mạng nơ-ron phù hợp là yếu tố then chốt để triển khai thành công các pipeline thị giác máy tính trong môi trường 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 bài toán phát hiện đối tượng theo thời gian thực. Mặc dù cả hai model đều tạo ra những tác động đáng kể trong cộng đồng AI, chúng đại diện cho các thời kỳ và triết lý khác nhau trong thiết kế kiến trúc deep learning.
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 (mAP), độ trễ suy luận, hiệu quả tham số và khả năng hỗ trợ của hệ sinh thái, giúp bạn lựa chọn model tốt nhất cho nhu cầu triển khai.
Tổng quan về model#
YOLOv10: Phát hiện đối tượng đầu-cuối 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 cách tiếp cận mới đối với bài toán phát hiện đối tượng 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 lưu trữ YOLOv10 trên GitHub
Bước đột phá định hình YOLOv10 là Thiết kế End-to-End không cần NMS. Trong lịch sử, 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 cơ chế gán kép nhất quán cho quá trình huấn luyện không cần NMS, giúp giảm đáng kể độ biến thiên của độ trễ suy luận và đơn giản hóa logic triển khai. Ngoài ra, kiến trúc này có thiết kế tổng thể hướng đến hiệu quả và độ chính xác, tối ưu hóa kỹ lưỡng nhiều thành phần để giảm dư thừa tính toán.
YOLOv5: Tiêu chuẩn ngành về khả năng sử dụng#
Được phát hành ngay sau khi kho PyTorch của Ultralytics ra mắt, YOLOv5 đã định nghĩa lại những gì các developer kỳ vọng ở một framework AI thị giác mã nguồn mở. Model nà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 lưu trữ YOLOv5 trên GitHub
YOLOv5 được đánh giá cao nhờ Dễ sử dụng và Hệ sinh thái được duy trì tốt. Được viết hoàn toàn bằng PyTorch, model này mang lại trải nghiệm "zero-to-hero" liền mạch với khả năng hỗ trợ sẵn cho việc huấn luyện, validation và export sang các định dạng như ONNX và TensorRT. Không giống YOLOv10, vốn chủ yếu tập trung vào phát hiện đối tượng thuần túy, YOLOv5 thể hiện Tính linh hoạt vượt trội khi hỗ trợ phân đoạn instance 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à các chỉ số#
Việc trực quan hóa mối quan hệ giữa tốc độ và độ chính xác là yếu tố thiết yếu để xác định những model cung cấp độ 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 metric 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) | tham số (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv10n | 640 | 39.5 | - | 1.56 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.7 | - | 2.66 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.3 | - | 5.48 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.7 | - | 6.54 | 24.4 | 92.0 |
| YOLOv10l | 640 | 53.3 | - | 8.33 | 29.5 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 12.2 | 56.9 | 160.4 |
| YOLOv5n | 640 | 28.0 | 73.6 | 1.12 | 2.6 | 7.7 |
| YOLOv5s | 640 | 37.4 | 120.7 | 1.92 | 9.1 | 24.0 |
| YOLOv5m | 640 | 45.4 | 233.9 | 4.03 | 25.1 | 64.2 |
| YOLOv5l | 640 | 49.0 | 408.4 | 6.61 | 53.2 | 135.0 |
| YOLOv5x | 640 | 50.7 | 763.2 | 11.89 | 97.2 | 246.4 |
Phân tích kỹ thuật#
- Độ chính xác (mAP): YOLOv10 thể hiện ưu thế rõ rệt về độ chính xác qua các thế hệ. Chẳng hạn, model YOLOv10-X đạt 54.4% mAPval, vượt qua 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à các tinh chỉnh kiến trúc được giới thiệu vào năm 2024.
- Độ trễ suy luận: Mặc dù các model YOLOv5 có tốc độ đặc biệt cao trên các benchmark TensorRT T4 thuần túy (ví dụ: YOLOv5n ở mức 1.12ms), YOLOv10 loại bỏ hoàn toàn bước hậu xử lý NMS. Trong các triển khai end-to-end thực tế, 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 cao 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.7% mAP với chỉ 7.2M tham số, trong khi YOLOv5s đạt 37.4% mAP với 9.1M tham số.
Khi triển khai lên các thiết bị AI biên như NVIDIA Jetson, các model không chứa logic NMS (như YOLOv10 và YOLO26) thường được biên dịch sang TensorRT dễ dàng hơn, tránh phải chuyển các phép toán dự phòng sang CPU.
Các 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à ưu tiên về 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 đầu cuối mà không cần triệt tiêu cực đại, 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 project yêu cầu sự cân bằng tốt giữa tốc độ suy luận và độ chính xác phát hiện trên nhiều quy mô model khác nhau.
- Ứng dụng có độ trễ nhất quán: Các kịch bản triển khai mà thời gian suy luận có thể dự đoán là yếu tố quan trọng, chẳng hạn như robotics hoặc các hệ thống tự hành.
Khi nào nên chọn YOLOv5#
YOLOv5 được khuyến nghị cho:
- Hệ thống production đã được kiểm chứng: Các triển khai hiện có, trong đó bề dày ổn định, tài liệu phong phú và sự hỗ trợ lớn từ cộng đồng của YOLOv5 được đánh giá cao.
- Huấn luyện trong điều kiện hạn chế tài nguyên: 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à yêu cầu bộ nhớ thấp hơn của YOLOv5 mang lại lợi thế.
- Hỗ trợ đa dạng định dạng export: Các dự án yêu cầu triển khai trên nhiều định dạng, bao gồm ONNX, TensorRT, CoreML và TFLite.
Khi nào nên chọn Ultralytics (YOLO26)#
Đối 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 developer:
- Triển khai edge không cần NMS: Các ứng dụng yêu cầu suy luận nhất quán, độ trễ thấp mà không có sự phức tạp của bước hậu xử lý triệt tiêu cực đại.
- Môi trường chỉ sử dụng CPU: Các thiết bị không có tăng tốc GPU chuyên dụng, nơi khả năng suy luận trên CPU nhanh hơn tới 43% của YOLO26 mang lại lợi thế quyết định.
- Phát hiện đối tượng nhỏ: Các kịch bản đầy thách thức 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 trên các đối tượng rất nhỏ.
Lợi thế của Ultralytics#
Mặc dù YOLOv10 cung cấp năng lực phát hiện tuyệt vời, việc phụ thuộc vào các kho lưu trữ học thuật đôi khi có thể làm phức tạp pipeline production. Bằng cách sử dụng package 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 và YOLOv10 cùng các tính năng nâng cao.
- Hiệu quả huấn luyện: Các kiến trúc YOLO của Ultralytics được tối ưu hóa chuyên sâu để giảm yêu cầu bộ nhớ trong quá trình huấn luyện. Không giống các model Transformer nặng (chẳng hạn RT-DETR) cần lượng lớn bộ nhớ CUDA, bạn có thể dễ dàng huấn luyện YOLOv5 và YOLOv10 trên các GPU phổ thông dành cho người dùng cá nhân.
- Tích hợp hệ sinh thái: Việc tích hợp với Ultralytics Platform cho phép developer quản lý dataset trực quan, theo dõi thí nghiệm bằng Weights & Biases và tự động tinh chỉnh hyperparameter.
Ví dụ code: Huấn luyện liền mạch#
Sử dụng 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 model. Pipeline huấn luyện tự động xử lý việc tăng cường dữ liệu, scaling và cấu hình optimizer.
from ultralytics import YOLO
# To use YOLOv5:
# model = YOLO("yolov5s.pt")
# To use YOLOv10:
model = YOLO("yolov10s.pt")
# Train the model on a custom dataset
results = model.train(
data="coco8.yaml",
epochs=100,
imgsz=640,
batch=16,
device=0, # Use GPU 0
)
# Export the trained model to ONNX format
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 này đại diện cho công nghệ tiên tiến nhất hiện nay bằng cách kết hợp những cải tiến tốt nhất trong năm năm qua.
YOLO26 tích hợp nguyên bản Thiết kế End-to-End không cần NMS do YOLOv10 tiên phong, bảo đảm triển khai nhanh chóng và có tính xác định. Ngoài ra, YOLO26 giới thiệu một số bước độ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 mức tăng tốc đáng kể trên các CPU tiêu chuẩn, trở thành lựa chọn hàng đầu cho triển khai di động và các 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 một phương pháp kết hợp giữa SGD và Muon. Điều này bảo đảm các phiên huấn luyện cực kỳ ổn định và khả năng hội tụ được tăng tốc đáng kể so với các optimizer AdamW được sử dụng trong YOLOv10.
- ProgLoss + STAL: Các hàm loss nâng cao này mang lại những cải thiện đáng kể trong khả năng nhận diện đối tượng nhỏ, yếu tố quan trọng đối với ảnh chụp từ drone và các ứng dụng an ninh trên không.
- Làm chủ theo từng task: 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 task, bao gồm Residual Log-Likelihood Estimation (RLE) cho Pose và các hàm loss góc chuyên dụng cho Oriented Bounding Boxes (OBB).
Nếu bạn đang tìm hiểu bức tranh rộng hơn về bài toán phát hiện đối tượng, 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 so với EfficientDet hoặc RT-DETR so với YOLOv8 để tham khảo benchmark toàn diện hơn.
Dù bạn dựa vào nền tảng vững chắc đã được kiểm chứng 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 các ứng dụng AI thị giác của bạn vào thực tế.