Ultralytics YOLO27:
Get Started

DAMO-YOLO và YOLOv10#

Lĩnh vực thị giác máy tính đã chứng kiến sự phát triển 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-YOLO và YOLOv10, có thể thấy hai triết lý thiết kế model riêng biệt: tìm kiếm kiến trúc tự động và tối ưu end-to-end không cần NMS. Cả hai đều mở rộng giới hạn về độ chính xác và tốc độ, nhưng cấu trúc nền tảng và trường hợp sử dụng lý tưởng của chúng khác nhau đáng kể.

DAMO-YOLO: Tìm kiếm kiến trúc mạng nơ-ron ở quy mô lớn#

Được phát triển bởi Alibaba Group, DAMO-YOLO là một model phát hiện 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 năm 2022
  • Arxiv: 2211.15444v2
  • GitHub: tinyvision/DAMO-YOLO

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

DAMO-YOLO phụ thuộc nhiều vào Tìm kiếm kiến trúc mạng (NAS) để cân bằng hiệu năng và độ trễ. Backbone của model, có tên MAE-NAS, sử dụng phương pháp tìm kiếm có hướng dẫn bằng entropy cực đại trong giới hạn ngân sách tính toán nghiêm ngặt để tìm độ sâu và chiều rộng lớp tối ưu.

Để xử lý việc hợp nhất đặc trưng ở nhiều tỷ lệ, model sử dụng RepGFPN (Mạng tháp đặc trưng 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 giỏi trích xuất cấu trúc phân cấp không gian phức tạp, hữu ích trong các tình huống 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 head phát hiện tinh gọn giúp giảm mạnh độ phức tạp của các lớp dự đoán cuối cùng, đồng thời dựa vào quy trình tăng cường chưng cất mạnh mẽ trong huấn luyện.

Huấn luyện 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 huấn luyện một model "teacher" lớn hơn để hướng dẫn model "student" nhỏ hơn; model nhỏ hơn đạ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 trê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#

Ra mắt sau đó một năm rưỡi, YOLOv10 tạo ra bước chuyển đổi mô hình bằng cách loại bỏ hoàn toàn nhu cầu dùng Non-Maximum Suppression (NMS) khi suy luận.

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

Điểm nổi bật của YOLOv10 là cơ chế gán cặp nhất quán để huấn luyện không cần NMS. Các model phát hiện truyền thống dự đoán nhiều hộp giới hạn chồng lấp cho cùng một đối tượng, nên cần NMS để lọc các dự đoán trùng lặp. Bước hậu xử lý này tạo ra nút thắt cổ chai, đặc biệt trên thiết bị edge. YOLOv10 giải quyết vấn đề bằng cách cho phép model dự đoán tự nhiên một hộp giới hạn 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 cân bằng toàn diện giữa 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 backbone và head để giảm số lượng FLOPs và tham số. Thiết kế nhẹ này giúp YOLOv10 đạt độ trễ suy luận vượt trội khi xuất sang các định dạng 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 chỉ số hiệu năng thô trên tập dữ liệu COCO. Các giá trị tốt nhất trong mỗi cột được tô đậm.

Modelkích thước
(pixel)
mAPval
50-95
Tốc độ
CPU ONNX
(ms)
Tốc độ
T4 TensorRT10
(ms)
params
(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
YOLOv10n64038.5-1.842.36.7
YOLOv10s64046.3-2.497.221.6
YOLOv10m64051.1-4.7415.459.1
YOLOv10b64052.5-5.7419.192.0
YOLOv10l64053.2-7.2824.4120.3
YOLOv10x64054.4-10.7029.5160.4

DAMO-YOLO có độ chính xác tốt, nhưng YOLOv10 đạt độ chính xác cao hơn ở quy mô tương đương và có trọng số model nhỏ hơn đáng kể. Ví dụ, YOLOv10s đạt mAP cao hơn một chút so với DAMO-YOLOs (46,3% so với 46,0%) trong khi sử dụng chưa đến một nửa số tham số (7,2M so với 16,3M). Yêu cầu bộ nhớ thấp hơn khiến 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ả train và tính dễ sử dụng#

Khi chuyển từ nghiên cứu học thuật sang sản xuất, 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ấ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 nhóm kỹ thuật.

Ngược lại, YOLOv10 được hưởng lợi đáng kể nhờ tích hợp hoàn toàn vào Ultralytics Python SDK. Việc huấn luyện model tùy chỉnh chỉ cần rất ít mã khung sườn. Ultralytics tự động xử lý tăng cường dữ liệu, tinh chỉnh siêu tham số và theo dõi thử nghiệm.

from ultralytics import YOLO

# Tải model YOLOv10 nano đã huấn luyện trước
model = YOLO("yolov10n.pt")

# Huấn luyện trên tập dữ liệu tùy chỉnh với chức năng validation tích hợp
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Chạy suy luận trên ảnh một cách liền mạch
prediction = model("path/to/image.jpg")
prediction[0].show()
Tạo nguyên mẫu nhanh

Sử dụng hệ sinh thái Ultralytics cho phép nhà phát triển chuyển từ nguyên mẫu sang model ONNX đã xuất hoàn chỉnh chỉ với vài dòng code, không cần thiết lập môi trường phức tạp như các framework cũ.

Các trường hợp sử dụng 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 máy chủ mật độ cao phân tích hành vi khách hàng, nơi GPU dồi dào và có thể kiểm soát các nút thắt cổ chai do NMS thời gian thực gây ra.
  • Phương tiện tự hành (YOLOv10): Kiến trúc không cần NMS đảm bảo độ trễ có tính xác định và dễ dự đoán, yếu tố thiết yếu đố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): Phát hiện lỗi trên dây chuyền lắp ráp chuyển động nhanh đòi hỏi model tối đa hóa tốc độ suy luận thời gian thực mà không tiêu tốn quá nhiều VRAM, khiến YOLOv10 trở thành lựa chọn hàng đầu để triển khai trên edge.

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

Việc chọn DAMO-YOLO hay YOLOv10 phụ thuộc vào yêu cầu cụ thể của dự án, giới hạn 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ý 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 kịch bản 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 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 ảnh hưởng của tìm kiếm kiến trúc tự động (MAE-NAS) và các backbone tái tham số hóa hiệu quả đến 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 end-to-end không cần Non-Maximum Suppression, 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 dự án cần sự cân bằng tốt giữa tốc độ inference và độ chính xác phát hiện trên nhiều quy mô model.
  • Ứng dụng cần độ trễ ổn định: Các tình huống triển khai yêu cầu thời gian inference có thể dự đoán, chẳng hạn như robotics hoặc hệ thống tự hành.

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

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

YOLOv10 đã đặt nền móng cho phát hiện không cần NMS, nhưng công nghệ đã phát triển nhanh chóng. 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 điểm mạnh của các thế hệ trước và tinh chỉnh chúng cho môi trường sản xuất.

YOLO26 có chế độ end-to-end tích hợp sẵn (nms=False), bỏ qua bước hậu xử lý NMS để đơn giản hóa các pipeline triển khai trên 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 AI edge công suất thấp.

Trong quy trình huấn luyện, YOLO26 giới thiệu Optimizer MuSGD, một optimizer lai lấy cảm hứng từ các kỹ thuật huấn luyện Mô hình ngôn ngữ lớn (LLM). Optimizer này giúp quá trình huấn luyện ổ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 cải thiện đáng kể khả năng nhận diện đối tượng nhỏ, yếu tố quan trọng trong bảo tồn động vật hoang dã và hoạt động bằng drone.

Điều quan trọng là YOLO26 không chỉ là model phát hiện đối tượng. Model cải thiện chuyên biệt theo từng tác vụ, hỗ trợ sẵn phân đoạn đối tượng riêng lẻ, ước tính tư thế bằng Ước tính hợp lý logarit phần dư (RLE) và các hàm loss góc chuyên biệt cho hộp giới hạn định hướng (OBB). Với tốc độ suy luận CPU nhanh hơn thế hệ trước đến 43%, đây là lựa chọn tối ưu cho các nhóm kỹ thuật linh hoạt.

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

Nhà phát triển muốn tìm hiểu các cải tiến 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 tình huống cần giải pháp kiến trúc khác biệt.

Người đóng góp

Bình luận