OVMS を使用した顔ブラー・パイプライン¶
ここでは、画像をぼかすために、OpenVINO Model Zoo の物体検出モデルを使用してパイプラインを作成する方法を説明します。例として、face-detection-retail-0004 を使用して画像から複数の顔を検出します。次に、検出された顔ごとに、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
デモを実行した結果の例: