Meet YOLO26: next-gen vision AI.

Link to this sectionYOLOX 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.

Link to this sectionNguồ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.

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 Docs: https://github.com/Megvii-BaseDetection/YOLOX/tree/main/docs

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

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 Docs: https://docs.ultralytics.com/models/yolov10/

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

Link to this sectionCả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ý.

Link to this sectionYOLOX: 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.

Link to this sectionYOLOv10: 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 thao tác phức tạp để tăng tốc trên các Neural Processing Units (NPU). Bằng cách loại bỏ nó, YOLOv10 cho phép toàn bộ biểu đồ mô hình thực thi một cách 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.

Link to this sectionCá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

Link to this sectionPhân tích dữ liệu#

Các số liệu chứng minh rõ ràng 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 thực hiện điều đó với ít hơn một phần ba số tham số (7,2M so với 25,3M) và ít FLOPs hơn đáng kể. Hơn nữa, mô hình YOLOv10-X hàng đầu đẩy mAP lên 54,4%, khiến nó có khả năng cạnh tranh cao cho các tác vụ đòi hỏi độ chính xác trong khi vẫn nhanh hơn kiến trúc YOLOX-x cũ.

Link to this sectionLợ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 nhà phát triển được hưởng lợi rất nhiều từ yêu cầu bộ nhớ của framework; việc huấn luyện các mô hình Ultralytics thường tiêu tốn ít bộ nhớ CUDA hơn nhiều so với các lựa chọn thay thế dựa trên Transformer nặng nề như RT-DETR. Dấu chân huấn luyện hiệu quả này cho phép kích thước batch lớn hơn trên phần cứng cấp người dùng, 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, framework 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 cá thể, và ước tính tư thế với những thay đổi mã tối thiểu.

Link to this sectionVí dụ về huấn luyện và suy luận#

API thống nhất giúp việc xác thực các ý 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 mô hình YOLOv10 dễ dàng như thế nào 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, 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ã, hoàn toàn bỏ qua các rào cản biên dịch phức tạp.

Link to this sectionCá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.

Link to this sectionPhâ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.

Link to this sectionCá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.

Link to this sectionTiêu chuẩn tối thượng: Ultralytics YOLO26#

Trong khi 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 đang tiến triển nhanh chóng. Đối với các nhà phát triển muốn triển khai hiệu suất tốt nhất trong phân khúc hiện nay, chúng tôi thực sự 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 nhà phát triể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 ở vị trí tiên phong của 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ó sự hỗ trợ cộng đồng rộng rãi và độ bền đã được chứng minh.

Những người đóng góp

Bình luận