Sitelet https://docs.ultralytics.com/pt/usage/python
Ultralytics YOLO27:

Utilização de Python#

Bem-vindo à documentação sobre a utilização do Ultralytics YOLO com Python! Este guia foi concebido para te ajudar a integrar facilmente o Ultralytics YOLO nos teus projetos Python para deteção de objetos, segmentação de instâncias, segmentação semântica, estimativa de profundidade e classificação. Aqui, vais aprender a carregar e utilizar modelos pré-treinados, treinar novos modelos e fazer previsões em imagens. A interface Python fácil de usar é um recurso valioso para quem pretende incorporar o YOLO nos seus projetos Python, permitindo implementar rapidamente capacidades avançadas de deteção de objetos. Vamos começar!



Assista: Domine o Ultralytics YOLO: Python

Por exemplo, os utilizadores podem carregar um modelo, treiná-lo, avaliar o seu desempenho num conjunto de validação e até exportá-lo para o formato ONNX com apenas algumas linhas de código.

Python
from ultralytics import YOLO

# Cria um novo modelo YOLO de raiz
model = YOLO("yolo26n.yaml")

# Carrega um modelo YOLO pré-treinado (recomendado para o treino)
model = YOLO("yolo26n.pt")

# Treina o modelo com o conjunto de dados 'coco8.yaml' durante 3 épocas
results = model.train(data="coco8.yaml", epochs=3)

# Avalia o desempenho do modelo no conjunto de validação
results = model.val()

# Efetua a deteção de objetos numa imagem com o modelo
results = model("https://ultralytics.com/images/bus.jpg")

# Exporta o modelo para o formato ONNX
success = model.export(format="onnx")

Treinar#

O modo Train é utilizado para treinar um modelo YOLO num conjunto de dados personalizado. Neste modo, o modelo é treinado com o conjunto de dados e os hiperparâmetros especificados. O processo de treino otimiza os parâmetros do modelo para que este consiga prever com precisão as classes e as localizações dos objetos numa imagem.

Treinar
from ultralytics import YOLO

model = YOLO("yolo26n.pt")  # passa qualquer tipo de modelo
results = model.train(epochs=5)

Exemplos de treino

Validar#

O modo Val é usado para validar um modelo YOLO após o treino. Nesse modo, o modelo é avaliado em um conjunto de validação para medir sua precisão e capacidade de generalização. Esse modo pode ser usado para ajustar os hiperparâmetros do modelo e melhorar seu desempenho.

Validar
from ultralytics import YOLO

# Carregar um modelo YOLO
model = YOLO("yolo26n.yaml")

# Treinar o modelo
model.train(data="coco8.yaml", epochs=5)

# Validar na divisão de validação do conjunto de dados de treino
model.val()

Exemplos de Val

Prever#

O modo Predict é usado para fazer previsões com um modelo YOLO treinado em novas imagens ou vídeos. Nesse modo, o modelo é carregado de um arquivo de checkpoint, e o usuário pode fornecer imagens ou vídeos para realizar a inferência. O modelo prevê as classes e localizações dos objetos nas imagens ou vídeos de entrada.

Prever
import cv2
from PIL import Image

from ultralytics import YOLO

model = YOLO("model.pt")
# aceita todos os formatos - image/dir/Path/URL/video/PIL/ndarray. 0 para webcam
results = model.predict(source="0")
results = model.predict(source="folder", show=True)  # Exibir previsões. Aceita todos os argumentos de previsão do YOLO

# de PIL
im1 = Image.open("bus.jpg")
results = model.predict(source=im1, save=True)  # salvar imagens plotadas

# de ndarray
im2 = cv2.imread("bus.jpg")
results = model.predict(source=im2, save=True, save_txt=True)  # salvar previsões como rótulos

# de uma lista de PIL/ndarray
results = model.predict(source=[im1, im2])

Exemplos de Predict

Exportar#

O modo Export é usado para exportar um modelo YOLO para um formato adequado à implantação. Nesse modo, o modelo é convertido para um formato que pode ser usado por outros aplicativos de software ou dispositivos de hardware. Esse modo é útil ao implantar o modelo em ambientes de produção.

Exportar

Exporte um modelo YOLO oficial para ONNX com tamanho de lote e tamanho de imagem dinâmicos.

from ultralytics import YOLO

model = YOLO("yolo26n.pt")
model.export(format="onnx", dynamic=True)

Exemplos de exportação

Rastreamento#

O modo Track é usado para rastrear objetos em tempo real com um modelo YOLO. Nesse modo, o modelo é carregado de um arquivo de checkpoint, e o usuário pode fornecer um fluxo de vídeo ao vivo para realizar o rastreamento de objetos em tempo real. Esse modo é útil para aplicações como sistemas de vigilância ou carros autônomos.

Rastreamento
from ultralytics import YOLO

# Carregar um modelo
model = YOLO("yolo26n.pt")  # carregar um modelo oficial de detecção
model = YOLO("yolo26n-seg.pt")  # carregar um modelo oficial de segmentação
model = YOLO("path/to/best.pt")  # carregar um modelo personalizado

# Rastrear com o modelo
results = model.track(source="https://youtu.be/LNwODJXcvt4", show=True)
results = model.track(source="https://youtu.be/LNwODJXcvt4", show=True, tracker="bytetrack.yaml")

Exemplos de rastreamento

Benchmark#

O modo Benchmark é usado para avaliar a velocidade e a precisão de vários formatos de exportação para YOLO. Os benchmarks fornecem informações sobre o tamanho do formato exportado, suas métricas mAP50-95 (para detecção e segmentação de objetos) ou accuracy_top1 (para classificação) e o tempo de inferência em milissegundos por imagem nos diversos formatos de exportação, como ONNX, OpenVINO, TensorRT e outros. Essas informações podem ajudar os usuários a escolher o formato de exportação ideal para cada caso de uso, de acordo com seus requisitos de velocidade e precisão.

Benchmark

Faça o benchmark de um modelo YOLO oficial em todos os formatos de exportação.

from ultralytics.utils.benchmarks import benchmark

# Benchmark
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, device=0)

Exemplos de benchmark

Uso de Trainers#

A classe de modelo YOLO funciona como um wrapper de alto nível para as classes Trainer. Cada tarefa YOLO tem seu próprio trainer, que herda de BaseTrainer. Essa arquitetura oferece mais flexibilidade e possibilidades de personalização nos seus fluxos de trabalho de aprendizado de máquina.

Exemplo de Detection Trainer
from ultralytics.models.yolo.detect import DetectionPredictor, DetectionTrainer, DetectionValidator

overrides = {"model": "yolo26n.pt", "data": "coco8.yaml", "epochs": 3}

# Trainer
trainer = DetectionTrainer(overrides=overrides)
trainer.train()
trained_model = trainer.best  # caminho para best.pt

# Validator
validator = DetectionValidator(args={"data": "coco8.yaml"})
validator(model=trained_model)

# Predictor
predictor = DetectionPredictor(overrides={"model": trained_model})
predictor(source="https://ultralytics.com/images/bus.jpg")

# Retomar uma execução de treino interrompida a partir do último checkpoint
trainer = DetectionTrainer(overrides={"resume": "path/to/last.pt"})
trainer.train()

Você pode personalizar facilmente os Trainers para oferecer suporte a tarefas personalizadas ou explorar ideias de pesquisa e desenvolvimento. O design modular do Ultralytics YOLO permite adaptar a estrutura às suas necessidades específicas, seja para trabalhar em uma nova tarefa de visão computacional ou ajustar modelos existentes para obter melhor desempenho.

Tutoriais de personalização

Perguntas frequentes#

  • Integrar Ultralytics YOLO aos seus projetos Python é simples. Você pode carregar um modelo pré-treinado ou treinar um novo modelo do zero. Veja como começar:

    from ultralytics import YOLO
    
    # Carregar um modelo YOLO pré-treinado
    model = YOLO("yolo26n.pt")
    
    # Realizar detecção de objetos em uma imagem
    results = model("https://ultralytics.com/images/bus.jpg")
    
    # Visualizar os resultados
    for result in results:
        result.show()

    Veja exemplos mais detalhados na seção Modo Predict.

  • O Ultralytics YOLO oferece vários modos para atender a diferentes fluxos de trabalho de aprendizado de máquina. Eles incluem:

    • Train: treinar um modelo com conjuntos de dados personalizados.
    • Val: validar o desempenho do modelo em um conjunto de validação.
    • Predict: fazer previsões em novas imagens ou fluxos de vídeo.
    • Export: exportar modelos para vários formatos, como ONNX e TensorRT.
    • Track: rastreamento de objetos em tempo real em fluxos de vídeo.
    • Benchmark: avaliar o desempenho do modelo em diferentes configurações.

    Cada modo foi desenvolvido para oferecer funcionalidades abrangentes às diferentes etapas do desenvolvimento e implantação de modelos.

  • Para treinar um modelo YOLO personalizado, você precisa especificar seu conjunto de dados e outros hiperparâmetros. Veja um exemplo rápido:

    from ultralytics import YOLO
    
    # Carregar o modelo YOLO
    model = YOLO("yolo26n.yaml")
    
    # Treinar o modelo com um conjunto de dados personalizado
    model.train(data="path/to/your/dataset.yaml", epochs=10)

    Para saber mais sobre o treino e ver links para exemplos de uso, visite nossa página do Modo Train.

  • Com a função export, é simples exportar modelos YOLO em um formato adequado à implantação. Por exemplo, você pode exportar um modelo para o formato ONNX:

    from ultralytics import YOLO
    
    # Carregar o modelo YOLO
    model = YOLO("yolo26n.pt")
    
    # Exporta o modelo para o formato ONNX
    model.export(format="onnx")

    Para conhecer as várias opções de exportação, consulte a documentação do Modo Export.

  • Sim, é possível validar modelos YOLO em diferentes conjuntos de dados. Após o treino, você pode usar o modo de validação para avaliar o desempenho:

    from ultralytics import YOLO
    
    # Carregar um modelo YOLO
    model = YOLO("yolo26n.yaml")
    
    # Treinar o modelo
    model.train(data="coco8.yaml", epochs=5)
    
    # Validar o modelo em um conjunto de dados diferente
    model.val(data="path/to/separate/data.yaml")

    Consulte a página do Modo Val para ver exemplos detalhados e instruções de uso.

Comentários