Ultralytics YOLO27:
Get Started

Inferencia#

Ultralytics Platform ofrece inferencia en el navegador para probar modelos entrenados y endpoints dedicados para el acceso mediante programación.

Pestaña de predicción de modelos de Ultralytics Platform con superposición de detecciones

Pestaña de predicción#

Todos los modelos que incluyen pesos tienen una pestaña Predict para realizar inferencias en 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 cámara web
  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 imágenes predeterminadas)
Captura con la cámara webVídeo en directo de la cámara con captura de un solo fotograma
Cámara IPTransmisión RTSP o RTSPS en tu propio despliegue
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 subir:

  • 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 la carga
Inferencia automática

El panel de predicción ejecuta la inferencia automáticamente cuando subes una imagen, seleccionas un ejemplo o capturas un fotograma con la cámara web. No hace falta hacer clic en ningún botón.

Redimensionamiento en el cliente

Antes de subir la imagen, el panel la redimensiona para que su lado más largo coincida con el Image Size seleccionado y solicita coordenadas normalizadas. Así, las pruebas en el navegador son rápidas; las solicitudes que envíes por tu cuenta 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 prioridad a la partición val, después a test y, por último, a train. Si no hay ningún conjunto de datos vinculado, se usan imágenes de ejemplo predeterminadas:

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

En 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 tener que esperar a que se descargue.

Cámara web#

Selecciona Cámara web encima del área de imagen para iniciar una transmisión en directo de la cámara:

  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. Haz clic en Volver a la cámara web para volver a la transmisión en directo

En la pestaña Predict de tu propio despliegue, la cámara web ejecuta inferencias continuamente. Consulta Inferencia con cámara en directo.

Ver resultados#

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

Resultados de la pestaña Predict de Ultralytics Platform con detecciones y estadísticas de velocidad

El panel de resultados muestra:

CampoDescripción
Resumen de resultadosLista de detecciones 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 intervalo de profundidad o el tamaño de la máscara, si corresponde
Respuesta JSONRespuesta sin procesar de la API en un bloque de código, con los datos del mapa en base64 omitidos

Cuando aparecen los resultados, hay dos controles sobre la vista previa: haz clic en la imagen para ampliarla sin perder 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 inferencia con los tres controles deslizantes situados debajo de la imagen (los modelos de profundidad solo muestran Tamaño de imagen):

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

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

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

Umbral de confianza#

Filtra las predicciones por confianza:

  • Más alto (0.5+): menos predicciones y más seguras
  • 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 cajas superpuestas
  • Más bajo (0.3-0.5): suprime las detecciones superpuestas de forma más agresiva
  • Predeterminado (0.7): comportamiento de NMS equilibrado para la mayoría de los casos de uso

Predicción en el despliegue#

Cada endpoint dedicado en ejecución incluye una pestaña Predict en su página de despliegue. Esta pestaña utiliza el propio servicio de inferencia del despliegue, en lugar del servicio de predicción compartido, para que puedas probar el endpoint desplegado desde el navegador.

En un endpoint listo, las imágenes procesadas también se incluyen en la pestaña Monitoring. Sus ejemplos y gráficos agregados son datos temporales y ligeros que se guardan en memoria; detener, reiniciar, volver a desplegar, cambiar el tamaño o sustituir el modelo puede borrarlos. Guarda los ejemplos en un conjunto de datos para conservarlos.

Inferencia con cámara en directo#

En la pestaña Predict de un despliegue que te pertenece, selecciona Cámara web o Cámara IP para ejecutar el endpoint sobre vídeo en directo:

FuenteCómo funciona
Cámara webEl navegador envía los fotogramas al endpoint de uno en uno y dibuja cada resultado sobre la transmisión en directo
Cámara IPIntroduce una URL rtsp:// o rtsps://, incluidas las credenciales, y haz clic en Conectar; el endpoint lee la cámara y transmite cada resultado de vuelta

La inferencia en directo usa la clave API asociada al endpoint, que solo puede cargar el propietario del espacio de trabajo; para los demás miembros del equipo, la cámara web captura fotogramas individuales y Cámara IP no está disponible, igual que en la pestaña Predict de un modelo. La cámara IP debe ser accesible desde Internet: el endpoint rechaza direcciones de redes locales como 192.168.x.x. Cada resultado corresponde al fotograma más reciente, por lo que se omiten fotogramas si la inferencia se retrasa. Los cambios en los controles deslizantes se aplican al siguiente fotograma de la cámara web y reinician una transmisión de cámara IP. La inferencia en directo se pausa cuando la pestaña del navegador queda oculta. Haz clic en la vista previa para capturar un fotograma o en Desconectar para dejar de ver la cámara IP.

Cámara en segundo plano#

Un endpoint con un tamaño personalizado de CPU y memoria puede seguir vigilando una cámara IP después de que te desconectes o cierres la página. Cuando la cámara conectada muestre resultados, activa Mantener en ejecución en segundo plano. El encabezado del despliegue muestra Cámara activada, y los resultados aparecen en la pestaña Supervisión como ejemplos temporales y estadísticas de predicción.

  • Ajustes: La cámara en segundo plano siempre usa la confianza predeterminada (0.25), IoU (0.7) y el tamaño de imagen de entrenamiento del modelo; los controles deslizantes no se aplican a esta cámara.
  • Coste: Se ejecuta en la instancia activa del endpoint sin coste adicional; se aplica la tarifa por hora de tiempo de actividad tanto si la cámara está encendida como si está apagada.
  • Cambios: Al encender o apagar la cámara, o cambiar a otra, se reinicia la instancia del endpoint, que queda lista de nuevo, pero se borran sus datos temporales de supervisión.
  • Detención: Apaga el interruptor. Desconectarte o cerrar la página no detiene la cámara, y cambiar el tamaño del endpoint al predeterminado la elimina. Si la cámara se desconecta, el endpoint sigue intentando conectarse de nuevo.
  • Ciclo de vida del endpoint: Al detener el endpoint, se detienen la cámara y los cargos; al iniciarlo de nuevo, se reanuda la cámara guardada.

Los endpoints de tamaño predeterminado ofrecen inferencia en directo con cámara web y cámara IP, pero no la opción de segundo plano. Para guardar una cámara en segundo plano desde la API, usa la acción camera del despliegue.

Transmitir resultados desde la API#

Envía una URL RTSP o RTSPS como source con el encabezado Accept: text/event-stream a una URL de endpoint dedicado para recibir resultados como eventos enviados por el servidor:

curl -N -X POST \
  "https://YOUR_DEPLOYMENT_URL.run.app/predict" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: text/event-stream" \
  -F "source=rtsp://user:password@camera.example.com:554/stream" \
  -F "conf=0.25"

Cada evento de fotograma incluye images con el formato de respuesta, con coordenadas normalizadas (0-1), una URL de datos JPEG preview del fotograma y metadata con la tarea y los nombres de las clases. Solo se aplican conf, iou y imgsz, y la transmisión de la URL de la cámara en segundo plano del endpoint usa los ajustes predeterminados. Los eventos que solo contienen status no incluyen ningún fotograma, y un evento con un mensaje error (no se ha podido leer la cámara o el endpoint no puede ejecutar el modelo) finaliza la transmisión. La transmisión también se cierra cuando se reinicia el endpoint o la solicitud alcanza su límite de tiempo; si termina sin error, vuelve a conectarte con un intervalo de espera creciente. La ruta de predicción de despliegues de Platform API y el SDK no transmiten resultados; envía las solicitudes de cámara a la URL del endpoint con la clave API asociada. Una source de cámara sin el encabezado devuelve 400.

API del endpoint dedicado#

La tarjeta API Docs de la pestaña Predict del modelo contiene ejemplos de solicitudes en Python, JavaScript y cURL, con los valores de confianza, IoU y tamaño de imagen configurados actualmente en los controles deslizantes. La URL y la clave son marcadores de posición hasta que despliegues el modelo; el botón Deploy, junto a las pestañas de código, te lleva a la pestaña Deploy del modelo. Tras el despliegue, la pestaña de resultados Docs de la pestaña Predict de la página de despliegue completa la URL de ese endpoint y, para los propietarios del espacio de trabajo, su clave de API asociada, lista para copiar y ejecutar.

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 dedicado solo acepta la clave única con la que se creó; la API del modelo compartido acepta cualquier clave activa del espacio de trabajo, y los modelos públicos también aceptan solicitudes anónimas.

Endpoint#

Los endpoints dedicados reciben solicitudes en su propia URL:

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

La inferencia compartida utiliza 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, utiliza client.models.predict(owner, project, model, body=...) para la inferencia compartida o client.deployments.predict(owner, deployment, body=...) para un despliegue dedicado. Ambos métodos del SDK llaman a la API de Platform, por lo que se aplican sus límites de frecuencia y el límite de tamaño de las solicitudes. Para evitarlos, envía la solicitud directamente a la URL de un endpoint dedicado, como se muestra en Solicitud. Ejemplo de inferencia compartida:

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 Python de la pestaña Predict de Ultralytics Platform

Parámetros de la solicitud#

ParámetroTipoPredeterminadoIntervaloDescripción
filefile--Archivo de imagen o vídeo (obligatorio, salvo que se haya definido source)
conffloat0.250.01 – 1.0Umbral mínimo de confianza
ioufloat0.70.0 – 0.95Umbral de IoU de NMS
imgszint-32 – 1280Tamaño de la imagen de entrada en píxeles; de forma predeterminada, se utiliza el tamaño de entrenamiento del modelo (640 si no está disponible)
normalizeboolfalse-Devuelve las coordenadas de las cajas delimitadoras en el intervalo 0 – 1
decimalsint50 – 10Precisión decimal de los valores de las coordenadas
vid_strideint1≥ 1Predice cada N fotogramas del vídeo; se ignora en las imágenes
bitsint88, 12, 16Cuantización del mapa de profundidad; solo para modelos de profundidad
sourcestring--URL de imagen o cadena en base64 (alternativa a file); máximo de 4,096 caracteres mediante la API de Platform

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,
        "classNames": ["person", "bicycle", "car", "..."],
        "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 la respuesta JSON de la pestaña Predict de Ultralytics Platform

Campos de la respuesta#

CampoTipoDescripción
imagesarrayLista de imágenes procesadas, con una entrada por cada fotograma de vídeo procesado
images[].shapearrayDimensiones de la imagen [alto, ancho]
images[].resultsarrayLista 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[].boxobjectCoordenadas de la caja delimitadora
images[].semantic_maskobjectMapa de clases por píxel (solo para modelos semánticos)
images[].depthobjectMapa de profundidad por píxel (solo para modelos de profundidad)
images[].speedobjectTiempos de procesamiento en milisegundos
metadataobjectNúmero de imágenes, nombres de las clases del modelo, tiempos del servicio, tarea y versiones

Respuestas específicas de cada tarea#

El formato de la 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 frecuencia#

La API del modelo compartido está limitada a 20 solicitudes/minuto por cada clave de API, usuario autenticado o IP anónima. La ruta de predicción del despliegue de Platform (POST /api/deployments/{owner}/{deployment}/predict) tiene el mismo límite. Cuando se alcanza el límite, la API devuelve 429 con una cabecera Retry-After. Consulta la referencia completa sobre límites de frecuencia para conocer todas las categorías de endpoints.

¿Necesitas más capacidad?

Las solicitudes enviadas directamente a un endpoint dedicado no pasan por el limitador de frecuencia de la API de Platform. El endpoint sigue rechazando solicitudes para aliviar la carga con 429 y una cabecera Retry-After cuando alcanza temporalmente su capacidad máxima. Para 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
404No se encuentra el modeloComprueba el propietario, el proyecto y los nombres del modelo
413La entrada es 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 intentar la solicitud
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 32 MB por solicitud): ASF, AVI, GIF, M4V, MKV, MOV, MP4, MPEG, MPG, TS, WEBM, WMV. Los resultados se devuelven por cada fotograma procesado y una solicitud puede ejecutarse durante un máximo de 1 hora. Consulta endpoints dedicados para obtener más información.
    • La inferencia compartida (POST /api/models/{owner}/{project}/{model}/predict) usa el mismo servicio de predicción y acepta los mismos formatos de vídeo, pero las solicitudes están limitadas a unos 4,5 MB y agotan el tiempo de espera tras unos 30 segundos, por lo que solo sirve para clips cortos. La pestaña Predecir del navegador solo carga imágenes; para archivos de vídeo, usa un endpoint dedicado, o Inferencia con cámara en directo para una cámara web o IP.

    Los modelos de profundidad no admiten archivos de 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 propia API devuelve predicciones en JSON. Para visualizarlas:

    1. Utiliza las predicciones para dibujar cajas localmente
    2. Ejecuta el modelo localmente con Ultralytics y guarda el resultado anotado con save() (o devuelve una matriz con plot()):
    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 ver la API completa de resultados y las opciones de visualización.

    • Límite de la pestaña Predict: 10 MB
    • Límite de la API de inferencia compartida: unos 4,5 MB por solicitud, también a través del SDK de Python
    • Límite de los endpoints dedicados: 32 MB por solicitud enviada directamente a la URL del endpoint
    • Redimensionamiento automático en la pestaña Predict: las imágenes se redimensionan al Image Size seleccionado antes de subirse

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

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

    1. Envía solicitudes independientes para cada imagen
    2. Distribuye las solicitudes entre endpoints dedicados cuando corresponda
    3. Usa la inferencia local para los 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