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