Ultralytics API d'inférence HUB
Après avoir formé un modèle, vous pouvez utiliser gratuitement l'API d'inférence partagée. Si vous êtes un utilisateur Pro, vous pouvez accéder à l'API d'inférence dédiée. L'API d'inférence Ultralytics HUB vous permet d'exécuter l'inférence via notre API REST sans avoir à installer et à configurer localement l'environnement Ultralytics YOLO .
Regarder : 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 d'offrir cette fonctionnalité GRATUITE pendant notre bêta publique dans le cadre du Plan Pro, avec des niveaux payants possibles à l'avenir.
- Couverture mondiale : Déployé dans 38 régions du monde, il garantit un accès à faible latence depuis n'importe quel endroit. Voir la liste complète des régions Google Cloud.
- Google Soutenu par Cloud Run : Soutenu par Google Cloud Run, fournissant une infrastructure infiniment Ă©volutive et hautement 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 proches, d'après les tests effectués sur le site Ultralytics .
- Sécurité renforcée : Des fonctions de sécurité robustes protègent vos données et garantissent 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, cliquez sur le bouton Start Endpoint. Ensuite, utilisez l'URL unique du point de terminaison comme décrit dans les guides ci-dessous.
Conseil
Choisissez 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é, cliquez 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, suivez 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, utilisez 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 souhaité, API_KEY
avec votre clé d'API réelle, et path/to/image.jpg
avec le chemin d'accès à l'image sur laquelle vous souhaitez effectuer une inférence.
Si vous utilisez notre API d'inférence dédiéeRemplacer le url
Ă©galement.
cURL
Pour accéder à l'API d'inférence de Ultralytics HUB à l'aide de cURL, utilisez 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 souhaité, API_KEY
avec votre clé d'API réelle, et path/to/image.jpg
avec le chemin d'accès à l'image sur laquelle vous souhaitez effectuer une inférence.
Si vous utilisez notre API d'inférence dédiéeRemplacer le url
Ă©galement.
Arguments
Voir le tableau ci-dessous pour une 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, plage valide 32 - 1280 pixels. |
conf |
0.25 |
float |
Seuil de confiance pour les prédictions, plage de validité 0.01 - 1.0 . |
iou |
0.45 |
float |
Intersection au-dessus de l'Union (IoU), plage de validité 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": ...
}