YOLOX so với YOLOv6-3.0: Hướng dẫn toàn diện về phát hiện đối tượng công nghiệp và không sử dụng neo (anchor-free)

Sự tiến hóa của computer vision phần lớn được định hình bởi những tiến bộ nhanh chóng trong loạt model YOLO. Việc chọn kiến trúc phù hợp cho quá trình triển khai thường phụ thuộc vào sự cân bằng giữa lưu lượng thực tế, tính đơn giản của kiến trúc và hiệu quả huấn luyện. Hai cột mốc đáng chú ý trong hành trình này là sự tập trung nghiên cứu kiến trúc không dùng neo của YOLOX và lưu lượng công nghiệp được tối ưu hóa cao của YOLOv6-3.0.

Bài so sánh kỹ thuật này phân tích các khác biệt về 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, đồng thời giới thiệu các khả năng thế hệ mới của Ultralytics YOLO26 cho các nhà phát triển đang tìm kiếm giải pháp triển khai trên thiết bị biên (edge) và đám mây tối ưu.

YOLOX: Kết nối Nghiên cứu và Công nghiệp

Được phát triển bởi các nhà nghiên cứu tại Megvii, YOLOX được giới thiệu như một bước chuyển mình lớn hướng tới việc đơn giản hóa kiến trúc YOLO bằng cách loại bỏ hoàn toàn các neo (anchor-free).

Các điểm nổi bật về kiến trúc

YOLOX đã tích hợp thành công thiết kế không dùng neo vào gia đình YOLO. Bằng cách loại bỏ các anchor boxes định sẵn, model giảm đáng kể số lượng tham số thiết kế và việc tinh chỉnh theo kinh nghiệm cần thiết trong quá trình huấn luyện. Điều này làm cho YOLOX có khả năng thích ứng cao với các bộ dữ liệu tùy chỉnh đa dạng mà không cần tính toán lại neo thủ công.

Hơn nữa, YOLOX đã giới thiệu kiến trúc đầu phân tách (decoupled head). Bằng cách tách biệt các tác vụ phân loại và hồi quy thành các nhánh khác nhau, model giải quyết mâu thuẫn vốn có giữa việc xác định đối tượng là gìnằm ở đâu. Kết hợp với chiến lược gán nhãn SimOTA, YOLOX đạt được tốc độ hội tụ nhanh hơn và cải thiện mean average precision (mAP).

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

Ưu điểm của thiết kế Anchor-Free

Các bộ phát hiện không dùng neo như YOLOX thường hoạt động tốt hơn trên các bộ dữ liệu tùy chỉnh có tỷ lệ khung hình đối tượng bất thường vì chúng không phụ thuộc vào các prio bounding box cố định vốn có thể không khớp với dữ liệu mới.

YOLOv6-3.0: Ông lớn trong ngành công nghiệp

Được phát triển bởi Bộ phận AI thị giác tại Meituan, YOLOv6-3.0 được thiết kế một cách chuyên biệt để đạt lưu lượng công nghiệp tối đa, đặc biệt là trên GPU NVIDIA sử dụng các bộ tăng tốc phần cứng như TensorRT.

  • Tác giả: Chuyi Li, Lulu Li, Yifei Geng, và cộng sự.
  • Tổ chức: Meituan
  • Ngày: 2023-01-13
  • Arxiv: 2301.05586
  • GitHub: meituan/YOLOv6

Tối ưu hóa cho triển khai

YOLOv6-3.0 tập trung vào việc tối đa hóa hiệu suất sử dụng GPU. Nó giới thiệu module Nối hai chiều (BiC) trong phần neck để tăng cường kết hợp đặc trưng trong khi vẫn duy trì tốc độ suy luận (inference) cao. Mặc dù giai đoạn suy luận hoàn toàn không dùng neo, YOLOv6-3.0 sử dụng chiến lược Huấn luyện hỗ trợ bằng neo (AAT) sáng tạo để hưởng lợi từ sự ổn định dựa trên neo trong giai đoạn huấn luyện.

Phần backbone được xây dựng bằng kiến trúc EfficientRep thân thiện với phần cứng, được thiết kế có chủ đích để giảm thiểu chi phí truy cập bộ nhớ và tối đa hóa mật độ tính toán trên các bộ tăng tốc hiện đại. Điều này làm cho YOLOv6 trở thành một ứng cử viên cực kỳ mạnh mẽ cho phân tích video phía máy chủ.

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

So sánh hiệu năng

Khi so sánh các model này, các nhà phát triển phải cân nhắc độ chính xác thô so với tốc độ suy luận và số lượng tham số. Bảng dưới đây làm nổi bật hiệu suất của cả hai dòng model qua các kích thước khác nhau.

Modelkí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
YOLOv6-3.0n64037.5-1.174.711.4
YOLOv6-3.0s64045.0-2.6618.545.3
YOLOv6-3.0m64050.0-5.2834.985.8
YOLOv6-3.0l64052.8-8.9559.6150.7

Mặc dù YOLOv6-3.0 cho thấy mAP vượt trội và tốc độ TensorRT tuyệt vời cho các biến thể lớn hơn, YOLOX vẫn rất cạnh tranh nhờ tính đơn giản và hiệu suất mạnh mẽ trên phần cứng cũ.

Các trường hợp sử dụng và khuyến nghị

Việc lựa chọn giữa YOLOX và YOLOv6 phụ thuộc vào yêu cầu dự án cụ thể, các hạn chế triển khai và tùy chọn hệ sinh thái của bạn.

Khi nào nên chọn YOLOX

YOLOX là một lựa chọn mạnh mẽ cho:

  • Nghiên cứu nhận diện không dùng anchor: Nghiên cứu học thuật sử dụng kiến trúc không dùng anchor sạch sẽ của YOLOX làm cơ sở để thử nghiệm với các head nhận diện hoặc hàm loss mới.
  • Thiết bị Edge siêu nhẹ: Triển khai trên các vi điều khiển hoặc phần cứng di động cũ nơi mà dấu chân cực nhỏ của biến thể YOLOX-Nano (0.91 triệu tham số) là rất quan trọng.
  • Nghiên cứu về 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 quá trình training.

Khi nào nên chọn YOLOv6

YOLOv6 được khuyến nghị cho:

  • Triển khai hướng đến phần cứng công nghiệp: Các kịch bản mà thiết kế hướng phần cứng và khả năng tái tham số hóa hiệu quả của mô hình mang lại hiệu suất tối ưu trên phần cứng mục tiêu cụ thể.
  • Phát hiện một giai đoạn nhanh: Các ứng dụng ưu tiên tốc độ suy luận thô trên GPU cho xử lý video thời gian thực trong môi trường được kiểm soát.
  • Tích hợp hệ sinh thái Meituan: Các đội ngũ đã và đang làm việc trong hệ thống công nghệ và cơ sở hạ tầng triển khai của Meituan.

Khi 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 suất 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 ổn định, độ trễ thấp mà không cần sự phức tạp của việc hậu xử lý Non-Maximum Suppression.
  • Môi trường chỉ sử dụng CPU: Các thiết bị không có GPU tăng tốc chuyên dụng, nơi tốc độ suy luận trên CPU nhanh hơn tới 43% của YOLO26 mang lại lợi thế quyết định.
  • Nhận diện đối tượng nhỏ: Các kịch bản thách thức như ảnh drone 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 đối tượng cực nhỏ.

Ưu thế của Ultralytics

Mặc dù cả Megvii và Meituan đều cung cấp các kho lưu trữ nghiên cứu mạnh mẽ, việc triển khai các model này vào thực tế thường đòi hỏi chi phí kỹ thuật đáng kể. Hệ sinh thái Ultralytics tích hợp giúp loại bỏ những rào cản này bằng cách cung cấp một API thống nhất, được ghi chép đầy đủ.

Bằng cách tận dụng gói thư viện Ultralytics, các nhà phát triển có quyền truy cập vào trải nghiệm người dùng tuyệt vời. Điều này bao gồm auto-augmentation tích hợp sẵn, quản lý bộ nhớ hiệu quả cao trong quá trình huấn luyện (giảm đáng kể yêu cầu VRAM so với các model Transformer như RTDETR) và quy trình xuất file mượt mà sang các định dạng như ONNXOpenVINO.

Không giống như các model chuyên biệt, các kiến trúc của Ultralytics vốn dĩ linh hoạt, hỗ trợ Object Detection, Instance Segmentation, Pose Estimation, phân loại ảnh và Oriented Bounding Boxes (OBB) ngay lập tức.

Giới thiệu YOLO26: Giải pháp Edge tối ưu

Đối với các nhóm bắt đầu các dự án computer vision mới, chúng tôi thực sự khuyên bạn nên nâng cấp lên Ultralytics YOLO26 mới được phát hành. Xây dựng dựa trên thành công của YOLO11YOLOv8, YOLO26 giới thiệu các đổi mới mang tính thay đổi mô hình:

  • End-to-End NMS-Free Design: First explored in YOLOv10, YOLO26 natively eliminates the need for Non-Maximum Suppression (NMS) post-processing. This guarantees deterministic, ultra-low latency inference critical for real-time robotics.
  • Trình tối ưu hóa MuSGD: Lấy cảm hứng từ các kỹ thuật huấn luyện LLM như Kimi K2 của Moonshot AI, YOLO26 sử dụng trình tối ưu hóa MuSGD (kết hợp giữa SGD và Muon) để đạt được động lực huấn luyện cực kỳ ổn định và hội tụ nhanh hơn.
  • Up to 43% Faster CPU Inference: By removing Distribution Focal Loss (DFL) and streamlining the network head, YOLO26 is heavily optimized for edge devices relying on CPU execution, drastically outperforming YOLOv6 in edge scenarios.
  • ProgLoss + STAL: Các công thức loss nâng cao này mang lại những cải tiến đáng kinh ngạc trong phát hiện đối tượng nhỏ, biến YOLO26 trở thành lựa chọn lý tưởng cho hình ảnh trên không và kiểm tra lỗi ở cấp độ vi mô.

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

Ví dụ về huấn luyện thống nhất

Sử dụng Python API của Ultralytics, việc huấn luyện các model hiện đại chỉ đòi hỏi vài dòng code. Giao diện sạch sẽ này áp dụng cho dù bạn đang thử nghiệm một model YOLO cũ hay triển khai framework YOLO26 tiên tiến.

from ultralytics import YOLO

# Load the next-generation YOLO26 model (NMS-free, optimized for edge)
model = YOLO("yolo26n.pt")

# Train the model on the COCO8 dataset
# The ecosystem handles downloading, caching, and auto-batching natively
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Validate the model and print mAP metrics
metrics = model.val()
print(f"Validation mAP50-95: {metrics.box.map}")

# Export the model for edge deployment
model.export(format="onnx")
Nền tảng Ultralytics

Để có trải nghiệm mượt mà hơn nữa, hãy quản lý bộ dữ liệu, theo dõi các thí nghiệm và huấn luyện model trên đám mây bằng Ultralytics Platform không cần code.

Đề xuất trường hợp sử dụng

Khi quyết định giữa các kiến trúc này, hãy xem xét các hạn chế phần cứng và yêu cầu dự án cụ thể của bạn:

  • Chọn YOLOX nếu bạn đang thực hiện nghiên cứu học thuật về các chiến lược gán nhãn hoặc cần một baseline không dùng neo thuần túy, dễ hiểu để sửa đổi kiến trúc tùy chỉnh.
  • Chọn YOLOv6-3.0 nếu bạn đang triển khai trên một tủ rack máy chủ công nghiệp được trang bị GPU NVIDIA cao cấp (như A100 hoặc T4), nơi bạn có thể sử dụng kích thước batch lớn và các tối ưu hóa TensorRT để xử lý hàng trăm luồng video cùng lúc.
  • Choose YOLO26 for the vast majority of modern applications. If you are building Edge AI applications for IoT devices, drones, or mobile phones, YOLO26's native NMS-free design, CPU optimizations, and comprehensive ecosystem support make it the undisputed best choice for bridging the gap between training and production.

Bình luận