Chuyển đến nội dung

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

Trong thế giới phát triển nhanh chóng của thị giác máy tính , ít cái tên nào có sức ảnh hưởng mạnh mẽ như YOLO (Bạn chỉ nhìn một lần). Đượ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ử phát hiện đối tượng . Trong khi YOLOv5 thiết lập tiêu chuẩn công nghiệp về tính dễ sử dụng và tốc độ khi phát hành vào năm 2020, YOLOv8 ra mắt vào năm 2023 để mở rộng hơn nữa ranh giới về độ chính xác và tính linh hoạt trong kiến trúc.

Bài so sánh toàn diện này khám phá những khác biệt về kỹ thuật, sự phát triển về kiến trúc và các chỉ số hiệu suất của hai mô hình mạnh mẽ này. Cho dù bạn đang duy trì các hệ thống cũ hay xây dựng các giải pháp AI tiên tiến, việc hiểu rõ những khác biệt giữa các phiên bản này là rất quan trọng để đưa ra quyết định triển khai sáng suốt.

Sự tiến hóa của kiến trúc

Sự chuyển đổi từ YOLOv5 ĐẾN YOLOv8 đánh dấu một bước chuyển đáng kể trong triết lý thiết kế, chuyển từ các phương pháp dựa trên neo đã được thiết lập sang phương pháp hiện đại, không neo. Sự phát triển này giải quyết những thách thức chung trong việc đào tạo và khái quát hóa mô hình .

YOLOv5 : Tiêu chuẩn dựa trên neo

YOLOv5 sử dụng sơ đồ phát hiện dựa trên neo . Điều này có nghĩa là mô hình dự đoán các giá trị bù trừ từ các "hộp neo" được xác định trước, phù hợp với tập dữ liệu cụ thể. Mặc dù rất hiệu quả, phương pháp này thường yêu cầu tính toán kích thước neo tối ưu cho các tập dữ liệu tùy chỉnh, một quy trình được gọi là "tự động neo".

  • Backbone: Sử dụng xương sống CSPDarknet53 với lớp Focus (trong các phiên bản trước) hoặc lớp stem (trong các phiên bản sau) để giảm mẫu hình ảnh.
  • Cổ: Kết hợp PANet (Mạng tổng hợp đường dẫn) để hợp nhất tính năng.
  • Đầu: Cấu trúc đầu được ghép nối trong đó các nhiệm vụ phân loại và định vị chia sẻ các tính năng cho đến các lớp đầu ra cuối cùng.

YOLOv8 : Nhà đổi mới không có mỏ neo

YOLOv8 Giới thiệu đầu phát hiện không cần neo , loại bỏ nhu cầu định nghĩa hộp neo thủ công. Điều này giúp đơn giản hóa quy trình đào tạo và cải thiện hiệu suất trên các đối tượng có hình dạng và tỷ lệ khung hình đa dạng.

  • Mô-đun C2f: Thay thế mô-đun C3 được tìm thấy trong YOLOv5 . Mô-đun C2f (Nút cổ chai một phần xuyên giai đoạn với hai phép tích chập) được thiết kế để cải thiện luồng gradient và khả năng trích xuất tính năng trong khi vẫn duy trì kích thước nhỏ gọn.
  • Đầu tách rời: Không giống như YOLOv5 , YOLOv8 Phân tách các tác vụ đối tượng, phân loại và hồi quy thành các nhánh riêng biệt. Điều này cho phép mỗi nhánh tập trung vào tác vụ cụ thể của mình, dẫn đến độ chính xác cao hơn và hội tụ nhanh hơn.
  • Hàm mất mát: YOLOv8 sử dụng một công cụ phân công nhiệm vụ và phân phối tiêu điểm mất mát, cải tiến hơn nữa cách xử lý các mẫu dương tính và âm tính trong quá trình đào tạo.

YOLO11 : Thế hệ mới nhất

Trong khi YOLOv8 cung cấp những cải tiến đáng kể so với YOLOv5 , Ultralytics tiếp tục đổi mới. YOLO11 mới ra mắt mang lại hiệu quả và độ chính xác cao hơn nữa. Đối với các dự án mới, hãy khám phá YOLO11 được khuyến khích sử dụng để đảm bảo ứng dụng của bạn được hưởng lợi từ những tiến bộ kiến trúc mới nhất.

Phân tích hiệu suất

Khi so sánh hiệu suất, điều cần thiết là phải xem xét cả độ chính xác ( mAP ) và tốc độ suy luận. Bảng dưới đây chứng minh rằng YOLOv8 luôn đạt được Độ chính xác trung bình trung bình ( mAP ) cao hơn trên tập dữ liệu COCO so với YOLOv5 các đối tác có quy mô tương tự, thường có tốc độ suy luận tương đương hoặc tốt hơn.

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)
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
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

Những Điểm Chính

  1. Độ chính xác nhảy vọt: YOLOv8n (Nano) đạt được bước nhảy vọt lớn trong mAP (37.3) so với YOLOv5n (28.0), khiến cho mô hình v8 nhỏ nhất có độ chính xác gần bằng YOLOv5 lớn hơn.
  2. Tính toán hiệu quả: Trong khi YOLOv8 các mô hình có FLOP cao hơn một chút ở một số biến thể, sự đánh đổi này mang lại độ chính xác cao hơn đáng kể, mang lại lợi tức đầu tư tính toán tốt hơn.
  3. Tốc độ suy luận: YOLOv5 vẫn cực kỳ nhanh, đặc biệt là trên phần cứng cũ hơn hoặc hoàn toàn CPU - thiết bị biên dựa trên. Tuy nhiên, YOLOv8 được tối ưu hóa cho GPU và bộ tăng tốc hiện đại như TensorRT , thu hẹp đáng kể khoảng cách tốc độ.

Ultralytics 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
Tài liệu: https://docs. ultralytics .com/models/ yolov8 /
GitHub: https://github.com/ ultralytics / ultralytics

YOLOv8 được thiết kế để trở thành một giải pháp toàn diện, đa năng cho thị giác máy tính. Nó hỗ trợ sẵn một loạt các tác vụ ngoài việc phát hiện đối tượng đơn giản, bao gồm phân đoạn thực thể , ước tính tư thế , phân loại và phát hiện hộp giới hạn định hướng (OBB) .

Điểm mạnh

  • Độ chính xác hiện đại: Mang lại hiệu suất phát hiện vượt trội trên các tiêu chuẩn như COCO và Roboflow 100 .
  • Khung thống nhất: Được xây dựng trên ultralytics Python gói, đảm bảo trải nghiệm đào tạo liền mạch, xác thựcvà triển khai.
  • Thân thiện với nhà phát triển: API cực kỳ trực quan. Việc chuyển đổi giữa các tác vụ (ví dụ: phát hiện sang phân đoạn) thường chỉ yêu cầu thay đổi một đối số duy nhất trong CLI hoặc Python mã số.
  • Hiệu quả đào tạo: Các tính năng như tăng cường dữ liệu "thông minh" và điều chỉnh siêu tham số tự động giúp hợp lý hóa quá trình từ dữ liệu đến mô hình được triển khai.

Điểm yếu

  • Sử dụng tài nguyên: Các biến thể lớn hơn (L và X) có thể sử dụng nhiều tài nguyên hơn trong quá trình đào tạo so với các phiên bản tiền nhiệm v5, yêu cầu nhiều VRAM hơn trên GPU .

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

Ultralytics YOLOv5 : Tiêu chuẩn Di sản

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

YOLOv5 đã cách mạng hóa khả năng tiếp cận AI. Bằng cách tận dụng PyTorch , nó giúp việc đào tạo các bộ phát hiện đối tượng tùy chỉnh trở nên dễ dàng hơn đối với các nhà phát triển có ít kinh nghiệm về học sâu. Hệ sinh thái của nó rất rộng lớn, với hàng nghìn hướng dẫn, tích hợp và triển khai thực tế.

Điểm mạnh

  • Độ ổn định đã được chứng minh: Nhiều năm sử dụng tích cực trong môi trường sản xuất đã tạo nên YOLOv5 một trong những mô hình thị giác ổn định và đáng tin cậy nhất hiện có.
  • Hỗ trợ triển khai rộng rãi: Hỗ trợ rộng rãi cho các định dạng xuất bao gồm ONNX , CoreML , Và TFLite làm cho nó trở nên lý tưởng cho nhiều mục tiêu phần cứng khác nhau, từ điện thoại di động đến Raspberry Pi .
  • Hệ sinh thái cộng đồng: Một cộng đồng lớn đảm bảo rằng các giải pháp cho hầu hết mọi trường hợp hoặc lỗi đều có sẵn trên các diễn đàn và sự cố GitHub .

Điểm yếu

  • Độ chính xác thấp hơn: Là một mô hình từ năm 2020, các chỉ số về độ chính xác của nó thấp hơn so với các kiến trúc mới hơn như v8 và YOLO11 .
  • Quản lý mỏ neo: Yêu cầu tính toán hộp mỏ neo, đây có thể là điểm gây khó khăn cho người dùng có bộ dữ liệu duy nhất hoặc có tính biến đổi cao.

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

Tích hợp mã và dễ sử dụng

Một trong những dấu hiệu đặc trưng của Ultralytics models là API được chia sẻ, hợp lý hóa. Cho dù bạn chọn YOLOv8 vì độ chính xác của nó hoặc YOLOv5 để hỗ trợ di sản của nó, ultralytics Gói này thống nhất quy trình làm việc. Điều này giúp giảm đáng kể rào cản gia nhập và cho phép thử nghiệm dễ dàng.

Bạn có thể đào tạo, xác thực và dự đoán chỉ với một vài dòng Python mã số.

from ultralytics import YOLO

# Load a YOLOv8 model (recommended for new projects)
model_v8 = YOLO("yolov8n.pt")

# Train the model on the COCO8 dataset
results_v8 = model_v8.train(data="coco8.yaml", epochs=100, imgsz=640)

# Run inference on an image
model_v8.predict("https://ultralytics.com/images/bus.jpg", save=True)


# Load a YOLOv5 model (automatically handled by the same package)
model_v5 = YOLO("yolov5su.pt")  # 'u' suffix indicates updated v5 model structure

# The same API works for training and inference
results_v5 = model_v5.train(data="coco8.yaml", epochs=100, imgsz=640)

Lợi ích của hệ sinh thái thống nhất

Bằng cách sử dụng hệ sinh thái Ultralytics thống nhất, bạn có quyền truy cập vào các công cụ mạnh mẽ như Ultralytics HUB để đào tạo và trực quan hóa mô hình không cần mã. Nền tảng này đơn giản hóa việc quản lý và cộng tác dữ liệu, cho phép các nhóm tập trung vào việc giải quyết vấn đề thay vì quản lý cơ sở hạ tầng.

Đề xuất trường hợp sử dụng

Lựa chọn giữa YOLOv8 Và YOLOv5 phụ thuộc vào yêu cầu cụ thể của dự án, hạn chế về phần cứng và mục tiêu phát triển của bạn.

Khi nào nên chọn YOLOv8

  • Dự án mới: Nếu bạn đang bắt đầu từ con số 0, YOLOv8 (hoặc YOLO11 mới hơn) là lựa chọn chiến thắng rõ ràng. Độ chính xác vượt trội của nó đảm bảo ứng dụng của bạn luôn cạnh tranh và mạnh mẽ.
  • Nhiệm vụ phức tạp: Dành cho các ứng dụng yêu cầu ước tính tư thế hoặc phân đoạn , YOLOv8 Hỗ trợ đa tác vụ gốc là không thể thiếu.
  • Nhu cầu độ chính xác cao: Trong các lĩnh vực như hình ảnh y tế hoặc phát hiện khuyết tật, mAP của YOLOv8 có thể làm giảm đáng kể kết quả âm tính giả.

Khi nào nên chọn YOLOv5

  • Bảo trì kế thừa: Nếu bạn có một đường ống sản xuất hiện có được xây dựng xung quanh YOLOv5 đang hoạt động tốt, việc di chuyển có thể không cần thiết ngay lập tức.
  • Hạn chế cực đoan: Đối với các thiết bị có công suất cực thấp, trong đó mỗi mili giây độ trễ đều quan trọng và độ chính xác chỉ là thứ yếu, thì thiết bị nhẹ hơn YOLOv5 Các biến thể Nano vẫn có thể có lợi thế nhỏ về thông lượng thô trên một số CPU cũ hơn.
  • Khả năng tương thích của hướng dẫn: Nếu bạn đang theo một hướng dẫn hoặc khóa học cũ cụ thể dựa nhiều vào hướng dẫn gốc YOLOv5 cấu trúc kho lưu trữ.

Kết luận

Cả hai YOLOv5 Và YOLOv8 minh họa Ultralytics 'Cam kết làm cho AI dễ tiếp cận, nhanh chóng và chính xác. YOLOv5 đã dân chủ hóa việc phát hiện đối tượng, xây dựng một cộng đồng lớn mạnh và thiết lập tiêu chuẩn về khả năng sử dụng. YOLOv8 được xây dựng trên nền tảng này, giới thiệu những cải tiến về kiến trúc mang lại hiệu suất và tính linh hoạt vượt trội.

Đối với đại đa số người dùng, YOLOv8 —hoặc thậm chí là YOLO11 tiên tiến hơn — là lựa chọn được khuyến nghị. Nó mang lại sự cân bằng tốt nhất giữa tốc độ và độ chính xác, được hỗ trợ bởi hệ sinh thái phần mềm hiện đại, giàu tính năng, giúp đơn giản hóa toàn bộ vòng đời học máy.

Để khám phá thêm, hãy xem Hướng dẫn của chúng tôi để biết hướng dẫn chi tiết về triển khai hoặc truy cập GitHub của Ultralytics để đóng góp cho tương lai của AI thị giác.


Bình luận