Inferencia
Ultralytics proporciona una API de inferencia para probar modelos entrenados. Utilice la pestaña Prueba basada en el navegador para una validación rápida o la REST API acceso programático.
Pestaña Prueba
Todos los modelos incluyen una pestaña Prueba para la inferencia basada en el navegador:
- Navega hasta tu modelo
- Haga clic en la pestaña Prueba.
- Sube una imagen o utiliza ejemplos.
- Ver predicciones al instante
Subir imagen
Arrastra y suelta o haz clic para cargar:
- Formatos compatibles: JPG, PNG, WebP, GIF
- Tamaño máximo: 10 MB
- Autoinferencia: los resultados aparecen automáticamente.
Imágenes de ejemplo
Utilice las imágenes de ejemplo integradas para realizar pruebas rápidas:
| Imagen | Contenido |
|---|---|
bus.jpg | Escena callejera con vehículos |
zidane.jpg | Escena deportiva con personas |
Ver resultados
Visualización de los resultados de la inferencia:
- Cuadros delimitadores con etiquetas de clase
- Puntuaciones de confianza para cada detección
- Colores de clase que coinciden con tu conjunto de datos
Parámetros de inferencia
Ajuste el comportamiento de detección con 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.45 | IoU de NMS IoU |
| Tamaño de la imagen | 32-1280 | 640 | Dimensión de cambio de tamaño de entrada |
Umbral de confianza
Filtrar predicciones por confianza:
- Más alto (0,5+): Menos predicciones, pero más seguras.
- 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.
IoU
Control de supresión no máxima:
- Más alto (0,7+): Permitir solapamiento de cuadros
- Inferior (0,3-0,45): fusionar detecciones cercanas.
- Predeterminado (0,45): NMS estándar NMS .
REST API
Acceder a la inferencia mediante programación:
Autenticación
Incluye tu clave API en las solicitudes:
Authorization: Bearer YOUR_API_KEY
Punto final
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.45"
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.45}
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 | matriz | Lista de detecciones |
predictions[].class | cadena | Nombre de la clase |
predictions[].confidence | flotar | Confianza en la detección (0-1) |
predictions[].box | objeto | Coordenadas del cuadro delimitador |
image | objeto | Dimensiones originales de la imagen |
Respuestas específicas para cada 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 velocidad
La inferencia compartida tiene límites de velocidad:
| Plan | Solicitudes/Minuto | Solicitudes/día |
|---|---|---|
| Gratis | 10 | 100 |
| Pro | 60 | 10,000 |
Para límites más altos, implemente un punto final dedicado.
Gestión de errores
Respuestas de error comunes:
| Código | Mensaje | Solución |
|---|---|---|
| 400 | Imagen no válida | Comprueba el formato del archivo. |
| 401 | No autorizado | Verificar clave API |
| 404 | No se ha encontrado el modelo. | Comprueba el slug del modelo. |
| 429 | Velocidad limitada | Esperar o actualizar el plan |
| 500 | Error del servidor | Reiterar solicitud |
Preguntas frecuentes
¿Puedo ejecutar inferencias en vídeo?
La API acepta fotogramas individuales. Para vídeo:
- Extraer fotogramas localmente
- Enviar cada fotograma a la API
- Resultados agregados
Para vídeo en tiempo real, considere la posibilidad de implementar un punto final dedicado.
¿Cómo puedo obtener la imagen anotada?
La API devuelve predicciones JSON. Para visualizar:
- Utiliza predicciones para dibujar cuadros localmente.
- Utilice Ultralytics
plot()método:
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
results = model("image.jpg")
results[0].save("annotated.jpg")
¿Cuál es el tamaño máximo de imagen?
- Límite de carga: 10 MB
- Recommended: <5MB for fast inference
- Cambiar tamaño automáticamente: Las imágenes se redimensionan a
imgszparameter
Las imágenes grandes se redimensionan automáticamente conservando la relación de aspecto.
¿Puedo ejecutar inferencias por lotes?
La API actual procesa una imagen por solicitud. Para lotes:
- Enviar solicitudes simultáneas
- Utilice un punto final dedicado para obtener un mayor rendimiento.
- Considerar la inferencia local para lotes grandes.