Safie Engineers' Blog!

Safieのエンジニアが書くブログです

クラウドカメラ映像のAI認識Webアプリ

セーフィー株式会社 プラットフォーム開発部のソフトウェアエンジニア 鈴木敦志です。 セーフィーでは動画データの利活用を進めるため 顔認識来店分析サービス Safie Visitors などAI技術を活用したサービスの開発を行っております。

画像認識AI応用サービスを開発するには、一般的な用途 (顔認識や物体検知など) に対応する学習済みのAIモデルを使用するか、あるいは特定の用途 (不良品検知など) のために自前でAIモデルの構築・運用を行う必要があります。 一方で、「ドアが開いているか知りたい」「商品が陳列されているかを知りたい」などの簡単なタスクについては、既存の学習済みディープラーニングモデルを利用した転移学習とk近傍法などの単純な分類アルゴリズムを用いることで、数枚の教師画像を選択するだけで非常に簡単にAIによる画像分析を利用することができます。

参考: 20190928 M5StickVではじめる軽量モデルの実世界への応用 #TFUG - ミクミンP (@ksasao)

本記事ではSafieカメラのライブストリーミング映像を用いてAIモデル作成、リアルタイム画像分類を行うWebアプリケーションを実装しました。

f:id:safie:20200625091711g:plain

Safie AI画像分類 [alpha] について

使い方

Webブラウザで「Safie AI画像分類 [alpha]」にアクセスし、Safieのユーザーアカウントでログインします。

一覧からカメラを選択、 画像のクラス(「ドアが合いている」「閉じている」等)を作成し、「例を追加」ボタンで現在のカメラ画像を教師データとして追加します。

現在のカメラ画像がどのクラスに分類されるかをAIがリアルタイムで判定し、該当するクラスがハイライト表示されます。

システム構成

f:id:safie:20200624192523j:plain

Safie AI画像分類 [alpha] は Nuxt.js で実装されたWebアプリケーションです。

Safieクラウド に接続されたカメラ映像をHLSでストリーミング再生し、TensorFlow.js で各フレームの推論をWebGL経由でGPUを駆動して行います。

分類アルゴリズムにk近傍法を用いており、教師データの学習は指定されたフレームの画像データを追加するだけで完了します。今回は人がいる場合といない場合の3枚ずつ、計6枚を使用したのみとなっています。

推論アルゴリズム

f:id:safie:20200624192624j:plain

推論アルゴリズムには画像からの特徴抽出にMobileNetV1を使用し、特徴量からの分類をk近傍法を使用します。

MobileNetはディープラーニングによる画像の分類・オブジェクト検出などに使用されるモデルで、モバイル端末などでの用途のため計算負荷が小さいのが特徴です。 今回は転移学習を用い、1,000クラスの分類タスクを行う学習済みMobileNet V1モデルの畳み込み層を特徴抽出器として利用し、得られた特徴ベクトルをk近傍法の入力とします。

k近傍法は基本的な機械学習アルゴリズムで、入力ベクトルに最も近い (ユークリッド距離) k個の教師データを探索し、そのうち最も数が多いクラスに入力を分類します。 k近傍法ではより複雑なアルゴリズムに比べ精度は劣りますが、少ない教師データで動作し (k=1のとき各クラスごと画像一枚から) 教師データの追加が簡単になります。

参考: 画像分類器の転移学習 | TensorFlow.js

今後の展望

  今回は技術デモとして、ブラウザ上でのみ動作する非常に単純な構成で実装を行いました。

この構成は簡単な認識タスクを行うことを前提にしているためブラウザ上だけの実行のみでは実用的ではないのですが、Safieクラウド上でのモデルの共有・認識のスケジュール実行・通知などを組み合わせることで非常に簡単にAIシステムを構築することができるようになるのではないかと思います。

セーフィーでは先述の顔認識来店分析サービスなどのほかにもいくつかのAI関連のサービスを開発しており、カメラの接続および動画の収集・保管といったAI画像解析系サービスの開発時に手間のかかる部分にSafieクラウドのインフラを使用することができます。 また、外部の開発者がSafieクラウド上にこういった分析サービス等を開発できるような仕組みを整備していく予定です。

弊社ではこれらの技術に関心があり、新しいサービスを一緒につくっていただけるエンジニアを募集しています。

www.wantedly.com

© Safie Inc.