Uso de Python#
Bem-vindo à documentação de uso do Ultralytics YOLO Python! Este guia foi concebido para ajudar-te a integrar perfeitamente o Ultralytics YOLO nos teus projetos Python para object detection, instance segmentation, semantic segmentation, depth estimation e classification. Aqui, vais aprender a carregar e utilizar 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 deteçã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 it to ONNX format 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 Train mode é utilizado para treinar um modelo YOLO num conjunto de dados personalizado. Neste modo, o modelo é treinado utilizando o conjunto de dados especificado e 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 de objetos numa imagem.
from ultralytics import YOLO
model = YOLO("yolo26n.pt") # pass any model type
results = model.train(epochs=5)Validar#
O Val mode é 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 accuracy e desempenho de generalização. Este modo pode ser utilizado para afinar 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()Prever#
O Predict mode é utilizado para fazer previsões utilizando 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])Exportar#
O Export mode é utilizado para exportar um modelo YOLO para um formato que possa ser utilizado para implementação. Neste modo, o modelo é convertido para um formato que pode ser utilizado por outras aplicações de software ou dispositivos de hardware. Este modo é útil ao implementar 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 Track mode é utilizado para seguir 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 seguimento de objetos em tempo real. Este modo é útil para aplicações como sistemas de vigilância ou self-driving cars.
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 Benchmark mode é utilizado para analisar 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 deteçã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.
Faça um benchmark de um modelo oficial YOLO 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)Usando Trainers#
A classe de modelo YOLO serve como um wrapper de alto nível para as classes Trainer. Cada tarefa YOLO tem o seu próprio formador (trainer), que herda de BaseTrainer. Esta arquitetura permite uma maior flexibilidade e personalização nos teus machine learning workflows.
from ultralytics.models.yolo.detect import DetectionPredictor, DetectionTrainer, DetectionValidator
# trainer
trainer = DetectionTrainer(overrides={})
trainer.train()
trained_model = trainer.best
# Validator
val = DetectionValidator(args=...)
val(model=trained_model)
# predictor
pred = DetectionPredictor(overrides={})
pred(source=SOURCE, model=trained_model)
# resume from last weight
overrides["resume"] = trainer.last
trainer = DetectionTrainer(overrides=overrides)Podes facilmente personalizar Trainers para suportar tarefas personalizadas ou explorar ideias de investigação e desenvolvimento. O design modular do Ultralytics YOLO permite-te adaptar o framework às tuas necessidades específicas, quer estejas a trabalhar numa nova tarefa de computer vision ou a afinar modelos existentes para um melhor desempenho.
FAQ#
Integrar o Ultralytics YOLO em 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 # 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 Predict Mode.
O Ultralytics YOLO fornece vários modos para atender a diferentes machine learning workflows. 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: Seguimento 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 de model development and deployment.
Para treinar um modelo YOLO personalizado, precisas de especificar o teu conjunto de dados e outros hyperparameters. 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 Train Mode.
Exportar modelos YOLO num formato adequado para implementaçã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 de Export Mode.
Sim, é possível validar modelos YOLO em diferentes conjuntos de dados. Após o treinamento, você pode usar 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 Val Mode para obter exemplos detalhados e utilização.