Saltar para o conteĂșdo

Ultralytics API de inferĂȘncia do HUB

Depois de treinar um modelo, pode utilizar a API de inferĂȘncia partilhada gratuitamente. Se for um utilizador Pro, pode aceder Ă  API de InferĂȘncia Dedicada. A API de inferĂȘncia do Ultralytics HUB permite-lhe executar a inferĂȘncia atravĂ©s da nossa API REST sem a necessidade de instalar e configurar localmente o ambiente Ultralytics YOLO .

Ultralytics Captura de ecrĂŁ do HUB do separador Implementar na pĂĄgina Modelo com uma seta a apontar para o cartĂŁo da API de InferĂȘncia Dedicada e outra para o cartĂŁo da API de InferĂȘncia Partilhada


Ver: Ultralytics Passo a passo da API de inferĂȘncia do HUB

API de inferĂȘncia dedicada

Em resposta Ă  elevada procura e ao interesse generalizado, estamos entusiasmados por revelar a API de InferĂȘncia Dedicada do Ultralytics HUB, que oferece uma implementação com um Ășnico clique num ambiente dedicado para os nossos utilizadores Pro!

Nota

Estamos entusiasmados por oferecer esta funcionalidade GRATUITAMENTE durante a nossa versĂŁo beta pĂșblica como parte do Plano Pro, com nĂ­veis pagos possĂ­veis no futuro.

  • Cobertura global: Implementado em 38 regiĂ”es em todo o mundo, garantindo acesso de baixa latĂȘncia a partir de qualquer local. Veja a lista completa de regiĂ”es do Google Cloud.
  • Google Apoiado pelo Cloud Run: Apoiado por Google Cloud Run, fornecendo uma infraestrutura infinitamente escalĂĄvel e altamente fiĂĄvel.
  • Alta velocidade: É possĂ­vel uma latĂȘncia inferior a 100 ms para a inferĂȘncia YOLOv8n com uma resolução de 640 a partir de regiĂ”es prĂłximas, com base nos testes Ultralytics .
  • Segurança melhorada: Fornece funcionalidades de segurança robustas para proteger os seus dados e garantir a conformidade com as normas da indĂșstria. Saiba mais sobre a segurança do Google Cloud.

Para utilizar a API de inferĂȘncia dedicada do Ultralytics HUB, clique no botĂŁo Iniciar ponto final. De seguida, utilize o URL do ponto final Ășnico, conforme descrito nos guias abaixo.

Ultralytics Captura de ecrĂŁ do HUB do separador Implementar na pĂĄgina Modelo com uma seta a apontar para o botĂŁo Iniciar Ponto Final no cartĂŁo API de InferĂȘncia Dedicada

Dica

Escolha a regiĂŁo com a latĂȘncia mais baixa para obter o melhor desempenho, conforme descrito na documentação.

Para encerrar o ponto de extremidade dedicado, clique no botĂŁo Parar ponto de extremidade.

Ultralytics Captura de ecrĂŁ do HUB do separador Implementar na pĂĄgina Modelo com uma seta a apontar para o botĂŁo Parar Ponto Final no cartĂŁo API de InferĂȘncia Dedicada

API de inferĂȘncia partilhada

Para utilizar a API de inferĂȘncia partilhada do Ultralytics HUB, siga os guias abaixo.

Os utilizadores gratuitos tĂȘm os seguintes limites de utilização:

  • 100 chamadas / hora
  • 1000 chamadas / mĂȘs

Os utilizadores Pro tĂȘm os seguintes limites de utilização:

  • 1000 chamadas / hora
  • 10000 chamadas / mĂȘs

Python

Para aceder Ă  API de inferĂȘncia do Ultralytics HUB utilizando Python, utilize o seguinte 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

Substituir MODEL_ID com o ID do modelo pretendido, API_KEY com a sua chave de API real, e path/to/image.jpg com o caminho para a imagem em que pretende executar a inferĂȘncia.

Se estiver a utilizar o nosso API de inferĂȘncia dedicada, substituir o url tambĂ©m.

cURL

Para aceder Ă  API de inferĂȘncia do Ultralytics HUB utilizando cURL, utilize o seguinte 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

Substituir MODEL_ID com o ID do modelo pretendido, API_KEY com a sua chave de API real, e path/to/image.jpg com o caminho para a imagem em que pretende executar a inferĂȘncia.

Se estiver a utilizar o nosso API de inferĂȘncia dedicada, substituir o url tambĂ©m.

Argumentos

Consulte a tabela abaixo para obter uma lista completa dos argumentos de inferĂȘncia disponĂ­veis.

Argumento Predefinição Tipo Descrição
file file Ficheiro de imagem ou vĂ­deo a utilizar para a inferĂȘncia.
imgsz 640 int Tamanho da imagem de entrada, o intervalo vålido é 32 - 1280 pixéis.
conf 0.25 float Limiar de confiança para previsÔes, intervalo vålido 0.01 - 1.0.
iou 0.45 float Intersecção sobre Union (IoU) limiar, intervalo vålido 0.0 - 0.95.

Resposta

A API de inferĂȘncia do Ultralytics HUB devolve uma resposta JSON.

Classificação

Modelo de classificação

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": ...
}

Deteção

Modelo de deteção

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": ...
}

Segmentação

Modelo de segmentação

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 riado hĂĄ 10 meses ✏ Atualizado hĂĄ 2 meses

ComentĂĄrios