YOLOv8 so với EfficientDet: Đi sâu vào Kiến trúc Phát hiện Đối tượng
Trong bối cảnh thị giác máy tính đang phát triển nhanh chóng, việc lựa chọn mô hình phát hiện đối tượng phù hợp là rất quan trọng để xây dựng các ứng dụng AI thành công. Hai kiến trúc nổi bật đã định hình nên công nghệ tiên tiến nhất vào thời điểm đó là YOLOv8 của Ultralytics và EfficientDet của Google Nghiên cứu. So sánh này khám phá các sắc thái kỹ thuật, số liệu hiệu suất và trường hợp sử dụng lý tưởng cho cả hai mô hình, giúp các nhà phát triển và nhà nghiên cứu đưa ra quyết định sáng suốt cho dự án của họ.
Trong khi EfficientDet giới thiệu các khái niệm đột phá về khả năng mở rộng và hiệu quả của mô hình khi phát hành, Ultralytics YOLOv8 đại diện cho sự phát triển hiện đại hơn, ưu tiên tốc độ suy luận theo thời gian thực, dễ sử dụng và khả năng triển khai thực tế.
So sánh hiệu năng trực tiếp: Tốc độ, Độ chính xác và Hiệu quả
Sự so sánh giữa YOLOv8 và EfficientDet nhấn mạnh một sự thay đổi cơ bản trong triết lý thiết kế. EfficientDet tập trung mạnh vào việc giảm thiểu FLOP (Phép toán dấu chấm động) và số lượng tham số, về mặt lý thuyết giúp nó đạt hiệu quả cao. Ngược lại, YOLOv8 được thiết kế để tối đa hóa thông lượng trên phần cứng hiện đại, tận dụng GPU tính song song để mang lại tốc độ suy luận vượt trội mà không ảnh hưởng đến độ chính xác.
| 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) |
|---|---|---|---|---|---|---|
| YOLOv8n | 640 | 37.3 | 80.4 | 1.47 | 3.2 | 8.7 |
| YOLOv8s | 640 | 44.9 | 128.4 | 2.66 | 11.2 | 28.6 |
| YOLOv8m | 640 | 50.2 | 234.7 | 5.86 | 25.9 | 78.9 |
| YOLOv8l | 640 | 52.9 | 375.2 | 9.06 | 43.7 | 165.2 |
| YOLOv8x | 640 | 53.9 | 479.1 | 14.37 | 68.2 | 257.8 |
| 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ững điểm chính rút ra từ các điểm chuẩn
- Sự thống trị của độ trễ GPU : YOLOv8 các mô hình nhanh hơn đáng kể trên GPU phần cứng. Ví dụ, YOLOv8x đạt được hiệu suất cao hơn mAP (53,9) so với EfficientDet-d7 (53,7) trong khi chạy nhanh hơn khoảng 9 lần trên T4 GPU (14,37ms so với 128,07ms). Điều này làm cho YOLOv8 sự lựa chọn ưu tiên cho các ứng dụng suy luận thời gian thực .
- Độ chính xác so với các tham số: Mặc dù EfficientDet nổi tiếng với hiệu quả của các tham số, YOLOv8 cung cấp độ chính xác cạnh tranh với các mô hình dễ tối ưu hóa hơn. YOLOv8m vượt trội hơn EfficientDet-d4 về độ chính xác (50,2 so với 49,7 mAP ) với tốc độ suy luận vượt trội hơn hẳn, bất chấp sự khác biệt về FLOP.
- Hiệu quả về kiến trúc: Số lượng FLOP thấp hơn của EfficientDet không phải lúc nào cũng chuyển thành độ trễ thấp hơn, đặc biệt là trên GPU nơi chi phí truy cập bộ nhớ và tính song song quan trọng hơn số lượng hoạt động thô. YOLOv8 Kiến trúc được thiết kế để tối đa hóa việc sử dụng phần cứng.
Tối ưu hóa phần cứng
Luôn luôn đo điểm chuẩn (benchmark) các mô hình trên phần cứng mục tiêu của bạn. FLOP lý thuyết là một chỉ số hữu ích để đánh giá độ phức tạp nhưng thường không dự đoán được độ trễ thực tế trên GPU hoặc NPU, nơi băng thông bộ nhớ và khả năng song song hóa đóng vai trò quan trọng hơn. Hãy sử dụng chế độ đo điểm chuẩn YOLO để kiểm tra hiệu suất trên thiết lập cụ thể của bạn.
Ultralytics YOLOv8 Tổng quan
YOLOv8 là sự lặp lại lớn mới nhất trong YOLO (Bạn chỉ nhìn một lần) loạt phim được phát hành bởi Ultralytics , được thiết kế để trở thành một khuôn khổ thống nhất cho việc phát hiện đối tượng, phân đoạn trường hợp và phân loại hình ảnh .
- Tác giả: Glenn Jocher, Ayush Chaurasia, và Jing Qiu
- Tổ chức: Ultralytics
- Ngày: 10 tháng 1 năm 2023
- GitHub: ultralytics / ultralytics
YOLOv8 giới thiệu những cải tiến kiến trúc quan trọng, bao gồm đầu phát hiện không neo , giúp đơn giản hóa quá trình đào tạo và cải thiện khả năng khái quát hóa trên nhiều hình dạng vật thể khác nhau. Hệ thống cũng sử dụng mạng xương sống mới và mạng tổng hợp đường dẫn (PAN-FPN) được thiết kế để tích hợp tính năng phong phú hơn.
Điểm mạnh của YOLOv8
- Hiệu suất hiện đại: Mang lại sự cân bằng vượt trội giữa tốc độ và độ chính xác, thiết lập chuẩn mực trên tập dữ liệu COCO .
- Hệ sinh thái thân thiện với nhà phát triển: Hàm
ultralyticspython gói này cung cấp API hợp lý giúp thống nhất đào tạo, xác thực và triển khai. - Tính linh hoạt: Hỗ trợ nhiều tác vụ (Phát hiện, Phân đoạn, Đặt tư thế, OBB, Phân loại) trong một kho lưu trữ duy nhất.
- Hiệu quả đào tạo: Tận dụng các kỹ thuật như tăng cường Mosaic, YOLOv8 các mô hình hội tụ nhanh hơn và thường yêu cầu ít dữ liệu đào tạo hơn để đạt được độ chính xác cao.
Google Tổng quan về EfficientDet
EfficientDet, được phát triển bởi Google Brain Team là một họ các mô hình phát hiện đối tượng, giới thiệu khái niệm mở rộng hợp chất vào phát hiện đối tượng. Nó đồng thời mở rộng độ phân giải, độ sâu và chiều rộng của mạng để đạt được hiệu suất tối ưu.
- Tác giả: Mingxing Tan, Ruoming Pang, và Quoc V. Le
- Tổ chức: Google Research
- Ngày: 20 tháng 11 năm 2019
- ArXiv: EfficientDet: Phát hiện đối tượng hiệu quả và có khả năng mở rộng
EfficientDet được xây dựng trên nền tảng EfficientNet và giới thiệu BiFPN (Mạng kim tự tháp tính năng hai chiều), cho phép kết hợp tính năng đa quy mô dễ dàng và nhanh chóng.
Điểm mạnh của EfficientDet
- Hiệu quả tham số: Đạt được độ chính xác cao với tương đối ít tham số và FLOP.
- Khả năng mở rộng: Hàm
d0đếnd7Phương pháp mở rộng quy mô cung cấp một cách có hệ thống để đánh đổi tài nguyên lấy độ chính xác. - BiFPN: Mạng lưới kim tự tháp tính năng cải tiến có thể kết hợp hiệu quả các tính năng ở nhiều độ phân giải khác nhau.
So sánh kiến trúc
Sự khác biệt về kiến trúc giữa YOLOv8 và EfficientDet quyết định đặc điểm hiệu suất và tính phù hợp của chúng đối với các nhiệm vụ khác nhau.
Backbone và Feature Fusion
- YOLOv8 sử dụng xương sống CSPDarknet đã được sửa đổi với mô-đun C2f , thay thế mô-đun C3 từ YOLOv5 . Thiết kế này cải thiện luồng gradient và được tối ưu hóa cao cho GPU sự song song.
- EfficientDet sử dụng xương sống EfficientNet kết hợp với BiFPN . BiFPN sử dụng các trọng số có thể học được để hợp nhất các tính năng từ nhiều cấp độ khác nhau. Về mặt lý thuyết, điều này hiệu quả nhưng lại liên quan đến các mẫu truy cập bộ nhớ phức tạp, không đều, có thể làm chậm quá trình suy luận trên GPU.
Đầu dò tìm (Detection Head)
- YOLOv8 sử dụng kiến trúc đầu tách rời , tách biệt các tác vụ kiểm tra tính đối tượng, phân loại và hồi quy. Quan trọng hơn, nó không cần neo , dự đoán trực tiếp tâm đối tượng. Điều này loại bỏ nhu cầu điều chỉnh hộp neo thủ công và giảm số lượng siêu tham số.
- EfficientDet sử dụng phương pháp dựa trên neo. Mặc dù hiệu quả, các phương pháp dựa trên neo thường yêu cầu hiệu chuẩn cẩn thận kích thước neo và tỷ lệ khung hình cho các tập dữ liệu cụ thể, làm tăng thêm độ phức tạp cho quy trình đào tạo .
Dễ sử dụng và hệ sinh thái
Một trong những yếu tố khác biệt quan trọng nhất là hệ sinh thái xung quanh các mô hình. Ultralytics đã tập trung mạnh vào việc dân chủ hóa AI, đảm bảo rằng YOLOv8 có thể sử dụng được cho cả người mới bắt đầu và chuyên gia.
Các Ultralytics Kinh nghiệm
API Python Ultralytics cho phép người dùng tải, huấn luyện và triển khai các mô hình chỉ với vài dòng mã. Hệ sinh thái này tích hợp liền mạch với các công cụ như Weights & Biases để theo dõi thử nghiệm và Roboflow để quản lý tập dữ liệu.
from ultralytics import YOLO
# Load a YOLOv8 model
model = YOLO("yolov8n.pt")
# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on an image
results = model("path/to/image.jpg")
Ngược lại, EfficientDet thường được tìm thấy trong các kho lưu trữ hướng đến nghiên cứu (như bản gốc TensorFlow thực hiện). Mặc dù mạnh mẽ, nhưng các triển khai này thường yêu cầu nhiều mã mẫu hơn, các tệp cấu hình phức tạp và kiến thức sâu hơn về khuôn khổ cơ bản ( TensorFlow /Keras) để đào tạo trên các tập dữ liệu tùy chỉnh .
Khả năng xuất khẩu
Ultralytics các mô hình hỗ trợ xuất một cú nhấp chuột sang nhiều định dạng bao gồm ONNX , TensorRT , CoreML , Và TFLite . Tính linh hoạt này rất quan trọng để triển khai các mô hình vào nhiều môi trường khác nhau, từ máy chủ đám mây đến thiết bị biên Raspberry Pi .
Các trường hợp sử dụng lý tưởng
Khi nào nên chọn YOLOv8
YOLOv8 là lựa chọn được khuyến nghị cho phần lớn các ứng dụng thị giác máy tính hiện nay do sự cân bằng giữa tốc độ và độ chính xác.
- Ứng dụng thời gian thực: Lái xe tự động, giám sát video và robot trong đó độ trễ là yếu tố quan trọng.
- Triển khai Edge: Đang chạy trên NVIDIA Jetson, thiết bị di động hoặc đơn vị tính toán biên nơi hiệu quả và tốc độ là tối quan trọng.
- Nguyên mẫu nhanh: Khi bạn cần chuyển từ tập dữ liệu sang mô hình đã triển khai một cách nhanh chóng bằng cách sử dụng một khuôn khổ đáng tin cậy và được ghi chép đầy đủ.
- Yêu cầu đa nhiệm vụ: Nếu dự án của bạn liên quan đến phân đoạn hoặc ước tính tư thế , YOLOv8 xử lý những điều này một cách tự nhiên.
Khi nào nên chọn EfficientDet
EfficientDet vẫn có liên quan trong các tình huống thích hợp, đặc biệt là trong nghiên cứu học thuật hoặc bị hạn chế cao CPU môi trường.
- Nghiên cứu lý thuyết: Nghiên cứu kiến trúc mạng hiệu quả và quy luật mở rộng.
- CPU công suất thấp cụ thể: Trong một số trường hợp, số lượng FLOP thấp có thể chuyển thành thời lượng pin tốt hơn trên các CPU có nguồn tài nguyên hạn chế, mặc dù vẫn nên thực hiện đánh giá chuẩn.
Kết luận
Trong khi EfficientDet là thành tựu mang tính bước ngoặt trong thiết kế mạng nơ-ron hiệu quả, YOLOv8 và YOLO11 mới hơn cung cấp gói vượt trội hơn cho phát triển AI hiện đại. YOLOv8 kiến trúc không có mỏ neo, GPU - Thiết kế được tối ưu hóa và hệ sinh thái Ultralytics mạnh mẽ mang lại lợi thế đáng kể về tốc độ phát triển, độ trễ suy luận và tính linh hoạt khi triển khai.
Đối với các nhà phát triển đang tìm cách xây dựng các giải pháp thị giác máy tính tiên tiến vừa nhanh vừa chính xác, Ultralytics YOLO mô hình là sự lựa chọn cuối cùng.
Khám phá các Mô hình Khác
Nếu bạn muốn so sánh các kiến trúc này với các mô hình khác, hãy xem các trang sau:
- YOLOv8 so với YOLOv7
- EfficientDet so với YOLOv7
- YOLOv8 so với YOLOv5
- RT-DETR so với YOLOv8
- YOLO11 so với EfficientDet