Inferência
A Plataforma Ultralytics oferece uma Inference API para testar modelos treinados. Use a aba Teste baseada no navegador para validação rápida ou a REST API para acesso programático.
Guia de Teste
Todo modelo inclui uma aba Teste para inferência baseada no navegador:
- Navegue até o seu modelo
- Clique na aba Teste
- Carregue uma imagem ou use exemplos
- Visualize as previsões instantaneamente
Carregar Imagem
Arraste e solte ou clique para carregar:
- Formatos suportados: JPG, PNG, WebP, GIF
- Tamanho máximo: 10MB
- Auto-inferência: Os resultados aparecem automaticamente
Imagens de Exemplo
Use imagens de exemplo integradas para testes rápidos:
| Imagem | Conteúdo |
|---|---|
bus.jpg | Cena de rua com veículos |
zidane.jpg | Cena esportiva com pessoas |
Ver Resultados
Exibição dos resultados da inferência:
- Caixas delimitadoras com rótulos de classe
- Pontuações de confiança para cada detect
- Cores de classe correspondentes ao seu conjunto de dados
Parâmetros de Inferência
Ajuste o comportamento de detect com parâmetros:
| Parâmetro | Intervalo | Padrão | Descrição |
|---|---|---|---|
| Confiança | 0.0-1.0 | 0.25 | Limite mínimo de confiança |
| IoU | 0.0-1.0 | 0.70 | Limite de IoU da NMS |
| Tamanho da Imagem | 32-1280 | 640 | Dimensão de redimensionamento da entrada |
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
REST API
Acessar inferência programaticamente:
Autenticação
Inclua sua chave API nas requisições:
Authorization: Bearer YOUR_API_KEY
Endpoint
POST https://platform.ultralytics.com/api/models/{model_slug}/predict
Requisição
curl -X POST \
"https://platform.ultralytics.com/api/models/username/project/model/predict" \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@image.jpg" \
-F "conf=0.25" \
-F "iou=0.7"
import requests
url = "https://platform.ultralytics.com/api/models/username/project/model/predict"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
files = {"file": open("image.jpg", "rb")}
data = {"conf": 0.25, "iou": 0.7}
response = requests.post(url, headers=headers, files=files, data=data)
print(response.json())
Resposta
{
"success": true,
"predictions": [
{
"class": "person",
"confidence": 0.92,
"box": {
"x1": 100,
"y1": 50,
"x2": 300,
"y2": 400
}
},
{
"class": "car",
"confidence": 0.87,
"box": {
"x1": 400,
"y1": 200,
"x2": 600,
"y2": 350
}
}
],
"image": {
"width": 1920,
"height": 1080
}
}
Campos da Resposta
| Campo | Tipo | Descrição |
|---|---|---|
success | booleano | Status da requisição |
predictions | array | Lista de detecções |
predictions[].class | string | Nome da classe |
predictions[].confidence | float | Confiança da detecção (0-1) |
predictions[].box | objeto | Coordenadas da caixa delimitadora |
image | objeto | Dimensões da imagem original |
Respostas Específicas da Tarefa
O formato da resposta varia por tarefa:
{
"class": "person",
"confidence": 0.92,
"box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400}
}
{
"class": "person",
"confidence": 0.92,
"box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400},
"segments": [[100, 50], [150, 60], ...]
}
{
"class": "person",
"confidence": 0.92,
"box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400},
"keypoints": [
{"x": 200, "y": 75, "conf": 0.95},
...
]
}
{
"predictions": [
{"class": "cat", "confidence": 0.95},
{"class": "dog", "confidence": 0.03}
]
}
Limites de Taxa
A inferência compartilhada possui limites de taxa:
| Plano | Requisições/Minuto | Requisições/Dia |
|---|---|---|
| Gratuito | 10 | 100 |
| Pro | 60 | 10,000 |
Para limites mais altos, implante um endpoint dedicado.
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 slug do modelo |
| 429 | Limite de taxa atingido | Aguarde ou atualize o plano |
| 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")
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
imgszparâ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