YOLOv7 so với YOLOX: So sánh kỹ thuật chi tiết
Trong bối cảnh phát triển nhanh chóng của thị giác máy tính, YOLO Dòng mô hình (You Only Look Once) đã liên tục đặt ra 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 lịch sử này là YOLOv7 và YOLOX . Mặc dù cả hai mô hình đều hướng đến sự cân bằng giữa tốc độ và độ chính xác, nhưng chúng lại có sự khác biệt đáng kể về triết lý kiến trúc - cụ thể là về phương pháp luận dựa trên neo so với phương pháp luận không dựa trên neo.
Hướng dẫn này cung cấp so sánh kỹ thuật chuyên sâu để giúp các nhà nghiên cứu và kỹ sư lựa chọn công cụ phù hợp cho các ứng dụng thị giác máy tính cụ thể của họ. Chúng tôi sẽ phân tích kiến trúc, hiệu suất chuẩn và tìm hiểu lý do tại sao các giải pháp thay thế hiện đại như Ultralytics YOLO11 thường mang lại trải nghiệm vượt trội cho nhà phát triển.
Chỉ số hiệu suất: Tốc độ và độ chính xác
Khi đánh giá các bộ phát hiện đối tượng, sự đánh đổi giữa độ trễ suy luận và Độ chính xác trung bình ( mAP ) là tối quan trọng. Bảng dưới đây trình bày sự so sánh trực tiếp giữa YOLOv7 và các biến thể YOLOX trên tập dữ liệu COCO .
| 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 |
| YOLOXnano | 416 | 25.8 | - | - | 0.91 | 1.08 |
| YOLOXtiny | 416 | 32.8 | - | - | 5.06 | 6.45 |
| YOLOXs | 640 | 40.5 | - | 2.56 | 9.0 | 26.8 |
| YOLOXm | 640 | 46.9 | - | 5.43 | 25.3 | 73.8 |
| YOLOXl | 640 | 49.7 | - | 9.04 | 54.2 | 155.6 |
| YOLOXx | 640 | 51.1 | - | 16.1 | 99.1 | 281.9 |
Phân tích kết quả
Dữ liệu làm nổi bật những lợi thế riêng biệt của từng dòng mô hình tùy thuộc vào các hạn chế triển khai. YOLOv7 thể hiện hiệu suất vượt trội trong phân khúc hiệu suất cao. Ví dụ, YOLOv7l đạt mAP 51,4% chỉ với 36,9 triệu tham số, vượt trội hơn YOLOXx (51,1% mAP , 99,1 triệu tham số) trong khi sử dụng ít tài nguyên tính toán hơn đáng kể. Điều này làm cho YOLOv7 một ứng cử viên sáng giá cho những tình huống mà hiệu quả GPU rất quan trọng nhưng bộ nhớ lại bị hạn chế.
Ngược lại, YOLOX lại nổi bật ở hạng mục nhẹ. Mẫu YOLOX-Nano (thông số 0,91M) mang đến giải pháp khả thi cho các thiết bị biên tiêu thụ điện năng cực thấp, nơi ngay cả các thiết bị tiêu chuẩn nhỏ nhất cũng có thể đáp ứng được. YOLO Các mô hình có thể quá nặng. Hệ số nhân chiều sâu-chiều rộng có thể mở rộng của nó cho phép tinh chỉnh chi tiết trên nhiều cấu hình phần cứng khác nhau.
YOLOv7 : Túi quà tặng miễn phí được tối ưu hóa
Phát hành vào tháng 7 năm 2022, YOLOv7 đã giới thiệu một số cải tiến về kiến trúc được thiết kế để tối ưu hóa quá trình đào tạo mà không phát sinh chi phí suy luận.
- 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
- Bài báo: Liên kết Arxiv
- GitHub: Kho lưu trữ YOLOv7
Điểm nổi bật về kiến trúc
YOLOv7 tập trung vào "túi quà tặng miễn phí có thể huấn luyện"—các phương pháp tối ưu hóa giúp cải thiện độ chính xác trong quá trình huấn luyện nhưng bị loại bỏ hoặc hợp nhất trong quá trình suy luận. Các tính năng chính bao gồm:
- E-ELAN (Mạng tổng hợp lớp hiệu quả mở rộng): Cấu trúc xương sống được cải tiến giúp tăng cường khả năng học các tính năng đa dạng của mô hình bằng cách kiểm soát đường dẫn gradient ngắn nhất và dài nhất.
- Tỷ lệ mô hình: Thay vì chỉ đơn giản là tỷ lệ chiều sâu hoặc chiều rộng, YOLOv7 sử dụng phương pháp mở rộng hợp chất cho các mô hình dựa trên sự nối kết, duy trì cấu trúc tối ưu trong quá trình nâng cấp.
- Đầu phụ từ thô đến tinh: Đầu phụ mất mát được sử dụng trong quá trình đào tạo để hỗ trợ giám sát, sau đó được tham số hóa lại thành đầu chính để suy luận.
Tham số hóa lại
YOLOv7 sử dụng tham số hóa lại theo kế hoạch, trong đó các mô-đun huấn luyện riêng biệt được hợp nhất về mặt toán học thành một lớp tích chập duy nhất để suy luận. Điều này làm giảm đáng kể độ trễ suy luận mà không làm mất đi khả năng học thuộc tính đạt được trong quá trình huấn luyện.
YOLOX: Sự tiến hóa không có mỏ neo
YOLOX, được phát hành vào năm 2021, đại diện cho sự thay đổi trong YOLO mô hình bằng cách chuyển từ hộp neo sang cơ chế không có neo, tương tự như các phương pháp phân đoạn ngữ nghĩa .
- Tác giả: Zheng Ge, Songtao Liu, Feng Wang, Zeming Li, và Jian Sun
- Tổ chức: Megvii
- Date: 2021-07-18
- Bài báo: Liên kết Arxiv
- GitHub: Kho lưu trữ YOLOX
Tìm hiểu thêm về So sánh YOLOX
Điểm nổi bật về kiến trúc
YOLOX đã đơn giản hóa quy trình phát hiện bằng cách loại bỏ nhu cầu điều chỉnh hộp neo thủ công, vốn là một điểm khó chịu phổ biến trong các phiên bản trước như YOLOv4 và YOLOv5 .
- Cơ chế không có điểm neo: Bằng cách dự đoán trực tiếp tâm của các đối tượng, YOLOX loại bỏ các siêu tham số phức tạp liên quan đến điểm neo, cải thiện khả năng khái quát hóa trên nhiều tập dữ liệu khác nhau.
- Đầu tách rời: Không giống như trước đây YOLO Trong khi các phiên bản kết hợp phân loại và định vị trong cùng một đầu, YOLOX tách chúng ra. Điều này dẫn đến sự hội tụ nhanh hơn và độ chính xác cao hơn.
- SimOTA: Một chiến lược gán nhãn tiên tiến có thể gán động các mẫu dương tính vào dữ liệu thực tế với chi phí thấp nhất, cân bằng hiệu quả giữa tổn thất phân loại và hồi quy.
Tại sao Ultralytics Người mẫu là sự lựa chọn được ưa chuộng
Trong khi YOLOv7 và YOLOX khác nhau về kiến trúc, cả hai đều bị các mô hình YOLO Ultralytics hiện đại vượt trội về khả năng sử dụng và hỗ trợ hệ sinh thái. Đối với các nhà phát triển đang tìm kiếm một giải pháp mạnh mẽ, bền vững trong tương lai, việc chuyển đổi sang YOLO11 mang lại những lợi thế rõ rệt.
1. Hệ sinh thái thống nhất và dễ sử dụng
YOLOv7 và YOLOX thường yêu cầu sao chép các kho lưu trữ GitHub cụ thể, quản lý các yêu cầu phụ thuộc phức tạp và sử dụng các định dạng dữ liệu khác nhau. Ngược lại, Ultralytics cung cấp gói cài đặt pip có khả năng hợp nhất tất cả các tác vụ.
from ultralytics import YOLO
# Load a model (YOLO11n recommended for speed)
model = YOLO("yolo11n.pt")
# Train on a custom dataset with a single line
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on an image
results = model("path/to/image.jpg")
2. Cân bằng hiệu suất vượt trội
Như minh họa trong các tiêu chuẩn, hiện đại Ultralytics các mô hình đạt được sự cân bằng tốt hơn giữa tốc độ và độ chính xác. YOLO11 sử dụng kiến trúc không neo được tối ưu hóa, học hỏi từ những tiến bộ của cả YOLOX (thiết kế không neo) và YOLOv7 (tối ưu hóa đường dẫn gradient). Điều này dẫn đến các mô hình không chỉ nhanh hơn về suy luận CPU mà còn yêu cầu ít hơn CUDA bộ nhớ trong quá trình đào tạo, giúp chúng có thể truy cập được trên nhiều loại phần cứng hơn.
3. Tính linh hoạt trong nhiều nhiệm vụ
YOLOv7 và YOLOX chủ yếu được thiết kế để phát hiện đối tượng. Ultralytics các mô hình mở rộng khả năng này một cách tự nhiên cho một bộ tác vụ thị giác máy tính mà không cần thay đổi API:
- Phân đoạn phiên bản : Hiểu đối tượng ở cấp độ pixel.
- Ước tính tư thế : Phát hiện các điểm chính trên cơ thể con người.
- Phát hiện đối tượng định hướng (OBB) : Phát hiện các đối tượng xoay (ví dụ: ảnh trên không).
- Phân loại : Gán nhãn lớp cho toàn bộ hình ảnh.
4. Triển khai liền mạch và MLOps
Việc đưa một mô hình từ nghiên cứu vào sản xuất là một thách thức với các khuôn khổ cũ hơn. Ultralytics hệ sinh thái bao gồm các chế độ xuất khẩu tích hợp cho ONNX , TensorRT , CoreML , Và OpenVINO , đơn giản hóa việc triển khai mô hình . Hơn nữa, tích hợp với Ultralytics HUB cho phép quản lý dữ liệu dựa trên web, đào tạo từ xa và triển khai chỉ bằng một cú nhấp chuột đến các thiết bị biên.
Kết luận
Cả hai YOLOv7 và YOLOX đã có những đóng góp đáng kể cho lĩnh vực thị giác máy tính. YOLOv7 đã tối ưu hóa kiến trúc để đạt hiệu suất cao nhất trên GPU thiết bị, tối đa hóa hiệu quả của phương pháp "túi quà tặng". YOLOX đã chứng minh thành công tính khả thi của phương pháp phát hiện không có điểm neo, đơn giản hóa quy trình và cải thiện khả năng khái quát hóa.
Tuy nhiên, đối với quy trình phát triển hiện đại, Ultralytics YOLO11 nổi bật là lựa chọn vượt trội. Nó kết hợp sức mạnh kiến trúc của các phiên bản tiền nhiệm với API Python vượt trội, yêu cầu bộ nhớ thấp hơn và hỗ trợ một loạt các tác vụ thị giác toàn diện. Cho dù bạn đang triển khai trên thiết bị biên hay máy chủ đám mây, cộng đồng năng động và tài liệu hướng dẫn chi tiết của nó Ultralytics hệ sinh thái đảm bảo con đường sản xuất thuận lợi hơn.
Khám phá các Mô hình Khác
Nếu bạn quan tâm đến những so sánh kỹ thuật sâu hơn, hãy khám phá những tài nguyên sau:
- YOLOv7 so với YOLOv8 : Nhìn lại bước nhảy vọt về hiệu suất giữa các thế hệ.
- RT-DETR so với YOLOv7 : So sánh máy biến áp với CNN.
- YOLO11 so với YOLOv10 : Những tiến bộ mới nhất trong phát hiện thời gian thực.