YOLO Vision 2026:

Inferencia#

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

Ultralytics Platform Model Predict Tab With Detections Overlay

Pestaña Predict#

Cada modelo con pesos incluye una pestaña Predict para la inferencia basada en navegador:

  1. Navega hasta tu modelo
  2. Haz clic en la pestaña Predict
  3. Sube una imagen, utiliza un ejemplo o abre tu webcam
  4. Revisa la superposición específica de la tarea, el resumen de predicción, el tiempo y la respuesta sin procesar

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

Ultralytics Platform Predict Tab Image Upload Dropzone

Métodos de entrada#

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

MétodoDescripción
Carga de imagenArrastra y suelta o haz clic para subir una imagen
Imágenes de ejemploHaz clic en los ejemplos integrados (imágenes del conjunto de datos o predeterminados)
Captura de webcamTransmisión de cámara en directo con captura de fotogramas individuales
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áx.: 10 MB
  • Auto-inferencia: Los resultados aparecen automáticamente tras la subida
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 del lado del cliente

Antes de subir la imagen, el panel la redimensiona para que su lado más largo coincida con el valor de Image Size seleccionado y solicita coordenadas normalizadas. Esto mantiene rápida la prueba en el navegador; 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 de tu modelo, prefiriendo la división val, luego test y después train. Si no hay ningún conjunto de datos vinculado, se usan ejemplos predeterminados:

ImagenContenido
bus.jpgEscena de calle 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 están precargadas al cargar la página, por lo que hacer clic en un ejemplo activa una inferencia casi instantánea sin tiempo de espera por descarga.

Cámara web#

Haz clic en la tarjeta de la webcam para iniciar una transmisión de cámara en directo:

  1. Concede permiso de acceso a la cámara cuando se te solicite
  2. Haz clic en la previsualización de vídeo para capturar un fotograma
  3. La inferencia se ejecuta automáticamente en el fotograma capturado
  4. Haz clic de nuevo para reiniciar la webcam

Ver resultados#

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

Ultralytics Platform Predict Tab Results With Detections And Speed Stats El panel de resultados muestra:

CampoDescripción
Resumen de resultadosLista por detección, o las 5 clases principales para 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 según corresponda
Respuesta JSONRespuesta sin procesar de la API en un bloque de código, con los datos del mapa en base64 omitidos

Hay dos controles sobre la vista previa una vez que los resultados están listos: haz clic en la imagen para ampliarla con las superposiciones intactas 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 debajo de la imagen:

Ultralytics Platform Predict Tab Parameters Sliders

ParámetroRangoPredeterminadoDescripción
Confianza0,01 – 1,0, pasos de 0,010.25Umbral de confianza mínimo
IoU0,0 – 0,95, pasos de 0,010.7Umbral de IoU para NMS
Image Size (Tamaño de imagen)32 – 1280, pasos de 32640Dimensión de redimensionamiento de entrada
Auto-reinicio

Cambiar cualquier parámetro vuelve a ejecutar automáticamente la inferencia en la imagen actual con un debounce de 500ms. No hace falta volver a subirla.

Umbral de confianza#

Filtra las predicciones por confianza:

  • Más alto (0.5+): Menos predicciones, pero 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 el Non-Maximum Suppression:

  • Más alto (0.7+): Permite más cuadros superpuestos
  • Menor (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 casos de uso

Inferencia de despliegue#

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

API de endpoint dedicado#

La tarjeta de API Docs en la pestaña del modelo Predict contiene solicitudes de ejemplo en Python, JavaScript y cURL, precargadas con la confianza, el valor de IoU y el 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; un botón Deploy junto a las pestañas de código salta a la pestaña Deploy del modelo. Tras el despliegue, la pestaña Code de la tarjeta de despliegue completa la URL de ese extremo 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 peticiones:

Authorization: Bearer YOUR_API_KEY
Clave de API requerida

Para ejecutar la inferencia desde tus propios scripts, notebooks o aplicaciones, incluye una clave de API. Genera una en Settings > API Keys. Un extremo dedicado acepta únicamente la única clave con la que fue creado; la API de modelos compartidos acepta cualquier clave activa en el espacio de trabajo, y los modelos públicos también aceptan solicitudes anónimas.

Endpoint#

Los extremos dedicados aceptan solicitudes en su propia URL:

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

La inferencia compartida utiliza la Platform API 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 forma de respuesta. Con el Python SDK, usa client.models.predict(owner, project, model, body=...) para la inferencia compartida o client.deployments.predict(owner, deployment, body=...) para un despliegue dedicado:

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

Petición#

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

Ultralytics Platform Predict Tab Code Examples Python Tab

Parámetros de petición#

ParámetroTipoPredeterminadoRangoDescripción
filearchivo--Archivo de imagen o vídeo (obligatorio a menos que se establezca source)
conffloat0.250.01 – 1.0Umbral de confianza mínimo
ioufloat0.70.0 – 0.95Umbral de IoU para NMS
imgszentero64032 – 1280Tamaño de la imagen de entrada en píxeles
normalizeboolfalse-Devuelve las coordenadas del bounding box entre 0 y 1
decimalsentero50 – 10Precisión decimal para los valores de las coordenadas
bitsentero88, 12, 16Cuantización del mapa de profundidad, solo para modelos de profundidad
sourcecadena--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"
        }
    }
}

Ultralytics Platform Predict Tab Json Response View

Campos de respuesta#

CampoTipoDescripción
imagesarrayLista de imágenes procesadas, una entrada por fotograma de vídeo en el caso de los vídeos
images[].shapearrayDimensiones de la imagen [altura, anchura]
images[].resultsarrayLista de detecciones
images[].results[].classenteroÍndice de clase (ID entero)
images[].results[].namecadenaNombre de la clase
images[].results[].confidencefloatConfianza de la detección (0-1)
images[].results[].boxobjetoCoordenadas del BBox
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
metadataobjetoRecuento de imágenes, tiempos de servicio, tarea y versiones de Ultralytics/PyTorch

Respuestas específicas para 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 tasa#

La API de modelos compartida está limitada a 20 peticiones/minuto para cada clave de API, usuario autenticado o IP anónima. Cuando se limita, la API devuelve 429 con una cabecera Retry-After. Consulta la referencia de límites de velocidad completa para todas las categorías de endpoints.

¿Necesitas más rendimiento?

Las solicitudes enviadas directamente a un dedicated endpoint no pasan por el limitador de velocidad de la Platform API. El extremo aún gestiona la carga con 429 y una cabecera Retry-After cuando se encuentra temporalmente a su máxima capacidad. Para la inferencia local de alto volumen, consulta la Predict mode guide.

Gestión de errores#

Respuestas de error comunes:

CódigoMensajeSolución
400Imagen no válidaComprueba el formato del archivo o que el modelo tenga pesos entrenados
401No autorizadoVerifica tu API key
404Modelo no encontradoComprueba el propietario, el proyecto y los nombres de los modelos
413Entrada demasiado grandeReduce el tamaño del archivo por debajo del límite del extremo
429Límite de tasa superadoEspera y reintenta, o envía peticiones directamente a un dedicated endpoint
500Error del servidorReintentar solicitud
503Servicio no disponibleEl servicio Predict se está iniciando o no está disponible; espera un momento y vuelve a intentarlo

FAQ#

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

    • Dedicated endpoints acepta 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 dedicated endpoints para más detalles.
    • Shared inference (POST /api/models/{owner}/{project}/{model}/predict) utiliza el mismo servicio de predicción y acepta los mismos formatos de vídeo. La pestaña del navegador Predict solo selecciona imágenes, así que utiliza la API o un dedicated endpoint para el 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 en sí devuelve predicciones en formato JSON. Para visualizarlas:

    1. Utiliza las predicciones para dibujar BBox localmente
    2. Usa 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 ver la API de resultados completa y las opciones de visualización.

    • Límite de la pestaña Predict: 10 MB
    • API limit: 100 MB tanto para la inferencia compartida como para los extremos dedicados
    • Redimensionamiento automático en la pestaña Predict: Las imágenes se redimensionan al Image Size seleccionado antes de subirlas

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

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

    1. Envía solicitudes separadas para cada imagen
    2. Distribuye las solicitudes entre endpoints dedicados cuando sea apropiado
    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