ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ содСрТимому

YOLO API для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π²Ρ‹Π²ΠΎΠ΄Π°ΠΌΠΈ

YOLO Inference API позволяСт Ρ‚Π΅Π±Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ возмоТностям обнаруТСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² YOLOv8 Ρ‡Π΅Ρ€Π΅Π· RESTful API. Π­Ρ‚ΠΎ позволяСт Ρ‚Π΅Π±Π΅ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° изобраТСниях Π±Π΅Π· нСобходимости ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ YOLOv8 локально.

Π‘ΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚ Inference API Π‘ΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚ Ρ€Π°Π·Π΄Π΅Π»Π° Inference API Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Preview ΠΎΠ±ΡƒΡ‡Π΅Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ.



Π‘ΠΌΠΎΡ‚Ρ€ΠΈ: Ultralytics ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ описаниС HUB Inference API Walkthrough

URL-АДРЕБ API

URL-адрСс API - это адрСс, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для доступа ΠΊ API YOLO Inference. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ URL Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π°ΠΊΠΈΠΌ:

https://api.ultralytics.com/v1/predict

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования Π² 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-ΠΎΡ‚Π²Π΅Ρ‚Π°

from ultralytics import YOLO

# Load model
model = YOLO('yolov8n.pt')

# Run inference
results = model('image.jpg')

# Print image.jpg results in JSON format
print(results[0].tojson())
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"
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-ΠΎΡ‚Π²Π΅Ρ‚Π°

from ultralytics import YOLO

# Load model
model = YOLO('yolov8n-seg.pt')

# Run inference
results = model('image.jpg')

# Print image.jpg results in JSON format
print(results[0].tojson())
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"
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-ΠΎΡ‚Π²Π΅Ρ‚ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠΎΠ·Ρ‹

from ultralytics import YOLO

# Load model
model = YOLO('yolov8n-seg.pt')

# Run inference
results = model('image.jpg')

# Print image.jpg results in JSON format
print(results[0].tojson())
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"
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)

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ