Chuyển đến nội dung

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 cho YOLOv4, một công cụ phát hiện đối tượng theo 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ế để cung cấp sự cân bằng tối ưu giữa tốc độ và độ chính xác, làm cho nó trở thành một 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. Trình bày 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, và các lớp kết nối của chúng để phát hiện đối tượng theo 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à một mô hình phát hiện đối tượng theo thời gian thực được phát triển để giải quyết những 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ông giống như các công cụ 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ỉ á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 đầu vào của con người. Hoạt động của nó trên các đơn vị xử lý đồ họa (GPU) thông thường cho phép sử dụng hàng loạt với giá cả 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.

Kiến trúc

YOLOv4 sử dụng một số tính năng cải tiến phối hợp với nhau để tối ưu hóa hiệu suất của nó. Chúng 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à CIoU loss. Các tính năng này được kết hợp để đạt được kết quả hiện đại.

Một trình phát hiện đối tượng điển hình bao gồm một số 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à hộp giới hạn của các đối tượng. Backbone có thể đến từ một số 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 từ dưới lên và một số đường dẫn từ trên xuống. Phần head là những gì được sử dụng để đưa ra cá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", 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 nhận diệ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 độ mạnh mẽ của mô hình. Một số ví dụ về tăng cường dữ liệu bao gồm biến dạng quang trắ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 tỷ lệ, cắt, lật và xoay ngẫu nhiên). Các kỹ thuật này giúp mô hình khái quát hóa tốt hơn cho các loại hình ảnh khác nhau.

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

YOLOv4 được thiết kế để có tốc độ và độ chính xác tối ưu trong nhận diện đố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 nhận diện đối tượng với tốc độ ấn tượng, 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 trong các chuẩn đánh giá nhận diện đối tượng như COCO.

Khi so sánh với các mô hình khác trong họ YOLO, chẳng hạn như YOLOv5YOLOv7, YOLOv4 vẫn duy trì một vị thế vững chắc trong sự 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 một số lợi thế nhất định, nhưng những cải tiến về kiến trúc của YOLOv4 tiếp tục làm cho 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

Tại thời điểm viết bài, Ultralytics hiện không hỗ trợ các mô hình YOLOv4. Do đó, bất kỳ người dùng nào quan tâm đến việc sử dụng YOLOv4 sẽ cần tham khảo trực tiếp kho lưu trữ YOLOv4 GitHub để biết hướng dẫn cài đặt và sử dụng.

Sau đâ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ữ YOLOv4 GitHub: https://github.com/AlexeyAB/darknet.

  2. Làm theo các hướng dẫn được cung cấp trong tệp README để cài đặt. Thao tác này thường bao gồm việc sao chép kho lưu trữ, cài đặt các phần 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 hoàn tất cài đặ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 việc chuẩn bị bộ dữ liệu của bạn, định cấu hình các tham số mô hình, huấn luyện mô hình, 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ữ YOLOv4 GitHub.

Chúng tôi rất tiếc vì sự bất tiện này và sẽ cố gắng cập nhật tài liệu này với các ví dụ sử dụng cho Ultralytics sau khi hỗ trợ cho YOLOv4 được triển khai.

Kết luận

YOLOv4 là một mô hình nhận diện đối tượng 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à kỹ thuật bag of freebies trong quá trình huấn luyện cho phép nó hoạt động xuất sắc trong các tác vụ nhận diện đối tượng theo thời gian thực. YOLOv4 có thể được huấn luyện và sử dụng bởi bất kỳ ai có một GPU thông thường, làm cho 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 hệ thống giám sát, xe tự hànhtự động hóa công nghiệp.

Đối với những ai muốn triển khai tính năng phát hiện đối tượng trong các dự án của mình, YOLOv4 vẫn là một ứng cử viên mạnh mẽ, đặc biệt khi hiệu suất thời gian thực là ưu tiên hàng đầu. 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ư YOLOv8YOLO11, nhưng những cải tiến 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.

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

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

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

YOLOv4 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 theo thời gian thực hiện đại được phát triển bởi Alexey Bochkovskiy 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, làm cho 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 cải tiến như Weighted-Residual-Connections (WRC), Cross-Stage-Partial-connections (CSP) và Self-adversarial-training (SAT), cùng với những 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.

Kiến trúc của YOLOv4 nâng cao hiệu suất của nó 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. Neck, sử dụng PANet, kết nối feature map từ các giai đoạn khác nhau để 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 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à điều chuẩn DropBlock, giúp tối ưu hóa hơn nữa tốc độ và độ chính xác của nó.

"Bag of freebies" trong bối 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 hình thức tăng cường dữ liệu như biến dạng quang trắc (điều chỉnh độ sáng, độ tương phản, v.v.) và biến dạng hình học (chia tỷ lệ, cắt xén, lật, xoay). Bằng cách tăng tính biến đổi của hình ảnh đầu vào, những phương pháp tăng cường này giúp YOLOv4 khái quát hóa tốt hơn cho các loại hình ảnh khác nhau, do đó cải thiện tính mạnh mẽ và độ chính xác của nó mà không ảnh hưởng đến hiệu suất thời gian thực.

Tại sao YOLOv4 được coi là phù hợp để phát hiện đối tượng theo 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àm cho nó trở nên lý tưởng cho các tác vụ phát hiện đối tượng theo thời gian thực, đòi hỏi hiệu suất nhanh chóng và đáng tin cậy. Nó 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à suy luận. Điều này làm cho nó có thể truy cập và thiết thực cho nhiều ứng dụng khác nhau, từ hệ thống đề xuất đến quản lý quy trình độc lập, do đó giảm nhu cầu thiết lập phần cứng mở rộng và làm cho nó trở thành một giải pháp hiệu quả về chi phí để phát hiện đối tượng theo thời gian thực.

Làm cách 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ữ YOLOv4 GitHub chính thức. Làm theo 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ần phụ thuộc 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 mô hình bằng cách chuẩn bị bộ dữ liệu của mình, định cấu hình các tham số mô hình 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 YOLOv4 GitHub để có hướng dẫn chi tiết và cập nhật nhất.



📅 Đã tạo 1 năm trước ✏️ Cập nhật 5 tháng trước

Bình luận