Ultralytics YOLO27:

DAMO-YOLO so với YOLOv10#

Lĩnh vực thị giác máy tính đã chứng kiến sự tiến hóa nhanh chóng của các kiến trúc phát hiện đối tượng theo thời gian thực. Khi so sánh DAMO-YOLOYOLOv10, chúng ta nhận thấy hai triết lý riêng biệt trong thiết kế model: tìm kiếm kiến trúc tự động so với tối ưu hóa đầu-cuối không cần NMS. Mặc dù cả hai đều mở rộng giới hạn về độ chính xác và tốc độ, cấu trúc nền tảng cũng như các trường hợp sử dụng lý tưởng của chúng khác biệt đáng kể.

DAMO-YOLO: Neural Architecture Search ở quy mô lớn#

Được phát triển bởi Alibaba Group, DAMO-YOLO nổi lên như một detector mạnh mẽ, tập trung khai thác khả năng khám phá tự động để đạt hiệu quả về cấu trúc.

  • Tác giả: Xianzhe Xu, Yiqi Jiang, Weihua Chen, Yilun Huang, Yuan Zhang và Xiuyu Sun
  • Ngày: 23 tháng 11, 2022
  • Arxiv: 2211.15444v2
  • GitHub: tinyvision/DAMO-YOLO

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

DAMO-YOLO phụ thuộc lớn vào Neural Architecture Search (NAS) để cân bằng giữa hiệu suất và độ trễ. Phần backbone của DAMO-YOLO, có tên là MAE-NAS, sử dụng tìm kiếm dẫn dắt bằng entropy tối đa dưới các ngân sách tính toán nghiêm ngặt để tìm ra chiều sâu và chiều rộng lớp tối ưu.

Để xử lý việc hợp nhất feature giữa các scale, model sử dụng RepGFPN (Mạng Kim tự tháp Feature Tổng quát được Tái tham số hóa) hiệu quả. Thiết kế neck lớn này đặc biệt phù hợp để trích xuất các phân cấp không gian phức tạp, khiến nó hữu ích trong những trường hợp như phân tích ảnh chụp từ trên không. Ngoài ra, DAMO-YOLO giới thiệu ZeroHead, một detection head tinh gọn giúp giảm đáng kể độ phức tạp của các layer dự đoán cuối, dựa vào quy trình tăng cường chưng cất mạnh mẽ trong quá trình training.

Training bằng Chưng cất

DAMO-YOLO thường sử dụng quy trình chưng cất tri thức nhiều giai đoạn. Quy trình này yêu cầu training một model "teacher" lớn hơn để hướng dẫn model "student" nhỏ hơn, giúp đạt mAP (độ chính xác trung bình) cao hơn nhưng làm tăng đáng kể thời gian tính toán GPU cần thiết.

Tìm hiểu thêm về DAMO-YOLO

YOLOv10: Tiên phong trong phát hiện đối tượng end-to-end#

Được phát hành sau đó một năm rưỡi, YOLOv10 tạo ra một bước chuyển đổi mô hình bằng cách loại bỏ hoàn toàn nhu cầu sử dụng Non-Maximum Suppression (NMS) trong quá trình inference.

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

Tính năng nổi bật của YOLOv10 là gán kép nhất quán cho quá trình training không cần NMS. Các detector truyền thống dự đoán nhiều bounding box chồng lấn cho một đối tượng, yêu cầu NMS để lọc các bản trùng lặp. Bước hậu xử lý này tạo ra một điểm nghẽn, đặc biệt trên các thiết bị edge. YOLOv10 giải quyết vấn đề này bằng cách cho phép model tự nhiên dự đoán một bounding box chính xác duy nhất cho mỗi đối tượng.

Các tác giả cũng tập trung vào thiết kế model toàn diện, định hướng bởi hiệu quả và độ chính xác. Bằng cách phân tích cẩn thận sự dư thừa tính toán trong các kiến trúc hiện có, họ đã tối ưu hóa backbone và head để giảm số lượng FLOPs và parameter. Thiết kế nhẹ này giúp YOLOv10 đạt độ trễ inference vượt trội khi được export sang các format như TensorRT hoặc OpenVINO.

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

Hiệu năng và benchmark#

Bảng dưới đây minh họa các metric hiệu năng thô trên dataset COCO. Các giá trị tổng thể tốt nhất trong mỗi cột được làm nổi bật bằng chữ đậm.

Modelkích thước
(pixel)
mAPval
50-95
Tốc độ
CPU ONNX
(ms)
Tốc độ
T4 TensorRT10
(ms)
tham số
(M)
FLOPs
(B)
DAMO-YOLOt64042.0-2.328.518.1
DAMO-YOLOs64046.0-3.4516.337.8
DAMO-YOLOm64049.2-5.0928.261.8
DAMO-YOLOl64050.8-7.1842.197.3
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

Mặc dù DAMO-YOLO có độ chính xác đáng kể, YOLOv10 luôn cung cấp độ trễ thấp hơn và trọng số model nhỏ hơn đáng kể. Chẳng hạn, YOLOv10s đạt mAP cao hơn một chút (46.7%) so với DAMO-YOLOs (46.0%) trong khi sử dụng chưa đến một nửa số parameter (7.2M so với 16.3M). Yêu cầu bộ nhớ thấp hơn giúp YOLOv10 trở thành lựa chọn đặc biệt linh hoạt cho các hệ thống nhúng.

Hiệu quả Training và Khả năng sử dụng#

Khi chuyển từ nghiên cứu học thuật sang production, tính dễ sử dụng là yếu tố tối quan trọng. Quy trình chưng cất nhiều giai đoạn và các cấu hình NAS phức tạp của DAMO-YOLO có thể tạo ra đường cong học tập dốc cho các team engineering.

Ngược lại, YOLOv10 hưởng lợi rất lớn từ việc được tích hợp hoàn toàn vào Ultralytics Python SDK. Việc training một model tùy chỉnh chỉ yêu cầu rất ít boilerplate code. Ultralytics tự động xử lý tăng cường dữ liệu, tinh chỉnh hyperparametertheo dõi experiment.

from ultralytics import YOLO

# Load a pretrained YOLOv10 nano model
model = YOLO("yolov10n.pt")

# Train on a custom dataset with built-in validation
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Run inference on an image seamlessly
prediction = model("path/to/image.jpg")
prediction[0].show()
Prototyping nhanh

Sử dụng hệ sinh thái Ultralytics cho phép developer chuyển từ prototype sang một model ONNX đã export hoàn chỉnh chỉ với vài dòng code, bỏ qua các bước thiết lập môi trường phức tạp vốn được yêu cầu bởi những framework cũ hơn.

Các trường hợp sử dụng trong thực tế#

  • Bán lẻ thông minh (DAMO-YOLO): Độ chính xác của DAMO-YOLO phù hợp với các môi trường server mật độ cao, phân tích hành vi khách hàng, nơi GPU dồi dào và các điểm nghẽn NMS theo thời gian thực có thể kiểm soát được.
  • Phương tiện tự hành (YOLOv10): Kiến trúc không cần NMS đảm bảo độ trễ mang tính xác định và có thể dự đoán, yếu tố quan trọng đối với các hệ thống an toàn trong lái xe tự hành.
  • Tự động hóa công nghiệp (YOLOv10): Việc phát hiện lỗi trên các dây chuyền lắp ráp chuyển động nhanh đòi hỏi những model tối đa hóa tốc độ inference theo thời gian thực mà không tiêu tốn VRAM lớn, khiến YOLOv10 trở thành ứng viên hàng đầu cho triển khai trên edge.

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

Việc lựa chọn giữa DAMO-YOLO và YOLOv10 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 DAMO-YOLO#

DAMO-YOLO là lựa chọn phù hợp cho:

  • Phân tích video thông lượng cao: Xử lý các luồng video FPS cao trên hạ tầng GPU NVIDIA cố định, trong đó thông lượng batch-1 là chỉ số chính.
  • Dây chuyền sản xuất công nghiệp: Các tình huống có yêu cầu nghiêm ngặt về độ trễ GPU trên phần cứng chuyên dụng, chẳng hạn như kiểm tra chất lượng theo thời gian thực trên dây chuyền lắp ráp.
  • Nghiên cứu Neural Architecture Search: Nghiên cứu tác động của tìm kiếm kiến trúc tự động (MAE-NAS) và các backbone được reparameterize hiệu quả đối với hiệu năng phát hiện.

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

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

  • Phát hiện thời gian thực không cần NMS: Các ứng dụng hưởng lợi từ khả năng phát hiện đầu cuối mà không cần triệt tiêu cực đại, giúp giảm độ phức tạp khi triển khai.
  • Cân bằng giữa tốc độ và độ chính xác: Các project yêu cầu sự cân bằng tốt giữa tốc độ suy luận và độ chính xác phát hiện trên nhiều quy mô model khác nhau.
  • Ứng dụng có độ trễ nhất quán: Các kịch bản triển khai mà thời gian suy luận có thể dự đoán là yếu tố quan trọng, chẳng hạn như robotics hoặc các hệ thống tự hành.

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ỏ.

Thế hệ tiếp theo: Giới thiệu Ultralytics YOLO26#

Mặc dù YOLOv10 đã đặt nền móng cho khả năng phát hiện không cần NMS, công nghệ này đã phát triển nhanh chóng. Đối với các ứng dụng hiện đại, model Ultralytics YOLO26 mang lại hiệu năng và khả năng sử dụng vượt trội, kế thừa những ưu điểm của các thế hệ trước và tinh chỉnh chúng cho production.

YOLO26 sở hữu thiết kế end-to-end nguyên bản, loại bỏ quá trình hậu xử lý NMS để đơn giản hóa các pipeline triển khai trên các thiết bị edge. Hơn nữa, việc loại bỏ Distribution Focal Loss (DFL) đã cải thiện đáng kể khả năng tương thích với phần cứng edge AI công suất thấp.

Ở phía training, YOLO26 giới thiệu MuSGD Optimizer, một optimizer lai lấy cảm hứng từ các kỹ thuật training Large Language Model (LLM). Điều này đảm bảo quá trình training ổn định hơn và hội tụ nhanh hơn. Kết hợp với các hàm loss ProgLoss + STAL, YOLO26 cho thấy những cải thiện đáng kể trong khả năng nhận diện đối tượng nhỏ, một tính năng quan trọng đối với bảo tồn động vật hoang dãvận hành drone.

Quan trọng hơn, YOLO26 không chỉ là một object detector. Model này cung cấp các cải tiến chuyên biệt cho từng task trên toàn bộ hệ thống, hỗ trợ native Instance Segmentation, Pose Estimation bằng Residual Log-Likelihood Estimation (RLE), cùng các loss góc chuyên biệt cho Oriented Bounding Boxes (OBB). Với inference trên CPU nhanh hơn tới 43% so với các thế hệ tiền nhiệm, đây là lựa chọn dứt khoát cho các team engineering linh hoạt.

Để quản lý tập trung, annotation và training trên cloud cho các model YOLO26, Ultralytics Platform cung cấp một giao diện trực quan giúp tinh gọn toàn bộ vòng đời thị giác máy tính.

Các developer quan tâm đến việc khám phá những tiến bộ gần đây khác cũng có thể đánh giá Ultralytics YOLO11 hoặc framework RT-DETR dựa trên transformer cho các trường hợp yêu cầu những giải pháp kiến trúc khác biệt.

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

Bình luận