Inferencia
La Plataforma Ultralytics proporciona una Inference API para probar modelos entrenados. Utilice la pestaña de Prueba basada en navegador para una validación rápida o la REST API para acceso programático.
Pestaña de Prueba
Cada modelo incluye una pestaña de Prueba para inferencia basada en navegador:
- Navega a tu modelo
- Haga clic en la pestaña Prueba
- Suba una imagen o utilice ejemplos
- Vea las predicciones al instante
Subir imagen
Arrastre y suelte o haga clic para subir:
- Formatos compatibles: JPG, PNG, WebP, GIF
- Tamaño máximo: 10MB
- Auto-inferencia: Los resultados aparecen automáticamente
Imágenes de ejemplo
Utilice imágenes de ejemplo integradas para pruebas rápidas:
| Imagen | Contenido |
|---|---|
bus.jpg | Escena callejera con vehículos |
zidane.jpg | Escena deportiva con personas |
Ver resultados
Visualización de resultados de inferencia:
- Cajas delimitadoras con etiquetas de clase
- Puntuaciones de confianza para cada detección
- Colores de clase que coinciden con su conjunto de datos
Parámetros de inferencia
Ajuste el comportamiento de detect con los siguientes parámetros:
| Parámetro | Rango | Predeterminado | Descripción |
|---|---|---|---|
| Confianza | 0.0-1.0 | 0.25 | Umbral mínimo de confianza |
| IoU | 0.0-1.0 | 0.70 | Umbral de IoU de NMS |
| Tamaño de la imagen | 32-1280 | 640 | Dimensión de redimensionamiento de entrada |
Umbral de confianza
Filtre las predicciones por confianza:
- Más alto (0.5+): Menos predicciones, más certeras
- Más bajo (0.1-0.25): Más predicciones, algo de ruido
- Predeterminado (0.25): Equilibrado para la mayoría de los casos de uso
Umbral de IoU
Controle la NMS:
- Más alto (0,7+): Permitir más solapamiento de cuadros.
- Más bajo (0,3-0,5): fusiona las detecciones cercanas de forma más agresiva.
- Predeterminado (0,70): NMS equilibrado NMS para la mayoría de los casos de uso.
REST API
Acceda a la inferencia programáticamente:
Autenticación
Incluya su clave API en las solicitudes:
Authorization: Bearer YOUR_API_KEY
Endpoint
POST https://platform.ultralytics.com/api/models/{model_slug}/predict
Solicitud
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())
Respuesta
{
"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 de Respuesta
| Campo | Tipo | Descripción |
|---|---|---|
success | booleano | Estado de la solicitud |
predictions | array | Lista de detect |
predictions[].class | string | Nombre de clase |
predictions[].confidence | float | Confianza de detect (0-1) |
predictions[].box | objeto | Coordenadas del cuadro delimitador |
image | objeto | Dimensiones de la imagen original |
Respuestas Específicas de la Tarea
El formato de respuesta varía según la tarea:
{
"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}
]
}
Límites de Tasa
La inferencia compartida tiene límites de tasa:
| Plan | Solicitudes/Minuto | Solicitudes/Día |
|---|---|---|
| Gratuito | 10 | 100 |
| Pro | 60 | 10,000 |
Para límites superiores, implemente un endpoint dedicado.
Manejo de Errores
Respuestas de error comunes:
| Código | Mensaje | Solución |
|---|---|---|
| 400 | Imagen no válida | Verifique el formato del archivo |
| 401 | No autorizado | Verifique la clave de API |
| 404 | Modelo no encontrado | Verifique el slug del modelo |
| 429 | Límite de tasa excedido | Espere o actualice su plan |
| 500 | Error del servidor | Reintente la solicitud |
Preguntas frecuentes
¿Puedo ejecutar inferencia en video?
La API acepta fotogramas individuales. Para video:
- Extraiga fotogramas localmente
- Envíe cada fotograma a la API
- Agregue los resultados
Para video en tiempo real, considere implementar un endpoint dedicado.
¿Cómo obtengo la imagen anotada?
La API devuelve predicciones JSON. Para visualizar:
- Utilice las predicciones para dibujar cuadros localmente
- Use Ultralytics
plot()método:
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
results = model("image.jpg")
results[0].save("annotated.jpg")
¿Cuál es el tamaño máximo de imagen?
- Límite de subida: 10MB
- Recommended: <5MB for fast inference
- Redimensionamiento automático: Las imágenes se redimensionan a
imgszparameter
Las imágenes grandes se redimensionan automáticamente conservando la relación de aspecto.
¿Puedo ejecutar inferencia por lotes?
La API actual procesa una imagen por solicitud. Para procesamiento por lotes:
- Envíe solicitudes concurrentes
- Utilice un endpoint dedicado para un mayor rendimiento.
- Considere la inferencia local para grandes lotes.