YOLOv10 so với YOLOX: Sự tiến hóa của công nghệ phát hiện vật thể không cần Anchor và không cần NMS
Lĩnh vực thị giác máy tính được thúc đẩy bởi những tiến bộ nhanh chóng trong các kiến trúc phát hiện vật thể thời gian thực. Bản so sánh kỹ thuật chi tiết này khám phá hai mô hình có tầm ảnh hưởng lớn đã vượt qua các giới hạn về hiệu suất và các mô hình thiết kế: YOLOv10 và YOLOX. Bằng cách kiểm tra sự khác biệt về kiến trúc, các chỉ số hiệu suất và phương pháp huấn luyện, các nhà phát triển và nhà nghiên cứu có thể đưa ra quyết định sáng suốt để triển khai các hệ thống thị giác mạnh mẽ.
Bối cảnh và Nguồn gốc Mô hình
Việc hiểu rõ nguồn gốc của các mô hình deep learning này cung cấp bối cảnh có giá trị liên quan đến các mục tiêu kiến trúc và các trường hợp sử dụng mục tiêu của chúng.
YOLOv10: Loại bỏ NMS để đạt được khả năng phát hiện End-to-End thực sự
Được phát triển nhằm giải quyết các điểm nghẽn về độ trễ tồn tại từ lâu, YOLOv10 đã giới thiệu một phương pháp end-to-end tự nhiên cho dòng YOLO.
- Tác giả: Ao Wang, Hui Chen, Lihao Liu, và cộng sự.
- Tổ chức: Đại học Thanh Hoa
- Ngày: 23 tháng 5 năm 2024
- ArXiv: 2405.14458
- GitHub: THU-MIG/yolov10
- Tài liệu: Tài liệu Ultralytics YOLOv10
YOLOX: Thu hẹp khoảng cách giữa Nghiên cứu và Công nghiệp
YOLOX xuất hiện như một phiên bản không cần anchor (anchor-free) của thiết kế YOLO truyền thống, mang lại phương pháp luận đơn giản hơn với hiệu suất cạnh tranh, nhắm mục tiêu cụ thể vào việc hỗ trợ triển khai trong cộng đồng công nghiệp.
- Tác giả: Zheng Ge, Songtao Liu, Feng Wang, Zeming Li và Jian Sun
- Tổ chức: Megvii
- Ngày: 18 tháng 7 năm 2021
- ArXiv: 2107.08430
- GitHub: Megvii-BaseDetection/YOLOX
- Docs: Tài liệu chính thức về YOLOX
Các Điểm nhấn về Kiến trúc và Cải tiến
Cả hai framework đều khác biệt so với các trình phát hiện dựa trên anchor truyền thống, nhưng chúng giải quyết các vấn đề khác nhau trong quy trình phát hiện vật thể.
Kiến trúc YOLOX
YOLOX đã mang đến một số cập nhật quan trọng cho hệ sinh thái vào năm 2021. Đóng góp chính của nó là chuyển đổi sang thiết kế trình phát hiện không cần anchor (anchor-free). Bằng cách loại bỏ các hộp anchor đượ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 theo kinh nghiệm cần thiết cho các tập dữ liệu khác nhau.
Hơn nữa, YOLOX sử dụng decoupled head (đầu tách biệt), tách biệt các tác vụ phân loại và hồi quy. Điều này giải quyết xung đột giữa hai mục tiêu, tăng tốc đáng kể sự hội tụ trong quá trình huấn luyện. Nó cũng sử dụng SimOTA cho việc gán nhãn nâng cao, cải thiện khả năng xử lý các cảnh đông đúc và bị che khuất vốn phổ biến trong tập dữ liệu COCO.
Các thiết kế anchor-free, giống như thiết kế mà YOLOX tiên phong, làm giảm đáng kể sự phức tạp của việc tinh chỉnh mô hình. Các nhà phát triển không còn cần phải thực hiện phân cụm k-means trên các tập dữ liệu tùy chỉnh để xác định kích thước hộp anchor tối ưu, giúp tiết kiệm thời gian chuẩn bị quý giá.
Kiến trúc YOLOv10
Mặc dù YOLOX đã cải thiện đầu phát hiện, nó vẫn dựa vào Non-Maximum Suppression (NMS) trong quá trình suy luận (inference), gây ra sự thay đổi về độ trễ. YOLOv10 đã nhắm mục tiêu cụ thể vào lỗ hổng này bằng cách giới thiệu chiến lược consistent dual assignment (gán kép nhất quán) cho việc huấn luyện không cần NMS. Trong quá trình huấn luyện, nó sử dụng cả gán nhãn một-nhiều (one-to-many) và một-một (one-to-one), nhưng trong quá trình suy luận, nó loại bỏ hoàn toàn đầu một-nhiều, đưa ra các dự đoán sạch mà không cần hậu xử lý NMS.
YOLOv10 cũng có thiết kế mô hình hướng tới sự cân bằng giữa hiệu quả và độ chính xác. Nó kết hợp các đầu phân loại nhẹ và kỹ thuật giảm mẫu (downsampling) tách biệt không gian-kênh, giúp giảm đáng kể số lượng tham số và FLOPs mà không làm giảm độ chính xác.
So sánh hiệu năng
Việc đánh giá các mô hình này trên phần cứng như GPU NVIDIA T4 cho thấy những ưu điểm riêng biệt tùy thuộc vào quy mô. Dưới đây là bảng so sánh toàn diện.
| Model | kích thước (pixels) | 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 |
| 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 |
Như đã thấy ở trên, YOLOv10 mở rộng quy mô cực kỳ tốt. Biến thể YOLOv10x đạt độ chính xác cao nhất (54.4 mAP), trong khi biến thể YOLOv10n mang lại khả năng suy luận nhanh nhất nhờ tích hợp TensorRT. Ngược lại, mô hình YOLOX nano cũ có dấu ấn tổng thể nhỏ nhất cho các môi trường bị hạn chế nặng nề.
Phương pháp huấn luyện và Yêu cầu tài nguyên
Khi triển khai các mô hình cho sản xuất, hệ sinh thái huấn luyện và yêu cầu tài nguyên cũng quan trọng không kém so với tốc độ suy luận thuần túy.
YOLOX thường dựa vào các cấu hình môi trường cũ, vốn có thể gây khó khăn khi quản lý. Hơn nữa, codebase cũ của nó đòi hỏi nhiều mã soạn sẵn (boilerplate code) hơn để đạt được khả năng huấn luyện phân tán trên nhiều GPU hoặc tối ưu hóa hỗn hợp chính xác (mixed-precision).
Ngược lại, YOLOv10 tích hợp mượt mà với các quy trình làm việc hiện đại trên PyTorch, nhưng chính hệ sinh thái Ultralytics mới thực sự làm thay đổi trải nghiệm của nhà phát triển. Các mô hình Ultralytics được đặc trưng bởi mức sử dụng bộ nhớ CUDA thấp hơn đáng kể trong quá trình huấn luyện so với các kiến trúc dựa trên Transformer như RT-DETR.
Ví dụ về mã: Huấn luyện tinh gọn
Sử dụng API Ultralytics thống nhất, bạn có thể huấn luyện các mô hình hiện đại nhất chỉ trong vài dòng code Python. Điều này tránh được việc biên dịch thủ công các toán tử C++ hoặc các tệp cấu hình phức tạp.
from ultralytics import YOLO
# Initialize a pre-trained YOLOv10 model
model = YOLO("yolov10s.pt")
# Train the model on the COCO8 dataset
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Validate the model's performance
metrics = model.val()
# Export the optimized model to ONNX format
model.export(format="onnx")Cú pháp đơn giản này cung cấp quyền truy cập ngay lập tức vào độ chính xác hỗn hợp tự động, tăng cường dữ liệu tự động và tích hợp với các công cụ như Weights & Biases ngay khi sử dụng.
Các trường hợp sử dụng và khuyến nghị
Việc lựa chọn giữa YOLOv10 và YOLOX phụ thuộc vào các yêu cầu dự án cụ thể, các hạn chế khi triển khai và sở thích về hệ sinh thái của bạn.
Khi nào nên chọn YOLOv10
YOLOv10 là lựa chọn mạnh mẽ cho:
- Nhận diện thời gian thực không cần NMS: Các ứng dụng hưởng lợi từ việc nhận diện end-to-end mà không cần Non-Maximum Suppression, giảm bớt độ 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 yêu cầu sự cân bằng tốt giữa tốc độ suy luận và độ chính xác nhận diện trên nhiều quy mô mô hình khác nhau.
- Ứng dụng yêu cầu độ trễ nhất quán: Các kịch bản triển khai nơi thời gian suy luận có thể dự đoán được là rấ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 YOLOX
YOLOX được khuyến nghị cho:
- Nghiên cứu nhận diện không dùng anchor: Nghiên cứu học thuật sử dụng kiến trúc không dùng anchor sạch sẽ của YOLOX làm cơ sở để thử nghiệm với các head nhận diện hoặc hàm loss mới.
- Thiết bị Edge siêu nhẹ: Triển khai trên các vi điều khiển hoặc phần cứng di động cũ nơi mà dấu chân cực nhỏ của biến thể YOLOX-Nano (0.91 triệu tham số) là rất quan trọng.
- Nghiên cứu về gán nhãn SimOTA: Các dự án nghiên cứu điều tra các chiến lược gán nhãn dựa trên vận chuyển tối ưu và tác động của chúng đến sự hội tụ trong quá trình training.
Khi nào nên chọn Ultralytics (YOLO26)
Đối với hầu hết các dự án mới, Ultralytics YOLO26 cung cấp sự kết hợp tốt nhất giữa hiệu suất và trải nghiệm nhà phát triển:
- Triển khai Edge không cần NMS: Các ứng dụng yêu cầu suy luận ổn định, độ trễ thấp mà không cần sự phức tạp của việc hậu xử lý Non-Maximum Suppression.
- Môi trường chỉ sử dụng CPU: Các thiết bị không có GPU tăng tốc chuyên dụng, nơi tốc độ suy luận trên CPU nhanh hơn tới 43% của YOLO26 mang lại lợi thế quyết định.
- Nhận diện đối tượng nhỏ: Các kịch bản thách thức như ảnh drone trên không hoặc phân tích cảm biến IoT nơi ProgLoss và STAL tăng cường đáng kể độ chính xác trên các đối tượng cực nhỏ.
Tương lai của Vision AI: Sự xuất hiện của YOLO26
Trong khi YOLOv10 và YOLOX đại diện cho những cột mốc quan trọng, bối cảnh thị giác máy tính vẫn liên tục tiến về phía trước. Đối với các nhà phát triển đang bắt đầu các dự án mới hiện nay, Ultralytics YOLO26 là khuyến nghị xác đáng nhất.
Ra mắt vào tháng 1 năm 2026, Ultralytics YOLO26 được xây dựng dựa trên đột phá nền tảng của thiết kế NMS-free end-to-end do YOLOv10 tiên phong, tinh chỉnh nó để đạt được sự ổn định và tốc độ cao hơn nữa.
YOLO26 nổi bật khi giới thiệu một số bước tiến lớn:
- Tốc độ suy luận CPU nhanh hơn tới 43%: Bằng cách loại bỏ có chiến lược Distribution Focal Loss (DFL), YOLO26 đạt được hiệu suất vượt trội trên các thiết bị biên (edge devices) không có GPU.
- MuSGD Optimizer: Lấy cảm hứng từ sự ổn định trong huấn luyện LLM, sự kết hợp mới lạ giữa SGD và Muon này đảm bảo sự hội tụ nhanh hơn và các chu kỳ huấn luyện ổn định cao.
- ProgLoss + STAL: Những hàm mất mát (loss functions) tiên tiến này mang lại những cải tiến đáng kể trong việc nhận diện vật thể nhỏ, một yếu tố quan trọng đối với hình ảnh trên không và các cảm biến IoT.
- Tính linh hoạt vượt trội: Không giống như YOLOX, vốn chỉ đơn thuần là một trình phát hiện vật thể, YOLO26 hỗ trợ nguyên bản các tác vụ Phân đoạn đối tượng (Instance Segmentation), Ước tính tư thế (Pose Estimation), Phân loại hình ảnh (Image Classification) và Phát hiện OBB trong một thư viện thống nhất duy nhất.
Để có con đường đơn giản nhất đến quá trình sản xuất, các nhà phát triển có thể sử dụng Ultralytics Platform để chú thích dữ liệu, huấn luyện các mô hình YOLO26 trên đám mây và triển khai đến bất kỳ thiết bị biên nào mà không cần thiết lập gì thêm.
Ứng dụng trong thế giới thực
Việc chọn đúng mô hình quyết định sự thành công của các triển khai thực tế trên nhiều ngành công nghiệp khác nhau.
Phân tích video tốc độ cao
Để xử lý các luồng video dày đặc, chẳng hạn như quản lý giao thông đô thị thông minh, YOLOv10 cung cấp lợi thế đáng kể nhờ khả năng hậu xử lý không cần NMS. Việc loại bỏ điểm nghẽn NMS cho phép đạt được độ trễ thấp nhất quán, khiến nó trở nên lý tưởng khi kết hợp với các thuật toán theo dõi như BoT-SORT.
Triển khai trên thiết bị biên (Edge) kế thừa
Đối với các cấu hình học thuật cũ hoặc các ứng dụng Android cũ vốn được tối ưu hóa mạnh cho các mô hình convolution thuần túy, các mô hình nhỏ hơn như YOLOX-Tiny vẫn có thể tìm thấy các trường hợp sử dụng chuyên biệt, nơi việc duy trì các môi trường PyTorch cũ hơn được chấp nhận như một sự đánh đổi.
Thiết bị biên và thiết bị IoT hiện đại
Đối với các triển khai phần cứng thế hệ tiếp theo, như robot, máy bay không người lái và phân tích kệ hàng bán lẻ, YOLO26 là giải pháp tối ưu. Độ trễ CPU giảm mạnh và khả năng phát hiện vật thể nhỏ vượt trội khiến nó trở nên đủ tiêu chuẩn một cách độc đáo cho điều hướng tự hành và quản lý hàng tồn kho chi tiết.
Để có thêm các so sánh giúp mở rộng bộ công cụ deep learning của bạn, bạn cũng có thể khám phá cách các mô hình này so sánh với các lựa chọn thay thế như YOLO11 linh hoạt hoặc RT-DETR chạy bằng Transformer.