Bỏ để qua phần nội dung

YOLOv7: Túi quà tặng có thể đào tạo

YOLOv7 là một máy dò đối tượng thời gian thực hiện đại vượt qua tất cả các máy dò đối tượng đã biết cả về tốc độ và độ chính xác trong phạm vi từ 5 FPS đến 160 FPS. Nó có độ chính xác cao nhất (56,8% AP) trong số tất cả các máy dò đối tượng thời gian thực đã biết với 30 FPS hoặc cao hơn trên GPU V100. Hơn nữa, YOLOv7 vượt trội hơn các máy dò đối tượng khác như YOLOR, YOLOX, Scaled-YOLOv4, YOLOv5, và nhiều thứ khác về tốc độ và độ chính xác. Mô hình được đào tạo trên tập dữ liệu MS COCO từ đầu mà không cần sử dụng bất kỳ bộ dữ liệu nào khác hoặc trọng số được đào tạo trước. Mã nguồn cho YOLOv7 có sẵn trên GitHub.

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

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

Từ kết quả trong YOLO Bảng so sánh Chúng tôi biết rằng phương pháp được đề xuất có sự đánh đổi tốc độ-độ chính xác tốt nhất một cách toàn diện. Nếu chúng ta so sánh YOLOv7-tiny-SiLU với YOLOv5-N (r6.1), phương pháp của chúng tôi nhanh hơn 127 khung hình / giây và chính xác hơn 10.7% trên AP. Ngoài ra, YOLOv7 có AP 51.4% ở tốc độ khung hình 161 khung hình / giây, trong khi PPYOLOE-L với cùng AP chỉ có tốc độ khung hình 78 khung hình / giây. Về mặt sử dụng tham số, YOLOv7 ít hơn 41% so với PPYOLOE-L. Nếu chúng ta so sánh YOLOv7-X với tốc độ suy luận 114 khung hình / giây với YOLOv5-L (r6.1) với tốc độ suy luận 99 khung hình / giây, YOLOv7-X có thể cải thiện AP thêm 3.9%. Nếu YOLOv7-X được so sánh với YOLOv5-X (r6.1) có tỷ lệ tương tự, tốc độ suy luận của YOLOv7-X nhanh hơn 31 khung hình / giây. Ngoài ra, về số lượng tham số và tính toán, YOLOv7-X giảm 22% tham số và 8% tính toán so với YOLOv5-X (r6.1), nhưng cải thiện AP 2.2% (Nguồn).

Mẫu Tham số
(M)
Flops
(G)
Kích thước
(điểm ảnh)
FPS APKiểm tra / Val
50-95
APkiểm tra
50
APkiểm tra
75
APkiểm tra
S
APkiểm tra
M
APkiểm tra
L
YOLOX-S 9.0M 26.8G 640 102 40.5% / 40.5% - - - - -
YOLOX-M 25.3M 73.8G 640 81 47.2% / 46.9% - - - - -
YOLOX-L 54.2M 155.6G 640 69 50.1% / 49.7% - - - - -
YOLOX-X 99.1M 281.9G 640 58 51.5% / 51.1% - - - - -
PPYOLOE-S 7.9M 17.4G 640 208 43.1% / 42.7% 60.5% 46.6% 23.2% 46.4% 56.9%
PPYOLOE-M 23.4M 49.9G 640 123 48.9% / 48.6% 66.5% 53.0% 28.6% 52.9% 63.8%
PPYOLOE-L 52.2M 110.1G 640 78 51.4% / 50.9% 68.9% 55.6% 31.4% 55.3% 66.1%
PPYOLOE-X 98.4M 206.6G 640 45 52.2% / 51.9% 69.9% 56.5% 33.3% 56.3% 66.4%
YOLOv5-N (r6.1) 1.9M 4.5G 640 159 - / 28.0% - - - - -
YOLOv5-S (r6.1) 7.2M 16.5G 640 156 - / 37.4% - - - - -
YOLOv5-M (R6.1) 21.2M 49.0G 640 122 - / 45.4% - - - - -
YOLOv5-L (r6.1) 46.5M 109.1G 640 99 - / 49.0% - - - - -
YOLOv5-X (r6.1) 86.7M 205.7G 640 83 - / 50,7% - - - - -
YOLOR-CSP 52.9M 120.4G 640 106 51.1% / 50.8% 69.6% 55.7% 31.7% 55.3% 64.7%
YOLOR-CSP-X 96.9M 226.8G 640 87 53.0% / 52.7% 71.4% 57.9% 33.7% 57.1% 66.8%
YOLOv7-tiny-SiLU 6.2M 13.8G 640 286 38.7% / 38.7% 56.7% 41.7% 18.8% 42.4% 51.9%
YOLOv7 36.9M 104.7G 640 161 51.4% / 51.2% 69.7% 55.9% 31.8% 55.5% 65.0%
YOLOv7-X 71.3M 189.9G 640 114 53.1% / 52.9% 71.2% 57.8% 33.8% 57.1% 67.4%
YOLOv5-N6 (r6.1) 3.2M 18.4G 1280 123 - / 36.0% - - - - -
YOLOv5-S6 (r6.1) 12.6M 67.2G 1280 122 - / 44.8% - - - - -
YOLOv5-M6 (r6.1) 35.7M 200.0G 1280 90 - / 51.3% - - - - -
YOLOv5-L6 (r6.1) 76.8M 445.6G 1280 63 - / 53.7% - - - - -
YOLOv5-X6 (r6.1) 140.7M 839.2G 1280 38 - / 55,0% - - - - -
YOLOR-P6 37.2M 325.6G 1280 76 53.9% / 53.5% 71.4% 58.9% 36.1% 57.7% 65.6%
YOLOR-W6 79.8G 453.2G 1280 66 55.2% / 54.8% 72.7% 60.5% 37.7% 59.1% 67.1%
YOLOR-E6 115.8M 683.2G 1280 45 55.8% / 55.7% 73.4% 61.1% 38.4% 59.7% 67.7%
YOLOR-D6 151.7M 935.6G 1280 34 56.5% / 56.1% 74.1% 61.9% 38.9% 60.4% 68.7%
YOLOv7-W6 70.4M 360.0G 1280 84 54.9% / 54.6% 72.6% 60.1% 37.3% 58.7% 67.1%
YOLOv7-E6 97.2M 515.2G 1280 56 56.0% / 55.9% 73.5% 61.2% 38.0% 59.9% 68.4%
YOLOv7-D6 154.7M 806.8G 1280 44 56.6% / 56.3% 74.0% 61.8% 38.8% 60.1% 69.5%
YOLOv7-E6E 151.7M 843.2G 1280 36 56.8% / 56.8% 74.4% 62.1% 39.3% 60.5% 69.0%

Tổng quan

Phát hiện đối tượng thời gian thực là một thành phần quan trọng trong nhiều hệ thống thị giác máy tính, bao gồm theo dõi đa đối tượng, lái xe tự động, robot và phân tích hình ảnh y tế. Trong những năm gần đây, phát triển phát hiện đối tượng thời gian thực đã tập trung vào việc thiết kế các kiến trúc hiệu quả và cải thiện tốc độ suy luận của các CPU, GPU và các đơn vị xử lý thần kinh (NPU) khác nhau. YOLOv7 hỗ trợ cả hai thiết bị di động GPU và GPU thiết bị, từ biên đến đám mây.

Không giống như các máy dò đối tượng thời gian thực truyền thống tập trung vào tối ưu hóa kiến trúc, YOLOv7 giới thiệu trọng tâm là tối ưu hóa quá trình đào tạo. Điều này bao gồm các mô-đun và phương pháp tối ưu hóa được thiết kế để cải thiện độ chính xác của việc phát hiện đối tượng mà không làm tăng chi phí suy luận, một khái niệm được gọi là "túi miễn phí có thể đào tạo".

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

YOLOv7 giới thiệu một số tính năng chính:

  1. Tham số hóa lại mô hình: YOLOv7 đề xuất một mô hình tái tham số hóa theo kế hoạch, đây là một chiến lược áp dụng cho các lớp trong các mạng khác nhau với khái niệm đường dẫn lan truyền gradient.

  2. Phân công nhãn động: Việc đào tạo mô hình với nhiều lớp đầu ra trình bày một vấn đề mới: "Làm thế nào để chỉ định các mục tiêu động cho đầu ra của các nhánh khác nhau?" Để giải quyết vấn đề này, YOLOv7 giới thiệu một phương pháp gán nhãn mới được gọi là gán nhãn có hướng dẫn từ thô đến mịn.

  3. Mở rộng và chia tỷ lệ hợp chất: YOLOv7 đề xuất các phương pháp "mở rộng" và "chia tỷ lệ hợp chất" cho máy dò đối tượng thời gian thực có thể sử dụng hiệu quả các tham số và tính toán.

  4. Hiệu quả: Phương pháp do YOLOv7 đề xuất có thể giảm hiệu quả khoảng 40% thông số và 50% tính toán của máy dò đối tượng thời gian thực hiện đại, đồng thời có tốc độ suy luận nhanh hơn và độ chính xác phát hiện cao hơn.

Ví dụ sử dụng

Tính đến thời điểm viết bài, Ultralytics hiện không hỗ trợ các kiểu máy YOLOv7. Do đó, bất kỳ người dùng nào quan tâm đến việc sử dụng YOLOv7 sẽ cần tham khảo trực tiếp kho lưu trữ YOLOv7 GitHub để được hướng dẫn cài đặt và sử dụng.

Dưới đây là tổng quan ngắn gọn về các bước điển hình bạn có thể thực hiện để sử dụng YOLOv7:

  1. Truy cập kho lưu trữ YOLOv7 GitHub: https://github.com/WongKinYiu/yolov7.

  2. Làm theo hướng dẫn được cung cấp trong tệp README để cài đặt. Điều này thường liên quan đến việc sao chép kho lưu trữ, cài đặt các phụ thuộc cần thiết và thiết lập bất kỳ biến môi trường cần thiết nào.

  3. Sau khi cài đặt hoàn tất, bạn có thể đào tạo và sử dụng mô hình theo hướng dẫn sử dụng được cung cấp trong kho lưu trữ. Điều này thường liên quan đến việc chuẩn bị tập dữ liệu của bạn, định cấu hình các tham số mô hình, đào tạo mô hình và sau đó sử dụng mô hình được đào tạo để thực hiện phát hiện đối tượng.

Xin lưu ý rằng các bước cụ thể có thể khác nhau tùy thuộc vào trường hợp sử dụng cụ thể của bạn và trạng thái hiện tại của kho lưu trữ YOLOv7. Do đó, bạn nên tham khảo trực tiếp các hướng dẫn được cung cấp trong kho lưu trữ YOLOv7 GitHub.

Chúng tôi rất tiếc về bất kỳ sự bất tiện nào mà điều này có thể gây ra và sẽ cố gắng cập nhật tài liệu này với các ví dụ sử dụng cho Ultralytics sau khi hỗ trợ cho YOLOv7 được triển khai.

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

Chúng tôi muốn ghi nhận các tác giả YOLOv7 vì những đóng góp đáng kể của họ trong lĩnh vực phát hiện đối tượng thời gian thực:

@article{wang2022yolov7,
  title={{YOLOv7}: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors},
  author={Wang, Chien-Yao and Bochkovskiy, Alexey and Liao, Hong-Yuan Mark},
  journal={arXiv preprint arXiv:2207.02696},
  year={2022}
}

Giấy YOLOv7 gốc có thể được tìm thấy trên arXiv. Các tác giả đã công bố công khai tác phẩm của họ và cơ sở mã có thể được truy cập trên GitHub. Chúng tôi đánh giá cao những nỗ lực của họ trong việc thúc đẩy lĩnh vực này và làm cho công việc của họ có thể tiếp cận được với cộng đồng rộng lớn hơn.

FAQ

YOLOv7 là gì và tại sao nó được coi là một bước đột phá trong phát hiện đối tượng thời gian thực?

YOLOv7 là một mô hình phát hiện đối tượng thời gian thực tiên tiến đạt được tốc độ và độ chính xác vô song. Nó vượt qua các mô hình khác, chẳng hạn như YOLOX, YOLOv5và PPYOLOE, ở cả mức sử dụng thông số và tốc độ suy luận. Các tính năng phân biệt của YOLOv7 bao gồm tham số hóa lại mô hình và gán nhãn động, giúp tối ưu hóa hiệu suất của nó mà không làm tăng chi phí suy luận. Để biết thêm chi tiết kỹ thuật về kiến trúc và số liệu so sánh của nó với các máy dò đối tượng hiện đại khác, hãy tham khảo bài báo YOLOv7.

YOLOv7 cải thiện như thế nào so với trước đây YOLO các mô hình như YOLOv4 và YOLOv5?

YOLOv7 giới thiệu một số cải tiến, bao gồm tham số hóa lại mô hình và gán nhãn động, giúp tăng cường quá trình đào tạo và cải thiện độ chính xác suy luận. So với YOLOv5, YOLOv7 tăng đáng kể tốc độ và độ chính xác. Ví dụ: YOLOv7-X cải thiện độ chính xác 2,2% và giảm 22% thông số so với YOLOv5-X. So sánh chi tiết có thể được tìm thấy trong bảng hiệu suất so sánh YOLOv7 với máy dò đối tượng SOTA.

Tôi có thể sử dụng YOLOv7 với không Ultralytics Công cụ và nền tảng?

Tính đến thời điểm hiện tại, Ultralytics không hỗ trợ trực tiếp YOLOv7 trong các công cụ và nền tảng của nó. Người dùng quan tâm đến việc sử dụng YOLOv7 cần làm theo hướng dẫn cài đặt và sử dụng được cung cấp trong kho lưu trữ YOLOv7 GitHub. Đối với các mô hình hiện đại khác, bạn có thể khám phá và đào tạo bằng cách sử dụng Ultralytics Các công cụ như Ultralytics TRUNG TÂM.

Làm cách nào để cài đặt và chạy YOLOv7 cho dự án phát hiện đối tượng tùy chỉnh?

Để cài đặt và chạy YOLOv7, hãy làm theo các bước sau:

  1. Sao chép kho lưu trữ YOLOv7:
    git clone https://github.com/WongKinYiu/yolov7
    
  2. Điều hướng đến thư mục nhân bản và cài đặt các phụ thuộc:
    cd yolov7
    pip install -r requirements.txt
    
  3. Chuẩn bị tập dữ liệu của bạn và định cấu hình các tham số mô hình theo hướng dẫn sử dụng được cung cấp trong kho lưu trữ. Để được hướng dẫn thêm, hãy truy cập kho lưu trữ YOLOv7 GitHub để biết thông tin và cập nhật mới nhất.

Các tính năng chính và tối ưu hóa được giới thiệu trong YOLOv7 là gì?

YOLOv7 cung cấp một số tính năng chính cách mạng hóa việc phát hiện đối tượng thời gian thực:

  • Tham số hóa lại mô hình: Nâng cao hiệu suất của mô hình bằng cách tối ưu hóa các đường dẫn lan truyền gradient.
  • Chỉ định nhãn động: Sử dụng phương pháp hướng dẫn từ thô đến mịn để chỉ định các mục tiêu động cho đầu ra trên các nhánh khác nhau, cải thiện độ chính xác.
  • Mở rộng và Mở rộng quy mô hỗn hợp: Sử dụng hiệu quả các tham số và tính toán để mở rộng mô hình cho các ứng dụng thời gian thực khác nhau.
  • Hiệu quả: Giảm 40% số lượng tham số và tính toán 50% so với các mô hình hiện đại khác trong khi đạt được tốc độ suy luận nhanh hơn. Để biết thêm chi tiết về các tính năng này, hãy xem phần Tổng quan về YOLOv7 .


Đã tạo 2023-11-12, Cập nhật 2024-07-04
Tác giả: glenn-jocher (8), sergiuwaxmann (1)

Ý kiến