Ultralytics YOLO27:

Inferencia#

Ultralytics Platform proporciona inferencia desde el navegador para probar modelos entrenados y endpoints específicos para el acceso programático.

Pestaña Predict de Ultralytics Platform con superposición de detecciones

Pestaña Predict#

Todos los modelos con pesos incluyen una pestaña Predict para la inferencia desde el navegador:

  1. Ve a tu modelo
  2. Haz clic en la pestaña Predict
  3. Sube una imagen, usa un ejemplo o abre tu webcam
  4. Revisa la superposición específica de la tarea, el resumen de predicciones, los tiempos y la respuesta sin procesar

Los modelos sin pesos muestran un estado vacío; primero entrena el modelo o sube los pesos.

Zona de carga de imágenes de la pestaña Predict de Ultralytics Platform

Métodos de entrada#

El panel de predicción admite varios métodos de entrada:

MétodoDescripción
Carga de imágenesArrastra y suelta una imagen o haz clic para subirla
Imágenes de ejemploHaz clic en los ejemplos integrados (imágenes del conjunto de datos o predeterminadas)
Captura con webcamTransmisión de vídeo en directo con captura de un solo 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:#fff

Subir imagen#

Arrastra y suelta o haz clic para subirla:

  • Formatos compatibles: JPEG, PNG, WebP, AVIF, HEIC, JP2, TIFF, BMP
  • Tamaño máximo: 10 MB
  • Inferencia automática: los resultados aparecen automáticamente después de subir la imagen
Inferencia automática

El panel de predicción ejecuta la inferencia automáticamente cuando subes una imagen, seleccionas un ejemplo o capturas un fotograma de la webcam. No es necesario hacer clic en ningún botón.

Redimensionamiento en el cliente

Antes de subirla, el panel redimensiona la imagen para que su lado más largo coincida con el Image Size seleccionado y solicita coordenadas normalizadas. Esto mantiene rápidas las pruebas en el navegador; las solicitudes que envías tú no se redimensionan.

Imágenes de ejemplo#

El panel de predicción muestra hasta dos imágenes de ejemplo del conjunto de datos vinculado a tu modelo y da preferencia a la división val, seguida de test y después train. Si no hay ningún conjunto de datos vinculado, se usan ejemplos predeterminados:

ImagenContenido
bus.jpgEscena urbana con vehículos
zidane.jpgEscena deportiva con personas

Para los modelos OBB, se muestran en su lugar imágenes aéreas de barcos y de un aeropuerto.

Imágenes precargadas

Las imágenes de ejemplo se precargan al cargar la página, por lo que al hacer clic en un ejemplo la inferencia se ejecuta casi al instante, sin esperar a ninguna descarga.

Webcam#

Haz clic en la tarjeta de la webcam para iniciar una transmisión de vídeo en directo:

  1. Concede permiso para usar la cámara cuando se te solicite
  2. Haz clic en la vista previa del vídeo para capturar un fotograma
  3. La inferencia se ejecuta automáticamente en el fotograma capturado
  4. Vuelve a hacer clic para reiniciar la webcam

Ver resultados#

Los resultados de la inferencia muestran la salida adecuada para la tarea del modelo: cuadros, máscaras, puntos clave, cuadros orientados, puntuaciones de clasificación, cobertura semántica o un mapa de profundidad. Los resultados de objetos usan los colores de clase del conjunto de datos cuando están disponibles. El panel también muestra los tiempos de preprocesamiento, inferencia, posprocesamiento y red.

Resultados de la pestaña Predicción de la plataforma Ultralytics con detecciones y estadísticas de velocidad

El panel de resultados muestra:

CampoDescripción
Resumen de resultadosLista de cada detección o las 5 clases principales para los modelos de clasificación y semánticos
Estadísticas de velocidadPreprocesamiento, inferencia, posprocesamiento y red (ms)
VersionesVersiones de Ultralytics y PyTorch, además del rango de profundidad o el tamaño de la máscara cuando corresponda
Respuesta JSONRespuesta sin procesar de la API en un bloque de código, con los datos del mapa codificados en base64 omitidos

Cuando hay resultados, aparecen dos controles sobre la vista previa: haz clic en la imagen para ampliarla manteniendo las superposiciones y usa el botón de descarga para guardar un JPEG anotado del resultado actual.

Parámetros de inferencia#

Ajusta el comportamiento de la inferencia con los tres controles deslizantes situados debajo de la imagen:

Controles deslizantes de parámetros de la pestaña Predict de Ultralytics Platform

ParámetroRangoPredeterminadoDescripción
Confianza0.01 – 1.0, pasos de 0.010.25Umbral mínimo de confianza
IoU0.0 – 0.95, pasos de 0.010.7Umbral de IoU de NMS
Tamaño de imagen32 – 1280, pasos de 32640Dimensión de redimensionamiento de la entrada
Ejecución automática de nuevo

Al cambiar cualquier parámetro, la inferencia se vuelve a ejecutar automáticamente en la imagen actual con un debounce de 500 ms. No es necesario volver a subirla.

Umbral de confianza#

Filtra las predicciones por confianza:

  • Más alto (0.5+): menos predicciones y mayor certeza
  • Más bajo (0.1-0.25): más predicciones, con algo de ruido
  • Predeterminado (0.25): equilibrado para la mayoría de los casos de uso

Umbral de IoU#

Controla la supresión no máxima:

  • Más alto (0.7+): permite más cuadros superpuestos
  • Más bajo (0.3-0.5): suprime las detecciones superpuestas de forma más agresiva
  • Predeterminado (0.7): comportamiento equilibrado de NMS para la mayoría de los casos de uso

Predict del despliegue#

Cada endpoint específico en ejecución incluye una pestaña Predict directamente en su tarjeta de despliegue. Usa el propio servicio de inferencia del despliegue en lugar del servicio de predicción compartido, lo que te permite probar el endpoint desplegado desde el navegador.

En un punto de conexión de pago con la supervisión habilitada, las imágenes procesadas también contribuyen a la pestaña de supervisión. Los ejemplos muestreados y los gráficos agregados de la pestaña de supervisión son datos temporales y ligeros almacenados en la memoria; detener, reiniciar, volver a implementar, cambiar el tamaño o reemplazar el modelo puede borrar los datos de la pestaña de supervisión. Guarda los ejemplos en un conjunto de datos para conservar los ejemplos.

API del endpoint específico#

La tarjeta API Docs de la pestaña Predict del modelo contiene solicitudes de ejemplo en Python, JavaScript y cURL, rellenadas previamente con la confianza, IoU y el tamaño de imagen establecidos actualmente en los controles deslizantes. La URL y la clave son marcadores de posición hasta que despliegues el modelo; un botón Deploy situado junto a las pestañas de código salta a la pestaña Deploy del modelo. Después del despliegue, la pestaña Code de la tarjeta de despliegue rellena la URL de ese endpoint y, para los propietarios del espacio de trabajo, su clave de API vinculada, lista para copiarla y ejecutarla.

Autenticación#

Incluye tu clave de API en las solicitudes:

Authorization: Bearer YOUR_API_KEY
Se necesita una clave de API

Para ejecutar inferencias desde tus propios scripts, notebooks o aplicaciones, incluye una clave de API. Genera una en Settings > API Keys. Un endpoint específico solo acepta la única clave con la que se creó; la API de modelos compartida acepta cualquier clave activa del espacio de trabajo y los modelos públicos también aceptan solicitudes anónimas.

Endpoint#

Los endpoints específicos reciben solicitudes en su propia URL:

POST https://YOUR_DEPLOYMENT_URL.run.app/predict

La inferencia compartida usa la API de Platform con la ruta completa del modelo:

POST https://platform.ultralytics.com/api/models/{owner}/{project}/{model}/predict

Ambos aceptan el mismo cuerpo multipart/form-data y devuelven la misma estructura de respuesta. Con el SDK de Python, usa client.models.predict(owner, project, model, body=...) para la inferencia compartida o client.deployments.predict(owner, deployment, body=...) para un despliegue específico:

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})

Solicitud#

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())

Ejemplos de código de la pestaña Predict de Ultralytics Platform, pestaña Python

Parámetros de la solicitud#

ParámetroTipoPredeterminadoRangoDescripción
filefile--Archivo de imagen o vídeo (obligatorio a menos que se establezca source)
conffloat0.250.01 – 1.0Umbral mínimo de confianza
ioufloat0.70.0 – 0.95Umbral de IoU de NMS
imgszint64032 – 1280Tamaño de la imagen de entrada en píxeles
normalizeboolfalse-Devuelve las coordenadas del cuadro delimitador como valores de 0 a 1
decimalsint50 – 10Precisión decimal de los valores de coordenadas
bitsint88, 12, 16Cuantización del mapa de profundidad, solo para modelos de profundidad
sourcestring--URL de imagen o cadena en base64 (alternativa a file)

Respuesta#

{
    "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"
        }
    }
}

Vista de respuesta JSON de la pestaña Predict de Ultralytics Platform

Campos de respuesta#

CampoTipoDescripción
imagesmatrizLista de imágenes procesadas, una entrada por fotograma de vídeo en el caso de los vídeos
images[].shapematrizDimensiones de la imagen [altura, anchura]
images[].resultsmatrizLista de detecciones
images[].results[].classintÍndice de clase (ID entero)
images[].results[].namestringNombre de la clase
images[].results[].confidencefloatConfianza de la detección (0-1)
images[].results[].boxobjetoCoordenadas de la caja delimitadora
images[].semantic_maskobjetoMapa de clases por píxel (solo modelos semánticos)
images[].depthobjetoMapa de profundidad por píxel (solo modelos de profundidad)
images[].speedobjetoTiempos de procesamiento en milisegundos
metadataobjetoNúmero de imágenes, tiempos del servicio, tarea y versiones de Ultralytics/PyTorch

Respuestas específicas de cada tarea#

El formato de respuesta varía según la tarea:

{
  "class": 0,
  "name": "person",
  "confidence": 0.92,
  "box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400}
}

Límites de uso#

La API de modelos compartida está limitada a 20 solicitudes/minuto por cada clave de API, usuario autenticado o IP anónima. Cuando se aplica la limitación, la API devuelve 429 con una cabecera Retry-After. Consulta la referencia completa sobre los límites de uso para ver todas las categorías de endpoints.

¿Necesitas más capacidad?

Las solicitudes enviadas directamente a un endpoint dedicado no pasan por el limitador de velocidad de la API de Platform. El endpoint sigue reduciendo la carga con 429 y una cabecera Retry-After cuando alcanza temporalmente su capacidad. Para realizar inferencias locales de gran volumen, consulta la guía del modo Predict.

Gestión de errores#

Respuestas de error habituales:

CódigoMensajeSolución
400Imagen no válidaComprueba el formato del archivo o que el modelo tenga pesos entrenados
401No autorizadoVerifica la clave de API
404Modelo no encontradoComprueba el propietario, el proyecto y los nombres del modelo
413Entrada demasiado grandeReduce el tamaño del archivo por debajo del límite del endpoint
429Límite de solicitudes alcanzadoEspera y vuelve a intentarlo, o envía las solicitudes directamente a un endpoint dedicado
500Error del servidorVuelve a intentarlo
503Servicio no disponibleEl servicio Predict se está iniciando o no está disponible; espera un momento y vuelve a intentarlo

Preguntas frecuentes#

  • Ambos métodos de inferencia aceptan archivos de vídeo:

    • Los endpoints dedicados aceptan archivos de vídeo directamente. Formatos compatibles (hasta 100 MB): ASF, AVI, GIF, M4V, MKV, MOV, MP4, MPEG, MPG, TS, WEBM, WMV. Cada fotograma se procesa individualmente y los resultados se devuelven por fotograma. Consulta endpoints dedicados para obtener más información.
    • La inferencia compartida (POST /api/models/{owner}/{project}/{model}/predict) utiliza el mismo servicio Predict y acepta los mismos formatos de vídeo. La pestaña Predict del navegador solo permite seleccionar imágenes, así que utiliza la API o un endpoint dedicado para vídeo.
  • En la pestaña Predict, el botón de descarga situado sobre la vista previa guarda el resultado actual como un JPEG anotado. La API propiamente dicha devuelve predicciones en formato JSON. Para visualizarlas:

    1. Utiliza las predicciones para dibujar cajas localmente
    2. Utiliza el método plot() de Ultralytics:
    from ultralytics import YOLO
    
    model = YOLO("yolo26n.pt")
    results = model("image.jpg")
    results[0].save("annotated.jpg")

    Consulta la documentación del modo Predict para obtener información completa sobre la API de resultados y las opciones de visualización.

    • Límite de la pestaña Predict: 10 MB
    • Límite de la API: 100 MB tanto para la inferencia compartida como para los endpoints dedicados
    • Cambio de tamaño automático en la pestaña Predict: las imágenes cambian de tamaño al Image Size seleccionado antes de subirse

    Las imágenes grandes cambian de tamaño automáticamente en el navegador, manteniendo la relación de aspecto. Las solicitudes que envíes tú mismo no cambian de tamaño, por lo que las imágenes que superen el límite se rechazan con 413.

  • La API actual procesa una imagen por solicitud. Para procesar por lotes:

    1. Envía solicitudes independientes para cada imagen
    2. Distribuye las solicitudes entre endpoints dedicados cuando sea conveniente
    3. Utiliza la inferencia local para lotes grandes
    Inferencia por lotes con Python
    import 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))

Comentarios