Ultralytics YOLO27:
Get Started

YOLOv3 và YOLOv3u#

Tổng quan#

Tài liệu này giới thiệu tổng quan về ba model 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.

  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 Joseph Redmon phát triển ban đầu, YOLOv3 cải tiến các phiên bản tiền nhiệm bằng cách bổ sung những 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.

  2. YOLOv3-Ultralytics: Đây là bản triển khai YOLOv3 bằng PyTorch của Ultralytics, được duy trì trong repository ultralytics/yolov3. Bản này giữ nguyên kiến trúc dựa trên anchor ban đầu, đồng thời bổ sung nhiều model pretrained hơn và giúp tùy chỉnh dễ dàng hơn.

  3. YOLOv3u: Đây là phiên bản cập nhật của YOLOv3-Ultralytics, tích hợp head phân tách không dùng anchor và không dùng objectness đượ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 sử dụng detection head cập nhật từ YOLOv8.

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

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: 13x13, 26x26 và 52x52. Điều này cải thiện đáng kể độ chính xác phát hiện đối tượng ở nhiều 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 mỗi bounding box và 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 head phân tách không dùng anchor và không dùng objectness từ YOLOv8. Bằng cách loại bỏ nhu cầu sử dụng anchor box được xác định trước và điểm objectness, thiết kế detection head này có thể cải thiện khả năng phát hiện đối tượng với nhiều kích thước và hình dạng khác nhau. Nhờ đó, YOLOv3u mạnh mẽ và chính xác hơn trong 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ế chuyên biệt cho các tác vụ phát hiện đối tượng. Ultralytics hỗ trợ ba biến thể YOLOv3: yolov3u, yolov3-tinyu và yolov3-sppu. Ký hiệu u trong tên cho biết các model này sử dụng head không dùng anchor của YOLOv8, khác với kiến trúc ban đầu dựa trên anchor. Các model này nổi tiếng nhờ 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ể có các tính năng và tối ưu hóa riêng, phù hợp với nhiều ứng dụng.

Cả ba model đều hỗ trợ đầy đủ các chế độ, đảm bảo tính linh hoạt trong nhiều giai đoạn triển khai model và phát triển. Các chế độ này gồm Suy luận, Đánh giá, Huấn luyện và Xuất, 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 pretrainedCác tác vụ được hỗ trợHuấn luyệnValidationSuy luậnExport
YOLOv3(u)yolov3u.ptPhát hiện đối tượng✅✅✅✅
YOLOv3-Tiny(u)yolov3-tinyu.ptPhát hiện đối tượng✅✅✅✅
YOLOv3-SPP(u)yolov3-sppu.ptPhát hiện đối tượng✅✅✅✅

Bảng này cung cấp cái nhìn tổng quan nhanh về 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 với nhiều tác vụ và chế độ vận hành trong quy trình phát hiện đối tượng.

Ví dụ sử dụng#

Ví dụ này minh họa cách huấn luyện và suy luận YOLOv3 đơn giản. Để xem tài liệu đầy đủ về các chế độ này và những chế độ khác, hãy tham khảo các trang tài liệu chế độ, Dự đoán, Huấn luyện, Đánh giá và Xuất.

Ví dụ

Có thể truyền các model *.pt pretrained PyTorch cũng như các file cấu hình *.yaml vào class YOLO() để tạo một instance model trong Python:

from ultralytics import YOLO

# Tải model YOLOv3u pretrained trên COCO
model = YOLO("yolov3u.pt")

# Hiển thị thông tin model (không bắt buộc)
model.info()

# Huấn luyện model trên dataset mẫu COCO8 trong 100 epoch
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Chạy suy luận bằng model YOLOv3u trên ảnh 'bus.jpg'
results = model("path/to/bus.jpg")

Trích dẫn và lời cảm ơn#

Nếu sử dụng YOLOv3 trong nghiên cứu, 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}
}

Xin cảm ơn Joseph Redmon và Ali Farhadi đã 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 phát hiện đối tượng YOLO (You Only Look Once) do Joseph Redmon phát triển, nổi tiếng với khả năng cân bằng giữa độ chính xác và tốc độ, sử dụng ba tỷ lệ khác nhau (13x13, 26x26 và 52x52) để phát hiện đối tượng. YOLOv3-Ultralytics là bản điều chỉnh YOLOv3 của Ultralytics, bổ sung hỗ trợ cho nhiều model pretrained 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 head phân tách không dùng anchor và không dùng objectness từ YOLOv8, cải thiện độ vững chắc và độ chính xác khi phát hiện 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 dòng YOLOv3.

  • Huấn luyện model YOLOv3 bằng 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
    
    # Tải model YOLOv3u pretrained trên COCO
    model = YOLO("yolov3u.pt")
    
    # Huấn luyện model trên dataset mẫu COCO8 trong 100 epoch
    results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

    Để biết thêm các tùy chọn và hướng dẫn huấn luyện toàn diện, hãy truy cập tài liệu chế độ Train.

  • YOLOv3u cải tiến YOLOv3 và YOLOv3-Ultralytics bằng cách tích hợp head phân tách không dùng anchor và không dùng objectness được sử dụng trong các model YOLOv8. Nâng cấp này loại bỏ nhu cầu sử dụng anchor box được xác định trước và điểm objectness, tăng cường khả năng phát hiện chính xác hơn các đối tượng có nhiều kích thước và hình dạng khác nhau. Nhờ đó, YOLOv3u là 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 mục Tính năng chính.

  • Bạn có thể chạy suy luận bằng các model YOLOv3 thông qua script Python hoặc lệnh CLI:

    Ví dụ
    from ultralytics import YOLO
    
    # Tải model YOLOv3u pretrained trên COCO
    model = YOLO("yolov3u.pt")
    
    # Chạy suy luận bằng model YOLOv3u trên ảnh 'bus.jpg'
    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, 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 dùng ở nhiều giai đoạn triển khai và phát triển model, chẳng hạn như suy luận, đánh giá, huấn luyện và xuất. Để xem danh sách đầy đủ các tác vụ được hỗ trợ và thông tin chi tiết hơn, hãy truy cập tài liệu về tác vụ phát hiện đối tượng.

  • Nếu sử dụng YOLOv3 trong nghiên cứu, 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 về trích dẫn, hãy tham khảo mục Trích dẫn và Lời cảm ơn.

Bình luận