Ultralytics YOLO27:

YOLOv3 e YOLOv3u#

Visão geral#

Este documento apresenta uma visão geral de três modelos de detecção de objetos estreitamente relacionados, nomeadamente YOLOv3, YOLOv3-Ultralytics e YOLOv3u.

  1. YOLOv3: Esta é a terceira versão do algoritmo de detecção de objetos You Only Look Once (YOLO). Desenvolvido originalmente por Joseph Redmon, o YOLOv3 aperfeiçoou os seus antecessores ao introduzir funcionalidades como previsões multiescala e três tamanhos diferentes de kernels de detecção.

  2. YOLOv3-Ultralytics: Esta é a implementação em PyTorch da Ultralytics para o YOLOv3, mantida no repositório ultralytics/yolov3. Ela mantém a arquitetura baseada em âncoras original, enquanto adiciona mais modelos pré-treinados e personalização mais fácil.

  3. YOLOv3u: Esta é uma versão atualizada do YOLOv3-Ultralytics que incorpora a cabeça dividida, sem âncoras e sem objetividade, utilizada nos modelos YOLOv8. O YOLOv3u mantém a mesma arquitetura de backbone e neck do YOLOv3, mas com a cabeça de detecção atualizada do YOLOv8.

Banner do modelo de detecção de objetos YOLOv3

Principais funcionalidades#

  • YOLOv3: Introduziu o uso de três escalas diferentes para a detecção, utilizando três tamanhos diferentes de kernels de detecção: 13x13, 26x26 e 52x52. Isso melhorou significativamente a precisão da detecção de objetos de diferentes tamanhos. Além disso, o YOLOv3 adicionou funcionalidades como previsões multilabel para cada caixa delimitadora e uma rede extratora de características aprimorada.

  • YOLOv3u: Este modelo atualizado incorpora a cabeça dividida, sem âncoras e sem objetividade, do YOLOv8. Ao eliminar a necessidade de caixas-âncora predefinidas e pontuações de objetividade, o design desta cabeça de detecção pode melhorar a capacidade do modelo de detetar objetos de diferentes tamanhos e formas. Isso 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 detecção de objetos. A Ultralytics oferece suporte a três variantes do YOLOv3: yolov3u, yolov3-tinyu e yolov3-sppu. O u no nome indica que estas utilizam a cabeça sem âncoras do YOLOv8, ao contrário da arquitetura original, 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 variedade de aplicações.

Os três modelos são compatíveis com um conjunto abrangente de modos, garantindo versatilidade em várias etapas da implementação de modelos e do desenvolvimento. Estes modos incluem Inferência, Validação, Treino e Exportação, fornecendo aos utilizadores um conjunto de ferramentas completo para uma detecção de objetos eficaz.

Tipo de modeloPesos pré-treinadosTarefas suportadasTreinoValidaçãoInferênciaExportação
YOLOv3(u)yolov3u.ptDeteção de objetos
YOLOv3-Tiny(u)yolov3-tinyu.ptDeteção de objetos
YOLOv3-SPP(u)yolov3-sppu.ptDeteção de objetos

Esta tabela fornece uma visão geral 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 utilização#

Este exemplo apresenta exemplos simples de treino e inferência com o YOLOv3. Para consultar a documentação completa sobre estes e outros modos, vê as páginas de documentação Predict, Train, Val e Export.

Exemplo

Os modelos *.pt pré-treinados do PyTorch, bem como os ficheiros de configuração *.yaml, podem ser transmitidos à 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, cita os artigos originais do YOLO e o repositório Ultralytics YOLOv3:

Citação
@article{redmon2018yolov3,
  title={YOLOv3: An Incremental Improvement},
  author={Redmon, Joseph and Farhadi, Ali},
  journal={arXiv preprint arXiv:1804.02767},
  year={2018}
}

Agradecemos a Joseph Redmon e Ali Farhadi pelo desenvolvimento do YOLOv3 original.

Perguntas frequentes#

  • O YOLOv3 é a terceira iteração do algoritmo de detecção de objetos YOLO (You Only Look Once), desenvolvido por Joseph Redmon e conhecido pelo equilíbrio entre precisão e velocidade, utilizando três escalas diferentes (13x13, 26x26 e 52x52) para as detecções. O YOLOv3-Ultralytics é uma adaptação do YOLOv3 pela Ultralytics que adiciona suporte para mais modelos pré-treinados e facilita a personalização dos modelos. O YOLOv3u é uma variante atualizada do YOLOv3-Ultralytics que integra a cabeça dividida, sem âncoras e sem objetividade, do YOLOv8, melhorando a robustez e a precisão da detecção para objetos de vários tamanhos. Para obter mais detalhes sobre as variantes, consulta a série YOLOv3.

  • Treinar um modelo YOLOv3 com a Ultralytics é simples. Podes treinar o modelo utilizando Python ou a CLI:

    Exemplo
    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 consultar opções e orientações de treino mais abrangentes, visita a nossa documentação do modo Train.

  • O YOLOv3u melhora o YOLOv3 e o YOLOv3-Ultralytics ao incorporar a cabeça dividida, sem âncoras e sem objetividade, utilizada nos modelos YOLOv8. Esta atualização elimina a necessidade de caixas-âncora predefinidas e pontuações de objetividade, melhorando a capacidade de detetar com maior precisão objetos de diferentes tamanhos e formas. Isso torna o YOLOv3u uma opção melhor para tarefas de detecção de objetos complexas e diversificadas. Para obter mais informações, consulta a secção Principais funcionalidades.

  • Podes executar inferência utilizando modelos YOLOv3 através de scripts Python ou comandos da CLI:

    Exemplo
    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 a documentação do modo de inferência para obter mais detalhes sobre a execução de modelos YOLO.

  • YOLOv3, YOLOv3-Tiny e YOLOv3-SPP suportam principalmente tarefas de detecção de objetos. Estes modelos podem ser utilizados em várias etapas da implementação e do desenvolvimento de modelos, como Inferência, Validação, Treino e Exportação. Para consultar o conjunto completo de tarefas suportadas e obter informações mais detalhadas, visita a nossa documentação sobre tarefas de detecção de objetos.

  • Se utilizares o YOLOv3 na tua investigação, cita os artigos originais do YOLO e o repositório Ultralytics YOLOv3. Exemplo de citação BibTeX:

    Citação
    @article{redmon2018yolov3,
      title={YOLOv3: An Incremental Improvement},
      author={Redmon, Joseph and Farhadi, Ali},
      journal={arXiv preprint arXiv:1804.02767},
      year={2018}
    }

    Para obter mais detalhes sobre citações, consulta a secção Citações e agradecimentos.

Comentários