YOLOv4: Phát hiện đối tượng tốc độ cao và chính xác#
Chào mừng bạn đến với trang tài liệu Ultralytics về YOLOv4, bộ phát hiện đối tượng thời gian thực tiên tiến nhất được Alexey Bochkovskiy ra mắt năm 2020 tại https://github.com/AlexeyAB/darknet. YOLOv4 được thiết kế để cân bằng tối ưu giữa tốc độ và độ chính xác, trở thành lựa chọn tuyệt vời cho nhiều ứng dụng.
Sơ đồ kiến trúc YOLOv4. Minh họa thiết kế mạng phức tạp của YOLOv4, bao gồm các thành phần backbone, neck và head cùng các layer kết nối với nhau nhằm phát hiện đối tượng thời gian thực tối ưu.
Giới thiệu#
YOLOv4 là viết tắt của You Only Look Once phiên bản 4. Đây là model phát hiện đối tượng thời gian thực được phát triển nhằm khắc phục những hạn chế của các phiên bản YOLO trước đó như YOLOv3 và các model phát hiện đối tượng khác. Không giống các bộ phát hiện đối tượng dựa trên mạng nơ-ron tích chập (CNN), YOLOv4 không chỉ áp dụng cho các hệ thống đề xuất mà còn cho quản lý quy trình độc lập và giảm thiểu sự can thiệp của con người. Model hoạt động trên các bộ xử lý đồ họa thông thường (GPUs), cho phép sử dụng rộng rãi với chi phí hợp lý; model được thiết kế để chạy thời gian thực trên GPU thông thường và chỉ cần một GPU như vậy để training.
Kiến trúc#
YOLOv4 sử dụng một số tính năng sáng tạo phối hợp với nhau để tối ưu 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), kích hoạt Mish, Mosaic tăng cường dữ liệu, regularization DropBlock và loss CIoU. Các tính năng này kết hợp với nhau để đạt kết quả tiên tiến nhất.
Bộ phát hiện đối tượng điển hình gồm một số thành phần như input, backbone, neck và head. Backbone của YOLOv4 được pretrained trên ImageNet và dùng để dự đoán class cùng hộp giới hạn của đối tượng. Backbone có thể lấy từ một số model như VGG, ResNet, ResNeXt hoặc DenseNet. Neck của bộ phát hiện dùng để thu thập feature map từ các giai đoạn khác nhau và thường bao gồm một số đường dẫn từ dưới lên và từ trên xuống. Head được dùng để tạo kết quả phát hiện và phân loại đối tượng cuối cùng.
Tập hợp các kỹ thuật miễn phí#
YOLOv4 cũng sử dụng các phương pháp gọi là "tập hợp kỹ thuật miễn phí", tức các kỹ thuật cải thiện độ chính xác của model trong quá trình training mà không làm tăng chi phí inference. Tăng cường dữ liệu là kỹ thuật phổ biến trong tập hợp này, được dùng trong phát hiện đối tượng để tăng tính đa dạng của ảnh input và cải thiện độ bền vững của model. Một số ví dụ về tăng cường dữ liệu gồm biến đổi quang trắc (điều chỉnh độ sáng, độ tương phản, sắc độ, độ bão hòa và nhiễu của ảnh) và biến đổi hình học (thêm các thao tác co giãn, cắt, lật và xoay ngẫu nhiên). Các kỹ thuật này giúp model tổng quát hóa tốt hơn với nhiều loại ảnh khác nhau.
Tính năng và hiệu suất#
YOLOv4 được thiết kế để đạt tốc độ và độ chính xác tối ưu trong phát hiện đối tượng. Kiến trúc YOLOv4 bao gồm CSPDarknet53 làm backbone, PANet làm neck và YOLOv3 làm head phát hiện. Thiết kế này giúp YOLOv4 phát hiện đối tượng với tốc độ ấn tượng, phù hợp với các ứng dụng thời gian thực. YOLOv4 cũng có độ chính xác vượt trội, đạt kết quả tiên tiến nhất trên các benchmark phát hiện đối tượng như COCO.
Khi so sánh với các model khác trong dòng YOLO, chẳng hạn YOLOv5 và YOLOv7, YOLOv4 vẫn giữ vị thế vững chắc về khả năng cân bằng giữa tốc độ và độ chính xác. Dù các model mới hơn có thể có một số ưu điểm, những cải tiến kiến trúc của YOLOv4 vẫn giúp model phù hợp với nhiều ứng dụng cần hiệu suất thời gian thực.
Ví dụ sử dụng#
YOLOv4 là model dựa trên Darknet và không được hỗ trợ nguyên bản bởi Python package Ultralytics: không có trọng số pretrained yolov4.pt nào được công bố trên ultralytics/assets và cũng không có file YAML ultralytics/cfg/models/v4/. Trang này được duy trì làm tài liệu tham khảo về kiến trúc. Người dùng muốn chạy YOLOv4 nên tham khảo trực tiếp repo GitHub YOLOv4 để xem 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 thường thực hiện để sử dụng YOLOv4:
-
Truy cập repo GitHub YOLOv4: https://github.com/AlexeyAB/darknet.
-
Làm theo hướng dẫn cài đặt trong file README. Thông thường, quá trình này bao gồm clone repo, cài đặt các dependency cần thiết và thiết lập mọi biến môi trường cần thiết.
-
Sau khi cài đặt hoàn tất, bạn có thể huấn luyện và sử dụng model theo hướng dẫn sử dụng trong repo. Quy trình này thường gồm chuẩn bị dataset, cấu hình tham số model, huấn luyện model, sau đó dùng model đã huấn luyện để phát hiện đối tượng.
Xin lưu ý rằng các bước cụ thể có thể khác nhau tùy theo trường hợp sử dụng và trạng thái hiện tại của repo YOLOv4. Vì vậy, bạn nên tham khảo trực tiếp hướng dẫn trong repo GitHub YOLOv4.
Để huấn luyện và inference trong framework Ultralytics, hãy xem YOLO11 hoặc YOLO26.
Kết luận#
YOLOv4 là model phát hiện đối tượng mạnh mẽ và hiệu quả, 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à kỹ thuật tập hợp kỹ thuật miễn phí trong quá trình training giúp model hoạt động xuất sắc trong các tác vụ phát hiện đối tượng thời gian thực. Bất kỳ ai có GPU thông thường đều có thể huấn luyện và sử dụng YOLOv4, giúp model dễ tiếp cận và thiết thực cho nhiều ứng dụng, bao gồm hệ thống giám sát, xe tự hành và tự động hóa công nghiệp.
Đối với những người muốn triển khai phát hiện đối tượng trong dự án, YOLOv4 vẫn là lựa chọn đáng cân nhắc, đặc biệt khi ưu tiên hiệu suất thời gian thực. Dù hiện Ultralytics tập trung hỗ trợ các phiên bản YOLO mới hơn như YOLO11 và YOLO26, những cải tiến kiến trúc được giới thiệu trong YOLOv4 đã góp phần định hình quá trình phát triển các model đời sau này.
Trích dẫn và lời cảm ơn#
Chúng tôi xin ghi nhận những đóng góp quan trọng của các tác giả YOLOv4 trong lĩnh vực phát hiện đối tượng thời gian thực:
@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 YOLOv4 gốc có trên arXiv. Các tác giả đã công khai công trình của mình và mã nguồn có thể truy cập trên GitHub. Chúng tôi trân trọng nỗ lực thúc đẩy lĩnh vực này và chia sẻ công trình với cộng đồng rộng lớn hơn của họ.
Câu hỏi thường gặp#
YOLOv4, viết tắt của "You Only Look Once phiên bản 4", là model phát hiện đối tượng thời gian thực tiên tiến nhất do Alexey Bochkovskiy phát triển năm 2020. Model đạt được sự cân bằng tối ưu giữa tốc độ và độ chính xác, rất phù hợp với các ứng dụng thời gian thực. Kiến trúc YOLOv4 tích hợp nhiều 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 kết quả tiên tiến nhất. Nếu bạn cần model hiệu suất cao hoạt động hiệu quả trên GPU thông thường, YOLOv4 là lựa chọn tuyệt vời.
Kiến trúc YOLOv4 bao gồm một số thành phần chính: backbone, neck và head. Backbone, có thể là các model như VGG, ResNet hoặc CSPDarknet53, được pretrained để dự đoán class và hộp giới hạn. Neck sử dụng PANet để kết nối feature map từ các giai đoạn khác nhau nhằm trích xuất dữ liệu toàn diện. Cuối cùng, head sử dụng cấu hình từ YOLOv3 để tạo kết quả phát hiện đối tượng cuối cùng. YOLOv4 cũng áp dụng các kỹ thuật "tập hợp kỹ thuật miễn phí" như tăng cường dữ liệu Mosaic và regularization DropBlock, giúp tối ưu thêm tốc độ và độ chính xác.
"Tập hợp kỹ thuật miễn phí" là các phương pháp cải thiện độ chính xác khi training YOLOv4 mà không làm tăng chi phí inference. Những kỹ thuật này bao gồm nhiều hình thức tăng cường dữ liệu như biến đổi quang trắc (điều chỉnh độ sáng, độ tương phản, v.v.) và biến đổi hình học (co giãn, cắt, lật, xoay). Bằng cách tăng tính đa dạng của ảnh input, các phương pháp tăng cường này giúp YOLOv4 tổng quát hóa tốt hơn với nhiều loại ảnh khác nhau, qua đó cải thiện độ bền vững và độ chính xác mà không ảnh hưởng đến hiệu suất thời gian thực.
YOLOv4 được thiết kế để tối ưu cả tốc độ lẫn độ chính xác, phù hợp với các tác vụ phát hiện đối tượng thời gian thực cần hiệu suất nhanh và đáng tin cậy. Model hoạt động hiệu quả trên GPU thông thường, chỉ cần một GPU cho cả training lẫn inference. Nhờ vậy, model dễ tiếp cận và thiết thực cho nhiều ứng dụng, từ hệ thống đề xuất đến quản lý quy trình độc lập; đồng thời giảm nhu cầu thiết lập phần cứng quy mô lớn và tạo ra giải pháp phát hiện đối tượng thời gian thực tiết kiệm chi phí.
Để bắt đầu với YOLOv4, bạn nên truy cập repo GitHub YOLOv4 chính thức. Làm theo hướng dẫn cài đặt trong file README, thường bao gồm clone repo, cài đặt dependency và thiết lập biến môi trường. Sau khi cài đặt, bạn có thể huấn luyện model bằng cách chuẩn bị dataset, cấu hình tham số model và làm theo hướng dẫn sử dụng. Vì hiện Ultralytics chưa hỗ trợ YOLOv4, bạn nên tham khảo trực tiếp GitHub YOLOv4 để có hướng dẫn chi tiết và cập nhật nhất.