Salta para o conteĂșdo

Ultralytics API de inferĂȘncia do HUB

Depois de treinares um modelo, podes utilizar a API de InferĂȘncia Partilhada gratuitamente. Se fores um utilizador Pro, podes aceder Ă  API de InferĂȘncia Dedicada. A API de inferĂȘncia do Ultralytics HUB permite-te 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


Observa: 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. VĂȘ 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 recursos de segurança robustos para proteger seus dados e garantir a conformidade com os padrĂ”es do setor. Saiba mais sobre a segurança do Google Cloud.

Para utilizar a API de inferĂȘncia dedicada do Ultralytics HUB, clica no botĂŁo Iniciar ponto final. Em seguida, utiliza 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

Escolhe 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, clica 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, segue 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, utiliza o seguinte cĂłdigo:

import requests

# API URL, use actual MODEL_ID
url = "https://api.ultralytics.com/v1/predict/MODEL_ID"

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

# Inference arguments (optional)
data = {"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

Substitui MODEL_ID com o ID do modelo pretendido, API_KEY com a tua chave API real, e path/to/image.jpg com o caminho para a imagem em que queres fazer a inferĂȘncia.

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

cURL

Para aceder Ă  API de inferĂȘncia do Ultralytics HUB utilizando cURL, utiliza o seguinte cĂłdigo:

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

Nota

Substitui MODEL_ID com o ID do modelo pretendido, API_KEY com a tua chave API real, e path/to/image.jpg com o caminho para a imagem em que queres fazer a inferĂȘncia.

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

Argumentos

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

Argumenta 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, intervalo vĂĄlido Ă© 32 - 1280 pĂ­xeis.
conf 0.25 float Limite de confiança para previsÔes, intervalo vålido 0.01 - 1.0.
iou 0.45 float Limite de intersecção sobre união (IoU), 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://api.ultralytics.com/v1/predict/MODEL_ID" \
    -H "x-api-key: API_KEY" \
    -F "file=@/path/to/image.jpg" \
    -F "imgsz=640" \
    -F "conf=0.25" \
    -F "iou=0.45"
import requests

# API URL, use actual MODEL_ID
url = "https://api.ultralytics.com/v1/predict/MODEL_ID"

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

# Inference arguments (optional)
data = {"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://api.ultralytics.com/v1/predict/MODEL_ID" \
    -H "x-api-key: API_KEY" \
    -F "file=@/path/to/image.jpg" \
    -F "imgsz=640" \
    -F "conf=0.25" \
    -F "iou=0.45"
import requests

# API URL, use actual MODEL_ID
url = "https://api.ultralytics.com/v1/predict/MODEL_ID"

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

# Inference arguments (optional)
data = {"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://api.ultralytics.com/v1/predict/MODEL_ID" \
    -H "x-api-key: API_KEY" \
    -F "file=@/path/to/image.jpg" \
    -F "imgsz=640" \
    -F "conf=0.25" \
    -F "iou=0.45"
import requests

# API URL, use actual MODEL_ID
url = "https://api.ultralytics.com/v1/predict/MODEL_ID"

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

# Inference arguments (optional)
data = {"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://api.ultralytics.com/v1/predict/MODEL_ID" \
    -H "x-api-key: API_KEY" \
    -F "file=@/path/to/image.jpg" \
    -F "imgsz=640" \
    -F "conf=0.25" \
    -F "iou=0.45"
import requests

# API URL, use actual MODEL_ID
url = "https://api.ultralytics.com/v1/predict/MODEL_ID"

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

# Inference arguments (optional)
data = {"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://api.ultralytics.com/v1/predict/MODEL_ID" \
    -H "x-api-key: API_KEY" \
    -F "file=@/path/to/image.jpg" \
    -F "imgsz=640" \
    -F "conf=0.25" \
    -F "iou=0.45"
import requests

# API URL, use actual MODEL_ID
url = "https://api.ultralytics.com/v1/predict/MODEL_ID"

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

# Inference arguments (optional)
data = {"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 8 months ago ✏ Updated 1 day ago

ComentĂĄrios