Ultralytics API d'inférence HUB
Après avoir formé un modèle, tu peux utiliser gratuitement l'API d'inférence partagée. Si tu es un utilisateur Pro, tu peux accéder à l'API d'inférence dédiée. L'API d'inférence Ultralytics HUB te permet d'exécuter l'inférence par le biais de notre API REST sans avoir besoin d'installer et de configurer localement l'environnement Ultralytics YOLO .
Regarde : Ultralytics Présentation de l'API d'inférence HUB
API d'inférence dédiée
En réponse à la forte demande et à l'intérêt général, nous sommes ravis de dévoiler l'API d'inférence dédiée Ultralytics HUB, qui offre un déploiement en un seul clic dans un environnement dédié pour nos utilisateurs Pro!
Note
Nous sommes ravis de proposer cette fonctionnalité GRATUITE pendant notre bêta publique dans le cadre du plan Pro, avec des paliers payants possibles à l'avenir.
- Couverture mondiale : Déployé dans 38 régions du monde, assurant un accès à faible latence depuis n'importe quel endroit. Voir la liste complète des régions de Google Cloud.
- Google Soutenu par Cloud Run : Soutenu par Google Cloud Run, qui fournit une infrastructure évolutive à l'infini et très fiable.
- Vitesse élevée : une latence inférieure à 100 ms est possible pour l'inférence YOLOv8n à une résolution de 640 à partir de régions voisines, d'après les tests effectués sur le site Ultralytics .
- Sécurité renforcée : Offre des fonctions de sécurité robustes pour protéger tes données et garantir la conformité aux normes du secteur. En savoir plus sur Google Cloud security.
Pour utiliser l'API d'inférence dédiée de Ultralytics HUB, clique sur le bouton Start Endpoint. Ensuite, utilise l'URL unique du point de terminaison comme décrit dans les guides ci-dessous.
Astuce
Choisis la région où la latence est la plus faible pour obtenir les meilleures performances, comme indiqué dans la documentation.
Pour arrêter le point de terminaison dédié, clique sur le bouton Arrêter le point de terminaison.
API d'inférence partagée
Pour utiliser l'API d'inférence partagée Ultralytics HUB, suis les guides ci-dessous.
Les utilisateurs gratuits ont les limites d'utilisation suivantes :
- 100 appels / heure
- 1000 appels / mois
Les utilisateurs Pro ont les limites d'utilisation suivantes :
- 1000 appels / heure
- 10000 appels / mois
Python
Pour accéder à l'API d'inférence du HUB Ultralytics à l'aide de Python, utilise le code suivant :
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())
Note
Remplacer MODEL_ID
avec l'ID du modèle désiré, API_KEY
avec ta clé API réelle, et path/to/image.jpg
avec le chemin d'accès à l'image sur laquelle tu veux faire de l'inférence.
Si tu utilises notre API d'inférence dédiéeremplace le url
Ă©galement.
cURL
Pour accéder à l'API d'inférence de Ultralytics HUB à l'aide de cURL, utilise le code suivant :
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"
Note
Remplacer MODEL_ID
avec l'ID du modèle désiré, API_KEY
avec ta clé API réelle, et path/to/image.jpg
avec le chemin d'accès à l'image sur laquelle tu veux faire de l'inférence.
Si tu utilises notre API d'inférence dédiéeremplace le url
Ă©galement.
Arguments
Tu trouveras dans le tableau ci-dessous la liste complète des arguments d'inférence disponibles.
Argument | DĂ©faut | Type | Description |
---|---|---|---|
file |
file |
Fichier image ou vidéo à utiliser pour l'inférence. | |
imgsz |
640 |
int |
Taille de l’image d’entrée, la plage valide est 32 - 1280 Pixels. |
conf |
0.25 |
float |
Seuil de confiance pour les prédictions, plage valide 0.01 - 1.0 . |
iou |
0.45 |
float |
Intersection au-dessus de l’Union (IoU) threshold, valid range 0.0 - 0.95 . |
RĂ©ponse
L'API d'inférence Ultralytics HUB renvoie une réponse JSON.
Classification
Modèle de classification
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())
DĂ©tection
Modèle de détection
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
Modèle 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": ...
}
Segmentation
Modèle de segmentation
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
Modèle 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": ...
}