Ultralytics YOLO27:
Get Started

YOLOv3 e YOLOv3u#

Visão geral#

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

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

  2. YOLOv3-Ultralytics: Esta é a implementação de YOLOv3 da Ultralytics em PyTorch, mantida no repositório ultralytics/yolov3. Mantém a arquitetura original baseada em âncoras e adiciona mais modelos pré-treinados e uma personalização mais simples.

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

Faixa do modelo de deteção de objetos YOLOv3

Principais funcionalidades#

  • YOLOv3: Introduziu a utilização de três escalas diferentes para a deteção, recorrendo a três tamanhos diferentes de kernels de deteção: 13x13, 26x26 e 52x52. Isto melhorou significativamente a precisão da deteção de objetos de vários tamanhos. Além disso, o YOLOv3 adicionou funcionalidades como previsões multilabel para cada caixa delimitadora e uma rede extratora de características melhorada.

  • YOLOv3u: Este modelo atualizado incorpora a cabeça dividida sem âncoras e sem objectness do YOLOv8. Ao eliminar a necessidade de caixas-âncora predefinidas e pontuações de objectness, este design da cabeça de deteção pode melhorar a capacidade do modelo para detetar objetos de vários tamanhos e formas. Isto torna o YOLOv3u mais robusto e preciso em tarefas de deteção de objetos.

Tarefas e modos compatíveis#

O YOLOv3 foi concebido especificamente para tarefas de deteção de objetos. A Ultralytics disponibiliza três variantes do YOLOv3: yolov3u, yolov3-tinyu e yolov3-sppu. O u no nome indica que estas variantes utilizam a cabeça sem âncoras do YOLOv8, ao contrário da arquitetura original, baseada em âncoras. Estes modelos são conhecidos pela sua eficácia em vários cenários reais, equilibrando precisão e velocidade. Cada variante oferece funcionalidades e otimizações únicas, sendo adequada para uma variedade de aplicações.

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

Tipo de modeloPesos pré-treinadosTarefas suportadasTreinamentoValidaçãoInferênciaExportar
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 apresenta, num relance, as capacidades de cada variante do YOLOv3, destacando a sua versatilidade e adequação a várias tarefas e modos de operação nos fluxos de trabalho de deteção de objetos.

Exemplos de uso#

Este exemplo apresenta exemplos simples de treino e inferência com 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 em PyTorch, assim como os ficheiros de configuração *.yaml, podem ser passados à classe YOLO() para criar uma instância do modelo em Python:

from ultralytics import YOLO

# Carrega um modelo YOLOv3u pré-treinado no COCO
model = YOLO("yolov3u.pt")

# Exibir informações do modelo (opcional)
model.info()

# Treina o modelo no conjunto de dados de exemplo COCO8 durante 100 épocas
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Executa a inferência com o modelo YOLOv3u na imagem 'bus.jpg'
results = model("path/to/bus.jpg")

Citações e agradecimentos#

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

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 deteçã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 deteções. O YOLOv3-Ultralytics é uma adaptação do YOLOv3 da Ultralytics que adiciona suporte para mais modelos pré-treinados e facilita a personalização dos modelos. O YOLOv3u é uma variante melhorada do YOLOv3-Ultralytics, que integra a cabeça dividida sem âncoras e sem objectness do YOLOv8, melhorando a robustez e a precisão da deteção para objetos de vários tamanhos. Para mais informações sobre as variantes, consulta a série YOLOv3.

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

    Exemplo
    from ultralytics import YOLO
    
    # Carrega um modelo YOLOv3u pré-treinado no COCO
    model = YOLO("yolov3u.pt")
    
    # Treina o modelo no conjunto de dados de exemplo COCO8 durante 100 épocas
    results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

    Para consultar mais opções e orientações de treino, visita a documentação do modo Train.

  • O YOLOv3u melhora o YOLOv3 e o YOLOv3-Ultralytics ao incorporar a cabeça dividida sem âncoras e sem objectness utilizada nos modelos YOLOv8. Esta atualização elimina a necessidade de caixas-âncora predefinidas e pontuações de objectness, aumentando a capacidade de detetar objetos de vários tamanhos e formas com maior precisão. Isto torna o YOLOv3u uma opção melhor para tarefas de deteção de objetos complexas e variadas. Para mais informações, consulta a secção Principais funcionalidades.

  • Podes executar inferências com modelos YOLOv3 através de scripts Python ou comandos CLI:

    Exemplo
    from ultralytics import YOLO
    
    # Carrega um modelo YOLOv3u pré-treinado no COCO
    model = YOLO("yolov3u.pt")
    
    # Executa a inferência com o modelo YOLOv3u na imagem 'bus.jpg'
    results = model("path/to/bus.jpg")

    Consulta a documentação do modo de inferência para saber mais sobre como executar modelos YOLO.

  • O YOLOv3, o YOLOv3-Tiny e o YOLOv3-SPP suportam principalmente tarefas de deteçã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 a lista completa de tarefas suportadas e informações mais detalhadas, visita a documentação das tarefas de deteção de objetos.

  • Se utilizares YOLOv3 na tua investigação, cita os artigos originais do YOLO e o repositório YOLOv3 da Ultralytics. 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 mais informações sobre citações, consulta a secção Citações e agradecimentos.

Comentários