PR

深層学習アルゴリズム
画像認識と異常検知を用意

 以下では、DIMoが用意する深層学習アルゴリズムとSensorBeeを使った処理の記述をそれぞれ説明してゆく。

 DIMoは、データの分析で必要となるアルゴリズムやツールを用途別のパッケージとしてまとめて提供しており、現時点ではコンピュータービジョンと異常検知のパッケージの2つがある。それぞれのパッケージで、利用できる深層学習アルゴリズムは異なっている。

画像認識向けは2種類

 コンピュータービジョン用パッケージでは、カメラから取得した映像データから特定の物体を検出するアルゴリズムと、検出した物体の属性を推定するアルゴリズムを提供している。物体検出のアルゴリズムは表示方法が2種類ある。検知した物体を矩形(bounding box)で囲んで示す方式と、画像中で物体が占める領域を画素単位で判別して塗りつぶすセグメンテーション方式である(図5)。属性推定のアルゴリズムは、例えば人を検出した場合に年齢や性別などを知りたいといった要求に応える。

図5 検出結果を2通りで表示
図5 検出結果を2通りで表示
コンピュータービジョンパッケージでは、検出した人物や物体の画像内での位置を、bounding box方式(a)とセグメンテーション方式(b)の2通りで表示できる。
[画像のクリックで拡大表示]

 いずれも具体的なアルゴリズムの詳細は開示していない。CNN(Convolutional Neural Network)などの一般的な構造を基に独自の工夫を盛り込んでいる。アルゴリズムは固定的でなく、最新の知見を定期的に盛り込み、業界最高水準の精度を保てるようにする。

GPUクラスターで学習

 これらのアルゴリズムの学習には教師あり学習を用いる。実現したい精度にもよるが、最低でも1000程度、精度を高めるためには数万~数十万の教師データが必要である。基本的に全てのデータにアノテーションを施す。なお、属性推定のアルゴリズムで複数の属性を検出したい場合も、同一のモデルを学習させる方法で対応できる。

 画像を対象にした深層学習は計算負荷が非常に大きく、実用的な時間で学習を終えるためにはGPUが必要である。場合によってはGPUを複数利用する。PFNはさくらインターネットが提供する「高火力コンピューティング」と呼ぶ多数のGPUから成る高速サーバー群(GPUクラスター)を利用しているが、学習には秘匿性の高いデータを使うことも多いため、ユーザー側が管理できるクラウド環境で学習したいという要望も少なくない。この要望に対応できる環境の整備を現在検討中である。

 学習済みのモデルをエッジ側で実行する際にもGPUが必要と考えている。例えば、米NVIDIA社の組み込みボード「Jetson TX1」程度の能力があった方がいいだろう。Jetson TX1を使った場合は、オンボードカメラもしくはUSBカメラから取得した1280×720の映像からの人物検出と1フレームあたり10人程度の年齢性別推定を、3フレーム/秒の速度で処理できる。GPUがない場合は、この速度が1/10未満になってもおかしくない。