APIリファレンス

Video Inference APIは、Roboflow Python SDKおよびREST APIを通じて利用できます。

ベースURL

APIは次のURLを使用します:

https://api.roboflow.com

APIメソッド

roboflowのPipパッケージを使用してビデオ推論にアクセスすることを強く推奨します。 生のVideo Inference APIは https://api.roboflow.com には3つのメソッドがあります:

メソッド
説明

POST /video_upload_signed_url/?api_key={{WORKSPACE_API_KEY}}

このエンドポイントは、ユーザーがビデオをアップロードできる署名付きURLを返します。 エンドポイントは、次のようなファイル名を含むJSON入力を受け付けます

{
    "file_name": "my_video_file.mp4"
}

署名付きURLが返されます

{
    "signed_url": "https://storage.googleapis.com/roboflow_video_inference_input/GNPwawe7dxWthlZZ24r72VRTV852/oct27_video_file.mp4?X-Goog-Algorithm=GOOG4-RSA-SHA256&X-Goog-Credential=roboflow-staging%40appspot.gserviceaccount.com%2F2023110......."
}

その後、お好みのアップロードプログラム(cURLなど)を使って、署名付きURLにビデオファイルをPUTできます。

curl -X PUT "my_signed_url" \
-H "Content-Type: application/octet-stream" \
--data-binary "@your_video.mp4"

POST /videoinfer/?api_key={{WORKSPACE_API_KEY}}

このエンドポイントは、ビデオ推論ジョブを処理するためのjson入力を受け付けます。INPUT_URLは公開されている任意のURLを指定でき、最初に署名付きURLを作成してRoboflowにビデオをアップロードする必要はありません。

リクエストのボディの例は以下の通りです:

{
    "input_url": "{{INPUT_URL}}",
    "infer_fps": 5,
    "models": [
        {
            "model_id": "rock-paper-scissors-presentation",
            "model_version": "4",
            "inference_type": "object-detection",
            "inference_params": {"confidence": 0.4}
        }
    ]
}

ご注意ください models[*].inference_params はオプションです。

レスポンスは次のようなJSON文字列です

{
    "job_id": "fec28362-f7d9-4cc0-a805-5e94495d063d",
    "message": "このエンドポイントはvideojobを作成します"
}

複数のモデルを models 配列で指定できます。 infer_fps フィールドは少なくとも 1 に設定する必要があり、その値はビデオのフレームレートを超えてはいけません。ほとんどのユースケースでは、ビデオのフレームレートは infer_fps .

GET /videoinfer/?api_key={{WORKSPACE_API_KEY}}&job_id={{JOB_ID}}

このエンドポイントはジョブの現在のステータスを返します。このエンドポイントはレート制限されているため、1分に1回以上ポーリングしないでください。 ジョブが成功した場合、返されるJSONの status キーが0に設定され、 output_signed_url キーにはビデオ推論結果のダウンロードリンクが含まれます。 status が1に設定されている場合は、ジョブの処理が完了していないことを示します。それより大きい値はジョブの失敗を示します。

から保存されたJSONファイルをダウンロードしたら、 output_signed_url 場所でパースして推論情報を取得できます。jsonファイルのフォーマットは こちらで説明されています.

Last updated

Was this helpful?