Ir al contenido

Ultralytics API de inferencia HUB

Despu茅s de entrenar un modelo, puede utilizar la API de inferencia compartida de forma gratuita. Si es usuario Pro, puede acceder a la API de inferencia dedicada. La API de inferencia de Ultralytics HUB le 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 Recorrido por la API de inferencia de HUB

API de inferencia espec铆fica

En respuesta a la gran demanda y al inter茅s generalizado, estamos encantados de presentar la API de inferencia dedicada Ultralytics HUB, que ofrece a nuestros usuarios Pro la posibilidad de desplegarla con un solo clic en un entorno dedicado.

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, garantiza un acceso de baja latencia desde cualquier lugar. Consulte 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 de YOLOv8n con 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, haga clic en el bot贸n Iniciar punto final. A continuaci贸n, utilice la URL de punto final 煤nica que se describe en las gu铆as siguientes.

Ultralytics Captura de pantalla HUB de la pesta帽a Deploy dentro de la p谩gina Model con una flecha apuntando al bot贸n Start Endpoint en la tarjeta Dedicated Inference API

Consejo

Elija 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, haga clic en el bot贸n Detener punto final.

Ultralytics Captura de pantalla HUB de la pesta帽a Deploy dentro de la p谩gina Model con una flecha apuntando al bot贸n Stop Endpoint en la tarjeta Dedicated Inference API

API de inferencia compartida

Para utilizar la API de inferencia compartida Ultralytics HUB, siga 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, utilice 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

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

Si utiliza nuestro API de inferencia espec铆ficasustituya el url tambi茅n.

cURL

Para acceder a la API de inferencia de Ultralytics HUB mediante cURL, utilice 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

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

Si utiliza nuestro API de inferencia espec铆ficasustituya el url tambi茅n.

Argumentos

Consulte la tabla siguiente para obtener una lista completa de los argumentos de inferencia disponibles.

Argumento Por defecto Tipo Descripci贸n
file file Archivo de imagen o v铆deo que se utilizar谩 para la inferencia.
imgsz 640 int Tama帽o de la imagen de entrada, rango v谩lido es 32 - 1280 p铆xeles.
conf 0.25 float Umbral de confianza para las predicciones, intervalo v谩lido 0.01 - 1.0.
iou 0.45 float Intersecci贸n sobre Union (IoU), 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": ...
}
馃搮 Created 11 months ago 鉁忥笍 Updated 3 months ago

Comentarios