目次
Snapdragon 820eで顔認証・表情認識
顔認証・表情認識アプリケーションは、コンスーマ製品をはじめ、世界中で利用されているデジタルサイネージなどに搭載される、AIを象徴するアプリケーションのひとつです。こうしたアプリケーションには、情報を手元で解析する「エッジコンピューティング」が採用されています。ネットワークの影響を受けることのないエッジコンピューティングは、たとえ動画のような大きなデータであってもリアルタイムに解析できます。
VIAは、これら組み込みAIに最適なエッジコンピューティング用ボードをSOM(System-On-Module)として提供しています。今回は、SOMによって実現できるAIアプリケーションの例と、その利用方法を紹介いたします。AIアプリケーションの使い方マニュアルとしても、お役立てください。
VIA SOM-9X20(後述)の実力を、組み込みAIによる顔認証・表情認識のサンプル・アプリケーションを冒頭の動画でご紹介しました。4K映像の中から、顔を抽出し、男女推定、年齢推定、個人の特定をリアルタイムに解析、4Kディスプレイに出力します。まさにサイネージなどに最適なハードウェアと言えるでしょう。また、全ての処理がエッジデバイス上で完結していることから、ネットワークやサーバを必要としないことも、大きな魅力です。
Snapdragon 820eを搭載したSOM
VIA SOM-9X20は、小型で高性能なエッジコンピューティング用ボードです。そのまま製品に組み込むことのできる高い品質はもとより、手軽さと使いやすさが特長となっています。必要なハードウェアとソフトウェアをすべてワンストップで入手できるため、簡単に製品開発を始めることができます。
メインのSoCにはSnapdragon 820eを採用。内蔵GPUは、AI処理や3D/2Dグラフィクス処理など、高い演算性能を求めるアプリケーションの実行に最適です。Snapdragon 820eは、産業用途向けデバイスのため、長期供給が保証された安心の産業向けAIアプリケーション実行環境です。
ハードウェアの構成(サンプルアプリケーション)
SOM-9X20はPC互換のインタフェースを搭載しているため、HDMIディスプレイ、USBマウス、USBキーボードを簡単に接続できます。今回のデモでは、下記のハードウェア構成を利用しています。MIPI接続の4Kカメラにより室内を撮影、認識結果をHDMIにて4Kディスプレイへと出力。MIPI接続カメラにはVIA Edge AI Developer Kitに同梱されている「VT6093-CAM-T」を利用しました。操作用には、市販のUSBキーボードとUSBマウスを接続しています。
SOM-9X20の開封から、アプリケーション実行までの手順
SOM-9X20の魅力は、ハードウェアの特長だけでなく、使いやすい開発環境一式を簡単に入手できることもポイントです。SOM-9X20の開発環境の構築から、OSの準備、アプリケーションのインストールと実行までの流れを紹介いたします。
開発用PCを準備する
開発用PCとしてLinux PCが必要となります。ここでは、Ubuntu 16.04 LTS(ubuntu-16.04.5-desktop-amd64.iso)をインストールしたノートPCを開発用PCとした手順を掲載しています。
開発ツールをダウンロードする
まず、Linux上のWebブラウザで、開発ツールをダウンロードします。Androidを含むBSP(Boot-Support-Package)と、Android用アプリケーション開発ツールであるEVKを、VIA SOM-9X20のWebページから入手しましょう。2018年9月現在、最新のBSP v2.1.4にはEVKも同梱されているため、本手順はBSPのzipファイルを中心に進めた手順となります。最新のバージョンに対応する手順は、zip内Documents以下のPDFのマニュアルをご参照ください。
- Android 8.0 BSP v2.1.4
- Android 8.0 EVK v2.1.4
ZIPアーカイブを解凍する
開発用PCにダウンロードしたzipアーカイブを解凍し、内容を確認しましょう。
$ cd ~/ $ ls SOM-9X20_Android_8.0_BSP_V2.1.4_20180831.zip $ unzip SOM-9X20_Android_8.0_BSP_V2.1.4_20180831 $ cd ~/SOM-9X20_Android_8.0_BSP_V2.1.4_20180831
以下2つのファイルが含まれています。
- Firmware/VT6093_Android8.0_EVK_v2.1.4_180608.tgz
- Sourcecode/VT6093_Android8.0_BSP_v2.1.4_180608.tgz
開発に必要なパッケージをインストールする
次に、Linux上でBSP/EVKを利用するために必要なパッケージをインストールします。
●BSP用:リポジトリから必要なツールをダウンロード
$ sudo add-apt-repository ppa:openjdk-r/ppa $ sudo apt-get update $ sudo apt-get install openjdk-8-jdk $ sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1gdev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip
●BSP用:GoogleAPIレポジトリへの接続を準備する
$ mkdir ~/bin $ PATH=~/bin:$PATH $ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo $ chmod a+x ~/bin/repo $ sudo apt-get install git $ git config --global user.name “Your Name” $ git confit --global user.email “you@example.com”
●EVK用:リポジトリから必要なツールをダウンロード
$ sudo apt-get install android-tools-adb $ sudo apt-get install android-tools-fastboot
●環境変数を設定
$ export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64 $ export CLASSPATH=.:$JAVA_HOME/bin $ export PATH=$CLASSPATH:$PATH
以上で、開発用PCが準備できました。
Android8.0をビルドする
それでは、VIA SOM-9X20用Android8.0をビルドしていきましょう。VT6093_Android8.0_BSP_v2.1.4_180608.tgzを使います。
●Android OSビルド用tgzファイルを展開し、スクリプトへ実行属性を追加
$ cd ~/SOM-9X20_Android_8.0_BSP_V2.1.4_20180831 $ cd ./Sourcecode $ tar -zxvf ./VT6093_Android8.0_BSP_v2.1.4_180608.tgz $ cd ./BSP/Software/Android $ chmod a+x ./download_sync_build.sh
●Android OSのビルドを開始します。初回のビルドはCore i3-7100UのノートPCで8時間程かかりました。
$ ./download_sync_build.sh vt6093_8.0.0 yes yes … ===================================================== ====== Build BSP Done - otapackage ================== ===================================================== Notes: Below commands can be used to build the source cd /home/ins/SOM-9X20_Android_8.0_BSP_V2.1.4_20180831/Sourcecode/BSP/Software/Android/vt6093_8.0.0_release source build/envsetup.sh lunch vt6093-userdebug make -j4
ビルド完了メッセージの後、Android OSのバイナリファイルとして、下記のimgファイルが生成されます。
$ ls ./vt6093_8.0.0_release/out/target/product/vt6093/ boot.img cache.img recovery.img system.img userdata.img system.img vendor.img
SOMにAndroid8.0をインストールする
続いて、VIA SOM-9X20へAndroid OSをインストールしましょう。VT6093_Android8.0_EVK_v2.1.4_180608.tgzを使います。
●EVKのtgzファイルを展開し、スクリプトへ実行属性を追加
$ cd ~/SOM-9X20_Android_8.0_BSP_V2.1.4_20180831 $ cd ./Firmware $ tar -zxvf ./VT6093_Android8.0_EVK_v2.1.4_180608.tgz $ cd ./EVK/FirmwareInstall/ $ cp bspinst/fastboot_bspinst_ufs.sh . -rfv $ chmod +x fastboot_bspinst_ufs.sh
OSイメージを作業ディレクトリにコピーする
OSイメージを、bspinstディレクトリへコピーします。
$ cp ~/SOM-9X20_Android_8.0_BSP_V2.1.4_20180831/Sourcecode/vt6093_8.0.0_release/out/target/product/vt6093/*.img bspinst/ -rfv
SOMと開発用PCを接続し、インストールモードで起動する
SOMの電源をOFFにした後に、背面のブートモード選択スイッチ(BOOT1)にて 「UFSモード[OFF,OFF,ON,OFF]」 を選択します。
SOMのMicro USB 2.0 OTGコネクタと、開発用PCを、Micro USBケーブル(別売)で接続します。
SOMのVolume Downボタンを押したまま、Powerボタンを押してSOMの電源を投入し、以下のようにVIAのロゴが表示されたら両方のボタンを離します。この状態がOSインストールモードです。SOMが開発用PCからの操作を待っている状態です。
開発用PCとSOMの接続は、開発用PC上の「dmesg」や「fastboot」コマンドを使って確認できます。
●dmesgコマンドで表示できるSOMの接続情報
$ sudo dmesg -c [66724.112486] usb 1-3: new high-speed USB device number 9 using xhci_hcd [66724.277813] usb 1-3: unable to get BOS descriptor [66724.278448] usb 1-3: New USB device found, idVendor=18d1, idProduct=d00d [66724.278453] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [66724.278457] usb 1-3: Product: Android [66724.278461] usb 1-3: Manufacturer: Google [66724.278464] usb 1-3: SerialNumber: 19db0efa
●fastbootコマンドで表示できるSOMの接続情報
$ sudo fastboot devices 19db0efa fastboot
開発用PC上でAndroidのインストールを実行します。完了すると、SOMのHDMIにAndroidのデスクトップ画面が表示されます。
$ sudo ./fastboot_bspinst_ufs … finished. total time: 0.018s rebooting... finished. total time: 0.064s $
これでAndroidのインストールは完了となります。
アプリケーションをインストールする
最後に、apk(Android-application-PacKage)形式にコンパイル済みの、顔認証・表情認証アプリケーションをインストールします。ソースコードからのコンパイル手順は、次回以降に紹介いたします。USBメモリに下記のファイルを格納し、SOMのUSBポートへ接続します。File BrowserでUSBメモリを開き、インストール対象のapkファイル2個をクリック、Installを選択しインストールします。
- VIAFace_1.0.08.0830-J.apk
- config_app_v3.0_apk
顔認証アプリケーションの設定
VIA Secure ID Configアプリケーションを開き、顔認証の設定を行います。UPDATEボタンで設定を保存します。
フィールド | 設定内容 | 設定値 |
---|---|---|
Camera | カメラの選択 | Camera2 |
ID | 顔認証 | ON |
最小 | Cameraとの距離 [10-60] | 10 |
閾値 | 人物判定閾値 | 0.6 |
Emotion | 表情認識 | ON |
Age | 世代推定 | ON |
Gender | 男女推定 | ON |
Socket comm | 顔認識時間[ms] | 1000 |
GroupSet | 顔認証登録グループ | DefaultGroup |
組み込みAIアプリケーションを実行する
以上で、全ての準備が整いました。VIA Secure IDを実行すると顔認証・表情認識が開始されます。是非、SOMの実力をお試しください!
様々なAIアプリケーションをSOMで実行してみよう
このように、VIAのSOMを使うことで、簡単に、品質の高いAI実行環境を構築できます。汎用PCで課題となるハードウェア選定作業や、対応OSや個々のハードウェアドライバを探す作業がないため、より早く製品開発に着手できることもVIAのSOMならではの魅力です。
今回は、顔認証・表情認識アプリケーションを実行する手順を紹介しました。次回は、実際にアプリケーションを開発する方法を紹介いたします。今回の手順とあわせて、是非お手元でお試しください。
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編
プログラミング不要!?たった30分で構築できる、組み込みAIアプリ
今回は「サーバと連携する顔認証アプリケーション(第5回)」のセットアップ方法を紹介いたします。本記事の要点は、VIA ALTA DS3のように「組み込みAIにより顔認証ができるデバイス」を活用することにより、組み込みAI×IoTのシステムも、お馴染みのサーバ・クライアント型システムと同じように簡単に構築できる、ということです。
組み込みAI×IoTを事例で学んでみよう!サーバと連携する顔認識アプリケーション
VIA ALTA DS3を使うことにより、組み込みAIとサーバを連携させたIoTソリューションを簡単に構築できます。今回は、実際のシステムの動きを見ながら、組み込みAIをIoTに活用する方法や、サーバと連携することの魅力を学びましょう。
AI初心者でも、簡単に使える開発環境を手順付きで紹介
今回は、VIA SOM-9X20上で動作する組み込みAIアプリケーションの開発手順を通して、簡単に使い始めることのできる組み込みAI開発環境を紹介いたします。はじめて組み込みAIを開発される方はもちろん、効率的な開発が実現できず困っている方も、是非ご活用ください。