OVMS を使用した顔ブラー・パイプライン

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

パイプライン構成グラフ

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

Face Blur Pipeline Graph

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

  • モデル 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

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

Face Blur Image