Bỏ qua nội dung

YOLOv10: Phát hiện đối tượng đầu cuối theo thời gian thực

YOLOv10, được xây dựng trên gói Ultralytics Python của các nhà nghiên cứu tại Đại học Thanh Hoa , giới thiệu một phương pháp mới để phát hiện đối tượng theo thời gian thực, giải quyết cả những thiếu sót về hậu xử lý và kiến trúc mô hình được tìm thấy trong các phiên bản trước. YOLO phiên bản. Bằng cách loại bỏ sự triệt tiêu không tối đa (NMS) và tối ưu hóa các thành phần mô hình khác nhau, YOLOv10 đạt được hiệu suất tiên tiến với chi phí tính toán giảm đáng kể. Các thí nghiệm mở rộng chứng minh sự đánh đổi độ chính xác-độ trễ vượt trội của nó trên nhiều thang đo mô hình.

YOLOv10 phân công kép nhất quán để đào tạo không có NMS



Đồng hồ: Cách huấn luyện YOLOv10 trên Bộ dữ liệu SKU-110k bằng cách sử dụng Ultralytics | Bộ dữ liệu bán lẻ

Tổng quan

Phát hiện đối tượng theo thời gian thực nhằm mục đích dự đoán chính xác các danh mục và vị trí đối tượng trong hình ảnh với độ trễ thấp. YOLO series đã đi đầu trong nghiên cứu này do sự cân bằng giữa hiệu suất và hiệu quả. Tuy nhiên, sự phụ thuộc vào NMS và sự kém hiệu quả về mặt kiến trúc đã cản trở hiệu suất tối ưu. YOLOv10 giải quyết những vấn đề này bằng cách giới thiệu các nhiệm vụ kép nhất quán cho đào tạo không có NMS và một chiến lược thiết kế mô hình toàn diện thúc đẩy hiệu quả-độ chính xác.

Ngành kiến trúc

Kiến trúc của YOLOv10 được xây dựng dựa trên thế mạnh của các kiến trúc trước đó YOLO mô hình trong khi giới thiệu một số cải tiến quan trọng. Kiến trúc mô hình bao gồm các thành phần sau:

  1. Xương sống : Chịu trách nhiệm trích xuất tính năng , xương sống trong YOLOv10 sử dụng phiên bản nâng cao của CSPNet (Mạng cục bộ xuyên giai đoạn) để cải thiện luồng gradient và giảm sự dư thừa tính toán.
  2. Cổ : Cổ được thiết kế để tổng hợp các đặc điểm từ các tỷ lệ khác nhau và truyền chúng đến đầu. Nó bao gồm các lớp PAN (Mạng tổng hợp đường dẫn) để hợp nhất các đặc điểm đa tỷ lệ hiệu quả.
  3. Đầu một-nhiều : Tạo ra nhiều dự đoán cho mỗi đối tượng trong quá trình đào tạo để cung cấp tín hiệu giám sát phong phú và cải thiện độ chính xác khi học.
  4. Đầu một-một : Tạo ra một dự đoán tốt nhất duy nhất cho mỗi đối tượng trong quá trình suy luận để loại bỏ nhu cầu về NMS, do đó giảm độ trễ và cải thiện hiệu quả.

Các tính năng chính

  1. Đào tạo không cần NMS : Sử dụng các phép gán kép nhất quán để loại bỏ nhu cầu sử dụng NMS, giảm độ trễ suy luận.
  2. Thiết kế mô hình toàn diện : Tối ưu hóa toàn diện nhiều thành phần khác nhau từ góc độ hiệu quả và độ chính xác, bao gồm đầu phân loại nhẹ, lấy mẫu theo kênh không gian tách biệt và thiết kế khối theo thứ hạng.
  3. Khả năng mô hình nâng cao : Kết hợp các phép toán tích chập nhân lớn và các mô-đun tự chú ý một phần để cải thiện hiệu suất mà không tốn nhiều chi phí tính toán.

Các biến thể mô hình

YOLOv10 có nhiều kích thước mô hình khác nhau để đáp ứng các nhu cầu ứng dụng khác nhau:

  • YOLOv10-N : Phiên bản Nano dành cho môi trường có nguồn tài nguyên cực kỳ hạn chế.
  • YOLOv10-S : Phiên bản nhỏ có tốc độ cân bằng và độ chính xác cao.
  • YOLOv10-M : Phiên bản trung bình dành cho mục đích sử dụng chung.
  • YOLOv10-B : Phiên bản cân bằng có chiều rộng lớn hơn để có độ chính xác cao hơn.
  • YOLOv10-L : Phiên bản lớn hơn cho độ chính xác cao hơn với chi phí tăng thêm tài nguyên tính toán.
  • YOLOv10-X : Phiên bản cực lớn cho độ chính xác và hiệu suất tối đa.

Hiệu suất

YOLOv10 vượt trội hơn so với trước đó YOLO phiên bản và các mô hình tiên tiến khác về độ chính xác và hiệu quả. Ví dụ, YOLOv10-S nhanh hơn 1,8 lần so với RT-DETR -R18 có AP tương tự trên tập dữ liệu COCO và YOLOv10-B có độ trễ ít hơn 46% và ít hơn 25% tham số so với YOLOv9-C với cùng hiệu suất.

Người mẫu Kích thước đầu vào Giá trị AP FLOP (G) Độ trễ (ms)
YOLOv10-N 640 38.5 6.7 1.84
YOLOv10-S 640 46.3 21.6 2.49
YOLOv10-M 640 51.1 59.1 4.74
YOLOv10-B 640 52.5 92.0 5.74
YOLOv10-L 640 53.2 120.3 7.28
YOLOv10-X 640 54.4 160.4 10.70

Độ trễ được đo bằng TensorRT FP16 trên T4 GPU .

Phương pháp luận

Bài tập kép nhất quán để đào tạo không có NMS

YOLOv10 sử dụng các chỉ định nhãn kép, kết hợp các chiến lược một-nhiều và một-một trong quá trình đào tạo để đảm bảo giám sát phong phú và triển khai đầu cuối hiệu quả. Chỉ số khớp nhất quán căn chỉnh giám sát giữa cả hai chiến lược, nâng cao chất lượng dự đoán trong quá trình suy luận.

Thiết kế mô hình hướng đến hiệu quả toàn diện - độ chính xác

Cải tiến hiệu quả

  1. Đầu phân loại nhẹ : Giảm chi phí tính toán của đầu phân loại bằng cách sử dụng phép tích chập tách biệt theo độ sâu.
  2. Lấy mẫu giảm phân tách kênh không gian : Tách biệt giảm phân tách không gian và điều chế kênh để giảm thiểu mất thông tin và chi phí tính toán.
  3. Thiết kế khối theo thứ hạng : Điều chỉnh thiết kế khối dựa trên sự dự phòng giai đoạn nội tại, đảm bảo sử dụng tham số tối ưu.

Cải tiến độ chính xác

  1. Tích chập hạt nhân lớn : Mở rộng trường tiếp nhận để tăng cường khả năng trích xuất tính năng.
  2. Tự chú ý một phần (PSA) : Kết hợp các mô-đun tự chú ý để cải thiện việc học biểu diễn toàn cầu với chi phí tối thiểu.

Thí nghiệm và Kết quả

YOLOv10 đã được thử nghiệm rộng rãi trên các chuẩn mực như COCO, chứng minh hiệu suất và hiệu quả vượt trội. Mô hình đạt được kết quả tiên tiến trên nhiều biến thể khác nhau, cho thấy những cải tiến đáng kể về độ trễ và độ chính xác so với các phiên bản trước và các máy dò hiện đại khác.

So sánh

So sánh YOLOv10 với các máy dò đối tượng SOTA

So với các máy dò hiện đại khác:

  • YOLOv10-S / X nhanh hơn 1,8× / 1,3× so với RT-DETR -R18 / R101 có độ chính xác tương tự
  • YOLOv10-B có ít hơn 25% tham số và độ trễ thấp hơn 46% so với YOLOv9-C ở cùng độ chính xác
  • YOLOv10-L / X vượt trội YOLOv8 -L / X bằng 0,3 AP / 0,5 AP với ít tham số hơn 1,8× / 2,3×

Sau đây là so sánh chi tiết các biến thể YOLOv10 với các mẫu máy hiện đại khác:

Người mẫu Tham số
(Nam)
Thất bại
(G)
giá trị mAP
50-95
Độ trễ
(bệnh đa xơ cứng)
Độ trễ chuyển tiếp
(bệnh đa xơ cứng)
YOLOv6-3.0-N 4.7 11.4 37.0 2.69 1.76
Vàng- YOLO -N 5.6 12.1 39.6 2.92 1.82
YOLOv8 -N 3.2 8.7 37.3 6.16 1.77
YOLOv10-N 2.3 6.7 39.5 1.84 1.79
YOLOv6-3.0-S 18.5 45.3 44.3 3.42 2.35
Vàng- YOLO -S 21.5 46.0 45.4 3.82 2.73
YOLOv8 -S 11.2 28.6 44.9 7.07 2.33
YOLOv10-S 7.2 21.6 46.8 2.49 2.39
RT-DETR -R18 20.0 60.0 46.5 4.58 4.49
YOLOv6-3.0-M 34.9 85.8 49.1 5.63 4.56
Vàng- YOLO -M 41.3 87.5 49.8 6.38 5.45
YOLOv8 -M 25.9 78.9 50.6 9.50 5.09
YOLOv10-M 15.4 59.1 51.3 4.74 4.63
YOLOv6-3.0-L 59.6 150.7 51.8 9.02 7.90
Vàng- YOLO -L 75.1 151.7 51.8 10.65 9.78
YOLOv8 -L 43.7 165.2 52.9 12.39 8.06
RT-DETR -R50 42.0 136.0 53.1 9.20 9.07
YOLOv10-L 24.4 120.3 53.4 7.28 7.21
YOLOv8 -X 68.2 257.8 53.9 16.86 12.83
RT-DETR -R101 76.0 259.0 54.3 13.71 13.58
YOLOv10-X 29.5 160.4 54.4 10.70 10.60

Ví dụ sử dụng

Để dự đoán hình ảnh mới bằng YOLOv10:

Ví dụ

from ultralytics import YOLO

# Load a pre-trained YOLOv10n model
model = YOLO("yolov10n.pt")

# Perform object detection on an image
results = model("image.jpg")

# Display the results
results[0].show()
# Load a COCO-pretrained YOLOv10n model and run inference on the 'bus.jpg' image
yolo detect predict model=yolov10n.pt source=path/to/bus.jpg

Để đào tạo YOLOv10 trên một tập dữ liệu tùy chỉnh:

Ví dụ

from ultralytics import YOLO

# Load YOLOv10n model from scratch
model = YOLO("yolov10n.yaml")

# Train the model
model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Build a YOLOv10n model from scratch and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov10n.yaml data=coco8.yaml epochs=100 imgsz=640

# Build a YOLOv10n model from scratch and run inference on the 'bus.jpg' image
yolo predict model=yolov10n.yaml source=path/to/bus.jpg

Nhiệm vụ và chế độ được hỗ trợ

Dòng sản phẩm YOLOv10 cung cấp nhiều mẫu, mỗi mẫu được tối ưu hóa cho Phát hiện đối tượng hiệu suất cao. Các mẫu này đáp ứng các nhu cầu tính toán và yêu cầu về độ chính xác khác nhau, giúp chúng linh hoạt cho nhiều ứng dụng.

Người mẫu Tên tập tin Nhiệm vụ Suy luận Xác thực Đào tạo Xuất khẩu
YOLOv10 yolov10n.pt yolov10s.pt yolov10m.pt yolov10l.pt yolov10x.pt Phát hiện đối tượng

Xuất YOLOv10

Do các hoạt động mới được giới thiệu với YOLOv10, không phải tất cả các định dạng xuất được cung cấp bởi Ultralytics hiện đang được hỗ trợ. Bảng sau đây phác thảo những định dạng nào đã được chuyển đổi thành công bằng cách sử dụng Ultralytics dành cho YOLOv10. Bạn có thể thoải mái mở yêu cầu kéo nếu bạn có thể cung cấp thay đổi đóng góp để thêm hỗ trợ xuất các định dạng bổ sung cho YOLOv10.

Định dạng xuất khẩu Hỗ trợ xuất khẩu Suy luận mô hình xuất khẩu Ghi chú
TorchScript Định dạng mô hình PyTorch chuẩn.
ONNX Được hỗ trợ rộng rãi để triển khai.
OpenVINO Được tối ưu hóa cho Intel phần cứng.
TensorRT Được tối ưu hóa cho NVIDIA GPU.
CoreML Chỉ giới hạn ở các thiết bị của Apple.
TF SavedModel Định dạng mô hình chuẩn của TensorFlow .
TF GraphDef Di sản TensorFlow định dạng.
TF Nhẹ Được tối ưu hóa cho thiết bị di động và nhúng.
TF Bờ rìa TPU Cụ thể cho Google Cạnh của 's TPU thiết bị.
TF .js Môi trường JavaScript để sử dụng trên trình duyệt.
PaddlePaddle Phổ biến ở Trung Quốc; ít được hỗ trợ trên toàn cầu.
NCNN Lớp torch.topk không tồn tại hoặc không được đăng ký

Phần kết luận

YOLOv10 thiết lập một tiêu chuẩn mới trong phát hiện đối tượng thời gian thực bằng cách giải quyết những thiếu sót của trước đây YOLO phiên bản và kết hợp các chiến lược thiết kế sáng tạo. Khả năng cung cấp độ chính xác cao với chi phí tính toán thấp khiến nó trở thành lựa chọn lý tưởng cho nhiều ứng dụng thực tế.

Trích dẫn và Lời cảm ơn

Chúng tôi muốn cảm ơn các tác giả YOLOv10 từ Đại học Thanh Hoa vì nghiên cứu sâu rộng và những đóng góp quan trọng của họ cho khuôn khổ Ultralytics :

@article{THU-MIGyolov10,
  title={YOLOv10: Real-Time End-to-End Object Detection},
  author={Ao Wang, Hui Chen, Lihao Liu, et al.},
  journal={arXiv preprint arXiv:2405.14458},
  year={2024},
  institution={Tsinghua University},
  license = {AGPL-3.0}
}

Để biết thông tin chi tiết về việc triển khai, cải tiến về kiến trúc và kết quả thử nghiệm, vui lòng tham khảo bài nghiên cứu YOLOv10 và kho lưu trữ GitHub của nhóm Đại học Thanh Hoa.

CÂU HỎI THƯỜNG GẶP

YOLOv10 là gì và nó khác với các phiên bản trước như thế nào? YOLO phiên bản?

YOLOv10, do các nhà nghiên cứu tại Đại học Thanh Hoa phát triển, giới thiệu một số cải tiến quan trọng trong việc phát hiện đối tượng theo thời gian thực. Nó loại bỏ nhu cầu phải loại bỏ không tối đa (NMS) bằng cách sử dụng các phép gán kép nhất quán trong quá trình đào tạo và các thành phần mô hình được tối ưu hóa để có hiệu suất vượt trội với chi phí tính toán giảm. Để biết thêm chi tiết về kiến trúc và các tính năng chính của nó, hãy xem phần tổng quan về YOLOv10 .

Tôi có thể bắt đầu chạy suy luận bằng YOLOv10 như thế nào?

Để suy luận dễ dàng, bạn có thể sử dụng Ultralytics YOLO Python thư viện hoặc giao diện dòng lệnh ( CLI ). Dưới đây là các ví dụ về việc dự đoán hình ảnh mới bằng YOLOv10:

Ví dụ

from ultralytics import YOLO

# Load the pre-trained YOLOv10-N model
model = YOLO("yolov10n.pt")
results = model("image.jpg")
results[0].show()
yolo detect predict model=yolov10n.pt source=path/to/image.jpg

Để biết thêm ví dụ về cách sử dụng, hãy truy cập phần Ví dụ về cách sử dụng của chúng tôi.

YOLOv10 cung cấp những biến thể mô hình nào và ứng dụng của chúng trong những trường hợp nào?

YOLOv10 cung cấp nhiều mẫu mã khác nhau để phục vụ cho nhiều trường hợp sử dụng khác nhau:

  • YOLOv10-N : Thích hợp cho các môi trường có nguồn tài nguyên cực kỳ hạn chế
  • YOLOv10-S : Cân bằng giữa tốc độ và độ chính xác
  • YOLOv10-M : Sử dụng cho mục đích chung
  • YOLOv10-B : Độ chính xác cao hơn với chiều rộng tăng lên
  • YOLOv10-L : Độ chính xác cao với chi phí tài nguyên tính toán
  • YOLOv10-X : Độ chính xác và hiệu suất tối đa

Mỗi biến thể được thiết kế cho các nhu cầu tính toán và yêu cầu về độ chính xác khác nhau, giúp chúng linh hoạt cho nhiều ứng dụng khác nhau. Khám phá phần Biến thể mô hình để biết thêm thông tin.

Phương pháp không có NMS trong YOLOv10 cải thiện hiệu suất như thế nào?

YOLOv10 loại bỏ nhu cầu về sự ức chế không tối đa (NMS) trong quá trình suy luận bằng cách sử dụng các phép gán kép nhất quán để đào tạo. Cách tiếp cận này làm giảm độ trễ suy luận và tăng cường hiệu quả dự đoán. Kiến trúc cũng bao gồm một đầu một-một để suy luận, đảm bảo rằng mỗi đối tượng nhận được một dự đoán tốt nhất duy nhất. Để biết giải thích chi tiết, hãy xem phần Phép gán kép nhất quán để đào tạo không cần NMS .

Tôi có thể tìm thấy tùy chọn xuất cho mô hình YOLOv10 ở đâu?

YOLOv10 hỗ trợ một số định dạng xuất, bao gồm TorchScript , ONNX , OpenVINO , Và TensorRT . Tuy nhiên, không phải tất cả các định dạng xuất khẩu được cung cấp bởi Ultralytics hiện đang được hỗ trợ cho YOLOv10 do các hoạt động mới của nó. Để biết chi tiết về các định dạng được hỗ trợ và hướng dẫn về việc xuất, hãy truy cập phần Xuất YOLOv10 .

Tiêu chuẩn hiệu suất cho các mô hình YOLOv10 là gì?

YOLOv10 vượt trội hơn so với trước đó YOLO phiên bản và các mô hình tiên tiến khác về cả độ chính xác và hiệu quả. Ví dụ, YOLOv10-S nhanh hơn 1,8 lần so với RT-DETR -R18 có AP tương tự trên tập dữ liệu COCO. YOLOv10-B cho thấy độ trễ ít hơn 46% và ít tham số hơn 25% so với YOLOv9-C với cùng hiệu suất. Điểm chuẩn chi tiết có thể được tìm thấy trong phần So sánh .

📅 Được tạo ra cách đây 6 tháng ✏️ Đã cập nhật cách đây 2 tháng

Bình luận