YOLOv7 So sánh với YOLOX: Phân tích chuyên sâu về các kiến trúc phát hiện đối tượng thời gian thực
Trong bối cảnh thị giác máy tính đang phát triển nhanh chóng, việc lựa chọn mô hình phát hiện đối tượng phù hợp là rất quan trọng để đạt được thành công. Hai cột mốc quan trọng trong hành trình này là YOLOv7 và YOLOX . Mặc dù cả hai kiến trúc đều đẩy giới hạn về tốc độ và độ chính xác khi ra mắt, nhưng chúng lại có những cách tiếp cận khác biệt cơ bản để giải quyết vấn đề phát hiện đối tượng. Hướng dẫn này cung cấp một so sánh kỹ thuật chi tiết để giúp các nhà phát triển, nhà nghiên cứu và kỹ sư đưa ra quyết định sáng suốt cho các trường hợp sử dụng cụ thể của họ.
Tổng quan và Nguồn gốc Mô hình
Việc hiểu rõ nguồn gốc của những mẫu thiết kế này giúp chúng ta hiểu rõ hơn về các quyết định kiến trúc của mình.
YOLOv7: Nguồn sức mạnh từ các cải tiến miễn phí
Được phát hành vào tháng 7 năm 2022, YOLOv7 Nó được thiết kế để trở thành bộ phát hiện đối tượng thời gian thực nhanh nhất và chính xác nhất vào thời điểm đó. Nó tập trung mạnh vào các tối ưu hóa kiến trúc như E-ELAN (Extended Efficient Layer Aggregation Networks) và một "túi quà tặng miễn phí" có thể huấn luyện được để nâng cao độ chính xác mà không làm tăng 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
- Ngày: 2022-07-06
- Arxiv:2207.02696
- GitHub:WongKinYiu/yolov7
YOLOX: Sự tiến hóa không anchor
YOLOX, được Megvii phát hành năm 2021, đánh dấu một bước chuyển biến đáng kể khi loại bỏ cơ chế dựa trên neo vốn chiếm ưu thế trước đây. YOLO các phiên bản (như YOLOv3 và YOLOv5 Bằng cách kết hợp đầu tách rời và thiết kế không cần neo, YOLOX đã đơn giản hóa quy trình huấn luyện và cải thiện hiệu suất, thu hẹp khoảng cách giữa nghiên cứu và ứng dụng công nghiệp.
- Tác giả: Zheng Ge, Songtao Liu, Feng Wang, Zeming Li, và Jian Sun
- Tổ chức:Megvii
- Ngày: 2021-07-18
- Arxiv:2107.08430
- GitHub:Megvii-BaseDetection/YOLOX
So sánh hiệu suất kỹ thuật
Bảng sau đây nêu bật các chỉ số hiệu năng của các mô hình tương đương trên... COCO tập dữ liệu.
| Mô hình | Kích thước (pixels) | mAPval 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 |
Những điểm khác biệt chính về kiến trúc
Cơ chế neo giữ:
- YOLOv7 : Sử dụng phương pháp dựa trên neo . Nó yêu cầu các hộp neo được xác định trước, có thể nhạy cảm với việc điều chỉnh siêu tham số nhưng thường hoạt động mạnh mẽ trên các tập dữ liệu chuẩn như MS COCO .
- YOLOX: Áp dụng thiết kế không sử dụng hộp neo . Điều này loại bỏ nhu cầu sử dụng các hộp neo phân cụm (như K-means) và giảm số lượng tham số thiết kế, đơn giản hóa cấu hình mô hình .
Thiết kế mạng:
- YOLOv7 : Sở hữu kiến trúc E-ELAN , giúp định hướng đường dẫn gradient để học các đặc trưng đa dạng một cách hiệu quả. Nó cũng sử dụng "tái tham số hóa có kế hoạch" để hợp nhất các lớp trong quá trình suy luận, tăng tốc độ mà không làm giảm độ chính xác huấn luyện.
- YOLOX: Sử dụng một đầu xử lý tách rời , phân biệt nhiệm vụ phân loại và hồi quy. Điều này thường dẫn đến sự hội tụ nhanh hơn và độ chính xác tốt hơn, nhưng có thể làm tăng nhẹ số lượng tham số so với đầu xử lý ghép nối.
Phân công nhãn:
- YOLOv7 : Sử dụng chiến lược gán nhãn dẫn dắt từ thô đến tinh.
- YOLOX: Giới thiệu SimOTA (Simplified Optimal Transport Assignment), một chiến lược gán nhãn động xử lý bài toán gán nhãn như một nhiệm vụ vận chuyển tối ưu, giúp cải thiện tính ổn định của quá trình huấn luyện.
Tiêu chuẩn hiện đại: YOLO26
Trong khi YOLOv7 Và YOLOX đã tạo nên một cuộc cách mạng, lĩnh vực này đã tiến bộ vượt bậc. YOLO26 mới, được phát hành vào tháng 1 năm 2026, kết hợp những ưu điểm tốt nhất của cả hai. Nó sở hữu thiết kế hoàn toàn không cần NMS (tương tự như triết lý không cần anchor của YOLOX nhưng được phát triển hơn nữa) và loại bỏ Distribution Focal Loss (DFL) giúp tăng tốc độ suy luận CPU lên đến 43% .
Đào tạo và Hệ sinh thái
Trải nghiệm của nhà phát triển thường quan trọng không kém gì các chỉ số hiệu năng thô. Đây chính là điểm khác biệt đáng kể của hệ sinh thái Ultralytics .
Dễ sử dụng và Tích hợp
Việc đào tạo YOLOX thường yêu cầu phải tìm hiểu mã nguồn Megvii, mặc dù mạnh mẽ nhưng có thể gây khó khăn hơn cho người dùng quen thuộc với các API cấp cao. Ngược lại, việc chạy YOLOv7 bởi vì Ultralytics Mang đến trải nghiệm liền mạch.
Cái Ultralytics Python API thống nhất quy trình làm việc. Bạn có thể chuyển đổi giữa... YOLOv7 , YOLOv10 , hoặc thậm chí YOLO11 chỉ bằng cách thay đổi chuỗi tên mô hình. Tính linh hoạt này rất quan trọng cho việc tạo mẫu nhanh và đánh giá hiệu năng.
Ví dụ mã: Giao diện nhất quán
Đây là cách bạn có thể huấn luyện một YOLOv7 mô hình sử dụng Ultralytics gói. Cấu trúc mã hoàn toàn giống nhau cũng hoạt động với các mô hình mới hơn như YOLO26.
from ultralytics import YOLO
# Load a YOLOv7 model (or swap to "yolo26n.pt" for the latest)
model = YOLO("yolov7.pt")
# Train on a custom dataset
# Ultralytics automatically handles data augmentation and logging
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on an image
results = model("path/to/image.jpg")
Bộ nhớ và Hiệu quả
Ultralytics Các mô hình này nổi tiếng về khả năng sử dụng tài nguyên hiệu quả.
- Hiệu quả đào tạo: YOLOv7 trong Ultralytics khung được tối ưu hóa để sử dụng ít hơn CUDA So với các triển khai thô hoặc các mô hình dựa trên transformer như RT-DETR , bộ nhớ của nó cho phép kích thước lô lớn hơn trên phần cứng tiêu dùng.
- Triển khai: Việc xuất mô hình sang định dạng sản xuất chỉ cần một lệnh duy nhất. Cho dù bạn đang nhắm mục tiêu đến điều gì, ONNX, TensorRT, hoặc CoreML, cái Ultralytics
exportChế độ này xử lý sự phức tạp của việc chuyển đổi đồ thị.
Các trường hợp sử dụng lý tưởng
Việc lựa chọn giữa các mô hình này thường phụ thuộc vào những ràng buộc cụ thể của môi trường triển khai của bạn.
Khi nào nên chọn YOLOv7
YOLOv7 vẫn là ứng cử viên nặng ký cho hiệu năng cao. GPU môi trường đòi hỏi độ chính xác cao nhất.
- Hệ thống giám sát cao cấp: Lý tưởng cho các hệ thống báo động an ninh, nơi việc phát hiện các vật thể nhỏ ở khoảng cách xa là vô cùng quan trọng.
- Kiểm tra công nghiệp: Khả năng trích xuất đặc điểm mạnh mẽ giúp phần mềm phù hợp với các tác vụ sản xuất phức tạp, chẳng hạn như phát hiện lỗi trên dây chuyền lắp ráp.
- GPU - Tăng tốc xử lý biên: Các thiết bị như... NVIDIA Dòng Jetson Orin có thể tận dụng YOLOv7 Kiến trúc được tái tham số hóa của 's đã hoạt động hiệu quả.
Khi nào nên chọn YOLOX
YOLOX thường được ưu tiên sử dụng trong môi trường nghiên cứu hoặc các kịch bản hệ thống biên cũ cụ thể.
- Nghiên cứu học thuật: Thiết kế không cần neo và mã nguồn sạch sẽ khiến YOLOX trở thành một nền tảng tuyệt vời cho các nhà nghiên cứu thử nghiệm các đầu dò mới hoặc chiến lược gán nhiệm vụ.
- Triển khai trên thiết bị di động (Nano/Tiny): Các phiên bản YOLOX-Nano và Tiny được tối ưu hóa cao cho CPU di động, tương tự như mục tiêu hiệu quả của dòng YOLOv6 Lite.
- Các cơ sở mã nguồn cũ: Các nhóm đã tích hợp sâu vào MegEngine hoặc các nhóm cụ thể khác. PyTorch Những người dùng có thể thấy YOLOX dễ bảo trì hơn.
Tương lai: Chuyển sang YOLO26
Trong khi YOLOv7 Trong khi YOLOX và các phiên bản tiền nhiệm khác đều đáp ứng được nhu cầu, YOLO26 đại diện cho bước tiến tiếp theo. Nó khắc phục những hạn chế của cả hai phiên bản trước đó:
- NMS - Miễn phí: Không giống như YOLOv7 (điều này đòi hỏi) NMS ) và YOLOX (đã đơn giản hóa các liên kết nhưng vẫn sử dụng) NMS YOLO26 sử dụng thiết kế đầu cuối hoàn chỉnh. Điều này loại bỏ hoàn toàn nút thắt cổ chai về độ trễ trong quá trình xử lý hậu kỳ.
- Bộ tối ưu hóa MuSGD: Lấy cảm hứng từ phương pháp huấn luyện LLM, bộ tối ưu hóa này ổn định quá trình huấn luyện cho các tác vụ thị giác máy tính, vượt trội so với các phương pháp tiêu chuẩn. SGD được sử dụng trong thời kỳ trước YOLO các phiên bản.
- Tính linh hoạt trong tác vụ: Trong khi YOLOX tập trung chủ yếu vào phát hiện đối tượng, YOLO26 cung cấp hiệu năng hàng đầu trong các lĩnh vực Phân đoạn đối tượng , Ước tính tư thế và Hộp giới hạn định hướng (OBB) .
Kết luận
Cả hai YOLOv7 và YOLOX đã đóng góp đáng kể vào sự phát triển của lĩnh vực phát hiện đối tượng . YOLOv7 đã chứng minh rằng các phương pháp dựa trên anchor vẫn có thể chiếm ưu thế về độ chính xác thông qua kiến trúc thông minh như E-ELAN. YOLOX đã thách thức thành công hiện trạng bằng cách phổ biến phương pháp phát hiện không cần anchor trong... YOLO gia đình.
Đối với các nhà phát triển bắt đầu các dự án mới ngày nay, tận dụng hệ sinh thái Ultralytics là lựa chọn chiến lược nhất. Nó cung cấp quyền truy cập vào... YOLOv7 Để so sánh với các hệ thống cũ, đồng thời cung cấp con đường trực tiếp đến tốc độ và độ chính xác vượt trội của YOLO26 . Sự dễ dàng chuyển đổi giữa các mô hình, kết hợp với tài liệu toàn diện và hỗ trợ cộng đồng, đảm bảo các dự án thị giác máy tính của bạn luôn được cập nhật trong tương lai.
Đọc thêm
- YOLO11 : Một tiền nhiệm mạnh mẽ
- RT-DETR : Máy biến áp Vision
- Ultralytics Nền tảng: Đào tạo và triển khai