Meet YOLO26: next-gen vision AI.

Link to this sectionPredição de modelo com Ultralytics YOLO#

Ultralytics YOLO ecosystem and integrations

Link to this sectionIntrodução#

No mundo do machine learning e da computer vision, o processo de dar sentido a dados visuais é frequentemente chamado de inferência ou predição. O Ultralytics YOLO26 oferece um recurso poderoso conhecido como modo predict, feito sob medida para inferência de alto desempenho em tempo real em uma ampla gama de fontes de dados.



Watch: How to Extract Results from Ultralytics YOLO26 Tasks for Custom Projects 🚀

Link to this sectionAplicações do mundo real#

ManufaturaEsportesSegurança
Detecção de Peças de Reposição de VeículosDetecção de Jogadores de FutebolDetecção de Queda de Pessoas
Detecção de Peças de Reposição de VeículosDetecção de Jogadores de FutebolDetecção de Queda de Pessoas

Link to this sectionPor que usar o Ultralytics YOLO para inferência?#

Veja por que você deve considerar o modo predict do YOLO26 para suas várias necessidades de inferência:

  • Versatilidade: Capaz de executar inferência em imagens, vídeos e até mesmo transmissões ao vivo.
  • Desempenho: Projetado para processamento em tempo real e de alta velocidade sem sacrificar a accuracy.
  • Facilidade de uso: Interfaces intuitivas em Python e CLI para implantação e teste rápidos.
  • Altamente personalizável: Várias configurações e parâmetros para ajustar o comportamento de inferência do modelo de acordo com suas necessidades específicas.
  • Pronto para produção: Implante modelos como endpoints de API na Ultralytics Platform com escalonamento automático e monitoramento, ou execute a inferência localmente.

Link to this sectionPrincipais recursos do modo predict#

O modo predict do YOLO26 foi projetado para ser robusto e versátil, apresentando:

  • Compatibilidade com múltiplas fontes de dados: Seja com dados em formato de imagens individuais, uma coleção de imagens, arquivos de vídeo ou fluxos de vídeo em tempo real, o modo predict resolve para você.
  • Modo de streaming: Use o recurso de streaming para gerar um gerador de objetos Results com uso eficiente de memória. Habilite isso definindo stream=True no método de chamada do preditor.
  • Processamento em lote: Processe várias imagens ou quadros de vídeo em um único lote, reduzindo ainda mais o tempo total de inferência.
  • Fácil de integrar: Integre facilmente com pipelines de dados existentes e outros componentes de software, graças à sua API flexível.

Os modelos Ultralytics YOLO retornam uma lista Python de objetos Results ou um gerador de objetos Results com eficiência de memória quando stream=True é passado para o modelo durante a inferência:

Prever
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")  # pretrained YOLO26n model

# Run batched inference on a list of images
results = model(["image1.jpg", "image2.jpg"])  # return a list of Results objects

# Process results list
for result in results:
    boxes = result.boxes  # Boxes object for bounding box outputs
    masks = result.masks  # Masks object for segmentation masks outputs
    keypoints = result.keypoints  # Keypoints object for pose outputs
    probs = result.probs  # Probs object for classification outputs
    obb = result.obb  # Oriented boxes object for OBB outputs
    result.show()  # display to screen
    result.save(filename="result.jpg")  # save to disk

Link to this sectionFontes de inferência#

O YOLO26 pode processar diferentes tipos de fontes de entrada para inferência, conforme mostrado na tabela abaixo. As fontes incluem imagens estáticas, fluxos de vídeo e vários formatos de dados. A tabela também indica se cada fonte pode ser usada no modo de streaming com o argumento stream=True ✅. O modo de streaming é benéfico para processar vídeos ou transmissões ao vivo, pois cria um gerador de resultados em vez de carregar todos os quadros na memória.

Dica

Use stream=True para processar vídeos longos ou grandes conjuntos de dados para gerenciar a memória com eficiência. Quando stream=False, os resultados de todos os quadros ou pontos de dados são armazenados na memória, o que pode aumentar rapidamente e causar erros de falta de memória (out-of-memory) para entradas grandes. Em contraste, stream=True utiliza um gerador, que mantém apenas os resultados do quadro ou ponto de dados atual na memória, reduzindo significativamente o consumo de memória e evitando problemas de falta de memória.

OrigemExemploTipoNotas
image'image.jpg'str ou PathArquivo de imagem única.
URL'https://ultralytics.com/images/bus.jpg'strURL para uma imagem.
screenshot'screen'strCapturar uma captura de tela.
PILImage.open('image.jpg')PIL.ImageFormato HWC com canais RGB.
OpenCVcv2.imread('image.jpg')np.ndarrayFormato HWC com canais BGR uint8 (0-255).
NumPynp.zeros((640,1280,3))np.ndarrayFormato HWC com canais BGR uint8 (0-255).
torchtorch.zeros(16,3,320,640)torch.TensorFormato BCHW com canais RGB float32 (0.0-1.0).
CSV'sources.csv'str ou PathArquivo CSV contendo caminhos para imagens, vídeos ou diretórios.
video ✅'video.mp4'str ou PathArquivo de vídeo em formatos como MP4, AVI, etc.
directory ✅'path/'str ou PathCaminho para um diretório contendo imagens ou vídeos.
glob ✅'path/*.jpg'strPadrão Glob para combinar vários arquivos. Use o caractere * como um curinga.
YouTube ✅'https://youtu.be/LNwODJXcvt4'strURL para um vídeo do YouTube.
stream ✅'rtsp://example.com/media.mp4'strURL para protocolos de streaming como RTSP, RTMP, TCP ou um endereço IP.
multi-stream ✅'list.streams'str ou PathArquivo de texto *.streams com uma URL de stream por linha, ou seja, 8 streams rodarão com batch-size 8.
webcam ✅0intÍndice do dispositivo de câmera conectado para executar a inferência.

Abaixo estão exemplos de código para usar cada tipo de fonte:

Fontes de predição

Execute a inferência em um arquivo de imagem.

from ultralytics import YOLO

# Load a pretrained YOLO26n model
model = YOLO("yolo26n.pt")

# Define path to the image file
source = "path/to/image.jpg"

# Run inference on the source
results = model(source)  # list of Results objects

Link to this sectionArgumentos de inferência#

model.predict() aceita múltiplos argumentos que podem ser passados no momento da inferência para substituir os padrões:

Link to this sectionFormato fixo vs retângulo mínimo (rect)#

Por padrão, o predict usa rect=True, o que permite o preenchimento de retângulo mínimo quando possível. A imagem é escalonada para caber dentro de imgsz e preenchida apenas até o múltiplo de stride mais próximo, portanto o tensor final pode ser menor que imgsz. O preenchimento de retângulo mínimo só é usado quando todas as imagens no lote têm o mesmo formato e o backend o suporta (PyTorch .pt, ou ONNX / Triton dinâmico). Caso contrário, as imagens são preenchidas até o alvo completo imgsz.

Usa rect=False para preencher sempre até o alvo completo imgsz. Isso é recomendado quando precisas de um tamanho de entrada fixo para corresponder a modelos exportados (ONNX, TensorRT, etc.).

Inteiro vs tupla imgsz

  • Um inteiro imgsz=640 torna-se um alvo quadrado (640, 640) após o arredondamento de stride.
  • Uma tupla imgsz=(384, 672) define um alvo retangular. Com rect=True e auto=True, o tensor real pode ser menor que esse alvo.

Treino vs predict/export

O treino aceita apenas um único inteiro imgsz (uma lista [h, w] é convertida para o maior valor). Predict e export aceitam um inteiro ou uma tupla (height, width).

Exemplo
from ultralytics import YOLO

# Load a pretrained YOLO26n model
model = YOLO("yolo26n.pt")

# Run inference on 'bus.jpg' with arguments
model.predict("https://ultralytics.com/images/bus.jpg", save=True, imgsz=320, conf=0.25)

Argumentos de inferência:

ArgumentoTipoPredefiniçãoDescrição
sourcestr ou int ou NoneNoneEspecifica a fonte de dados para inferência. Pode ser um caminho de imagem, ficheiro de vídeo, diretório, URL ou ID de dispositivo para feeds em direto. Se omitido, é registado um aviso e o modelo recorre aos recursos de demonstração integrados (ultralytics/assets, ou um URL de demonstração para OBB). Suporta uma vasta gama de formatos e fontes, permitindo uma aplicação flexível através de diferentes tipos de entrada.
conffloat0.25Define o limiar de confiança mínimo para deteções. Objetos detetados com uma confiança inferior a este limiar serão ignorados. Ajustar este valor pode ajudar a reduzir falsos positivos.
ioufloat0.7Limiar de Intersection Over Union (IoU) para Non-Maximum Suppression (NMS). Valores mais baixos resultam em menos deteções ao eliminar caixas sobrepostas, útil para reduzir duplicados.
imgszint ou tuple640Letterbox target. An integer gives a square N×N; a tuple gives (height, width). With rect=True, the actual tensor may be smaller than this target due to minimum-rectangle padding. Use rect=False for a fixed size. See Fixed shape vs minimum rectangle.
rectboolTrueSe True, usa preenchimento de retângulo mínimo quando possível (lote de mesma forma e backend suportado). Se False, preenche sempre até ao imgsz completo. Vê Fixed shape vs minimum rectangle.
halfboolFalseAtiva a inferência de meia-precision (FP16), que pode acelerar a inferência do modelo em GPUs suportadas com impacto mínimo na precisão.
devicestrNoneEspecifica o dispositivo para inferência (ex: cpu, cuda:0, 0, npu ou npu:0). Permite que os utilizadores selecionem entre CPU, uma GPU específica, Huawei Ascend NPU ou outros dispositivos de computação para a execução do modelo.
batchint1Especifica o tamanho do lote para inferência (só funciona quando a fonte é um diretório, ficheiro de vídeo ou ficheiro .txt). Um tamanho de lote maior pode proporcionar um maior rendimento, reduzindo o tempo total necessário para a inferência.
max_detint300Número máximo de deteções permitido por imagem. Limita o número total de objetos que o modelo pode detetar numa única inferência, evitando saídas excessivas em cenas densas.
vid_strideint1Intervalo de fotogramas para entradas de vídeo. Permite saltar fotogramas em vídeos para acelerar o processamento à custa da resolução temporal. Um valor de 1 processa todos os fotogramas, valores mais altos saltam fotogramas.
stream_bufferboolFalseDetermina se se devem colocar em fila de espera os fotogramas recebidos para fluxos de vídeo. Se False, os fotogramas antigos são descartados para acomodar novos fotogramas (otimizado para aplicações em tempo real). Se True, coloca novos fotogramas em fila de espera num buffer, garantindo que nenhum fotograma é saltado, mas causará latência se o FPS de inferência for inferior ao FPS do fluxo.
visualizeboolFalseAtiva a visualização das características do modelo durante a inferência, fornecendo informações sobre o que o modelo está a "ver". Útil para depuração e interpretação do modelo.
augmentboolFalseAtiva o aumento durante o teste (TTA) para predições, melhorando potencialmente a robustez da deteção à custa da velocidade de inferência.
agnostic_nmsboolFalseAtiva o Non-Maximum Suppression (NMS) agnóstico à classe, que funde caixas sobrepostas de diferentes classes. Útil em cenários de deteção multi-classe onde a sobreposição de classes é comum. Para modelos end-to-end (YOLO26, YOLOv10), isto apenas evita que a mesma deteção apareça com múltiplas etiquetas de classe (duplicados IoU=1.0) e não realiza a supressão baseada no limiar de IoU entre caixas distintas.
classeslist[int]NoneFiltra as predições para um conjunto de IDs de classe. Apenas as deteções pertencentes às classes especificadas serão devolvidas. Útil para focar em objetos relevantes em tarefas de deteção multi-classe.
retina_masksboolFalseDevolve máscaras de segmentação de alta resolução. As máscaras devolvidas (masks.data) corresponderão ao tamanho original da imagem se ativado. Se desativado, têm o tamanho da imagem usado durante a inferência.
embedlist[int]NoneEspecifica as camadas a partir das quais extrair vetores de características ou embeddings. Útil para tarefas a jusante como agrupamento ou pesquisa de semelhança.
projectstrNoneNome do diretório do projeto onde as saídas de predição são guardadas se save estiver ativado.
namestrNoneNome da execução da predição. Utilizado para criar um subdiretório dentro da pasta do projeto, onde as saídas de predição são armazenadas se save estiver ativado.
streamboolFalseAtiva o processamento eficiente em termos de memória para vídeos longos ou numerosas imagens, devolvendo um gerador de objetos de Resultados em vez de carregar todos os fotogramas na memória de uma só vez.
verboseboolTrueControla se deve mostrar registos de inferência detalhados no terminal, fornecendo feedback em tempo real sobre o processo de predição.
compilebool ou strFalseAtiva a compilação de grafo torch.compile do PyTorch 2.x com backend='inductor'. Aceita True"default", False → desativa, ou um modo de string como "default", "reduce-overhead", "max-autotune-no-cudagraphs". Retorna ao modo eager com um aviso se não for suportado.
end2endboolNoneSubstitui o modo end-to-end em modelos YOLO que suportam inferência sem NMS (YOLO26, YOLOv10). Definir como False permite-te executar a predição usando o pipeline NMS tradicional, permitindo adicionalmente fazer uso do argumento iou. Vê o guia de Deteção End-to-End para detalhes.

Argumentos de visualização:

ArgumentoTipoPredefiniçãoDescrição
showboolFalseSe True, exibe as imagens ou vídeos anotados numa janela. Útil para feedback visual imediato durante o desenvolvimento ou teste.
saveboolFalse or TrueAtiva a gravação das imagens ou vídeos anotados em ficheiros. Útil para documentação, análise posterior ou partilha de resultados. Predefinição como True ao usar CLI e False quando usado em Python.
save_framesboolFalseAo processar vídeos, guarda fotogramas individuais como imagens. Útil para extrair fotogramas específicos ou para uma análise detalhada fotograma a fotograma.
save_txtboolFalseGuarda os resultados da deteção num ficheiro de texto, seguindo o formato [class] [x_center] [y_center] [width] [height] [confidence]. Útil para integração com outras ferramentas de análise.
save_confboolFalseInclui pontuações de confiança nos ficheiros de texto guardados. Melhora os detalhes disponíveis para pós-processamento e análise.
save_cropboolFalseGuarda imagens recortadas das deteções. Útil para aumento de conjuntos de dados, análise ou criação de conjuntos de dados focados para objetos específicos.
show_labelsboolTrueExibe rótulos para cada detecção na saída visual. Fornece compreensão imediata dos objetos detectados.
show_confboolTrueExibe a pontuação de confiança para cada detecção ao lado do rótulo. Fornece uma visão sobre a certeza do modelo para cada detecção.
show_boxesboolTrueDesenha caixas delimitadoras à volta dos objetos detetados. Essencial para identificação visual e localização de objetos em imagens ou fotogramas de vídeo.
line_widthint or NoneNoneEspecifica a largura da linha das caixas delimitadoras. Se None, a largura da linha é ajustada automaticamente com base no tamanho da imagem. Proporciona personalização visual para maior clareza.

Link to this sectionFormatos de imagem e vídeo#

O YOLO26 suporta vários formatos de imagem e vídeo, conforme especificado em ultralytics/data/utils.py. Vê as tabelas abaixo para os sufixos válidos e exemplos de comandos predict.

Link to this sectionImagens#

A tabela abaixo contém formatos de imagem Ultralytics válidos.

Nota

Formatos HEIC/HEIF requerem pi-heif, que é instalado automaticamente no primeiro uso. AVIF é suportado nativamente pelo Pillow.

Sufixos de imagemExemplo de comando predictReferência
.avifyolo predict source=image.avifFormato de Ficheiro de Imagem AV1
.bmpyolo predict source=image.bmpFormato de Ficheiro BMP da Microsoft
.dngyolo predict source=image.dngAdobe DNG
.heicyolo predict source=image.heicFormato de Imagem de Alta Eficiência
.heifyolo predict source=image.heifFormato de Imagem de Alta Eficiência
.jp2yolo predict source=image.jp2JPEG 2000
.jpegyolo predict source=image.jpegJPEG
.jpeg2000yolo predict source=image.jpeg2000JPEG 2000
.jpgyolo predict source=image.jpgJPEG
.mpoyolo predict source=image.mpoMulti Picture Object
.pngyolo predict source=image.pngPortable Network Graphics
.tifyolo predict source=image.tifTag Image File Format
.tiffyolo predict source=image.tiffTag Image File Format
.webpyolo predict source=image.webpWebP

Link to this sectionVídeos#

A tabela abaixo contém formatos de vídeo Ultralytics válidos.

Sufixos de vídeoExemplo de comando predictReferência
.asfyolo predict source=video.asfAdvanced Systems Format
.aviyolo predict source=video.aviAudio Video Interleave
.gifyolo predict source=video.gifGraphics Interchange Format
.m4vyolo predict source=video.m4vMPEG-4 Part 14
.mkvyolo predict source=video.mkvMatroska
.movyolo predict source=video.movQuickTime File Format
.mp4yolo predict source=video.mp4MPEG-4 Part 14 - Wikipedia
.mpegyolo predict source=video.mpegMPEG-1 Part 2
.mpgyolo predict source=video.mpgMPEG-1 Part 2
.tsyolo predict source=video.tsMPEG Transport Stream
.wmvyolo predict source=video.wmvWindows Media Video
.webmyolo predict source=video.webmWebM Project

Link to this sectionTrabalhando com Resultados#

Todas as chamadas predict() da Ultralytics retornarão uma lista de objetos Results:

Resultados
from ultralytics import YOLO

# Load a pretrained YOLO26n model
model = YOLO("yolo26n.pt")

# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg")
results = model(
    [
        "https://ultralytics.com/images/bus.jpg",
        "https://ultralytics.com/images/zidane.jpg",
    ]
)  # batch inference

Os objetos Results possuem os seguintes atributos:

AtributoTipoDescrição
orig_imgnp.ndarrayA imagem original como um array NumPy.
orig_shapetupleO formato da imagem original em (altura, largura).
boxesBoxes, optionalUm objeto Boxes contendo as caixas delimitadoras de detecção.
masksMasks, optionalUm objeto Masks contendo as máscaras de detecção.
probsProbs, optionalUm objeto Probs contendo as probabilidades de cada classe para tarefas de classificação.
keypointsKeypoints, optionalUm objeto Keypoints contendo os pontos-chave detectados para cada objeto.
obbOBB, optionalUm objeto OBB contendo caixas delimitadoras orientadas.
semantic_maskSemanticMask, optionalUm objeto SemanticMask contendo um mapa de classe denso por pixel.
speeddictUm dicionário de velocidades de pré-processamento, inferência e pós-processamento em milissegundos por imagem.
namesdictUm dicionário mapeando índices de classe para nomes de classe.
pathstrO caminho para o arquivo de imagem.
save_dirstr, optionalDiretório para salvar os resultados.

Link to this sectionResultados por Tarefa#

Cada previsão retorna um objeto Results por imagem ou quadro. Os campos comuns acima estão sempre disponíveis, enquanto os dados de previsão específicos da tarefa são armazenados nos campos abaixo. Tensores de coordenadas, confiança e probabilidade são torch.float32 a menos que seja usada precisão reduzida (half precision), caso em que são torch.float16. Após result.numpy(), os tensores tornam-se arrays NumPy com dtypes NumPy correspondentes. Máscaras de instância são tensores binários torch.uint8, enquanto máscaras semânticas usam o dtype inteiro prático menor para IDs de classe: torch.uint8, torch.int16 ou torch.int32, dependendo da contagem de classes.

AtributoTipoFormaDescrição
result.boxesBoxes(N)Caixas de detecção.
result.boxes.datatorch.float32(N,6/7)Dados brutos [x1,y1,x2,y2,conf,cls], mais ID de rastreamento opcional.
result.boxes.xyxytorch.float32(N,4)Caixas em pixels xyxy.
result.boxes.conftorch.float32(N,)Pontuações de confiança.
result.boxes.clstorch.float32(N,)IDs de classe; converta para int para obter nomes.

Os objetos Results possuem os seguintes métodos:

MétodoTipo de RetornoDescrição
update()NoneAtualiza o objeto Results com novos dados, como caixas, máscaras, probabilidades, obb, keypoints ou máscaras semânticas.
cpu()ResultsRetorna uma cópia do objeto Results com todos os tensores movidos para a memória da CPU.
numpy()ResultsRetorna uma cópia do objeto Results com todos os tensores convertidos para arrays NumPy.
cuda()ResultsRetorna uma cópia do objeto Results com todos os tensores movidos para a memória da GPU.
to()ResultsRetorna uma cópia do objeto Results com os tensores movidos para o dispositivo e dtype especificados.
new()ResultsCria um novo objeto Results com os mesmos atributos de imagem, caminho, nomes e velocidade.
plot()np.ndarrayDesenha os resultados da detecção em uma imagem BGR de entrada e retorna a imagem anotada.
show()NoneExibe a imagem com os resultados da inferência anotados.
save()strSalva a imagem dos resultados da inferência anotados em um arquivo e retorna o nome do arquivo.
verbose()strRetorna uma string de log para cada tarefa, detalhando os resultados de detecção e classificação.
save_txt()strSalva os resultados da detecção em um arquivo de texto e retorna o caminho para o arquivo salvo.
save_crop()NoneSalva imagens de detecção cortadas no diretório especificado.
summary()List[Dict[str, Any]]Converte os resultados da inferência para um dicionário resumido com normalização opcional.
to_df()DataFrameConverte os resultados da detecção para um DataFrame do Polars.
to_csv()strConverte os resultados da detecção para o formato CSV.
to_json()strConverte os resultados da detecção para o formato JSON.

Para mais detalhes, consulte a documentação da classe Results.

Link to this sectionCaixas (Boxes)#

O objeto Boxes pode ser usado para indexar, manipular e converter caixas delimitadoras para diferentes formatos.

Caixas (Boxes)
from ultralytics import YOLO

# Load a pretrained YOLO26n model
model = YOLO("yolo26n.pt")

# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg")  # results list

# View results
for r in results:
    print(r.boxes)  # print the Boxes object containing the detection bounding boxes

Aqui está uma tabela para os métodos e propriedades da classe Boxes, incluindo seu nome, tipo e descrição:

NomeTipoDescrição
cpu()MétodoMove o objeto para a memória da CPU.
numpy()MétodoConverte o objeto para um array NumPy.
cuda()MétodoMove o objeto para a memória CUDA.
to()MétodoMove o objeto para o dispositivo especificado.
xyxyPropriedade (torch.Tensor)Retorna as caixas no formato xyxy.
confPropriedade (torch.Tensor)Retorna os valores de confiança das caixas.
clsPropriedade (torch.Tensor)Retorna os valores de classe das caixas.
idPropriedade (torch.Tensor)Retorna os IDs de rastreamento das caixas (se disponíveis).
xywhPropriedade (torch.Tensor)Retorna as caixas no formato xywh.
xyxynPropriedade (torch.Tensor)Retorna as caixas no formato xyxy normalizado pelo tamanho original da imagem.
xywhnPropriedade (torch.Tensor)Retorna as caixas no formato xywh normalizado pelo tamanho original da imagem.

Para mais detalhes, consulte a documentação da classe Boxes.

Link to this sectionMáscaras#

O objeto Masks pode ser usado para indexar, manipular e converter máscaras para segmentos.

Máscaras
from ultralytics import YOLO

# Load a pretrained YOLO26n-seg Segment model
model = YOLO("yolo26n-seg.pt")

# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg")  # results list

# View results
for r in results:
    print(r.masks)  # print the Masks object containing the detected instance masks

Aqui está uma tabela para os métodos e propriedades da classe Masks, incluindo seu nome, tipo e descrição:

NomeTipoDescrição
dataPropriedade (torch.Tensor)Tensor de máscara binária torch.uint8 com formato (N,H,W) e valores 0 ou 1.
cpu()MétodoRetorna o tensor de máscaras na memória da CPU.
numpy()MétodoRetorna o tensor de máscaras como um array NumPy.
cuda()MétodoRetorna o tensor de máscaras na memória da GPU.
to()MétodoRetorna o tensor de máscaras com o dispositivo e dtype especificados.
xynPropriedade (list[np.ndarray])Uma lista de polígonos de máscara normalizados.
xyPropriedade (list[np.ndarray])Uma lista de polígonos de máscara em coordenadas de pixel.

Para mais detalhes, consulte a documentação da classe Masks.

Link to this sectionSemanticMask#

SemanticMask armazena um mapa de classe denso para resultados de segmentação semântica. Ao contrário de Masks, ele não contém uma máscara binária por objeto e não fornece auxiliares de polígono.

SemanticMask
from ultralytics import YOLO

# Load a pretrained YOLO26n-sem Semantic model
model = YOLO("yolo26n-sem.pt")

# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg")  # results list

# View results
for r in results:
    print(r.semantic_mask.data)  # print the H x W class-ID map
NomeTipoDescrição
dataPropriedade (torch.Tensor)Mapa de ID de classe com formato (H,W). O dtype é torch.uint8, torch.int16 ou torch.int32, selecionado pela contagem de classes.
shapePropriedade (tuple)Formato do mapa de classe, geralmente correspondendo a result.orig_shape.
cpu()MétodoRetorna o tensor da máscara semântica na memória da CPU.
numpy()MétodoRetorna o tensor da máscara semântica como um array NumPy.
cuda()MétodoRetorna o tensor da máscara semântica na memória da GPU.
to()MétodoRetorna o tensor da máscara semântica com o dispositivo e dtype especificados.

Link to this sectionKeypoints#

O objeto Keypoints pode ser usado para indexar, manipular e normalizar coordenadas.

Keypoints
from ultralytics import YOLO

# Load a pretrained YOLO26n-pose Pose model
model = YOLO("yolo26n-pose.pt")

# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg")  # results list

# View results
for r in results:
    print(r.keypoints)  # print the Keypoints object containing the detected keypoints

Aqui está uma tabela para os métodos e propriedades da classe Keypoints, incluindo seu nome, tipo e descrição:

NomeTipoDescrição
cpu()MétodoRetorna o tensor dos keypoints na memória da CPU.
numpy()MétodoRetorna o tensor dos keypoints como um array NumPy.
cuda()MétodoRetorna o tensor dos keypoints na memória da GPU.
to()MétodoRetorna o tensor de keypoints com o dispositivo e dtype especificados.
xynPropriedade (torch.Tensor)Uma lista de keypoints normalizados representados como tensores.
xyPropriedade (torch.Tensor)Uma lista de keypoints em coordenadas de pixel representados como tensores.
confPropriedade (torch.Tensor)Retorna os valores de confiança dos keypoints se disponíveis, caso contrário, retorna None.

Para mais detalhes, veja a documentação da classe Keypoints.

Link to this sectionProbs#

O objeto Probs pode ser usado para indexar, obter top1 e top5 índices e pontuações de classificação.

Probs
from ultralytics import YOLO

# Load a pretrained YOLO26n-cls Classify model
model = YOLO("yolo26n-cls.pt")

# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg")  # results list

# View results
for r in results:
    print(r.probs)  # print the Probs object containing the detected class probabilities

Aqui está uma tabela resumindo os métodos e propriedades da classe Probs:

NomeTipoDescrição
cpu()MétodoRetorna uma cópia do tensor de probs na memória da CPU.
numpy()MétodoRetorna uma cópia do tensor de probs como um array NumPy.
cuda()MétodoRetorna uma cópia do tensor de probs na memória da GPU.
to()MétodoRetorna uma cópia do tensor de probs com o dispositivo e dtype especificados.
top1Propriedade (int)Índice da classe top 1.
top5Propriedade (list[int])Índices das classes top 5.
top1confPropriedade (torch.Tensor)Confiança da classe top 1.
top5confPropriedade (torch.Tensor)Confianças das classes top 5.

Para mais detalhes, veja a documentação da classe Probs.

Link to this sectionOBB#

O objeto OBB pode ser usado para indexar, manipular e converter caixas delimitadoras orientadas para diferentes formatos.

OBB
from ultralytics import YOLO

# Load a pretrained YOLO26n model
model = YOLO("yolo26n-obb.pt")

# Run inference on an image
results = model("https://ultralytics.com/images/boats.jpg")  # results list

# View results
for r in results:
    print(r.obb)  # print the OBB object containing the oriented detection bounding boxes

Aqui está uma tabela para os métodos e propriedades da classe OBB, incluindo seus nomes, tipos e descrições:

NomeTipoDescrição
cpu()MétodoMove o objeto para a memória da CPU.
numpy()MétodoConverte o objeto para um array NumPy.
cuda()MétodoMove o objeto para a memória CUDA.
to()MétodoMove o objeto para o dispositivo especificado.
confPropriedade (torch.Tensor)Retorna os valores de confiança das caixas.
clsPropriedade (torch.Tensor)Retorna os valores de classe das caixas.
idPropriedade (torch.Tensor)Retorna os IDs de rastreamento das caixas (se disponíveis).
xyxyPropriedade (torch.Tensor)Retorna as caixas horizontais no formato xyxy.
xywhrPropriedade (torch.Tensor)Retorna as caixas rotacionadas no formato xywhr.
xyxyxyxyPropriedade (torch.Tensor)Retorna as caixas rotacionadas no formato xyxyxyxy.
xyxyxyxynPropriedade (torch.Tensor)Retorna as caixas rotacionadas no formato xyxyxyxy normalizado pelo tamanho da imagem.

Para mais detalhes, veja a documentação da classe OBB.

Link to this sectionPlotando Resultados#

O método plot() em objetos Results facilita a visualização de predições ao sobrepor objetos detectados (como caixas delimitadoras, máscaras, keypoints e probabilidades) sobre a imagem original. Este método retorna a imagem anotada como um array NumPy, permitindo fácil exibição ou salvamento.

Plotagem
from PIL import Image

from ultralytics import YOLO

# Load a pretrained YOLO26n model
model = YOLO("yolo26n.pt")

# Run inference on 'bus.jpg'
results = model(["https://ultralytics.com/images/bus.jpg", "https://ultralytics.com/images/zidane.jpg"])  # results list

# Visualize the results
for i, r in enumerate(results):
    # Plot results image
    im_bgr = r.plot()  # BGR-order numpy array
    im_rgb = Image.fromarray(im_bgr[..., ::-1])  # RGB-order PIL image

    # Show results to screen (in supported environments)
    r.show()

    # Save results to disk
    r.save(filename=f"results{i}.jpg")

Link to this sectionParâmetros do Método plot()#

O método plot() suporta vários argumentos para personalizar a saída:

ArgumentoTipoDescriçãoPredefinição
confboolIncluir pontuações de confiança de detecção.True
line_widthfloatLargura da linha das caixas delimitadoras. Escala com o tamanho da imagem se for None.None
font_sizefloatTamanho da fonte do texto. Escala com o tamanho da imagem se for None.None
fontstrNome da fonte para anotações de texto.'Arial.ttf'
pilboolRetornar imagem como um objeto PIL Image.False
imgnp.ndarrayImagem alternativa para plotagem. Usa a imagem original se for None.None
im_gputorch.TensorImagem acelerada por GPU para plotagem de máscara mais rápida. Formato: (1, 3, 640, 640).None
kpt_radiusintRaio para os keypoints desenhados.5
kpt_lineboolConectar keypoints com linhas.True
labelsboolIncluir rótulos de classe nas anotações.True
boxesboolSobrepor caixas delimitadoras na imagem.True
masksboolSobrepor máscaras na imagem.True
probsboolIncluir probabilidades de classificação.True
showboolExibir a imagem anotada diretamente usando o visualizador de imagens padrão.False
saveboolSalvar a imagem anotada em um arquivo especificado por filename.False
filenamestrCaminho e nome do arquivo para salvar a imagem anotada se save for True.None
color_modestrEspecifique o modo de cor, por exemplo, 'instance' ou 'class'.'class'
txt_colortuple[int, int, int]Cor do texto BGR para a caixa delimitadora e rótulo de classificação da imagem.(255, 255, 255)

Link to this sectionInferência Thread-Safe#

Garantir a segurança de thread durante a inferência é crucial quando você está executando vários modelos YOLO em paralelo em threads diferentes. A inferência thread-safe garante que as predições de cada thread sejam isoladas e não interfiram umas nas outras, evitando condições de corrida e garantindo saídas consistentes e confiáveis.

Ao usar modelos YOLO em uma aplicação multi-thread, é importante instanciar objetos de modelo separados para cada thread ou empregar armazenamento local de thread para evitar conflitos:

Inferência Thread-Safe

Instancie um único modelo dentro de cada thread para inferência thread-safe:

from threading import Thread

from ultralytics import YOLO

def thread_safe_predict(model, image_path):
    """Performs thread-safe prediction on an image using a locally instantiated YOLO model."""
    model = YOLO(model)
    results = model.predict(image_path)
    # Process results

# Starting threads that each have their own model instance
Thread(target=thread_safe_predict, args=("yolo26n.pt", "image1.jpg")).start()
Thread(target=thread_safe_predict, args=("yolo26n.pt", "image2.jpg")).start()

Para uma visão aprofundada sobre a inferência thread-safe com modelos YOLO e instruções passo a passo, por favor, consulte nosso Guia de Inferência Thread-Safe com YOLO. Este guia fornecerá todas as informações necessárias para evitar armadilhas comuns e garantir que sua inferência multi-thread funcione sem problemas.

Link to this sectionLoop for de fonte de streaming#

Aqui está um script Python usando OpenCV (cv2) e YOLO para executar inferência em quadros de vídeo. Este script assume que você já instalou os pacotes necessários (opencv-python e ultralytics).

Loop for de streaming
import cv2

from ultralytics import YOLO

# Load the YOLO model
model = YOLO("yolo26n.pt")

# Open the video file
video_path = "path/to/your/video/file.mp4"
cap = cv2.VideoCapture(video_path)

# Loop through the video frames
while cap.isOpened():
    # Read a frame from the video
    success, frame = cap.read()

    if success:
        # Run YOLO inference on the frame
        results = model(frame)

        # Visualize the results on the frame
        annotated_frame = results[0].plot()

        # Display the annotated frame
        cv2.imshow("YOLO Inference", annotated_frame)

        # Break the loop if 'q' is pressed
        if cv2.waitKey(1) & 0xFF == ord("q"):
            break
    else:
        # Break the loop if the end of the video is reached
        break

# Release the video capture object and close the display window
cap.release()
cv2.destroyAllWindows()

Este script executará predições em cada quadro do vídeo, visualizará os resultados e os exibirá em uma janela. O loop pode ser encerrado pressionando 'q'.

Link to this sectionFAQ#

Link to this sectionO que é o Ultralytics YOLO e seu modo predict para inferência em tempo real?#

O Ultralytics YOLO é um modelo de última geração para detecção de objetos, segmentação de instâncias, segmentação semântica e classificação em tempo real. Seu modo predict permite que usuários realizem inferência de alta velocidade em várias fontes de dados, como imagens, vídeos e transmissões ao vivo. Projetado para desempenho e versatilidade, ele também oferece processamento em lote e modos de streaming. Para mais detalhes sobre seus recursos, confira o modo predict do Ultralytics YOLO.

Link to this sectionComo posso executar inferência usando o Ultralytics YOLO em diferentes fontes de dados?#

O Ultralytics YOLO pode processar uma ampla gama de fontes de dados, incluindo imagens individuais, vídeos, diretórios, URLs e streams. Você pode especificar a fonte de dados na chamada model.predict(). Por exemplo, use 'image.jpg' para uma imagem local ou 'https://ultralytics.com/images/bus.jpg' para uma URL. Confira os exemplos detalhados para várias fontes de inferência na documentação.

Link to this sectionComo otimizo a velocidade de inferência e o uso de memória do YOLO?#

Para otimizar a velocidade de inferência e gerenciar a memória de forma eficiente, você pode usar o modo de streaming definindo stream=True no método de chamada do preditor. O modo de streaming gera um gerador de objetos Results eficiente em termos de memória, em vez de carregar todos os quadros na memória. Para processar vídeos longos ou grandes conjuntos de dados, o modo de streaming é particularmente útil. Saiba mais sobre o modo de streaming.

Link to this sectionQuais argumentos de inferência o Ultralytics YOLO suporta?#

O método model.predict() no YOLO suporta vários argumentos como conf, iou, imgsz, device e outros. Esses argumentos permitem que você personalize o processo de inferência, definindo parâmetros como limites de confiança, tamanho da imagem e o dispositivo usado para computação. Descrições detalhadas desses argumentos podem ser encontradas na seção argumentos de inferência.

Link to this sectionComo posso visualizar e salvar os resultados das predições do YOLO?#

Após executar a inferência com o YOLO, os objetos Results contêm métodos para exibir e salvar imagens anotadas. Você pode usar métodos como result.show() e result.save(filename="result.jpg") para visualizar e salvar os resultados. Quaisquer diretórios pais ausentes no caminho do nome do arquivo são criados automaticamente (por exemplo, result.save("path/to/result.jpg")). Para uma lista completa desses métodos, consulte a seção trabalhando com resultados.

Comentários