Ultralytics YOLO27:

YOLOX so với YOLOv6-3.0#

Sự phát triển của thị giác máy tính phần lớn được định hình bởi những tiến bộ nhanh chóng trong dòng YOLO. Việc lựa chọn architecture phù hợp cho quá trình triển khai thường phụ thuộc vào sự cân bằng giữa throughput thuần, tính đơn giản của architecture và hiệu quả huấn luyện. Hai cột mốc đáng chú ý trong hành trình này là trọng tâm nghiên cứu về mô hình không anchor của YOLOX và throughput 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 sự khác biệt về architecture, các metric hiệu năng và những trường hợp sử dụng lý tưởng của chúng, đồng thời giới thiệu các khả năng thế hệ mới của Ultralytics YOLO26 dành cho các developer đang tìm kiếm giải pháp triển khai edge và cloud tối ưu.

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

Được các nhà nghiên cứu tại Megvii phát triển, YOLOX được giới thiệu như một bước chuyển lớn hướng tới việc đơn giản hóa architecture YOLO bằng cách loại bỏ hoàn toàn anchor.

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 anchor vào dòng YOLO. Bằng cách loại bỏ các anchor box được định nghĩa trước, model giảm đáng kể số lượng tham số thiết kế và việc tinh chỉnh heuristic cần thiết trong quá trình huấn luyện. Nhờ đó, YOLOX có khả năng thích ứng cao với nhiều dataset tùy chỉnh khác nhau mà không cần tính toán lại anchor thủ công.

Ngoài ra, YOLOX giới thiệu architecture head tách rời. Bằng cách tách các tác vụ classification và regression thành những nhánh khác nhau, model giải quyết xung đột vốn có giữa việc xác định một object là và nó nằm ở đâu. Kết hợp với chiến lược gán label SimOTA, YOLOX đạt được tốc độ hội tụ nhanh hơn và độ chính xác trung bình (mAP) được cải thiện.

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

Ưu thế của thiết kế anchor-free

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

YOLOv6-3.0: Sức mạnh công nghiệp#

Được phát triển bởi Bộ phận Vision AI tại Meituan, YOLOv6-3.0 được thiết kế chuyên biệt để đạt throughput công nghiệp tối đa, đặc biệt trên GPU NVIDIA sử dụng các bộ gia 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 tối đa hóa khả năng sử dụng GPU. Model giới thiệu mô-đun nối hai chiều (BiC) trong neck để tăng cường việc hợp nhất feature mà vẫn duy trì tốc độ inference cao. Mặc dù giai đoạn inference hoàn toàn không sử dụng anchor, YOLOv6-3.0 áp dụng chiến lược Anchor-Aided Training (AAT) cải tiến để tận dụng độ ổn định dựa trên anchor trong giai đoạn huấn luyện.

Backbone được xây dựng bằng architecture 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 memory và tối đa hóa mật độ tính toán trên các bộ gia tốc hiện đại. Điều này khiến YOLOv6 trở thành một lựa chọn đặc biệt mạnh cho việc phân tích video phía server.

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

So sánh hiệu năng#

Khi so sánh các model này, developer phải cân nhắc độ chính xác thuần, tốc độ inference và số lượng tham số. Bảng sau đây nêu bật hiệu năng của cả hai dòng model ở nhiều kích thước khác nhau.

Modelkích thước
(pixel)
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 xuất sắc ở các biến thể lớn hơn, YOLOX vẫn có tính cạnh tranh cao nhờ sự đơn giản và hiệu năng 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 cụ thể của dự án, các ràng buộc triển khai và ưu tiên về ecosystem của bạn.

Khi nào nên chọn YOLOX#

YOLOX là lựa chọn phù hợp cho:

  • Nghiên cứu phát hiện không anchor: Nghiên cứu học thuật sử dụng kiến trúc không anchor rõ ràng của YOLOX làm baseline để thử nghiệm các detection head hoặc hàm loss mới.
  • Thiết bị edge siêu nhẹ: Triển khai trên microcontroller hoặc phần cứng mobile legacy, nơi footprint cực nhỏ của biến thể YOLOX-Nano (0.91M tham số) là yếu tố then chốt.
  • Nghiên cứu gán nhãn SimOTA: Các project nghiên cứu tìm hiểu chiến lược gán nhãn dựa trên optimal transport và tác động của chúng đến quá trình hội tụ khi training.

Khi nào nên chọn YOLOv6#

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

  • Triển khai nhận biết phần cứng công nghiệp: Các kịch bản trong đó thiết kế nhận biết phần cứng và quá trình tái tham số hóa hiệu quả của model mang lại hiệu năng tối ưu trên phần cứng mục tiêu cụ thể.
  • Phát hiện một giai đoạn tốc độ cao: Các ứng dụng ưu tiên tốc độ suy luận thô trên GPU để 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 team đã làm việc trong stack công nghệ và 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 dự án mới, Ultralytics YOLO26 mang đến sự kết hợp tốt nhất giữa hiệu năng và trải nghiệm developer:

  • Triển khai edge không cần NMS: Các ứng dụng yêu cầu suy luận nhất quán, độ trễ thấp mà không có sự phức tạp của bước hậu xử lý triệt tiêu cực đại.
  • Môi trường chỉ sử dụng CPU: Các thiết bị không có tăng tốc GPU chuyên dụng, nơi khả năng suy luận trên CPU nhanh hơn tới 43% của YOLO26 mang lại lợi thế quyết định.
  • Phát hiện đối tượng nhỏ: Các kịch bản đầy thách thức như ảnh chụp từ drone trên không hoặc phân tích cảm biến IoT, trong đó ProgLoss và STAL cải thiện đáng kể độ chính xác trên các đối tượng rất nhỏ.

Lợi thế của Ultralytics#

Mặc dù cả Megvii và Meituan đều cung cấp các repository nghiên cứu mạnh mẽ, việc triển khai những model này trong production thường đòi hỏi đáng kể overhead về engineering. Ecosystem Ultralytics tích hợp loại bỏ các trở ngại này bằng cách cung cấp một API thống nhất và được tài liệu hóa toàn diện.

Bằng cách tận dụng gói Ultralytics, các nhà phát triển có được trải nghiệm người dùng vượt trội. Điều này bao gồm tính năng tự động tăng cường dữ liệu tích hợp sẵn, quản lý bộ nhớ cực kỳ hiệu quả 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ư RT-DETR), và các pipeline xuất liền mạch sang các định dạng như ONNXOpenVINO.

Không giống các model chuyên biệt, các architecture của Ultralytics vốn có tính linh hoạt cao, hỗ trợ sẵn phát hiện object, phân đoạn instance, ước lượng pose, phân loại image và bounding box định hướng (OBB).

YOLO26: Giải pháp edge tối ưu#

Đối với các team bắt đầu dự án thị giác máy tính mới, chúng tôi đặc biệt khuyến nghị nâng cấp lên Ultralytics YOLO26 mới được phát hành. Phát triển dựa trên những thành công của YOLO11YOLOv8, YOLO26 giới thiệu các cải tiến mang tính đột phá về paradigm:

  • Thiết kế end-to-end không cần NMS: Được nghiên cứu lần đầu trong YOLOv10, YOLO26 loại bỏ nguyên bản nhu cầu hậu xử lý Non-Maximum Suppression (NMS). Điều này bảo đảm inference có tính xác định và độ trễ cực thấp, yếu tố then chốt đối với robotics thời gian thực.
  • Optimizer 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 optimizer MuSGD (một hybrid 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.
  • Inference trên CPU nhanh hơn tới 43%: Bằng cách loại bỏ Distribution Focal Loss (DFL) và tinh gọn network head, YOLO26 được tối ưu mạnh cho các thiết bị edge dựa vào thực thi trên CPU, vượt trội đáng kể so với YOLOv6 trong các kịch bản edge.
  • ProgLoss + STAL: Các công thức loss nâng cao này mang lại những cải thiện đáng kể trong phát hiện object nhỏ, khiến YOLO26 trở nên lý tưởng cho ảnh chụp trên không và kiểm tra khuyết tật ở cấp độ hiển vi.

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

Với Python API của Ultralytics, việc huấn luyện các model hiện đại chỉ cần vài dòng code. Interface nhất quán này được áp dụng tương tự dù bạn đang kiểm thử 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ý dataset, theo dõi experiment và huấn luyện model trên cloud bằng Ultralytics Platform không cần code.

Khuyến nghị theo trường hợp sử dụng#

Khi quyết định giữa các architecture này, hãy cân nhắc các giới hạn phần cứng cụ thể và yêu cầu của dự á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 label hoặc cần một baseline không anchor thuần túy, dễ hiểu để tùy chỉnh architecture.
  • Chọn YOLOv6-3.0 nếu bạn triển khai lên một server rack công nghiệp được trang bị các GPU NVIDIA cao cấp (như A100 hoặc T4), nơi bạn có thể sử dụng batch size lớn và các tối ưu hóa TensorRT để xử lý đồng thời hàng trăm luồng video.
  • Chọn YOLO26 cho phần lớn các ứng dụng hiện đại. Nếu bạn đang xây dựng ứng dụng Edge AI cho thiết bị IoT, drone hoặc điện thoại di động, thiết kế không cần NMS nguyên bản, các tối ưu hóa CPU và khả năng hỗ trợ ecosystem toàn diện của YOLO26 khiến đây trở thành lựa chọn tốt nhất không thể tranh cãi để kết nối khoảng cách giữa huấn luyện và production.
Những người đóng góp

Bình luận