Ultralytics YOLO27:

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, một model phát hiện đối tượng thời gian thực tiên tiến hàng đầu được Alexey Bochkovskiy ra mắt vào năm 2020 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, trở thành lựa chọn xuất sắc cho nhiều ứng dụng.

Sơ đồ kiến trúc YOLOv4 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 lớp được kết nối với nhau để tối ưu hóa khả năng phát hiện đối tượng thời gian thực.

Giới thiệu#

YOLOv4 là viết tắt của You Only Look Once phiên bản 4. Đây là một model phát hiện đối tượng thời gian thực được phát triển để khắc phục các hạn chế của những 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) khác, YOLOv4 không chỉ phù hợp với các hệ thống đề xuất mà còn với quản lý quy trình độc lập và giảm thiểu đầu vào của con người. Việc chạy trên các bộ xử lý đồ họa thông thường (GPUs) cho phép sử dụng ở quy mô lớn với chi phí hợp lý; model này được thiết kế để hoạt động thời gian thực trên một GPU thông thường và chỉ cần một GPU như vậy để huấn luyện.

Kiến trúc#

YOLOv4 sử dụng một số tính năng cải tiến hoạt động cùng nhau để tối ưu hiệu năng. Các tính năng này bao gồm Kết nối dư có trọng số (WRC), Kết nối từng phần xuyên giai đoạn (CSP), Chuẩn hóa theo batch chéo mini (CmBN), Huấn luyện tự đối kháng (SAT), hàm kích hoạt Mish, tăng cường dữ liệu Mosaic, chính quy hóa DropBlock và hàm mất mát CIoU. Các tính năng này được kết hợp để đạt kết quả tiên tiến hàng đầu.

Một bộ phát hiện đối tượng điển hình gồm nhiều phần, bao gồm input, backbone, neck và head. Backbone của YOLOv4 được pretrained trên ImageNet và được dùng để dự đoán các class cùng bounding box của đối tượng. Backbone có thể sử dụng từ nhiều model như VGG, ResNet, ResNeXt hoặc DenseNet. Phần neck của bộ phát hiện được 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 đi từ dưới lên cùng một số đường đi từ trên xuống. Phần head được dùng để thực hiện các bước phát hiện và phân loại đối tượng 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", tức những kỹ thuật cải thiện độ chính xác của model trong quá trình huấn luyện mà không làm tăng chi phí inference. Tăng cường dữ liệu là một kỹ thuật bag of freebies phổ biến được dùng trong phát hiện đối tượng, giúp tăng tính đa dạng của ảnh input để cải thiện độ mạnh mẽ 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 thao tác scale, crop, 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 năng#

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 detection head. Thiết kế này cho phé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 cao, đạt kết quả tiên tiến hàng đầu 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 họ YOLO, chẳng hạn như YOLOv5YOLOv7, YOLOv4 vẫn giữ vị thế nổi bật trong việc cân bằng giữa tốc độ và độ chính xác. Mặc dù các model mới hơn có thể mang lại một số lợi thế nhất định, những cải tiến về kiến trúc của YOLOv4 vẫn khiến model này phù hợp với nhiều ứng dụng yêu cầu hiệu năng thời gian thực.

Ví dụ sử dụng#

YOLOv4 là một model dựa trên Darknet và không được hỗ trợ nguyên bản bởi package Python của 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ó YAML ultralytics/cfg/models/v4/. Trang này được duy trì nhằm tham khảo kiến trúc. Người dùng muốn chạy YOLOv4 nên tham khảo trực tiếp repository YOLOv4 trên GitHub để 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ường bạn có thể thực hiện để sử dụng YOLOv4:

  1. Truy cập repository YOLOv4 trên GitHub: https://github.com/AlexeyAB/darknet.

  2. Làm theo hướng dẫn trong file README để cài đặt. Thông thường, quy trình này bao gồm clone repository, cài đặt các dependency cần thiết và thiết lập các biến môi trường cần thiết.

  3. Sau khi hoàn tất cài đặt, bạn có thể huấn luyện và sử dụng model theo hướng dẫn sử dụng trong repository. Quy trình này thường bao gồm chuẩn bị dataset, cấu hình các tham số của model, huấn luyện model và dùng model đã huấn luyện để thực hiện phát hiện đối tượng.

Lưu ý rằng các bước cụ thể có thể thay đổi tùy theo trường hợp sử dụng và trạng thái hiện tại của repository YOLOv4. Vì vậy, bạn nên tham khảo trực tiếp các hướng dẫn trong repository YOLOv4 trên GitHub.

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

Kết luận#

YOLOv4 là một model phát hiện đối tượng mạnh mẽ và hiệu quả, tạo đượ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 cùng kỹ thuật bag of freebies trong quá trình huấn luyện 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. YOLOv4 có thể được huấn luyện và sử dụng bởi bất kỳ ai có GPU thông thường, nhờ đó 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, phương tiện tự hànhtự độ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 của mình, YOLOv4 vẫn là một lựa chọn đáng cân nhắc, đặc biệt khi hiệu năng thời gian thực là ưu tiên. Mặc dù Ultralytics hiện tập trung hỗ trợ các phiên bản YOLO mới hơn như YOLO11YOLO26, những cải tiến kiến trúc được giới thiệu trong YOLOv4 đã ảnh hưởng đến quá trình phát triển các model sau này.

Trích dẫn và ghi nhận đóng góp#

Chúng tôi xin ghi nhận những đóng góp quan trọng của các tác giả YOLOv4 cho lĩnh vực phát hiện đối tượng 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 YOLOv4 gốc có thể được tìm thấy trên arXiv. Các tác giả đã công khai công trình của mình và codebase có thể được truy cập trên GitHub. Chúng tôi trân trọng những nỗ lực của họ trong việc thúc đẩy lĩnh vực này và giúp cộng đồng rộng lớn hơn tiếp cận công trình.

FAQ#

  • YOLOv4, viết tắt của "You Only Look Once phiên bản 4", là một model phát hiện đối tượng thời gian thực tiên tiến hàng đầu được Alexey Bochkovskiy phát triển vào 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 một số tính năng cải tiến như Kết nối dư có trọng số (WRC), Kết nối từng phần xuyên giai đoạn (CSP) và Huấn luyện tự đối kháng (SAT), cùng nhiều tính năng khác, để đạt kết quả tiên tiến hàng đầu. Nếu bạn đang tìm một model hiệu năng cao hoạt động hiệu quả trên các GPU thông thường, YOLOv4 là một lựa chọn xuất sắc.

  • 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à bounding box. Neck sử dụng PANet để kết nối các feature map từ những giai đoạn khác nhau, hỗ trợ trích xuất dữ liệu toàn diện. Cuối cùng, head sử dụng các cấu hình từ YOLOv3 để thực hiện phát hiện đối tượng cuối cùng. YOLOv4 cũng áp dụng các kỹ thuật "bag of freebies" như tăng cường dữ liệu mosaic và chính quy hóa DropBlock, qua đó tiếp tục tối ưu tốc độ và độ chính xác.

  • "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í inference. Các 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 (scale, crop, 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, từ đó cải thiện độ mạnh mẽ và độ chính xác mà không ảnh hưởng đến hiệu năng thời gian thực.

  • YOLOv4 được thiết kế để tối ưu cả tốc độ và độ 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 yêu cầu hiệu năng nhanh và đáng tin cậy. Model hoạt động hiệu quả trên các GPU thông thường, chỉ cần một GPU cho cả huấn luyện và inference. Điều này giúp 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 về hạ tầng phần cứng quy mô lớn và mang lại giải pháp tiết kiệm chi phí cho phát hiện đối tượng thời gian thực.

  • Để bắt đầu với YOLOv4, bạn nên truy cập repository YOLOv4 trên GitHub chính thức. Làm theo hướng dẫn cài đặt trong file README, thường bao gồm clone repository, cài đặt dependency và thiết lập các 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 các tham số của model và làm theo 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