So sánh YOLOX và YOLOv7#
Sự tiến hóa của object detection thời gian thực được thúc đẩy bởi các bước đột phá liên tục về kiến trúc. Hai cột mốc quan trọng trong hành trình này là YOLOX và YOLOv7. Được phát hành trong vòng một năm kể từ nhau, cả hai mô hình đều giới thiệu các phương pháp mới cho mô hình object detection tiêu chuẩn, cải thiện đáng kể sự đánh đổi giữa tốc độ và accuracy.
Trang này cung cấp phân tích kỹ thuật chuyên sâu về YOLOX và YOLOv7, so sánh kiến trúc, các chỉ số hiệu suất và các trường hợp sử dụng lý tưởng để giúp các nhà phát triển chọn công cụ phù hợp cho việc triển khai thị giác máy tính của họ.
YOLOX: Tiên phong trong Detection không dùng Anchor#
Được các nhà nghiên cứu tại Megvii giới thiệu vào tháng 7 năm 2021, YOLOX đại diện cho một bước chuyển mình lớn bằng cách rời bỏ các thiết kế anchor-based truyền thống. Bằng cách thu hẹp khoảng cách giữa nghiên cứu học thuật và ứng dụng công nghiệp, YOLOX đã đơn giản hóa detection head và cải thiện hiệu suất tổng thể.
Chi tiết chính về mô hình:
- Tác giả: Zheng Ge, Songtao Liu, Feng Wang, Zeming Li, và Jian Sun
- Tổ chức: Megvii
- Ngày: 2021-07-18
- Bài báo nghiên cứu: arXiv:2107.08430
- Mã nguồn: Megvii YOLOX GitHub
- Tài liệu: Tài liệu GitHub của YOLOX
Cải tiến kiến trúc#
YOLOX giới thiệu cách tiếp cận anchor-free, giúp giảm đáng kể số lượng tham số thiết kế và việc tinh chỉnh theo kinh nghiệm cần thiết cho các tập dữ liệu tùy chỉnh. Nó triển khai một decoupled head, tách biệt các tác vụ phân loại và hồi quy, giúp cải thiện tốc độ hội tụ và độ chính xác. Ngoài ra, YOLOX sử dụng các chiến lược data augmentation nâng cao như MixUp và Mosaic để nâng cao độ bền vững của mô hình.
Bằng cách loại bỏ các anchor box, YOLOX làm giảm chi phí tính toán khi tính toán Intersection over Union (IoU) giữa các dự đoán và nhãn thực tế trong quá trình huấn luyện, dẫn đến yêu cầu về CUDA memory thấp hơn và thời gian huấn luyện nhanh hơn.
YOLOv7: Trainable Bag-of-Freebies#
Được phát hành vào tháng 7 năm 2022 bởi các nhà nghiên cứu tại Viện Khoa học Thông tin, Academia Sinica, Đài Loan, YOLOv7 đã đẩy giới hạn của object detection thời gian thực đi xa hơn. Nó giới thiệu khái niệm "trainable bag-of-freebies," thiết lập các tiêu chuẩn state-of-the-art mới trên tập dữ liệu MS COCO khi ra mắt.
Chi tiết chính về mô hình:
- Tác giả: Chien-Yao Wang, Alexey Bochkovskiy và Hong-Yuan Mark Liao
- Tổ chức: Viện Thông tin học, Academia Sinica, Đài Loan
- Ngày: 2022-07-06
- Bài báo nghiên cứu: arXiv:2207.02696
- Mã nguồn: WongKinYiu YOLOv7 GitHub
- Tài liệu: Ultralytics YOLOv7 Docs
Cải tiến kiến trúc#
Kiến trúc của YOLOv7 được xây dựng dựa trên Extended Efficient Layer Aggregation Network (E-ELAN), cho phép model liên tục học các đặc trưng đa dạng hơn mà không làm suy giảm đường dẫn gradient. Hơn nữa, YOLOv7 sử dụng kỹ thuật re-parameterization, cho phép các mạng training đa nhánh phức tạp được đơn giản hóa thành các mạng đơn nhánh nhanh hơn trong quá trình inference.
So sánh hiệu năng#
Khi đánh giá các model này cho các ứng dụng thực tế, việc hiểu rõ hiệu suất của chúng trên các quy mô khác nhau là rất quan trọng. Bảng dưới đây so sánh các chỉ số tiêu chuẩn cho nhiều kích thước khác nhau của YOLOX và YOLOv7.
| Mô hình | kích thước (pixel) | mAPval 50-95 | Tốc độ CPU ONNX (ms) | Tốc độ T4 TensorRT10 (ms) | params (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
Phân tích#
- Độ chính xác: YOLOv7 thường đạt được mAP cao hơn so với các mô hình YOLOX tương đương. Ví dụ, YOLOv7x đạt 53.1 mAP so với 51.1 của YOLOXx.
- Tốc độ: Mặc dù cả hai mô hình đều được tối ưu hóa cao cho việc chạy trên GPU sử dụng TensorRT, kiến trúc E-ELAN của YOLOv7 cung cấp thông lượng tốt hơn một chút cho các ứng dụng cao cấp, mặc dù YOLOX duy trì độ trễ xuất sắc trên các thiết bị edge nhỏ hơn.
- Tính linh hoạt: YOLOv7 mở rộng phạm vi của mình vượt ra ngoài các khung giới hạn bằng cách cung cấp sẵn trọng số cho instance segmentation và pose estimation, giúp nó linh hoạt hơn so với kho lưu trữ YOLOX cơ bản.
Ứng dụng trong thực tế#
Việc lựa chọn giữa các model này thường phụ thuộc vào môi trường triển khai cụ thể của bạn.
Điện toán biên và IoT#
Đối với các thiết bị edge bị giới hạn như Raspberry Pi hoặc các bộ xử lý di động cũ hơn, YOLOX-Nano và YOLOX-Tiny rất hấp dẫn. Số lượng tham số tối thiểu và tính chất anchor-free của chúng giúp dễ dàng triển khai hơn trong các môi trường công suất thấp cho các tác vụ như theo dõi chuyển động cơ bản hoặc ứng dụng chuông cửa thông minh.
Phân tích video độ trung thực cao#
Để xử lý các luồng dữ liệu độ phân giải cao trong phát hiện lỗi công nghiệp hoặc giám sát giao thông dày đặc, YOLOv7 vượt trội hơn. Khả năng tổng hợp đặc trưng mạnh mẽ cho phép nó duy trì độ chính xác cao ngay cả khi các đối tượng bị che khuất một phần hoặc thay đổi lớn về quy mô.
Các trường hợp sử dụng và Khuyến nghị#
Việc lựa chọn giữa YOLOX và YOLOv7 phụ thuộc vào yêu cầu dự án cụ thể, các hạn chế triển khai và tùy chọn hệ sinh thái của bạn.
Khi nào nên chọn YOLOX#
YOLOX là lựa chọn mạnh mẽ cho:
- Nghiên cứu Phát hiện Anchor-Free: Nghiên cứu học thuật sử dụng kiến trúc anchor-free sạch, gọn của YOLOX làm baseline để thử nghiệm với các head phát hiện hoặc hàm mất mát mới.
- Thiết bị biên siêu nhẹ: Triển khai trên vi điều khiển hoặc phần cứng di động cũ nơi mà footprint cực nhỏ của biến thể YOLOX-Nano (0.91M tham số) là rất quan trọng.
- Nghiên cứu Gán nhãn SimOTA: Các dự án nghiên cứu điều tra các chiến lược gán nhãn dựa trên vận chuyển tối ưu và tác động của chúng đến sự hội tụ trong đào tạo.
Khi nào nên chọn YOLOv7#
YOLOv7 được khuyến nghị cho:
- Academic Benchmarking: Tái tạo các kết quả state-of-the-art của kỷ nguyên 2022 hoặc nghiên cứu các hiệu ứng của kỹ thuật E-ELAN và trainable bag-of-freebies.
- Nghiên cứu về Reparameterization: Khám phá các convolution được lập kế hoạch tái tham số hóa và các chiến lược compound model scaling.
- Các pipeline tùy chỉnh hiện có: Các dự án với các pipeline tùy chỉnh nặng nề được xây dựng dựa trên kiến trúc cụ thể của YOLOv7 mà không thể dễ dàng tái cấu trúc.
Khi nào nên chọn Ultralytics (YOLO26)#
Đối với hầu hết các dự án mới, Ultralytics YOLO26 mang lại sự kết hợp tốt nhất giữa hiệu suất và trải nghiệm của nhà phát triển:
- Triển khai Edge không cần NMS: Các ứng dụng yêu cầu suy luận nhất quán, độ trễ thấp mà không có sự phức tạp của hậu xử lý Non-Maximum Suppression.
- Môi trường chỉ dùng CPU: Các thiết bị không có tăng tốc GPU chuyên dụng, nơi suy luận CPU nhanh hơn tới 43% của YOLO26 mang lại lợi thế quyết định.
- Phát hiện Vật thể Nhỏ: Các kịch bản thử thách như aerial drone imagery hoặc phân tích cảm biến IoT nơi ProgLoss và STAL cải thiện đáng kể độ chính xác trên các vật thể nhỏ xíu.
Lợi thế từ Ultralytics#
Mặc dù cả YOLOX và YOLOv7 đều là các triển khai nghiên cứu mạnh mẽ, việc chuyển từ một kho lưu trữ nghiên cứu sang một môi trường sản xuất có thể mở rộng có thể rất đáng sợ. Đây là lúc Ultralytics Platform tỏa sáng.
Các model Ultralytics cung cấp Python API thống nhất, xử lý việc training, validation và triển khai model như các tác vụ được sắp xếp hợp lý và chuẩn hóa. Bạn tránh được sự đau đầu khi phải quản lý các phụ thuộc bên thứ ba phức tạp hoặc các toán tử C++ tùy chỉnh vốn phổ biến ở các kiến trúc cũ hơn.
Hơn nữa, các mô hình Ultralytics YOLO yêu cầu ít CUDA memory hơn đáng kể trong quá trình huấn luyện so với các bộ dò dựa trên transformer như RT-DETR. Điều này cho phép các kỹ sư sử dụng các batch sizes lớn hơn, giúp ổn định quá trình huấn luyện và đẩy nhanh quá trình hội tụ trên các tập dữ liệu tùy chỉnh.
Ultralytics hỗ trợ nguyên bản việc xuất mô hình sang các định dạng chuẩn của ngành như ONNX, OpenVINO và CoreML với một cờ boolean đơn giản, đơn giản hóa đáng kể model deployment process.
Ví dụ mã: Training với Ultralytics#
Hệ sinh thái Ultralytics cho phép bạn dễ dàng load, train và chạy inference bằng cách sử dụng YOLOv7 hoặc các kiến trúc mới hơn chỉ với vài dòng mã.
from ultralytics import YOLO
# Load a pre-trained YOLOv7 model
model = YOLO("yolov7.pt")
# Train the model on a custom dataset (e.g., COCO8)
# The API handles data loading, augmentation, and memory management automatically
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on a test image
predictions = model("path/to/image.jpg")
predictions[0].show()Tương lai: Ultralytics YOLO26#
Trong khi YOLOv7 và YOLOX đại diện cho các bước tiến lịch sử quan trọng, công nghệ hiện đại thay đổi rất nhanh chóng. Được phát hành vào tháng 1 năm 2026, Ultralytics YOLO26 giới thiệu các mô hình đột phá thay thế cho các model trước đây.
- Thiết kế End-to-End không cần NMS: YOLO26 loại bỏ hoàn toàn quá trình hậu xử lý Non-Maximum Suppression (NMS). Điều này làm giảm đáng kể các điểm nghẽn độ trễ và đảm bảo thời gian thực thi có tính xác định trên các thiết bị phần cứng khác nhau.
- Inference CPU nhanh hơn tới 43%: Bằng cách loại bỏ Distribution Focal Loss (DFL) và tối ưu hóa độ sâu mạng, YOLO26 được thiết kế đặc biệt cho các thiết bị edge không có phần cứng GPU chuyên dụng.
- Optimizer MuSGD: Lấy cảm hứng từ các kỹ thuật training LLM tiên tiến, optimizer MuSGD (sự kết hợp của SGD và Muon) mang lại sự ổn định training vượt trội và hội tụ nhanh hơn.
- Cải thiện phát hiện đối tượng nhỏ: Sự tích hợp của các hàm mất mát ProgLoss + STAL mang lại những cải tiến đáng kể trong việc nhận diện các đối tượng nhỏ, ở xa—rất quan trọng cho drone mapping và giám sát an ninh.
- Hỗ trợ tác vụ gốc: YOLO26 hỗ trợ toàn diện Oriented Bounding Boxes (OBB), phân đoạn cá thể (instance segmentation) và ước lượng tư thế (pose estimation) ngay bên trong cùng một API được hợp lý hóa.
Đối với bất kỳ nhà phát triển hiện đại nào bắt đầu một dự án computer vision mới ngày nay, việc đánh giá Ultralytics YOLO26 on the Platform là con đường được khuyến nghị để đạt được sự cân bằng tuyệt đối tốt nhất về tốc độ, độ chính xác và tính đơn giản khi triển khai. Đối với những ai đang nâng cấp từ các thế hệ trước như YOLO11 hoặc YOLOv8, quá trình chuyển đổi chỉ yêu cầu thay đổi chuỗi mô hình, ngay lập tức mở khóa các khả năng vượt trội.