YOLOv3 e YOLOv3u
Visão geral
Este documento apresenta uma visão geral de três modelos de detecção de objetos intimamente relacionados, nomeadamente YOLOv3, YOLOv3-Ultralytics, e YOLOv3u.
-
YOLOv3: Esta é a terceira versão do algoritmo de detecção de objetos You Only Look Once (YOLO). Originalmente desenvolvido por Joseph Redmon, o YOLOv3 melhorou os seus antecessores ao introduzir funcionalidades como previsões multiescala e três tamanhos diferentes de kernels de detecção.
-
YOLOv3u: Esta é uma versão atualizada do YOLOv3-Ultralytics que incorpora o "split head" sem âncoras (anchor-free) e sem "objectness" utilizado nos modelos YOLOv8. O YOLOv3u mantém a mesma arquitetura de backbone e neck que o YOLOv3, mas com o detection head atualizado do YOLOv8.

Principais recursos
-
YOLOv3:Introduziu o uso de três escalas diferentes para detecção, aproveitando três tamanhos diferentes de kernels de detecção: 13x13, 26x26 e 52x52. Isto melhorou significativamente a precisão da detecção para objetos de diferentes tamanhos. Além disso, o YOLOv3 adicionou funcionalidades como previsões de multi-rótulo para cada bounding box e uma rede extratora de características melhorada.
-
YOLOv3u:Este modelo atualizado incorpora o "split head" sem âncoras e sem "objectness" do YOLOv8. Ao eliminar a necessidade de "anchor boxes" predefinidas e pontuações de "objectness", este design de "detection head" pode melhorar a capacidade do modelo em detectar objetos de tamanhos e formas variadas. Isto torna o YOLOv3u mais robusto e preciso para tarefas de detecção de objetos.
Tarefas e modos suportados
O YOLOv3 foi concebido especificamente para tarefas de object detection. A Ultralytics suporta três variantes do YOLOv3: yolov3u, yolov3-tinyu e yolov3-sppu. O u no nome significa que estes utilizam o "head" sem âncoras do YOLOv8, ao contrário da sua arquitetura original que é baseada em âncoras. Estes modelos são reconhecidos pela sua eficácia em vários cenários do mundo real, equilibrando precisão e velocidade. Cada variante oferece funcionalidades e otimizações únicas, tornando-as adequadas para uma gama de aplicações.
Todos os três modelos suportam um conjunto abrangente de modos, garantindo versatilidade em várias fases de model deployment e desenvolvimento. Estes modos incluem Inference, Validação, Treinamento, e Exportação, fornecendo aos utilizadores um conjunto de ferramentas completo para uma detecção de objetos eficaz.
| Tipo de Modelo | Pesos Pré-treinados | Tarefas Suportadas | Inference | Validação | Treinamento | Exportação |
|---|---|---|---|---|---|---|
| YOLOv3(u) | yolov3u.pt | Detecção de Objetos | ✅ | ✅ | ✅ | ✅ |
| YOLOv3-Tiny(u) | yolov3-tinyu.pt | Detecção de Objetos | ✅ | ✅ | ✅ | ✅ |
| YOLOv3u-SPP(u) | yolov3-sppu.pt | Detecção de Objetos | ✅ | ✅ | ✅ | ✅ |
Esta tabela fornece uma visão rápida das capacidades de cada variante do YOLOv3, destacando a sua versatilidade e adequação para várias tarefas e modos operacionais em fluxos de trabalho de detecção de objetos.
Exemplos de uso
Este exemplo fornece exemplos simples de treino e inferência com YOLOv3. Para a documentação completa sobre estes e outros modos consulta as Previsão, Treinar, Val e Exportação páginas de documentação.
PyTorch modelos *.pt pré-treinados, bem como ficheiros de *.yaml configuração podem ser passados para a classe YOLO() para criar uma instância de modelo em 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")Citações e Agradecimentos
Se utilizares o YOLOv3 na tua investigação, por favor cita os artigos originais do YOLO e o repositório YOLOv3 da Ultralytics:
@article{redmon2018yolov3,
title={YOLOv3: An Incremental Improvement},
author={Redmon, Joseph and Farhadi, Ali},
journal={arXiv preprint arXiv:1804.02767},
year={2018}
}Obrigado a Joseph Redmon e Ali Farhadi pelo desenvolvimento do YOLOv3 original.
FAQ
Quais são as diferenças entre o YOLOv3, YOLOv3-Ultralytics e YOLOv3u?
O YOLOv3 é a terceira iteração do algoritmo object detection YOLO (You Only Look Once) desenvolvido por Joseph Redmon, conhecido pelo seu equilíbrio entre accuracy e velocidade, utilizando três escalas diferentes (13x13, 26x26 e 52x52) para detecções. O YOLOv3-Ultralytics é a adaptação do YOLOv3 feita pela Ultralytics, que adiciona suporte para mais modelos pré-treinados e facilita a personalização do modelo. O YOLOv3u é uma variante atualizada do YOLOv3-Ultralytics, integrando o "split head" sem âncoras e sem "objectness" do YOLOv8, melhorando a robustez e precisão da detecção para vários tamanhos de objeto. Para mais detalhes sobre as variantes, consulta a série YOLOv3.
Como posso treinar um modelo YOLOv3 usando a Ultralytics?
Treinar um modelo YOLOv3 com a Ultralytics é simples. Podes treinar o modelo usando Python ou CLI:
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)Para opções de treino e diretrizes mais abrangentes, visita a nossa documentação do modo de Treino (Train).
O que torna o YOLOv3u mais preciso para tarefas de detecção de objetos?
O YOLOv3u melhora o YOLOv3 e o YOLOv3-Ultralytics ao incorporar o "split head" sem âncoras e sem "objectness" usado nos modelos YOLOv8. Esta atualização elimina a necessidade de "anchor boxes" predefinidas e pontuações de "objectness", aumentando a sua capacidade de detectar objetos de tamanhos e formas variadas com maior precisão. Isto torna o YOLOv3u uma escolha melhor para tarefas de detecção de objetos complexas e diversas. Para mais informações, consulta a Principais recursos secção.
Como posso usar modelos YOLOv3 para inferência?
Podes realizar inferência usando modelos YOLOv3 através de scripts Python ou comandos da CLI:
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")Consulta o Documentação do modo de Inferência para mais detalhes sobre a execução de modelos YOLO.
Que tarefas são suportadas pelo YOLOv3 e pelas suas variantes?
O YOLOv3, YOLOv3-Tiny e YOLOv3-SPP suportam principalmente tarefas de detecção de objetos. Estes modelos podem ser usados para várias fases de implementação e desenvolvimento de modelos, tais como Inferência, Validação, Treino e Exportação. Para um conjunto abrangente de tarefas suportadas e detalhes mais aprofundados, visita a nossa documentação de tarefas de Detecção de Objetos.
Onde posso encontrar recursos para citar o YOLOv3 na minha investigação?
Se utilizares o YOLOv3 na tua investigação, por favor cita os artigos originais do YOLO e o repositório YOLOv3 da Ultralytics. Exemplo de citação BibTeX:
@article{redmon2018yolov3,
title={YOLOv3: An Incremental Improvement},
author={Redmon, Joseph and Farhadi, Ali},
journal={arXiv preprint arXiv:1804.02767},
year={2018}
}Para mais detalhes sobre citações, consulta a Citações e Agradecimentos secção.