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 .
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.
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.
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
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
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://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
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 |
Intersecção sobre União (IoU) threshold, valid range 0.0 - 0.95 . |
Resposta
A API de inferência do Ultralytics HUB devolve uma resposta JSON.
Classificação
Modelo de classificação
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())
Deteção
Modelo de deteção
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": ...
}
Segmentação
Modelo de segmentação
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": ...
}