Ir al contenido

Inferencia

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

Pestaña de Prueba

Cada modelo incluye una pestaña de Prueba para inferencia basada en navegador:

  1. Navega a tu modelo
  2. Haga clic en la pestaña Prueba
  3. Suba una imagen o utilice ejemplos
  4. Vea las predicciones al instante

Subir imagen

Arrastre y suelte o haga clic para subir:

  • Formatos compatibles: JPG, PNG, WebP, GIF
  • Tamaño máximo: 10MB
  • Auto-inferencia: Los resultados aparecen automáticamente

Imágenes de ejemplo

Utilice imágenes de ejemplo integradas para pruebas rápidas:

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

Ver resultados

Visualización de resultados de inferencia:

  • Cajas delimitadoras con etiquetas de clase
  • Puntuaciones de confianza para cada detección
  • Colores de clase que coinciden con su conjunto de datos

Parámetros de inferencia

Ajuste el comportamiento de detect con los siguientes parámetros:

ParámetroRangoPredeterminadoDescripción
Confianza0.0-1.00.25Umbral mínimo de confianza
IoU0.0-1.00.70Umbral de IoU de NMS
Tamaño de la imagen32-1280640Dimensión de redimensionamiento de entrada

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.

REST API

Acceda a la inferencia programáticamente:

Autenticación

Incluya su clave API en las solicitudes:

Authorization: Bearer YOUR_API_KEY

Endpoint

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

Solicitud

curl -X POST \
  "https://platform.ultralytics.com/api/models/username/project/model/predict" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "file=@image.jpg" \
  -F "conf=0.25" \
  -F "iou=0.7"
import requests

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

response = requests.post(url, headers=headers, files=files, data=data)
print(response.json())

Respuesta

{
    "success": true,
    "predictions": [
        {
            "class": "person",
            "confidence": 0.92,
            "box": {
                "x1": 100,
                "y1": 50,
                "x2": 300,
                "y2": 400
            }
        },
        {
            "class": "car",
            "confidence": 0.87,
            "box": {
                "x1": 400,
                "y1": 200,
                "x2": 600,
                "y2": 350
            }
        }
    ],
    "image": {
        "width": 1920,
        "height": 1080
    }
}

Campos de Respuesta

CampoTipoDescripción
successbooleanoEstado de la solicitud
predictionsarrayLista de detect
predictions[].classstringNombre de clase
predictions[].confidencefloatConfianza de detect (0-1)
predictions[].boxobjetoCoordenadas del cuadro delimitador
imageobjetoDimensiones de la imagen original

Respuestas Específicas de la Tarea

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

{
  "class": "person",
  "confidence": 0.92,
  "box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400}
}
{
  "class": "person",
  "confidence": 0.92,
  "box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400},
  "segments": [[100, 50], [150, 60], ...]
}
{
  "class": "person",
  "confidence": 0.92,
  "box": {"x1": 100, "y1": 50, "x2": 300, "y2": 400},
  "keypoints": [
    {"x": 200, "y": 75, "conf": 0.95},
    ...
  ]
}
{
  "predictions": [
    {"class": "cat", "confidence": 0.95},
    {"class": "dog", "confidence": 0.03}
  ]
}

Límites de Tasa

La inferencia compartida tiene límites de tasa:

PlanSolicitudes/MinutoSolicitudes/Día
Gratuito10100
Pro6010,000

Para límites superiores, implemente un endpoint dedicado.

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 slug del modelo
429Límite de tasa excedidoEspere o actualice su plan
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")

¿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 a imgsz 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.


📅 Creado hace 20 días ✏️ Actualizado hace 14 días
glenn-jocherLaughing-q

Comentarios