キーポイント検出

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 = 検出オブジェクトが正しいラベルと座標を持つ確信度(モデルの信頼度)

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

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

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

推論APIパラメータ

推論APIの使用方法

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

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

パスパラメータ

名前
タイプ
説明

datasetSlug

string

データセット名のURLセーフバージョンです。Web UIのメインプロジェクトビューのURLを見るか、モデルのトレーニング後にデータセットバージョンのトレイン結果セクションで「curlコマンドを取得」ボタンをクリックすると見つけられます。

version

number

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

クエリパラメータ

名前
タイプ
説明

画像

string

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

classes

string

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

overlap

number

同じクラスのバウンディングボックス予測が1つのボックスにまとめられる前に許容される最大重なり率(0-100スケール)。 デフォルト: 30

confidence

number

返される予測のしきい値(0-100スケール)。数値が低いほど多くの予測が返され、高いほど高確度の予測のみ返されます。 デフォルト: 40

stroke

number

予測の周囲に表示されるバウンディングボックスの幅(ピクセル単位)( format の場合のみ有効) 画像). デフォルト: 1

labels

boolean

予測にテキストラベルを表示するかどうか( format の場合のみ有効) 画像). デフォルト: false

format

string

json - JSON予測の配列を返します。(レスポンス形式タブを参照) 画像 - アノテーション付き予測画像をバイナリブロブとして返します 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?