Ultralytics YOLO27:
Get Started

YOLOX và 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 chọn kiến trúc phù hợp cho triển khai thường phụ thuộc vào sự cân bằng giữa thông lượng thuần, 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à định hướng nghiên cứu không anchor của YOLOX và thông 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 khác biệt về kiến trúc, chỉ số hiệu năng và các trường hợp sử dụng phù hợp của hai model, đồng thời giới thiệu năng lực thế hệ mới của Ultralytics YOLO26 dành cho nhà phát triển đ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ới công nghiệp#

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

Đ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ỏ anchor box được xác định trước, model giảm đáng kể số lượng tham số thiết kế và mức độ tinh chỉnh theo heuristic cần thiết trong quá trình huấn luyện. Nhờ đó, YOLOX dễ thích ứng 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 kiến trúc head tách biệt. Bằng cách phân chia tác vụ phân loại và hồi quy thành các nhánh riêng, model giải quyết xung đột vốn có giữa việc xác định đối tượng là gì và nó nằm ở đâu. Kết hợp với chiến lược gán nhãn SimOTA, YOLOX hội tụ nhanh hơn và cải thiện mean average precision (mAP).

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

Ưu thế của thiết kế không dùng anchor

Các detector không anchor như YOLOX thường hoạt động tốt hơn trên dataset tùy chỉnh có tỷ lệ khung hình đối tượng khác thường, vì chúng không phụ thuộc vào các prior bounding box cố định 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 Phòng ban Vision AI tại Meituan, YOLOv6-3.0 được thiết kế chuyên biệt để đạt thông lượng công nghiệp tối đa, đặc biệt 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 tối đa hóa mức sử dụng GPU. Model giới thiệu module Bi-directional Concatenation (BiC) ở neck để tăng cường hợp nhất đặc trưng trong khi vẫn duy trì tốc độ suy luận cao. Giai đoạn suy luận hoàn toàn không anchor, nhưng YOLOv6-3.0 sử dụng chiến lược Anchor-Aided Training (AAT) cải tiến để tận dụng sự ổn định của phương pháp dựa trên anchor trong giai đoạn huấn luyệ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 khiến YOLOv6 trở thành ứng viên đặc biệt mạnh 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, nhà phát triển cần cân nhắc độ chính xác thuần, tốc độ suy luận và số lượng tham số. Bảng sau 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)
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
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 có mAP cao hơn và tốc độ TensorRT xuất sắc ở các biến thể lớn, YOLOX vẫn rất cạnh tranh nhờ tính đơn giản và hiệu năng mạnh mẽ trên phần cứng cũ.

Trường hợp sử dụng và khuyến nghị#

Việc chọn YOLOX hay 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à lựa chọn hệ sinh thái của bạn.

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

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

  • 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 head phát hiện hoặc hàm loss mới.
  • Thiết bị biên siêu nhẹ: Triển khai trên vi điều khiển hoặc phần cứng di động đời cũ, nơi kích thước 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 dự án nghiên cứu tìm hiểu chiến lược gán nhãn dựa trên vận tải tối ưu và ảnh hưởng của chúng đến quá trình hội tụ khi huấn luyện.

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

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

  • Triển khai tương thích với phần cứng công nghiệp: Các tình huống mà thiết kế nhận biết phần cứng và 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ể.
  • Detection một giai đoạn tốc độ cao: Các ứng dụng ưu tiên tốc độ suy luận GPU thô để 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 nhóm đang làm việc trong ngăn xếp công nghệ và hạ tầng triển khai của Meituan.

Khi nào nên chọn Ultralytics (YOLO26)#

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 dành cho nhà phát triển:

  • Triển khai trên thiết bị biên không cần NMS: Các ứng dụng cần inference có độ trễ thấp và ổn định mà không phải xử lý hậu kỳ Non-Maximum Suppression phức tạp.
  • Môi trường chỉ có CPU: Các thiết bị không có GPU tăng tốc chuyên dụng, nơi tốc độ CPU inference nhanh hơn đến 43% của YOLO26 mang lại lợi thế rõ rệt.
  • Phát hiện vật thể nhỏ: Các tình huống khó 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 khi phát hiện vật thể rất nhỏ.

Lợi thế của Ultralytics#

Mặc dù Megvii và Meituan đều cung cấp các repository nghiên cứu mạnh mẽ, việc triển khai các model này trong production thường đòi hỏi nhiều công sức kỹ thuật. Hệ sinh thái Ultralytics tích hợp giúp loại bỏ những trở ngại này bằng cách cung cấp API hợp nhất, có tài liệu đầy đủ.

Khai thác gói Ultralytics giúp nhà phát triển có được trải nghiệm người dùng vượt trội. Các tính năng bao gồm tự động tăng cường dữ liệu tích hợp, 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ư RT-DETR) và pipeline export liền mạch sang các định dạng như ONNX và OpenVINO.

Không giống các model chuyên biệt, kiến trúc Ultralytics vốn linh hoạt, hỗ trợ sẵn Phát hiện đối tượng, Phân đoạn instance, Ước tính tư thế, Phân loại ảnh và Bounding Box định hướng (OBB).

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

Với các nhóm 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 vừa ra mắt. Kế thừa những thành công của YOLO11 và YOLOv8, YOLO26 giới thiệu những cải tiến mang tính đột phá:

  • Thiết kế end-to-end không cần NMS: Được nghiên cứu lần đầu trong YOLOv10, head one-to-one tùy chọn của YOLO26 (nms=False) loại bỏ nhu cầu hậu xử lý Non-Maximum Suppression (NMS). Điều này đảm bảo suy luận có tính xác định với độ trễ cực thấp, yếu tố thiết yếu cho robot 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 (kết hợp SGD và Muon) để đạt được động lực huấn luyện ổn định vượt trội và hội tụ nhanh hơn.
  • Suy luận CPU nhanh hơn tới 43%: Bằng cách loại bỏ Distribution Focal Loss (DFL) và tinh gọn head mạng, YOLO26 được tối ưu hóa mạnh mẽ cho các thiết bị edge dựa vào thực thi trên CPU, vượt trội rõ rệt so với YOLOv6 trong các tình huống edge.
  • ProgLoss + STAL: Các công thức loss tiên tiến này cải thiện đáng kể khả năng phát hiện đối tượng nhỏ, khiến YOLO26 trở nên lý tưởng cho ảnh chụp từ trên không và kiểm tra lỗi vi mô.

Ví dụ huấn luyện hợp nhất#

Với Python API của Ultralytics, việc huấn luyện các model tiên tiến nhất chỉ cần vài dòng mã. Giao diện gọn gàng này áp dụng như nhau dù bạn đang thử nghiệm 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 dataset downloading, caching, and 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")
Ultralytics Platform

Để có trải nghiệm thuận tiện hơn nữa, hãy quản lý dataset, theo dõi thử nghiệm và huấn luyện model trên cloud bằng Ultralytics Platform không cần viết mã.

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

Khi lựa chọn giữa các kiến trúc này, hãy cân nhắc các giới hạn 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 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 anchor thuần túy, dễ hiểu để tùy chỉnh kiến trúc.
  • Chọn YOLOv6-3.0 nếu bạn triển khai trên cụm máy chủ công nghiệp trang bị GPU NVIDIA cao cấp (như A100 hoặc T4), nơi bạn có thể dùng batch size lớn và 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 ứng dụng hiện đại. Nếu bạn 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, các tối ưu hóa CPU và hỗ trợ hệ sinh thái toàn diện của YOLO26 khiến model trở thành lựa chọn hàng đầu không thể tranh cãi để thu hẹp khoảng cách giữa huấn luyện và production.
Người đóng góp

Bình luận