OVMS を使用した顔のブレ・パイプライン#

ここでは、画像をぼかすために、OpenVINO Open Model Zoo の物体検出モデルを使用してパイプラインを作成する方法を説明します。例として、face-detection-retail-0004 を使用して画像から複数の顔を検出します。次に、検出された顔ごとに、face_blur サンプル・カスタム・ノードを使用してぼかします。

パイプライン構成グラフ#

以下に、顔ブラー・パイプラインを実装したグラフを示します。

顔のブレ (Face Blur) パイプライン・グラフ

これには次のノードが含まれます:

  • モデル face-detection-retail-0004 - ユーザー画像を入力として受け取るディープラーニング・モデル。出力には、顔の座標と信頼レベルに関する情報が含まれています。

  • カスタムノード face_blur - 画像ぼかしの C++ 実装が含まれています。出力を分析することで、設定可能なスコアレベルのしきい値を基にオブジェクト検出モデルによって検出されたスポットでボケた画像が生成されます。カスタムノードは、ターゲット解像度に合わせてサイズも変更します。画像に対するすべての操作には、OVMS にプリインストールされている OpenCV ライブラリーが使用されます。詳細は、face_blur カスタムノードを参照してください。

  • 応答 - オブジェクト検出モデルによって検出されたスポットで画像がボケます。

デモを実行するにはワークスペースを準備します#

顔ブラー・パイプラインを正常にデプロイするには、以下を含むワークスペースが必要です:

リポジトリーのクローンを作成し、face_blur ディレクトリー移動します。

git clone https://github.com/openvinotoolkit/model_server.git 
cd model_server/demos/face_blur/python

実行するだけで、上記のすべてを含むワークスペースを準備できます

make

最終ディレクトリー構造#

make が完了すると、次の内容を含む workspace ディレクトリーが準備されているはずです。

workspace
      ├── config.json
      ├── face-detection-retail-0004
      │          └── 1              ├── face-detection-retail-0004.bin
      │              └── face-detection-retail-0004.xml 
      └── lib 
           └── libcustom_node_face_blur.so

OVMS のデプロイ#

次のコマンドを使用して、顔ブラー・パイプラインを備えた OVMS をデプロイします:

docker run -p 9000:9000 -d -v ${PWD}/workspace:/workspace openvino/model_server --config_path /workspace/config.json --port 9000

サービスの要求#

Python の依存関係をインストールします:

pip3 install -r requirements.txt

これで、ボケた画像用のディレクトリーを作成し、クライアントを実行できます:

mkdir results
python face_blur.py --grpc_port 9000 --image_input_path ../../common/static/images/people/people1.jpeg --blurred_image_save_path ./results --image_width 600 --image_height 400 --image_layout NHWC

デモを実行した結果の例:

顔のブレ画像