Bỏ để qua phần 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 Ultralytics Python Các nhà nghiên cứu tại Đại học Thanh Hoa giới thiệu một cách tiếp cận 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ề kiến trúc mô hình và xử lý hậu kỳ được tìm thấy trong quá trình xử lý trước YOLO Phiên bản. Bằng cách loại bỏ 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 hiện đại 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 quy mô mô hình.

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



Xem: Cách huấn luyện YOLOv10 trên Tập dữ liệu SKU-110k bằng cách sử dụng Ultralytics | Tập 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 loại đối tượng và vị trí trong hình ảnh với độ trễ thấp. Các 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ự thiếu hiệu quả trong 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 để đào tạo không có NMS và chiến lược thiết kế mô hình dựa trên độ chính xác hiệu quả toàn diện.

Kiến trúc

Kiến trúc của YOLOv10 được xây dựng dựa trên những thế mạnh của 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 vảy 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 tính năng đa quy mô hiệu quả.
  3. Đầu một-nhiều: Tạo 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 của việc học.
  4. Đầu một-một: Tạo một dự đoán tốt 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ó NMS: Sử dụng các bài tập kép nhất quán để loại bỏ nhu cầu về 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 các thành phần khác nhau từ cả góc độ hiệu quả và độ chính xác, bao gồm đầu phân loại nhẹ, lấy mẫu tách kênh không gian và thiết kế khối hướng dẫn xếp hạng.
  3. Khả năng mô hình nâng cao: Kết hợp các kết cấu hạt 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 có chi phí tính toán đáng kể.

Biến thể mô hình

YOLOv10 có nhiều quy mô mô hình khác nhau để phục vụ cho các nhu cầu ứng dụng khác nhau:

  • YOLOv10-N: Phiên bản Nano cho môi trường cực kỳ hạn chế về tài nguyên.
  • YOLOv10-S: Phiên bản nhỏ cân bằng giữa tốc độ và độ chính xác.
  • YOLOv10-M: Phiên bản trung bình cho mục đích sử dụng chung.
  • YOLOv10-B: Phiên bản cân bằng với chiều rộng tăng lên cho độ chính xác cao hơn.
  • YOLOv10-L: Phiên bản lớn cho độ chính xác cao hơn với chi phí tăng 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 năng

YOLOv10 vượt trội so với trước đó YOLO các phiên bản và các mô hình hiện đại 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 với AP tương tự trên tập dữ liệu COCO và YOLOv10-B có độ trễ ít hơn 46% và tham số ít hơn 25% so với YOLOv9-C với cùng hiệu suất.

MẫuKích thước đầu vàoAPvalFLOP (G)Độ trễ (ms)
YOLOv10-N64038.56.71.84
YOLOv10-S64046.321.62.49
YOLOv10-M64051.159.14.74
YOLOv10-B64052.592.05.74
YOLOv10-L64053.2120.37.28
YOLOv10-X64054.4160.410.70

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

Phương pháp luận

Nhiệm vụ kép nhất quán để đào tạo không có NMS

YOLOv10 sử dụng phân công 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ố phù hợp nhất quán điều chỉnh sự 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 các kết cấu có thể tách theo chiều sâu.
  2. Lấy mẫu tách rời kênh không gian: Tách rời giảm 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 hướng dẫn xếp hạng: Điều chỉnh thiết kế khối dựa trên 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. Large-Kernel Convolution: 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 đại 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 tiêu chuẩn tiêu chuẩn như COCO, thể hiện hiệu suất và hiệu quả vượt trội. Mô hình đạt được kết quả hiện đại trên các 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 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× RT-DETR-R18 / R101 với độ chính xác tương tự
  • YOLOv10-B có thông số ít hơn 25% 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 hơn YOLOv8-L / X x 0,3 AP / 0,5 AP với các thông số ít hơn 1,8× / 2,3×

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

MẫuTham số
(M)
Flops
(G)
bản đồVal
50-95
Trễ
(Cô)
Độ trễ chuyển tiếp
(bệnh đa xơ cứng)
YOLOv6-3.0-N4.711.437.02.691.76
Vàng-YOLO-N5.612.139.62.921.82
YOLOv8-N3.28.737.36.161.77
YOLOv10-N2.36.739.51.841.79
YOLOv6-3.0-S18.545.344.33.422.35
Vàng-YOLO-S21.546.045.43.822.73
YOLOv8-S11.228.644.97.072.33
YOLOv10-S7.221.646.82.492.39
RT-DETR-R1820.060.046.54.584.49
YOLOv6-3.0-M34.985.849.15.634.56
Vàng-YOLO-M41.387.549.86.385.45
YOLOv8-M25.978.950.69.505.09
YOLOv10-M15.459.151.34.744.63
YOLOv6-3.0-L59.6150.751.89.027.90
Vàng-YOLO-L75.1151.751.810.659.78
YOLOv8-L43.7165.252.912.398.06
RT-DETR-R5042.0136.053.19.209.07
YOLOv10-L24.4120.353.47.287.21
YOLOv8-X68.2257.853.916.8612.83
RT-DETR-R10176.0259.054.313.7113.58
YOLOv10-X29.5160.454.410.7010.60

Ví dụ sử dụng

Để dự đoán hình ảnh mới với 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 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

Các tác vụ và chế độ được hỗ trợ

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

MẫuTên tập tinNhiệm vụSuy luậnXác nhậnĐào tạoXuất khẩu
YOLOv10yolov10n.pt yolov10s.pt yolov10m.pt yolov10l.pt yolov10x.ptPhá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 các định dạng đã được chuyển đổi thành công bằng cách sử dụng Ultralytics cho YOLOv10. Vui lòng 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ấtHỗ trợ xuất khẩuSuy luận mô hình xuất khẩuGhi 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.
CoreMLChỉ 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 GraphDefDi sản TensorFlow định dạng.
TF LiteĐược tối ưu hóa cho thiết bị di động và nhúng.
TF Cạnh TPUCụ thể cho Google Cạnh của 's TPU thiết bị.
TF.JsMôi trường JavaScript để sử dụng trên trình duyệt.
PaddlePaddlePhổ biến ở Trung Quốc; ít được hỗ trợ trên toàn cầu.
NCNNLớp torch.topk không tồn tại hoặc đã đăng ký

Kết thúc

YOLOv10 đặt ra một tiêu chuẩn mới trong việc 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 đó YOLO các 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 làm cho nó trở thành một lựa chọn lý tưởng cho một loạt các ứng dụng trong thế giới thực.

Trích dẫn và xác nhận

Chúng tôi xin ghi nhận các tác giả YOLOv10 từ Đại học Thanh Hoa vì những nghiên cứu sâu rộng và những đóng góp đáng kể cho Ultralytics khuôn khổ:

@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}
}

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

FAQ

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

YOLOv10, được phát triển bởi các nhà nghiên cứu tại Đại học Thanh Hoa, giới thiệu một số cải tiến quan trọng để phát hiện đối tượng thời gian thực. Nó loại bỏ nhu cầu triệt tiêu không tối đa (NMS) bằng cách sử dụng các nhiệm vụ kép nhất quán trong quá trình đào tạo và tối ưu hóa các thành phần mô hình để 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 .

Làm cách nào để bắt đầu chạy suy luận bằng YOLOv10?

Để dễ suy luận, 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à ví dụ về 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ụ sử dụng, hãy truy cập phần Ví dụ sử dụng của chúng tôi.

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

YOLOv10 cung cấp một số biến thể mô hình để phục vụ cho các trường hợp sử dụng khác nhau:

  • YOLOv10-N: Thích hợp cho môi trường cực kỳ hạn chế về tài nguyên
  • YOLOv10-S: Cân bằng 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
  • 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 độ chính xác khác nhau, làm cho chúng linh hoạt cho nhiều ứng dụng khác nhau. Khám phá phần Model Variants để biết thêm thông tin.

Cách tiếp cận 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 triệt tiêu không tối đa (NMS) trong quá trình suy luận bằng cách sử dụng các bài tập 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à nâng cao 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 có được một dự đoán tốt nhất duy nhất. Để được giải thích chi tiết, hãy xem phần Bài tập kép nhất quán cho Đào tạo không có NMS .

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

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

Điểm chuẩn hiệu suất cho các mẫu YOLOv10 là gì?

YOLOv10 vượt trội so với trước đó YOLO các phiên bản và các mô hình hiện đại khác 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 với AP tương tự trên tập dữ liệu COCO. YOLOv10-B hiển thị độ trễ ít hơn 46% và thông số ít 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 cách đây 5 tháng ✏️ Đã cập nhật cách đây 1 tháng

Ý kiến