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, 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
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())
Deteção
Modelo de deteção
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())
OBB
Modelo OBB
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
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
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": ...
}