YOLOX so với YOLOv10 So sánh Anchor-Free và NMS - Phát hiện đối tượng thời gian thực miễn phí
Sự phát triển của các mô hình thị giác máy tính thời gian thực đã được đánh dấu bằng những bước tiến vượt bậc về kiến trúc. 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 đã thành công trong việc 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 bằng cách giới thiệu thiết kế không cần neo hiệu quả cao. Ba năm sau, YOLOv10 đã cách mạng hóa lĩnh vực này bằng cách loại bỏ nhu cầu về việc triệt tiêu không tối đa (Non-Maximum Suppression) NMS trong quá trình xử lý hậu kỳ, đẩy mạnh giới hạn về hiệu quả và tốc độ.
Bản so sánh kỹ thuật toàn diện này sẽ khám phá kiến trúc, các chỉ số hiệu suất và các trường hợp sử dụng lý tưởng cho cả hai mô hình, cung cấp những hiểu biết giúp bạn lựa chọn công cụ phù hợp cho dự án phát hiện đối tượng tiếp theo của mình.
Nguồn gốc và siêu dữ liệu của mô hình
Việc hiểu rõ nguồn gốc của các mô hình này giúp chúng ta hiểu được bối cảnh của các lựa chọn kiến trúc và môi trường triển khai dự định 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: 18/07/2021
Arxiv: https://arxiv.org/abs/2107.08430
GitHub: https://github.com/Megvii-BaseDetection/YOLOX
Tài liệu: https://yolox.readthedocs.io/en/latest/
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: 23/05/2024
Arxiv: https://arxiv.org/abs/2405.14458
GitHub: https://github.com/THU-MIG/yolov10
Tài liệu: ultralytics
Đổi mới Kiến trúc
Sự khác biệt cốt lõi giữa YOLOX và YOLOv10 Vấn đề nằm ở cách chúng xử lý dự đoán hộp giới hạn và xử lý hậu kỳ.
YOLOX: Thiết kế tiên phong không cần neo
YOLOX đã gây tiếng vang lớn khi chuyển đổi... YOLO YOLOX hướng đến kiến trúc không cần neo. Bằng cách dự đoán tâm của một đối tượng thay vì dựa vào các hộp neo được xác định trước, YOLOX đã giảm đáng kể số lượng tham số thiết kế và điều chỉnh thuật toán cần thiết cho các tập dữ liệu tùy chỉnh. Hơn nữa, nó đã giới thiệu một đầu xử lý tách rời, phân tách các nhiệm vụ phân loại và hồi quy thành các đường dẫn riêng biệt. Cách tiếp cận này đã giải quyết được mâu thuẫn giữa việc xác định đối tượng là gì và xác định vị trí của nó, dẫn đến sự cải thiện đáng kể về tốc độ hội tụ và độ chính xác.
YOLOv10: Cuộc cách mạng NMS-Free
Mặc dù YOLOX đã đơn giản hóa đầu dò, nhưng nó vẫn dựa vào... NMS để lọc bỏ các dự đoán hộp giới hạn dư thừa. YOLOv10 đã giải quyết được nút thắt cơ bản này. Bằng cách sử dụng các nhiệm vụ 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 tự nhiên. Nó sử dụng một-nhiều đầu vào trong quá trình huấn luyện để đảm bảo tín hiệu giám sát phong phú, đồng thời sử dụng một-một đầu vào trong quá trình suy luận để đưa ra dự đoán cuối cùng trực tiếp. Thiết kế toàn diện hướng đến hiệu quả và độ chính xác này loại bỏ... NMS Hoàn toàn, giúp giảm đáng kể độ trễ suy luận trên các chip nhúng.
Tác động của việc loại bỏ NMS
Việc loại bỏ xung đột biến không tối đa (Non-Maximum Suppression) thường là một thao tác phức tạp để tăng tốc trên các bộ xử lý thần kinh (NPU). Bằng cách loại bỏ nó, YOLOv10 cho phép toàn bộ đồ thị mô hình được thực thi 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 khung tối ưu hóa như OpenVINO và TensorRT .
Các chỉ số hiệu suất và so sánh
Khi đánh giá các mô hình để sản xuất, việc cân bằng giữa độ chính xác và chi phí tính toán là rất quan trọng. Bảng dưới đây minh họa sự đánh đổi giữa các quy mô khác nhau của YOLOX và YOLOv10 .
| Mô hình | Kích thước (pixels) | mAPval 50-95 | Tốc độ CPU ONNX (ms) | Tốc độ T4 TensorRT10 (ms) | Tham số (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 | 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 |
Phân tích dữ liệu
Các số liệu chứng minh rõ ràng YOLOv10 Bước nhảy vọt về thế hệ. Ví dụ, YOLOv10 -S đạt độ chính xác trung bình là 46,7% so với 46,9% của YOLOX-m, nhưng lại sử dụng ít hơn một phần ba số tham số (7,2 triệu so với 25,3 triệu) và số phép tính FLOP ít hơn đáng kể. Hơn nữa, bộ xử lý hàng đầu này... YOLOv10 - Mô hình X đẩy mAP lên đến 54,4%, giúp nó có khả năng 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 so với kiến trúc YOLOX-x cũ.
Lợi thế Hệ sinh thái Ultralytics
Mặc dù YOLOX vẫn là một công cụ nghiên cứu mã nguồn mở mạnh mẽ, việc áp dụng YOLOv10 Cung cấp quyền truy cập tức thì vào hệ sinh thái được duy trì tốt do cung cấp. Ultralytics Lựa chọn một Ultralytics Mô hình được hỗ trợ đảm bảo trải nghiệm người dùng liền mạch, đặc trưng bởi API đơn giản và tài liệu đầy đủ.
Các nhà phát triển được hưởng lợi rất nhiều từ yêu cầu bộ nhớ của khung phần mềm; đào tạo Ultralytics các mô hình thường tiêu thụ ít hơn nhiều CUDA Khung mô hình này sử dụng ít bộ nhớ hơn so với các giải pháp thay thế dựa trên transformer nặng nề như RT-DETR . Hiệu quả về dung lượng bộ nhớ cho phép kích thước lô lớn hơn trên phần cứng cấp người dùng phổ thông, giúp tăng tốc thời gian từ thu thập dữ liệu đến triển khai mô hình. Hơn nữa, khung mô hình này cung cấp 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 thể hiện và ước tính tư thế với những 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 việc xác thực ý tưởng trở nên cực kỳ nhanh chóng. Đoạn mã sau đây minh họa cách bạn có thể dễ dàng huấn luyện và triển khai một... YOLOv10 Mô hình sử dụng backend PyTorch :
from ultralytics import YOLO
# Load a pre-trained YOLOv10 nano model
model = YOLO("yolov10n.pt")
# Train the model on the COCO8 dataset
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on a sample image
predictions = model.predict("https://ultralytics.com/images/bus.jpg")
# Export the model for edge deployment
model.export(format="engine", half=True)
Bằng cách tận dụng các quy trình xuất có sẵn, việc chuyển đổi mô hình sang các định dạng như TensorRT hoặc ONNX chỉ cần một dòng mã duy nhất, hoàn toàn bỏ qua các rào cản biên dịch phức tạp.
Các trường hợp sử dụng lý tưởng và kịch bản triển khai
Việc lựa chọn giữa các kiến trúc này phụ thuộc phần lớn vào các hạn chế về phần cứng và yêu cầu cụ thể của lĩnh vực bạn đang hoạt động.
Phân tích video thời gian thực
Đối với các ứng dụng yêu cầu độ trễ cực thấp, chẳng hạn như lái xe tự động hoặc giám sát giao thông thời gian thực, YOLOv10 Đây là sự lựa chọn tối ưu. Nó hoàn hảo từ đầu đến cuối. NMS Thiết kế không phụ thuộc vào bộ nhớ đảm bảo thời gian thực thi xác định, điều này rất quan trọng đối với các hệ thống an toàn, nơi độ trễ xử lý hậu kỳ thay đổi không thể chấp nhận được. Các mô hình dễ dàng đạt được tốc độ khung hình cao trên các thiết bị như... NVIDIA Loạt phim Jetson.
Các tiêu chuẩn học thuật và bộ vi điều khiển biên
YOLOX vẫn giữ giá trị trong môi trường học thuật, nơi các nhà nghiên cứu muốn có một hệ thống cơ sở sạch sẽ, tách biệt đầu đọc/ghi để thử nghiệm các chiến lược gán nhãn. Thêm vào đó, YOLOX-Nano cực kỳ nhỏ gọn (dưới 1 triệu tham số) có thể được tích hợp vào các bộ vi điều khiển biên có dung lượng bộ nhớ hạn chế, miễn là phần cứng có thể hỗ trợ các phép toán tích chập tiêu chuẩn.
Tiêu chuẩn tối thượng: Ultralytics YOLO26
Trong khi YOLOv10 đánh dấu một bước tiến lớn bằng cách loại bỏ NMS Lĩnh vực thị giác máy tính đang phát triển nhanh chóng. Đối với các nhà phát triển muốn triển khai hiệu năng tốt nhất hiện nay, chúng tôi đặc biệt khuyên bạn nên tìm hiểu YOLO26 .
Được phát hành như một tiêu chuẩn mới nhất trong lĩnh vực trí tuệ nhân tạo thị giác, YOLO26 kế thừa những ý tưởng nền tảng của các thế hệ tiền nhiệm và nâng cấp chúng lên một tầm cao mới. Nó mang đến sự cân bằng hiệu năng tối ưu, hỗ trợ natively các chức năng phát hiện, phân đoạn, nhận diện tư thế và hộp giới hạn có hướng.
Dưới đây là lý do tại sao YOLO26 là lựa chọn được khuyến nghị cho các quy trình xử lý hình ảnh máy tính hiện đại:
- Thiết kế trọn gói không cần hệ quản lý mạng NMS : Xây dựng dựa trên những đột phá của YOLOv10 YOLO26 là một hệ thống hoàn chỉnh từ đầu đến cuối, đảm bảo thời gian suy luận nhanh hơn và chính xác hơn mà không gặp phải các trở ngại trong quá trình xử lý hậu kỳ.
- Tốc độ suy luận CPU nhanh hơn tới 43%: Được tối ưu hóa đặc biệt cho điện toán biên, đảm bảo hiệu năng vượt trội trên các bộ xử lý di động và thiết bị không có GPU rời.
- Bộ tối ưu hóa 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 của... SGD và Muon cho quá trình huấn luyện cực kỳ ổn định và hội tụ nhanh chóng.
- ProgLoss + STAL: Các hàm mất mát tiên tiến này mang lại những cải tiến đáng kể trong nhận dạng vật thể nhỏ, điều rất quan trọng đối với các lĩnh vực đòi hỏi cao như ảnh chụp từ trên không và điều hướng máy bay không người lái.
- Loại bỏ DFL: Bằng cách loại bỏ tổn hao tiêu điểm phân tán (Distribution Focal Loss - DFL), YOLO26 đơn giản hóa đồ thị mô hình để xuất khẩu 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 dành riêng cho từng tác vụ: Cho dù bạn đang sử dụng ước lượng logarit khả năng dư (RLE) để ước lượng tư thế hay hàm mất mát góc chuyên dụng cho OBB, YOLO26 đều được tinh chỉnh cho mọi tác vụ thị giác chính.
Đối với các nhà phát triển sẵn sàng nâng cấp quy trình của mình với các công cụ đào tạo và triển khai hiệu quả nhất hiện có, việc chuyển sang Nền tảng Ultralytics và tận dụng YOLO26 đảm bảo 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ể xem xét YOLO11 hoặc YOLOv8 để được hỗ trợ cộng đồng rộng rãi và độ bền đã được chứng minh.