YOLOv4: Phát hiện vật thể tốc độ cao và chính xác

Chào mừng bạn đến với trang tài liệu Ultralytics dành cho YOLOv4, một mô hình phát hiện vật thể thời gian thực hiện đại được ra mắt năm 2020 bởi Alexey Bochkovskiy tại https://github.com/AlexeyAB/darknet. YOLOv4 được thiết kế để mang lại sự cân bằng tối ưu giữa tốc độ và độ chính xác, khiến nó trở thành lựa chọn tuyệt vời cho nhiều ứng dụng.

Sơ đồ kiến trúc YOLOv4 Sơ đồ kiến trúc YOLOv4. Hiển thị thiết kế mạng lưới phức tạp của YOLOv4, bao gồm các thành phần backbone, neck và head, cùng các lớp liên kết của chúng để phát hiện vật thể thời gian thực tối ưu.

Giới thiệu

YOLOv4 viết tắt của You Only Look Once version 4. Đây là một mô hình phát hiện vật thể thời gian thực được phát triển để giải quyết các hạn chế của những phiên bản YOLO trước đó như YOLOv3 và các mô hình phát hiện vật thể khác. Không giống như các trình phát hiện vật thể dựa trên convolutional neural network (CNN) khác, YOLOv4 không chỉ áp dụng cho các hệ thống gợi ý mà còn cho quản lý quy trình độc lập và giảm thiểu đầu vào từ con người. Việc vận hành trên các graphics processing units (GPU) thông thường cho phép sử dụng hàng loạt với chi phí phải chăng, và nó được thiết kế để hoạt động thời gian thực trên một GPU thông thường trong khi chỉ yêu cầu một GPU như vậy để huấn luyện.

Kiến trúc

YOLOv4 tận dụng một số tính năng sáng tạo hoạt động cùng nhau để tối ưu hóa hiệu suất. Các tính năng này bao gồm Weighted-Residual-Connections (WRC), Cross-Stage-Partial-connections (CSP), Cross mini-Batch Normalization (CmBN), Self-adversarial-training (SAT), Mish-activation, Mosaic data augmentation, DropBlock regularization và hàm mất mát CIoU. Những tính năng này được kết hợp để đạt được kết quả hiện đại nhất.

Một trình phát hiện vật thể điển hình bao gồm nhiều phần bao gồm đầu vào, backbone, neck và head. Backbone của YOLOv4 được huấn luyện trước trên ImageNet và được sử dụng để dự đoán các lớp và bounding boxes của vật thể. Backbone có thể từ nhiều mô hình bao gồm VGG, ResNet, ResNeXt hoặc DenseNet. Phần neck của trình phát hiện được sử dụng để thu thập feature maps từ các giai đoạn khác nhau và thường bao gồm một số đường dẫn bottom-up và top-down. Phần head là nơi được sử dụng để thực hiện các dự đoán và phân loại vật thể cuối cùng.

Bag of Freebies

YOLOv4 cũng sử dụng các phương pháp được gọi là "bag of freebies", đây là các kỹ thuật cải thiện accuracy của mô hình trong quá trình huấn luyện mà không làm tăng chi phí suy luận. Data augmentation là một kỹ thuật bag of freebies phổ biến được sử dụng trong object detection, giúp tăng tính đa dạng của hình ảnh đầu vào để cải thiện độ bền bỉ của mô hình. Một số ví dụ về data augmentation bao gồm biến dạng quang học (điều chỉnh độ sáng, độ tương phản, màu sắc, độ bão hòa và nhiễu của hình ảnh) và biến dạng hình học (thêm thu phóng ngẫu nhiên, cắt, lật và xoay). Những kỹ thuật này giúp mô hình khái quát hóa tốt hơn với các loại hình ảnh khác nhau.

Tính năng và hiệu suất

YOLOv4 được thiết kế cho tốc độ và độ chính xác tối ưu trong phát hiện vật thể. Kiến trúc của YOLOv4 bao gồm CSPDarknet53 làm backbone, PANet làm neck và YOLOv3 làm detection head. Thiết kế này cho phép YOLOv4 thực hiện phát hiện vật thể với tốc độ ấn tượng, giúp nó phù hợp cho các ứng dụng thời gian thực. YOLOv4 cũng vượt trội về độ chính xác, đạt được kết quả hiện đại nhất trong các tiêu chuẩn đánh giá phát hiện vật thể như COCO.

Khi so sánh với các mô hình khác trong dòng YOLO, chẳng hạn như YOLOv5YOLOv7, YOLOv4 duy trì vị thế vững chắc trong việc cân bằng giữa tốc độ và độ chính xác. Mặc dù các mô hình mới hơn có thể mang lại những lợi thế nhất định, các đổi mới về kiến trúc của YOLOv4 vẫn khiến nó phù hợp với nhiều ứng dụng đòi hỏi hiệu suất thời gian thực.

Ví dụ sử dụng

YOLOv4 là mô hình dựa trên Darknet và không được hỗ trợ gốc bởi gói Python Ultralytics: không có trọng số huấn luyện trước yolov4.pt nào được xuất bản trên ultralytics/assets và không có YAMLs ultralytics/cfg/models/v4/ nào. Trang này được giữ lại như một tài liệu tham khảo về kiến trúc. Người dùng quan tâm đến việc chạy YOLOv4 nên tham khảo trực tiếp kho lưu trữ GitHub của YOLOv4 để biết hướng dẫn cài đặt và sử dụng.

Dưới đây là tổng quan ngắn gọn về các bước điển hình bạn có thể thực hiện để sử dụng YOLOv4:

  1. Truy cập kho lưu trữ GitHub của YOLOv4: https://github.com/AlexeyAB/darknet.

  2. Làm theo hướng dẫn được cung cấp trong tệp README để cài đặt. Điều này thường bao gồm việc sao chép (clone) kho lưu trữ, cài đặt các phụ thuộc cần thiết và thiết lập mọi biến môi trường cần thiết.

  3. Sau khi cài đặt hoàn tất, bạn có thể huấn luyện và sử dụng mô hình theo hướng dẫn sử dụng được cung cấp trong kho lưu trữ. Điều này thường bao gồm chuẩn bị tập dữ liệu, cấu hình tham số mô hình, huấn luyện mô hình và sau đó sử dụng mô hình đã huấn luyện để thực hiện phát hiện vật thể.

Xin lưu ý rằng các bước cụ thể có thể khác nhau tùy thuộc vào trường hợp sử dụng cụ thể của bạn và trạng thái hiện tại của kho lưu trữ YOLOv4. Do đó, bạn nên tham khảo trực tiếp các hướng dẫn được cung cấp trong kho lưu trữ GitHub của YOLOv4.

Để huấn luyện và suy luận trong framework Ultralytics, hãy xem YOLO11 hoặc YOLO26.

Kết luận

YOLOv4 là một mô hình phát hiện vật thể mạnh mẽ và hiệu quả, đạt được sự cân bằng giữa tốc độ và độ chính xác. Việc sử dụng các tính năng độc đáo và các kỹ thuật bag of freebies trong quá trình huấn luyện cho phép nó thực hiện xuất sắc các tác vụ phát hiện vật thể thời gian thực. YOLOv4 có thể được huấn luyện và sử dụng bởi bất kỳ ai có GPU thông thường, giúp nó trở nên dễ tiếp cận và thiết thực cho một loạt các ứng dụng bao gồm surveillance systems, autonomous vehiclesindustrial automation.

Đối với những người muốn triển khai phát hiện vật thể trong các dự án của họ, YOLOv4 vẫn là một ứng cử viên mạnh mẽ, đặc biệt là khi hiệu suất thời gian thực là ưu tiên. Mặc dù Ultralytics hiện tập trung vào việc hỗ trợ các phiên bản YOLO mới hơn như YOLO11YOLO26, các đổi mới kiến trúc được giới thiệu trong YOLOv4 đã ảnh hưởng đến sự phát triển của các mô hình sau này.

Trích dẫn và Ghi nhận

Chúng tôi muốn ghi nhận các tác giả của YOLOv4 vì những đóng góp đáng kể của họ trong lĩnh vực phát hiện vật thể thời gian thực:

Trích dẫn
@misc{bochkovskiy2020yolov4,
      title={YOLOv4: Optimal Speed and Accuracy of Object Detection},
      author={Alexey Bochkovskiy and Chien-Yao Wang and Hong-Yuan Mark Liao},
      year={2020},
      eprint={2004.10934},
      archivePrefix={arXiv},
      primaryClass={cs.CV}
}

Bài báo gốc về YOLOv4 có thể được tìm thấy trên arXiv. Các tác giả đã cung cấp công khai công trình của họ và codebase có thể được truy cập trên GitHub. Chúng tôi đánh giá cao những nỗ lực của họ trong việc thúc đẩy lĩnh vực này và làm cho công trình của họ dễ tiếp cận hơn với cộng đồng rộng lớn.

Câu hỏi thường gặp (FAQ)

YOLOv4 là gì và tại sao tôi nên sử dụng nó cho object detection?

YOLOv4, viết tắt của "You Only Look Once version 4", là một mô hình phát hiện vật thể thời gian thực hiện đại được Alexey Bochkovskiy phát triển vào năm 2020. Nó đạt được sự cân bằng tối ưu giữa tốc độ và accuracy, khiến nó rất phù hợp cho các ứng dụng thời gian thực. Kiến trúc của YOLOv4 kết hợp một số tính năng sáng tạo như Weighted-Residual-Connections (WRC), Cross-Stage-Partial-connections (CSP) và Self-adversarial-training (SAT), cùng các tính năng khác, để đạt được kết quả hiện đại nhất. Nếu bạn đang tìm kiếm một mô hình hiệu suất cao hoạt động hiệu quả trên các GPU thông thường, YOLOv4 là một lựa chọn tuyệt vời.

Kiến trúc của YOLOv4 tăng cường hiệu suất như thế nào?

Kiến trúc của YOLOv4 bao gồm một số thành phần chính: backbone, neck và head. Backbone, có thể là các mô hình như VGG, ResNet hoặc CSPDarknet53, được huấn luyện trước để dự đoán các lớp và bounding boxes. Phần neck, sử dụng PANet, kết nối feature maps từ các giai đoạn khác nhau để trích xuất dữ liệu toàn diện. Cuối cùng, phần head, sử dụng cấu hình từ YOLOv3, thực hiện các phát hiện vật thể cuối cùng. YOLOv4 cũng sử dụng các kỹ thuật "bag of freebies" như mosaic data augmentation và DropBlock regularization, tối ưu hóa hơn nữa tốc độ và độ chính xác của nó.

"Bag of freebies" trong ngữ cảnh của YOLOv4 là gì?

"Bag of freebies" đề cập đến các phương pháp cải thiện độ chính xác huấn luyện của YOLOv4 mà không làm tăng chi phí suy luận. Các kỹ thuật này bao gồm nhiều dạng data augmentation khác nhau như biến dạng quang học (điều chỉnh độ sáng, độ tương phản, v.v.) và biến dạng hình học (thu phóng, cắt, lật, xoay). Bằng cách tăng tính đa dạng của hình ảnh đầu vào, các biện pháp tăng cường này giúp YOLOv4 khái quát hóa tốt hơn với các loại hình ảnh khác nhau, từ đó cải thiện độ bền bỉ và độ chính xác của nó mà không làm ảnh hưởng đến hiệu suất thời gian thực.

Tại sao YOLOv4 được coi là phù hợp cho phát hiện vật thể thời gian thực trên các GPU thông thường?

YOLOv4 được thiết kế để tối ưu hóa cả tốc độ và độ chính xác, khiến nó trở nên lý tưởng cho các tác vụ phát hiện vật thể thời gian thực đòi hỏi hiệu suất nhanh và đáng tin cậy. Nó vận hành hiệu quả trên các GPU thông thường, chỉ cần một GPU cho cả quá trình huấn luyện và suy luận. Điều này làm cho nó dễ tiếp cận và thiết thực cho nhiều ứng dụng khác nhau, từ recommendation systems đến quản lý quy trình độc lập, từ đó giảm nhu cầu về thiết lập phần cứng mở rộng và biến nó thành một giải pháp hiệu quả về chi phí cho phát hiện vật thể thời gian thực.

Làm thế nào tôi có thể bắt đầu với YOLOv4 nếu Ultralytics hiện không hỗ trợ nó?

Để bắt đầu với YOLOv4, bạn nên truy cập YOLOv4 GitHub repository chính thức. Làm theo các hướng dẫn cài đặt được cung cấp trong tệp README, thường bao gồm việc sao chép kho lưu trữ, cài đặt các phụ thuộc và thiết lập biến môi trường. Sau khi cài đặt, bạn có thể huấn luyện mô hình bằng cách chuẩn bị tập dữ liệu, cấu hình tham số mô hình và làm theo các hướng dẫn sử dụng được cung cấp. Vì Ultralytics hiện không hỗ trợ YOLOv4, bạn nên tham khảo trực tiếp GitHub của YOLOv4 để có hướng dẫn chi tiết và cập nhật nhất.

Bình luận