YOLOv7 so với YOLOv5#
Khi xây dựng các pipeline thị giác máy tính hiện đại, việc chọn kiến trúc phát hiện đối tượng phù hợp là yếu tố then chốt để cân bằng độ chính xác, tốc độ inference và mức sử dụng tài nguyên. Bài so sánh toàn diện này xem xét hai model có tầm ảnh hưởng lớn trong lĩnh vực thị giác máy tính: YOLOv7 và Ultralytics YOLOv5.
Bằng cách phân tích khác biệt về kiến trúc, các chỉ số hiệu năng và kịch bản triển khai lý tưởng, chúng tôi hướng đến việc giúp developer và nhà nghiên cứu chọn model phù hợp nhất với yêu cầu cụ thể.
Bối cảnh và nguồn gốc của model#
Việc tìm hiểu nguồn gốc của các model này giúp làm rõ triết lý thiết kế và các trường hợp sử dụng mục tiêu.
YOLOv5#
Được Glenn Jocher và nhóm tại Ultralytics phát hành vào ngày 26 tháng 6 năm 2020, YOLOv5 đã cách mạng hóa lĩnh vực này bằng cách cung cấp bản triển khai PyTorch gốc, ưu tiên tính dễ sử dụng mà không ảnh hưởng đến hiệu năng. YOLOv5 nhanh chóng trở thành tiêu chuẩn ngành nhờ hệ sinh thái tinh gọn vượt trội và động lực huấn luyện đáng tin cậy. Bạn có thể khám phá mã nguồn tại kho lưu trữ YOLOv5 trên GitHub hoặc truy cập trực tiếp model thông qua Ultralytics Platform.
YOLOv7#
Được Chien-Yao Wang, Alexey Bochkovskiy và Hong-Yuan Mark Liao thuộc Viện Khoa học Thông tin, Academia Sinica, Đài Loan giới thiệu vào ngày 6 tháng 7 năm 2022, YOLOv7 tập trung mạnh vào các cải tiến kiến trúc như Mạng tổng hợp lớp hiệu quả mở rộng (E-ELAN) và "bag-of-freebies" có thể huấn luyện nhằm thúc đẩy độ chính xác vượt trội. Bạn có thể tìm hiểu thêm trong bài báo Arxiv chính thức và kho lưu trữ YOLOv7 trên GitHub. Để tích hợp liền mạch, hãy tham khảo tài liệu Ultralytics YOLOv7.
YOLOv5 được tích hợp đầy đủ vào package Python của Ultralytics. YOLOv7 không được hỗ trợ nguyên bản để huấn luyện hoặc inference bằng PyTorch, nhưng có thể chạy các checkpoint YOLOv7 từ upstream đã xuất sang ONNX hoặc TensorRT bằng Ultralytics, như mô tả trong tài liệu YOLOv7.
Các cải tiến kiến trúc#
Thiết kế Ultralytics YOLOv5#
YOLOv5 sử dụng backbone CSPDarknet53 đã được điều chỉnh, kết hợp với tầng neck Mạng tổng hợp đường dẫn (PANet). Thiết kế này được tối ưu hóa cao độ cho trích xuất đặc trưng nhanh và tiết kiệm bộ nhớ. Không giống các kiến trúc cũ hơn hoặc model Transformer nặng, YOLOv5 cần ít bộ nhớ CUDA hơn đáng kể trong quá trình huấn luyện, cho phép sử dụng batch size lớn hơn trên GPU phổ thông. Ngoài ra, framework Ultralytics vốn hỗ trợ nhiều tác vụ ngoài bbox tiêu chuẩn, bao gồm phân đoạn ảnh và phân loại ảnh.
Thiết kế YOLOv7#
YOLOv7 giới thiệu một số kỹ thuật tái tham số hóa cấu trúc và kiến trúc E-ELAN, cho phép mạng học các đặc trưng đa dạng hơn mà không phá vỡ đường gradient ban đầu. Model cũng triển khai một head phụ để giám sát trung gian trong quá trình huấn luyện. Dù những cải tiến này mang lại độ chính xác trung bình (mAP) cao, chúng thường tạo ra cấu trúc tensor phức tạp, khiến việc xuất sang các định dạng edge như ONNX hoặc TensorRT có thể khó hơn đôi chút so với khả năng xuất tinh gọn vốn có của các model Ultralytics.
Phân tích hiệu năng#
Khi so sánh các model này, developer cần cân bằng mAPval, tốc độ inference và độ phức tạp tính toán (FLOPs). Bảng dưới đây thể hiện hiệu năng của cả hai kiến trúc khi được đánh giá trên dataset COCO.
| Model | kích thước (pixel) | mAPval 50-95 | Tốc độ CPU ONNX (ms) | Tốc độ T4 TensorRT10 (ms) | params (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
| YOLOv5n | 640 | 28.0 | - | 1.12 | 1.9 | 4.5 |
| YOLOv5s | 640 | 37.4 | - | 1.92 | 7.2 | 16.5 |
| YOLOv5m | 640 | 45.4 | - | 4.03 | 21.2 | 49.0 |
| YOLOv5l | 640 | 49.0 | - | 6.61 | 46.5 | 109.1 |
| YOLOv5x | 640 | 50.7 | - | 11.89 | 86.7 | 205.7 |
Điểm chính cần lưu ý#
- Ngưỡng độ chính xác: YOLOv7x đạt độ chính xác tổng thể cao nhất với 53.1 mAPval, khiến model này rất cạnh tranh trong các tình huống ưu tiên tối đa hóa hiệu năng phát hiện.
- Tốc độ và hiệu quả: Ultralytics YOLOv5n có hiệu quả vượt trội, cung cấp độ trễ inference cực thấp (1.12 ms trên T4 TensorRT) với dung lượng bộ nhớ nhỏ, chỉ gồm 1.9M tham số. Đây là lựa chọn khó có đối thủ cho các triển khai edge bị giới hạn tài nguyên nghiêm ngặt.
- Cân bằng hiệu năng: Dòng YOLOv5 cung cấp nhiều model với mức hiệu năng đa dạng. YOLOv5l là lựa chọn cân bằng tuyệt vời, chỉ kém YOLOv7l một chút về độ chính xác nhưng có pipeline triển khai rất hoàn thiện.
Lợi thế của hệ sinh thái Ultralytics#
Kiến trúc chỉ là một nửa bài toán; hệ sinh thái xung quanh quyết định tính khả thi của model trong thực tế. Đây là điểm mà các model Ultralytics thực sự nổi bật.
Dễ sử dụng: Ultralytics cung cấp Python API thống nhất, trực quan cao. Bạn có thể huấn luyện, đánh giá và triển khai model với rất ít boilerplate, cùng với tài liệu chính thức phong phú. Hệ sinh thái được duy trì tốt: Quá trình phát triển tích cực đảm bảo cập nhật liên tục, sửa lỗi và tích hợp liền mạch với các công cụ theo dõi hiện đại như Weights & Biases. Hiệu quả huấn luyện: Nhờ sử dụng data loader được tối ưu hóa và bộ nhớ đệm thông minh, YOLOv5 giảm đáng kể thời gian huấn luyện. Ngoài ra, các weight tiền huấn luyện sẵn sàng sử dụng giúp tăng tốc transfer learning trên nhiều lĩnh vực.
Ví dụ mã: Huấn luyện đơn giản hóa#
Với package Ultralytics, việc bắt đầu một phiên huấn luyện gần như giống hệt nhau bất kể bạn chọn kiến trúc nào.
from ultralytics import YOLO
# Tải model YOLOv5 đã tiền huấn luyện
model = YOLO("yolov5su.pt") # YOLOv5u: weight YOLOv5 không anchor dành cho package ultralytics
# Huấn luyện model trên dataset ví dụ COCO8
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Export model đã huấn luyện sang định dạng ONNX để triển khai
success = model.export(format="onnx")Các trường hợp sử dụng phù hợp nhất#
Khi nào nên chọn YOLOv7#
- Benchmark học thuật: Phù hợp cho nhà nghiên cứu cần so sánh các kỹ thuật mới với baseline năm 2022 có tài liệu đầy đủ.
- Xử lý trên cloud bằng GPU cao cấp: Phù hợp khi triển khai trên phần cứng máy chủ mạnh, nơi đạt mAP cao nhất tuyệt đối trên các cảnh dày đặc quan trọng hơn sự đơn giản khi xuất model.
Khi nào nên chọn YOLOv5#
- Triển khai production: Lý tưởng cho các ứng dụng thương mại cần độ ổn định cao, tùy chọn triển khai model đơn giản và khả năng tương thích đa nền tảng rộng.
- Thiết bị edge: Các biến thể nhỏ hơn (YOLOv5n và YOLOv5s) hoạt động đặc biệt tốt trên điện thoại di động và hệ thống nhúng.
- Yêu cầu đa tác vụ: Khi dự án cần mở rộng từ phát hiện đơn giản sang phân đoạn instance hoặc phân loại bằng một framework thống nhất.
Bạn đang tìm các phiên bản mới hơn? Hãy khám phá Ultralytics YOLOv8 hoặc Ultralytics YOLO11 để tìm hiểu thêm các cải tiến về phát hiện không anchor và khả năng học đa tác vụ.
Thế hệ tiếp theo: Ultralytics YOLO26#
Dù YOLOv5 và YOLOv7 giữ vị trí quan trọng trong lịch sử AI thị giác, lĩnh vực này không ngừng phát triển. Được phát hành vào tháng 1 năm 2026, Ultralytics YOLO26 đại diện cho công nghệ phát hiện đối tượng tiên tiến nhất, vượt qua các thế hệ trước trên mọi chỉ số.
YOLO26 giới thiệu một số tính năng mang tính đột phá:
- Thiết kế end-to-end không cần NMS: Tiếp nối các ý tưởng tiên phong từ những phiên bản trước, YOLO26 cung cấp head end-to-end gốc (
nms=False), loại bỏ bước hậu xử lý Non-Maximum Suppression (NMS), giảm mạnh các điểm nghẽn độ trễ và đơn giản hóa đáng kể logic triển khai. - Optimizer MuSGD: Lấy cảm hứng từ Kimi K2 của Moonshot AI, optimizer mang tính đột phá này kết hợp độ ổn định của SGD tiêu chuẩn với động lượng tăng tốc của Muon, đưa các đổi mới trong huấn luyện LLM tiên tiến trực tiếp vào lĩnh vực thị giác máy tính.
- Tăng tốc CPU: Bằng cách loại bỏ Distribution Focal Loss (DFL) một cách có chủ đích, YOLO26 đạt tốc độ inference CPU nhanh hơn tới 43%, trở thành lựa chọn hàng đầu cho triển khai trên thiết bị edge và thiết bị IoT công suất thấp.
- ProgLoss + STAL: Các hàm loss tiên tiến này cải thiện đáng kể khả năng nhận diện đối tượng nhỏ, yếu tố quan trọng đối với ảnh chụp từ trên không và robot chính xác.
- Cải tiến theo tác vụ: Bao gồm loss phân đoạn ngữ nghĩa để tạo mask, Ước lượng Khả năng Hợp lý Logarit Phần dư (RLE) cho ước lượng pose và loss góc chuyên biệt để xử lý các vấn đề ranh giới hộp giới hạn xoay (OBB) phức tạp.
Kết luận#
Cả YOLOv5 và YOLOv7 đều cung cấp giải pháp mạnh mẽ cho phát hiện đối tượng thời gian thực. YOLOv7 vẫn là lựa chọn tốt khi cần độ chính xác thô trên phần cứng tính toán cao, trong khi YOLOv5 nổi bật như công cụ thân thiện nhất với developer, mang lại sự cân bằng vượt trội giữa tốc độ, hiệu quả và hệ sinh thái đẳng cấp thế giới.
Tuy nhiên, với developer muốn đảm bảo pipeline sẵn sàng cho tương lai và đạt được sự kết hợp tối ưu giữa tốc độ, tính đơn giản và độ chính xác tiên tiến nhất, chúng tôi đặc biệt khuyến nghị chuyển sang Ultralytics YOLO26. Model này kết hợp khả năng dễ sử dụng trứ danh của nền tảng Ultralytics với những cải tiến kiến trúc đột phá.