Saltar al contenido

Ultralytics API de inferencia HUB

Después de entrenar un modelo, puedes utilizar gratuitamente la API de Inferencia Compartida. Si eres usuario Pro, puedes acceder a la API de Inferencia Dedicada. La API de inferencia de Ultralytics HUB te permite ejecutar la inferencia a través de nuestra API REST sin necesidad de instalar y configurar localmente el entorno Ultralytics YOLO .

Ultralytics Captura de pantalla HUB de la pestaña Despliegue dentro de la página Modelo con una flecha apuntando a la tarjeta API de Inferencia Dedicada y otra a la tarjeta API de Inferencia Compartida


Observa: Ultralytics Paseo por la API de Inferencia HUB

API de inferencia dedicada

En respuesta a la gran demanda y al interés generalizado, ¡estamos encantados de desvelar la API de inferencia dedicada Ultralytics HUB, que ofrece un despliegue con un solo clic en un entorno dedicado para nuestros usuarios Pro!

Nota

Estamos encantados de ofrecer esta función GRATIS durante nuestra beta pública como parte del Plan Pro, con posibles niveles de pago en el futuro.

  • Cobertura mundial: Desplegada en 38 regiones de todo el mundo, garantizando un acceso de baja latencia desde cualquier lugar. Consulta la lista completa de regiones de Google Cloud.
  • Google Respaldado por Cloud Run: Respaldado por Google Cloud Run, que proporciona una infraestructura infinitamente escalable y altamente fiable.
  • Alta velocidad: Es posible una latencia inferior a 100 ms para la inferencia YOLOv8n a una resolución de 640 a partir de regiones cercanas, según las pruebas realizadas en Ultralytics .
  • Seguridad mejorada: Proporciona sólidas funciones de seguridad para proteger tus datos y garantizar el cumplimiento de las normas del sector. Más información sobre la seguridad de Google Cloud.

Para utilizar la API de inferencia dedicada de Ultralytics HUB, haz clic en el botón Iniciar punto final. A continuación, utiliza la URL del punto final único tal y como se describe en las guías siguientes.

Ultralytics Captura de pantalla HUB de la pestaña Desplegar dentro de la página Modelo con una flecha apuntando al botón Iniciar punto final en la tarjeta API de inferencia dedicada

Consejo

Elige la región con la latencia más baja para obtener el mejor rendimiento, tal y como se describe en la documentación.

Para apagar el punto final dedicado, haz clic en el botón Detener punto final.

Ultralytics Captura de pantalla HUB de la pestaña Despliegue dentro de la página Modelo con una flecha apuntando al botón Detener punto final en la tarjeta API de inferencia dedicada

API de inferencia compartida

Para utilizar la API de Inferencia Compartida Ultralytics HUB, sigue las siguientes guías.

Los usuarios gratuitos tienen los siguientes límites de uso:

  • 100 llamadas / hora
  • 1000 llamadas / mes

Los usuarios Pro tienen los siguientes límites de uso:

  • 1000 llamadas / hora
  • 10000 llamadas / mes

Python

Para acceder a la API de inferencia Ultralytics HUB utilizando Python, utiliza el siguiente código:

import requests

# API URL
url = "https://predict.ultralytics.com"

# Headers, use actual API_KEY
headers = {"x-api-key": "API_KEY"}

# Inference arguments (use actual MODEL_ID)
data = {"model": "https://hub.ultralytics.com/models/MODEL_ID", "imgsz": 640, "conf": 0.25, "iou": 0.45}

# Load image and send request
with open("path/to/image.jpg", "rb") as image_file:
    files = {"file": image_file}
    response = requests.post(url, headers=headers, files=files, data=data)

print(response.json())

Nota

Sustituye MODEL_ID con el ID del modelo deseado, API_KEY con tu clave API real, y path/to/image.jpg con la ruta a la imagen sobre la que quieres ejecutar la inferencia.

Si utilizas nuestro API de inferencia dedicadasustituye el url también.

cURL

Para acceder a la API de inferencia Ultralytics HUB utilizando cURL, utiliza el siguiente código:

curl -X POST "https://predict.ultralytics.com" \
  -H "x-api-key: API_KEY" \
  -F "model=https://hub.ultralytics.com/models/MODEL_ID" \
    -F "file=@/path/to/image.jpg" \
    -F "imgsz=640" \
    -F "conf=0.25" \
    -F "iou=0.45"

Nota

Sustituye MODEL_ID con el ID del modelo deseado, API_KEY con tu clave API real, y path/to/image.jpg con la ruta a la imagen sobre la que quieres ejecutar la inferencia.

Si utilizas nuestro API de inferencia dedicadasustituye el url también.

Argumentos

Consulta la tabla siguiente para ver una lista completa de los argumentos de inferencia disponibles.

ArgumentoPor defectoTipoDescripción
filefileArchivo de imagen o vídeo que se utilizará para la inferencia.
imgsz640intTamaño de la imagen de entrada, el rango válido es 32 - 1280 Píxeles.
conf0.25floatUmbral de confianza para predicciones, rango válido 0.01 - 1.0.
iou0.45floatIntersección sobre la Unión (IoU) umbral, intervalo válido 0.0 - 0.95.

Respuesta

La API de inferencia Ultralytics HUB devuelve una respuesta JSON.

Clasificación

Modelo de clasificación

from ultralytics import YOLO

# Load model
model = YOLO("yolov8n-cls.pt")

# Run inference
results = model("image.jpg")

# Print image.jpg results in JSON format
print(results[0].to_json())
curl -X POST "https://predict.ultralytics.com" \
    -H "x-api-key: API_KEY" \
    -F "model=https://hub.ultralytics.com/models/MODEL_ID" \
    -F "file=@/path/to/image.jpg" \
    -F "imgsz=640" \
    -F "conf=0.25" \
    -F "iou=0.45"
import requests

# API URL
url = "https://predict.ultralytics.com"

# Headers, use actual API_KEY
headers = {"x-api-key": "API_KEY"}

# Inference arguments (use actual MODEL_ID)
data = {"model": "https://hub.ultralytics.com/models/MODEL_ID", "imgsz": 640, "conf": 0.25, "iou": 0.45}

# Load image and send request
with open("path/to/image.jpg", "rb") as image_file:
    files = {"file": image_file}
    response = requests.post(url, headers=headers, files=files, data=data)

print(response.json())
{
  "images": [
    {
      "results": [
        {
          "class": 0,
          "name": "person",
          "confidence": 0.92
        }
      ],
      "shape": [
        750,
        600
      ],
      "speed": {
        "inference": 200.8,
        "postprocess": 0.8,
        "preprocess": 2.8
      }
    }
  ],
  "metadata": ...
}

Detección

Modelo de detección

from ultralytics import YOLO

# Load model
model = YOLO("yolov8n.pt")

# Run inference
results = model("image.jpg")

# Print image.jpg results in JSON format
print(results[0].to_json())
curl -X POST "https://predict.ultralytics.com" \
    -H "x-api-key: API_KEY" \
    -F "model=https://hub.ultralytics.com/models/MODEL_ID" \
    -F "file=@/path/to/image.jpg" \
    -F "imgsz=640" \
    -F "conf=0.25" \
    -F "iou=0.45"
import requests

# API URL
url = "https://predict.ultralytics.com"

# Headers, use actual API_KEY
headers = {"x-api-key": "API_KEY"}

# Inference arguments (use actual MODEL_ID)
data = {"model": "https://hub.ultralytics.com/models/MODEL_ID", "imgsz": 640, "conf": 0.25, "iou": 0.45}

# Load image and send request
with open("path/to/image.jpg", "rb") as image_file:
    files = {"file": image_file}
    response = requests.post(url, headers=headers, files=files, data=data)

print(response.json())
{
  "images": [
    {
      "results": [
        {
          "class": 0,
          "name": "person",
          "confidence": 0.92,
          "box": {
            "x1": 118,
            "x2": 416,
            "y1": 112,
            "y2": 660
          }
        }
      ],
      "shape": [
        750,
        600
      ],
      "speed": {
        "inference": 200.8,
        "postprocess": 0.8,
        "preprocess": 2.8
      }
    }
  ],
  "metadata": ...
}

OBB

Modelo OBB

from ultralytics import YOLO

# Load model
model = YOLO("yolov8n-obb.pt")

# Run inference
results = model("image.jpg")

# Print image.jpg results in JSON format
print(results[0].tojson())
curl -X POST "https://predict.ultralytics.com" \
    -H "x-api-key: API_KEY" \
    -F "model=https://hub.ultralytics.com/models/MODEL_ID" \
    -F "file=@/path/to/image.jpg" \
    -F "imgsz=640" \
    -F "conf=0.25" \
    -F "iou=0.45"
import requests

# API URL
url = "https://predict.ultralytics.com"

# Headers, use actual API_KEY
headers = {"x-api-key": "API_KEY"}

# Inference arguments (use actual MODEL_ID)
data = {"model": "https://hub.ultralytics.com/models/MODEL_ID", "imgsz": 640, "conf": 0.25, "iou": 0.45}

# Load image and send request
with open("path/to/image.jpg", "rb") as image_file:
    files = {"file": image_file}
    response = requests.post(url, headers=headers, files=files, data=data)

print(response.json())
{
  "images": [
    {
      "results": [
        {
          "class": 0,
          "name": "person",
          "confidence": 0.92,
          "box": {
            "x1": 374.85565,
            "x2": 392.31824,
            "x3": 412.81805,
            "x4": 395.35547,
            "y1": 264.40704,
            "y2": 267.45728,
            "y3": 150.0966,
            "y4": 147.04634
          }
        }
      ],
      "shape": [
        750,
        600
      ],
      "speed": {
        "inference": 200.8,
        "postprocess": 0.8,
        "preprocess": 2.8
      }
    }
  ],
  "metadata": ...
}

Segmentación

Modelo de segmentación

from ultralytics import YOLO

# Load model
model = YOLO("yolov8n-seg.pt")

# Run inference
results = model("image.jpg")

# Print image.jpg results in JSON format
print(results[0].tojson())
curl -X POST "https://predict.ultralytics.com" \
    -H "x-api-key: API_KEY" \
    -F "model=https://hub.ultralytics.com/models/MODEL_ID" \
    -F "file=@/path/to/image.jpg" \
    -F "imgsz=640" \
    -F "conf=0.25" \
    -F "iou=0.45"
import requests

# API URL
url = "https://predict.ultralytics.com"

# Headers, use actual API_KEY
headers = {"x-api-key": "API_KEY"}

# Inference arguments (use actual MODEL_ID)
data = {"model": "https://hub.ultralytics.com/models/MODEL_ID", "imgsz": 640, "conf": 0.25, "iou": 0.45}

# Load image and send request
with open("path/to/image.jpg", "rb") as image_file:
    files = {"file": image_file}
    response = requests.post(url, headers=headers, files=files, data=data)

print(response.json())
{
  "images": [
    {
      "results": [
        {
          "class": 0,
          "name": "person",
          "confidence": 0.92,
          "box": {
            "x1": 118,
            "x2": 416,
            "y1": 112,
            "y2": 660
          },
          "segments": {
            "x": [
              266.015625,
              266.015625,
              258.984375,
              ...
            ],
            "y": [
              110.15625,
              113.67188262939453,
              120.70311737060547,
              ...
            ]
          }
        }
      ],
      "shape": [
        750,
        600
      ],
      "speed": {
        "inference": 200.8,
        "postprocess": 0.8,
        "preprocess": 2.8
      }
    }
  ],
  "metadata": ...
}

Pose

Modelo de pose

from ultralytics import YOLO

# Load model
model = YOLO("yolov8n-pose.pt")

# Run inference
results = model("image.jpg")

# Print image.jpg results in JSON format
print(results[0].tojson())
curl -X POST "https://predict.ultralytics.com" \
    -H "x-api-key: API_KEY" \
    -F "model=https://hub.ultralytics.com/models/MODEL_ID" \
    -F "file=@/path/to/image.jpg" \
    -F "imgsz=640" \
    -F "conf=0.25" \
    -F "iou=0.45"
import requests

# API URL
url = "https://predict.ultralytics.com"

# Headers, use actual API_KEY
headers = {"x-api-key": "API_KEY"}

# Inference arguments (use actual MODEL_ID)
data = {"model": "https://hub.ultralytics.com/models/MODEL_ID", "imgsz": 640, "conf": 0.25, "iou": 0.45}

# Load image and send request
with open("path/to/image.jpg", "rb") as image_file:
    files = {"file": image_file}
    response = requests.post(url, headers=headers, files=files, data=data)

print(response.json())
{
  "images": [
    {
      "results": [
        {
          "class": 0,
          "name": "person",
          "confidence": 0.92,
          "box": {
            "x1": 118,
            "x2": 416,
            "y1": 112,
            "y2": 660
          },
          "keypoints": {
            "visible": [
              0.9909399747848511,
              0.8162999749183655,
              0.9872099757194519,
              ...
            ],
            "x": [
              316.3871765136719,
              315.9374694824219,
              304.878173828125,
              ...
            ],
            "y": [
              156.4207763671875,
              148.05775451660156,
              144.93240356445312,
              ...
            ]
          }
        }
      ],
      "shape": [
        750,
        600
      ],
      "speed": {
        "inference": 200.8,
        "postprocess": 0.8,
        "preprocess": 2.8
      }
    }
  ],
  "metadata": ...
}
📅 C reado hace 10 meses ✏️ Actualizado hace 1 mes

Comentarios