Chuyển đến nội dung

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: 2021-07-18
Arxiv: https://arxiv.org/abs/2107.08430
GitHub: https://github.com/Megvii-BaseDetection/YOLOX
Tài liệu: https://yolox.readthedocs.io/en/latest/

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: Đại học Thanh Hoa
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

Đổ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à 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ìnhKích thước
(pixels)
mAPval
50-95
Tốc độ
CPU ONNX
(ms)
Tốc độ
T4 TensorRT10
(ms)
Tham số
(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 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 framework; việc huấn luyện các mô hình Ultralytics thường tiêu thụ ít bộ nhớ CUDA hơn nhiều so với các giải pháp thay thế dựa trên transformer nặng như RT-DETR. Dấu chân huấn luyện hiệu quả này cho phép sử dụng kích thước lô lớn hơn trên phần cứng cấp người tiêu dùng, đẩy nhanh 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 detect đối tượng, segment thể hiệnước tính tư thế chỉ 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 tích hợp, việc chuyển đổi mô hình sang các định dạng như TensorRT hoặc ONNX chỉ yêu cầu 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.

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 miền cụ thể 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 Đâ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 Đường Cơ Sở 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ế đầu cuối không NMS: Dựa trên những đột phá của YOLOv10, YOLO26 có thiết kế đầu cuối nguyên bản, đảm bảo thời gian suy luận nhanh hơn, có tính xác định mà không gặp các nút thắt cổ chai hậu xử lý.
  • Suy luận trê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 bộ xử lý di động và các thiết bị thiếu GPU rời.
  • Trình tối ưu hóa MuSGD: Lấy cảm hứng từ 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 giữa SGD và Muon để đạt được 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 việc nhận diện vật thể nhỏ, điều này rất quan trọng cho các lĩnh vực đòi hỏi cao 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 đồ thị mô hình để xuất dễ dàng sang các thiết bị biên và thiết bị tiêu thụ ít điện năng.
  • Cải tiến chuyên biệt theo tác vụ: Cho dù bạn đang sử dụng Ước tính Log-Likelihood Dư (RLE) để ước tính tư thế hay hàm mất mát góc chuyên biệt 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 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.


Bình luận