Ir para o conteúdo

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.

  1. 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 aprimorou seus antecessores ao introduzir recursos como predições multiescala e três tamanhos diferentes de kernels de detecção.

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

Ultralytics YOLOv3

Principais Características

  • 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. Isso melhorou significativamente a precisão da detecção para objetos de diferentes tamanhos. Além disso, o YOLOv3 adicionou recursos como predições multi-rótulo para cada bounding box e uma rede de extração de recursos melhor.

  • YOLOv3u: Este modelo atualizado incorpora o head dividido sem anchor e sem objectness do YOLOv8. Ao eliminar a necessidade de anchor boxes predefinidas e scores de objectness, este design de head de detecção pode melhorar a capacidade do modelo de detectar objetos de vários tamanhos e formas. Isso torna o YOLOv3u mais robusto e preciso para tarefas de detecção de objetos.

Tarefas e Modos Suportados

YOLOv3 foi projetado especificamente para detecção de objetos tarefas. A Ultralytics suporta três variantes do YOLOv3: yolov3u, yolov3-tinyu e yolov3-sppu. O u no nome indica que estes utilizam o cabeçalho sem âncoras do YOLOv8, ao contrário de sua arquitetura original, que é baseada em âncoras. Esses modelos são conhecidos por sua eficácia em vários cenários do mundo real, equilibrando precisão e velocidade. Cada variante oferece recursos e otimizações exclusivos, tornando-os adequados para uma variedade de aplicações.

Todos os três modelos suportam um conjunto abrangente de modos, garantindo versatilidade em vários estágios de implantação de modelo e desenvolvimento. Esses modos incluem Inferência, Validação, Treinamento e Exportação, fornecendo aos usuários um kit de ferramentas completo para detecção de objetos eficaz.

Tipo de Modelo Pesos Pré-Treinados Tarefas Suportadas Inferência Validação Treinamento Exportar
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 geral das capacidades de cada variante do YOLOv3, destacando 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 treinamento e inferência do YOLOv3. Para obter documentação completa sobre estes e outros modos, consulte as páginas de documentação Predict, Train, Val e Export.

Exemplo

PyTorch pré-treinados *.pt modelos, bem como a configuração *.yaml os arquivos podem ser passados para o YOLO() classe 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")

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

# 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

Citações e Agradecimentos

Se você usar YOLOv3 em sua pesquisa, por favor cite os artigos originais do 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 desenvolverem o YOLOv3 original.

FAQ

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

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

Como posso treinar um modelo YOLOv3 usando Ultralytics?

Treinar um modelo YOLOv3 com Ultralytics é simples. Você pode treinar o modelo usando python ou 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)
# 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

Para opções e diretrizes de treinamento mais abrangentes, visite nossa documentação do modo Train.

O que torna o YOLOv3u mais preciso para tarefas de detecção de objetos?

YOLOv3u aprimora o YOLOv3 e o YOLOv3-Ultralytics ao incorporar o cabeçalho dividido sem âncoras e sem objetividade usado nos modelos YOLOv8. Essa atualização elimina a necessidade de caixas delimitadoras de âncoras predefinidas e pontuações de objetividade, aumentando sua capacidade de detectar objetos de vários tamanhos e formas com mais precisão. Isso torna o YOLOv3u uma escolha melhor para tarefas complexas e diversificadas de detecção de objetos. Para obter mais informações, consulte a seção Recursos Principais.

Como posso usar modelos YOLOv3 para inferência?

Você pode realizar a inferência usando modelos YOLOv3 por meio 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")
# Load a COCO-pretrained YOLOv3u model and run inference on the 'bus.jpg' image
yolo predict model=yolov3u.pt source=path/to/bus.jpg

Consulte a documentação do modo Inference para obter mais detalhes sobre a execução de modelos YOLO.

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

YOLOv3, YOLOv3-Tiny e YOLOv3-SPP oferecem suporte principalmente a tarefas de detecção de objetos. 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 um conjunto abrangente de tarefas suportadas e detalhes mais aprofundados, visite nossa documentação de tarefas de Detecção de Objetos.

Onde posso encontrar recursos para citar o YOLOv3 em minha pesquisa?

Se você usar YOLOv3 em sua pesquisa, por favor cite os artigos originais do 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 citações, consulte a seção Citações e Agradecimentos.



📅 Criado há 1 ano ✏️ Atualizado há 4 meses

Comentários