Ir al contenido

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:

  1. Navega hasta tu modelo
  2. Haga clic en la pestaña Prueba.
  3. Sube una imagen o utiliza ejemplos.
  4. 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:

ImagenContenido
bus.jpgEscena callejera con vehículos
zidane.jpgEscena 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ámetroRangoPredeterminadoDescripción
Confianza0,0-1,00.25Umbral mínimo de confianza
IoU0,0-1,00.45IoU de NMS IoU
Tamaño de la imagen32-1280640Dimensió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

CampoTipoDescripción
successbooleanoEstado de la solicitud
predictionsmatrizLista de detecciones
predictions[].classcadenaNombre de la clase
predictions[].confidenceflotarConfianza en la detección (0-1)
predictions[].boxobjetoCoordenadas del cuadro delimitador
imageobjetoDimensiones 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:

PlanSolicitudes/MinutoSolicitudes/día
Gratis10100
Pro6010,000

Para límites más altos, implemente un punto final dedicado.

Gestión de errores

Respuestas de error comunes:

CódigoMensajeSolución
400Imagen no válidaComprueba el formato del archivo.
401No autorizadoVerificar clave API
404No se ha encontrado el modelo.Comprueba el slug del modelo.
429Velocidad limitadaEsperar o actualizar el plan
500Error del servidorReiterar solicitud

Preguntas frecuentes

¿Puedo ejecutar inferencias en vídeo?

La API acepta fotogramas individuales. Para vídeo:

  1. Extraer fotogramas localmente
  2. Enviar cada fotograma a la API
  3. 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:

  1. Utiliza predicciones para dibujar cuadros localmente.
  2. 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 imgsz parameter

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:

  1. Enviar solicitudes simultáneas
  2. Utilice un punto final dedicado para obtener un mayor rendimiento.
  3. Considerar la inferencia local para lotes grandes.


📅 Creado hace 0 días ✏️ Actualizado hace 0 días
glenn-jocher

Comentarios