Uso em Python#
Bem-vindo à documentação de Uso em Python do Ultralytics YOLO! Este guia foi criado para ajudar-te a integrar perfeitamente o Ultralytics YOLO nos teus projetos Python para detecção de objetos, segmentação de instâncias, segmentação semântica, estimação de profundidade e classificação. Aqui, aprenderás a carregar e usar modelos pré-treinados, treinar novos modelos e realizar previsões em imagens. A interface Python de fácil utilização é um recurso valioso para quem quer incorporar o YOLO nos seus projetos Python, permitindo-te implementar rapidamente capacidades avançadas de detecção de objetos. Vamos começar!
Watch: Mastering 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
# Create a new YOLO model from scratch
model = YOLO("yolo26n.yaml")
# Load a pretrained YOLO model (recommended for training)
model = YOLO("yolo26n.pt")
# Train the model using the 'coco8.yaml' dataset for 3 epochs
results = model.train(data="coco8.yaml", epochs=3)
# Evaluate the model's performance on the validation set
results = model.val()
# Perform object detection on an image using the model
results = model("https://ultralytics.com/images/bus.jpg")
# Export the model to ONNX format
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 utilizando o conjunto de dados especificado e os hiperparâmetros. O processo de treino envolve a otimização dos parâmetros do modelo para que este possa prever com precisão as classes e localizações dos objetos numa imagem.
from ultralytics import YOLO
model = YOLO("yolo26n.pt") # pass any model type
results = model.train(epochs=5)Validação#
O modo Val é utilizado para validar um modelo YOLO após este ter sido treinado. Neste modo, o modelo é avaliado num conjunto de validação para medir a sua precisão e desempenho de generalização. Este modo pode ser utilizado para ajustar os hiperparâmetros do modelo de modo a melhorar o seu desempenho.
from ultralytics import YOLO
# Load a YOLO model
model = YOLO("yolo26n.yaml")
# Train the model
model.train(data="coco8.yaml", epochs=5)
# Validate on training data
model.val()Previsão#
O modo Predict é utilizado para fazer previsões com um modelo YOLO treinado em novas imagens ou vídeos. Neste modo, o modelo é carregado a partir de um ficheiro de ponto de controlo e o utilizador 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")
# accepts all formats - image/dir/Path/URL/video/PIL/ndarray. 0 for webcam
results = model.predict(source="0")
results = model.predict(source="folder", show=True) # Display preds. Accepts all YOLO predict arguments
# from PIL
im1 = Image.open("bus.jpg")
results = model.predict(source=im1, save=True) # save plotted images
# from ndarray
im2 = cv2.imread("bus.jpg")
results = model.predict(source=im2, save=True, save_txt=True) # save predictions as labels
# from list of PIL/ndarray
results = model.predict(source=[im1, im2])Exportação#
O modo Export é utilizado para exportar um modelo YOLO para um formato que possa ser usado para implantação. Neste modo, o modelo é convertido para um formato utilizável por outras aplicações de software ou dispositivos de hardware. Este modo é útil ao implantar o modelo em ambientes de produção.
Exporta 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)Rastrear#
O modo Track é utilizado para rastrear objetos em tempo real utilizando um modelo YOLO. Neste modo, o modelo é carregado a partir de um ficheiro de ponto de controlo e o utilizador pode fornecer um fluxo de vídeo em direto para realizar o rastreio de objetos em tempo real. Este modo é útil para aplicações como sistemas de vigilância ou carros autónomos.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n.pt") # load an official detection model
model = YOLO("yolo26n-seg.pt") # load an official segmentation model
model = YOLO("path/to/best.pt") # load a custom model
# Track with the model
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 é utilizado para traçar o perfil de velocidade e precisão de vários formatos de exportação para o YOLO. Os benchmarks fornecem informações sobre o tamanho do formato exportado, as suas métricas mAP50-95 (para detecção e segmentação de objetos) ou métricas accuracy_top1 (para classificação), e o tempo de inferência em milissegundos por imagem em vários formatos de exportação como ONNX, OpenVINO, TensorRT e outros. Esta informação pode ajudar os utilizadores a escolher o formato de exportação ideal para o seu caso de uso específico com base nos seus requisitos de velocidade e precisão.
Avalia o desempenho 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 Treinadores#
A classe de modelo YOLO serve como um wrapper de alto nível para as classes Trainer. Cada tarefa do YOLO tem o seu próprio treinador, que herda de BaseTrainer. Esta arquitetura permite maior flexibilidade e personalização nos teus fluxos de trabalho de aprendizagem automática.
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 # path to 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")
# Resume from the last checkpoint
trainer = DetectionTrainer(overrides={**overrides, "resume": trainer.last})Podes personalizar facilmente os Treinadores para suportar tarefas personalizadas ou explorar ideias de investigação e desenvolvimento. O design modular do Ultralytics YOLO permite-te adaptar a estrutura às tuas necessidades específicas, estejas a trabalhar numa nova tarefa de visão computacional ou a afinar modelos existentes para um melhor desempenho.
Perguntas frequentes#
Integrar o Ultralytics YOLO nos teus projetos Python é simples. Podes carregar um modelo pré-treinado ou treinar um novo modelo do zero. Eis como começar:
from ultralytics import YOLO # Load a pretrained YOLO model model = YOLO("yolo26n.pt") # Perform object detection on an image results = model("https://ultralytics.com/images/bus.jpg") # Visualize the results for result in results: result.show()Vê exemplos mais detalhados na nossa secção Modo Predict.
O Ultralytics YOLO fornece vários modos para atender a diferentes fluxos de trabalho de aprendizagem automática. Estes incluem:
- Train: Treina um modelo utilizando conjuntos de dados personalizados.
- Val: Valida o desempenho do modelo num conjunto de validação.
- Predict: Faz previsões em novas imagens ou fluxos de vídeo.
- Export: Exporta modelos para vários formatos como ONNX e TensorRT.
- Track: Rastreio de objetos em tempo real em fluxos de vídeo.
- Benchmark: Avalia o desempenho do modelo em diferentes configurações.
Cada modo foi concebido para fornecer funcionalidades abrangentes para diferentes fases do desenvolvimento e implantação de modelos.
Para treinar um modelo YOLO personalizado, precisas de especificar o teu conjunto de dados e outros hiperparâmetros. Aqui tens um exemplo rápido:
from ultralytics import YOLO # Load the YOLO model model = YOLO("yolo26n.yaml") # Train the model with custom dataset model.train(data="path/to/your/dataset.yaml", epochs=10)Para mais detalhes sobre o treino e hiperligações para exemplos de utilização, visita a nossa página Modo Train.
Exportar modelos YOLO num formato adequado para implantação é simples com a função
export. Por exemplo, podes exportar um modelo para o formato ONNX:from ultralytics import YOLO # Load the YOLO model model = YOLO("yolo26n.pt") # Export the model to ONNX format model.export(format="onnx")Para várias opções de exportação, consulta a documentação do Modo Export.
Sim, é possível validar modelos YOLO em diferentes conjuntos de dados. Após o treino, podes utilizar o modo de validação para avaliar o desempenho:
from ultralytics import YOLO # Load a YOLO model model = YOLO("yolo26n.yaml") # Train the model model.train(data="coco8.yaml", epochs=5) # Validate the model on a different dataset model.val(data="path/to/separate/data.yaml")Consulta a página Modo Val para obter exemplos detalhados e utilização.