So sánh kỹ thuật YOLOX và EfficientDet
Việc lựa chọn kiến trúc phát hiện đối tượng phù hợp là một quyết định quan trọng trong quá trình phát triển các ứng dụng thị giác máy tính . Hai mô hình đã ảnh hưởng đáng kể đến bối cảnh này là YOLOX và EfficientDet. Mặc dù cả hai đều hướng đến giải quyết vấn đề định vị và phân loại đối tượng trong hình ảnh, nhưng chúng lại tiếp cận nhiệm vụ này với những triết lý thiết kế hoàn toàn khác nhau.
Hướng dẫn này cung cấp so sánh kỹ thuật chuyên sâu giữa YOLOX , một bộ phát hiện không cần neo hiệu suất cao, và EfficientDet , một kiến trúc có khả năng mở rộng tập trung vào hiệu quả. Chúng tôi sẽ phân tích kiến trúc, điểm chuẩn và phương pháp đào tạo của chúng để giúp bạn quyết định mô hình nào phù hợp với các ràng buộc hiện có của mình, đồng thời giới thiệu Ultralytics YOLO11 như một giải pháp thay thế hiện đại, được khuyến nghị cho hiệu suất tiên tiến.
YOLOX: Sự tiến hóa không có mỏ neo
Được phát hành vào năm 2021 bởi các nhà nghiên cứu từ Megvii, YOLOX đại diện cho sự thay đổi trong YOLO (Bạn chỉ nhìn một lần) bằng cách từ bỏ cơ chế dựa trên mỏ neo đã xác định các phiên bản trước đó.
- Tác giả: Zheng Ge, Songtao Liu, Feng Wang, Zeming Li, và Jian Sun
- Tổ chức: Megvii
- Date: 2021-07-18
- Arxiv: YOLOX: Vượt qua chuỗi YOLO năm 2021
- GitHub: Megvii-BaseDetection/YOLOX
Kiến trúc và các cải tiến chính
YOLOX nổi bật với cấu trúc đầu tách rời . Các máy dò truyền thống thường sử dụng đầu ghép nối, trong đó các tác vụ phân loại và định vị dùng chung các tham số, điều này có thể dẫn đến xung đột trong quá trình huấn luyện. YOLOX tách các tác vụ này thành các nhánh khác nhau, cải thiện đáng kể tốc độ hội tụ và độ chính xác cuối cùng.
Tính năng đáng chú ý nhất là thiết kế không cần neo . Bằng cách loại bỏ nhu cầu sử dụng các hộp neo được xác định trước, YOLOX loại bỏ việc điều chỉnh theo kinh nghiệm liên quan đến việc tạo neo. Điều này được kết hợp với SimOTA (Simplified Optimal Transport Assignment), một chiến lược gán nhãn tiên tiến, cho phép gán động các mẫu dương vào các giá trị thực tế, cân bằng quá trình huấn luyện hiệu quả hơn so với phương pháp tĩnh. IoU ngưỡng.
Lợi ích không neo
Việc loại bỏ các hộp neo giúp giảm số lượng tham số thiết kế mà nhà phát triển cần điều chỉnh. Nó cũng tổng quát hóa tốt hơn với các đối tượng có tỷ lệ khung hình bất thường, vì mô hình dự đoán trực tiếp các hộp giới hạn thay vì điều chỉnh hình dạng hộp được thiết lập sẵn.
EfficientDet: Hiệu quả có thể mở rộng
EfficientDet, được phát triển bởi Google Nhóm Brain năm 2019 tập trung vào việc đạt được độ chính xác cao nhất có thể trong phạm vi ngân sách tính toán cụ thể. Nó được xây dựng trên nền tảng EfficientNet và giới thiệu một kỹ thuật hợp nhất tính năng mới.
- Tác giả: Mingxing Tan, Ruoming Pang, và Quoc V. Le
- Tổ chức: Google
- Date: 2019-11-20
- Arxiv: EfficientDet: Phát hiện đối tượng hiệu quả và có khả năng mở rộng
- GitHub: google /automl/efficientdet
Kiến trúc và các cải tiến chính
Cải tiến cốt lõi của EfficientDet là BiFPN (Mạng Kim tự tháp Đặc trưng Hai chiều Có Trọng số). Không giống như Mạng Kim tự tháp Đặc trưng (FPN) truyền thống vốn tính toán các đặc trưng từ các thang đo khác nhau một cách đồng đều, BiFPN giới thiệu các trọng số có thể học được để hiểu tầm quan trọng của các đặc trưng đầu vào khác nhau. Nó cũng cho phép thông tin được truyền đi liên tục theo cả hướng từ trên xuống và từ dưới lên.
EfficientDet cũng sử dụng phương pháp chia tỷ lệ phức hợp . Thay vì chỉ chia tỷ lệ xương sống hoặc độ phân giải hình ảnh, nó chia tỷ lệ đồng đều độ phân giải, độ sâu và chiều rộng của mạng. Điều này tạo ra một họ các mô hình (D0 đến D7) cung cấp đường cong nhất quán về hiệu quả so với độ chính xác, giúp EfficientDet có khả năng thích ứng cao với các tác vụ từ ứng dụng di động đến xử lý đám mây cao cấp.
Phân tích hiệu suất: Tốc độ so với Hiệu quả
Sự khác biệt cơ bản giữa hai mô hình này nằm ở mục tiêu tối ưu hóa của chúng. EfficientDet được tối ưu hóa cho hiệu quả lý thuyết (FLOP và Tham số), điều này thường được chuyển đổi tốt thành CPU hiệu suất trên các thiết bị biên. Ngược lại, YOLOX được tối ưu hóa cho suy luận thông lượng cao trên GPU, tận dụng các toán tử dày đặc mà bộ tăng tốc xử lý tốt.
Bảng dưới đây minh họa sự đánh đổi này. Trong khi EfficientDet-d0 cực kỳ nhẹ về mặt tham số, YOLOX-s mang lại tốc độ suy luận nhanh hơn đáng kể trên phần cứng được tối ưu hóa TensorRT mặc dù có nhiều tham số hơn.
| Mô hình | Kích thước (pixels) | mAP giá trị 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 |
Quan sát quan trọng
- Độ trễ GPU : YOLOX thể hiện hiệu suất vượt trội trên các bộ tăng tốc. YOLOX-l đạt được độ chính xác tương tự (49,7 mAP ) như EfficientDet-d4 nhưng chạy nhanh hơn gần 3,7 lần trên T4 GPU (9,04ms so với 33,55ms).
- Hiệu quả tham số: EfficientDet hoạt động vượt trội khi lưu trữ là yếu tố ràng buộc chính. EfficientDet-d3 cung cấp độ chính xác cao (47,5) mAP ) chỉ với 12 triệu tham số, trong khi để đạt được độ chính xác tương tự với YOLOX đòi hỏi mô hình Trung bình với số tham số gấp đôi.
- Độ phức tạp của đào tạo: YOLOX kết hợp các kỹ thuật tăng cường dữ liệu mạnh mẽ như Mosaic và MixUp về bản chất, giúp đào tạo các mô hình mạnh mẽ từ đầu, trong khi EfficientDet phụ thuộc rất nhiều vào các thuộc tính cụ thể của xương sống EfficientNet và các quy tắc mở rộng hợp chất.
Ultralytics YOLO11 : Sự lựa chọn thay thế vượt trội
Trong khi YOLOX và EfficientDet là những đột phá trong thời đại của chúng, lĩnh vực thị giác máy tính đang phát triển nhanh chóng. Đối với các ứng dụng hiện đại trong năm 2024 và sau đó, Ultralytics YOLO11 cung cấp một giải pháp toàn diện vượt trội hơn cả hai kiến trúc cũ về tốc độ, độ chính xác và khả năng sử dụng.
Tại sao nên chọn Ultralytics YOLO11?
- Cân bằng hiệu suất: YOLO11 được thiết kế để mang lại sự cân bằng tốt nhất có thể giữa tốc độ và độ chính xác. Nó thường ngang bằng hoặc vượt qua độ chính xác cao nhất của EfficientDet-d7 trong khi vẫn duy trì tốc độ suy luận gần với các biến thể YOLOX nhanh nhất.
- Dễ sử dụng: Không giống như các kho lưu trữ nghiên cứu phức tạp của EfficientDet hoặc YOLOX, Ultralytics cung cấp API Python sẵn sàng cho sản xuất. Bạn có thể tải, huấn luyện và triển khai mô hình chỉ trong vài dòng mã.
- Hệ sinh thái được duy trì tốt: Ultralytics Các mô hình được hỗ trợ bởi sự phát triển tích cực, cập nhật thường xuyên và một cộng đồng năng động. Hệ sinh thái tích hợp bao gồm Ultralytics HUB để quản lý tập dữ liệu và đào tạo mô hình liền mạch.
- Tính linh hoạt: Trong khi YOLOX và EfficientDet chủ yếu là các máy dò vật thể, YOLO11 hỗ trợ nhiều tác vụ khác nhau trong một khuôn khổ duy nhất, bao gồm Phân đoạn trường hợp , Ước tính tư thế , Hộp giới hạn định hướng (OBB) và Phân loại.
- Hiệu quả đào tạo: YOLO11 sử dụng các khối kiến trúc tinh vi giúp giảm yêu cầu bộ nhớ trong quá trình đào tạo so với các kiến trúc máy biến áp cũ hoặc kiến trúc xương sống phức tạp. Điều này giúp việc đào tạo các mô hình tiên tiến trên phần cứng tiêu dùng trở nên khả thi.
Bắt đầu với YOLO11
Chạy dự đoán với YOLO11 cực kỳ đơn giản. Đoạn mã sau đây minh họa cách tải một mô hình đã được đào tạo trước và chạy suy luận trên một hình ảnh.
from ultralytics import YOLO
# Load the YOLO11n model (nano version for speed)
model = YOLO("yolo11n.pt")
# Perform object detection on an image
results = model("path/to/image.jpg")
# Display the results
results[0].show()
Các trường hợp sử dụng lý tưởng
- Chỉ chọn EfficientDet nếu bạn đang triển khai trên môi trường cực kỳ hạn chế CPU -chỉ các thiết bị biên mà số lượng FLOP là yếu tố giới hạn tuyệt đối và bạn có các phụ thuộc cũ.
- Chọn YOLOX nếu bạn cần một cơ sở vững chắc cho nghiên cứu học thuật về máy dò không có neo trên GPU nhưng hãy lưu ý rằng thiết lập này phức tạp hơn so với các khuôn khổ hiện đại.
- Hãy chọn Ultralytics YOLO11 cho hầu hết mọi dự án thương mại và nghiên cứu mới. Cho dù bạn đang chế tạo xe tự hành , phân tích thành phố thông minh hay kiểm soát chất lượng sản xuất , YOLO11 cung cấp sự mạnh mẽ, tốc độ và công cụ cần thiết để chuyển từ nguyên mẫu sang sản xuất một cách hiệu quả.
Kết luận
Cả YOLOX và EfficientDet đều đóng góp đáng kể vào sự phát triển của công nghệ phát hiện đối tượng. EfficientDet đã chứng minh rằng việc mở rộng mô hình có thể được thực hiện một cách khoa học và có cấu trúc, trong khi YOLOX đã phổ biến thành công các quy trình phát hiện hoàn toàn không cần neo.
Tuy nhiên, Ultralytics YOLO11 tổng hợp những bài học tốt nhất từ các kiến trúc này—hiệu quả, thiết kế không có điểm neo và GPU Tối ưu hóa—thành một gói thống nhất, thân thiện với người dùng. Với dung lượng bộ nhớ thấp hơn trong quá trình đào tạo, hỗ trợ nhiều tác vụ thị giác máy tính khác nhau và tích hợp liền mạch với các định dạng triển khai như ONNX Và CoreML , Ultralytics YOLO11 là sự lựa chọn được khuyến nghị cho các nhà phát triển hiện nay.
Đọc thêm
Khám phá thêm các so sánh để hiểu rõ hơn về bối cảnh của các mô hình phát hiện đối tượng: