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 予測の配列を含むオブジェクトを返します。各予測には以下のプロパティがあります:

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

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

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

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

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

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

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

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

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

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

    • class_id = キーポイントのID、スケルトンに対応 vertices バージョンレコードで、頂点の色とスケルトンエッジをマッピングするには、 Project Versionを表示

    • 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
    }
}

この image 属性には推論に送信された画像の高さと幅が含まれます。バウンディングボックスの計算にこれらの値が必要になる場合があります。

Inference APIパラメータ

推論APIの利用

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

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

パスパラメータ

名前
タイプ
説明

datasetSlug

string

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

version

number

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

クエリパラメータ

名前
タイプ
説明

image

string

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

classes

string

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

overlap

number

同じクラスのバウンディングボックス予測が1つのボックスに統合される前に許容される最大重複率(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の可視化フィールドを含むJSON予測の配列を返します。 デフォルト: json

api_key

string

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

リクエストボディ

名前
タイプ
説明

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?