YOLOv5 và EfficientDet: Đánh giá các kiến trúc phát hiện đối tượng thời gian thực
Khi bắt đầu một dự án computer vision mới, việc lựa chọn kiến trúc mạng thần kinh phù hợp là một trong những quyết định quan trọng nhất mà bạn sẽ thực hiện. Hướng dẫn này cung cấp một bản so sánh kỹ thuật chuyên sâu giữa Ultralytics YOLOv5 và EfficientDet của Google. Bằng cách phân tích kiến trúc, số liệu hiệu suất và hệ sinh thái huấn luyện của chúng, chúng tôi đặt mục tiêu giúp các nhà phát triển và nghiên cứu xác định mô hình object detection tốt nhất cho môi trường triển khai cụ thể của họ.
Trong khi EfficientDet giới thiệu các khái niệm mới về quy mô hợp phần (compound scaling) và kết hợp đặc trưng, YOLOv5 đã tạo ra cuộc cách mạng trong ngành bằng cách phổ cập khả năng tiếp cận AI hiệu suất cao thông qua việc triển khai PyTorch cực kỳ trực quan, trải nghiệm người dùng tinh gọn và sự cân bằng vô song giữa tốc độ và độ chính xác.
Ultralytics YOLOv5: Tiêu chuẩn ngành về khả năng tiếp cận
Được phát hành vào mùa hè năm 2020, YOLOv5 đánh dấu một bước chuyển mình quan trọng trong dòng họ YOLO. Chuyển đổi từ khung Darknet dựa trên C sang PyTorch gốc, nó đã trở thành kiến trúc ưu tiên cho các nhà phát triển muốn xây dựng, huấn luyện và triển khai mô hình một cách nhanh chóng.
- Tác giả: Glenn Jocher
- Tổ chức: Ultralytics
- Ngày: 2020-06-26
- GitHub: https://github.com/ultralytics/yolov5
- Tài liệu: https://platform.ultralytics.com/ultralytics/yolov5
Đổi mới kiến trúc
YOLOv5 được vinh danh nhờ kiến trúc tối ưu hóa cao, ưu tiên quy trình vòng đời machine learning liền mạch. Nó sử dụng backbone CSPDarknet53 sửa đổi kết hợp với neck Path Aggregation Network (PANet), giúp cải thiện đáng kể khả năng truyền đặc trưng qua nhiều quy mô không gian.
Những tiến bộ chính bao gồm:
- Mosaic Data Augmentation: Kỹ thuật huấn luyện này kết hợp bốn hình ảnh huấn luyện riêng biệt thành một mosaic duy nhất. Điều này buộc mô hình phải học cách nhận diện đối tượng trong các bối cảnh không gian phức tạp và tăng cường đáng kể khả năng phát hiện các mục tiêu nhỏ.
- Auto-Learning Anchor Boxes: Trước khi bắt đầu huấn luyện, YOLOv5 phân tích training data tùy chỉnh của bạn và tự động tính toán kích thước anchor box tối ưu bằng cách sử dụng phân cụm k-means.
- Hiệu quả bộ nhớ: So với các mô hình dựa trên Transformer nặng nề, YOLOv5 duy trì dung lượng bộ nhớ thấp hơn đáng kể trong cả quá trình huấn luyện và suy luận, cho phép nó chạy mượt mà trên phần cứng cấp người dùng.
EfficientDet: Phát hiện đối tượng có thể mở rộng
Được Google Research giới thiệu vào năm 2019, EfficientDet nhằm mục đích cung cấp một họ các bộ phát hiện đối tượng có khả năng mở rộng. Nó được xây dựng dựa trên backbone phân loại hình ảnh EfficientNet và giới thiệu một cơ chế kết hợp đặc trưng mới lạ.
- Tác giả: Mingxing Tan, Ruoming Pang, và Quoc V. Le
- Tổ chức: Google
- Ngày: 2019-11-20
- Arxiv: https://arxiv.org/abs/1911.09070
- GitHub: https://github.com/google/automl/tree/master/efficientdet
- Tài liệu: https://github.com/google/automl/tree/master/efficientdet#readme
Đổi mới kiến trúc
Đề xuất cốt lõi của EfficientDet nằm ở cách tiếp cận hệ thống đối với việc mở rộng quy mô và tổng hợp đặc trưng:
- BiFPN (Bi-directional Feature Pyramid Network): Không giống như các FPN truyền thống chỉ truyền thông tin từ trên xuống dưới, BiFPN cho phép kết hợp đặc trưng đa quy mô nhanh chóng và dễ dàng bằng cách giới thiệu các trọng số có thể học để tìm hiểu tầm quan trọng của các đặc trưng đầu vào khác nhau.
- Compound Scaling: EfficientDet mở rộng đồng thời độ phân giải, độ sâu và chiều rộng cho tất cả các mạng backbone, mạng đặc trưng và mạng dự đoán box/lớp, dẫn đến các mô hình từ dòng D0 nhẹ đến dòng D7 đồ sộ.
Trong khi EfficientDet phụ thuộc nhiều vào hệ sinh thái TensorFlow và các thư viện AutoML, YOLOv5 vận hành nguyên bản bên trong PyTorch, mang lại quy trình công việc mà nhiều nhà phát triển thấy trực quan, chuẩn pythonic và dễ gỡ lỗi hơn.
So sánh hiệu suất và các chỉ số
Khi so sánh các mô hình này, việc đánh giá hiệu suất của chúng trên các điểm chuẩn tiêu chuẩn như COCO dataset là rất quan trọng. Bảng dưới đây nêu bật các đánh đổi giữa kích thước, nhu cầu tính toán (FLOPs) và tốc độ suy luận.
| Model | kích thước (pixels) | mAPval 50-95 | Tốc độ CPU ONNX (ms) | Tốc độ T4 TensorRT10 (ms) | tham số (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv5n | 640 | 28.0 | 73.6 | 1.12 | 2.6 | 7.7 |
| YOLOv5s | 640 | 37.4 | 120.7 | 1.92 | 9.1 | 24.0 |
| YOLOv5m | 640 | 45.4 | 233.9 | 4.03 | 25.1 | 64.2 |
| YOLOv5l | 640 | 49.0 | 408.4 | 6.61 | 53.2 | 135.0 |
| YOLOv5x | 640 | 50.7 | 763.2 | 11.89 | 97.2 | 246.4 |
| EfficientDet-d0 | 640 | 34.6 | 10.2 | 3.92 | 3.9 | 2.54 |
| EfficientDet-d1 | 640 | 40.5 | 13.5 | 7.31 | 6.6 | 6.1 |
| EfficientDet-d2 | 640 | 43.0 | 17.7 | 10.92 | 8.1 | 11.0 |
| EfficientDet-d3 | 640 | 47.5 | 28.0 | 19.59 | 12.0 | 24.9 |
| EfficientDet-d4 | 640 | 49.7 | 42.8 | 33.55 | 20.7 | 55.2 |
| EfficientDet-d5 | 640 | 51.5 | 72.5 | 67.86 | 33.7 | 130.0 |
| EfficientDet-d6 | 640 | 52.6 | 92.8 | 89.29 | 51.9 | 226.0 |
| EfficientDet-d7 | 640 | 53.7 | 122.0 | 128.07 | 51.9 | 325.0 |
Phân tích cân bằng
YOLOv5 tỏa sáng ở khả năng triển khai linh hoạt và khả năng tương thích tăng tốc phần cứng thô. Hãy chú ý tốc độ TensorRT cực nhanh trên GPU T4. Điều này làm cho YOLOv5 cực kỳ phù hợp cho các đường ống phân tích video băng thông cao và real-time inference. Hơn nữa, hệ sinh thái Ultralytics giúp việc xuất sang các định dạng như ONNX, CoreML và TensorRT trở nên dễ dàng chỉ với một dòng lệnh.
EfficientDet mang lại hiệu quả tham số tuyệt vời. Với số lượng tham số nhất định, nó thường đạt được mean Average Precision (mAP) cao. Tuy nhiên, hiệu quả lý thuyết này không phải lúc nào cũng chuyển thành thời gian suy luận thực tế nhanh hơn trên các GPU biên do định tuyến phức tạp của lớp BiFPN, vốn có thể bị giới hạn bởi băng thông bộ nhớ thay vì giới hạn bởi khả năng tính toán.
Hệ sinh thái và tính dễ sử dụng
Lợi thế xác định khi chọn một mô hình Ultralytics nằm ở hệ sinh thái xung quanh. YOLOv5 là một phần của kho lưu trữ được bảo trì chặt chẽ, phát triển tích cực với sự hỗ trợ lớn từ cộng đồng.
Với sự ra đời của Ultralytics Platform, người dùng có thể chuyển đổi liền mạch từ thu thập dữ liệu sang triển khai. Nền tảng này hỗ trợ tự động chú thích (auto-annotation), huấn luyện trên đám mây và giám sát mô hình ngay lập tức. Ngược lại, việc huấn luyện EfficientDet thường đòi hỏi phải điều hướng qua các phức tạp của các API phát hiện đối tượng TensorFlow cũ, điều này có thể tạo ra rào cản học tập lớn cho việc tạo nguyên mẫu nhanh.
Hơn nữa, sự linh hoạt của YOLOv5 mở rộng ra ngoài các khung bao (bounding boxes). Thông qua các bản cập nhật liên tục, khung làm việc Ultralytics hỗ trợ nguyên bản instance segmentation và image classification, cung cấp một API thống nhất cho nhiều tác vụ computer vision.
Các trường hợp sử dụng lý tưởng
- Chọn YOLOv5 khi: Bạn cần tạo nguyên mẫu nhanh, trải nghiệm huấn luyện không ma sát và triển khai biên được tối ưu hóa cao. Nó lý tưởng cho máy bay không người lái, retail analytics và các ứng dụng di động nơi độ trễ thấp là yếu tố then chốt.
- Chọn EfficientDet khi: Bạn vận hành hoàn toàn trong môi trường Google Cloud/TensorFlow AutoML và yêu cầu độ chính xác tối đa trên mỗi tham số mà không có các ràng buộc nghiêm ngặt về độ trễ thời gian thực.
Thế hệ tiếp theo: Đón đầu YOLO26
Trong khi YOLOv5 vẫn là một công cụ đáng tin cậy, bối cảnh computer vision đã tiến xa. Đối với các nhà phát triển tìm kiếm trạng thái kỹ thuật hiện đại nhất vào năm 2026, YOLO26 đại diện cho đỉnh cao mới trong dòng sản phẩm của Ultralytics.
Xây dựng dựa trên di sản của các phiên bản tiền nhiệm (như YOLOv8 và YOLO11), YOLO26 giới thiệu các đổi mới mang tính đột phá:
- Thiết kế End-to-End NMS-Free: YOLO26 loại bỏ hoàn toàn nhu cầu hậu xử lý Non-Maximum Suppression. Điều này làm giảm đáng kể sự biến động độ trễ và đơn giản hóa kiến trúc triển khai.
- Tốc độ suy luận CPU nhanh hơn tới 43%: Được tối ưu hóa mạnh mẽ cho edge AI, nó mang lại tốc độ chưa từng có cho các thiết bị biên công suất thấp và các CPU tiêu chuẩn mà không cần GPU chuyên dụng.
- MuSGD Optimizer: Lấy cảm hứng từ các kỹ thuật huấn luyện Large Language Model (LLM), sự kết hợp giữa SGD và Muon này đảm bảo việc huấn luyện ổn định và hội tụ nhanh chóng.
- Các hàm mất mát tiên tiến: Việc tích hợp ProgLoss và STAL cải thiện đáng kể khả năng nhận diện các mục tiêu nhỏ, điều này rất quan trọng cho hình ảnh từ máy bay không người lái tầm cao và robotics.
- Loại bỏ DFL: Bằng cách loại bỏ Distribution Focal Loss, quy trình xuất mô hình được tinh gọn, tăng cường khả năng tương thích trên các trình tăng tốc phần cứng đa dạng.
Người dùng quan tâm đến việc khám phá các kiến trúc gần đây khác trong hệ sinh thái Ultralytics cũng có thể so sánh các mô hình như YOLOv10 hoặc RT-DETR.
Ultralytics Python API được thiết kế để tương thích ngược và tương lai. Việc nâng cấp từ YOLOv5 lên YOLO26 thực sự đơn giản như việc thay đổi chuỗi trọng số mô hình trong code của bạn!
Ví dụ Code: Training và Inference
Để minh chứng cho sự dễ sử dụng vô song của hệ sinh thái Ultralytics, dưới đây là cách bạn có thể huấn luyện và chạy suy luận bằng một mô hình YOLO hiện đại. Code này có thể chạy 100% và xử lý tự động việc tải xuống tập dữ liệu, vòng lặp huấn luyện và xác thực.
from ultralytics import YOLO
# Load a modern model (Swap 'yolov5s.pt' for 'yolo26n.pt' to test the newest architecture!)
model = YOLO("yolov5s.pt")
# Train the model on the COCO8 example dataset for 20 epochs
results = model.train(data="coco8.yaml", epochs=20, imgsz=640)
# Run inference on an image from the web
inference_results = model("https://ultralytics.com/images/bus.jpg")
# Display the image with bounding boxes
inference_results[0].show()Bằng cách ưu tiên trải nghiệm người dùng, duy trì một hệ sinh thái mạnh mẽ và liên tục vượt qua các giới hạn của những gì có thể đạt được với các bản cập nhật như YOLO26, Ultralytics đảm bảo rằng các nhà phát triển luôn có sẵn những công cụ tốt nhất để giải quyết các thách thức về trí tuệ thị giác trong thế giới thực.