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.
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.
from ultralytics import YOLO
model = YOLO("yolo26n.pt") # passa qualquer tipo de modelo
results = model.train(epochs=5)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.
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()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.
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])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.
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)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.
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")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.
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)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.
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.
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.