Ir para o conteúdo

Inferência

Plataforma Ultralytics fornece uma Inference API para testar modelos treinados. Utilize a ferramenta baseada em navegador Predict guia para validação rápida ou o REST API para acesso programático.

Ultralytics Platform: Aba de Previsão do Modelo com Sobreposição de Detecções

Aba Prever

Cada modelo inclui um Predict guia para inferência baseada em navegador:

  1. Navegue até o seu modelo
  2. Clique na aba Prever
  3. Carregue uma imagem, use um exemplo ou abra sua webcam
  4. Visualize previsões instantaneamente com sobreposições de caixas delimitadoras

Plataforma Ultralytics Guia de Previsão Zona de Arrastar e Soltar para Upload de Imagens

Métodos de Entrada

O painel de previsão suporta múltiplos métodos de entrada:

MétodoDescrição
Upload de imagemArraste e solte ou clique para carregar uma imagem
Imagens de exemploClique nos exemplos integrados (imagens do conjunto de dados ou padrões)
Captura de webcamTransmissão de câmera ao vivo com captura de quadro único
graph LR
    A[Upload Image] --> D[Auto-Inference]
    B[Example Image] --> D
    C[Webcam Capture] --> D
    D --> E[Results + Overlays]

    style D fill:#2196F3,color:#fff
    style E fill:#4CAF50,color:#fff

Carregar Imagem

Arraste e solte ou clique para carregar:

  • Formatos suportados: JPEG, PNG, WebP, AVIF, HEIC, JP2, TIFF, BMP, DNG, MPO
  • Tamanho máximo: 10MB
  • Auto-inferência: Os resultados aparecem automaticamente após o upload

Auto-inferência

O painel de previsão executa a inferência automaticamente quando você carrega uma imagem, seleciona um exemplo ou captura um quadro da webcam. Não é necessário clicar em nenhum botão.

Imagens de Exemplo

O painel de previsão exibe imagens de exemplo do conjunto de dados vinculado ao seu modelo. Se nenhum conjunto de dados estiver vinculado, exemplos padrão são utilizados:

ImagemConteúdo
bus.jpgCena de rua com veículos
zidane.jpgCena esportiva com pessoas

Para modelos OBB, imagens aéreas de barcos e aeroportos são mostradas em vez disso.

Imagens Pré-carregadas

As imagens de exemplo são pré-carregadas quando a página é carregada, então clicar em um exemplo aciona uma inferência quase instantânea sem tempo de espera para download.

Webcam

Clique no cartão da webcam para iniciar uma transmissão de câmera ao vivo:

  1. Conceder permissão da câmera quando solicitado
  2. Clique na pré-visualização do vídeo para capturar um quadro
  3. A inferência é executada automaticamente no quadro capturado
  4. Clique novamente para reiniciar a webcam

Ver Resultados

Exibição dos resultados da inferência:

  • Caixas delimitadoras com rótulos de classe como sobreposições SVG
  • Pontuações de confiança para cada detect
  • Cores das classes da paleta de cores do seu conjunto de dados (ou da paleta padrão da Ultralytics)
  • Detalhes da velocidade: Pré-processamento, inferência, pós-processamento e tempo de rede

Plataforma Ultralytics Guia de Previsão Resultados Com detect e Estatísticas de Velocidade

O painel de resultados mostra:

CampoDescrição
Lista de detecçõesCada detecção com nome da classe e confiança
Estatísticas de velocidadePré-processamento, inferência, pós-processamento, rede (ms)
Resposta JSONResposta bruta da API em um bloco de código

Parâmetros de Inferência

Ajuste o comportamento de detect com parâmetros na seção recolhível Parâmetros:

Plataforma Ultralytics Guia de Previsão Controles Deslizantes de Parâmetros

ParâmetroIntervaloPadrãoDescrição
Confiança0.01-1.00.25Limite mínimo de confiança
IoU0.0-0.950.70Limite de IoU da NMS
Tamanho da Imagem320, 640, 1280640Dimensão de redimensionamento da entrada (alternância de botão)

Reexecução Automática

A alteração de qualquer parâmetro executa automaticamente a inferência novamente na imagem atual com um debounce de 500ms. Não é necessário reenviar.

Limiar de Confiança

Filtrar previsões por confiança:

  • Maior (0.5+): Menos previsões, mais certas
  • Menor (0.1-0.25): Mais previsões, algum ruído
  • Padrão (0.25): Equilibrado para a maioria dos casos de uso

Limiar de IoU

Controlar a Supressão Não Máxima:

  • Mais alto (0,7+): Permita mais caixas sobrepostas
  • Mais baixo (0,3-0,5): Combinar detecções próximas de forma mais agressiva
  • Padrão (0,70): NMS equilibrado NMS para a maioria dos casos de uso

Previsão de Implantação

Cada execução endpoint dedicado inclui um Predict guia diretamente no seu cartão de implantação. Isso usa o próprio serviço de inferência da implantação, em vez do serviço de previsão compartilhado, permitindo que você teste seu endpoint implantado a partir do navegador.

REST API

Acessar inferência programaticamente:

Autenticação

Inclua sua chave API nas requisições:

Authorization: Bearer YOUR_API_KEY

Chave API Necessária

Para executar inferência a partir dos seus próprios scripts, notebooks ou aplicações, inclua uma chave API. Gere uma em Settings (seção Chaves de API na aba Perfil).

Endpoint

POST https://platform.ultralytics.com/api/models/{modelId}/predict

Requisição

import requests

url = "https://platform.ultralytics.com/api/models/MODEL_ID/predict"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
files = {"file": open("image.jpg", "rb")}
data = {"conf": 0.25, "iou": 0.7, "imgsz": 640}

response = requests.post(url, headers=headers, files=files, data=data)
print(response.json())
curl -X POST \
  "https://platform.ultralytics.com/api/models/MODEL_ID/predict" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "file=@image.jpg" \
  -F "conf=0.25" \
  -F "iou=0.7" \
  -F "imgsz=640"
const formData = new FormData();
formData.append("file", fileInput.files[0]);
formData.append("conf", "0.25");
formData.append("iou", "0.7");
formData.append("imgsz", "640");

const response = await fetch(
  "https://platform.ultralytics.com/api/models/MODEL_ID/predict",
  {
    method: "POST",
    headers: { Authorization: "Bearer YOUR_API_KEY" },
    body: formData,
  }
);

const result = await response.json();
console.log(result);

Plataforma Ultralytics Guia de Previsão Exemplos de Código Guia python

Resposta

{
    "images": [
        {
            "shape": [1080, 1920],
            "results": [
                {
                    "class": 0,
                    "name": "person",
                    "confidence": 0.92,
                    "box": { "x1": 100, "y1": 50, "x2": 300, "y2": 400 }
                },
                {
                    "class": 2,
                    "name": "car",
                    "confidence": 0.87,
                    "box": { "x1": 400, "y1": 200, "x2": 600, "y2": 350 }
                }
            ],
            "speed": {
                "preprocess": 1.2,
                "inference": 12.5,
                "postprocess": 2.3
            }
        }
    ],
    "metadata": {
        "imageCount": 1,
        "functionTimeCall": 0.018,
        "model": "model.pt",
        "version": {
            "ultralytics": "8.4.14",
            "torch": "2.6.0",
            "torchvision": "0.21.0",
            "python": "3.13.0"
        }
    }
}

Plataforma Ultralytics Guia de Previsão Visualização da Resposta Json

Campos da Resposta

CampoTipoDescrição
imagesarrayLista de imagens processadas
images[].shapearrayDimensões da imagem [altura, largura]
images[].resultsarrayLista de detecções
images[].results[].namestringNome da classe
images[].results[].confidencefloatConfiança da detecção (0-1)
images[].results[].boxobjetoCoordenadas da caixa delimitadora
images[].speedobjetoTempos de processamento em milissegundos
metadataobjetoSolicitar metadados e informações de versão

Respostas Específicas da Tarefa

O formato da resposta varia por tarefa:

{
  "class": 0,
  "name": "person",
  "confidence": 0.92,
  "box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400}
}
{
  "class": 0,
  "name": "person",
  "confidence": 0.92,
  "box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400},
  "segments": [[100, 50], [150, 60], ...]
}
{
  "class": 0,
  "name": "person",
  "confidence": 0.92,
  "box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400},
  "keypoints": [
    {"x": 200, "y": 75, "conf": 0.95},
    ...
  ]
}
{
  "results": [
    {"class": 0, "name": "cat", "confidence": 0.95},
    {"class": 1, "name": "dog", "confidence": 0.03}
  ]
}
{
  "class": 0,
  "name": "ship",
  "confidence": 0.89,
  "box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400},
  "obb": {"x1": 105, "y1": 48, "x2": 295, "y2": 55, "x3": 290, "y3": 395, "x4": 110, "y4": 402}
}

Limites de Taxa

A inferência partilhada está limitada a uma taxa de 20 requisições/min por chave de API. Quando limitado, a API retorna 429 com um Retry-After cabeçalho. Ver o completo Referência de limite de taxa para todas as categorias de endpoint.

Precisa de Mais Vazão?

Implemente um endpoint dedicado para inferência ilimitada sem limites de taxa, throughput previsível e respostas consistentes de baixa latência. Para inferência local, consulte o guia do modo Predict.

Tratamento de Erros

Respostas de erro comuns:

CódigoMensagemSolução
400Imagem inválidaVerifique o formato do arquivo
401Não autorizadoVerifique a chave API
404Modelo não encontradoVerifique o ID do modelo
429Limite de taxa atingidoAguarde e tente novamente, ou utilize um endpoint dedicado para um throughput ilimitado.
500Erro do servidorTentar novamente a requisição

FAQ

Posso executar inferência em vídeo?

A API aceita quadros individuais. Para vídeo:

  1. Extrair frames localmente
  2. Enviar cada frame para a API
  3. Agregar resultados

Para vídeo em tempo real, considere implantar um endpoint dedicado.

Como obtenho a imagem anotada?

A API retorna previsões JSON. Para visualizar:

  1. Usar previsões para desenhar caixas localmente
  2. Usar Ultralytics plot() método:
from ultralytics import YOLO

model = YOLO("yolo26n.pt")
results = model("image.jpg")
results[0].save("annotated.jpg")

Consulte a documentação do modo Predict para a API completa de resultados e opções de visualização.

Qual é o tamanho máximo da imagem?

  • Limite de upload: 10MB
  • Recommended: <5MB for fast inference
  • Redimensionamento automático: As imagens são redimensionadas para o selecionado Image Size parâmetro

Imagens grandes são redimensionadas automaticamente, preservando a proporção.

Posso executar inferência em lote?

A API atual processa uma imagem por requisição. Para processamento em lote:

  1. Enviar requisições concorrentes
  2. Usar um endpoint dedicado para maior throughput
  3. Considerar inferência local para grandes lotes

Inferência em Lote com Python

import concurrent.futures

import requests

url = "https://predict-abc123.run.app/predict"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
images = ["img1.jpg", "img2.jpg", "img3.jpg"]


def predict(image_path):
    with open(image_path, "rb") as f:
        return requests.post(url, headers=headers, files={"file": f}).json()


with concurrent.futures.ThreadPoolExecutor(max_workers=4) as executor:
    results = list(executor.map(predict, images))


📅 Criado há 2 meses ✏️ Atualizado há 25 dias
glenn-jochersergiuwaxmannLaughing-q

Comentários