YOLOv3 và YOLOv3u

Tổng quan

Tài liệu này cung cấp tổng quan về ba model phát hiện đối tượng có liên quan chặt chẽ, đó là YOLOv3, YOLOv3-UltralyticsYOLOv3u.

  1. 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 bởi Joseph Redmon, YOLOv3 cải tiến 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 quy mô và ba kích thước kernel phát hiện khác nhau.

  2. YOLOv3u: Đây là phiên bản cập nhật của YOLOv3-Ultralytics, tích hợp phần đầu split head không cần anchor (anchor-free) và không cần objectness (objectness-free) được sử dụng trong các model YOLOv8. YOLOv3u duy trì cùng kiến trúc backbone và neck như YOLOv3 nhưng với detection head cập nhật từ YOLOv8.

Biểu ngữ model phát hiện đối tượng YOLOv3

Các tính năng chính

  • YOLOv3: Đã giới thiệu việc sử dụng ba quy mô 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 khi phát hiện các đối tượng với kích thước khác nhau. Ngoài ra, YOLOv3 còn bổ sung các tính năng như dự đoán đa nhãn cho mỗi bounding box và một mạng trích xuất đặc trưng tốt hơn.

  • YOLOv3u: Model cập nhật này tích hợp phần đầu split head không cần anchor và không cần objectness từ YOLOv8. Bằng cách loại bỏ sự cần thiết của các anchor box được xác định trước và các điểm số objectness, thiết kế detection head này có thể cải thiện 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 của model. Điều này giúp YOLOv3u trở nên mạnh mẽ và chính xác hơn cho các tác vụ phát hiện đối tượng.

Các tác vụ và chế độ được hỗ trợ

YOLOv3 được thiết kế đặc biệt cho các tác vụ object detection. Ultralytics hỗ trợ ba biến thể của YOLOv3: yolov3u, yolov3-tinyuyolov3-sppu. Chữ u trong tên gọi biểu thị rằng chúng sử dụng detection head anchor-free của YOLOv8, khác với kiến trúc gốc vốn dựa trên anchor. Các model này nổi tiếng về tính hiệu quả trong nhiều tình huống 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 cho nhiều ứng dụng khác nhau.

Cả ba model đều hỗ trợ tập hợp đầy đủ các chế độ, đảm bảo tính linh hoạt trong các giai đoạn khác nhau của model deployment và phát triển. Các chế độ này bao gồm Inference, Validation, TrainingExport, cung cấp cho người dùng bộ công cụ hoàn chỉnh để phát hiện đối tượng hiệu quả.

Loại ModelWeights Tiền huấn luyệnTác vụ được hỗ trợInferenceValidationTrainingExport
YOLOv3(u)yolov3u.ptPhát hiện đối tượng (Object Detection)
YOLOv3-Tiny(u)yolov3-tinyu.ptPhát hiện đối tượng (Object Detection)
YOLOv3u-SPP(u)yolov3-sppu.ptPhát hiện đối tượng (Object Detection)

Bảng này cung cấp cái nhìn tổng quan về khả năng của từng biến thể YOLOv3, làm nổi bật tính linh hoạt và sự 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 quy trình phát hiện đối tượng.

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 với YOLOv3. Để có tài liệu đầy đủ về các modes này và những chế độ khác, hãy xem các trang tài liệu Predict, Train, ValExport.

Ví dụ

PyTorch pretrained *.pt models as well as configuration *.yaml files can be passed to the YOLO() class to create a model instance in 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 YOLOv3 của Ultralytics:

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}
}

Cảm ơn Joseph Redmon và Ali Farhadi vì đã phát triển YOLOv3 gốc.

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

Sự khác biệt giữa YOLOv3, YOLOv3-Ultralytics và YOLOv3u là gì?

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 độ, sử dụng ba quy mô khác nhau (13x13, 26x26 và 52x52) cho việc phát hiện. YOLOv3-Ultralytics là bản chuyển thể của Ultralytics từ YOLOv3, bổ sung hỗ trợ cho nhiều model tiền huấn luyện hơn và giúp tùy chỉnh model dễ dàng hơn. YOLOv3u là biến thể nâng cấp của YOLOv3-Ultralytics, tích hợp detection head split head không cần anchor và không cần objectness từ YOLOv8, giúp cải thiện độ ổn định và chính xác khi phát hiện các kích thước đối tượng khác nhau. Để biết thêm chi tiết về các biến thể, hãy tham khảo dòng YOLOv3.

Làm cách nào để huấn luyện model YOLOv3 bằng Ultralytics?

Huấn luyện model YOLOv3 với Ultralytics rất đơn giản. Bạn có thể huấn luyện 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 tài liệu chế độ Train của chúng tôi.

Điều gì khiến YOLOv3u chính xác hơn cho các tác vụ phát hiện đối tượng?

YOLOv3u cải tiến so với YOLOv3 và YOLOv3-Ultralytics bằng cách tích hợp phần đầu split head không cần anchor và không cần objectness được sử dụng trong các model YOLOv8. Bản nâng cấp này loại bỏ nhu cầu về anchor box được xác định trước và các điểm số objectness, giúp tăng cường 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 khiến 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 Tính năng chính.

Làm cách nào để sử dụng model YOLOv3 cho mục đích suy luận?

Bạn có thể thực hiện suy luận bằng các model YOLOv3 thông qua các tập lệnh Python 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 tài liệu chế độ Inference để biết thêm chi tiết về cách chạy các model YOLO.

YOLOv3 và các biến thể của nó hỗ trợ những tác vụ nào?

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 model này có thể được sử dụng cho nhiều giai đoạn triển khai và phát triển model, chẳng hạn như Inference, Validation, Training và Export. Để xem bộ tác vụ được hỗ trợ toàn diện và biết thêm chi tiết chuyên sâu, hãy truy cập tài liệu tác vụ Object Detection của chúng tôi.

Tôi có thể tìm tài nguyên để trích dẫn YOLOv3 trong nghiên cứu của mình ở đâu?

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 YOLOv3 của Ultralytics. 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 trích dẫn, hãy tham khảo phần Trích dẫn và Ghi nhận.

Bình luận