コンピュータビジョンのアルゴリズムを使うためには、ニューラルネットワークのアーキテクチャに関わる専門知識が求められ、開発者にとって難易度が高い。
マイクロソフトとクアルコムは、コンピュータビジョンのためのAIモデルのトレーニングと実装を簡単にするため「Vision AI Developer Kit」を共同開発した。開発者は、マクロソフトのAzure上でモデルをトレーニングし、クアルコムのAIアクセラレータを搭載したスマートカメラに実装することができる。
ここではそのVision AI Developer Kitの概要を解説する。
ハードウェア
Vision AI Developer Kitは外見が洗練されているだけでなく、構成も優れている。
Vision AI Developer Kitはクアルコムの「Snapdragon 603」を搭載し、4GBのLDDR4Xメモリと16GBのeMMCストレージを装備している。カメラセンサーは8メガピクセルで4K UHD画像の撮影が可能だ。また、4つのマイクアレイとスピーカーにより、音声インターフェースを構築することができる。
内蔵バッテリーの容量は1550mAHあり、デバイスを携帯利用することができる。充電ソケットはUSB-TypeCで、標準的な充電器を使うことが可能だ。また、PoEに対応しているため、産業向けスマートカメラとして使うこともできる。
デバイスはWi-Fi、Bluetooth、HDMIに対応しており、正面のLEDが接続状況を示す。
Vision AI Development Kitは、クアルコムのIoTデバイス向けプラットフォーム「Vision Intelligence 300 Platform」をベースにしており、カメラ処理のソフトウェアやハードウェアによるアクセラレータ、機械学習とコンピュータビジョンのSDKが含まれる。
ソフトウェア
Vision AI Development Kitは、組込み/IoTデバイスに用いられるLinux OS「Yocto」を採用している。マイクロソフトは、デバイス管理とリモート設定を行うため、Yoctoの上に「Azure IoT Edge Runtime」と「Azure IoT Edge Hub」を追加した。
Azure IoT Edgeは、Azure IoT Hub上に構築されており、IoTデバイスの管理と通信を実現する。ユーザーは、このスタックを使うことでエッジデバイスのライフサイクル管理を効率的に行うことができる。
Azure IoT EdgeはDockerに依存しているが、Yoctoは公式的にはDockerエンジンやOCIに準拠したコンテナランタイムに対応していない。このため、マイクロソフトとクアルコムは協力してYoctoにコンテナランタイムのサポートを追加した。
デバイスは、立ち上がってすぐにAzure IoT Hubに接続し、設定されたAIモデルを実行する。カメラは、ブート時にMobileNet SSD V1による物体検出を行う。カメラのアウトプットは、HDMIポートに接続されたディスプレイで視聴することができる。