Ir al contenido

Inferencia

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

Plataforma Ultralytics Pestaña de Predicción del Modelo con Superposición de Detecciones

Pestaña de Predicción

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

  1. Navega a tu modelo
  2. Haga clic en la pestaña Predecir.
  3. Suba una imagen, use un ejemplo o abra su cámara web
  4. Ver predicciones al instante con superposiciones de cuadros delimitadores

Plataforma Ultralytics Pestaña de Predicción Zona de Carga de Imágenes

Métodos de Entrada

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

MétodoDescripción
Subida de imagenArrastre y suelte o haga clic para subir una imagen
Imágenes de ejemploHaga clic en los ejemplos integrados (imágenes del conjunto de datos o valores predeterminados).
Captura de webcamTransmisión de cámara en vivo con captura de un solo fotograma
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
  • Auto-inferencia: Los resultados aparecen automáticamente después de la carga

Auto-inferencia

El panel de predicción ejecuta la inferencia automáticamente cuando subes una imagen, seleccionas un ejemplo o capturas un fotograma de una 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 tu 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

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

Imágenes Precargadas

Las imágenes de ejemplo se precargan al cargar la página, lo que permite una inferencia casi instantánea al hacer clic en un ejemplo, sin esperas de descarga.

Cámara web

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

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

Ver resultados

Visualización de resultados de inferencia:

  • Bounding boxes con etiquetas de clase como superposiciones SVG
  • Puntuaciones de confianza para cada detección
  • Colores de clase de la paleta de colores de su conjunto de datos (o la paleta predeterminada de Ultralytics)
  • Desglose de velocidad: Preprocesamiento, inferencia, postprocesamiento y tiempo de red

Plataforma Ultralytics Pestaña de Predicción Resultados 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 sin procesar de la API en un bloque de código

Parámetros de inferencia

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

Plataforma Ultralytics Pestaña de Predicción Controles Deslizantes 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, 1280640Dimensión de redimensionamiento de entrada (botón de alternancia)

Reejecución automática

Al cambiar cualquier parámetro, la inferencia se ejecuta automáticamente de nuevo en la imagen actual con un retardo de 500 ms. No es necesario volver a cargar.

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+): Permite más cuadros superpuestos
  • Más bajo (0.3-0.5): Fusiona detecciones cercanas de forma más agresiva
  • Predeterminado (0.70): Comportamiento de NMS equilibrado para la mayoría de los casos de uso

Predicción del Despliegue

Cada ejecución punto final dedicado incluye un Predict pestaña directamente en su tarjeta de despliegue. Esto utiliza el servicio de inferencia propio del despliegue en lugar del servicio de predicción compartido, lo que le permite probar su endpoint desplegado 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

Clave API Requerida

Para ejecutar inferencia desde sus propios scripts, notebooks o aplicaciones, incluya una clave API. Genere 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);

Plataforma Ultralytics Pestaña de Predicción Ejemplos de Código Pestaña de 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"
        }
    }
}

Plataforma Ultralytics Pestaña de Predicción Vista de Respuesta Json

Campos de Respuesta

CampoTipoDescripción
imagesarrayLista de imágenes procesadas
images[].shapearrayDimensiones de la imagen [alto, ancho]
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 de 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 está limitada a 20 solicitudes/min por clave de API. Cuando se limita, la API devuelve 429 con un Retry-After encabezado. Consulte el completo Referencia del límite de tasa para todas las categorías de puntos finales.

¿Necesita más rendimiento?

Implemente un endpoint dedicado para inferencia ilimitada sin límites de tasa, rendimiento predecible y respuestas consistentes de baja latencia. Para 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 encontradoVerifique el ID del modelo
429Límite de tasa excedidoEspere y reintente, o utilice un endpoint 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 la API completa 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 2 meses ✏️ Actualizado hace 25 días
glenn-jochersergiuwaxmannLaughing-q

Comentarios