要約
- この記事では、OKI AIエッジコンピューター「AE2100」のスターターキットを使ったAI推論デモの解説です。
- この記事では、AE2100+IPカメラを使用した推論デモ実行について解説します。
はじめに
OpenVINOツールキットで使用できるOpenModelZooでは、最適化済み・オープンソースの学習済みモデルやパブリックモデルを無料で利用することができます。
AE2100スターターキットでは直ぐにデモを実行できるデモ用のアプリ(コンテナ)を提供しています。
デモアプリの入手
AE2100のデモアプリは、AIエッジユーザーサイトからダウンロードできます。
AIエッジユーザーサイトへのアクセスにはライセンスIDが必要になりますので、注意が必要です。
AIエッジユーザーサイト
※デモアプリは、AE2100スターターキット購入者限定で提供されています。
デモアプリのインストール
WindowsPCからAE2100のWebUIへアクセスし、デモアプリをインストールします。
AE2100のWebUIの、「アプリケーション」の「アプリ管理」をクリックすると別タブでアプリ一覧が表示されるので、画面左上の「アプリ管理メニュー」の「インストール」を選択します。
以下の画面のように、ローカルに保存したアプリファイルを指定してインストールを行います。
インストールが完了したら、画面左上の「アプリ管理メニュー」の「アプリ起動」メニューを開き、起動するアプリを指定してアプリ起動します。
正常にアプリがインストール・起動すると、「アプリ一覧」にスターターキットのアプリが表示されます。
デモアプリの実行
WindowsPCからSSHでAE2100に接続し、起動しているコンテナを確認します。
root@ae2100:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c75767bfd2a2 6774dbbfffe3 "/bin/bash" 10 minutes ago Up 10 minutes ae2100_demo
38db3fdfc248 appf-monitor:appf "/tini -- node app.js" 7 weeks ago Up 30 minutes appf-monitor
841028cbfd02 appf-node:appf "/tini -- node app.js" 7 weeks ago Up 30 minutes 127.0.0.1:3000->3000/tcp appf-node
「ae2100_demo」のコンテナが起動していると思います。
ここで「AE2100_demo」のコンテナに入ります。ここで自動的にOpenVINOで使用する環境変数が初期化されます。
root@ae2100:~# docker exec -it ae2100_demo bash
[setupvars.sh] OpenVINO environment initialized
デモ用のスクリプトは、デモ用フォルダ「/opt/ae2100_demo」に格納されています。
root@c75767bfd2a2:/opt/ae2100_demo# ls
data interactive_face_detection_demo_camera.sh
human_pose log
human_pose_demo.sh object_detection
human_pose_demo_camera.sh object_detection_ssd_demo.sh
interactive_face_detection object_detection_ssd_demo_camera.sh
interactive_face_detection_demo.sh
WindosPCのIPアドレスを192.168.100.2以外を設定した場合は、このフォルダにある、shファイルを編集して「IP_ADDR」のIPアドレスを書き換えてください。
なお、本記事で紹介するIPカメラを使用したAI推論デモは、IPカメラのRTSP(Real Time Streaming Prococol)ストリームを入力として、推論エンジンを動かし、その結果の動画をXLaunchで画面表示させます。
HumanPoseデモ(姿勢推定)
デモ用フォルダでHumanPoseデモを実行します。
あらかじめこちらの記事を参考にして、WindowsPCでXLaunchを起動してください。
サンプル動画でのデモ実行は以下のコマンドを実行します。
root@c75767bfd2a2:/opt/ae2100_demo# ./human_pose_demo.sh
WindowsPCに姿勢推論した結果の動画が表示されます。
画面には遅延時間とFPSが表示されます。約18FPSで推論が動作しています。
IPカメラを使用してライブでの姿勢推定の推論を実行するには、以下のコマンドを実行します。
root@c75767bfd2a2:/opt/ae2100_demo# ./human_pose_demo_camera.sh
コマンドを実行すると、IPカメラのリアルタイムの映像をAE2100で推論させた映像が表示されます。
手元にあったAE2100マンガを映してみました。2次元キャラでもしっかり姿勢推定できているようです。
Interactive Face Detectionデモ(顔認識・年齢/性別/感情推定)
続いて、Interactive Face Detectionデモを動かしていきます。
サンプル動画でのデモ実行は以下のコマンドを実行します。こちらは複数のモデルをロードするので、推論開始まで多少時間がかかります。
root@c75767bfd2a2:/opt/ae2100_demo# ./interactive_face_detection_demo.sh
WindowsPCに顔認識した結果の動画が表示されます。
少し見づらいですが、性別、年齢、感情が表示されています。
このデモでは、顔認識をMyriad、性別・年齢・感情の推定をCPU内蔵のGPUで動作させていますが、FPSとしては4FPS程度で動作します。
どのリソースでどのモデルを推論実行するかはinteractive_face_detection_demo.shに記載しているオプションで変更することが可能です。
次にIPカメラを使用した推論を実行してみます。以下のコマンドを実行します。
root@c75767bfd2a2:/opt/ae2100_demo# ./interactive_face_detection_demo_camera.sh
またしてもAE2100マンガを映してみました。
しっかりと性別と年齢を正確に(?)認識しています。こちらも2次元キャラ対応です。
Object Detectionデモ(物体認識)
最後になりますが、物体認識のデモを動かしていきます。
このデモではSSD(Single Shot Multibox Detector)という比較的高速な物体検知アルゴリズムを使用しています。
root@c75767bfd2a2:/opt/ae2100_demo# ./object_detection_ssd_demo.sh
店舗の中で徘徊している複数の人物を同時に認識できています。
約36FPS出ているので、前の2つのデモより高速に動作していることがわかります。
IPカメラを使用してライブでの物体認識の推論を実行するには、以下のコマンドを実行します。
root@c75767bfd2a2:/opt/ae2100_demo# ./object_detection_ssd_demo_camera.sh
テレワーク環境で使用している自分の机を映してみました。キーボードやマウスが認識されています。
まとめ
今回は、AE2100スターターキットを使用して、IPカメラの映像をサンプルのAIモデルを使って推論してみました。
OpenVINO(⁺OpenModelZoo)には、ご紹介したAIのデモ以外にも多数のAIモデルが用意されています。
また、サンプルのAIモデル(publicモデル)をベースに転移学習やファインチューニングを行ってカスタマイズすることもできますので、是非挑戦してみてください!
関連記事
OKI AIエッジコンピューター「AE2100」のスターターキットを使って、IPカメラの映像をライブでAI推論してみよう。(2)