YOLO Vision 2026:

YOLOX so với YOLOv10#

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ởi 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. Được ra mắt vào năm 2021, YOLOX đã kết nối thành công 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 một thiết kế không dùng anchor (anchor-free) 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 sử dụng Non-Maximum Suppression (NMS) trong quá trình hậu xử lý, đẩy giới hạn của hiệu suất và tốc độ lên tầm cao mới.

Bản so sánh kỹ thuật toàn diện này khám phá các kiến trúc, số liệu 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 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à Metadata của mô hình#

Việc hiểu rõ nguồn gốc của các mô hình này cung cấp bối cảnh cho các 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

Tìm hiểu thêm về YOLOX

Chi tiết YOLOv10
Tác giả: Ao Wang, Hui Chen, Lihao Liu, Kai Chen, Zijia Lin, Jungong Han, và Guiguang Ding
Tổ chức: Tsinghua University
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

Tìm hiểu thêm về YOLOv10

Cải tiến kiến trúc#

Sự khác biệt cốt lõi giữa YOLOX và YOLOv10 nằm ở cách chúng xử lý việc dự đoán BBox và hậu xử lý.

YOLOX: Tiên phong trong thiết kế không dùng anchor#

YOLOX đã tạo ra làn sóng khi chuyển đổi dòng họ YOLO sang kiến trúc không dùng anchor. Bằng cách dự đoán tâm của một đố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 tập dữ liệu tùy chỉnh. Hơn nữa, nó giới thiệu một head tách biệt, phân tách các tác vụ phân loại và hồi quy thành các đường dẫn riêng biệt. Phương pháp này giải quyết mâu thuẫn giữa việc xác định cái gì là một đối tượng 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 không dùng NMS#

Trong khi YOLOX đơn giản hóa phần detection head, nó vẫn dựa vào NMS để lọc ra các dự đoán BBox dư thừa. YOLOv10 đã giải quyết điểm nghẽn cơ bản này. Bằng cách sử dụng các phép gán nhất quán kép trong quá trình huấn luyện, YOLOv10 đạt được khả năng phát hiện end-to-end nguyên bản. Nó sử dụng head one-to-many trong khi huấn luyện để đảm bảo tín hiệu giám sát phong phú, trong khi sử dụng head one-to-one trong quá trình suy luận để xuất kết quả dự đoán cuối cùng trực tiếp. Thiết kế tổng thể hướng đến hiệu suất-độ chính xác này loại bỏ hoàn toàn NMS, làm 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

Non-Maximum Suppression thường là một phép toán phức tạp để tăng tốc trên Neural Processing Units (NPUs). Bằng cách loại bỏ nó, YOLOv10 cho phép toàn bộ biểu đồ model thực thi mượt mà 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.

Các chỉ số hiệu suất và so sánh#

Khi đánh giá các mô hình cho sản xuất, 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 sự đánh đổi giữa các quy mô khác nhau của YOLOX và YOLOv10.

Mô hìnhkích thước
(pixel)
mAPval
50-95
Tốc độ
CPU ONNX
(ms)
Tốc độ
T4 TensorRT10
(ms)
params
(M)
FLOPs
(B)
YOLOXnano41625.8--0.911.08
YOLOXtiny41632.8--5.066.45
YOLOXs64040.5-2.569.026.8
YOLOXm64046.9-5.4325.373.8
YOLOXl64049.7-9.0454.2155.6
YOLOXx64051.1-16.199.1281.9
YOLOv10n64039.5-1.562.36.7
YOLOv10s64046.7-2.667.221.6
YOLOv10m64051.3-5.4815.459.1
YOLOv10b64052.7-6.5424.492.0
YOLOv10l64053.3-8.3329.5120.3
YOLOv10x64054.4-12.256.9160.4

Phân tích dữ liệu#

Các chỉ số thể hiện rõ bước nhảy vọt về thế hệ của YOLOv10. Ví dụ, YOLOv10-S đạt mean Average Precision 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ố lượng tham số (7.2M so với 25.3M) và ít FLOPs hơn đáng kể. Hơn nữa, model cao cấp YOLOv10-X đẩy mAP lên mức 54.4%, khiến nó có tính cạnh tranh cao đối với các tác vụ yêu cầu độ chính xác cao khắt khe trong khi vẫn nhanh hơn kiến trúc YOLOX-x cũ.

Lợi thế từ hệ sinh thái Ultralytics#

Trong khi YOLOX vẫn là một triển khai 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 bảo trì tốt do Ultralytics cung cấp. Việc chọn một mô hình được Ultralytics hỗ trợ đảm bảo trải nghiệm người dùng hợp lý với API đơn giản và tài liệu phong phú.

Các lập trình viên hưởng lợi lớn từ các yêu cầu bộ nhớ của framework; việc huấn luyện các model Ultralytics thường tiêu thụ ít bộ nhớ CUDA hơn rất nhiều so với các giải pháp thay thế nặng dựa trên Transformer như RT-DETR. Dung lượng 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 cấp độ tiêu dùng, đẩy nhanh thời gian từ thu thập dữ liệu đến triển khai model. Hơn nữa, framework này cung cấp tính linh hoạt chưa từng có, cho phép người dùng chuyển đổi mượt mà giữa object detection, instance segmentationpose estimation với các thay đổi mã nguồn tối thiểu.

Ví dụ về huấn luyện và suy luận#

API hợp nhất giúp việc kiểm chứng ý tưởng cực kỳ nhanh chóng. Đoạn mã sau minh họa cách bạn có thể huấn luyện và triển khai một model YOLOv10 một cách dễ dàng bằng cách 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", quantize=16)

Bằng cách tận dụng các quy trình xuất tích hợp sẵn, việc chuyển đổi model sang các định dạng như TensorRT hoặc ONNX chỉ yêu cầu 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 ràng buộc phần cứng và yêu cầu cụ thể của lĩnh vực của bạn.

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 là sự lựa chọn vượt trội. Thiết kế end-to-end không dùng NMS của nó đả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 mà độ trễ hậu xử lý biến đổ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ư dòng NVIDIA Jetson.

Các tiêu chuẩn học thuật và 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 một baseline head tách biệt, sạch sẽ để thử nghiệm với 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ể được ép vào các vi điều khiển biên bị hạn chế nghiêm ngặt nơi bộ nhớ được đo bằng kilobyte, với điều kiện phần cứng có thể hỗ trợ các thao tác 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 một bước nhảy vọt lớn bằng cách loại bỏ NMS, lĩnh vực thị giác máy tính vẫn tiến bộ rất nhanh. Đối với các lập trình viên nhằm mục đích triển khai hiệu suất tốt nhất trong phân khúc hiện nay, chúng tôi đặc biệt khuyên bạn nên khám phá YOLO26.

Được phát hành như tiêu chuẩn mới nhất trong thị giác AI, YOLO26 lấy các ý tưởng nền tảng của những người tiền nhiệm và tăng cường sức mạnh cho chúng. Nó cung cấp sự cân bằng hiệu suất tối thượng, hỗ trợ nguyên bản việc phát hiện, phân đoạn, tư thế và các BBox định hướng.

Đây là lý do tại sao YOLO26 là lựa chọn được khuyến nghị cho các pipeline thị giác máy tính hiện đại:

  • Thiết kế end-to-end không dùng NMS: Dựa trên những đột phá của YOLOv10, YOLO26 là end-to-end nguyên bản, đảm bảo thời gian suy luận nhanh hơn, xác định mà không có các điểm nghẽn hậu xử lý.
  • Suy luận CPU nhanh hơn tới 43%: Nó được tối ưu hóa đặc biệt cho điện toán biên, đảm bảo hiệu suất vượt trội trên các bộ vi xử lý di động và các thiết bị thiếu GPU rời.
  • Bộ tối ưu hóa MuSGD: Lấy cảm hứng từ quá trình huấn luyện Large Language Model (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 cực kỳ ổn định và hội tụ nhanh chóng.
  • ProgLoss + STAL: Những hàm loss 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ỏ, điều này rất quan trọng đối với các lĩnh vực đòi hỏi khắt khe như hình ảnh 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ỏ Distribution Focal Loss, YOLO26 đơn giản hóa biểu đồ mô hình để xuất khẩu không ma sát sang các thiết bị biên và thiết bị tiêu thụ điện năng thấp.
  • Cải tiến cụ thể theo tác vụ: Cho dù bạn đang sử dụng Residual Log-Likelihood Estimation (RLE) để ước tính tư thế hay angle loss chuyên dụng cho OBB, YOLO26 được tinh chỉnh cho mọi tác vụ thị giác chính.

Đối với các lập trình viên đã sẵn sàng nâng cấp pipeline của họ với các công cụ huấn luyện và triển khai hiệu quả nhất hiện có, việc chuyển đổi sang Ultralytics Platform và tận dụng YOLO26 đảm bảo bạn luôn ở tuyến đầu của trí tuệ nhân tạo. Người dùng quan tâm đến các kiến trúc cũ nhưng ổn định cũng có thể xem xét YOLO11 hoặc YOLOv8 để nhận được sự hỗ trợ cộng đồng rộng rãi và độ bền vững đã được chứng minh.

Người đóng góp

Bình luận