YOLOv8 vs YOLOv7: So sánh kỹ thuật toàn diện
Lĩnh vực thị giác máy tính đang 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 những gì có thể thực hiện được trong nhận diệ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 tôi so sánh hai mô hình có tầm ảnh hưởng lớn: Ultralytics YOLOv8 và YOLOv7. Cả hai mô hình đều tác động đáng kể đến cộng đồng nhà phát triển và nghiên cứu học thuật, mang đến những phương pháp tiếp cận độc đáo để giải quyết các tác vụ thị giác phức tạp.
Hiểu rõ sự khác biệt về cấu trúc và phương pháp luận giữa hai mô hình này là rất quan trọng đối với các kỹ sư học máy đang tìm cách tối ưu hóa quy trình triển khai của họ. Trong khi YOLOv7 giới thiệu phương pháp "bag-of-freebies" mạnh mẽ được thiết kế riêng cho lưu lượng xử lý thô, Ultralytics YOLOv8 tập trung vào việc tạo ra 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 với mức tiêu thụ bộ nhớ thấp và tính linh hoạt trong đ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 đại diện cho một bước chuyển đổi kiến trúc lớn so với các thế hệ tiền nhiệm. Nó được thiết kế từ đầu để trở thành một thứ nhiều hơn là chỉ một bộ nhận diện đối tượng thời gian thực; đây là một framework thống nhất có khả năng xử lý hàng loạt các tác vụ thị giác ngay lập tức.
- 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
Đổi mới kiến trúc
YOLOv8 giới thiệu đầu ra nhận diện không neo (anchor-free) sáng tạo. Điều này đơn giản hóa cơ bản quy trình huấn luyện bằng cách loại bỏ nhu cầu định cấu hình thủ công các anchor box dựa trên sự phân bổ cụ thể của tập dữ liệu tùy chỉnh của bạn. Lựa chọn thiết kế này làm cho mô hình trở nên mạnh mẽ và dễ tổng quát hóa hơn trên các môi trường khác nhau.
Ngoài ra, kiến trúc này có module C2f (Cross-Stage Partial bottleneck với hai phép tích chập), một bản nâng cấp cấu trúc giúp cải thiện luồng gradient và cho phép mạng thần kinh 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 mô hình đạt hiệu suất cao khi thực hiện suy luận thông qua các framework học sâu tiêu chuẩn như PyTorch.
Các mô hình Ultralytics YOLO được thiết kế để đạt hiệu suất huấn luyện tối ưu. Chúng thường yêu cầu ít bộ nhớ CUDA hơn đáng kể trong quá trình huấn luyện so với các kiến trúc dựa trên transformer hoặc các CNN nặng hơn. Điều này cho phép bạn huấn luyện với kích thước batch lớn hơn trên phần cứng cấp người dùng, từ đó tăng tốc chu kỳ phát triển của bạn.
YOLOv7: Phương pháp "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. Nó tập trung nhiều vào việc tái tham số hóa kiến trúc và tối ưu hóa đường truyền gradient để đẩy giới hạn nhận diện đối tượng 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
Đổi mới kiến trúc
YOLOv7 sử dụng Extended Efficient Layer Aggregation Network (E-ELAN), cho phép mô hình liên tục học các đặc trưng đa dạng hơn. Nó dựa chủ yếu vào mô hình dựa trên neo (anchor-based) và giới thiệu một "bag-of-freebies" có thể huấn luyện—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í suy luận.
Mặc dù YOLOv7 đạt hiệu suất tuyệt vời trên các chuẩn mực học thuật tiêu chuẩn như tập dữ liệu MS COCO, kiến trúc của nó được tối ưu hóa mạnh mẽ cho các bộ tăng tốc cấp máy chủ. Việc xuất và triển khai các mô hình này lên các thiết bị biên đôi khi đòi hỏi nhiều cấu hình thủ công hơn so với các framework hiện đại và được tinh giản hơn.
So sánh chi tiết về hiệu suất
Khi đánh giá các mô hình này, sự đánh đổi giữa tốc độ, độ chính xác và kích thước mô hình là cân nhắc chính. Bảng dưới đây nêu bật các chỉ số cho cả hai mô hình.
| Model | kích thước (pixels) | 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ư đã thấy trong dữ liệu, 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 độ suy luận vượt trội và dung lượng 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
Trong khi YOLOv7 cung cấp các chỉ số phát hiện thô mạnh mẽ, Ultralytics YOLOv8 vượt trội hơn hẳn về trải nghiệm nhà phát triển, khả năng tích hợp hệ sinh thái và khả năng đa tác vụ.
Tính linh hoạt chưa từng có
YOLOv7 chủ yếu là một mô hình nhận diện, với các nhánh thử nghiệm cho các tác vụ khác. Ngược lại, YOLOv8 hỗ trợ nguyên bản Nhận diện đối tượng, Phân đoạn thực thể, Phân loại hình ảnh, Ước tính tư thế và Hộp bao định hướng (OBB). Cách tiếp cận thống nhất này có nghĩa là một nhóm có thể học một API và triển khai nó trên 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 xuất mô hình để đưa vào sản xuất thường có thể là một nút thắt cổ chai. Gói Ultralytics cho phép các nhà phát triển xuất sang các định dạng như ONNX, TensorRT và CoreML chỉ với một dòng mã Python. Điều này tránh được các vấn đề hỗ trợ toán tử đôi khi gặp phải khi xuất các đồ thị dựa trên neo phức tạp.
Hơn nữa, YOLOv8 tích hợp liền mạch với các công cụ MLOps. Cho dù bạn đang theo dõi các thí nghiệm với Weights & Biases hay kiểm tra việc triển khai trên Hugging Face Spaces, hệ sinh thái Ultralytics đều xử lý các công việc nặng nhọc đó.
Ví dụ về mã: Huấn luyện và Xuất YOLOv8
Đoạn mã sau đây minh họa sự đơn giản của API Python Ultralytics. Bạn có thể chuyển từ khởi tạo mô hình sang huấn luyện và xuất nó để triển khai trên thiết bị biên chỉ trong chưa đầy mười dòng mã.
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")Sử dụng hàm model.export() cung cấp một cầu nối ngay lập tức đến các công cụ suy luận hiệu suất cao, cho phép bạn dễ dàng tích hợp YOLOv8 vào các ứng dụng di động, hệ thống nhúng hoặc máy chủ đám mây có lưu lượng xử lý cao.
Các trường hợp sử dụng trong thực tế
Sự khác biệt về kiến trúc giữa hai mô hình 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:
- AI biên và thiết bị IoT: Sự sẵn có của các mô hình Nano và Small siêu nhanh khiến YOLOv8 trở nên hoàn hảo cho phần cứng có khả năng tính toán hạn chế, chẳng hạn như camera thông minh hoặc máy bay không người lái.
- Dự án đa tác vụ: Nếu quy trình của bạn yêu cầu theo dõi các khớp của con người (Ước tính tư thế) trong khi đồng thời lập bản đồ các chướng ngại vật (Phân đoạn), YOLOv8 xử lý điều này một cách nguyên bản.
- Tạo mẫu nhanh đến sản xuất: Tài liệu Ultralytics phong phú và API Python mượt mà cho phép các nhóm đưa sản phẩm ra thị trường nhanh hơn.
Khi nào nên cân nhắc YOLOv7:
- Đánh giá chuẩn học thuật: Các nhà nghiên cứu nghiên cứu ảnh hưởng của các kỹ thuật tái tham số hóa thường sử dụng YOLOv7 như một baseline tiêu chuẩn, như được phản ánh qua sự phổ biến của nó trên Papers With Code.
- Quy trình máy chủ kế thừa: Nếu một quy trình máy chủ tính toán nặng hiện có đã được tối ưu hóa nghiêm ngặt xung quanh các đầu ra neo cụ thể của YOLOv7, việc duy trì nó có thể là thiết thực trong ngắn hạn.
Nhìn về phía trước: Thế hệ tiếp theo
Trong khi YOLOv8 vẫn là một cỗ máy đa năng, bối cảnh AI thay đổi rất nhanh chóng. Đối với các nhóm bắt đầu dự án mới, chúng tôi thực sự khuyên bạn nên khám phá những tiến bộ mới nhất trong dòng sản phẩm của Ultralytics.
Thế hệ mới nhất, YOLO26, đại diện cho đỉnh cao của AI thị giác hiện tại. Nó có Thiết kế không NMS đầu-cuối (End-to-End NMS-Free), loại bỏ 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à sự ra đời của Trình tối ưu hóa MuSGD lấy cảm hứng từ LLM, YOLO26 cung cấp quá trình huấn luyện ổn định hơn và suy luận trên CPU nhanh hơn tới 43%. Các hàm mất mát ProgLoss + STAL tiên tiến của nó cải thiện đáng kể khả năng nhận diện vật thể nhỏ, biến nó thành lựa chọn tối ưu cho điện toán biên hiện đại và hình ảnh trên không.
Đối với người dùng chuyển đổi từ các hệ thống cũ hơn, YOLO11 đầy năng lực và YOLOv5 cổ điển vẫn được hỗ trợ đầy đủ trong hệ sinh thái Ultralytics thống nhất, đảm bảo rằng dù các hạn chế phần cứng của bạn là gì, vẫn có một mô hình hiệu suất cao, được tinh giản sẵn sàng để triển khai.