YOLOv10 so với EfficientDet: So sánh các kiến trúc phát hiện đối tượng thời gian thực
Việc lựa chọn mạng nơ-ron tối ưu cho phát hiện đối tượng là một quyết định quan trọng, quyết định sự thành công của các hệ thống thị giác máy tính hiện đại. Hai kiến trúc nổi bật đã ảnh hưởng đáng kể đến lĩnh vực này là YOLOv10 và EfficientDet. Mặc dù cả hai đều hướng tới việc tối đa hóa độ chính xác trong khi giảm thiểu chi phí tính toán, chúng áp dụng các cách tiếp cận kiến trúc rất khác nhau để đạt được những mục tiêu này.
Hướng dẫn toàn diện này đi sâu vào các thiết kế độc đáo, phương pháp huấn luyện và đặc điểm triển khai của chúng, giúp các lập trình viên và kỹ sư ML đưa ra các quyết định dựa trên dữ liệu cho các ứng dụng thị giác AI. Chúng ta sẽ xem xét cách chúng hoạt động trên phần cứng từ các thiết bị AI biên nhúng cho đến các GPU đám mây mạnh mẽ.
YOLOv10: Người tiên phong không cần NMS
Được phát triển để phá vỡ các giới hạn về độ trễ thời gian thực, YOLOv10 đã giải quyết một trong những nút thắt cổ chai dai dẳng nhất trong dòng YOLO: Non-Maximum Suppression (NMS). Bằng cách loại bỏ bước hậu xử lý này, mô hình đạt được độ trễ cực kỳ dễ dự đoán, điều này rất quan trọng đối với phương tiện tự hành và robot tốc độ cao.
Đổi mới kiến trúc
YOLOv10 giới thiệu cơ chế gán kép nhất quán cho việc huấn luyện không cần NMS. Trong quá trình huấn luyện, nó tận dụng cả các cách gán nhãn một-nhiều và một-một, cho phép mạng học các biểu diễn phong phú trong khi vẫn xuất ra một bounding box tốt nhất duy nhất cho mỗi đối tượng trong quá trình suy luận. Kiến trúc này cũng kết hợp thiết kế hướng đến sự cân bằng giữa hiệu suất và độ chính xác, giúp tinh giản lớp phân loại và giảm bớt sự dư thừa tính toán vốn có trong các phiên bản trước.
Chi tiết mô hình
- 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
- Bài báo: YOLOv10: Real-Time End-to-End Object Detection
- GitHub: THU-MIG/yolov10
- Docs: Tài liệu YOLOv10
Vì YOLOv10 loại bỏ bước NMS, việc xuất mô hình sang các định dạng như định dạng ONNX và NVIDIA TensorRT trở nên dễ dàng hơn về bản chất mà không cần dựa vào các plugin runtime tùy chỉnh để lọc bounding box.
Điểm mạnh:
- Suy luận dễ dự đoán: Việc loại bỏ NMS đảm bảo thời gian suy luận nhất quán bất kể số lượng đối tượng có trong cảnh.
- Mức sử dụng bộ nhớ thấp hơn: So với các mô hình dựa trên Transformer như RT-DETR, YOLOv10 có yêu cầu bộ nhớ thấp hơn đáng kể trong cả quá trình huấn luyện và suy luận.
- Sự cân bằng Tốc độ/Độ chính xác xuất sắc: Được tối ưu hóa đặc biệt cho các kịch bản độ trễ thấp mà không làm ảnh hưởng đến các chỉ số hiệu suất.
Điểm yếu:
- Tập trung vào một tác vụ: Không giống như hệ sinh thái Ultralytics rộng lớn hơn, kho lưu trữ YOLOv10 gốc tập trung mạnh vào phát hiện, thiếu sự hỗ trợ gốc cho phân đoạn đối tượng hoặc ước tính tư thế.
EfficientDet: Có khả năng mở rộng và cân bằng
Được giới thiệu bởi Google Brain, EfficientDet tiếp cận việc phát hiện đối tượng thông qua lăng kính mở rộng mạng có hệ thống. Nó 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ế hợp nhất đặc trưng mới.
Đổi mới kiến trúc
Cốt lõi của EfficientDet là Bi-directional Feature Pyramid Network (BiFPN), cho phép hợp nhất đặc trưng đa quy mô một cách dễ dàng và nhanh chóng. Không giống như các FPN truyền thống chỉ cộng dồn các đặc trưng từ trên xuống dưới, BiFPN giới thiệu các kết nối chéo quy mô hai chiều và các trọng số có thể huấn luyện để học tầm quan trọng của các đặc trưng đầu vào khác nhau. Hơn nữa, EfficientDet sử dụng phương pháp mở rộng hợp nhất (compound scaling) để mở rộng thống nhất độ phân giải, độ sâu và độ rộng cho tất cả các mạng backbone, mạng đặc trưng và mạng dự đoán box/class.
Chi tiết mô hình
- Tác giả: Mingxing Tan, Ruoming Pang, và Quoc V. Le
- Tổ chức: Google Brain
- Ngày: 2019-11-20
- Bài báo: EfficientDet: Scalable and Efficient Object Detection
- GitHub: Google AutoML EfficientDet
Điểm mạnh:
- Hiệu suất cao: Tỷ lệ tham số trên độ chính xác xuất sắc, giúp các biến thể nhỏ hơn từ
-d0đến-d2rất nhẹ. - Mở rộng có nguyên tắc: Việc mở rộng hợp nhất cho phép người dùng dễ dàng chọn kích thước mô hình phù hợp với ngân sách tính toán chính xác của họ.
Điểm yếu:
- Tích hợp framework cũ: Việc triển khai gốc phụ thuộc rất nhiều vào các phiên bản TensorFlow cũ hơn, điều này có thể làm phức tạp hóa các quy trình triển khai hiện đại.
- Huấn luyện chậm hơn: Huấn luyện EfficientDet từ đầu nổi tiếng là chậm và đòi hỏi phải tinh chỉnh siêu tham số cẩn thận so với sự hội tụ nhanh chóng của các kiến trúc YOLO.
- Tốc độ suy luận: Mặc dù hiệu quả về tham số, các thao tác BiFPN phức tạp thường dẫn đến tốc độ suy luận thực tế chậm hơn trên phần cứng tiêu chuẩn so với các mô hình YOLO đã được tối ưu hóa cao.
Hiệu suất và Benchmark
Bài kiểm tra thực sự của các mô hình này nằm ở hiệu suất thực nghiệm của chúng trên các tiêu chuẩn như tập dữ liệu COCO. Bảng dưới đây minh họa những khác biệt quan trọng về số lượng tham số, số phép tính dấu phẩy động (FLOPs) và độ trễ suy luận trên GPU NVIDIA T4.
| Model | kích thước (pixels) | mAPval 50-95 | Tốc độ CPU ONNX (ms) | Tốc độ T4 TensorRT10 (ms) | tham số (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| 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 |
Như đã hiển thị ở trên, YOLOv10 duy trì một lợi thế đáng kể về tốc độ suy luận thô. Ví dụ, YOLOv10-S đạt 46.7 mAP với độ trễ TensorRT chỉ 2.66ms, trong khi EfficientDet-d3 đạt mức 47.5 mAP tương tự nhưng mất gần 20ms—khiến YOLOv10 vượt trội hơn hẳn cho các luồng video thời gian thực hoặc các quy trình sản xuất tốc độ cao.
Các trường hợp sử dụng và khuyến nghị
Việc lựa chọn giữa YOLOv10 và EfficientDet phụ thuộc vào các yêu cầu dự án cụ thể, các hạn chế về triển khai và tùy chọn hệ sinh thái của bạn.
Khi nào nên chọn YOLOv10
YOLOv10 là lựa chọn mạnh mẽ 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 EfficientDet
EfficientDet được khuyến nghị 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 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ỏ.
Tiêu chuẩn hiện đại: Ra mắt Ultralytics YOLO26
Mặc dù YOLOv10 đã giới thiệu mô hình không cần NMS mang tính đột phá và EfficientDet đã thể hiện việc mở rộng có nguyên tắc, bối cảnh thị giác máy tính vẫn tiếp tục phát triển. Đối với các lập trình viên bắt đầu các dự án mới ngay hôm nay, Ultralytics YOLO26 đại diện cho công nghệ tiên tiến không thể tranh cãi. Ra mắt vào tháng 1 năm 2026, nó kết hợp những gì tốt nhất của mọi thế giới vào một gói sản phẩm hoàn thiện, sẵn sàng sản xuất trong Nền tảng Ultralytics.
Tại sao YOLO26 vượt trội hơn các đối thủ cạnh tranh
- Thiết kế End-to-End không cần NMS: YOLO26 áp dụng nguyên bản kiến trúc end-to-end không cần NMS được tiên phong trong YOLOv10, tinh giản việc triển khai và tăng tốc suy luận.
- Tốc độ suy luận trên CPU nhanh hơn tới 43%: Đối với các thiết bị biên thiếu bộ tăng tốc chuyên dụng, YOLO26 được tối ưu hóa đặc biệt để chạy hiệu quả trên các CPU tiêu chuẩn.
- Bộ tối ưu hóa MuSGD nâng cao: Lấy cảm hứng từ các đổi mới trong huấn luyện LLM, YOLO26 sử dụng sự kết hợp giữa SGD và Muon cho khả năng huấn luyện cực kỳ ổn định và hội tụ nhanh chóng, cải thiện đáng kể hiệu quả huấn luyện so với EfficientDet.
- ProgLoss + STAL: Các hàm mất mát cải tiến này mang lại sự tăng cường đáng kể trong khả năng nhận dạng đối tượng nhỏ, vốn là một điểm yếu truyền thống cho cả YOLOv10 và EfficientDet.
- Loại bỏ DFL: Bằng cách loại bỏ Distribution Focal Loss, YOLO26 xuất mô hình mượt mà sang gần như mọi định dạng phần cứng, bao gồm OpenVINO và CoreML.
Hơn nữa, YOLO26 cung cấp sự linh hoạt chưa từng có. Trong khi EfficientDet và YOLOv10 là các mô hình phát hiện thuần túy, YOLO26 xử lý liền mạch oriented bounding boxes, phân loại hình ảnh và phân đoạn đối tượng bằng cách sử dụng cùng một gói Ultralytics Python trực quan.
Dễ sử dụng với Ultralytics
Hệ sinh thái được duy trì tốt do Ultralytics cung cấp đảm bảo trải nghiệm lập trình mượt mà. Việc huấn luyện, xác thực và xuất mô hình sang tích hợp TensorRT chỉ mất vài dòng code.
from ultralytics import YOLO
# Load a pre-trained YOLOv10 model (or upgrade to YOLO26 natively)
model = YOLO("yolov10n.pt")
# Train the model efficiently on a custom dataset
model.train(data="coco8.yaml", epochs=50, imgsz=640)
# Run inference and immediately visualize results
results = model("https://ultralytics.com/images/bus.jpg")
results[0].show()
# Export for rapid deployment
model.export(format="engine", half=True)Kết luận
Khi so sánh YOLOv10 và EfficientDet, sự lựa chọn phụ thuộc lớn vào tùy chọn framework và các hạn chế về tốc độ của bạn. EfficientDet cung cấp một phương pháp có cấu trúc để mở rộng mô hình trong hệ sinh thái TensorFlow. Tuy nhiên, YOLOv10 cung cấp hiệu suất thời gian thực vượt trội, mức sử dụng bộ nhớ thấp hơn và lộ trình triển khai đơn giản hơn nhờ kiến trúc không cần NMS.
Để có sự cân bằng hiệu suất tuyệt đối nhất, tính dễ sử dụng và tính linh hoạt đa tác vụ, việc nâng cấp lên Nền tảng Ultralytics và sử dụng YOLO26 là điều rất được khuyến khích. Nó lấy các cải tiến không cần NMS của YOLOv10, áp dụng các kỹ thuật huấn luyện tiên tiến như bộ tối ưu hóa MuSGD, và gói gọn nó trong một framework mã nguồn mở mạnh mẽ được hỗ trợ bởi một cộng đồng toàn cầu rộng lớn.