Inferência
Plataforma Ultralytics fornece uma API de inferência para testar modelos treinados. Use o navegador baseado em Predict para validação rápida ou o REST API para acesso programático.

Guia Prever
Cada modelo inclui um Predict guia para inferência baseada no navegador:
- Navegue até o seu modelo
- Clique no separador Prever
- Carregue uma imagem, use um exemplo ou abra a sua webcam
- Veja as previsões instantaneamente com sobreposições de caixas delimitadoras

Métodos de entrada
O painel de previsão suporta vários métodos de entrada:
| Método | Descrição |
|---|---|
| Carregamento de imagens | Arraste e solte ou clique para carregar uma imagem |
| Imagens de exemplo | Clique em exemplos integrados (imagens do conjunto de dados ou predefinições) |
| Captura de webcam | Transmissão ao vivo da câmara com captura de imagem única |
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
- Autoinferência: os resultados aparecem automaticamente após o upload
Autoinferência
O painel de previsão executa a inferência automaticamente quando carrega uma imagem, seleciona um exemplo ou captura um fotograma da webcam. Não é necessário clicar em nenhum botão.
Imagens de Exemplo
O painel de previsão mostra imagens de exemplo do conjunto de dados vinculado ao seu modelo. Se nenhum conjunto de dados estiver vinculado, serão usados exemplos padrão:
| Imagem | Conteúdo |
|---|---|
bus.jpg | Cena de rua com veículos |
zidane.jpg | Cena esportiva com pessoas |
Para os modelos OBB, são mostradas imagens aéreas de barcos e aeroportos.
Imagens pré-carregadas
As imagens de exemplo são pré-carregadas quando a página é carregada, portanto, clicar num exemplo aciona uma inferência quase instantânea, sem espera para download.
Webcam
Clique no cartão da webcam para iniciar uma transmissão ao vivo da câmara:
- Conceda permissão à câmara quando solicitado
- Clique na pré-visualização do vídeo para capturar um fotograma
- A inferência é executada automaticamente no quadro capturado
- 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 de classe da paleta de cores do seu conjunto de dados (ou da paleta Ultralytics )
- Discriminação da velocidade: pré-processamento, inferência, pós-processamento e tempo de rede

O painel de resultados mostra:
| Campo | Descrição |
|---|---|
| Lista de detecções | Cada deteção com nome de classe e confiança |
| Estatísticas de velocidade | Pré-processamento, inferência, pós-processamento, rede (ms) |
| Resposta JSON | Resposta API bruta num bloco de código |
Parâmetros de Inferência
Ajuste o comportamento de deteção com os parâmetros na secção Parâmetros, que pode ser recolhida:

| Parâmetro | Intervalo | Padrão | Descrição |
|---|---|---|---|
| Confiança | 0,01-1,0 | 0.25 | Limite mínimo de confiança |
| IoU | 0,0-0,95 | 0.70 | Limite de IoU da NMS |
| Tamanho da Imagem | 320, 640, 1280 | 640 | Redimensionar dimensão de entrada (botão de alternância) |
Reexecutar automaticamente
Alterar qualquer parâmetro executa automaticamente novamente a inferência na imagem atual com um debounce de 500 ms. Não é necessário fazer o upload novamente.
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 implementação
Cada corrida ponto final dedicado inclui um Predict diretamente no cartão de implementação. Isso usa o serviço de inferência da própria implementação, em vez do serviço de previsão partilhado, permitindo que você teste o seu endpoint implementado 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ências a partir dos seus próprios scripts, notebooks ou aplicações, inclua uma chave API. Gere uma em Settings (Secção Chaves API no separador 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);

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"
}
}
}

Campos da Resposta
| Campo | Tipo | Descrição |
|---|---|---|
images | array | Lista de imagens processadas |
images[].shape | array | Dimensões da imagem [altura, largura] |
images[].results | array | Lista de detecções |
images[].results[].name | string | Nome da classe |
images[].results[].confidence | float | Confiança da detecção (0-1) |
images[].results[].box | objeto | Coordenadas da caixa delimitadora |
images[].speed | objeto | Tempos de processamento em milissegundos |
metadata | objeto | Solicitar metadados e informações sobre a 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 é limitada à taxa de 20 solicitações/minuto por chave API. Quando limitada, a API retorna 429 com um Retry-After cabeçalho. Veja o texto completo referência ao limite de taxa para todas as categorias de terminais.
Precisa de mais rendimento?
Implemente um terminal dedicado para inferência ilimitada sem limites de taxa, rendimento 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ódigo | Mensagem | Solução |
|---|---|---|
| 400 | Imagem inválida | Verifique o formato do arquivo |
| 401 | Não autorizado | Verifique a chave API |
| 404 | Modelo não encontrado | Verifique o ID do modelo |
| 429 | Limite de taxa atingido | Aguarde e tente novamente ou utilize um ponto de extremidade dedicado para obter um débito ilimitado |
| 500 | Erro do servidor | Tentar novamente a requisição |
FAQ
Posso executar inferência em vídeo?
A API aceita quadros individuais. Para vídeo:
- Extrair frames localmente
- Enviar cada frame para a API
- 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:
- Usar previsões para desenhar caixas localmente
- 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 obter a API completa de resultados e as 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 tamanho selecionado.
Image Sizeparâ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:
- Enviar requisições concorrentes
- Usar um endpoint dedicado para maior throughput
- 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))