Chuyển đến nội dung

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-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 ban đầu 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.

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

Ultralytics YOLOv3

Các 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 cho các đối tượng có 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 lưới trích xuất đặc trưng tốt hơn.

  • YOLOv3u: Mô hình được cập nhật này kết hợp split head không neo, không objectness từ YOLOv8. Bằng cách loại bỏ sự cần thiết của các hộp neo đượ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 các đối tượng có kích thước và hình dạng khác nhau của mô hình. Đ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ụ 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 phát hiện đối tượng các nhiệm vụ. Ultralytics hỗ trợ ba biến thể của YOLOv3: yolov3u, yolov3-tinyuyolov3-sppu. Các u trong tên biểu thị rằng chúng sử dụng phần đầu không neo của YOLOv8, không giống như kiến trúc ban đầu dựa trên neo của chúng. Các mô hình này nổi tiếng về hiệu quả của chúng trong các tình huống thực tế khác nhau, 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, làm cho chúng phù hợp với một loạt các ứng dụng.

Cả ba mô hình đều hỗ trợ một tập hợp toàn diện các chế độ, đảm bảo tính linh hoạt trong các giai đoạn khác nhau của triển khai mô hình và phát triển. Các chế độ này bao gồm Inference, Validation, TrainingExport, 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 mô hình Trọng số đã được huấn luyện trước Các tác vụ được hỗ trợ Suy luận Xác thực Huấn luyện Xuất
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 về khả năng của từng biến thể YOLOv3, làm nổi bật tính linh hoạt và phù hợp của chúng đối với các tác vụ và chế độ hoạt động 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 YOLOv3. Để có tài liệu đầy đủ về các chế độ này và các chế độ khác, hãy xem các trang tài liệu Predict, Train, ValExport.

Ví dụ

PyTorch đã được huấn luyện trước *.pt các mô hình cũng như cấu hình *.yaml các tệp có thể được chuyển đến YOLO() class để tạo một thể hiện mô hình 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")

Các lệnh CLI có sẵn để chạy trực tiếp các mô hình:

# Load a COCO-pretrained YOLOv3u model and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov3u.pt data=coco8.yaml epochs=100 imgsz=640

# Load a COCO-pretrained YOLOv3u model and run inference on the 'bus.jpg' image
yolo predict model=yolov3u.pt source=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à kho lưu trữ Ultralytics YOLOv3:

@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 vì đã phát triển YOLOv3 gốc.

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

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 phát hiện đối tượng YOLO (You Only Look Once) được phát triển bởi Joseph Redmon, nổi tiếng với sự 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. YOLOv3-Ultralytics là bản điều chỉnh 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 split head không neo, không objectness từ YOLOv8, cải thiện độ mạnh mẽ và độ chính xác phát hiện cho 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 chuỗi YOLOv3.

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

Huấn luyện mô hình YOLOv3 với Ultralytics rất đơn giản. Bạn có thể huấn luyện mô hình 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)
# Load a COCO-pretrained YOLOv3u model and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov3u.pt 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 về chế độ Train của chúng tôi.

Điều gì làm cho 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 YOLOv3 và YOLOv3-Ultralytics bằng cách kết hợp split head không neo, không objectness được sử dụng trong các mô hình YOLOv8. Nâng cấp này loại bỏ sự cần thiết của các hộp neo được xác định trước và điểm objectness, 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 làm cho YOLOv3u trở thành một 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 Các tính năng chính.

Làm thế nào tôi có thể sử dụng các mô hình YOLOv3 để suy luận?

Bạn có thể thực hiện suy luận bằng các mô hình YOLOv3 bằng 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")
# Load a COCO-pretrained YOLOv3u model and run inference on the 'bus.jpg' image
yolo predict model=yolov3u.pt source=path/to/bus.jpg

Tham khảo tài liệu về chế độ Inference để biết thêm chi tiết về cách chạy các mô hình YOLO.

Những tác vụ nào được hỗ trợ bởi YOLOv3 và các biến thể của nó?

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 nhiều giai đoạn triển khai và phát triển mô hình, chẳng hạn như Suy luận, Xác thực, Huấn luyện và Xuất. Để biết đầ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 của chúng tôi.

Tôi có thể tìm tài liệu tham khảo 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à kho lưu trữ Ultralytics YOLOv3. Ví dụ về trích dẫn BibTeX:

@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 phần Trích dẫn và Lời cảm ơn.



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

Bình luận