組み込みAI×IoTを事例で学んでみよう!サーバと連携する顔認識アプリケーション

VIA ALTA DS3を使うことにより、組み込みAIとサーバを連携させたIoTソリューションを簡単に構築できます。今回は、実際のシステムの動きを見ながら、組み込みAIをIoTに活用する方法や、サーバと連携することの魅力を学びましょう。

VIA ALTA DS3:組み込みAI開発プラットフォーム

▼目次

組み込みAIとサーバを連携させることの魅力

現在、組み込みAIとクラウド(サーバ)を連携させた、AI×IoTのサービスが注目されています。エッジだけでなくサーバを利用することにより、リモートからの高度な解析や、稼働中のサービスの設定更新、ユーザフレンドリーなインタフェースの採用など、IoT時代と呼ぶにふさわしいサービス展開が期待されます。

おさらい:組み込みAIの魅力とは

組み込みAIを活用したエッジノードは、大量のデータを手元で処理できるため、データヘビーなアプリケーションであっても、高いレスポンス性を実現できます。また、エッジ上で有用なデータのみを抽出(フィルタリング)できるため、エッジとサーバ間で発生する通信量を最適化することができます。通信料金も削減できますし、広域に敷設された無線ネットワーク(LTE等)にも対応できるでしょう。

詳細は第3回をご参照ください。

サーバと連携する魅力とは(IoTの魅力とは)

サーバを利用するメリットは数多くあります。以下に一例を挙げます。これらは、IoT(Internet-of-Things:モノのインターネット)時代のサービスが目指しているメリットでもあります。

  • スマートフォンなど、使いやすい端末(インタフェース)を統合できる
  • 大規模なデータベースを活用できる
  • 運用中にデータベースを簡単に更新できる
  • サービスを止めることなく不具合を修正できる
  • エッジの状態を見える化できる
  • いつでも統計情報を生成できる

図
図1:エッジのみのシステムと、エッジとサーバが連携するシステム

ゼロからの開発が難しいIoTソリューション

エッジとサーバを連携させるIoTソリューションをゼロから開発しようとすると、非常に大きな工数が発生します。こうしたシステムは、多数のコンポーネントから構成されているため、それぞれの動作検証や接続検証、トラブルシューティングが必要となります。工数の一例を以下に挙げます。

  • サーバのAPI設計、データベース設計の検証
  • サーバとエッジ間のプロトコルの検証(サーバ上プログラムの検証)
  • エッジをネットワークに接続するための仕様検討
  • サーバをネットワークに接続するための仕様検討
  • ネットワーク品質や帯域の検証
  • エッジ上で実行するプログラムの検証
  • スマートフォン用プログラムの設計・開発
  • スマートフォンとサーバとの連携機能を検証

こうした工数の増加を未然に防ぐには、サンプルアプリケーションの有効活用が効果的です。最初にサンプルアプリケーションを実行し、改変を加えて目的となるシステムへ近づけていくことにより、確実に開発を進めることができます。そのため、IoTのソリューションやサービスを開発する第一歩は、サンプルアプリケーションが提供されており、エッジからサーバまですべての動作を簡単に確認できるプラットフォームを選択することでしょう。

サンプルアプリケーションの紹介

今回は、組み込みAIとサーバを連携させたIoTソリューションとして、サーバと連携する顔認識アプリケーションを紹介いたします。システム構成を以下に示します。

このアプリケーションでは、エッジ上のプログラム(図2:VIA FACE)にて、IPカメラ(ネットワークカメラ)が撮影した動画から、人を抽出。性別、年齢、表情の推定を行います。

また、VIA FACEはネットワークを通してサーバ上に登録された顔画像を含んだ顔認証用データベースにアクセスすることにより、人物を特定します。サーバ上のデータベース(図2:VIP/ブラックリスト)は、Android端末(図2:顔登録端末)から更新できます。

サーバは性別、年齢、表情といった統計情報も集計しています。集計した内容はVIA FACEから参照できます。

図
図2:サンプルアプリケーションの構成

実際の動作は、紹介動画をご参照ください。

図
図3:サンプルアプリケーション実行の様子

利用する機材

システムを構成するハードウェアを下表に示します。主要なコンポーネントは、エッジノード、サーバ、Android端末です。

ハードウェア 用途 備考
VIA ALTA DS3 エッジノード(顔認証実行部) Android8.0、HDMIディスプレイを2台接続
VIA ARTiGO A1250 サーバ(顔認証用データベースの管理) Windows7
Android端末 顔画像の登録用端末 Android6.0
Wi-Fiルータ 各コンポーネント間の通信用 無線+有線
IPカメラ 撮影用(エッジノードと通信) PoEスイッチから給電、HD画質

これらのハードウェア上で実行するソフトウェア(各機能)は、VIAのサポート窓口を通じて入手できます。ソフトウェアのインストール手順は次回紹介いたします。具体的なサービスの構想をお持ちの場合は、ハードウェアの入手とあわせて相談することもオススメです。

VIA ALTA DS3(エッジノード)

本システムでは、エッジノードとしてVIA ALTA DS3を利用しています。

VIA ALTA DS3はSnapDragon 820eをメインとする、組み込みAI開発プラットフォームです(図4)。SnapDragon内蔵GPUの性能を、VIAの提供するライブラリ型AI(第3回を参照)が引き出すことにより、エッジノード上で高速に組み込みAIを実行することができます。第3回と第4回にて紹介したSOM-9X20と同じプロセッサを搭載した製品です。これらの違いは、VIA ALTA DS3はパッケージングされているため導入しやすく、SOM-9X20はボード形状のためアドバンスドな設計がしやすい製品であることです(図5)。

VIA ALTA DS3:組み込みAI開発プラットフォーム

図
図4:VIA ALTA DS3の特徴

図
図5:VIA ALTA DS3(左)とVIA SOM-9X20(右)

なお、顔認識の入力となるカメラとしてはIPカメラを、表示にはHDMIディスプレイを利用しました。

VIA ARTiGO A1250(サーバ)

本システムでは、サーバとしてVIA ARTiGO A1250を利用しています。

VIA ARTiGO A1250は、簡単にサーバを構築できるPCです。小さくパッケージングされたA5サイズ以下の小さい筐体(177mm(W) x 30mm(H) x 125mm(D))が特徴です。Windowsの各種バージョンや有名Linuxディストリビューションをサポートしているため、これまでの開発資産や、オープンソースとして無償で配布されている様々な資産を利用することができます。

VIA ARTiGO A1250:小型フォームファクタPC

Android端末

識別する顔画像をサーバへ登録するため、Android端末を利用しました。端末で撮影した画像をサーバにアップロードし、認証用のデータベースを更新しています。手軽にデータベースと連携できることも、サーバを利用するメリットです。

エッジコンピューティングによる通信量の最適化

本システムでは、エッジ側で動画から顔部分を抽出、認証に必要となる有用な情報のみをサーバへ送信し、顔認証システムを実現しています。ここでは、エッジコンピューティングによるメリットのひとつである、通信量の最適化の効果を紹介いたします。

エッジ側のデータ量(IPカメラとALTA DS3間)と、エッジとサーバ間の通信量を比較したデータを図6に示します。

図
図6:エッジ側のデータ量と、エッジとサーバ間の通信量

IPカメラからは、約1451Byte x 7592Packetのデータが生成されますが(図7)、

図
図7:エッジ側での通信の詳細

エッジとサーバ間の通信量は、約150Byte x 93Packetのみとなっています(図8)。

図
図8:エッジとサーバ間での通信の詳細

このように、IPカメラは常に動画データ(838KB/s)を生成し続けますが、顔認証の通信量は極めてわずかな通信(1KB/s)へと最適化されています(図9)。なんと、98.9%の通信量削減に成功しています。1KB/sの通信帯域であれば、LTEなどの広域回線でも安定して通信できますし、通信料金も安価となるでしょう。

これが、IoTにおける、エッジコンピューティングの魅力です。エッジ上で実行するプログラムに組み込みAIを活用することにより、より最適なデータ抽出を実現できます。

図
図9:サンプルアプリケーションにおける通信量

まとめ

今回は、組み込みAIを活用したエッジノードをサーバと連携させたサンプルアプリケーションを例に、IoTソリューションのメリットや、設計する上での課題を紹介しました。次回は、今回紹介したサンプルアプリケーションを構築する方法について紹介いたします。お楽しみに!

用語解説:データウェアハウス

データをサーバ上に収集、新しい価値の創造に活用するシステムを「データウェアハウス」と呼びます。まさに、ビッグデータを活用するための第一歩です。

参考:データウェアハウスとは?(アマゾン・ウェブ・サービス)