So sánh kỹ thuật YOLOX và EfficientDet
Việc lựa chọn mô hình phát hiện đối tượng phù hợp là một quyết định quan trọng, cân bằng độ chính xác, tốc độ suy luận và chi phí tính toán. Trang này cung cấp so sánh kỹ thuật chi tiết giữa YOLOX, một mô hình không neo hiệu suất cao từ Megvii và EfficientDet, một họ trình phát hiện có thể mở rộng và hiệu quả từ Google. Chúng tôi sẽ đi sâu vào sự khác biệt về kiến trúc, số liệu hiệu suất và các trường hợp sử dụng lý tưởng của chúng để giúp bạn chọn mô hình tốt nhất cho dự án thị giác máy tính của mình.
YOLOX: Nhận diện hiệu suất cao không cần Anchor
YOLOX là một mô hình phát hiện đối tượng không neo được phát triển bởi Megvii, nhằm mục đích đơn giản hóa kiến trúc YOLO phổ biến đồng thời đạt được hiệu suất hiện đại. Nó được giới thiệu để thu hẹp khoảng cách giữa nghiên cứu học thuật và các ứng dụng công nghiệp bằng cách cung cấp một thiết kế mạnh mẽ nhưng hợp lý.
Chi tiết kỹ thuật:
- Tác giả: Zheng Ge, Songtao Liu, Feng Wang, Zeming Li, và Jian Sun
- Tổ chức: Megvii
- Date: 2021-07-18
- Arxiv: https://arxiv.org/abs/2107.08430
- GitHub: https://github.com/Megvii-BaseDetection/YOLOX
- Tài liệu: https://yolox.readthedocs.io/en/latest/
Kiến trúc và các tính năng chính
YOLOX giới thiệu một số sửa đổi đáng kể cho framework YOLO truyền thống:
- Thiết Kế Không Dựa trên Anchor: Bằng cách loại bỏ các hộp neo (anchor box) được xác định trước, YOLOX đơn giản hóa quá trình huấn luyện và giảm số lượng siêu tham số cần điều chỉnh. Cách tiếp cận này có thể dẫn đến khả năng tổng quát hóa tốt hơn trên các kích thước và tỷ lệ khung hình đối tượng khác nhau.
- Decoupled Head (Đầu tách lớp): Không giống như các mô hình YOLO trước đây sử dụng một đầu (head) kết hợp cho phân loại và hồi quy, YOLOX sử dụng một đầu tách lớp. Điều này tách biệt các nhiệm vụ phân loại và định vị, được chứng minh là giải quyết được vấn đề sai lệch và cải thiện cả tốc độ hội tụ lẫn độ chính xác.
- Gán nhãn nâng cao: YOLOX kết hợp SimOTA (Simplified Optimal Transport Assignment), một chiến lược gán nhãn động, chọn các mẫu dương tối ưu cho mỗi đối tượng ground-truth trong quá trình huấn luyện. Đây là một phương pháp tiếp cận tiên tiến hơn so với các quy tắc gán nhãn tĩnh.
- Tăng cường mạnh mẽ: Mô hình tận dụng các kỹ thuật tăng cường dữ liệu mạnh mẽ như MixUp và Mosaic để cải thiện tính mạnh mẽ và hiệu suất của nó.
Điểm mạnh và Điểm yếu
Điểm mạnh:
- Hiệu suất cao: YOLOX đạt được sự cân bằng tốt giữa tốc độ và độ chính xác, khiến nó có tính cạnh tranh với các trình phát hiện hiện đại khác cùng thời.
- Đơn giản nhờ loại bỏ Anchor: Thiết kế loại bỏ anchor giúp giảm độ phức tạp của mô hình và công sức kỹ thuật liên quan đến cấu hình hộp neo (anchor box).
- Mô Hình Đã Được Thiết Lập: Là một mô hình nổi tiếng từ năm 2021, nó có một lượng lớn hỗ trợ từ cộng đồng và ví dụ triển khai.
Điểm yếu:
- Tốc độ suy luận: Mặc dù nhanh, nó có thể bị vượt qua bởi các kiến trúc mới hơn, được tối ưu hóa hơn như Ultralytics YOLOv8 và YOLO11, đặc biệt là khi xem xét độ trễ GPU.
- Tính linh hoạt của tác vụ: YOLOX chủ yếu được thiết kế để phát hiện đối tượng. Nó thiếu sự hỗ trợ tích hợp cho các tác vụ thị giác khác như phân đoạn thể hiện, ước tính tư thế hoặc phân loại, vốn là tiêu chuẩn trong các framework hiện đại như Ultralytics.
- Hệ sinh thái bên ngoài: Nó không phải là một phần nguyên bản của hệ sinh thái Ultralytics, điều này có thể có nghĩa là cần nhiều nỗ lực hơn cho việc huấn luyện, triển khai và tích hợp với các công cụ như Ultralytics HUB.
Các trường hợp sử dụng lý tưởng
YOLOX là một lựa chọn vững chắc cho:
- Phát hiện đối tượng tổng quát: Các ứng dụng yêu cầu một bộ phát hiện đáng tin cậy và chính xác, chẳng hạn như trong hệ thống an ninh hoặc phân tích bán lẻ.
- Nền tảng Nghiên cứu: Nó đóng vai trò là một nền tảng tuyệt vời cho các nhà nghiên cứu khám phá các phương pháp phát hiện không mỏ neo và các kỹ thuật gán nhãn nâng cao.
- Tự động hóa công nghiệp: Các tác vụ như kiểm soát chất lượng trong sản xuất, nơi độ chính xác phát hiện là một yêu cầu quan trọng.
EfficientDet: Phát hiện đối tượng hiệu quả và có khả năng mở rộng
EfficientDet, được phát triển bởi nhóm Google Brain, là một họ các mô hình phát hiện đối tượng được thiết kế để có hiệu quả vượt trội. Nó giới thiệu một kiến trúc mới và một phương pháp mở rộng hỗn hợp cho phép nó mở rộng từ các thiết bị biên có tài nguyên hạn chế đến các máy chủ đám mây quy mô lớn trong khi vẫn duy trì tỷ lệ độ chính xác trên hiệu quả vượt trội.
Chi tiết kỹ thuật:
- Tác giả: Mingxing Tan, Ruoming Pang, và Quoc V. Le
- Tổ chức: Google
- Date: 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
Kiến trúc và các tính năng chính
Thiết kế của EfficientDet tập trung vào ba đổi mới chính:
- EfficientNet Backbone: Sử dụng EfficientNet hiệu quả cao làm backbone để trích xuất đặc trưng. Bản thân EfficientNet được thiết kế bằng cách sử dụng tìm kiếm kiến trúc mạng nơ-ron để tối ưu hóa độ chính xác và FLOPs.
- BiFPN (Mạng lưới Kim tự tháp Đặc trưng Hai hướng): Để hợp nhất đặc trưng, EfficientDet giới thiệu BiFPN, một mạng lưới kim tự tháp đặc trưng hai hướng có trọng số. Không giống như các FPN truyền thống, BiFPN cho phép hợp nhất đặc trưng đa tỷ lệ phong phú hơn với ít tham số và tính toán hơn bằng cách kết hợp các trọng số có thể học được cho mỗi đặc trưng đầu vào.
- Compound Scaling: EfficientDet sử dụng một phương pháp compound scaling để điều chỉnh đồng đều độ sâu, độ rộng và độ phân giải cho backbone, mạng đặc trưng và mạng dự đoán. Điều này đảm bảo sự cân bằng và tối ưu giữa độ chính xác và tài nguyên tính toán trên toàn bộ họ mô hình (D0 đến D7).
Điểm mạnh và Điểm yếu
Điểm mạnh:
- Hiệu quả vượt trội: Các mô hình EfficientDet có hiệu quả cao về số lượng tham số và FLOPs, thường đạt được độ chính xác cao hơn các mô hình khác với ngân sách tính toán tương tự.
- Khả năng mở rộng: Họ mô hình cung cấp một loạt các tùy chọn (D0-D7), giúp dễ dàng chọn một mô hình phù hợp với các yêu cầu cụ thể về phần cứng và hiệu suất.
- Độ chính xác cao: Các mô hình EfficientDet lớn hơn đạt được điểm mAP rất cao trên các chuẩn mực tiêu chuẩn như COCO.
Điểm yếu:
- Độ trễ cao hơn: Mặc dù có FLOP thấp, EfficientDet có thể có độ trễ suy luận cao hơn trên GPU so với các mô hình như YOLOX hoặc Ultralytics YOLO, thường được tối ưu hóa tốt hơn cho phần cứng xử lý song song.
- Độ phức tạp khi huấn luyện: Quá trình huấn luyện có thể tốn nhiều tài nguyên và phức tạp hơn so với trải nghiệm được sắp xếp hợp lý được cung cấp bởi các framework như Ultralytics.
- Tính linh hoạt hạn chế: Tương tự như YOLOX, EfficientDet được chuyên biệt hóa cho việc phát hiện đối tượng và không cung cấp một khuôn khổ thống nhất cho các tác vụ thị giác máy tính khác.
Các trường hợp sử dụng lý tưởng
EfficientDet đặc biệt phù hợp cho:
- Edge AI: Các biến thể nhỏ hơn (D0-D2) rất phù hợp để triển khai trên các thiết bị biên hạn chế về tài nguyên, nơi số lượng tham số và bộ nhớ là rất quan trọng.
- Các ứng dụng đám mây: Các biến thể lớn hơn (D5-D7) phù hợp cho các ứng dụng dựa trên đám mây, nơi đạt được độ chính xác tối đa là ưu tiên và độ trễ ít được quan tâm hơn.
- Dự án hạn chế tài nguyên: Bất kỳ ứng dụng nào mà ràng buộc chính là ngân sách tính toán (FLOP) hơn là độ trễ thời gian thực.
So sánh hiệu năng và điểm chuẩn
Khi so sánh YOLOX và EfficientDet, sự đánh đổi giữa tốc độ, độ chính xác và hiệu quả trở nên rõ ràng. Bảng dưới đây cung cấp phân tích chi tiết về hiệu suất trên tập dữ liệu COCO.
Mô hình | Kích thước (pixels) |
mAPval 50-95 |
Tốc độ CPU ONNX (ms) |
Tốc độ T4 TensorRT10 (ms) |
Tham số (M) |
FLOPs (B) |
---|---|---|---|---|---|---|
YOLOXnano | 416 | 25.8 | - | - | 0.91 | 1.08 |
YOLOXtiny | 416 | 32.8 | - | - | 5.06 | 6.45 |
YOLOXs | 640 | 40.5 | - | 2.56 | 9.0 | 26.8 |
YOLOXm | 640 | 46.9 | - | 5.43 | 25.3 | 73.8 |
YOLOXl | 640 | 49.7 | - | 9.04 | 54.2 | 155.6 |
YOLOXx | 640 | 51.1 | - | 16.1 | 99.1 | 281.9 |
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 |
Từ các điểm chuẩn, chúng ta có thể quan sát thấy một số xu hướng chính:
- Tốc độ GPU: Các mô hình YOLOX liên tục thể hiện độ trễ thấp hơn đáng kể (tốc độ nhanh hơn) trên GPU T4 với TensorRT so với các mô hình EfficientDet có mAP tương tự hoặc thậm chí thấp hơn. Ví dụ: YOLOX-l đạt cùng 49.7 mAP như EfficientDet-d4 nhưng nhanh hơn hơn 3.5 lần.
- Hiệu quả tham số: EfficientDet vượt trội về hiệu quả tham số và FLOP. EfficientDet-d3 đạt được 47.5 mAP chỉ với 12.0M tham số, trong khi YOLOX-m cần 25.3M tham số để đạt được mAP tương tự là 46.9. Điều này làm cho EfficientDet trở thành một ứng cử viên mạnh mẽ cho các môi trường có các ràng buộc nghiêm ngặt về kích thước model.
- Độ chính xác so với Đánh đổi về Tốc độ: YOLOX cung cấp sự đánh đổi thuận lợi hơn cho các ứng dụng yêu cầu suy luận theo thời gian thực trên GPU. EfficientDet, mặc dù có độ chính xác cao ở top end (D7), phải trả một giá rất lớn về độ trễ, làm cho các model lớn hơn của nó kém phù hợp hơn cho việc sử dụng theo thời gian thực.
Ultralytics YOLO: Giải pháp Thay thế Được Đề xuất
Trong khi YOLOX và EfficientDet đều là những mô hình mạnh mẽ, các nhà phát triển và nhà nghiên cứu hiện đại thường tìm thấy một giải pháp hấp dẫn hơn trong hệ sinh thái Ultralytics YOLO. Các mô hình như YOLOv8 và YOLO11 mới nhất cung cấp sự kết hợp vượt trội giữa hiệu suất, khả năng sử dụng và tính linh hoạt.
- Dễ sử dụng: Ultralytics cung cấp trải nghiệm người dùng được tinh giản với Python API đơn giản, tài liệu mở rộng và nhiều hướng dẫn.
- Hệ sinh thái được duy trì tốt: Hưởng lợi từ sự phát triển tích cực, hỗ trợ cộng đồng mạnh mẽ, cập nhật thường xuyên và các công cụ tích hợp như Ultralytics HUB để quản lý bộ dữ liệu và huấn luyện.
- Cân bằng hiệu suất: Các mô hình Ultralytics YOLO đạt được sự cân bằng tuyệt vời giữa tốc độ và độ chính xác, phù hợp cho nhiều tình huống triển khai thực tế khác nhau từ thiết bị biên đến máy chủ đám mây.
- Yêu cầu về bộ nhớ: Các mô hình Ultralytics YOLO thường hiệu quả trong việc sử dụng bộ nhớ trong quá trình huấn luyện và suy luận, thường yêu cầu ít bộ nhớ CUDA hơn so với các kiến trúc phức tạp hơn.
- Tính linh hoạt: Các mô hình Ultralytics hỗ trợ nhiều tác vụ ngoài phát hiện, bao gồm phân vùng thể hiện, phân loại hình ảnh, ước tính dáng điệu và phát hiện hộp giới hạn theo hướng (OBB) trong một khuôn khổ duy nhất, thống nhất.
- Hiệu quả huấn luyện: Hưởng lợi từ các quy trình huấn luyện hiệu quả, các weights (trọng số) đã được huấn luyện trước, có sẵn trên nhiều tập dữ liệu khác nhau và tích hợp liền mạch với các công cụ theo dõi thử nghiệm như ClearML và Weights & Biases.
Đối với người dùng tìm kiếm hiệu suất hiện đại kết hợp với tính dễ sử dụng và một hệ sinh thái mạnh mẽ, nên khám phá các mô hình Ultralytics YOLO.
Kết luận: Bạn nên chọn mô hình nào?
Việc lựa chọn giữa YOLOX và EfficientDet phụ thuộc nhiều vào các ưu tiên cụ thể của dự án.
-
YOLOX là một lựa chọn tuyệt vời cho các ứng dụng cần một trình phát hiện đối tượng nhanh và chính xác, đặc biệt là để triển khai dựa trên GPU. Thiết kế không neo của nó đơn giản hóa một số khía cạnh của quy trình phát hiện và nó vẫn là một trình thực hiện mạnh mẽ.
-
EfficientDet tỏa sáng trong các tình huống mà tài nguyên tính toán, chẳng hạn như tham số mô hình và FLOPs, là ràng buộc chính. Kiến trúc có thể mở rộng của nó làm cho nó trở thành một lựa chọn linh hoạt cho các dự án cần triển khai trên một loạt phần cứng với các khả năng khác nhau.
Tuy nhiên, đối với hầu hết các tác vụ thị giác máy tính hiện đại, các mô hình Ultralytics YOLO như YOLOv8 và YOLO11 là lựa chọn ưu việt nhất. Chúng mang lại sự cân bằng vượt trội giữa tốc độ và độ chính xác, cực kỳ dễ sử dụng và được hỗ trợ bởi một hệ sinh thái toàn diện giúp tăng tốc quá trình phát triển từ nghiên cứu đến sản xuất. Tính linh hoạt đa nhiệm của chúng làm cho chúng trở thành một lựa chọn đảm bảo cho tương lai đối với một loạt các giải pháp AI.
So sánh các mô hình khác
Nếu bạn quan tâm đến việc so sánh các mô hình này với các mô hình khác, hãy xem các trang sau:
- YOLOv8 so sánh với YOLOX
- YOLOv10 so sánh với YOLOX
- RT-DETR so với YOLOX
- YOLOv8 so sánh với EfficientDet
- So sánh YOLO11 và EfficientDet
- RT-DETR so với EfficientDet
- YOLOv5 so sánh với EfficientDet