YOLOX so với YOLOv10#
Sự phát triển của các model thị giác máy tính thời gian thực được đánh dấu bằng những bước tiến kiến trúc đáng kể. Hai cột mốc quan trọng trong hành trình này là YOLOX và YOLOv10. Ra mắt năm 2021, YOLOX đã thu hẹp khoảng cách giữa nghiên cứu học thuật và ứng dụng công nghiệp nhờ giới thiệu thiết kế không anchor hiệu quả cao. Ba năm sau, YOLOv10 tạo nên bước ngoặt cho lĩnh vực này bằng cách loại bỏ nhu cầu sử dụng ức chế phi cực đại (NMS) trong bước hậu xử lý, nâng cao giới hạn về hiệu quả và tốc độ.
Bài so sánh kỹ thuật toàn diện này phân tích kiến trúc, các chỉ số hiệu năng và trường hợp sử dụng lý tưởng của cả hai model, cung cấp thông tin giúp bạn chọn công cụ phù hợp cho dự án phát hiện đối tượng tiếp theo.
Nguồn gốc và siêu dữ liệu của model#
Hiểu rõ nguồn gốc của các model này giúp làm rõ cơ sở cho những lựa chọn kiến trúc và môi trường triển khai dự kiến của chúng.
Thông tin chi tiết về YOLOX
- Tác giả: Zheng Ge, Songtao Liu, Feng Wang, Zeming Li và Jian Sun
- Tổ chức: Megvii
- Ngày: 2021-07-18
- Arxiv: https://arxiv.org/abs/2107.08430
- GitHub: https://github.com/Megvii-BaseDetection/YOLOX
- Tài liệu: https://github.com/Megvii-BaseDetection/YOLOX/tree/main/docs
Thông tin chi tiết về YOLOv10
- Tác giả: Ao Wang, Hui Chen, Lihao Liu, Kai Chen, Zijia Lin, Jungong Han và Guiguang Ding
- Tổ chức: Đại học Thanh Hoa
- Ngày: 2024-05-23
- Arxiv: https://arxiv.org/abs/2405.14458
- GitHub: https://github.com/THU-MIG/yolov10
- Tài liệu: https://docs.ultralytics.com/models/yolov10
Các cải tiến kiến trúc#
Những khác biệt cốt lõi giữa YOLOX và YOLOv10 nằm ở cách chúng xử lý dự đoán bounding box và bước hậu xử lý.
YOLOX: Tiên phong với thiết kế không anchor#
YOLOX tạo dấu ấn khi chuyển dòng YOLO sang kiến trúc không anchor. Bằng cách dự đoán tâm của đối tượng thay vì dựa vào các anchor box được xác định trước, YOLOX giảm đáng kể số lượng tham số thiết kế và việc tinh chỉnh heuristic cần thiết cho các dataset tùy chỉnh. Ngoài ra, model giới thiệu head tách rời, chia các tác vụ phân loại và hồi quy thành những nhánh riêng biệt. Cách tiếp cận này giải quyết xung đột giữa việc xác định đối tượng là gì và xác định đối tượng ở đâu, giúp tốc độ hội tụ và độ chính xác tăng rõ rệt.
YOLOv10: Cuộc cách mạng không cần NMS#
Mặc dù YOLOX đơn giản hóa detection head, model vẫn dựa vào NMS để lọc các dự đoán bounding box dư thừa. YOLOv10 giải quyết nút thắt căn bản này. 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, YOLOv10 đạt được khả năng phát hiện đầu-cuối nguyên bản. Model sử dụng head one-to-many khi huấn luyện để bảo đảm tín hiệu giám sát phong phú, đồng thời sử dụng head one-to-one khi suy luận để xuất trực tiếp các dự đoán cuối cùng. Thiết kế toàn diện cân bằng hiệu quả và độ chính xác này loại bỏ hoàn toàn NMS, giảm đáng kể độ trễ suy luận trên chip nhúng.
Ức chế phi cực đại thường là một phép toán phức tạp khi cần tăng tốc trên các bộ xử lý thần kinh (NPU). Bằng cách loại bỏ bước này, YOLOv10 cho phép toàn bộ đồ thị model chạy liền mạch trên phần cứng chuyên dụng, cải thiện đáng kể khả năng tương thích với các framework tối ưu hóa như OpenVINO và TensorRT.
Chỉ số hiệu năng và so sánh#
Khi đánh giá model để đưa vào môi trường production, việc cân bằng độ chính xác với chi phí tính toán là rất quan trọng. Bảng dưới đây minh họa các đánh đổi giữa những phiên bản YOLOX và YOLOv10 với quy mô 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) |
|---|---|---|---|---|---|---|
| YOLOXnano | 416 | 25.8 | - | - | 0.91 | 1.08 |
| YOLOXtiny | 416 | 32.8 | - | - | 5.06 | 6.45 |
| YOLOXs | 640 | 40.5 | - | 2.56 | 9.0 | 26.8 |
| YOLOXm | 640 | 46.9 | - | 5.43 | 25.3 | 73.8 |
| YOLOXl | 640 | 49.7 | - | 9.04 | 54.2 | 155.6 |
| YOLOXx | 640 | 51.1 | - | 16.1 | 99.1 | 281.9 |
| 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 dữ liệu#
Các chỉ số cho thấy rõ bước tiến vượt bậc của YOLOv10. Ví dụ, YOLOv10-S đạt độ chính xác trung bình 46,3% so với 46,9% của YOLOX-m, nhưng sử dụng chưa đến một phần ba số tham số (7.2M so với 25.3M) và ít FLOPs hơn đáng kể. Ngoài ra, model cao cấp YOLOv10-X nâng mAP lên 54,4%, có sức cạnh tranh cao trong các tác vụ đòi hỏi độ chính xác cao, đồng thời vẫn nhanh hơn kiến trúc YOLOX-x cũ.
Lợi thế của hệ sinh thái Ultralytics#
YOLOX vẫn là một triển khai nghiên cứu mã nguồn mở đáng tin cậy, nhưng sử dụng YOLOv10 giúp bạn tiếp cận ngay hệ sinh thái được Ultralytics duy trì tốt. Chọn model được Ultralytics hỗ trợ sẽ mang lại trải nghiệm sử dụng liền mạch, với API đơn giản và tài liệu phong phú.
Các nhà phát triển được hưởng lợi đáng kể từ yêu cầu bộ nhớ thấp của framework; việc huấn luyện model Ultralytics thường tiêu thụ ít bộ nhớ CUDA hơn nhiều so với các giải pháp thay thế nặng dựa trên Transformer như RT-DETR. Dấu chân tài nguyên huấn luyện hiệu quả này cho phép sử dụng batch size lớn hơn trên phần cứng phổ thông, rút ngắn thời gian từ thu thập dữ liệu đến triển khai model. Ngoài ra, framework có tính linh hoạt vượt trội, cho phép người dùng chuyển đổi liền mạch giữa phát hiện đối tượng, phân đoạn đối tượng và ước lượng tư thế chỉ với một số thay đổi mã tối thiểu.
Ví dụ về huấn luyện và suy luận#
API thống nhất giúp kiểm chứng ý tưởng nhanh chóng. Đoạn mã sau minh họa việc huấn luyện và triển khai model YOLOv10 bằng backend PyTorch đơn giản đến mức nào:
from ultralytics import YOLO
# Tải model nano YOLOv10 đã pre-train
model = YOLO("yolov10n.pt")
# Huấn luyện model trên bộ dữ liệu COCO8
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Chạy suy luận trên ảnh mẫu
predictions = model.predict("https://ultralytics.com/images/bus.jpg")
# Xuất model để triển khai trên edge
model.export(format="engine", quantize=16)Nhờ tận dụng các quy trình export tích hợp sẵn, việc chuyển đổi model sang các định dạng như TensorRT hoặc ONNX chỉ cần một dòng mã, hoàn toàn tránh được các trở ngại biên dịch phức tạp.
Trường hợp sử dụng và kịch bản triển khai lý tưởng#
Việc lựa chọn giữa các kiến trúc này phần lớn phụ thuộc vào giới hạn phần cứng và yêu cầu cụ thể của từng lĩnh vực.
Phân tích video thời gian thực#
Với các ứng dụng đòi hỏi độ trễ cực thấp, chẳng hạn như xe tự hành hoặc giám sát giao thông thời gian thực, YOLOv10 là lựa chọn vượt trội. Thiết kế đầu-cuối không cần NMS bảo đảm thời gian thực thi xác định, yếu tố then chốt đối với các hệ thống an toàn không thể chấp nhận độ trễ hậu xử lý biến động. Model dễ dàng đạt tốc độ khung hình cao trên các thiết bị như dòng NVIDIA Jetson.
Baseline học thuật và vi điều khiển biên#
YOLOX vẫn hữu ích trong môi trường học thuật, nơi các nhà nghiên cứu cần một baseline head tách rời rõ ràng để thử nghiệm các chiến lược gán nhãn. Ngoài ra, YOLOX-Nano cực nhỏ (dưới 1 triệu tham số) có thể chạy trên các thiết bị biên bị giới hạn nghiêm ngặt, nơi bộ nhớ rất hạn chế, miễn là phần cứng hỗ trợ các phép tích chập tiêu chuẩn.
Tiêu chuẩn tối thượng: Ultralytics YOLO26#
Mặc dù YOLOv10 đánh dấu bước tiến vượt bậc nhờ loại bỏ NMS, lĩnh vực thị giác máy tính vẫn phát triển nhanh chóng. Với các nhà phát triển muốn triển khai hiệu năng hàng đầu hiện nay, chúng tôi đặc biệt khuyến nghị tìm hiểu YOLO26.
Ra mắt với tư cách tiêu chuẩn mới nhất trong AI thị giác, YOLO26 kế thừa những ý tưởng nền tảng từ các phiên bản trước và nâng cấp mạnh mẽ. Model mang lại sự cân bằng hiệu năng tối ưu, hỗ trợ nguyên bản các tác vụ phát hiện, phân đoạn, ước lượng tư thế và bounding box định hướng.
Dưới đây là lý do YOLO26 được khuyến nghị cho các pipeline thị giác máy tính hiện đại:
- Thiết kế đầu-cuối không cần NMS: Kế thừa những đột phá của YOLOv10, YOLO26 hỗ trợ suy luận đầu-cuối nguyên bản (
nms=False), mang lại thời gian suy luận nhanh và xác định mà không gặp nút thắt do hậu xử lý NMS. - Suy luận trên CPU nhanh hơn đến 43%: Model được tối ưu riêng cho điện toán biên, bảo đảm hiệu năng vượt trội trên bộ xử lý di động và thiết bị không có GPU rời.
- Bộ tối ưu MuSGD: Lấy cảm hứng từ quá trình huấn luyện Mô hình Ngôn ngữ Lớn (cụ thể là Kimi K2 của Moonshot AI), YOLO26 sử dụng sự kết hợp giữa SGD và Muon để huấn luyện ổn định vượt trội và hội tụ nhanh.
- 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 vật thể nhỏ, yếu tố quan trọng trong những lĩnh vực đòi hỏi cao như ảnh hàng không và điều hướng drone.
- Loại bỏ DFL: Bằng cách loại bỏ Distribution Focal Loss, YOLO26 đơn giản hóa đồ thị model, giúp export dễ dàng sang các thiết bị biên và thiết bị công suất thấp.
- Cải tiến theo từng tác vụ: Dù sử dụng Residual Log-Likelihood Estimation (RLE) cho ước lượng tư thế hay loss góc chuyên biệt cho OBB, YOLO26 đều được tinh chỉnh cho mọi tác vụ thị giác chính.
Với các nhà phát triển sẵn sàng nâng cấp pipeline bằng những công cụ huấn luyện và triển khai hiệu quả nhất hiện có, chuyển sang Nền tảng Ultralytics và tận dụng YOLO26 sẽ giúp bạn luôn dẫn đầu trong lĩnh vực trí tuệ nhân tạo. Người dùng quan tâm đến các kiến trúc cũ hơn nhưng ổn định cũng có thể tìm hiểu YOLO11 hoặc YOLOv8 để tận dụng cộng đồng hỗ trợ rộng lớn và độ tin cậy đã được kiểm chứng.