YOLOv9 so với YOLOv10 : So sánh kỹ thuật để phát hiện đối tượng
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 đối với các nhà phát triển và nhà nghiên cứu, cân bằng giữa nhu cầu về độ chính xác cao với những hạn chế của suy luận thời gian thực và tài nguyên tính toán. Hướng dẫn này cung cấp so sánh kỹ thuật chuyên sâu giữa YOLOv9 và YOLOv10 , hai kiến trúc tiên tiến đã vượt qua giới hạn hiệu suất thị giác máy tính vào năm 2024.
Trong khi YOLOv9 tập trung vào các cải tiến về kiến trúc để giải quyết tình trạng tắc nghẽn thông tin học sâu, YOLOv10 giới thiệu một sự thay đổi mô hình với một NMS - Thiết kế miễn phí cho độ trễ tối thiểu. Cả hai mô hình đều được tích hợp hoàn toàn vào gói Ultralytics Python , cho phép người dùng dễ dàng đào tạo, xác thực và triển khai chúng trong một hệ sinh thái thống nhất.
Chỉ số hiệu suất và điểm chuẩn
Sự đánh đổi về hiệu suất giữa hai mô hình này là rõ ràng. YOLOv9 thường đẩy mạnh độ chính xác trung bình ( mAP ) trung bình , đặc biệt là với các biến thể lớn hơn, khiến nó phù hợp với các tình huống mà độ chính xác là tối quan trọng. Ngược lại, YOLOv10 được thiết kế để mang lại hiệu quả, giảm đáng kể độ trễ suy luận và số lượng tham số, lý tưởng cho việc triển khai biên.
Bảng dưới đây minh họa những khác biệt này bằng cách sử dụng tập dữ liệu COCO . Đáng chú ý, YOLOv10n đạt tốc độ đáng kinh ngạc trên GPU T4, trong khi YOLOv9e chiếm ưu thế về độ chính xác phát hiệ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) |
|---|---|---|---|---|---|---|
| YOLOv9t | 640 | 38.3 | - | 2.3 | 2.0 | 7.7 |
| YOLOv9s | 640 | 46.8 | - | 3.54 | 7.1 | 26.4 |
| YOLOv9m | 640 | 51.4 | - | 6.43 | 20.0 | 76.3 |
| YOLOv9c | 640 | 53.0 | - | 7.16 | 25.3 | 102.1 |
| YOLOv9e | 640 | 55.6 | - | 16.77 | 57.3 | 189.0 |
| 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 |
YOLOv9 : Giải quyết nút thắt thông tin
Được phát hành vào tháng 2 năm 2024, YOLOv9 nhắm đến một thách thức lý thuyết cơ bản trong mạng nơ-ron sâu: mất thông tin khi dữ liệu truyền qua các lớp sâu. Mô hình này được thiết kế để đảm bảo mạng lưới giữ lại các đặc điểm thiết yếu cần thiết cho việc phát hiện đối tượng chính xác.
Chi tiết kỹ thuật:
- Tác giả: Chien-Yao Wang, Hong-Yuan Mark Liao
- Tổ chức: Viện Khoa học Thông tin, Academia Sinica
- Ngày: 2024-02-21
- Arxiv: arXiv:2402.13616
- GitHub: WongKinYiu/yolov9
Kiến trúc: PGI và GELAN
YOLOv9 giới thiệu hai khái niệm mang tính đột phá:
- Thông tin Gradient Lập trình (PGI): Một khung giám sát phụ trợ giúp ngăn ngừa mất thông tin trong quá trình huấn luyện. Nó đảm bảo tạo ra các gradient đáng tin cậy để cập nhật trọng số mạng, giải quyết các vấn đề giám sát sâu thường gặp trong các kiến trúc trước đây.
- Mạng Tổng hợp Lớp Hiệu quả Tổng quát (GELAN): Một kiến trúc mới tối đa hóa hiệu quả tham số. GELAN cho phép mô hình đạt được độ chính xác cao hơn với ít tham số hơn so với các thiết kế thông thường bằng cách tối ưu hóa cách tổng hợp các đặc điểm trên các lớp.
Điểm mạnh và Điểm yếu
YOLOv9 vượt trội trong các ứng dụng đòi hỏi độ chính xác cao . Khả năng lưu giữ thông tin chi tiết về đặc điểm của nó giúp nó vượt trội trong việc phát hiện các vật thể nhỏ hoặc điều hướng các cảnh phức tạp. Tuy nhiên, sự tinh tế này đi kèm với sự đánh đổi về độ phức tạp. Các bổ sung kiến trúc như PGI chủ yếu dành cho việc huấn luyện, nghĩa là chúng có thể được loại bỏ trong quá trình suy luận, nhưng tài nguyên huấn luyện có thể cao hơn. Ngoài ra, mặc dù hiệu quả, độ trễ của nó thường cao hơn so với các thiết kế hiệu quả chuyên biệt của YOLOv10 .
YOLOv10 : Thời đại của NMS -Phát hiện miễn phí
YOLOv10 , được phát triển bởi các nhà nghiên cứu tại Đại học Thanh Hoa và ra mắt vào tháng 5 năm 2024, ưu tiên tốc độ thời gian thực và khả năng triển khai toàn diện. Tính năng nổi bật của nó là loại bỏ tình NMS (Non-Maximum Suppression) , một bước hậu xử lý vốn thường là nút thắt cổ chai cho độ trễ suy luận.
Chi tiết kỹ thuật:
- Tác giả: Ao Wang, Hui Chen, Lihao Liu, et al.
- Tổ chức: Đại học Thanh Hoa
- Ngày: 2024-05-23
- Arxiv: arXiv:2405.14458
- GitHub: THU-MIG/yolov10
Kiến trúc: Phân công kép nhất quán
Sự đổi mới cốt lõi của YOLOv10 là Phân công Kép Nhất quán trong quá trình huấn luyện. Mô hình sử dụng chiến lược phân công một-nhiều để giám sát chặt chẽ trong quá trình huấn luyện nhưng chuyển sang phân công một-một để suy luận. Kiến trúc này cho phép mô hình dự đoán trực tiếp hộp giới hạn tối ưu cho từng đối tượng, hiển thị NMS hậu xử lý lỗi thời. Kết hợp với Thiết kế khối được hướng dẫn theo cấp bậc , YOLOv10 giảm thiểu sự dư thừa và chi phí tính toán (FLOP).
Điểm mạnh và Điểm yếu
Ưu điểm chính của YOLOv10 là độ trễ thấp . Bằng cách loại bỏ NMS , độ trễ suy luận trở nên xác định và thấp hơn đáng kể, điều này rất quan trọng đối với xử lý video thời gian thực. Nó cũng tự hào về hiệu quả tham số tuyệt vời, như được thấy trong bảng so sánh, trong đó YOLOv10 Các mô hình đạt được độ chính xác cạnh tranh với ít FLOP hơn. Một điểm yếu tiềm ẩn là việc giới thiệu tương đối mới so với các hệ sinh thái đã được thiết lập, mặc dù việc tích hợp vào Ultralytics giảm thiểu điều này. Nó cũng có tính chuyên môn hóa cao trong việc phát hiện, trong khi các mô hình khác trong hệ sinh thái cung cấp khả năng hỗ trợ đa tác vụ rộng hơn.
Xuất khẩu đầu cuối
Bởi vì YOLOv10 là NMS -miễn phí theo thiết kế, xuất nó sang các định dạng như ONNX hoặc TensorRT thường đơn giản hơn và tạo ra các mô hình đầu cuối "thuần túy" mà không cần các plugin xử lý hậu kỳ phức tạp.
Phân tích so sánh dành cho nhà phát triển
Khi tích hợp các mô hình này vào sản xuất, một số yếu tố thực tế sẽ phát huy tác dụng ngoài các số liệu thô.
Dễ sử dụng và hệ sinh thái
Cả hai mô hình đều được hưởng lợi rất nhiều khi trở thành một phần của hệ sinh thái Ultralytics . Điều này có nghĩa là các nhà phát triển có thể chuyển đổi giữa YOLOv9 Và YOLOv10 chỉ bằng cách thay đổi chuỗi mô hình, sử dụng cùng một quy trình đào tạo , công cụ xác thực và định dạng triển khai .
- Hiệu quả đào tạo: Ultralytics Các mô hình thường yêu cầu ít bộ nhớ hơn so với các máy dò dựa trên máy biến áp , cho phép đào tạo trên GPU tiêu dùng tiêu chuẩn.
- Tính linh hoạt: Trong khi YOLOv9 Và YOLOv10 tập trung vào việc phát hiện, Ultralytics API hỗ trợ các tác vụ khác như phân đoạn thể hiện và ước tính tư thế thông qua các mô hình như YOLO11 Và YOLOv8 , cung cấp bộ công cụ toàn diện cho nhiều dự án AI về thị giác khác nhau.
Các trường hợp sử dụng lý tưởng
Chọn YOLOv9 khi:
- Ứng dụng của bạn đòi hỏi độ chính xác cao nhất có thể (ví dụ: hình ảnh y tế, phát hiện lỗi trong sản xuất).
- Bạn đang làm việc với những người khó tính detect những đối tượng mà việc lưu giữ thông tin là rất quan trọng.
- Độ trễ là mối quan tâm thứ yếu so với độ chính xác.
Chọn YOLOv10 khi:
- Tốc độ là yếu tố then chốt . Các ứng dụng như lái xe tự động, điều hướng bằng robot hoặc phân tích video FPS cao đều được hưởng lợi từ NMS -thiết kế miễn phí.
- Triển khai trên các thiết bị biên (như NVIDIA Jetson hoặc Raspberry Pi) ở đâu CPU / GPU nguồn lực có hạn.
- Bạn cần một thời gian suy luận xác định mà không có sự thay đổi được đưa vào NMS xử lý.
Ví dụ về mã: Chạy cả hai mô hình
Nhờ sự thống nhất Ultralytics API, việc so sánh các mô hình này trên dữ liệu của riêng bạn rất đơn giản. Sau đây Python mã minh họa cách tải và chạy suy luận với cả hai kiến trúc.
from ultralytics import YOLO
# Load a pre-trained YOLOv9 model
model_v9 = YOLO("yolov9c.pt")
# Load a pre-trained YOLOv10 model
model_v10 = YOLO("yolov10n.pt")
# Run inference on an image
results_v9 = model_v9("path/to/image.jpg")
results_v10 = model_v10("path/to/image.jpg")
# Print results
print(f"YOLOv9 Detection: {len(results_v9[0].boxes)}")
print(f"YOLOv10 Detection: {len(results_v10[0].boxes)}")
Kết luận
Cả hai YOLOv9 Và YOLOv10 đại diện cho những cột mốc quan trọng trong lĩnh vực thị giác máy tính. YOLOv9 đẩy mạnh giới hạn lý thuyết về khả năng lưu giữ và độ chính xác của các tính năng, biến nó thành một công cụ mạnh mẽ cho các tác vụ nghiên cứu và đòi hỏi độ chính xác cao. YOLOv10 định nghĩa lại hiệu quả bằng cách loại bỏ NMS nút thắt cổ chai, cung cấp giải pháp hợp lý cho các ứng dụng thời gian thực.
Đối với người dùng đang tìm kiếm sự cân bằng tuyệt đối giữa độ chính xác, tốc độ và tính năng phong phú trên nhiều tác vụ (bao gồm phân đoạn và phân loại), chúng tôi cũng khuyên bạn nên khám phá YOLO11 . Là phiên bản mới nhất từ Ultralytics , YOLO11 tinh chỉnh các thuộc tính tốt nhất của phiên bản tiền nhiệm thành một gói mạnh mẽ, phù hợp với doanh nghiệp, phù hợp với hầu hết mọi ứng dụng AI thị giác.
Khám phá các Mô hình Khác
Các Ultralytics Hệ sinh thái rất rộng lớn. Nếu yêu cầu của dự án bạn khác, hãy cân nhắc các lựa chọn thay thế sau:
- YOLO11 : Mẫu máy hiện đại nhất mang lại hiệu suất vượt trội và tính linh hoạt trong các chức năng Phát hiện, Phân đoạn, Tư thế, OBB và Phân loại.
- YOLOv8 : Một mô hình rất phổ biến và ổn định, được biết đến với khả năng tương thích rộng và hỗ trợ đa tác vụ.
- RT-DETR : Một máy dò dựa trên máy biến áp cung cấp độ chính xác cao mà không cần NMS , đóng vai trò là một giải pháp thay thế cho YOLO kiến trúc cho các trường hợp sử dụng cụ thể.
Bằng cách tận dụng Ultralytics nền tảng này, bạn có thể truy cập vào toàn bộ bộ mô hình này, đảm bảo bạn luôn có công cụ phù hợp cho công việc.