YOLOv8 so với YOLOv5#
Việc chọn kiến trúc thị giác máy tính phù hợp là bước quan trọng để xây dựng pipeline machine learning vững chắc. Trong bài so sánh kỹ thuật chi tiết này, chúng tôi tìm hiểu sự khác biệt giữa hai model phổ biến nhất trong hệ sinh thái AI thị giác: YOLOv8 và YOLOv5. Cả hai model đều do Ultralytics phát triển và đã định hình đáng kể lĩnh vực phát hiện đối tượng thời gian thực, thiết lập tiêu chuẩn ngành về tốc độ, độ chính xác và tính dễ sử dụng.
Dù triển khai trên thiết bị biên hay mở rộng quy mô suy luận trên đám mây, việc hiểu rõ những thay đổi về kiến trúc, chỉ số hiệu năng và phương pháp huấn luyện của các model này sẽ giúp bạn đưa ra quyết định sáng suốt cho dự án thị giác máy tính.
Ultralytics YOLOv8: Tiêu chuẩn linh hoạt#
Được phát hành vào đầu năm 2023, YOLOv8 đánh dấu bước chuyển lớn về kiến trúc so với các phiên bản tiền nhiệm. Model được thiết kế ngay từ đầu như một framework hợp nhất, có khả năng xử lý nhiều tác vụ thị giác trực tiếp, bao gồm phân đoạn instance, phân loại ảnh và ước tính pose.
- 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
Kiến trúc và phương pháp#
YOLOv8 giới thiệu head phát hiện không dùng anchor, giúp đơn giản hóa quá trình huấn luyện bằng cách loại bỏ nhu cầu cấu hình thủ công anchor box dựa trên phân bố của dataset. Nhờ đó, model tổng quát hóa tốt hơn trên các dataset tùy chỉnh và giảm số lượng dự đoán box, giúp tăng tốc Non-Maximum Suppression (NMS).
Kiến trúc có module C2f (nút thắt cổ chai Cross-Stage Partial với hai phép tích chập), thay thế module C3 trong YOLOv5. Module C2f cải thiện luồng gradient và cho phép model 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. Ngoài ra, YOLOv8 sử dụng cấu trúc head tách rời, phân chia tác vụ phân loại và hồi quy; cấu trúc này đã được chứng minh là giúp cải thiện tốc độ hội tụ và độ chính xác.
Các model Ultralytics YOLO, bao gồm YOLOv8, được tối ưu để sử dụng ít bộ nhớ CUDA hơn trong quá trình huấn luyện so với nhiều lựa chọn thay thế dựa trên Transformer như RT-DETR. Nhờ đó, nhà phát triển có thể sử dụng batch size lớn hơn trên các GPU phổ thông như dòng NVIDIA RTX.
Ưu điểm và nhược điểm#
Ưu điểm:
- Tính linh hoạt vượt trội trên nhiều tác vụ, không chỉ giới hạn ở phát hiện bounding box đơn giản.
- API Python tinh gọn thông qua package
ultralytics, giúp việc huấn luyện và xuất model trở nên trực quan. - Độ chính xác trung bình trung bình (mAP) cao hơn trên mọi biến thể kích thước so với YOLOv5.
Nhược điểm:
- Head tách rời và module C2f làm tăng số lượng tham số và FLOPs ở các biến thể nhỏ hơn so với những model YOLOv5 tương ứng chính xác.
Ultralytics YOLOv5: Tiên phong linh hoạt#
Được giới thiệu vào năm 2020, YOLOv5 đưa YOLO vào hệ sinh thái PyTorch, giúp cải thiện đáng kể khả năng tiếp cận cho nhà phát triển. Model nhanh chóng trở thành tiêu chuẩn ngành cho các model phát hiện đối tượng nhanh, đáng tin cậy và dễ triển khai.
- Tác giả: Glenn Jocher
- Tổ chức: Ultralytics
- Ngày: 2020-06-26
- GitHub: ultralytics/yolov5
- Tài liệu: Tài liệu YOLOv5
Kiến trúc và phương pháp#
YOLOv5 sử dụng kiến trúc dựa trên anchor và backbone CSPDarknet53 đã được chỉnh sửa. Mặc dù các phương pháp dựa trên anchor đòi hỏi phân cụm cẩn thận các bounding box trong dataset để xác định anchor tối ưu trước khi huấn luyện, chúng có hiệu quả cao với các dataset cụ thể, được xác định rõ.
YOLOv5 tích hợp module C3, giúp trích xuất đặc trưng hiệu quả đồng thời duy trì số lượng tham số thấp. Hàm loss chủ yếu dựa vào loss Objectness kết hợp với loss phân loại và hồi quy bounding box để hướng mạng đến các dự đoán chính xác.
Ưu điểm và nhược điểm#
Ưu điểm:
- Cực kỳ nhẹ, phù hợp để triển khai AI biên trong môi trường hạn chế tài nguyên, đặc biệt là các biến thể Nano (YOLOv5n) và Small (YOLOv5s).
- Tốc độ suy luận đặc biệt cao, nhất là trên CPU.
- Hệ sinh thái đã phát triển lâu dài, với nhiều hướng dẫn từ cộng đồng và tích hợp của bên thứ ba.
Nhược điểm:
- Cần cấu hình anchor box, điều này có thể khiến việc thiết lập phức tạp hơn với các dataset tùy chỉnh hoặc có độ đa dạng cao.
- Độ chính xác tổng thể (mAP) thấp hơn so với các kiến trúc hiện đại không dùng anchor như YOLOv8 và YOLO26.
So sánh hiệu năng#
Khi đánh giá các model này, việc đạt được sự đánh đổi thuận lợi giữa tốc độ và độ chính xác là tối quan trọng. Bảng dưới đây trình bày các chỉ số hiệu năng của cả hai kiến trúc được đánh giá trên dataset COCO. Tốc độ CPU được đo bằng ONNX, còn tốc độ GPU được kiểm thử bằng TensorRT.
| Model | kích thước (pixel) | mAPval 50-95 | Tốc độ CPU ONNX (ms) | Tốc độ T4 TensorRT10 (ms) | params (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.1 |
| YOLOv8x | 640 | 53.9 | 479.1 | 14.37 | 68.2 | 257.8 |
| 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 |
YOLOv5 vẫn có lợi thế về số lượng tham số và tốc độ thuần tuyệt đối ở biến thể Nano, nhưng YOLOv8 cải thiện mAP đáng kể trên mọi phương diện, mang lại sự cân bằng hiệu năng tốt hơn nhiều cho các kịch bản triển khai thực tế đòi hỏi cao.
Tính dễ sử dụng và hệ sinh thái Ultralytics#
Một đặc điểm nổi bật của các model Ultralytics hiện đại là hệ sinh thái được duy trì tốt xung quanh các model này. Quá trình chuyển đổi từ YOLOv5 sang YOLOv8 đi kèm với việc giới thiệu package pip hợp nhất ultralytics, mang lại trải nghiệm người dùng tinh gọn hơn đáng kể.
Nhà phát triển có thể xử lý liền mạch huấn luyện model, xác thực, dự đoán và xuất model chỉ với vài dòng mã Python, không cần các script nền phức tạp vốn thường được yêu cầu trong những dự án deep learning trước đây.
from ultralytics import YOLO
# Tải model YOLOv8 đã được huấn luyện trước
model = YOLO("yolov8n.pt")
# Huấn luyện model hiệu quả trên dữ liệu tùy chỉnh
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=0)
# Xuất model sang ONNX để triển khai trong môi trường production
path = model.export(format="onnx")Ngoài ra, việc tích hợp với các công cụ như Ultralytics Platform giúp đơn giản hóa quản lý dataset, huấn luyện trên đám mây và triển khai, đồng thời đảm bảo quá trình phát triển tích cực và sự hỗ trợ mạnh mẽ từ cộng đồng.
Các trường hợp sử dụng phù hợp nhất#
Khi nào nên chọn YOLOv5: Nếu bạn đang duy trì hệ thống cũ, chạy suy luận trên CPU có tài nguyên cực kỳ hạn chế như Raspberry Pi, hoặc làm dự án mà việc tiết kiệm từng phần nhỏ của megabyte trong kích thước model là tối quan trọng, YOLOv5 vẫn là lựa chọn đáng tin cậy.
Khi nào nên chọn YOLOv8: Với gần như mọi dự án mới bắt đầu hiện nay, YOLOv8 được khuyến nghị mạnh hơn YOLOv5. Kiến trúc tiên tiến xử lý dễ dàng các tác vụ tracking phức tạp, bounding box có hướng (OBB) và phân đoạn. Model này lý tưởng cho các ứng dụng hiện đại, từ robot tự hành đến phân tích ảnh y tế và hạ tầng đô thị thông minh.
YOLOv8 có năng lực rất cao, nhưng nhà phát triển muốn đạt đến giới hạn hiệu năng mới nhất nên cân nhắc YOLO26. Được phát hành vào năm 2026, model này giới thiệu một số cải tiến đột phá:
- Thiết kế đầu cuối không cần NMS: Head một-một tùy chọn (
nms=False) loại bỏ bước hậu xử lý NMS để triển khai nhanh hơn, đơn giản hơn; đây là ý tưởng được tiên phong lần đầu trong YOLOv10. - Optimizer MuSGD: Phương pháp kết hợp SGD và Muon, đưa các cải tiến trong huấn luyện LLM vào thị giác máy tính, giúp huấn luyện ổn định hơn và hội tụ nhanh hơn.
- Suy luận CPU nhanh hơn đến 43%: Được tối ưu mạnh cho môi trường điện toán biên không có GPU chuyên dụng.
- Loại bỏ DFL: Distribution Focal Loss đã được loại bỏ để đơn giản hóa quá trình xuất model và tăng khả năng tương thích với thiết bị biên.
- ProgLoss + STAL: Progressive Loss và Small-Target-Aware Label Assignment giúp cải thiện đáng kể khả năng nhận diện vật thể nhỏ, yếu tố quan trọng đối với ảnh hàng không và IoT.
Bằng cách tận dụng tài liệu và công cụ toàn diện do Ultralytics cung cấp, bạn có thể dễ dàng triển khai YOLOv8 hoặc tìm hiểu YOLO26 tiên tiến để giải quyết các thách thức thị giác phức tạp với tốc độ và độ chính xác chưa từng có. Để tìm hiểu thêm, hãy xem các hướng dẫn của chúng tôi về tinh chỉnh siêu tham số và phương pháp triển khai model.