So sánh mô hình: YOLOv7 so với YOLOv8 để phát hiện đối tượng
Trong bối cảnh phát triển nhanh chóng của thị giác máy tính, "Bạn chỉ nhìn một lần" ( YOLO ) đã liên tục thiết lập tiêu chuẩn cho việc phát hiện vật thể theo thời gian thực. Hai cột mốc quan trọng trong dòng sản phẩm này là YOLOv7 Và Ultralytics YOLOv8 . Mặc dù cả hai mô hình đều vượt qua giới hạn về độ chính xác và tốc độ khi ra mắt, chúng đại diện cho các triết lý thiết kế và mức độ trưởng thành của hệ sinh thái khác nhau.
Hướng dẫn này cung cấp so sánh kỹ thuật chi tiết để giúp các nhà phát triển và nhà nghiên cứu chọn đúng công cụ cho nhu cầu cụ thể của họ, từ nghiên cứu học thuật đến triển khai ở cấp độ sản xuất.
So sánh các chỉ số hiệu suất
Bảng sau đây trình bày sự so sánh trực tiếp các số liệu hiệu suất giữa các yếu tố chính YOLOv7 Và YOLOv8 các mô hình. YOLOv8 thể hiện lợi thế đáng kể về tốc độ suy luận và số lượng tham số thuận lợi, đặc biệt là trong các biến thể mô hình nhỏ hơn, rất quan trọng đối với các ứng dụng AI biên .
| Mô hình | Kích thước (pixels) | mAP giá trị 50-95 | Tốc độ CPU ONNX (ms) | Tốc độ T4 TensorRT10 (ms) | Tham số (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
| YOLOv8n | 640 | 37.3 | 80.4 | 1.47 | 3.2 | 8.7 |
| YOLOv8s | 640 | 44.9 | 128.4 | 2.66 | 11.2 | 28.6 |
| YOLOv8m | 640 | 50.2 | 234.7 | 5.86 | 25.9 | 78.9 |
| YOLOv8l | 640 | 52.9 | 375.2 | 9.06 | 43.7 | 165.2 |
| YOLOv8x | 640 | 53.9 | 479.1 | 14.37 | 68.2 | 257.8 |
YOLOv7 : Sự phát triển của "Túi quà miễn phí"
Phát hành vào tháng 7 năm 2022, YOLOv7 được phát triển chủ yếu bởi các tác giả của YOLOv4 và YOLOR. Nó giới thiệu một số cải tiến về kiến trúc nhằm tối ưu hóa quy trình đào tạo mà không làm tăng chi phí suy luận, một khái niệm được gọi là "túi quà tặng có thể đào tạo".
- Tác giả: Chien-Yao Wang, Alexey Bochkovskiy và Hong-Yuan Mark Liao
- Tổ chức: Viện Khoa học Thông tin, Academia Sinica, Đài Loan
- Date: 2022-07-06
- Liên kết: Bài báo Arxiv | Kho lưu trữ GitHub
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 kiểm soát các đường dẫn gradient ngắn nhất và dài nhất để cho phép mạng học được nhiều tính năng đa dạng hơn. Hơn nữa, nó sử dụng các kỹ thuật mở rộng mô hình để điều chỉnh đồng thời chiều sâu và chiều rộng của kiến trúc, đảm bảo hiệu suất tối ưu trên các kích thước khác nhau.
Mặc dù có điểm chuẩn ấn tượng khi ra mắt, YOLOv7 chủ yếu tập trung vào phát hiện đối tượng , với sự hỗ trợ tích hợp ít hơn cho các tác vụ khác so với các khuôn khổ mới hơn.
Ultralytics YOLOv8 : Khung thống nhất và Kiến trúc hiện đại
Ra mắt vào đầu năm 2023 bởi Ultralytics , YOLOv8 đại diện cho một cuộc đại tu lớn của YOLO kiến trúc. Nó được thiết kế không chỉ như một mô hình mà còn là một khuôn khổ thống nhất có khả năng thực hiện phát hiện, phân đoạn trường hợp , ước tính tư thế và phân loại một cách liền mạch.
- Tác giả: Glenn Jocher, Ayush Chaurasia, và Jing Qiu
- Tổ chức: Ultralytics
- Ngày: 2023-01-10
- Liên kết: Tài liệu Ultralytics | Kho lưu trữ GitHub
Đổi mới kiến trúc
YOLOv8 đã chuyển khỏi tính năng phát hiện dựa trên mỏ neo được sử dụng trong các phiên bản trước (bao gồm YOLOv7 ) sang cơ chế phát hiện không có điểm neo . Sự thay đổi này đơn giản hóa quá trình đào tạo bằng cách loại bỏ nhu cầu tính toán hộp neo, giúp mô hình mạnh mẽ hơn trước các biến thể về hình dạng và kích thước vật thể.
Xương sống đã được nâng cấp để sử dụng các mô-đun C2f (Cross-Stage Partial Bottleneck với hai phép tích chập), thay thế các mô-đun C3 của YOLOv5 . Thay đổi này cải thiện luồng gradient và cho phép mô hình vẫn nhẹ trong khi vẫn thu thập được thông tin đặc trưng phong phú hơn.
So sánh kỹ thuật chi tiết
Dựa trên neo so với không neo
Một trong những điểm khác biệt rõ ràng nhất là đầu phát hiện. YOLOv7 dựa vào các hộp neo—các hình dạng được xác định trước mà mô hình cố gắng khớp với các đối tượng. Mặc dù hiệu quả, điều này đòi hỏi phải điều chỉnh siêu tham số cho các tập dữ liệu tùy chỉnh.
Ngược lại, YOLOv8 sử dụng phương pháp không neo, dự đoán trực tiếp tâm của vật thể. Điều này làm giảm số lượng dự đoán hộp, tăng tốc độ loại bỏ không tối đa ( NMS ) và giúp mô hình dễ đào tạo hơn trên nhiều dữ liệu khác nhau mà không cần cấu hình neo thủ công.
Hiệu quả đào tạo và sử dụng bộ nhớ
Ultralytics các mô hình này nổi tiếng vì hiệu quả kỹ thuật của chúng. YOLOv8 sử dụng chiến lược tăng cường dữ liệu thông minh, vô hiệu hóa tăng cường Mosaic trong giai đoạn cuối của quá trình huấn luyện. Kỹ thuật này giúp ổn định tổn thất huấn luyện và cải thiện độ chính xác.
Hiệu quả bộ nhớ
Một lợi thế đáng kể của Ultralytics YOLOv8 trên các kiến trúc phức tạp như máy biến áp (ví dụ, RT-DETR ) là thấp hơn của nó CUDA yêu cầu về bộ nhớ. Điều này cho phép người dùng đào tạo các lô lớn hơn trên GPU dành cho người tiêu dùng, phổ cập hóa khả năng tiếp cận đào tạo mô hình tiên tiến.
Hệ sinh thái và tính dễ sử dụng
Trong khi YOLOv7 là một kho lưu trữ nghiên cứu mạnh mẽ, Ultralytics YOLOv8 cung cấp trải nghiệm sản phẩm hoàn hảo. Ultralytics hệ sinh thái cung cấp:
- API được sắp xếp hợp lý: Một Python giao diện cho tất cả các tác vụ.
- Triển khai: Xuất sang các định dạng như ONNX , TensorRT , CoreML , Và TFLite thông qua chế độ Xuất .
- Hỗ trợ cộng đồng: Cộng đồng Discord năng động và cập nhật thường xuyên đảm bảo khả năng tương thích với phiên bản mới nhất PyTorch phiên bản.
So sánh mã
Khoảng cách về khả năng sử dụng trở nên rõ ràng khi so sánh mã cần thiết để chạy suy luận. Ultralytics ưu tiên phương pháp mã thấp, cho phép các nhà phát triển tích hợp AI thị giác vào các ứng dụng với chi phí tối thiểu.
Đang chạy YOLOv8 với Python
from ultralytics import YOLO
# Load a pre-trained YOLOv8 model
model = YOLO("yolov8n.pt")
# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg")
# Display the results
for result in results:
result.show()
CLI Thực hiện
YOLOv8 cũng có thể được thực hiện trực tiếp từ dòng lệnh, một tính năng giúp đơn giản hóa việc tích hợp đường ống và thử nghiệm nhanh chóng.
# Detect objects in an image using the nano model
yolo predict model=yolov8n.pt source='https://ultralytics.com/images/zidane.jpg' imgsz=640
Các trường hợp sử dụng lý tưởng
Khi nào sử dụng YOLOv7
YOLOv7 vẫn là một lựa chọn khả thi cho các nhà nghiên cứu so sánh với các tiêu chuẩn 2022/2023 hoặc duy trì các hệ thống cũ được xây dựng riêng dựa trên kiến trúc kiểu Darknet. Phương pháp "túi quà tặng miễn phí" của nó mang đến những hiểu biết thú vị cho những người nghiên cứu các chiến lược tối ưu hóa mạng nơ-ron.
Khi nào sử dụng YOLOv8
YOLOv8 là lựa chọn được khuyến nghị cho phần lớn các dự án mới, bao gồm:
- Ứng dụng thời gian thực: YOLOv8n (nano) mô hình cung cấp tốc độ đáng kinh ngạc (khoảng 80ms trên CPU ), khiến nó trở nên hoàn hảo cho các ứng dụng di động và hệ thống nhúng .
- Quy trình đa nhiệm vụ: Các dự án yêu cầu ước tính tư thế hoặc phân đoạn cùng với phát hiện có thể sử dụng một API duy nhất.
- Triển khai thương mại: Khả năng tương thích xuất khẩu mạnh mẽ đảm bảo rằng các mô hình được đào tạo trong PyTorch có thể được triển khai hiệu quả vào môi trường sản xuất bằng cách sử dụng TensorRT hoặc OpenVINO .
Kết luận
Trong khi YOLOv7 đã có những đóng góp đáng kể cho lĩnh vực thị giác máy tính bằng cách tối ưu hóa các tham số có thể đào tạo, Ultralytics YOLOv8 đại diện cho tiêu chuẩn hiện đại cho phát triển AI thực tế.
YOLOv8 sự cân bằng vượt trội giữa tốc độ và độ chính xác, kết hợp với thiết kế không có mỏ neo và phạm vi rộng Ultralytics Hệ sinh thái hỗ trợ, giúp người mới bắt đầu dễ tiếp cận hơn và chuyên nghiệp hơn. Dành cho các nhà phát triển đang tìm cách xây dựng các ứng dụng thị giác có khả năng mở rộng, bảo trì và hiệu suất cao, YOLOv8 —và những phiên bản kế nhiệm như YOLO11 —mang đến con đường hấp dẫn nhất để tiến về phía trước.
Đọc thêm
Đối với những ai quan tâm đến việc khám phá những tiến bộ mới nhất trong phát hiện đối tượng, hãy cân nhắc xem xét các mô hình liên quan sau:
- YOLO11 : Phiên bản mới nhất từ Ultralytics , cải tiến kiến trúc để đạt hiệu quả cao hơn nữa.
- YOLOv6 : Một mô hình không có mỏ neo khác tập trung vào các ứng dụng công nghiệp.
- YOLOv9 : Tập trung vào Thông tin Gradient có thể lập trình (PGI) để đào tạo mạng sâu.