Link to this sectionSo sánh YOLOv10 và YOLOX#
Lĩnh vực thị giác máy tính đang đượ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 đối tượng 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, vốn đã vượt qua các ranh giới về hiệu năng và các mô hình thiết kế: YOLOv10 và YOLOX. Bằng cách xem xét 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ẽ.
Link to this sectionNguồn gốc và bối cảnh 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 giá trị liên quan đến 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.
Link to this sectionYOLOv10: Loại bỏ NMS để phát hiện end-to-end thực thụ#
Được phát triển để giải quyết các nút thắt độ trễ tồn tại lâu dài, YOLOv10 đã giới thiệu một cách tiếp cận end-to-end nguyên bản vào hệ sinh thái 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
Link to this sectionYOLOX: 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 đến một phương pháp đơn giản hơn với hiệu năng cạnh tranh, được nhắm mục tiêu cụ thể để đơn giản hóa việc 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 công bố: 18 tháng 7 năm 2021
- ArXiv: 2107.08430
- GitHub: Megvii-BaseDetection/YOLOX
- Tài liệu: Tài liệu chính thức YOLOX
Link to this sectionNhững điểm nổi bật và cải tiến về kiến trúc#
Cả hai framework đều đi chệch khỏi các bộ 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 đối tượng.
Link to this sectionKiến trúc YOLOX#
YOLOX đã mang đến một vài 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 sang thiết kế bộ phát hiện không cần anchor. Bằng cách loại bỏ 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 tập dữ liệu khác nhau.
Hơn nữa, YOLOX sử dụng decoupled head (đầu phân tách), 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 được sự 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 để gán nhãn nâng cao, cải thiện khả năng xử lý các cảnh đông đúc và che khuất vốn phổ biến trong tập dữ liệu COCO.
Các thiết kế không cần anchor, như thiết kế tiên phong bởi YOLOX, làm giảm đáng kể sự phức tạp trong 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 k-means clustering trên các tập dữ liệu tùy chỉnh để xác định kích thước anchor box tối ưu, từ đó tiết kiệm thời gian chuẩn bị quý giá.
Link to this sectionKiến trúc YOLOv10#
Trong khi 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), điều này gây ra sự biến đổi về độ trễ. YOLOv10 đã nhắm mục tiêu cụ thể vào lỗi này bằng cách giới thiệu chiến lược consistent dual assignment 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 và một-một, 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 xử lý hậu kỳ NMS.
YOLOv10 cũng có thiết kế mô hình toàn diện dựa trên sự cân bằng giữa hiệu suất và độ chính xác. Nó kết hợp các đầu phân loại nhẹ và kỹ thuật downsampling phân tách không gian-kênh, làm giảm đáng kể số lượng tham số và FLOPs mà không làm giảm độ chính xác.
Link to this sectionSo 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 theo quy mô. Dưới đây là bảng so sánh toàn diện.
| Mô hình | kích thước (pixel) | mAPval 50-95 | Tốc độ CPU ONNX (ms) | Tốc độ T4 TensorRT10 (ms) | params (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 rất tốt. Biến thể YOLOv10x đạt được độ 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 bằng cách sử dụng tích hợp TensorRT. Ngược lại, mô hình YOLOX nano cũ có dấu chân (footprint) tổng thể nhỏ nhất cho các môi trường bị hạn chế nghiêm ngặt.
Link to this sectionPhươ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 môi trường production, hệ sinh thái huấn luyện và nhu cầu tài nguyên cũng quan trọng không kém 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 cồng kềnh khi quản lý. Hơn nữa, codebase cũ của nó đòi hỏi nhiều mã boilerplate để đạt được huấn luyện phân tán nhiều GPU hoặc tối ưu hóa độ chính xác hỗn hợp (mixed-precision).
Ngược lại, YOLOv10 tích hợp mượt mà với các quy trình PyTorch hiện đại, nhưng chính hệ sinh thái Ultralytics mới thực sự 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.
Link to this sectionVí dụ mã nguồn: Huấn luyện tinh gọn#
Sử dụng API hợp nhất của Ultralytics, bạn có thể huấn luyện các mô hình hiện đại nhất một cách liền mạch chỉ với vài dòng Python. Điều này tránh việc phải 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 automatic mixed precision, 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 cài đặt.
Link to this sectionCá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 yêu cầu dự án cụ thể, hạn chế triển khai và tùy chọn hệ sinh thái của bạn.
Link to this sectionKhi nào nên chọn YOLOv10#
YOLOv10 là một lựa chọn mạnh mẽ 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ừ việc phát hiện đầu cuối (end-to-end) mà không cần NMS, giúp giảm độ phức tạp khi triển khai.
- Sự 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 mạnh mẽ giữa tốc độ suy luận và độ chính xác của phát hiện trên nhiều quy mô model khác nhau.
- Các ứng dụng có độ 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à yếu tố quan trọng, chẳng hạn như robotics hoặc các hệ thống tự hành.
Link to this sectionKhi nào nên chọn YOLOX#
YOLOX được khuyến nghị cho:
- Nghiên cứu Phát hiện Anchor-Free: Nghiên cứu học thuật sử dụng kiến trúc anchor-free sạch, gọn của YOLOX làm baseline để thử nghiệm với các head phát hiện hoặc hàm mất mát mới.
- Thiết bị biên siêu nhẹ: Triển khai trên vi điều khiển hoặc phần cứng di động cũ nơi mà footprint cực nhỏ của biến thể YOLOX-Nano (0.91M tham số) là rất quan trọng.
- Nghiên cứu 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 đào tạo.
Link to this sectionKhi 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 năng 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 nhất quán, độ trễ thấp mà không có sự phức tạp của hậu xử lý Non-Maximum Suppression.
- Môi trường chỉ dùng CPU: Các thiết bị không có tăng tốc GPU chuyên dụng, nơi suy luận CPU nhanh hơn tới 43% của YOLO26 mang lại lợi thế quyết định.
- Phát hiện vật thể nhỏ: Các kịch bản đầy thách thức như hình ảnh máy bay không người lái 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 vật thể cực nhỏ.
Link to this sectionTương lai của thị giác AI: Giới thiệu 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 bắt đầu dự án mới ngay hôm nay, Ultralytics YOLO26 là khuyến nghị xác định.
Được phát hành vào tháng 1 năm 2026, Ultralytics YOLO26 xây dựng dựa trên sự đột phá nền tảng của thiết kế end-to-end không cần NMS do YOLOv10 tiên phong, tinh chỉnh nó để có độ ổn định và tốc độ cao hơn nữa.
YOLO26 nổi bật bằng cách giới thiệu một vài bước tiến vượt bậc:
- Suy luận CPU nhanh hơn tới 43%: Bằng cách loại bỏ 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 không có GPU.
- Bộ tối ưu hóa MuSGD: 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 tiên tiến này mang lại những cải tiến đáng chú ý trong việc nhận dạng đối tượng nhỏ, một yếu tố quan trọng cho hình ảnh từ trên không và cảm biến IoT.
- Tính linh hoạt vô song: Không giống như YOLOX, vốn chỉ đơn thuần là bộ phát hiện đối tượng, YOLO26 hỗ trợ nguyên bản Instance Segmentation, Pose Estimation, Image Classification và OBB Detection trong một thư viện hợp nhất duy nhất.
Để có con đường đơn giản nhất đến sản xuất, các nhà phát triển có thể sử dụng Nền tảng Ultralytics để gán nhãn tập 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.
Link to this sectionỨng dụng trong thực tế#
Việc chọn đúng mô hình quyết định sự thành công của các triển khai trong thế giới thực trên nhiều ngành công nghiệp.
Link to this sectionPhâ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ờ việc xử lý hậu kỳ không cần NMS. Loại bỏ nút thắt NMS cho phép độ trễ thấp nhất quán, khiến nó trở nên lý tưởng để kết hợp với các thuật toán theo dõi như BoT-SORT.
Link to this sectionTriển khai trên thiết bị biên cũ#
Đối với các cấu hình học thuật cũ hoặc các ứng dụng Android kế thừa 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ì môi trường PyTorch cũ là một sự đánh đổi có thể chấp nhận được.
Link to this sectionCác thiết bị biên và 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 thượng. Độ trễ CPU giảm đáng kể và khả năng phát hiện đối tượng nhỏ vượt trội của nó khiế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 dựa trên Transformer.