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.

FAQ

Quais são as diferenças entre o YOLOv3, o YOLOv3-Ultralytics e o YOLOv3u?

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

Como posso treinar um modelo YOLOv3 utilizando Ultralytics?

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

Exemplo

from ultralytics import YOLO

# Load a COCO-pretrained YOLOv3n model
model = YOLO("yolov3n.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 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

Para opções e directrizes de formação mais abrangentes, visita a nossa documentação sobre o modo de formação.

O que torna o YOLOv3u mais preciso para tarefas de deteção de objectos?

O YOLOv3u melhora o YOLOv3 e o YOLOv3-Ultralytics ao incorporar a cabeça dividida sem âncoras e sem objectos utilizada nos modelos YOLOv8 . Esta atualização elimina a necessidade de caixas de ancoragem pré-definidas e pontuações de objetividade, melhorando a sua capacidade de detetar objectos de diferentes tamanhos e formas com maior precisão. Isto torna o YOLOv3u uma melhor escolha para tarefas de deteção de objectos complexas e diversas. Para mais informações, consulta a secção Porquê o YOLOv3u.

Como é que posso utilizar os modelos YOLOv3 para inferência?

Podes efetuar a inferência utilizando modelos YOLOv3 através de Python scripts ou CLI comandos:

Exemplo

from ultralytics import YOLO

# Load a COCO-pretrained YOLOv3n model
model = YOLO("yolov3n.pt")

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

Consulta a documentação do modo de inferência para obteres mais informações sobre a execução dos modelos YOLO .

Que tarefas são suportadas pelo YOLOv3 e suas variantes?

O YOLOv3, o YOLOv3-Ultralytics e o YOLOv3u suportam principalmente tarefas de deteção de objectos. Esses modelos podem ser usados para vários estágios de implantação e desenvolvimento de modelos, como Inferência, Validação, Treinamento e Exportação. Para obter um conjunto abrangente de tarefas suportadas e detalhes mais aprofundados, visita a nossa documentação sobre tarefas de deteção de objectos.

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 YOLO e o repositório Ultralytics YOLOv3. 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 as citações, consulta a secção Citações e Agradecimentos.



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

Comentários