Chuyển đến nội dung

YOLOv7 so với YOLOv10 : Sự tiến hóa kiến trúc và phân tích hiệu suất

Sự tiến hóa của YOLO Dòng sản phẩm (You Only Look Once) đại diện cho một dòng thời gian hấp dẫn về những tiến bộ của thị giác máy tính, cân bằng giữa sự đánh đổi vĩnh cửu giữa tốc độ suy luận và độ chính xác phát hiện. So sánh này đi sâu vào hai cột mốc quan trọng: YOLOv7 , một mô hình mạnh mẽ đã thiết lập các chuẩn mực mới vào năm 2022, và YOLOv10 , phiên bản phát hành năm 2024 giới thiệu một sự thay đổi mô hình với NMS -đào tạo miễn phí.

Mặc dù cả hai mô hình đều là lựa chọn tuyệt vời để phát hiện đối tượng , nhưng chúng phục vụ cho các triết lý kiến trúc khác nhau. YOLOv7 đẩy mạnh giới hạn của "túi quà tặng miễn phí" có thể đào tạo được và tối ưu hóa đường dẫn gradient, trong khi YOLOv10 tập trung vào việc loại bỏ các điểm nghẽn trong quá trình xử lý hậu kỳ để đạt được hiệu quả đầu cuối theo thời gian thực.

YOLOv7 : tối ưu hóa Đường dẫn Gradient

Phát hành vào tháng 7 năm 2022, YOLOv7 đã giới thiệu những thay đổi đáng kể về kiến trúc, tập trung vào việc tối ưu hóa quy trình đào tạo mà không làm tăng chi phí suy luận. Nó nhanh chóng trở thành lựa chọn ưa thích cho các tác vụ thị giác máy tính đa năng nhờ độ chính xác cao trên tập dữ liệu COCO .

Tác giả: Chien-Yao Wang, Alexey Bochkovskiy và Hong-Yuan Mark Liao
Tổ chức: Viện Khoa học Thông tin, Viện Hàn lâm Khoa học Trung Quốc, Đài Loan
Ngày: 2022-07-06
ArXiv: YOLOv7 : Bộ công cụ miễn phí có thể đào tạo được thiết lập công nghệ tiên tiến mới cho các máy dò vật thể thời gian thực
GitHub: WongKinYiu/yolov7

Các đặc điểm kiến trúc chính

YOLOv7 đã giới thiệu Mạng Tổng hợp Lớp Hiệu quả Mở rộng (E-ELAN) . Kiến trúc này cho phép mô hình học được nhiều tính năng đa dạng hơn bằng cách kiểm soát các đường dẫn gradient ngắn nhất và dài nhất, đảm bảo mạng hội tụ hiệu quả trong quá trình huấn luyện.

Ngoài ra, YOLOv7 sử dụng rộng rãi "Bag-of-Freebies" — các phương pháp cải thiện độ chính xác trong quá trình huấn luyện mà không làm tăng chi phí suy luận. Các phương pháp này bao gồm tham số hóa lại mô hình, trong đó cấu trúc huấn luyện phức tạp được đơn giản hóa thành cấu trúc suy luận hợp lý, giảm độ trễ trong khi vẫn duy trì hiệu suất đã học.

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

YOLOv10 : Sự kết thúc của NMS

YOLOv10 , được phát hành vào tháng 5 năm 2024 bởi các nhà nghiên cứu từ Đại học Thanh Hoa, giải quyết tình trạng tắc nghẽn lâu nay trong việc phát hiện đối tượng: Sự ức chế không tối đa ( NMS ). Truyền thống YOLO các mô hình dự đoán nhiều hộp giới hạn cho một đối tượng duy nhất và dựa vào NMS để lọc ra các đối tượng trùng lặp. Bước hậu xử lý này sẽ thêm độ trễ thay đổi tùy theo số lượng đối tượng trong cảnh.

Tác giả: Ao Wang, Hui Chen, Lihao Liu, et al.
Tổ chức: Đại học Thanh Hoa
Ngày: 23-05-2024
ArXiv: YOLOv10 : Phát hiện đối tượng đầu cuối theo thời gian thực
GitHub: THU-MIG/yolov10

Các đặc điểm kiến trúc chính

YOLOv10 giới thiệu chiến lược Gán Kép Nhất Quán . Trong quá trình huấn luyện, mô hình sử dụng cả đầu một-nhiều (cho giám sát phong phú) và đầu một-một (cho dự đoán đầu-cuối). Trong quá trình suy luận, chỉ đầu một-một được sử dụng, loại bỏ nhu cầu NMS hoàn toàn. Điều này dẫn đến suy luận có thể dự đoán được, độ trễ thấp, khiến nó rất phù hợp cho các ứng dụng AI biên trong đó thời gian xử lý phải không đổi.

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

So sánh kỹ thuật: Kiến trúc và hiệu suất

Sự khác biệt chính giữa các mô hình này nằm ở cách tiếp cận hiệu quả suy luận của chúng. YOLOv7 dựa vào xương sống được tối ưu hóa cao (E-ELAN) để trích xuất các tính năng một cách hiệu quả nhưng vẫn yêu cầu xử lý hậu kỳ theo cách truyền thống. YOLOv10 sửa đổi đầu phát hiện cơ bản để loại bỏ các bước xử lý hậu kỳ, đạt được độ trễ thấp hơn cho mức độ chính xác tương tự.

Các chỉ số hiệu suất

Như minh họa trong bảng dưới đây, YOLOv10 thể hiện hiệu quả vượt trội. Ví dụ, YOLOv10b đạt mAP cao hơn (52,7%) so với YOLOv7l (51,4%) trong khi sử dụng ít tham số hơn đáng kể (24,4M so với 36,9M) và các phép toán dấu chấm động (FLOP).

Hiểu về độ trễ

Các số liệu "Tốc độ" làm nổi bật tác động của YOLOv10 'S NMS -thiết kế miễn phí. Bằng cách loại bỏ NMS bước chân, YOLOv10 giảm chi phí tính toán trong quá trình suy luận, điều này đặc biệt có lợi trên các bộ tăng tốc phần cứng như TensorRT nơi mà quá trình hậu xử lý có thể trở thành nút thắt.

Mô hìnhKích thước
(pixels)
mAP giá trị
50-95
Tốc độ
CPU ONNX
(ms)
Tốc độ
T4 TensorRT10
(ms)
Tham số
(M)
FLOPs
(B)
YOLOv7l64051.4-6.8436.9104.7
YOLOv7x64053.1-11.5771.3189.9
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

Điểm mạnh và Điểm yếu

YOLOv7 Điểm mạnh:

  • Độ bền đã được chứng minh: Đã được thử nghiệm rộng rãi trong nhiều môi trường học thuật và công nghiệp khác nhau kể từ năm 2022.
  • Hỗ trợ độ phân giải cao: Hiệu suất tuyệt vời trên các đầu vào có độ phân giải cao hơn (ví dụ: 1280 pixel) thông qua các biến thể W6/E6 cụ thể.
  • Tài nguyên cộng đồng: Có rất nhiều hướng dẫn và triển khai của bên thứ ba do phiên bản cũ.

YOLOv7 Điểm yếu:

  • Độ phức tạp: Việc tham số hóa lại và cấu trúc đầu phụ trợ có thể làm phức tạp quy trình đào tạo so với hiện đại Ultralytics các mô hình.
  • Phụ thuộc NMS : Tốc độ suy luận phụ thuộc một phần vào mật độ cảnh do NMS .

YOLOv10 Điểm mạnh:

  • Độ trễ thấp nhất: NMS -Kiến trúc tự do cho phép suy luận cực kỳ nhanh, lý tưởng cho suy luận thời gian thực .
  • Hiệu quả: Đạt được độ chính xác tiên tiến với ít tham số hơn và sử dụng ít bộ nhớ hơn.
  • Dễ dàng triển khai: Loại bỏ NMS bước đơn giản hóa quá trình xuất sang các định dạng như ONNX Và TensorRT .

YOLOv10 Điểm yếu:

  • Tính đặc thù của nhiệm vụ: chủ yếu tập trung vào phát hiện đối tượng, trong khi các mô hình khác trong Ultralytics hệ sinh thái (như YOLO11 ) hỗ trợ phân đoạn, ước tính tư thế và OBB một cách tự nhiên trong một khuôn khổ thống nhất.

Các trường hợp sử dụng lý tưởng

Sự lựa chọn giữa YOLOv7 Và YOLOv10 thường phụ thuộc vào những hạn chế cụ thể của môi trường triển khai.

  • Sử dụng YOLOv7 nếu: Bạn đang làm việc trên một dự án cũ đã tích hợp kiến trúc v7 hoặc nếu bạn yêu cầu các biến thể có độ phân giải cao cụ thể (như YOLOv7 -w6) để phát hiện vật thể nhỏ trong hình ảnh lớn, trong đó tốc độ suy luận chỉ là yếu tố thứ yếu so với độ chính xác thô.
  • Sử dụng YOLOv10 nếu: Bạn đang triển khai trên các thiết bị biên giới hạn tài nguyên (Raspberry Pi, Jetson Nano, điện thoại di động) hoặc yêu cầu độ trễ tối thiểu tuyệt đối cho các ứng dụng như xe tự hành hoặc robot tốc độ cao. Dung lượng bộ nhớ thấp hơn cũng giúp việc chạy trên môi trường đám mây trở nên rẻ hơn.

Các Ultralytics Lợi thế

Cho dù lựa chọn YOLOv7 hoặc YOLOv10 , sử dụng chúng thông qua Ultralytics Python API mang lại những lợi thế đáng kể so với việc sử dụng mã kho lưu trữ thô. Ultralytics đã tích hợp các mô hình này vào một hệ sinh thái thống nhất ưu tiên tính dễ sử dụng , hiệu quả đào tạotính linh hoạt .

Trải nghiệm người dùng được sắp xếp hợp lý

Việc đào tạo các mô hình học sâu phức tạp trước đây đòi hỏi phải quản lý các tệp cấu hình và phụ thuộc phức tạp. Ultralytics Framework chuẩn hóa quy trình này. Các nhà phát triển có thể hoán đổi giữa các kiến trúc (ví dụ: từ YOLOv10n sang YOLOv10s hoặc thậm chí sang YOLO11 ) bằng cách thay đổi một đối số chuỗi duy nhất, mà không cần viết lại trình tải dữ liệu hoặc tập lệnh xác thực.

Ví dụ mã

Ví dụ sau đây minh họa cách tải và dự đoán với các mô hình này bằng cách sử dụng Ultralytics gói. Lưu ý cách API vẫn nhất quán bất kể kiến trúc mô hình cơ bản.

from ultralytics import YOLO

# Load a pre-trained YOLOv10 model (NMS-free)
model_v10 = YOLO("yolov10n.pt")

# Load a pre-trained YOLOv7 model
model_v7 = YOLO("yolov7.pt")

# Run inference on an image
# The API handles underlying differences automatically
results_v10 = model_v10("https://ultralytics.com/images/bus.jpg")
results_v7 = model_v7("https://ultralytics.com/images/bus.jpg")

# Print results
for result in results_v10:
    result.show()  # Display predictions

Hệ sinh thái và tương lai

Trong khi YOLOv7 Và YOLOv10 rất mạnh mẽ, Ultralytics Hệ sinh thái đang liên tục phát triển. Mô hình YOLO11 mới nhất được xây dựng dựa trên những bài học kinh nghiệm từ cả v7 (tổng hợp tính năng) và v10 (hiệu quả).

  • Được bảo trì tốt: Các bản cập nhật thường xuyên đảm bảo khả năng tương thích với các phiên bản mới nhất của PyTorch , CUDA và xuất định dạng ( CoreML , ONNX , TensorRT ).
  • Hiệu quả bộ nhớ: Ultralytics các mô hình được thiết kế để giảm thiểu GPU Sử dụng VRAM trong quá trình đào tạo, cho phép kích thước lô lớn hơn trên phần cứng của người tiêu dùng so với nhiều giải pháp thay thế dựa trên Transformer (như RT-DETR ).
  • Hiệu quả đào tạo: Với các siêu tham số được điều chỉnh trước và quét tập dữ liệu "thông minh", quá trình hội tụ đào tạo thường diễn ra nhanh hơn, giúp tiết kiệm chi phí tính toán.

Đối với các nhà phát triển bắt đầu các dự án mới ngày nay, việc khám phá YOLO11 được khuyến khích mạnh mẽ vì nó cung cấp sự cân bằng tinh tế về tốc độ được thấy trong YOLOv10 và khả năng trích xuất tính năng mạnh mẽ của các phiên bản trước, cùng với hỗ trợ gốc cho các tác vụ vượt ra ngoài khả năng phát hiện đơn giản, chẳng hạn như phân đoạn trường hợpước tính tư thế .

Khám phá các Mô hình Khác

Nếu bạn quan tâm đến các so sánh sâu hơn hoặc các kiến trúc khác nhau, hãy cân nhắc các tài nguyên sau:


Bình luận