Link to this sectionYOLOv4: 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 dành cho YOLOv4, một mô hình phát hiện đối tượng thời gian thực hiện đại được ra mắt vào 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, biến nó thành lựa chọn tuyệt vời cho nhiều ứng dụng.
Sơ đồ kiến trúc YOLOv4. Hiển thị 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 liên kết của chúng để đạt hiệu quả phát hiện đối tượng thời gian thực tối ưu.
Link to this sectionGiới thiệu#
YOLOv4 là viết tắt của You Only Look Once phiên bản 4. Đây là một mô hình phát hiện đối tượng thời gian thực được phát triển để giải quyết các hạn chế của các phiên bản YOLO trước đó như YOLOv3 và các mô hình phát hiện đối tượng khác. Khác với các bộ phát hiện đối tượng dựa trên mạng thần kinh tích chập (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 đơn vị xử lý đồ họa (GPU) thông thường cho phép sử dụng đại trà với chi phí phải chăng, và nó được thiết kế để hoạt động trong 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.
Link to this sectionKiế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 tăng cường dữ liệu, DropBlock chỉnh quy, và 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.
Một bộ dò đối tượng điển hình bao gồm nhiều phần như đầ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 đối tượng. Backbone có thể được lấy từ một số model bao gồm VGG, ResNet, ResNeXt hoặc DenseNet. Phần neck của bộ dò đượ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 từ dưới lên và từ trên xuống. Phần head là phần được sử dụng để thực hiện việc dò và phân loại đối tượng cuối cùng.
Link to this sectionBag 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 độ chính xác 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. Tăng cường dữ liệu là một kỹ thuật bag of freebies phổ biến được sử dụng trong phát hiện đối tượng, giúp tăng tính biến đổi của hình ảnh đầu vào để cải thiện độ bền vững của mô hình. Một số ví dụ về tăng cường dữ liệu bao gồm các biến dạng trắc quang (đ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à các biến dạng hình học (thêm ngẫu nhiên tỷ lệ, 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.
Link to this sectionTính năng và Hiệu suất#
YOLOv4 được thiết kế để tối ưu hóa tốc độ và độ chính xác trong việc dò đối tượng. 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 dò đối tượng 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 bài kiểm tra dò đối tượng như COCO.
Khi so sánh với các model khác trong dòng YOLO, chẳng hạn như YOLOv5 và YOLOv7, YOLOv4 vẫn 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 model mới hơn có thể mang lại những ưu điểm nhất định, những cải tiến về kiến trúc của YOLOv4 vẫn giúp nó tiếp tục phù hợp cho nhiều ứng dụng đòi hỏi hiệu suất thời gian thực.
Link to this sectionVí dụ Sử dụng#
YOLOv4 là một 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 công bố trên ultralytics/assets và không có YAML 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 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:
-
Truy cập kho lưu trữ GitHub YOLOv4: https://github.com/AlexeyAB/darknet.
-
Làm theo các hướng dẫn được cung cấp trong tệp README để cài đặt. Việc này thường bao gồm sao chép 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.
-
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ữ. Việc 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 đối tượng.
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 YOLOv4.
Để huấn luyện và suy luận trong framework Ultralytics, hãy xem YOLO11 hoặc YOLO26.
Link to this sectionKết luận#
YOLOv4 là một mô hình phát hiện đối tượng mạnh mẽ và hiệu quả, tạo ra 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 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, giúp nó trở nên 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ành và tự động hóa công nghiệp.
Đối với những người đang tìm cách triển khai phát hiện đối tượng vào dự án của mình, YOLOv4 vẫn là một ứng cử viên sáng giá, đặc biệt là khi ưu tiên hiệu suất thời gian thực. 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ư YOLO11 và YOLO26, những đổi mới về 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.
Link to this sectionTrí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 quan trọng của họ 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 gốc về YOLOv4 có thể được tìm thấy trên arXiv. Các tác giả đã công bố công trình của họ và mã nguồn 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.
Link to this sectionCâu hỏi thường gặp#
Link to this sectionYOLOv4 là gì và tại sao tôi nên sử dụng nó để phát hiện đối tượng?#
YOLOv4, viết tắt của "You Only Look Once phiên bản 4", là một mô hình phát hiện đối tượng thời gian thực hiện đại do 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à độ chính xác, khiến nó cực kỳ phù hợp cho các ứng dụng thời gian thực. Kiến trúc của YOLOv4 tích 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 nhiều tính năng khác để đạt được kết quả hiện đại. 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.
Link to this sectionKiến trúc của YOLOv4 nâng cao 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 box. Phần neck, sử dụng PANet, kết nối các bản đồ đặc trưng 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 đối tượng cuối cùng. YOLOv4 cũng sử dụng các kỹ thuật "bag of freebies" như tăng cường dữ liệu mosaic và chỉnh quy DropBlock, giúp tối ưu hóa thêm tốc độ và độ chính xác của nó.
Link to this sectionThế nào là "bag of freebies" trong ngữ cảnh của YOLOv4?#
"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 hình thức tăng cường dữ liệu khác nhau như biến dạng trắc quang (điều chỉnh độ sáng, độ tương phản, v.v.) và biến dạng hình học (tỷ lệ, cắt, lật, xoay). Bằng cách tăng tính biến đổi của hình ảnh đầu vào, các 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 vững và độ chính xác mà không làm ảnh hưởng đến hiệu suất thời gian thực.
Link to this sectionTại sao YOLOv4 được coi là phù hợp để phát hiện đối tượng 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, lý tưởng cho các tác vụ phát hiện đối tượng thời gian thực đòi hỏi hiệu suất nhanh chóng 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ả huấn luyện và suy luận. Điều này giúp nó trở nên dễ tiếp cận và thiết thực cho các ứng dụng đa dạng, từ hệ thống gợi ý đến quản lý quy trình độc lập, qua đó giảm nhu cầu về thiết lập phần cứng phức tạp và tạo ra giải pháp tiết kiệm chi phí cho phát hiện đối tượng thời gian thực.
Link to this sectionLà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 kho lưu trữ GitHub YOLOv4 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 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à tuân 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 YOLOv4 để có hướng dẫn chi tiết và cập nhật nhất.