本当は簡単な、組み込みAI×IoTシステムのセットアップ方法
今回は「サーバと連携する顔認証アプリケーション(第5回)」のセットアップ方法を紹介いたします。本記事の要点は、VIA ALTA DS3のように「組み込みAIにより顔認証ができるデバイス」を活用することにより、組み込みAI×IoTのシステムも、お馴染みのサーバ・クライアント型システムと同じように、簡単に構築できる、ということです。
組み込みAI✕クラウドの構成も考えてみよう
さらに本記事の後半では、Microsoft Azureをはじめとする「クラウド」と、組み込みAIを連携させる方法についても解説。製品のライフサイクルの要となるPoCやデプロイを意識した、より実践的な開発について考察します。是非、最後までお楽しみください。
サーバと連携する顔認証アプリケーションのセットアップ
セットアップ手順は以下の通りです。組み込みAIの処理はAndroidアプリケーションとしてパッケージ化されていますので、一般的なアプリケーションと同じようにインストールできます。
なお、各ソフトウェアの入手方法は、VIA Technologies Japanへお問い合わせください。
- サーバのセットアップ(VIA ARTiGO A1250)
- IPカメラのセットアップ
- エッジのセットアップ(組み込みAI:VIA ALTA DS3)
- 顔登録用Android端末のセットアップ
- アプリケーションの設定
ハードウェア | 用途 | 備考 |
---|---|---|
VIA ALTA DS3 | エッジノード(顔認証実行部) | Android8.0、HDMIディスプレイを2台接続 |
VIA ARTiGO A1250 | サーバ(顔認証用データベースの管理) | Windows7 |
Android端末 | 顔画像の登録用端末 | Android6.0 |
Wi-Fiルータ | 各コンポーネント間の通信用 | 無線+有線 |
IPカメラ | 撮影用(エッジノードと通信) | PoEスイッチから給電、HD画質 |
サーバのセットアップ
本システムは、画像の解析結果をサーバ上で集計、顔認証情報を可視化します。サンプルアプリケーションでは、VIA ARTiGO A1250をサーバとして利用しています。ARTiGO A1250は、Windows系のOSをサポートした、小型フォームファクタPCです。
まず、固定IPアドレスを設定します。このIPアドレスは、組み込みAIがサーバへリクエストを送信する際に、指定する値です(例: 192.168.12.185)。
次に、サーバ機能を提供するアプリケーション「MagicView FA Server(MGV FA Server)」をインストールします。FA Serverは、HTTP通信にて受信した人物情報を取得、データベースへ格納し集計、統計情報Webページを配信できるアプリケーションです。設定が完了すると、デスクトップに起動成功のメッセージが表示されます(図3)。
IPカメラのセットアップ
本システムはIPカメラ(図4)により室内を撮影します。接続する2台のIPカメラには、それぞれ以下の内容を設定します。
- IPカメラ1台目 「Front Door」
- IPAddr:Port=192.168.12.32:554
- ユーザ名:Admin、パスワード1234
- 配信形式:H.264
- IPカメラ2台目 「Back Door」
- IPAddr:Port=192.168.12.12:554
- ユーザ名:Admin、パスワード1234
- 配信形式:H.264
エッジのセットアップ(組み込みAI:VIA ALTA DS3)
本システムでは、VIA ALTA DS3上にて、組み込みAIによる顔認識アプリケーション(VIA FACE)と、顔登録アプリケーション(ISC East)を実行します。まず、VIA ALTA DS3へ、下記のAndroidアプリケーションをインストールします(図5)。
また、顔認識アプリケーションと顔登録アプリケーションをネットワーク通信にて連携させるための、固定IPアドレスを設定します(例:192.168.12.102)。
- 顔認識アプリケーション
- VIASecureIDConfig_3.02.apk(インストール名:VIASecureIDConfig)
- VIAFace_1.0.10_1101.apk(インストール名:VIASecureID)
- 顔登録アプリケーション
- ISCEast_1.0.1.apk(インストール名:ISCEast)
アプリケーションの設定
顔認証アプリケーションの設定
VIA ALTA DS3上でVIASecureIDConfigを実行し、以下の設定を行います。設定後はUPDATEボタンにて設定を反映してください(図6)。
設定項目 | 設定値 | 説明 |
---|---|---|
カメラの選択 | MultiIPCamera | IPカメラを利用する |
ip camera 1 name | Front Door | 1台目カメラの識別名 |
RTSP_Url1 | rtsp://Admin:1234@192.168.12.32:554/h264 | 1台目カメラの接続先 |
ip camera 2 name | Back Door | 2台目カメラの識別名 |
RTSP_Url2 | rtsp://Admin:1234@192.168.12.12:554/h264 | 2台目カメラの接続先 |
最小 | 60 | Cameraとの距離(遠距離も許容) |
閾値 | 0.85 | 人物判定閾値(85%一致) |
Emotion | ON | 表情推定ON |
MgvFaceCounting | ON | 統計情報(サーバ連携)ON |
Server Url | http://192.168.12.185:80/face/report | サーバのURL(MagicView FA Server) |
Facereport Server Url | http://192.168.12.102:5103/facereport/userinfo | 顔登録アプリケーションのURL(ISC East) |
FR ID Repeat Interval(s) | 10 | 連続認識時間[秒] |
Socket comm(ms) | 1000 | 顔認証時間[ms] |
Group Set | DefaultGroup | 顔認証登録グループ |
サーバへ送信するデータの設定
サーバとエッジ間の通信設定は、VIA ALTA DS3上にて行います。「VIA Secure ID」を実行し、次に「ISCEast」を実行すると、HDMI1側にFront Doorに設定したカメラの映像が、HDMI2側にダッシュボードが表示されます(図7)。ユーザ名「admin」、パスワード「admin」を指定し、ダッシュボードへログインします。ログインに成功するとダッシュボード(図8)が表示されます。
次に、サーバへ送信するカメラ名を登録します(図9)。左のバーにある歯車(設定)アイコンをクリックし、上のプルダウンメニューからCameraを選択します。「+」マークをクリックし、Front DoorカメラとBack Doorカメラを登録します。Camera IDには「VIAFaceConfig」にて”ip camera1 name”を、Camera Nameにはダッシュボード画面に表示する名前を指定します。
顔登録用Android端末のセットアップ
顔登録用のAndroid端末をセットアップします。Android 5.1以降のAndroid端末をご用意ください。アプリケーション「VIAFace_20181023.apk(FaceID)」をインストールします(図10)。
FaceIDを起動すると、図11のように接続先IPアドレスを求められますので、192.168.12.102(ISC EastのIPアドレス)を入力します。接続に成功すると、図12の撮影画面が表示されます。
以上で「サーバと連携する顔認証アプリケーション」のセットアップは完了となります。
Microsoft Azure(クラウド)と組み込みAIを連携させるには
さて。製品のPoCやデプロイでは、組み込みAIを広域に分散させたい、情報を集計するサーバの信頼性をより高めたい、といった要望も多いでしょう。これらの要望に応える方法のひとつが、クラウドサービスの利用です。そこで、本記事の後半では、VIA ARTiGO A1250のサーバ機能を、Microsoft Azure(クラウドサービス)上へ移植する方法を紹介いたします。
クラウド化は、以下の手順で行います
- エッジとサーバ間の通信内容を採取する
- エッジとサーバ間の通信内容を理解する
- クラウドサービスにサーバの機能を移植する
エッジとサーバ間の通信内容を採取する
クラウド化の第一歩は、現在のエッジ(ALTA DS3)とサーバ(ARTiGO A1250)間の通信内容を理解することから始まります。パケットキャプチャツールWireSharkにて採取した、エッジからサーバへのリクエスト(顔認識結果の通知)を図13に、サーバからエッジへのレスポンスを図14に示します。
エッジとサーバ間の通信内容を理解する
エッジとサーバ間で交換されているリクエストとレスポンスは、HTTP通信の「application/json」と呼ばれる種類のデータです。JSON形式については、JavaScript Object Notationをご参照ください。本システムのサーバは、リクエストとして以下のデータを文字列として取得し、レスポンスの文字列を生成、返送しています。
●エッジからサーバへのリクエスト(JSON形式)
{"face":[{"tracking_status":2,"utctime":"2018\/12\/12 15:28:16","localtime":"2018\/12\/12 15:28:16","pcname":"localhost","distance":0.6444795727729797,"camera_name":"Front Door","age":70,"gender":0,"humanid":1544628486475,"stay_time":10}]}
●サーバからエッジへのレスポンス(JSON形式)
{"errno":0,"errmsg":"","data":"ok"}
上記の内容と同じ動作をする機能をMicrosoft Azure上に実装することにより、サーバをクラウドに移すことができる、ということになります。
クラウドサービスにサーバの機能を移植する(Microsoft Azure:Logic Apps)
Microsoft Azureクラウドサービスの提供するAzure Logic Appsを利用することにより、JSONリクエストをトリガーとした処理シーケンスを構築できます。
なお、Microsoft Azure上でサービスを設計するにはライセンスが必要となりますが、2018年現在は12ヶ月間の試用プランもあります。
まずAzureのダッシュボードを開き、新規リソースの作成、統合機能、Logic Appsを選択し、Logic Appsアプリケーションを作成します(図15)。
次に、トリガとなるJSONを登録します。Azure Logic Appsには、JSONパーサ(切り出し処理)を自動生成する機能があります。WireSharkで収集したJSONを貼るだけで、トリガーの解析処理が自動生成されます(図16)。
最後に、サービスがトリガーを検出した後、実行したいアクションを追加していきます。図17は、特にデータを処理しないでJSONレスポンスを返送する例です。
実際のアプリケーションでは、リクエストのフィールドにあわせて、統計データを更新するといったアクションを追加すると良いでしょう。
クラウドサービスは様々な機能を提供しているため、全てを理解することは難しいですが、近年はグラフィカルな設計インタフェースが提供されていることから、比較的馴染みやすくもあります。是非、チャレンジしてみてください。
クイック スタート: Azure Logic Apps を使用して自動化されたワークフローを初めて作成する – Azure Portal
まとめ
今回は「サーバと連携する組み込みAI」をテーマとして、サーバとの通信や、クラウドサービスとの連携、活用方法について紹介いたしました。
本年(2018年)の組み込みAI講座は、一旦ここまでとなりますが、2019年は、いよいよAPSマガジンでも「AI特集号」を発行する予定です。是非、ご期待ください!
VIA ALTA DS3
VIA ALTA DS3は、組み込みAIに最適な開発プラットフォームです。ファンレスの小さな筐体でありながら、CPUであるSnapDragon 820eを最大限に活かした高いコンピューティングパワーが特長の製品です。汎用的なI/Oを備えており、ソフトウェアはVIAからワンストップで入手できるため、簡単に使い始めることができます。
最新情報をメーカーサイトで見る Chip1Stopで購入する
VIA SOM-9X20
VIA SOM-9X20は、組み込みAI開発を簡単に立ち上げることのできる開発プラットフォームです。SOMとなるボードを中心に、OS、ソフトウェア、開発ツールをワンストップで入手できます。CPUには、Snapdragon 820eを採用。高性能なエッジコンピューティングデバイスとしてご利用いただけます。
最新情報をメーカーサイトで見る Chip1Stopで購入する Mouserで購入する
こちらも是非
“もっと見る” 組み込みAI編
組み込みAI×IoTを事例で学んでみよう!サーバと連携する顔認識アプリケーション
VIA ALTA DS3を使うことにより、組み込みAIとサーバを連携させたIoTソリューションを簡単に構築できます。今回は、実際のシステムの動きを見ながら、組み込みAIをIoTに活用する方法や、サーバと連携することの魅力を学びましょう。
AI初心者でも、簡単に使える開発環境を手順付きで紹介
今回は、VIA SOM-9X20上で動作する組み込みAIアプリケーションの開発手順を通して、簡単に使い始めることのできる組み込みAI開発環境を紹介いたします。はじめて組み込みAIを開発される方はもちろん、効率的な開発が実現できず困っている方も、是非ご活用ください。
組み込みAIによる顔認証・表情認識アプリを使ってみよう
顔認証・表情認識アプリケーションは、コンスーマ製品をはじめ、世界中で利用されているデジタルサイネージなどに搭載される、AIを象徴するアプリケーションのひとつです。こうしたアプリケーションには、情報を手元で解析する「エッジコンピューティング」が採用されています。