YOLO API Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π²ΡΠ²ΠΎΠ΄Π°ΠΌΠΈ
YOLO Inference API ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΅Π±Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π² YOLOv8 ΡΠ΅ΡΠ΅Π· RESTful API. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΅Π±Π΅ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΡ Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΠΈ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ YOLOv8 Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ.
Π‘ΠΊΡΠΈΠ½ΡΠΎΡ ΡΠ°Π·Π΄Π΅Π»Π° Inference API Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Preview ΠΎΠ±ΡΡΠ΅Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ.
Π‘ΠΌΠΎΡΡΠΈ: Ultralytics ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ HUB Inference API Walkthrough
URL-ΠΠΠ ΠΠ‘ API
URL-Π°Π΄ΡΠ΅Ρ API - ΡΡΠΎ Π°Π΄ΡΠ΅Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ API YOLO Inference. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π±Π°Π·ΠΎΠ²ΡΠΉ URL Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊΠΈΠΌ:
ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² Python
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ YOLO Inference API Ρ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΡΡ ΠΈ ΠΊΠ»ΡΡΠΎΠΌ API Ρ ΠΏΠΎΠΌΠΎΡΡΡ Python, ΡΡ ΠΌΠΎΠΆΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄:
import requests
# API URL, use actual MODEL_ID
url = f"https://api.ultralytics.com/v1/predict/MODEL_ID"
# Headers, use actual API_KEY
headers = {"x-api-key": "API_KEY"}
# Inference arguments (optional)
data = {"size": 640, "confidence": 0.25, "iou": 0.45}
# Load image and send request
with open("path/to/image.jpg", "rb") as image_file:
files = {"image": image_file}
response = requests.post(url, headers=headers, files=files, data=data)
print(response.json())
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π·Π°ΠΌΠ΅Π½ΠΈΡΠ΅ API_KEY
Ρ ΡΠ²ΠΎΠΈΠΌ Π½Π°ΡΡΠΎΡΡΠΈΠΌ ΠΊΠ»ΡΡΠΎΠΌ API, MODEL_ID
Ρ Π½ΡΠΆΠ½ΡΠΌ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΈ path/to/image.jpg
ΡΠΊΠ°ΠΆΠΈ ΠΏΡΡΡ ΠΊ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΡ Ρ
ΠΎΡΠ΅ΡΡ ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ.
ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Ρ cURL
Π’Ρ ΠΌΠΎΠΆΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ YOLO Inference API Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΠΌ URL (cURL), ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ curl
ΠΠΎΠΌΠ°Π½Π΄Π°. ΠΠ°ΠΌΠ΅Π½ΠΈΡΠ΅ API_KEY
Ρ ΡΠ²ΠΎΠΈΠΌ Π½Π°ΡΡΠΎΡΡΠΈΠΌ ΠΊΠ»ΡΡΠΎΠΌ API, MODEL_ID
Ρ Π½ΡΠΆΠ½ΡΠΌ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΈ image.jpg
ΡΠΊΠ°ΠΆΠΈ ΠΏΡΡΡ ΠΊ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΡ Ρ
ΠΎΡΠ΅ΡΡ ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ:
curl -X POST "https://api.ultralytics.com/v1/predict/MODEL_ID" \
-H "x-api-key: API_KEY" \
-F "image=@/path/to/image.jpg" \
-F "size=640" \
-F "confidence=0.25" \
-F "iou=0.45"
ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ²
ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ POST-Π·Π°ΠΏΡΠΎΡ ΠΊ YOLO Inference API Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ MODEL_ID
Π² URL ΠΈ API_KEY
Π² Π·Π°ΠΏΡΠΎΡΠ΅ headers
, Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΡΠ°ΠΉΠ»ΠΎΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ @path/to/image.jpg
.
ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ size
, confidence
, ΠΈ iou
Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΡΠ΅ΡΠ΅Π· URL API, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ requests
Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π² Python:
import requests
# API URL, use actual MODEL_ID
url = f"https://api.ultralytics.com/v1/predict/MODEL_ID"
# Headers, use actual API_KEY
headers = {"x-api-key": "API_KEY"}
# Inference arguments (optional)
data = {"size": 640, "confidence": 0.25, "iou": 0.45}
# Load image and send request
with open("path/to/image.jpg", "rb") as image_file:
files = {"image": image_file}
response = requests.post(url, headers=headers, files=files, data=data)
print(response.json())
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ data
Π‘Π»ΠΎΠ²Π°ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ Π·Π°ΠΏΡΠΎΡΠ° size
, confidence
, ΠΈ iou
ΠΡΠΎ Π³ΠΎΠ²ΠΎΡΠΈΡ API ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π²ΡΠ²ΠΎΠ΄ ΠΏΡΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ 640 Ρ ΠΏΠΎΡΠΎΠ³Π°ΠΌΠΈ ΡΠ²Π΅ΡΠ΅Π½Π½ΠΎΡΡΠΈ ΠΈ IoU, ΡΠ°Π²Π½ΡΠΌΠΈ 0,25 ΠΈ 0,45.
ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π·Π°ΠΏΡΠΎΡΠ° Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΡΠ°ΠΉΠ»ΠΎΠΌ Π² POST-Π·Π°ΠΏΡΠΎΡΠ΅. ΠΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΡΠΌΠΎΡΡΠΈ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ Π½ΠΈΠΆΠ΅.
ΠΡΠ³ΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΡΠΌΠΎΠ·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ | ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ | Π’ΠΈΠΏ | ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΡ |
---|---|---|---|
size |
640 |
int |
Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ 32 - 1280 ΠΏΠΈΠΊΡΠ΅Π»ΠΈ |
confidence |
0.25 |
float |
Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ 0.01 - 1.0 |
iou |
0.45 |
float |
Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ 0.0 - 0.95 |
url |
'' |
str |
ΠΠ΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ URL-Π°Π΄ΡΠ΅Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π΅ΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π½ Π½Π΅ ΡΠ°ΠΉΠ» ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ |
normalize |
False |
bool |
ΠΠ΅ΡΠ½ΠΈ ΡΠΎΡΠΌΠ°Ρ JSON
YOLO Inference API Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ JSON-ΡΠΏΠΈΡΠΎΠΊ Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ. Π€ΠΎΡΠΌΠ°Ρ JSON-ΡΠΏΠΈΡΠΊΠ° Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ°, ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ results[0].tojson()
ΠΠΎΠΌΠ°Π½Π΄ΡΠΉ.
JSON-ΡΠΏΠΈΡΠΎΠΊ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°Ρ , ΠΈΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°Ρ , ΠΊΠ»Π°ΡΡΠ°Ρ ΠΈ Π±Π°Π»Π»Π°Ρ Π΄ΠΎΠ²Π΅ΡΠΈΡ.
ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ ΡΠΎΡΠΌΠ°Ρ ΠΌΠΎΠ΄Π΅Π»ΠΈ
ΠΠΎΠ΄Π΅Π»ΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ YOLO, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ yolov8n.pt
Π’Ρ ΠΌΠΎΠΆΠ΅ΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ JSON-ΠΎΡΠ²Π΅ΡΡ ΠΎΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ
Π²ΡΠ²ΠΎΠ΄ΠΎΠ², Π²ΡΠ²ΠΎΠ΄ΠΎΠ² cURL ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΎΠ² Python. ΠΡΠ΅ ΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ Π²ΡΠ΄Π°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΡΠΎΡΠΌΠ°Ρ ΠΎΡΠ²Π΅ΡΠ° JSON.
ΠΠ±Π½Π°ΡΡΠΆΠΈΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ JSON-ΠΎΡΠ²Π΅ΡΠ°
import requests
# API URL, use actual MODEL_ID
url = f"https://api.ultralytics.com/v1/predict/MODEL_ID"
# Headers, use actual API_KEY
headers = {"x-api-key": "API_KEY"}
# Inference arguments (optional)
data = {"size": 640, "confidence": 0.25, "iou": 0.45}
# Load image and send request
with open("path/to/image.jpg", "rb") as image_file:
files = {"image": image_file}
response = requests.post(url, headers=headers, files=files, data=data)
print(response.json())
{
"success": True,
"message": "Inference complete.",
"data": [
{
"name": "person",
"class": 0,
"confidence": 0.8359682559967041,
"box": {
"x1": 0.08974208831787109,
"y1": 0.27418340047200523,
"x2": 0.8706787109375,
"y2": 0.9887352837456598
}
},
{
"name": "person",
"class": 0,
"confidence": 0.8189555406570435,
"box": {
"x1": 0.5847355842590332,
"y1": 0.05813225640190972,
"x2": 0.8930277824401855,
"y2": 0.9903111775716146
}
},
{
"name": "tie",
"class": 27,
"confidence": 0.2909725308418274,
"box": {
"x1": 0.3433395862579346,
"y1": 0.6070465511745877,
"x2": 0.40964522361755373,
"y2": 0.9849439832899306
}
}
]
}
Π€ΠΎΡΠΌΠ°Ρ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°
ΠΠΎΠ΄Π΅Π»ΠΈ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ YOLO, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ yolov8n-seg.pt
Π’Ρ ΠΌΠΎΠΆΠ΅ΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ JSON-ΠΎΡΠ²Π΅ΡΡ ΠΎΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ
Π²ΡΠ²ΠΎΠ΄ΠΎΠ², Π²ΡΠ²ΠΎΠ΄ΠΎΠ² cURL ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΎΠ² Python. ΠΡΠ΅ ΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ Π²ΡΠ΄Π°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΡΠΎΡΠΌΠ°Ρ ΠΎΡΠ²Π΅ΡΠ° JSON.
Π‘Π΅Π³ΠΌΠ΅Π½ΡΠ½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ JSON-ΠΎΡΠ²Π΅ΡΠ°
import requests
# API URL, use actual MODEL_ID
url = f"https://api.ultralytics.com/v1/predict/MODEL_ID"
# Headers, use actual API_KEY
headers = {"x-api-key": "API_KEY"}
# Inference arguments (optional)
data = {"size": 640, "confidence": 0.25, "iou": 0.45}
# Load image and send request
with open("path/to/image.jpg", "rb") as image_file:
files = {"image": image_file}
response = requests.post(url, headers=headers, files=files, data=data)
print(response.json())
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ segments
x
ΠΈ y
ΠΠ»ΠΈΠ½Π° ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ Π²Π°ΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΎΡ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ° ΠΊ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΡ. ΠΠΎΠ»ΡΡΠΈΠ΅ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΡ ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΡΠΎΡΠ΅ΠΊ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°.
{
"success": True,
"message": "Inference complete.",
"data": [
{
"name": "person",
"class": 0,
"confidence": 0.856913149356842,
"box": {
"x1": 0.1064866065979004,
"y1": 0.2798851860894097,
"x2": 0.8738358497619629,
"y2": 0.9894873725043403
},
"segments": {
"x": [
0.421875,
0.4203124940395355,
0.41718751192092896
...
],
"y": [
0.2888889014720917,
0.2916666567325592,
0.2916666567325592
...
]
}
},
{
"name": "person",
"class": 0,
"confidence": 0.8512625694274902,
"box": {
"x1": 0.5757311820983887,
"y1": 0.053943040635850696,
"x2": 0.8960096359252929,
"y2": 0.985154045952691
},
"segments": {
"x": [
0.7515624761581421,
0.75,
0.7437499761581421
...
],
"y": [
0.0555555559694767,
0.05833333358168602,
0.05833333358168602
...
]
}
},
{
"name": "tie",
"class": 27,
"confidence": 0.6485961675643921,
"box": {
"x1": 0.33911995887756347,
"y1": 0.6057066175672743,
"x2": 0.4081430912017822,
"y2": 0.9916408962673611
},
"segments": {
"x": [
0.37187498807907104,
0.37031251192092896,
0.3687500059604645
...
],
"y": [
0.6111111044883728,
0.6138888597488403,
0.6138888597488403
...
]
}
}
]
}
Π€ΠΎΡΠΌΠ°Ρ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠΎΠ·Ρ
ΠΠΎΠ΄Π΅Π»ΠΈ Ρ ΠΏΠΎΠ·ΠΎΠΉ YOLO, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ yolov8n-pose.pt
Π’Ρ ΠΌΠΎΠΆΠ΅ΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ JSON-ΠΎΡΠ²Π΅ΡΡ ΠΎΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ
Π²ΡΠ²ΠΎΠ΄ΠΎΠ², Π²ΡΠ²ΠΎΠ΄ΠΎΠ² cURL ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΎΠ² Python. ΠΡΠ΅ ΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ Π²ΡΠ΄Π°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΡΠΎΡΠΌΠ°Ρ ΠΎΡΠ²Π΅ΡΠ° JSON.
JSON-ΠΎΡΠ²Π΅Ρ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠΎΠ·Ρ
import requests
# API URL, use actual MODEL_ID
url = f"https://api.ultralytics.com/v1/predict/MODEL_ID"
# Headers, use actual API_KEY
headers = {"x-api-key": "API_KEY"}
# Inference arguments (optional)
data = {"size": 640, "confidence": 0.25, "iou": 0.45}
# Load image and send request
with open("path/to/image.jpg", "rb") as image_file:
files = {"image": image_file}
response = requests.post(url, headers=headers, files=files, data=data)
print(response.json())
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ±ΡΡΠ΅Π½Π½ΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ COCO-keypoints Π±ΡΠ΄ΡΡ ΠΈΠΌΠ΅ΡΡ 17 ΡΠ΅Π»ΠΎΠ²Π΅ΡΠ΅ΡΠΊΠΈΡ
ΠΊΠ»ΡΡΠ΅Π²ΡΡ
ΡΠΎΡΠ΅ΠΊ. Π‘Π°ΠΉΡ visible
ΡΠ°ΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΡΡ
ΡΠΎΡΠ΅ΠΊ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, Π²ΠΈΠ΄Π½Π° Π»ΠΈ ΠΊΠ»ΡΡΠ΅Π²Π°Ρ ΡΠΎΡΠΊΠ° ΠΈΠ»ΠΈ Π·Π°ΡΠ»ΠΎΠ½Π΅Π½Π°. ΠΠ°ΡΠ΅Π½Π΅Π½Π½ΡΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠΎΡΠΊΠΈ ΠΌΠΎΠ³ΡΡ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡΡ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ Π±ΡΡΡ Π½Π΅ Π²ΠΈΠ΄Π½Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π³Π»Π°Π·Π° ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ°, ΠΎΠ±ΡΠ°ΡΠ΅Π½Π½ΡΠ΅ Π² ΡΡΠΎΡΠΎΠ½Ρ ΠΎΡ ΠΊΠ°ΠΌΠ΅ΡΡ.
{
"success": True,
"message": "Inference complete.",
"data": [
{
"name": "person",
"class": 0,
"confidence": 0.8439509868621826,
"box": {
"x1": 0.1125,
"y1": 0.28194444444444444,
"x2": 0.7953125,
"y2": 0.9902777777777778
},
"keypoints": {
"x": [
0.5058594942092896,
0.5103894472122192,
0.4920862317085266
...
],
"y": [
0.48964157700538635,
0.4643048942089081,
0.4465252459049225
...
],
"visible": [
0.8726999163627625,
0.653947651386261,
0.9130823612213135
...
]
}
},
{
"name": "person",
"class": 0,
"confidence": 0.7474289536476135,
"box": {
"x1": 0.58125,
"y1": 0.0625,
"x2": 0.8859375,
"y2": 0.9888888888888889
},
"keypoints": {
"x": [
0.778544008731842,
0.7976160049438477,
0.7530890107154846
...
],
"y": [
0.27595141530036926,
0.2378823608160019,
0.23644638061523438
...
],
"visible": [
0.8900790810585022,
0.789978563785553,
0.8974530100822449
...
]
}
}
]
}
Π‘ΠΎΠ·Π΄Π°Π½ΠΎ 2024-01-23, ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΎ 2024-03-06
ΠΠ²ΡΠΎΡΡ: RizwanMunawar (1), glenn-jocher (3), priytosh-tripathi (1)