EfficientDet vs YOLOv10: Phân tích sự tiến hóa của các mô hình phát hiện đối tượng
Trong lĩnh vực computer vision đang phát triển nhanh chóng, việc lựa chọn kiến trúc phát hiện đối tượng phù hợp là rất quan trọng để cân bằng giữa độ chính xác, độ trễ và hiệu quả tính toán. Hướng dẫn kỹ thuật toàn diện này so sánh hai mô hình có tầm ảnh hưởng lớn: EfficientDet của Google và YOLOv10 của Đại học Thanh Hoa. Mặc dù cả hai mô hình đều đại diện cho những bước tiến đáng kể trong việc phát hiện đối tượng, nhưng chúng tiếp cận thiết kế kiến trúc và model optimization từ các góc độ hoàn toàn khác nhau.
Chúng tôi sẽ khám phá các kiến trúc cốt lõi của chúng, xem xét các tiêu chuẩn hiệu suất trên các tập dữ liệu tiêu chuẩn như COCO và thảo luận về cách chúng tích hợp vào các pipeline machine learning hiện đại, đặc biệt là nêu bật những ưu điểm của hệ sinh thái Ultralytics toàn diện.
EfficientDet: Người tiên phong trong Compound Scaling
Được giới thiệu vào cuối năm 2019, EfficientDet đã đặt ra một tiêu chuẩn mới cho khả năng phát hiện đối tượng có thể mở rộng và độ chính xác cao bằng cách giới thiệu một phương pháp có nguyên tắc để mở rộng các chiều của mạng.
Những cải tiến chính và kiến trúc
- Tác giả: Mingxing Tan, Ruoming Pang, và Quoc V. Le
- Tổ chức: Google Brain
- Ngày: 2019-11-20
- Arxiv: https://arxiv.org/abs/1911.09070
- GitHub: Kho lưu trữ EfficientDet
EfficientDet được xây dựng trên backbone EfficientNet, tận dụng mạng Bi-directional Feature Pyramid Network (BiFPN) mới lạ. Không giống như các Feature Pyramid Networks (FPN) truyền thống cộng các đặc trưng mà không phân biệt tầm quan trọng của chúng, BiFPN sử dụng các trọng số có thể học được để hợp nhất các đặc trưng đa quy mô. Điều này cho phép mạng học hiệu quả xem các đặc trưng độ phân giải nào đóng góp nhiều nhất vào dự đoán cuối cùng. Hơn nữa, EfficientDet sử dụng phương pháp compound scaling để mở rộng đồng nhất độ phân giải, độ sâu và độ rộng cho backbone, mạng đặc trưng và mạng dự đoán box/class cùng một lúc.
Mặc dù EfficientDet vẫn là một lựa chọn vững chắc cho các hệ thống cũ được tích hợp sâu với các pipeline TensorFlow đời cũ, nhưng nó đi kèm với yêu cầu bộ nhớ đáng kể trong quá trình huấn luyện và dựa vào một hệ sinh thái cũ hơn có thể gây cồng kềnh so với các framework động, hiện đại.
YOLOv10: Nhà đổi mới không cần NMS
Được phát hành vào giữa năm 2024, YOLOv10 đã thay đổi căn bản mô hình phát hiện đối tượng thời gian thực bằng cách loại bỏ nhu cầu về Non-Maximum Suppression (NMS) trong quá trình hậu xử lý, giảm đáng kể inference latency.
Những cải tiến chính và kiến trúc
- Tác giả: Ao Wang, Hui Chen, Lihao Liu, và cộng sự.
- Tổ chức: Đại học Thanh Hoa
- Ngày: 2024-05-23
- Arxiv: https://arxiv.org/abs/2405.14458
- GitHub: Kho lưu trữ YOLOv10
YOLOv10 giới thiệu chiến lược gán kép nhất quán cho việc huấn luyện không cần NMS. Bằng cách sử dụng cả gán nhãn một-nhiều và một-một trong quá trình huấn luyện, mạng học cách tạo ra các bounding box khớp độc nhất mà không cần dựa vào NMS để lọc bỏ các bản sao. Thiết kế mô hình dựa trên hiệu suất-độ chính xác toàn diện này làm giảm sự dư thừa tính toán, khiến nó trở thành một ứng cử viên xuất sắc cho edge computing và các ứng dụng phát trực tuyến video có độ trễ thấp. Nó tích hợp liền mạch vào hệ sinh thái Ultralytics, cấp cho các nhà phát triển quyền truy cập vào Python API cực kỳ đơn giản.
Bằng cách loại bỏ bước NMS, YOLOv10 đảm bảo tốc độ suy luận nhất quán bất kể có bao nhiêu đối tượng được phát hiện trong một cảnh, loại bỏ các đột biến độ trễ thường thấy trong các ứng dụng computer vision đông đúc.
So sánh hiệu suất: Độ chính xác, Tốc độ và Hiệu quả
Khi triển khai các mô hình trong các tình huống thực tế, các nhà phát triển phải cân nhắc mean Average Precision (mAP) so với số lượng tham số và các thao tác tính toán (FLOPs). Bảng dưới đây chi tiết các số liệu này trên các biến thể mở rộng của 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) |
|---|---|---|---|---|---|---|
| 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 |
| YOLOv10n | 640 | 39.5 | - | 1.56 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.7 | - | 2.66 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.3 | - | 5.48 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.7 | - | 6.54 | 24.4 | 92.0 |
| YOLOv10l | 640 | 53.3 | - | 8.33 | 29.5 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 12.2 | 56.9 | 160.4 |
Lưu ý: Biến thể YOLOv10n yêu cầu ít tham số hơn đáng kể (2.3M) và đạt tốc độ TensorRT vượt trội (1.56ms) so với các phiên bản EfficientDet đời đầu, khiến nó khả thi hơn nhiều cho real-time inference trong sản xuất.
Tại sao chọn Ultralytics để triển khai mô hình?
Mặc dù cả hai mô hình đều có ý nghĩa lịch sử và cấu trúc, việc tích hợp chúng vào các pipeline hiện đại có thể là một thách thức. Đây là nơi Nền tảng Ultralytics tỏa sáng. Bằng cách cung cấp một hệ sinh thái thống nhất, Ultralytics đơn giản hóa toàn bộ vòng đời—từ gán nhãn dữ liệu đến triển khai.
- Dễ sử dụng: Gói Python của Ultralytics cung cấp một giao diện duy nhất cho huấn luyện mô hình, xác thực và xuất, thay thế hàng trăm dòng mã boilerplate bằng các lệnh ngắn gọn.
- Hệ sinh thái và tính linh hoạt: Trong khi EfficientDet chuyên sâu cho việc phát hiện, các mô hình YOLO của Ultralytics mở rộng tự nhiên sang Instance Segmentation, Pose Estimation, Oriented Bounding Boxes (OBB) và Phân loại.
- Hiệu quả huấn luyện: Tận dụng các kỹ thuật tiên tiến như auto-batching và huấn luyện phân tán, các mô hình Ultralytics huấn luyện nhanh hơn và tiêu tốn ít bộ nhớ CUDA hơn đáng kể so với các kiến trúc transformer nặng hoặc các kiến trúc TF đa nhánh cũ hơn.
Ví dụ mã: Huấn luyện YOLOv10
Việc triển khai YOLOv10 với Ultralytics cực kỳ đơn giản. Đoạn mã sau đây trình bày cách khởi tạo, huấn luyện và đánh giá mạng YOLOv10 hoàn toàn trong Python API.
from ultralytics import YOLO
# Load a pre-trained YOLOv10 model (nano variant for edge speed)
model = YOLO("yolov10n.pt")
# Train the model on the COCO8 dataset
results = model.train(data="coco8.yaml", epochs=50, imgsz=640, batch=16)
# Evaluate the model on the validation set
metrics = model.val()
# Export the model to ONNX for production deployment
model.export(format="onnx")Các trường hợp sử dụng và khuyến nghị
Việc lựa chọn giữa EfficientDet và YOLOv10 phụ thuộc vào các yêu cầu dự án cụ thể, các hạn chế triển khai và tùy chọn hệ sinh thái của bạn.
Khi nào nên chọn EfficientDet
EfficientDet là lựa chọn mạnh mẽ cho:
- Google Cloud và TPU Pipelines: Các hệ thống tích hợp sâu với Google Cloud Vision APIs hoặc hạ tầng TPU, nơi EfficientDet có sự tối ưu hóa nguyên bản.
- Nghiên cứu về Compound Scaling: Các đánh giá học thuật tập trung vào việc nghiên cứu ảnh hưởng của sự cân bằng giữa độ sâu mạng, chiều rộng và mở rộng độ phân giải.
- Triển khai trên di động thông qua TFLite: Các dự án yêu cầu cụ thể việc xuất TensorFlow Lite cho các thiết bị Android hoặc Linux nhúng.
Khi nào nên chọn YOLOv10
YOLOv10 được khuyến nghị cho:
- Nhận diện thời gian thực không cần NMS: Các ứng dụng hưởng lợi từ việc nhận diện end-to-end mà không cần Non-Maximum Suppression, giảm bớt độ phức tạp khi triển khai.
- Cân bằng giữa tốc độ và độ chính xác: Các dự án yêu cầu sự cân bằng tốt giữa tốc độ suy luận và độ chính xác nhận diện trên nhiều quy mô mô hình khác nhau.
- Ứng dụng yêu cầu độ trễ nhất quán: Các kịch bản triển khai nơi thời gian suy luận có thể dự đoán được là rất quan trọng, chẳng hạn như robotics hoặc các hệ thống tự hành.
Khi nào nên chọn Ultralytics (YOLO26)
Đối với hầu hết các dự án mới, Ultralytics YOLO26 cung cấp sự kết hợp tốt nhất giữa hiệu suất và trải nghiệm nhà phát triển:
- Triển khai Edge không cần NMS: Các ứng dụng yêu cầu suy luận ổn định, độ trễ thấp mà không cần sự phức tạp của việc hậu xử lý Non-Maximum Suppression.
- Môi trường chỉ sử dụng CPU: Các thiết bị không có GPU tăng tốc chuyên dụng, nơi tốc độ suy luận trên CPU nhanh hơn tới 43% của YOLO26 mang lại lợi thế quyết định.
- Nhận diện đối tượng nhỏ: Các kịch bản thách thức như ảnh drone trên không hoặc phân tích cảm biến IoT nơi ProgLoss và STAL tăng cường đáng kể độ chính xác trên các đối tượng cực nhỏ.
Tương lai ở đây: Chào mừng Ultralytics YOLO26
Trong khi YOLOv10 giới thiệu thiết kế không cần NMS mang tính cách mạng, công nghệ đã phát triển. Được phát hành vào tháng 1 năm 2026, Ultralytics YOLO26 đại diện cho trạng thái nghệ thuật cuối cùng cho AI thị giác. Nó hợp nhất các khía cạnh tốt nhất của các kiến trúc trước đó—như khả năng đa tác vụ của YOLO11 và sự ổn định của RT-DETR—thành một cỗ máy đơn lẻ, được tối ưu hóa cao.
Nếu bạn đang bắt đầu một dự án mới, chúng tôi thực sự khuyên bạn nên nâng cấp lên YOLO26. Nó cung cấp sự linh hoạt và dễ sử dụng chưa từng có thông qua Nền tảng Ultralytics.
Các bước đột phá chính trong YOLO26:
- Thiết kế End-to-End không cần NMS: Dựa trên nền tảng do YOLOv10 đặt ra, YOLO26 có thiết kế end-to-end tự nhiên, đơn giản hóa logic triển khai xuống mức tối thiểu.
- Tốc độ suy luận CPU nhanh hơn tới 43%: Với việc loại bỏ Distribution Focal Loss (DFL), YOLO26 cắt giảm đáng kể chi phí tính toán, biến nó thành nhà vua không thể tranh cãi cho các thiết bị edge AI.
- Trình tối ưu hóa MuSGD: YOLO26 vay mượn các cải tiến từ việc huấn luyện Large Language Model (LLM). Bằng cách hợp nhất sự ổn định của SGD với tốc độ của Muon, nó hội tụ nhanh hơn và đáng tin cậy hơn bất kỳ phiên bản tiền nhiệm nào.
- ProgLoss + STAL: Các công thức tổn thất vượt trội giải quyết hiệu quả các vấn đề lâu dài với việc phát hiện đối tượng nhỏ, một lĩnh vực mà EfficientDet thường gặp khó khăn.
Kết luận: Kết hợp các mô hình với các trường hợp sử dụng
Việc lựa chọn giữa các mạng này cuối cùng phụ thuộc vào các hạn chế triển khai của bạn:
- EfficientDet vẫn là một chủ đề quan tâm trong học thuật liên quan đến compound scaling và phù hợp cho các nhà nghiên cứu duy trì các hệ thống TensorFlow hiện có, nơi kích thước trọng số mô hình (trên đĩa) quan trọng hơn tốc độ thời gian chạy.
- YOLOv10 là hiện tượng cho các ứng dụng đòi hỏi độ trễ cực thấp, chẳng hạn như theo dõi đa đối tượng tốc độ cao và giám sát giao thông, nhờ kiến trúc không cần NMS tiên phong của nó.
- Tuy nhiên, YOLO26 là khuyến nghị tối ưu cho các dự án computer vision hiện đại, mang lại Cân bằng hiệu suất cao nhất về độ chính xác, dấu chân bộ nhớ tối thiểu và tính linh hoạt đa tác vụ được hỗ trợ bởi hệ sinh thái Ultralytics mạnh mẽ.