Salta para o conteúdo

YOLOv3, YOLOv3-Ultralytics, e YOLOv3u

Visão geral

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

  1. YOLOv3: Esta é a terceira versão do algoritmo de deteção de objectos You Only Look Once (YOLO). Originalmente desenvolvido por Joseph Redmon, o YOLOv3 melhorou os seus antecessores introduzindo características como previsões multi-escala e três tamanhos diferentes de núcleos de deteção.

  2. YOLOv3-Ultralytics: Este é o Ultralytics' implementação do modelo YOLOv3. Reproduz a arquitetura original do YOLOv3 e oferece funcionalidades adicionais, como o suporte para mais modelos pré-treinados e opções de personalização mais fáceis.

  3. YOLOv3u: Esta é uma versão actualizada do YOLOv3-Ultralytics que incorpora a cabeça de divisão sem âncoras e sem objectos utilizada nos modelos YOLOv8 . O YOLOv3u mantém a mesma arquitetura de espinha dorsal e pescoço que o YOLOv3, mas com a cabeça de deteção actualizada de YOLOv8.

Ultralytics YOLOv3

Características principais

  • YOLOv3: Introduziu o uso de três escalas diferentes para deteção, aproveitando três tamanhos diferentes de kernels de deteção: 13x13, 26x26 e 52x52. Isto melhorou significativamente a precisão da deteção para objectos de diferentes tamanhos. Além disso, o YOLOv3 adicionou recursos como previsões de vários rótulos para cada caixa delimitadora e uma melhor rede de extratores de recursos.

  • YOLOv3-Ultralytics: Ultralytics A implementação do YOLOv3 oferece o mesmo desempenho que o modelo original, mas inclui suporte adicional para mais modelos pré-treinados, métodos de treino adicionais e opções de personalização mais fáceis. Isto torna-o mais versátil e fácil de utilizar em aplicações práticas.

  • YOLOv3u: Este modelo atualizado incorpora a cabeça dividida sem âncoras e sem objectos de YOLOv8. Ao eliminar a necessidade de caixas de âncoras pré-definidas e pontuações de objectos, este design da cabeça de deteção pode melhorar a capacidade do modelo para detetar objectos de diferentes tamanhos e formas. Isto torna o YOLOv3u mais robusto e preciso para tarefas de deteção de objectos.

Tarefas e modos suportados

A série YOLOv3, incluindo YOLOv3, YOLOv3-Ultralytics e YOLOv3u, foi concebida especificamente para tarefas de deteção de objectos. 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 características e optimizações únicas, tornando-os adequados para uma série de aplicações.

Os três modelos suportam um conjunto abrangente de modos, garantindo versatilidade em várias fases da implementação e desenvolvimento do modelo. Estes modos incluem Inferência, Validação, Treino e Exportação, fornecendo aos utilizadores um conjunto de ferramentas completo para uma deteção de objectos eficaz.

Tipo de modelo Tarefas suportadas Inferência Validação Formação Exportação
YOLOv3 Deteção de objectos
YOLOv3-Ultralytics Deteção de objectos
YOLOv3u Deteção de objectos

Esta tabela fornece uma visão rápida das capacidades de cada variante YOLOv3, destacando a sua versatilidade e adequação a várias tarefas e modos operacionais em fluxos de trabalho de deteção de objectos.

Exemplos de utilização

Este exemplo fornece exemplos simples de treinamento e inferência do YOLOv3. Para obter a documentação completa sobre estes e outros modos, consulta as páginas de documentação Predict, Train, Val e Export.

Exemplo

PyTorch pré-treinado *.pt modelos, bem como a configuração *.yaml podem ser passados para o YOLO() para criar uma instância de modelo em python:

from ultralytics import YOLO

# Load a COCO-pretrained YOLOv3n model
model = YOLO('yolov3n.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 YOLOv3n model on the 'bus.jpg' image
results = model('path/to/bus.jpg')

CLI estão disponíveis para executar diretamente os modelos:

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

# Load a COCO-pretrained YOLOv3n model and run inference on the 'bus.jpg' image
yolo predict model=yolov3n.pt source=path/to/bus.jpg

Citações e agradecimentos

Se utilizares o YOLOv3 na tua investigação, cita os artigos originais YOLO e o repositório Ultralytics YOLOv3:

@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 por terem desenvolvido o YOLOv3 original.



Criado em 2023-11-12, Atualizado em 2024-01-07
Autores: glenn-jocher (4)

Comentários