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 .
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.
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.
API de inferencia compartida
Para utilizar la API de inferencia compartida Ultralytics HUB, siga las siguientes guías.
La API de inferencia compartida Ultralytics HUB tiene los siguientes límites de uso:
- 100 llamadas / hora
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
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())
Detección
Modelo de detección
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())
OBB
Modelo OBB
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
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
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": ...
}