Ir al contenido

Inferencia

Ultralytics Platform proporciona una API de inferencia para probar modelos entrenados. Utilice la basada en navegador Predict pestaña para una validación rápida o la REST API para acceso programático.

Pestaña «Predict» (Predicción) de Ultralytics con superposición de detecciones

Pestaña Predecir

Cada modelo incluye un Predict pestaña para inferencia basada en navegador:

  1. Navega a tu modelo
  2. Haga clic en la pestaña «Predict» (Predecir ).
  3. Sube una imagen, utiliza un ejemplo o abre tu cámara web.
  4. Vea las predicciones al instante con superposiciones de cuadros delimitadores.

Ultralytics Pestaña Predict Zona de arrastre de imágenes

Métodos de entrada

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

MétodoDescripción
Subida de imágenesArrastra y suelta o haz clic para subir una imagen.
Imágenes de ejemploHaga clic en ejemplos integrados (imágenes del conjunto de datos o valores predeterminados).
Captura de cámara webTransmisión en directo con captura de fotogramas individuales
graph LR
    A[Upload Image] --> D[Auto-Inference]
    B[Example Image] --> D
    C[Webcam Capture] --> D
    D --> E[Results + Overlays]

    style D fill:#2196F3,color:#fff
    style E fill:#4CAF50,color:#fff

Subir imagen

Arrastre y suelte o haga clic para subir:

  • Formatos compatibles: JPEG, PNG, WebP, AVIF, HEIC, JP2, TIFF, BMP, DNG, MPO
  • Tamaño máximo: 10MB
  • Autoinferencia: los resultados aparecen automáticamente después de la carga.

Autoinferencia

El panel de predicción ejecuta la inferencia automáticamente cuando se carga una imagen, se selecciona un ejemplo o se captura un fotograma de la cámara web. No es necesario hacer clic en ningún botón.

Imágenes de ejemplo

El panel de predicción muestra imágenes de ejemplo del conjunto de datos vinculado a su modelo. Si no hay ningún conjunto de datos vinculado, se utilizan ejemplos predeterminados:

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

En los modelos OBB, se muestran imágenes aéreas de barcos y aeropuertos.

Imágenes precargadas

Las imágenes de ejemplo se cargan previamente cuando se carga la página, por lo que al hacer clic en un ejemplo se activa una inferencia casi instantánea sin tener que esperar a que se descargue.

Cámara web

Haga clic en la tarjeta de la cámara web para iniciar la transmisión en directo:

  1. Conceder permiso a la cámara cuando se solicite.
  2. Haga clic en la vista previa del vídeo para capturar un fotograma.
  3. La inferencia se ejecuta automáticamente en el fotograma capturado.
  4. Haga clic de nuevo para reiniciar la cámara web.

Ver resultados

Visualización de resultados de inferencia:

  • Cuadros delimitadores con etiquetas de clase como superposiciones SVG
  • Puntuaciones de confianza para cada detección
  • Colores de clase de la paleta de colores de tu conjunto de datos (o la paleta Ultralytics )
  • Desglose de velocidad: preprocesamiento, inferencia, posprocesamiento y tiempo de red.

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

El panel de resultados muestra:

CampoDescripción
Lista de deteccionesCada detección con nombre de clase y confianza
Estadísticas de velocidadPreprocesamiento, inferencia, posprocesamiento, red (ms)
Respuesta JSONRespuesta API sin procesar en un bloque de código

Parámetros de inferencia

Ajuste el comportamiento de detección con los parámetros de la sección Plegable Parámetros:

Ultralytics Pestaña «Predict» (Predicción) Deslizadores de parámetros

ParámetroRangoPredeterminadoDescripción
Confianza0,01-1,00.25Umbral mínimo de confianza
IoU0,0-0,950.70Umbral de IoU de NMS
Tamaño de la imagen320, 640, 1280640Cambiar el tamaño de la entrada (botón de alternancia)

Reejecución automática

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

Umbral de confianza

Filtre las predicciones por confianza:

  • Más alto (0.5+): Menos predicciones, más certeras
  • 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

Umbral de IoU

Controle la NMS:

  • Más alto (0,7+): Permitir más solapamiento de cuadros.
  • Más bajo (0,3-0,5): fusiona las detecciones cercanas de forma más agresiva.
  • Predeterminado (0,70): NMS equilibrado NMS para la mayoría de los casos de uso.

Predicción de implementación

Cada carrera punto final dedicado incluye un Predict pestaña directamente en su tarjeta de implementación. Esto utiliza el servicio de inferencia propio de la implementación en lugar del servicio de predicción compartido, lo que le permite probar su punto final implementado desde el navegador.

REST API

Acceda a la inferencia programáticamente:

Autenticación

Incluya su clave API en las solicitudes:

Authorization: Bearer YOUR_API_KEY

Se requiere clave API

Para ejecutar inferencias desde tus propios scripts, cuadernos o aplicaciones, incluye una clave API. Genera una en Settings (Sección Claves API en la pestaña Perfil).

Endpoint

POST https://platform.ultralytics.com/api/models/{modelId}/predict

Solicitud

import requests

url = "https://platform.ultralytics.com/api/models/MODEL_ID/predict"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
files = {"file": open("image.jpg", "rb")}
data = {"conf": 0.25, "iou": 0.7, "imgsz": 640}

response = requests.post(url, headers=headers, files=files, data=data)
print(response.json())
curl -X POST \
  "https://platform.ultralytics.com/api/models/MODEL_ID/predict" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "file=@image.jpg" \
  -F "conf=0.25" \
  -F "iou=0.7" \
  -F "imgsz=640"
const formData = new FormData();
formData.append("file", fileInput.files[0]);
formData.append("conf", "0.25");
formData.append("iou", "0.7");
formData.append("imgsz", "640");

const response = await fetch(
  "https://platform.ultralytics.com/api/models/MODEL_ID/predict",
  {
    method: "POST",
    headers: { Authorization: "Bearer YOUR_API_KEY" },
    body: formData,
  }
);

const result = await response.json();
console.log(result);

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

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,
        "functionTimeCall": 0.018,
        "model": "model.pt",
        "version": {
            "ultralytics": "8.4.14",
            "torch": "2.6.0",
            "torchvision": "0.21.0",
            "python": "3.13.0"
        }
    }
}

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

Campos de Respuesta

CampoTipoDescripción
imagesarrayLista de imágenes procesadas
images[].shapearrayDimensiones de la imagen [altura, anchura]
images[].resultsarrayLista de detect
images[].results[].namestringNombre de clase
images[].results[].confidencefloatConfianza de detect (0-1)
images[].results[].boxobjetoCoordenadas del cuadro delimitador
images[].speedobjetoTiempos de procesamiento en milisegundos
metadataobjetoSolicitar metadatos e información sobre la versión

Respuestas Específicas de la 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}
}
{
  "class": 0,
  "name": "person",
  "confidence": 0.92,
  "box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400},
  "segments": [[100, 50], [150, 60], ...]
}
{
  "class": 0,
  "name": "person",
  "confidence": 0.92,
  "box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400},
  "keypoints": [
    {"x": 200, "y": 75, "conf": 0.95},
    ...
  ]
}
{
  "results": [
    {"class": 0, "name": "cat", "confidence": 0.95},
    {"class": 1, "name": "dog", "confidence": 0.03}
  ]
}
{
  "class": 0,
  "name": "ship",
  "confidence": 0.89,
  "box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400},
  "obb": {"x1": 105, "y1": 48, "x2": 295, "y2": 55, "x3": 290, "y3": 395, "x4": 110, "y4": 402}
}

Límites de Tasa

La inferencia compartida tiene una velocidad limitada a 20 solicitudes/min por clave API. Cuando se limita, la API devuelve 429 con un Retry-After encabezado. Ver el completo Referencia de límite de velocidad para todas las categorías de puntos finales.

¿Necesita más rendimiento?

Implemente un punto final dedicado para una inferencia ilimitada sin límites de velocidad, con un rendimiento predecible y respuestas consistentes de baja latencia. Para la inferencia local, consulte la guía del modo Predict.

Manejo de Errores

Respuestas de error comunes:

CódigoMensajeSolución
400Imagen no válidaVerifique el formato del archivo
401No autorizadoVerifique la clave de API
404Modelo no encontradoComprueba el ID del modelo.
429Límite de tasa excedidoEspere y vuelva a intentarlo, o utilice un punto final dedicado para un rendimiento ilimitado.
500Error del servidorReintente la solicitud

Preguntas frecuentes

¿Puedo ejecutar inferencia en video?

La API acepta fotogramas individuales. Para video:

  1. Extraiga fotogramas localmente
  2. Envíe cada fotograma a la API
  3. Agregue los resultados

Para video en tiempo real, considere implementar un endpoint dedicado.

¿Cómo obtengo la imagen anotada?

La API devuelve predicciones JSON. Para visualizar:

  1. Utilice las predicciones para dibujar cuadros localmente
  2. Use Ultralytics plot() método:
from ultralytics import YOLO

model = YOLO("yolo26n.pt")
results = model("image.jpg")
results[0].save("annotated.jpg")

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

¿Cuál es el tamaño máximo de imagen?

  • Límite de subida: 10MB
  • Recommended: <5MB for fast inference
  • Redimensionamiento automático: Las imágenes se redimensionan al tamaño seleccionado. Image Size parameter

Las imágenes grandes se redimensionan automáticamente conservando la relación de aspecto.

¿Puedo ejecutar inferencia por lotes?

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

  1. Envíe solicitudes concurrentes
  2. Utilice un endpoint dedicado para un mayor rendimiento.
  3. Considere la inferencia local para grandes lotes.

Inferencia por lotes con Python

import concurrent.futures

import requests

url = "https://predict-abc123.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))


📅 Creado hace 1 mes ✏️ Actualizado hace 5 días
glenn-jochersergiuwaxmannLaughing-q

Comentarios