Inferência#
Ultralytics Platform fornece inferência baseada no navegador para testar modelos treinados e endpoints dedicados para acesso programático.

Aba Predict#
Cada modelo com pesos inclui uma aba Predict para inferência baseada no navegador:
- Navegue até seu modelo
- Clica no separador Predict
- Carrega uma imagem, usa um exemplo ou abre a tua webcam
- Revisa a sobreposição específica da tarefa, o resumo da predição, o tempo e a resposta bruta
Modelos sem pesos mostram um estado vazio em vez disso — treine o modelo ou envie os pesos primeiro.

Métodos de entrada#
O painel de previsão suporta vários métodos de entrada:
| Método | Descrição |
|---|---|
| Carregamento de imagem | Arrasta e larga ou clica para carregar uma imagem |
| Imagens de exemplo | Clica nos exemplos integrados (imagens do conjunto de dados ou predefinições) |
| Captura por webcam | Transmissão de câmara ao vivo com captura de um único fotograma |
graph LR
A[Upload Image]:::start --> D[Auto-Inference]:::proc
B[Example Image]:::start --> D
C[Webcam Capture]:::start --> D
D --> E[Results + Overlays]:::out
classDef start fill:#4CAF50,color:#fff
classDef proc fill:#2196F3,color:#fff
classDef out fill:#9C27B0,color:#fffCarregar Imagem#
Arrasta e larga ou clica para carregar:
- Formatos suportados: JPEG, PNG, WebP, AVIF, HEIC, JP2, TIFF, BMP
- Tamanho máximo: 10 MB
- Inferência automática: Os resultados aparecem automaticamente após o carregamento
O painel de previsão executa a inferência automaticamente quando carregas uma imagem, selecionas um exemplo ou capturas um fotograma da webcam. Não é necessário clicar em nenhum botão.
Antes do envio, o painel redimensiona a imagem para que seu lado mais longo corresponda ao Image Size selecionado e solicita coordenadas normalizadas. Isso mantém os testes no navegador rápidos; as solicitações que você envia por conta própria não são redimensionadas.
Imagens de Exemplo#
O painel de predição mostra até duas imagens de exemplo do conjunto de dados vinculado ao seu modelo, preferindo a divisão val, depois test e, em seguida, train. Se nenhum conjunto de dados estiver vinculado, exemplos padrão serão usados:
| Imagem | Conteúdo |
|---|---|
bus.jpg | Cena de rua com veículos |
zidane.jpg | Cena desportiva com pessoas |
Para modelos OBB, imagens aéreas de barcos e de um aeroporto são exibidas em vez disso.
As imagens de exemplo são pré-carregadas quando a página é carregada, por isso clicar num exemplo aciona uma inferência quase instantânea sem tempo de espera de transferência.
Webcam#
Clica no cartão da webcam para iniciar uma transmissão de câmara ao vivo:
- Concede permissão à câmara quando solicitado
- Clica na pré-visualização de vídeo para capturar um fotograma
- A inferência é executada automaticamente no fotograma capturado
- Clica novamente para reiniciar a webcam
Ver Resultados#
Os resultados da inferência exibem a saída apropriada para a tarefa do modelo: caixas, máscaras, pontos-chave, caixas orientadas, escores de classificação, cobertura semântica ou um mapa de profundidade. Os resultados de objetos usam as cores de classe do conjunto de dados quando disponíveis. O painel também mostra o tempo de pré-processamento, inferência, pós-processamento e de rede.
O painel de resultados mostra:
| Campo | Descrição |
|---|---|
| Resumo dos resultados | Lista por detecção ou as 5 principais classes para modelos de classificação e semânticos |
| Estatísticas de velocidade | Pré-processamento, inferência, pós-processamento e rede (ms) |
| Versões | Versões de Ultralytics e PyTorch, além do intervalo de profundidade ou tamanho da máscara, quando aplicável |
| Resposta JSON | Resposta bruta da API em um bloco de código, com dados de mapa base64 omitidos |
Dois controles aparecem sobre a pré-visualização assim que os resultados são obtidos: clique na imagem para ampliá-la com as sobreposições intactas e use o botão de download para salvar um JPEG anotado do resultado atual.
Parâmetros de Inferência#
Ajusta o comportamento da inferência com os três controles deslizantes abaixo da imagem:

| Parâmetro | Intervalo | Predefinição | Descrição |
|---|---|---|---|
| Confiança | 0.01 – 1.0, passos de 0.01 | 0.25 | Limite mínimo de confiança |
| IoU | 0.0 – 0.95, passos de 0.01 | 0.7 | Limite de IoU do NMS |
| Tamanho da Imagem | 32 – 1280, passos de 32 | 640 | Dimensão de redimensionamento da entrada |
Alterar qualquer parâmetro reexecuta automaticamente a inferência na imagem atual com um debounce de 500ms. Não é necessário carregar novamente.
Limiar de Confiança#
Filtra as previsões por confiança:
- Mais alto (0.5+): Menos previsões, porém mais certas
- Mais baixo (0.1-0.25): Mais previsões, algum ruído
- Padrão (0.25): Equilibrado para a maioria dos casos de uso
Limiar IoU#
Controla a Supressão Não Máxima (NMS):
- Mais alto (0.7+): Permite mais caixas sobrepostas
- Inferior (0.3-0.5): Suprime detecções sobrepostas de forma mais agressiva
- Padrão (0.7): Comportamento de NMS equilibrado para a maioria dos casos de uso
Previsão de Implementação#
Cada endpoint dedicado em execução inclui uma aba Predict 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 testes o teu endpoint implantado a partir do navegador.
API de Endpoint Dedicado#
O cartão de Documentação da API na aba Predict do modelo contém exemplos de solicitações em Python, JavaScript e cURL, preenchidos previamente com a confiança, IoU e tamanho de imagem definidos atualmente nos seletores. A URL e a chave são marcadores de posição até que você implante o modelo — um botão Implantar ao lado das abas de código direciona para a aba Deploy do modelo. Após a implantação, a aba Code do cartão de implantação preenche a URL desse endpoint e, para proprietários de workspaces, sua chave de API vinculada, pronta para ser copiada e executada.
Autenticação#
Inclui a tua chave de API nos pedidos:
Authorization: Bearer YOUR_API_KEYPara executar a inferência a partir de seus próprios scripts, notebooks ou aplicativos, inclua uma chave de API. Gere uma em Settings > API Keys. Um endpoint dedicado aceita apenas a chave única com a qual foi criado; a API de modelo compartilhado aceita qualquer chave ativa no workspace, e modelos públicos também aceitam solicitações anônimas.
Endpoint#
Endpoints dedicados recebem solicitações em sua própria URL:
POST https://YOUR_DEPLOYMENT_URL.run.app/predictA inferência compartilhada usa a API da plataforma com o caminho completo do modelo:
POST https://platform.ultralytics.com/api/models/{owner}/{project}/{model}/predictAmbos aceitam o mesmo corpo multipart/form-data e retornam o mesmo formato de resposta. Com o
Python SDK, usa client.models.predict(owner, project, model, body=...) para inferência
compartilhada ou client.deployments.predict(owner, deployment, body=...) para um deployment dedicado:
from ultralytics_platform import Platform
client = Platform() # reads ULTRALYTICS_API_KEY
with open("image.jpg", "rb") as f:
results = client.models.predict("acme-vision", "inspection", "v3", body={"file": f, "conf": 0.25})Pedido#
import requests
url = "https://YOUR_DEPLOYMENT_URL.run.app/predict"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
data = {"conf": 0.25, "iou": 0.7, "imgsz": 640}
with open("image.jpg", "rb") as image_file:
response = requests.post(url, headers=headers, files={"file": image_file}, data=data)
print(response.json())
Parâmetros de solicitação#
| Parâmetro | Tipo | Predefinição | Intervalo | Descrição |
|---|---|---|---|---|
file | arquivo | - | - | Ficheiro de imagem ou vídeo (obrigatório, a menos que source esteja definido) |
conf | float | 0.25 | 0.01 – 1.0 | Limite mínimo de confiança |
iou | float | 0.7 | 0.0 – 0.95 | Limite de IoU do NMS |
imgsz | int | 640 | 32 – 1280 | Tamanho da imagem de entrada em pixels |
normalize | bool | false | - | Retornar coordenadas de caixa delimitadora como 0 – 1 |
decimals | int | 5 | 0 – 10 | Precisão decimal para valores de coordenadas |
bits | int | 8 | 8, 12, 16 | Quantização de mapa de profundidade, apenas para modelos de profundidade |
source | string | - | - | URL da imagem ou string base64 (alternativa a file) |
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,
"functionTimeAlive": 1284.51,
"functionTimeCall": 0.018,
"task": "detect",
"version": {
"ultralytics": "8.x.x",
"torch": "2.6.0",
"torchvision": "0.21.0",
"python": "3.13.0"
}
}
}
Campos de Resposta#
| Campo | Tipo | Descrição |
|---|---|---|
images | array | Lista de imagens processadas, uma entrada por quadro de vídeo para vídeos |
images[].shape | array | Dimensões da imagem [altura, largura] |
images[].results | array | Lista de detecções |
images[].results[].class | int | Índice da classe (ID inteiro) |
images[].results[].name | string | Nome da classe |
images[].results[].confidence | float | Confiança da detecção (0-1) |
images[].results[].box | objeto | Coordenadas da BBox |
images[].semantic_mask | objeto | Mapa de classes por pixel (apenas modelos semânticos) |
images[].depth | objeto | Mapa de profundidade por pixel (apenas modelos de profundidade) |
images[].speed | objeto | Tempos de processamento em milissegundos |
metadata | objeto | Contagem de imagens, tempos de serviço, tarefa e versões de Ultralytics/PyTorch |
Respostas específicas da tarefa#
O formato da resposta varia de acordo com a tarefa:
{
"class": 0,
"name": "person",
"confidence": 0.92,
"box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400}
}Limites de Taxa#
A API de modelo compartilhada é limitada a 20 requisições/minuto para cada chave de API, chamador conectado ou IP anônimo.
Quando limitada, a API retorna 429 com um cabeçalho Retry-After. Consulta a
referência de limite de taxa completa para todas as categorias de endpoints.
Solicitações enviadas diretamente a um endpoint dedicado não passam pelo limitador de taxa da API da plataforma. O endpoint ainda descarta carga com 429 e um cabeçalho Retry-After quando está temporariamente no limite de capacidade. Para inferência local de alto volume, 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 ou se o modelo possui pesos treinados |
| 401 | Não autorizado | Verifique a API key |
| 404 | Modelo não encontrado | Verifique o proprietário, o projeto e os nomes dos modelos |
| 413 | Entrada muito grande | Reduza o tamanho do arquivo abaixo do limite do endpoint |
| 429 | Limite de taxa atingido | Aguarda e tenta novamente, ou envia requisições diretamente para um endpoint dedicado |
| 500 | Erro no servidor | Tentar solicitação novamente |
| 503 | Serviço indisponível | Serviço Predict iniciando ou inacessível; aguarde um pouco e tente novamente |
FAQ#
Ambos os métodos de inferência aceitam arquivos de vídeo:
- Endpoints dedicados aceitam arquivos de vídeo diretamente. Formatos suportados (até 100 MB): ASF, AVI, GIF, M4V, MKV, MOV, MP4, MPEG, MPG, TS, WEBM, WMV. Cada quadro é processado individualmente e os resultados são retornados por quadro. Consulta endpoints dedicados para obter detalhes.
- A inferência compartilhada (
POST /api/models/{owner}/{project}/{model}/predict) usa o mesmo serviço de predição e aceita os mesmos formatos de vídeo. A aba Predict do navegador seleciona apenas imagens, portanto, use a API ou um endpoint dedicado para vídeos.
Na aba Predict, o botão de download sobre a pré-visualização salva o resultado atual como um JPEG anotado. A própria API retorna predições em JSON. Para visualizá-las:
- Use as previsões para desenhar caixas localmente
- Usa o método
plot()do Ultralytics:
from ultralytics import YOLO model = YOLO("yolo26n.pt") results = model("image.jpg") results[0].save("annotated.jpg")Consulta a documentação do modo Predict para ver a API de resultados completa e as opções de visualização.
- Limite da aba Predict: 10 MB
- Limite da API: 100 MB para inferência compartilhada e endpoints dedicados
- Redimensionamento automático na aba Predict: As imagens são redimensionadas para o
Image Sizeselecionado antes do envio
Imagens grandes são redimensionadas automaticamente no navegador, preservando a proporção. As solicitações que você envia por conta própria não são redimensionadas, portanto, imagens acima do limite são rejeitadas com
413.A API atual processa uma imagem por solicitação. Para lote:
- Envia solicitações separadas para cada imagem
- Distribui solicitações entre endpoints dedicados quando apropriado
- Usa inferência local para lotes grandes
Inferência em lote com Pythonimport concurrent.futures import requests url = "https://YOUR_DEPLOYMENT_URL.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))