Keypoint Detection

Roboflow でホストされているオブジェクト検出モデルで推論を実行します。

Pythonを使用してホストされたAPIで推論を実行するには、次を使用してください: roboflow Pythonパッケージ:

from roboflow import Roboflow
rf = Roboflow(api_key="API_KEY")
project = rf.workspace().project("MODEL_ENDPOINT")
model = project.version(VERSION).model

# ローカル画像で推論する
print(model.predict("your_image.jpg", confidence=40, overlap=30).json())

# 予測を可視化する
# model.predict("your_image.jpg", confidence=40, overlap=30).save("prediction.jpg")

# 他の場所にホストされている画像で推論する
# print(model.predict("URL_OF_YOUR_IMAGE", hosted=True, confidence=40, overlap=30).json())

レスポンスオブジェクトの形式

ホストされたAPI推論ルートは次を返します JSON 配列 predictions を含むオブジェクトを返します。各 prediction は以下のプロパティを持ちます:

  • x = 検出されたオブジェクトの水平中心点

  • y = 検出されたオブジェクトの垂直中心点

  • width = バウンディングボックスの幅

  • height = バウンディングボックスの高さ

  • class = 検出されたオブジェクトのクラスラベル

  • confidence = 検出されたオブジェクトが正しいラベルと位置座標であるというモデルの確信度

  • keypoints = キーポイント予測の配列

    • x = キーポイントの水平中心(画像の左上を基準)

    • y = キーポイントの垂直中心(画像の左上を基準)

    • class_name = キーポイントの名前

    • class_id = キーポイントのID。スケルトンにマッピングされる vertices バージョンレコード内で、頂点の色とスケルトンのエッジをマップするには、 プロジェクトバージョンを表示

    • confidence = キーポイントが正しい位置にあり、可視(遮蔽または削除されていない)である確信度

以下は REST API からのサンプルレスポンスオブジェクトです:

{
    "predictions": [
        {
            "x": 189.5,
            "y": 100,
            "width": 163,
            "height": 186,
            "class": "helmet",
            "confidence": 0.544,
            "keypoints": [
                {
                    "x": 189, 
                    "y": 20,
                    "class_name": "top",
                    "class_id": 0,
                    "confidence": 0.91
                },
                {
                    "x": 188, 
                    "y": 180,
                    "class_name": "bottom",
                    "class_id": 1,
                    "confidence": 0.93
                }
            ]
        }
    ],
    "image": {
        "width": 2048,
        "height": 1371
    }
}

The image attribute は推論に送信した画像の高さと幅を含みます。バウンディングボックスの計算でこれらの値を使用する必要がある場合があります。

推論APIパラメータ

Inference APIの使用方法

POST https://detect.roboflow.com/:datasetSlug/:versionNumber

base64エンコードされた画像を直接モデルエンドポイントにPOSTできます。あるいは、画像が既に別の場所にホストされている場合は、クエリ文字列の image パラメータとしてURLを渡すことができます。

パスパラメータ

名前
タイプ
説明

datasetSlug

string

データセット名の URL セーフなバージョン。これは、Web UI のメインプロジェクトビューの URL を見るか、モデルをトレーニングした後のデータセットバージョンのトレイン結果セクションにある「Get curl command」ボタンをクリックして確認できます。

version

number

データセットのバージョンを識別するバージョン番号

Query Parameters

名前
タイプ
説明

image

string

追加する画像の URL。画像が別の場所にホストされている場合に使用します。(リクエストボディで base64 エンコードされた画像を POST しない場合は必須。) 注意: URL エンコードするのを忘れないでください。

classes

string

予測を特定のクラスのものに制限します。カンマ区切りの文字列で指定してください。 例: dog,cat デフォルト: 指定なし(すべてのクラスを表示)

overlap

number

同一クラスのバウンディングボックス予測が結合されて単一のボックスになる前に許容される最大重なり率(0〜100 の尺度)。 デフォルト: 30

confidence

number

返される予測の閾値(0〜100 の尺度)。低い数値ほど多くの予測を返します。高い数値ほど確信度の高い予測のみを返します。 デフォルト: 40

stroke

number

予測周りに表示されるバウンディングボックスの幅(ピクセル単位)(効果があるのは formatimage). デフォルト: 1

labels

boolean

予測にテキストラベルを表示するかどうか(効果があるのは formatimage). デフォルト: false

format

string

json - JSON予測の配列を返します。(レスポンス形式タブを参照してください)。 image - 注釈付き予測を含む画像をバイナリブロブとして返します。 Content-Typeimage/jpeg. image_and_json - base64のvisualizationフィールドを含むJSON予測の配列を返します。 デフォルト: json

api_key

string

あなたの API キー(ワークスペースの API 設定ページから取得)

Request Body

名前
タイプ
説明

string

Base64 エンコードされた画像。(クエリパラメータで画像 URL を渡さない場合は必須。)

{
    "predictions": [{
        "x": 234.0,
        "y": 363.5,
        "width": 160,
        "height": 197,
        "class": "hand",
        "confidence": 0.943
    }, {
        "x": 504.5,
        "y": 363.0,
        "width": 215,
        "height": 172,
        "class": "hand",
        "confidence": 0.917
    }, {
        "x": 1112.5,
        "y": 691.0,
        "width": 139,
        "height": 52,
        "class": "hand",
        "confidence": 0.87
    }, {
        "x": 78.5,
        "y": 700.0,
        "width": 139,
        "height": 34,
        "class": "hand",
        "confidence": 0.404
    }]
}

Last updated

Was this helpful?