YOLOv3 và YOLOv3u#
Tổng quan#
Tài liệu này trình bày tổng quan về ba mô hình phát hiện đối tượng có liên quan chặt chẽ với nhau, cụ thể là YOLOv3, YOLOv3-Ultralytics và YOLOv3u.
-
YOLOv3: Đây là phiên bản thứ ba của thuật toán phát hiện đối tượng You Only Look Once (YOLO). Được phát triển nguyên bản bởi Joseph Redmon, YOLOv3 đã cải tiến so với các phiên bản tiền nhiệm bằng cách giới thiệu các tính năng như dự đoán đa tỉ lệ và ba kích thước kernel phát hiện khác nhau.
-
YOLOv3u: Đây là phiên bản cập nhật của YOLOv3-Ultralytics tích hợp phần đầu chia tách không dùng mỏ neo (anchor-free), không dùng độ đối tượng (objectness-free) được sử dụng trong các mô hình YOLOv8. YOLOv3u duy trì kiến trúc backbone và phần cổ giống như YOLOv3 nhưng có detection head được cập nhật từ YOLOv8.

Tính năng chính#
-
YOLOv3: Giới thiệu việc sử dụng ba tỷ lệ khác nhau để phát hiện, tận dụng ba kích thước kernel phát hiện khác nhau: 13x13, 26x26 và 52x52. Điều này cải thiện đáng kể độ chính xác phát hiện đối với các đối tượng có kích thước khác nhau. Ngoài ra, YOLOv3 đã bổ sung các tính năng như dự đoán đa nhãn cho từng bounding box và mạng trích xuất đặc trưng tốt hơn.
-
YOLOv3u: Model được cập nhật này tích hợp phần đầu chia tách không dùng anchor và không dùng điểm số đối tượng từ YOLOv8. Bằng cách loại bỏ nhu cầu về các hộp anchor được xác định trước và điểm số đối tượng, thiết kế detection head này có thể cải thiện khả năng của model trong việc phát hiện các đối tượng có kích thước và hình dạng khác nhau. Điều này làm cho YOLOv3u trở nên mạnh mẽ và chính xác hơn cho các tác vụ object detection.
Các tác vụ và chế độ được hỗ trợ#
YOLOv3 được thiết kế dành riêng cho các tác vụ object detection. Ultralytics hỗ trợ ba biến thể của YOLOv3: yolov3u, yolov3-tinyu và yolov3-sppu. Chữ u trong tên biểu thị rằng các biến thể này sử dụng phần đầu không cần mỏ neo của YOLOv8, khác với kiến trúc ban đầu dựa trên mỏ neo của chúng. Các mô hình này nổi tiếng về hiệu quả trong nhiều kịch bản thực tế, cân bằng giữa độ chính xác và tốc độ. Mỗi biến thể cung cấp các tính năng và tối ưu hóa độc đáo, giúp chúng phù hợp với nhiều ứng dụng.
Cả ba mô hình đều hỗ trợ bộ chế độ toàn diện, đảm bảo tính linh hoạt trong các giai đoạn khác nhau của quá trình model deployment và phát triển. Các chế độ này bao gồm Inference, Validation, Training và Export, cung cấp cho người dùng một bộ công cụ hoàn chỉnh để phát hiện đối tượng hiệu quả.
| Loại model | Trọng số Pretrained | Các tác vụ được hỗ trợ | Huấn luyện | Validation | Suy luận | Xuất (Export) |
|---|---|---|---|---|---|---|
| YOLOv3(u) | yolov3u.pt | Phát hiện đối tượng | ✅ | ✅ | ✅ | ✅ |
| YOLOv3-Tiny(u) | yolov3-tinyu.pt | Phát hiện đối tượng | ✅ | ✅ | ✅ | ✅ |
| YOLOv3u-SPP(u) | yolov3-sppu.pt | Phát hiện đối tượng | ✅ | ✅ | ✅ | ✅ |
Bảng này cung cấp cái nhìn tổng quan nhanh chóng về các khả năng của từng biến thể YOLOv3, làm nổi bật tính linh hoạt và mức độ phù hợp của chúng đối với các tác vụ và chế độ vận hành khác nhau trong các quy trình object detection.
Ví dụ Sử dụng#
Ví dụ này cung cấp các ví dụ đơn giản về huấn luyện và suy luận YOLOv3. Để có tài liệu đầy đủ về các modes này và các chế độ khác, hãy xem các trang tài liệu Predict, Train, Val và Export.
Các model *.pt được huấn luyện trước bằng PyTorch cũng như các file cấu hình *.yaml có thể được truyền vào class YOLO() để tạo một instance model trong python:
from ultralytics import YOLO
# Load a COCO-pretrained YOLOv3u model
model = YOLO("yolov3u.pt")
# Display model information (optional)
model.info()
# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference with the YOLOv3u model on the 'bus.jpg' image
results = model("path/to/bus.jpg")Trích dẫn và Ghi nhận#
Nếu bạn sử dụng YOLOv3 trong nghiên cứu của mình, vui lòng trích dẫn các bài báo YOLO gốc và repository Ultralytics YOLOv3:
@article{redmon2018yolov3,
title={YOLOv3: An Incremental Improvement},
author={Redmon, Joseph and Farhadi, Ali},
journal={arXiv preprint arXiv:1804.02767},
year={2018}
}Cảm ơn Joseph Redmon và Ali Farhadi vì đã phát triển YOLOv3 gốc.
Câu hỏi thường gặp#
YOLOv3 là phiên bản thứ ba của thuật toán object detection YOLO (You Only Look Once) do Joseph Redmon phát triển, nổi tiếng với sự cân bằng giữa accuracy và tốc độ, tận dụng ba tỷ lệ khác nhau (13x13, 26x26 và 52x52) để phát hiện. YOLOv3-Ultralytics là bản chuyển thể YOLOv3 của Ultralytics, bổ sung hỗ trợ cho nhiều mô hình được huấn luyện trước hơn và tạo điều kiện tùy chỉnh mô hình dễ dàng hơn. YOLOv3u là một biến thể nâng cấp của YOLOv3-Ultralytics, tích hợp phần đầu chia tách không dùng mỏ neo, không dùng độ đối tượng từ YOLOv8, cải thiện độ bền vững và độ chính xác khi phát hiện cho các đối tượng có kích thước khác nhau. Để biết thêm chi tiết về các biến thể, hãy tham khảo YOLOv3 series.
Training một model YOLOv3 với Ultralytics rất đơn giản. Bạn có thể train model bằng Python hoặc CLI:
Ví dụfrom ultralytics import YOLO # Load a COCO-pretrained YOLOv3u model model = YOLO("yolov3u.pt") # Train the model on the COCO8 example dataset for 100 epochs results = model.train(data="coco8.yaml", epochs=100, imgsz=640)Để có các tùy chọn và hướng dẫn huấn luyện toàn diện hơn, hãy truy cập Train mode documentation của chúng tôi.
YOLOv3u cải tiến dựa trên YOLOv3 và YOLOv3-Ultralytics bằng cách tích hợp phần đầu chia tách không dùng mỏ neo, không dùng độ đối tượng được sử dụng trong các mô hình YOLOv8. Nâng cấp này loại bỏ nhu cầu về hộp mỏ neo được xác định trước và điểm số độ đối tượng, nâng cao khả năng phát hiện các đối tượng có kích thước và hình dạng khác nhau một cách chính xác hơn. Điều này làm cho YOLOv3u trở thành lựa chọn tốt hơn cho các tác vụ phát hiện đối tượng phức tạp và đa dạng. Để biết thêm thông tin, hãy tham khảo phần Key Features.
Bạn có thể thực hiện inference bằng các model YOLOv3 thông qua các Python script hoặc lệnh CLI:
Ví dụfrom ultralytics import YOLO # Load a COCO-pretrained YOLOv3u model model = YOLO("yolov3u.pt") # Run inference with the YOLOv3u model on the 'bus.jpg' image results = model("path/to/bus.jpg")Tham khảo Inference mode documentation để biết thêm chi tiết về cách chạy các mô hình YOLO.
YOLOv3, YOLOv3-Tiny và YOLOv3-SPP chủ yếu hỗ trợ các tác vụ phát hiện đối tượng. Các mô hình này có thể được sử dụng cho các giai đoạn phát triển và triển khai mô hình khác nhau, chẳng hạn như Inference, Validation, Training và Export. Để có tập hợp toàn diện các tác vụ được hỗ trợ và các chi tiết sâu hơn, hãy truy cập Object Detection tasks documentation của chúng tôi.
Nếu bạn sử dụng YOLOv3 trong nghiên cứu của mình, vui lòng trích dẫn các bài báo YOLO gốc và repository Ultralytics YOLOv3. Ví dụ trích dẫn BibTeX:
Trích dẫn@article{redmon2018yolov3, title={YOLOv3: An Incremental Improvement}, author={Redmon, Joseph and Farhadi, Ali}, journal={arXiv preprint arXiv:1804.02767}, year={2018} }Để biết thêm chi tiết về cách trích dẫn, hãy tham khảo phần Citations and Acknowledgments.