バイナリーエンコードされた画像入力データのサポート

画像の場合、データサイズを削減して帯域幅を減らすため、配列形式ではなくバイナリーエンコードで画像を送信できます。それを行う方法は、サービスの種類によって異なります。

単一モデルと DAG パイプライン:

OpenVINO モデルにはバイナリー形式で画像を直接処理する機能はありませんが、モデルサーバーは画像を受け入れ、ビルトイン OpenCV ライブラリーを使用して JPEG/PNG から OpenVINO に適した形式に自動的に変換できます。この機能を利用するには、次の 2 つの要件があります。

  1. バイナリーエンコードされたイメージのモデル入力は、適切な形状とレイアウトを持っている必要があります。この要件について詳しくは、入力の形状とレイアウトに関する考慮事項に関するドキュメントをご覧ください。

  2. サーバーに送信される推論要求には、特定のプロパティーが必要です。これらのプロパティーは、API (KServe または TensorFlow Serving) およびインターフェイス (gRPC または REST) に応じて異なります。使用している API の詳細を確認してください。

KServe API を使用すると、REST API 経由での画像エンコードの有無にかかわらず生データを送信できることにも注目してください。これにより、TFS API の json 形式と比較して、KServe REST API はよりパフォーマンスの高い選択肢になります。上記のリンク先のガイドでは、バイナリー形式の通常のデータと JPEG/PNG でエンコードされた画像の両方を扱う方法を説明しています。

MediaPipe グラフ:

MediaPipe グラフを提供する場合、バイナリーエンコードされたイメージを受け入れるように構成できます。画像デコードを実装する独自の計算機を作成してグラフで使用することも、PythonExecutorCalculator を使用して Python 実行関数でデコードを実装することもできます。