It's a peacehell world.

こんな名前ですが情報技術について主に扱うブログです。

OpenVINO を使って感情認識する 〜準備編〜

はじめに

みなさんは他人が今どういう感情か表情から読み取ることはできますか?

相手が笑顔だったり泣いていれば「嬉しい」「悲しい」くらいはわかると思います。

しかし、ポーカーフェイスの人の感情を読み取ることは難しいですよね。

そこで、OpenVINO の感情認識を利用してポーカーフェイスの人の感情を読み取ってしまいましょう。

お品書き

  1. OpenVINO 環境構築(Ubuntu
  2. 顔認識と感情認識に使用するモデルを取得する
  3. 映像全体から顔認識する
  4. 顔部分のバウンディングボックスを切り取って感情認識を行う

の 1. と 2. について本記事では記述します。 3. と 4. については Python で実装します。

環境

  • MacOS Big Sur 11.4
  • Docker Desktop Version 3.5.2

前提

MacOS で OpenVINO を利用するには会員登録して dmg をダウンロードする必要があります。

私みたいな会員登録したくない方のために、Ubuntu の apt で OpenVINO をインストールします。

Ubuntu 準備

Docker で Ubuntu 20.04 のイメージを用意します。

$ docker image pull ubuntu:20.04
$ docker container run -it -d --name ubuntu2004 ubuntu:20.04
$ docker container exec -it ubuntu2004 /bin/bash

OpenVINO 準備

基本的に公式サイトに従います。

後述の周辺環境インストールのために Runtime Package ではなく Developer Package をインストールします。 docs.openvinotoolkit.org

$ apt-get update
$ apt-get install -y sudo
$ apt-get install -y wget
$ wget https://apt.repos.intel.com/openvino/2021/GPG-PUB-KEY-INTEL-OPENVINO-2021
$ apt-get install -y gnupg2
$ sudo apt-key add GPG-PUB-KEY-INTEL-OPENVINO-2021
$ echo "deb https://apt.repos.intel.com/openvino/2021 all main" | sudo tee /etc/apt/sources.list.d/intel-openvino-2021.list
$ sudo apt-cache search intel-openvino-dev-ubuntu20
$ sudo apt install intel-openvino-dev-ubuntu20-2021.1.110
$ sudo apt list --installed | grep openvino

周辺環境インストール

こちらも基本的に公式サイトに従ってすすめていきます。 docs.openvinotoolkit.org

$ cd /opt/intel/openvino_2021/install_dependencies/
$ ./install_openvino_dependencies.sh

$ source /opt/intel/openvino_2021/bin/setupvars.sh

$ cd /opt/intel/openvino_2021/deployment_tools/model_optimizer/install_prerequisites
$ ./install_prerequisites.sh

$ cd /opt/intel/openvino_2021/deployment_tools/demo
$ ./demo_squeezenet_download_convert_run.sh

$ cd /opt/intel/openvino_2021/install_dependencies
$ apt-get install lsb-release
$ ./install_NEO_OCL_driver.sh

モデルダウンロード

顔認識には face-detection-adas-0001 を使用し、感情認識には emotions-recognition-retail-0003 を使用します。

model_downloader ディレクトリで python3 downloader.py --name {モデル名} --output_dir {格納先} のコマンドを実行することでダウンロードできますので、ダウンロード先はご自身の環境に合わせて変えてください。

$ cd /opt/intel/openvino_2021/deployment_tools/tools/model_downloader
# 顔認識で使用するモデル
$ python3 downloader.py --name face-detection-adas-0001 --output_dir ~/models
# 感情認識で使用するモデル
$ python3 downloader.py --name emotions-recognition-retail-0003 --output_dir ~/models

Python パッケージ準備

グローバルへのインストールに抵抗がある場合は仮想環境を作成して実行してください。

$ pip3 install opencv-python
$ pip3 install openvino

おわりに

以上で「1. OpenVINO 環境構築(Ubuntu)」と「2. 顔認識と感情認識に使用するモデルを取得する」まで完了です。

「3. 映像全体から顔認識する」と「4. 顔部分のバウンディングボックスを切り取って感情認識を行う」については OpenVINO を使って感情認識する 〜実装編〜 で記述していきます。

なお、Ubuntu への MacOS からの Web カメラ入力と GUI 準備ができていないので、今回はファイル入力とファイル出力で感情認識を確認していきます。