YOLOv8 so với YOLOv7#
Lĩnh vực thị giác máy tính không ngừng phát triển, với các kiến trúc mới liên tục mở rộng giới hạn của những gì có thể thực hiện trong phát hiện đối tượng theo thời gian thực. Trong bài phân tích chuyên sâu này, chúng ta so sánh hai model có ảnh hưởng lớn: Ultralytics YOLOv8 và YOLOv7. Cả hai model đều có tác động đáng kể đến cộng đồng developer và nghiên cứu học thuật, đồng thời cung cấp những cách tiếp cận riêng để giải quyết các tác vụ thị giác phức tạp.
Việc hiểu rõ những khác biệt về cấu trúc và phương pháp giữa hai model này là yếu tố quan trọng đối với các kỹ sư machine learning muốn tối ưu hóa pipeline triển khai của họ. Trong khi YOLOv7 giới thiệu cách tiếp cận mạnh mẽ kiểu "bag-of-freebies", được điều chỉnh để tối đa hóa throughput thô, Ultralytics YOLOv8 tập trung xây dựng một hệ sinh thái toàn diện, dễ sử dụng, cân bằng giữa độ chính xác cao, mức tiêu thụ bộ nhớ thấp và khả năng xử lý đa tác vụ.
Ultralytics YOLOv8: Tiêu chuẩn hệ sinh thái linh hoạt#
Được Ultralytics phát hành vào đầu năm 2023, YOLOv8 đánh dấu một thay đổi lớn về kiến trúc so với các phiên bản tiền nhiệm. Model này được thiết kế ngay từ đầu để không chỉ là một bộ phát hiện đối tượng theo thời gian thực; đây là một framework thống nhất có khả năng xử lý nhiều tác vụ thị giác ngay khi cài đặt.
- Tác giả: Glenn Jocher, Ayush Chaurasia và Jing Qiu
- Tổ chức: Ultralytics
- Ngày: 2023-01-10
- GitHub: ultralytics/ultralytics
- Tài liệu: Tài liệu YOLOv8
Các cải tiến về kiến trúc#
YOLOv8 giới thiệu một detection head anchor-free đầy đổi mới. Điều này đơn giản hóa đáng kể quy trình training bằng cách loại bỏ nhu cầu cấu hình thủ công các anchor box dựa trên phân phối cụ thể của dataset tùy chỉnh. Lựa chọn thiết kế này giúp model có độ robust cao và dễ tổng quát hóa hơn trong nhiều môi trường khác nhau.
Ngoài ra, kiến trúc này còn có C2f module (bottleneck Partial từng phần qua các stage với hai phép tích chập), một cải tiến về cấu trúc giúp cải thiện luồng gradient và cho phép neural network học các biểu diễn đặc trưng phong phú hơn mà không làm tăng đáng kể chi phí tính toán. Điều này giúp model đạt hiệu quả cao khi chạy inference thông qua các framework deep learning tiêu chuẩn như PyTorch.
Các model YOLO của Ultralytics được thiết kế để đạt hiệu quả training tối đa. So với các kiến trúc dựa trên Transformer hoặc các CNN nặng hơn, chúng thường yêu cầu ít CUDA memory hơn đáng kể trong quá trình training. Nhờ đó, bạn có thể training với batch size lớn hơn trên phần cứng phổ thông, rút ngắn chu kỳ phát triển.
YOLOv7: Cách tiếp cận "Bag-of-Freebies"#
YOLOv7 được giới thiệu vào giữa năm 2022 và nhanh chóng trở thành một baseline phổ biến trong giới học thuật. Model này tập trung mạnh vào việc tái tham số hóa kiến trúc và tối ưu hóa đường dẫn gradient nhằm đẩy giới hạn của phát hiện đối tượng theo thời gian thực trên các GPU cao cấp.
- 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
Các cải tiến về kiến trúc#
YOLOv7 sử dụng Mạng tổng hợp lớp hiệu quả mở rộng (E-ELAN), cho phép model liên tục học các đặc trưng đa dạng hơn. Model này phụ thuộc nhiều vào paradigm dựa trên anchor và giới thiệu một "bag-of-freebies" có thể training — một tập hợp các phương pháp tối ưu hóa giúp cải thiện độ chính xác mà không làm tăng chi phí inference.
Mặc dù YOLOv7 đạt hiệu năng xuất sắc trên các benchmark học thuật tiêu chuẩn như dataset MS COCO, kiến trúc của model được tối ưu hóa mạnh cho các bộ tăng tốc cấp server. Việc export và triển khai các model này lên edge device đôi khi đòi hỏi cấu hình thủ công nhiều hơn so với các framework hiện đại và tinh gọn hơn.
So sánh hiệu năng chi tiết#
Khi đánh giá các model này, sự đánh đổi giữa tốc độ, độ chính xác và kích thước model là yếu tố được cân nhắc hàng đầu. Bảng dưới đây nêu bật các metric của cả hai model.
| Model | kích thước (pixel) | mAPval 50-95 | Tốc độ CPU ONNX (ms) | Tốc độ T4 TensorRT10 (ms) | tham số (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
Như dữ liệu cho thấy, YOLOv8x đạt độ chính xác tuyệt đối cao nhất (53.9 mAP), trong khi biến thể nano (YOLOv8n) cung cấp tốc độ inference vượt trội và footprint cực kỳ nhẹ. Sự đa dạng này giúp YOLOv8 thích ứng tốt hơn nhiều với các môi trường phần cứng bị hạn chế.
Lợi thế của Ultralytics: Dễ sử dụng và hệ sinh thái#
Mặc dù YOLOv7 cung cấp các metric detection thô mạnh mẽ, Ultralytics YOLOv8 vượt trội hơn đáng kể về trải nghiệm developer, khả năng tích hợp hệ sinh thái và năng lực đa tác vụ.
Tính linh hoạt vượt trội#
YOLOv7 chủ yếu là một model detection, với các nhánh thử nghiệm cho những tác vụ khác. Ngược lại, YOLOv8 hỗ trợ native Phát hiện đối tượng, Phân đoạn instance, Phân loại hình ảnh, Ước tính pose và Bounding Box định hướng (OBB). Cách tiếp cận thống nhất này có nghĩa là một team chỉ cần học một API và có thể triển khai API đó cho các yêu cầu dự án hoàn toàn khác nhau.
Triển khai và tích hợp tinh gọn#
Việc export model cho production thường có thể trở thành một điểm nghẽn. Package Ultralytics cho phép developer export sang các format như ONNX, TensorRT và CoreML chỉ với một dòng code Python. Điều này tránh được các vấn đề về hỗ trợ operator đôi khi gặp phải khi export các graph phức tạp dựa trên anchor.
Hơn nữa, YOLOv8 tích hợp liền mạch với các công cụ MLOps. Dù bạn đang theo dõi experiment bằng Weights & Biases hay testing deployment trên Hugging Face Spaces, hệ sinh thái Ultralytics sẽ đảm nhiệm phần lớn công việc phức tạp.
Ví dụ code: Training và Export YOLOv8#
Đoạn code sau minh họa sự đơn giản của Python API của Ultralytics. Bạn có thể chuyển từ khởi tạo model sang training và export model để triển khai trên edge trong chưa đến mười dòng code.
from ultralytics import YOLO
# Load a pretrained YOLOv8 nano model for fast inference
model = YOLO("yolov8n.pt")
# Train the model on the COCO8 dataset
# The API handles data loading, augmentation, and logging automatically
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on a test image
predictions = model("https://ultralytics.com/images/bus.jpg")
# Export the trained model to ONNX format for deployment
model.export(format="onnx")Việc sử dụng hàm model.export() tạo cầu nối tức thì đến các inference engine hiệu năng cao, cho phép bạn dễ dàng tích hợp YOLOv8 vào ứng dụng mobile, hệ thống nhúng hoặc cloud server có throughput cao.
Các trường hợp sử dụng trong thực tế#
Những khác biệt về kiến trúc giữa hai model quyết định các kịch bản triển khai lý tưởng của chúng.
Khi nào nên chọn YOLOv8:
- Edge AI và thiết bị IoT: Sự sẵn có của các model Nano và Small siêu nhanh khiến YOLOv8 trở nên lý tưởng cho phần cứng có năng lực tính toán hạn chế, chẳng hạn như camera thông minh hoặc drone.
- Dự án đa tác vụ: Nếu pipeline của bạn yêu cầu tracking khớp nối con người (Ước tính pose) đồng thời lập bản đồ chướng ngại vật (Phân đoạn), YOLOv8 hỗ trợ native các tác vụ này.
- Từ tạo prototype nhanh đến production: Tài liệu Ultralytics phong phú và Python API liền mạch cho phép các team đưa sản phẩm ra thị trường nhanh hơn.
Khi nào nên cân nhắc YOLOv7:
- Benchmark học thuật: Các nhà nghiên cứu изуч effects of re-parameterization techniques thường sử dụng YOLOv7 làm baseline tiêu chuẩn, thể hiện qua mức độ phổ biến của model này trên Papers With Code.
- Pipeline server cũ: Nếu một pipeline yêu cầu nhiều tài nguyên tính toán hiện có đã được tối ưu nghiêm ngặt quanh các anchor output cụ thể của YOLOv7, việc tiếp tục duy trì pipeline này có thể là lựa chọn thực tế trong ngắn hạn.
Hướng tới tương lai: Thế hệ tiếp theo#
Mặc dù YOLOv8 vẫn là một model đa năng và mạnh mẽ, bối cảnh AI phát triển rất nhanh. Đối với các team bắt đầu dự án mới, chúng tôi đặc biệt khuyến nghị khám phá những tiến bộ mới nhất trong dòng sản phẩm Ultralytics.
Thế hệ mới nhất, YOLO26, đại diện cho đỉnh cao của vision AI hiện tại. Model này có Thiết kế End-to-End không cần NMS, loại bỏ bước hậu xử lý Non-Maximum Suppression để triển khai đơn giản và nhanh hơn. Với việc loại bỏ Distribution Focal Loss (DFL) và giới thiệu MuSGD Optimizer lấy cảm hứng từ LLM, YOLO26 mang đến quá trình training ổn định hơn và inference trên CPU nhanh hơn tới 43%. Các hàm loss ProgLoss + STAL tiên tiến cải thiện đáng kể khả năng nhận diện đối tượng nhỏ, khiến YOLO26 trở thành lựa chọn tối ưu cho edge computing hiện đại và hình ảnh chụp từ trên không.
Đối với người dùng chuyển đổi từ các hệ thống cũ, YOLO11 giàu năng lực và YOLOv5 kinh điển vẫn được hỗ trợ đầy đủ trong hệ sinh thái Ultralytics thống nhất, đảm bảo rằng bất kể giới hạn phần cứng của bạn là gì, luôn có một model hiệu năng cao, tinh gọn sẵn sàng để triển khai.