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 .
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.
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.
API de inferência partilhada
Para utilizar a API de inferência partilhada do Ultralytics HUB, siga os guias abaixo.
A API de inferência partilhada do Ultralytics HUB tem os seguintes limites de utilização:
- 100 chamadas / hora
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
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": ...
}