YOLOv8 so với YOLOv9 : So sánh kỹ thuật để phát hiện đối tượng
Việc lựa chọn mô hình thị giác máy tính tối ưu là một quyết định then chốt ảnh hưởng đến sự thành công của các dự án AI, cân bằng các yêu cầu về độ chính xác, tốc độ suy luận và hiệu quả tính toán. Hướng dẫn toàn diện này so sánh Ultralytics YOLOv8 , một mô hình linh hoạt và sẵn sàng cho sản xuất, với YOLOv9 , một kiến trúc tập trung vào việc tối đa hóa độ chính xác phát hiện thông qua các gradient mới lạ. Chúng tôi phân tích những điểm khác biệt về kiến trúc, số liệu hiệu suất và các kịch bản triển khai lý tưởng của chúng để giúp bạn đưa ra lựa chọn sáng suốt.
Ultralytics YOLOv8 : Tiêu chuẩn về tính linh hoạt và dễ sử dụng
Ra mắt bởi Ultralytics , YOLOv8 đại diện cho một sự tiến hóa lớn trong YOLO Dòng sản phẩm này được thiết kế không chỉ như một mô hình mà còn là một khuôn khổ hoàn chỉnh cho AI thực tế. Nó ưu tiên trải nghiệm người dùng liền mạch, hiệu suất mạnh mẽ trên toàn bộ phần cứng và hỗ trợ nhiều tác vụ thị giác khác nhau, vượt xa khả năng phát hiện đơn thuần.
- Tác giả: Glenn Jocher, Ayush Chaurasia, Jing Qiu
- Tổ chức: Ultralytics
- Ngày: 2023-01-10
- GitHub: https://github.com/ ultralytics / ultralytics
- Tài liệu: https://docs. ultralytics .com/models/ yolov8 /
Kiến trúc và Hệ sinh thái
YOLOv8 giới thiệu đầu phát hiện không có neo và mô-đun C2f (Phân đoạn chéo với 2 phép tích chập), giúp cải thiện khả năng tích hợp tính năng trong khi vẫn duy trì khả năng thực thi nhẹ. Không giống như các mô hình tập trung vào nghiên cứu, YOLOv8 được xây dựng với mục đích triển khai. Nó hỗ trợ phân loại hình ảnh , phân đoạn thực thể , ước tính tư thế và phát hiện hộp giới hạn định hướng (OBB) .
Sức mạnh thực sự của YOLOv8 nằm trong hệ sinh thái Ultralytics . Các nhà phát triển được hưởng lợi từ API và CLI Python thống nhất, giúp chuẩn hóa việc đào tạo, xác thực và triển khai. Phương pháp "tích hợp pin" này rút ngắn đáng kể thời gian đưa ra thị trường cho các ứng dụng thị giác máy tính .
Điểm mạnh
- Tính linh hoạt vô song: Xử lý phát hiện, phân đoạn, phân loại và ước tính tư thế trong một thư viện duy nhất.
- Sẵn sàng triển khai: Hỗ trợ xuất bản gốc cho ONNX , OpenVINO , TensorRT và CoreML đơn giản hóa việc tích hợp vào các thiết bị biên và máy chủ đám mây.
- Hiệu quả bộ nhớ: Được tối ưu hóa cho CUDA sử dụng bộ nhớ trong quá trình đào tạo so với kiến trúc dựa trên bộ biến áp, giúp nó có thể truy cập được trên GPU tiêu dùng tiêu chuẩn.
- Cân bằng tốc độ-độ chính xác: Cung cấp tốc độ suy luận thời gian thực vượt trội, thường vượt trội hơn các đối thủ cạnh tranh về CPU và phần cứng biên.
- Hỗ trợ tích cực: Được hỗ trợ bởi một cộng đồng nguồn mở lớn và các bản cập nhật thường xuyên từ Ultralytics , đảm bảo khả năng tương thích với các thư viện và phần cứng mới nhất.
YOLOv9 : Đổi mới kiến trúc cho độ chính xác cao
YOLOv9 được phát hành với trọng tâm giải quyết vấn đề "nút thắt thông tin" trong học sâu. Nó giới thiệu các khái niệm lý thuyết nhằm bảo toàn thông tin dữ liệu khi nó đi qua các lớp sâu, chủ yếu nhắm đến giới hạn trên của độ chính xác phát hiện đối tượng.
- Tác giả: Chien-Yao Wang, Hong-Yuan Mark Liao
- Tổ chức: Viện Khoa học Thông tin, Viện Hàn lâm Khoa học Trung Quốc, Đài Loan
- Ngày: 2024-02-21
- Arxiv: https://arxiv.org/abs/2402.13616
- GitHub: https://github.com/WongKinYiu/yolov9
- Tài liệu: https://docs. ultralytics .com/models/yolov9/
Những đổi mới cốt lõi
Kiến trúc của YOLOv9 dựa trên hai thành phần chính: Thông tin Gradient Lập trình (PGI) và Mạng Tổng hợp Lớp Hiệu quả Tổng quát (GELAN) . PGI hoạt động để ngăn ngừa việc mất thông tin đầu vào quan trọng trong quá trình truyền thẳng trong các mạng sâu, đảm bảo tạo ra các gradient đáng tin cậy cho các bản cập nhật. GELAN được thiết kế để tối ưu hóa hiệu quả tham số, cho phép mô hình đạt được độ chính xác cao với khối lượng tính toán đáng kể.
Điểm mạnh
- Độ chính xác cao: Biến thể lớn nhất, YOLOv9 -E, thiết lập các chuẩn mực ấn tượng cho mAP trên tập dữ liệu COCO , nổi trội trong các tình huống đòi hỏi độ chính xác tối quan trọng.
- Hiệu quả tham số: Nhờ GELAN, kích thước trung bình YOLOv9 các mô hình đạt được độ chính xác cạnh tranh với ít tham số hơn so với một số kiến trúc cũ.
- Tiến bộ về mặt lý thuyết: Giải quyết các vấn đề cơ bản trong đào tạo mạng sâu liên quan đến việc bảo quản thông tin.
Điểm yếu
- Tính linh hoạt hạn chế: Chủ yếu tập trung vào phát hiện đối tượng. Mặc dù có khả năng, nhưng nó thiếu sự hỗ trợ gốc, hợp lý cho phân đoạn, tư thế và phân loại như trong lõi. Ultralytics đội hình.
- Đào tạo phức tạp: Việc giới thiệu các nhánh phụ trợ cho PGI có thể khiến quá trình đào tạo tốn nhiều tài nguyên hơn và phức tạp hơn để điều chỉnh so với phương pháp hợp lý hóa YOLOv8 đường ống.
- Tốc độ suy luận: Mặc dù hiệu quả, nhưng độ phức tạp về kiến trúc có thể dẫn đến thời gian suy luận chậm hơn trên một số phần cứng nhất định so với các khối được tối ưu hóa cao được sử dụng trong YOLOv8 .
So sánh trực tiếp hiệu năng
Khi so sánh YOLOv8 Và YOLOv9 , sự lựa chọn thường phụ thuộc vào những hạn chế cụ thể của môi trường triển khai của bạn. YOLOv8 chiếm ưu thế về tốc độ suy luận và tính linh hoạt triển khai, trong khi YOLOv9 đẩy giới hạn của các chỉ số 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) |
|---|---|---|---|---|---|---|
| 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 |
| 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 |
Dữ liệu làm nổi bật sự khác biệt rõ ràng: YOLOv8 cung cấp tốc độ vượt trội , đặc biệt là trên GPU ( TensorRT ) Và CPU ( ONNX ), điều này rất quan trọng đối với các ứng dụng AI biên . Ví dụ, YOLOv8n nhanh hơn đáng kể so với YOLOv9t trên GPU T4 (1,47ms so với 2,3ms). Ngược lại, YOLOv9e đạt mAP cao nhất (55,6%), phù hợp cho xử lý phía máy chủ, nơi độ trễ không quan trọng bằng việc phát hiện các chi tiết nhỏ.
Bạn có biết không?
Ultralytics YOLOv8 được thiết kế với sự hỗ trợ gốc cho tất cả các tác vụ thị giác máy tính chính. Bạn có thể chuyển từ phát hiện đối tượng sang phân vùng thể hiện chỉ bằng cách thay đổi tệp trọng số mô hình (ví dụ, yolov8n.pt đến yolov8n-seg.pt), một mức độ linh hoạt không có sẵn trong tiêu chuẩn YOLOv9 kho lưu trữ.
Các trường hợp sử dụng lý tưởng
Chọn Ultralytics YOLOv8 Nếu như:
- Bạn cần một giải pháp sẵn sàng đưa vào sản xuất: Tài liệu hướng dẫn chi tiết, hỗ trợ cộng đồng và tích hợp sẵn (như MLFlow và TensorBoard ) giúp đơn giản hóa quá trình từ nguyên mẫu đến sản phẩm.
- Tốc độ là yếu tố quan trọng: Đối với phân tích video thời gian thực, điều hướng tự động hoặc ứng dụng di động, YOLOv8 Tốc độ suy luận được tối ưu hóa mang lại lợi thế rõ rệt.
- Bạn cần nhiều nhiệm vụ thị giác: Các dự án liên quan đến ước tính tư thế hoặc phân đoạn cùng với phát hiện được phục vụ tốt nhất bởi YOLOv8 khuôn khổ thống nhất của.
- Có những hạn chế về tài nguyên: YOLOv8 các mô hình được tối ưu hóa cao cho nhiều phần cứng khác nhau, đảm bảo hoạt động hiệu quả trên các thiết bị từ Raspberry Pis đến NVIDIA Gia đình Jetsons.
Chọn YOLOv9 Nếu như:
- Độ chính xác tối đa là thước đo duy nhất: Đối với nghiên cứu học thuật hoặc nhiệm vụ kiểm tra chuyên ngành, trong đó mọi phần trăm trong mAP quan trọng hơn tốc độ hoặc khả năng sử dụng.
- Bạn đang nghiên cứu về kiến trúc: Các khái niệm PGI và GELAN có giá trị đối với các nhà nghiên cứu nghiên cứu luồng gradient trong mạng sâu.
Triển khai mã
Một trong những lợi thế chính của Ultralytics Hệ sinh thái này hỗ trợ cả hai mô hình với cùng một API đơn giản. Điều này cho phép bạn dễ dàng đánh giá chúng trên các tập dữ liệu tùy chỉnh của riêng bạn.
Đây là cách bạn có thể đào tạo một YOLOv8 mô hình chỉ trong vài dòng mã:
from ultralytics import YOLO
# Load a YOLOv8 model
model = YOLO("yolov8n.pt")
# Train the model on your data
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on an image
results = model("path/to/image.jpg")
Bởi vì Ultralytics tích hợp YOLOv9 , bạn có thể hoán đổi chuỗi mô hình thành yolov9c.pt để thử nghiệm với YOLOv9 trong cùng một đường ống mạnh mẽ, mặc dù bản địa YOLOv8 các mô hình thường được hưởng lợi từ sự tích hợp chặt chẽ hơn với các công cụ triển khai.
Kết luận
Đối với đại đa số các nhà phát triển và ứng dụng thương mại, Ultralytics YOLOv8 vẫn là lựa chọn được khuyến nghị . Sự cân bằng vượt trội giữa tốc độ và độ chính xác, kết hợp với hệ sinh thái hoàn thiện và được bảo trì tốt, đảm bảo các dự án luôn sẵn sàng cho tương lai và dễ dàng bảo trì hơn. Khả năng xử lý phát hiện, phân đoạn và ước tính tư thế trong một khuôn khổ duy nhất mang lại tính linh hoạt vượt trội.
Trong khi YOLOv9 giới thiệu các lý thuyết kiến trúc thú vị và đạt được độ chính xác cao, thường được dành riêng cho các lĩnh vực nghiên cứu cụ thể hoặc các tình huống mà độ trễ suy luận không phải là hạn chế.
Đối với những ai đang tìm kiếm công nghệ thị giác máy tính mới nhất, hãy nhớ xem YOLO11 , công nghệ này cải tiến hơn nữa hiệu quả và hiệu suất được thiết lập bởi YOLOv8 Ngoài ra, các nhà nghiên cứu quan tâm đến các phương pháp dựa trên máy biến áp có thể khám phá RT-DETR để có những đánh đổi về mặt kiến trúc khác nhau.
Khám phá thêm các so sánh trên trang so sánh mô hình của chúng tôi.