Chuyển đến nội dung

YOLOv5 so với YOLOv8 : Sự phát triển của phát hiện đối tượng thời gian thực

Sự phát triển của phát hiện đối tượng đã được định hình đáng kể bởi YOLO (Bạn chỉ nhìn một lần) là một họ mô hình. Được phát triển bởi Ultralytics , cả hai YOLOv5 Và YOLOv8 đại diện cho những khoảnh khắc quan trọng trong lịch sử thị giác máy tính. Trong khi YOLOv5 đã khẳng định mình là kiến trúc phát hiện được yêu thích và sử dụng rộng rãi nhất trên thế giới do tính đơn giản và tốc độ của nó, YOLOv8 đã giới thiệu một khuôn khổ thống nhất với những cải tiến kiến trúc tiên tiến để hỗ trợ nhiều nhiệm vụ thị giác hơn.

Việc lựa chọn giữa hai nền tảng này phụ thuộc vào các hạn chế cụ thể của dự án, khả năng sẵn có của phần cứng và nhu cầu đa nhiệm. Hướng dẫn này cung cấp phân tích kỹ thuật chuyên sâu để giúp các kỹ sư và nhà nghiên cứu thị giác máy tính đưa ra quyết định đúng đắn.

YOLOv5 : Tiêu chuẩn công nghiệp đã được chứng minh

Tác giả: Glenn Jocher
Tổ chức: Ultralytics
Ngày: 26-06-2020
GitHub: https://github.com/ ultralytics / yolov5
Tài liệu: https://docs. ultralytics .com/models/ yolov5 /

Được phát hành vào giữa năm 2020, YOLOv5 đã cách mạng hóa khả năng tiếp cận phát hiện đối tượng. Đó là lần đầu tiên YOLO Mô hình được triển khai gốc trong PyTorch , khác biệt hoàn toàn so với nền tảng Darknet được sử dụng bởi các phiên bản tiền nhiệm. Sự thay đổi này giúp các nhà phát triển dễ dàng đào tạo, triển khai và thử nghiệm với các tập dữ liệu tùy chỉnh.

YOLOv5 sử dụng xương sống CSPDarknet và là một bộ phát hiện dựa trên neo . Điều này có nghĩa là nó dựa vào các hộp neo được xác định trước để dự đoán vị trí đối tượng. Mặc dù phương pháp này đòi hỏi một số điều chỉnh siêu tham số để đạt hiệu suất tối ưu trên các tập dữ liệu riêng biệt, nhưng nó vẫn rất hiệu quả. Kiến trúc của nó nhấn mạnh vào tốc độ suy luận và khả năng bộ nhớ thấp, khiến nó trở thành lựa chọn ưa thích để triển khai trên phần cứng hạn chế tài nguyên như Raspberry Pi và các thế hệ NVIDIA Jetson đầu tiên.

Điểm mạnh chính của YOLOv5

  • Tính ổn định lâu dài: Nhiều năm sử dụng tích cực trong môi trường sản xuất đã khiến nó trở thành một trong những mô hình thị giác ổn định và không có lỗi nhất hiện có.
  • Tối ưu hóa cạnh: Đặc biệt trên các CPU cũ hơn và bộ xử lý di động cụ thể, YOLOv5 Kiến trúc đơn giản hơn đôi khi có thể cung cấp độ trễ suy luận nhanh hơn.
  • Hệ sinh thái rộng lớn: Cộng đồng hướng dẫn, tích hợp của bên thứ ba và thảo luận trên diễn đàn hỗ trợ khắc phục sự cố và phát triển.

Tìm hiểu thêm về YOLOv5

YOLOv8 : Công cụ đa năng mạnh mẽ

Tác giả: Glenn Jocher, Ayush Chaurasia và 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 /

YOLOv8 đại diện cho một bước tiến đáng kể, được thiết kế không chỉ như một bộ phát hiện đối tượng mà còn là một khuôn khổ toàn diện cho phân đoạn hình ảnh , ước tính tư thế , phân loại và phát hiện hộp giới hạn định hướng (OBB) .

Về mặt kiến trúc, YOLOv8 chuyển sang thiết kế không neo với đầu tách rời , tách biệt các tác vụ đối tượng, phân loại và hồi quy. Nó cũng giới thiệu mô-đun C2f (Cross Stage Partial Bottleneck với 2 phép tích chập), thay thế mô-đun C3 có trong YOLOv5 . Mô-đun C2f cải thiện luồng gradient và hợp nhất tính năng, cho phép mô hình học các mẫu phức tạp hơn mà không làm tăng đáng kể chi phí tính toán.

Điểm mạnh chính của YOLOv8

  • Độ chính xác hiện đại: Luôn đạt được điểm mAP (Độ chính xác trung bình) cao hơn trên COCO và các tập dữ liệu tùy chỉnh so với YOLOv5 .
  • Phát hiện không có điểm neo: Loại bỏ nhu cầu tính toán hoặc điều chỉnh hộp neo, đơn giản hóa quy trình đào tạo và cải thiện khả năng khái quát hóa trên các đối tượng có tỷ lệ khung hình bất thường.
  • Tính linh hoạt: Khả năng chuyển đổi giữa phát hiện, phân đoạn và ước tính tư thế bằng cùng một API giúp giảm đáng kể thời gian phát triển cho các dự án phức tạp.

Tìm hiểu thêm về YOLOv8

Phân tích kỹ thuật chuyên sâu: Kiến trúc và hiệu suất

Sự chuyển đổi từ YOLOv5 ĐẾN YOLOv8 được đánh dấu bằng một số thay đổi "bên trong" giúp tăng hiệu suất.

Sự thay đổi về kiến trúc

Sự khác biệt đáng chú ý nhất là đầu phát hiện. YOLOv5 sử dụng đầu ghép nối trong đó phân loại và định vị chia sẻ các tính năng. YOLOv8 sử dụng đầu tách rời , cho phép mạng điều chỉnh trọng số độc lập để xác định vật thể là so với vị trí của nó. Điều này thường dẫn đến khả năng hội tụ tốt hơn và độ chính xác cao hơn.

Hơn nữa, sự tiến hóa xương sống từ C3 đến C2f cho phép YOLOv8 để thu thập thông tin gradient phong phú hơn. Mặc dù điều này làm cho kiến trúc phức tạp hơn một chút, Ultralytics đã tối ưu hóa việc triển khai để đảm bảo hiệu quả đào tạo vẫn cao.

Các chỉ số hiệu suất

Khi so sánh các mô hình trên tập dữ liệu COCO chuẩn, YOLOv8 thể hiện tỷ lệ chính xác tính toán vượt trội.

Mô hìnhKích thước
(pixels)
mAP giá trị
50-95
Tốc độ
CPU ONNX
(ms)
Tốc độ
T4 TensorRT10
(ms)
Tham số
(M)
FLOPs
(B)
YOLOv5n64028.073.61.122.67.7
YOLOv5s64037.4120.71.929.124.0
YOLOv5m64045.4233.94.0325.164.2
YOLOv5l64049.0408.46.6153.2135.0
YOLOv5x64050.7763.211.8997.2246.4
YOLOv8n64037.380.41.473.28.7
YOLOv8s64044.9128.42.6611.228.6
YOLOv8m64050.2234.75.8625.978.9
YOLOv8l64052.9375.29.0643.7165.2
YOLOv8x64053.9479.114.3768.2257.8

Như minh họa, YOLOv8n (Nano) đạt được mAP là 37,3, gần như tương đương với YOLOv5 lớn hơn (Nhỏ) đạt 37,4 điểm, nhưng có số FLOP ít hơn đáng kể. Hiệu quả này rất quan trọng đối với các ứng dụng AI biên hiện đại.

Phương pháp luận đào tạo và Hệ sinh thái

Một trong những đặc điểm xác định của Ultralytics mô hình tập trung vào trải nghiệm của nhà phát triển. Cả hai mô hình đều được hưởng lợi từ Ultralytics hệ sinh thái, nhưng cách tiếp cận chúng hơi khác nhau một chút.

Dễ sử dụng và API

YOLOv8 giới thiệu ultralytics Python gói, một gói thống nhất CLI Và Python giao diện. Gói này quản lý hiệu quả các phụ thuộc và cung cấp API nhất quán cho đào tạo, xác thực, và dự đoán. Thật thú vị, hiện đại ultralytics gói cũng có thể tải và chạy YOLOv5 mô hình, thu hẹp khoảng cách giữa các thế hệ.

from ultralytics import YOLO

# Load a YOLOv8 model (Official)
model_v8 = YOLO("yolov8n.pt")

# Load a YOLOv5 model (Legacy support via Ultralytics package)
model_v5 = YOLO("yolov5nu.pt")

# Training is identical for both
results = model_v8.train(data="coco8.yaml", epochs=100)

Bộ nhớ và Hiệu quả

So với các mô hình dựa trên máy biến áp như RT-DETR , cả hai YOLOv5 Và YOLOv8 có hiệu quả về bộ nhớ đặc biệt. Máy biến áp thường yêu cầu đáng kể CUDA trí nhớ và thời gian đào tạo dài hơn để hội tụ. Ngược lại, Ultralytics YOLO các mô hình được tối ưu hóa để chạy trên GPU cấp tiêu dùng và thậm chí cả CPU, giúp phổ cập khả năng tiếp cận AI hiệu suất cao.

Hệ sinh thái tích hợp

Cả hai mô hình đều hoàn toàn tương thích với Ultralytics HUB , cho phép quản lý tập dữ liệu liền mạch, trực quan hóa mô hình và triển khai chỉ bằng một cú nhấp chuột vào các thiết bị thực tế.

Các trường hợp sử dụng lý tưởng

Việc lựa chọn mô hình phù hợp thường phụ thuộc vào môi trường cụ thể nơi mô hình sẽ được triển khai.

Khi nào nên lựa chọn YOLOv5

YOLOv5 vẫn là sự lựa chọn tuyệt vời cho:

  • Hệ thống kế thừa: Cập nhật các đường ống hiện có khi cơ sở hạ tầng đã được xây dựng xung quanh YOLOv5 ngành kiến trúc.
  • Phần cứng Edge cụ thể: Một số trình điều khiển NPU (Bộ xử lý thần kinh) cũ hơn có hỗ trợ được tối ưu hóa cao dành riêng cho YOLOv5 ngành kiến trúc.
  • Độ trễ cực thấp: Trong các tình huống mà mỗi mili giây CPU suy luận đếm, đầu ghép nối đơn giản hơn của YOLOv5n đôi khi có thể cung cấp lợi thế về tốc độ thô so với v8n.

Khi nào nên lựa chọn YOLOv8

YOLOv8 là lựa chọn được đề xuất cho:

  • Những phát triển mới: Bắt đầu một dự án ngày hôm nay, YOLOv8 (hoặc YOLO11 mới hơn) cung cấp một lộ trình tốt hơn cho tương lai.
  • Nhiệm vụ phức tạp: Ứng dụng yêu cầu phân đoạn phiên bản (ví dụ: phân tích tế bào y tế) hoặc phát hiện điểm chính (ví dụ: phân tích thể thao).
  • Yêu cầu độ chính xác cao: Các tình huống mà việc thiếu phát hiện là rất quan trọng, chẳng hạn như trong hệ thống an toàn xe tự hành hoặc giám sát an ninh.

Kết luận

Cả hai YOLOv5 Và YOLOv8 là minh chứng cho Ultralytics 'cam kết đổi mới mã nguồn mở. YOLOv5 vẫn là một huyền thoại trong lĩnh vực này—đáng tin cậy, nhanh chóng và được hỗ trợ rộng rãi. Tuy nhiên, YOLOv8 cải thiện nền tảng này với những tiến bộ về kiến trúc, mang lại độ chính xác cao hơn và tính linh hoạt cao hơn mà không làm mất đi tính dễ sử dụng mà các nhà phát triển mong đợi.

Đối với phần lớn các dự án mới, chúng tôi khuyên bạn nên tận dụng những tiến bộ trong YOLOv8 hoặc nâng cấp lên YOLO11 mới nhất, giúp cải thiện các khái niệm này hơn nữa để đạt được sự cân bằng tối ưu giữa tốc độ và độ chính xác.

Khám phá các Mô hình Khác

Nếu bạn quan tâm đến việc khám phá công nghệ phát hiện mới nhất, hãy cân nhắc tìm hiểu:

  • YOLO11 : Sự phát triển mới nhất, cung cấp khả năng xử lý nhanh hơn và cải thiện khả năng trích xuất tính năng YOLOv8 .
  • RT-DETR : Một mô hình dựa trên máy biến áp cung cấp độ chính xác cao cho các ứng dụng thời gian thực, lý tưởng khi GPU bộ nhớ ít bị hạn chế hơn.

Bình luận