EfficientDet so với RTDETRv2#
Việc lựa chọn kiến trúc tối ưu cho các dự án computer vision đòi hỏi phải điều hướng qua một bối cảnh mạng neural đa dạng. Hướng dẫn này khám phá so sánh kỹ thuật chi tiết giữa hai phương pháp riêng biệt: EfficientDet, một dòng Convolutional Neural Network (CNN) có khả năng mở rộng cao, và RTDETRv2, một model transformer thời gian thực tiên tiến. Chúng tôi đánh giá sự khác biệt về cấu trúc, phương pháp huấn luyện và mức độ phù hợp khi triển khai trên các môi trường phần cứng khác nhau.
Bằng cách hiểu rõ sự đánh đổi giữa hiệu suất cũ và các tính năng transformer hiện đại, các developer có thể đưa ra quyết định sáng suốt. Hơn nữa, chúng tôi sẽ khám phá cách các giải pháp thay thế hiện đại như Ultralytics YOLO26 mới thu hẹp khoảng cách này, mang lại tốc độ, độ chính xác và tính dễ sử dụng chưa từng có.
Tìm hiểu về EfficientDet#
EfficientDet đã cách mạng hóa object detection bằng cách giới thiệu một phương pháp tiếp cận có nguyên tắc để mở rộng model.
- Tác giả: Mingxing Tan, Ruoming Pang và Quoc V. Le
- Tổ chức: Google
- Ngày: 20 tháng 11, 2019
- Arxiv: https://arxiv.org/abs/1911.09070
- GitHub: Google AutoML Repository
- Docs: EfficientDet Documentation
Kiến trúc và các khái niệm cốt lõi#
Về cốt lõi, EfficientDet sử dụng EfficientNet làm backbone và giới thiệu Bi-directional Feature Pyramid Network (BiFPN). BiFPN cho phép hợp nhất các đặc trưng đa quy mô một cách dễ dàng và nhanh chóng bằng cách áp dụng 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. Điều này được kết hợp với phương pháp mở rộng quy mô phức hợp giúp đồng nhất tỷ lệ độ 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 hộp/lớp cùng một lúc.
Điểm mạnh và hạn chế#
Điểm mạnh chính của EfficientDet nằm ở hiệu quả tham số. Tại thời điểm ra mắt, các mô hình như EfficientDet-D0 đã đạt độ chính xác cao hơn với ít tham số và FLOPs hơn so với các phiên bản YOLO trước đó. Điều này làm cho nó cực kỳ hấp dẫn đối với các môi trường có giới hạn tính toán nghiêm ngặt.
Tuy nhiên, EfficientDet dựa vào Non-maximum suppression (NMS) tiêu chuẩn trong quá trình hậu xử lý để lọc các hộp bao quanh chồng chéo, điều này có thể gây ra nút thắt về độ trễ trong các pipeline thời gian thực. Ngoài ra, mặc dù quy trình huấn luyện được ghi chép kỹ lưỡng, việc tinh chỉnh EfficientDet có thể trở nên cồng kềnh so với trải nghiệm nhà phát triển được tối ưu hóa cao độ trong các công cụ hiện đại.
Mặc dù EfficientDet đã mở đường cho các mạng có khả năng mở rộng, việc triển khai các model này trên các NPU hiện đại thường đòi hỏi quá trình tối ưu hóa thủ công rộng rãi. Để triển khai hợp lý hóa, các Ultralytics models mới hơn cung cấp chức năng xuất 1 chạm.
Khám phá RTDETRv2#
RTDETRv2 đại diện cho sự tiến hóa của các kiến trúc dựa trên Transformer, thay đổi mô hình khỏi các CNN dựa trên anchor truyền thống.
- Tác giả: Wenyu Lv, Yian Zhao, Qinyao Chang, Kui Huang, Guanzhong Wang, và Yi Liu
- Tổ chức: Baidu
- Ngày: 24-07-2024
- Arxiv: https://arxiv.org/abs/2407.17140
- GitHub: Kho lưu trữ RT-DETR
- Tài liệu: Tài liệu RTDETRv2
Những tiến bộ trong Transformer#
RTDETRv2 được xây dựng dựa trên cơ sở Real-Time Detection Transformer (RT-DETR). Nó tận dụng các cơ chế chú ý toàn cục, cho phép model hiểu các ngữ cảnh cảnh phức tạp mà không bị ràng buộc cục bộ của các phép tích chập tiêu chuẩn. Lợi thế kiến trúc đáng kể nhất là thiết kế hoàn toàn không cần NMS. Bằng cách dự đoán các đối tượng trực tiếp từ hình ảnh đầu vào, nó đơn giản hóa quy trình suy luận, tránh việc điều chỉnh heuristic bắt buộc bởi hậu xử lý NMS.
Điểm mạnh và điểm yếu#
RTDETRv2 xuất sắc trong các môi trường mật độ cao nơi các đối tượng chồng chéo làm lu mờ các CNN truyền thống. Nó có độ chính xác cao trên các datasets like COCO benchmark phức tạp.
Bất chấp độ chính xác của nó, các model transformer tự nhiên đòi hỏi bộ nhớ đáng kể. Hiệu suất huấn luyện thấp hơn đáng kể; nó đòi hỏi nhiều epoch hơn đáng kể và lượng chiếm dụng bộ nhớ CUDA cao hơn để hội tụ so với các CNN. Điều này làm cho RTDETRv2 ít lý tưởng hơn cho các developer hoạt động với ngân sách đám mây bị hạn chế hoặc những người cần tạo mẫu nhanh chóng.
Huấn luyện các model transformer như RTDETRv2 thường đòi hỏi các GPU cao cấp. Nếu bạn gặp lỗi Out-Of-Memory (OOM), hãy cân nhắc sử dụng các model có yêu cầu bộ nhớ thấp hơn trong quá trình huấn luyện, chẳng hạn như series Ultralytics YOLO.
So sánh benchmark hiệu suất#
Hiểu được các performance metrics thô là cực kỳ quan trọng đối với việc lựa chọn model. Bảng sau đây thể hiện sự so sánh giữa EfficientDet và RTDETRv2 ở các kích thước khác nhau.
| Mô hình | kích thước (pixel) | mAPval 50-95 | Tốc độ CPU ONNX (ms) | Tốc độ T4 TensorRT10 (ms) | params (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 |
| RTDETRv2-s | 640 | 48.1 | - | 5.03 | 20 | 60 |
| RTDETRv2-m | 640 | 51.9 | - | 7.51 | 36 | 100 |
| RTDETRv2-l | 640 | 53.4 | - | 9.76 | 42 | 136 |
| RTDETRv2-x | 640 | 54.3 | - | 15.03 | 76 | 259 |
Các trường hợp sử dụng và Khuyến nghị#
Việc lựa chọn giữa EfficientDet và RT-DETR phụ thuộc vào các yêu cầu dự án cụ thể, các ràng buộc triển khai và sở thích về hệ sinh thái của bạn.
Khi nào nên chọn EfficientDet#
EfficientDet là một lựa chọn mạnh mẽ cho:
- Google Cloud và các đường ống TPU: Các hệ thống được tích hợp sâu với API Google Cloud Vision hoặc hạ tầng TPU, nơi EfficientDet có sự tối ưu hóa gốc.
- Nghiên cứu về Compound Scaling: Các nghiên cứu học thuật tập trung vào việc đánh giá tác động của độ sâu mạng, chiều rộng và khả năng mở rộng độ phân giải cân bằng.
- Triển khai trên thiết bị di động qua TFLite: Các dự án đặc biệt yêu cầu xuất TensorFlow Lite cho Android hoặc các thiết bị Linux nhúng.
Khi nào nên chọn RT-DETR#
RT-DETR được khuyên dùng cho:
- Nghiên cứu phát hiện dựa trên Transformer: Các dự án khám phá cơ chế chú ý và kiến trúc transformer cho phát hiện vật thể end-to-end không cần NMS.
- Các kịch bản độ chính xác cao với độ trễ linh hoạt: Các ứng dụng mà độ chính xác phát hiện là ưu tiên hàng đầu và độ trễ suy luận cao hơn một chút là có thể chấp nhận được.
- Phát hiện vật thể lớn: Các cảnh chủ yếu có vật thể từ trung bình đến lớn, nơi cơ chế chú ý toàn cục của các transformer mang lại lợi thế tự nhiên.
Khi nào nên chọn Ultralytics (YOLO26)#
Đối với hầu hết các dự án mới, Ultralytics YOLO26 mang lại sự kết hợp tốt nhất giữa hiệu suất và trải nghiệm của 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 nhất quán, độ trễ thấp mà không có sự phức tạp của hậu xử lý Non-Maximum Suppression.
- Môi trường chỉ dùng CPU: Các thiết bị không có tăng tốc GPU chuyên dụng, nơi suy luận CPU nhanh hơn tới 43% của YOLO26 mang lại lợi thế quyết định.
- Phát hiện Vật thể Nhỏ: Các kịch bản thử thách như aerial drone imagery hoặc phân tích cảm biến IoT nơi ProgLoss và STAL cải thiện đáng kể độ chính xác trên các vật thể nhỏ xíu.
Lợi thế của Ultralytics: Giới thiệu YOLO26#
Mặc dù EfficientDet và RTDETRv2 đã củng cố vị trí của chúng trong lịch sử computer vision, các môi trường sản xuất hiện đại đòi hỏi sự cân bằng hoàn hảo giữa tốc độ, độ chính xác và trải nghiệm developer đặc biệt. Ultralytics YOLO26 mới được phát hành tổng hợp các khía cạnh tốt nhất của những kiến trúc khác biệt này.
YOLO26 nổi bật bằng cách kết hợp hệ sinh thái hợp lý hóa mà Ultralytics nổi tiếng với cơ chế bên trong mang tính đột phá.
Tại sao chọn YOLO26 thay vì các đối thủ cạnh tranh?#
- Thiết kế End-to-End không cần NMS: Lấy cảm hứng từ các Transformer như RTDETRv2, YOLO26 là end-to-end nguyên bản. Nó loại bỏ hậu xử lý NMS, đảm bảo các pipeline triển khai nhanh hơn, đơn giản hơn mà không gây ra tình trạng phình to tham số như các Transformer thuần túy.
- Bộ tối ưu hóa MuSGD: Lấy cảm hứng từ những đổi mới trong huấn luyện mô hình ngôn ngữ lớn (như Kimi K2 của Moonshot AI), YOLO26 sử dụng sự kết hợp giữa SGD và Muon. Điều này mang lại sự ổn định huấn luyện chưa từng có và tốc độ hội tụ nhanh hơn đáng kể so với các lịch trình kéo dài cần thiết bởi RTDETRv2.
- Tối ưu hóa cho Edge: Với hiệu suất suy luận CPU nhanh hơn tới 43%, YOLO26 được xây dựng cho edge AI. Nó dễ dàng vượt trội hơn các model transformer nặng trên phần cứng bị hạn chế như điện thoại di động và camera thông minh.
- Loại bỏ DFL: Việc loại bỏ Distribution Focal Loss giúp đơn giản hóa biểu đồ model, tạo điều kiện thuận lợi cho việc xuất TensorRT và ONNX liền mạch.
- ProgLoss + STAL: Các hàm mất mát tiên tiến này mang lại những cải tiến đáng chú ý trong việc nhận dạng đối tượng nhỏ, giải quyết một nút thắt phổ biến trong hình ảnh trên không và robot.
- Tính đa năng: Khác với RTDETRv2 chủ yếu tập trung vào detection, YOLO26 hỗ trợ nguyên bản instance segmentation, pose estimation, image classification và oriented bounding boxes (OBB) với các cải tiến cụ thể theo tác vụ như RLE cho pose và loss góc chuyên dụng cho OBB.
Tận dụng Ultralytics Platform, bạn có thể quản lý các dataset của mình, huấn luyện các model như YOLO26 hoặc YOLO11 trên đám mây và triển khai chúng một cách liền mạch thông qua các API linh hoạt.
Mã nguồn đơn giản với Ultralytics#
Ultralytics Python API được bảo trì tốt giúp cho việc huấn luyện và suy luận model trở nên tầm thường. Các developer có thể dễ dàng benchmark model hoặc khởi chạy các script huấn luyện với mã boilerplate tối thiểu.
from ultralytics import YOLO
# Load the state-of-the-art YOLO26 model
model = YOLO("yolo26n.pt")
# Train the model on your custom dataset
results = model.train(data="coco8.yaml", epochs=50, imgsz=640)
# Run inference on a test image
predictions = model.predict("image.jpg")Đối với những người quản lý hạ tầng cũ, Ultralytics YOLOv8 được đánh giá cao vẫn là một lựa chọn ổn định và mạnh mẽ, thể hiện độ tin cậy lâu dài của hệ sinh thái Ultralytics. Cho dù bạn đang chạy các thuật toán real-time tracking phức tạp hay phát hiện lỗi đơn giản, việc nâng cấp lên YOLO26 đảm bảo hệ thống của bạn chống lỗi trong tương lai, có độ chính xác cao và tiết kiệm bộ nhớ.