投稿日

簡単に顔認識モデルの作成ができるサンプルアルゴリズム Image Classification (Face) をリリースしました

こんにちは、Customer Reliability Engineer (CRE) の加納です。

電源をつなぐだけで通信するエッジAIカメラ「S+ Camera Basic」をご存知でしょうか?
このカメラデバイスは、お客様自身が開発されたアルゴリズムの実行はもちろんのことながら、機械学習による効果をいち早く体験・検証いただくことができる「サンプルアルゴリズム」も充実しています。

本日は、「顔認識」が可能となる新たなサンプルアルゴリズム Image Classification (Face) のリリースをご紹介します。このアルゴリズムは「カメラによる顔認識の有用性を、素早く検証したい確認したい方」に特におすすめです。

「アルゴリズム」について

ソラコムでは S+ Camera Basic やエッジプロセッシングサービス「SORACOM Mosaic」にインストールすることができるアプリケーションを「アルゴリズム」と称しており、本記事でもこれに従って記載しています。

S+ Camera Basic とは

S+ Camera Basic (サープラスカメラベーシック)はソラコムが開発、販売するネットワークカメラデバイスです。

SORACOM Air のセルラー通信を搭載しており、電源をつなぐだけで通信できます。また、カメラのマウントとしてGoPro®マウントを利用できるため、様々な場所に簡単に設置できます。

さらに、画像を撮影するだけではなく、デバイスにお客様が作成したアルゴリズムを遠隔からデプロイして動作させることができます。エッジ側で処理をすることにより、例えば以下のようなことが実現できます。

  • 画像加工によるプライバシー保護
  • 画像 -> 数値変換による通信量削減
  • クラウド側のワークロード削減

画像を用いた機械学習の課題「画像の調整」と「分類作業」と Image Classification (Face)の利点

画像を利用した機械学習は、学習させたい部分のみを切り出したり、色味を調整したりと、様々な調整や前処理が必要となります。また、学習対象の取捨選択やラベル付けと呼ばれる分類の作業にも専門性が必要とされてきました。

サンプルアルゴリズム「Image Classification (Face)」は、S+ Camera Basicで取得した画像から学習対象となる顔の切り出しを自動的に行います。その後、学習対象の取捨選択やラベル付けをWebブラウザを通じて行うことができ、S+ Camera Basic を用いた顔認識アプリケーションを迅速に構築いただけます。

サンプルアルゴリズム 「Image Classification (Face)」 の使い方

S+ Camera Basic に Image Classification (Face) をデプロイすると、学習用の顔画像の収集及び顔認識ができます。ここでは簡単に使い方をご紹介します。なお、詳細な利用手順についてはユーザードキュメント をご覧ください。

S+ Camera Basic にアルゴリズムをデプロイして学習用の顔画像を収集する

アルゴリズムのデプロイは SORACOM Mosaic から簡単に行えます。以下のようにアルゴリズムデプロイ用のダイアログから「Image Classification (Face)」を選択してボタンをクリックするだけで、S+ Camera Basic へのデプロイが完了します。(ちなみに、ソラコムでは「Image Classification (Face)」以外にも S+ Camera Basic 上で動作するサンプルアルゴリズムをご用意しており、同様に以下の画面からデプロイできます。サンプルアルゴリズムの一覧はこちらを参照ください。)

アルゴリズムのデプロイ後、S+ Camera Basic を学習させたい顔に向けると、顔画像が SORACOM のファイル保存サービスである SORACOM Harvest Files に送信されます。

S+ Camera Basic での撮影時には個人情報及びプライバシーに配慮し、被撮影者の同意を取得する等必要な措置をとってください。

Image Classification (Face) 専用のコンソールを使用して顔認識モデルの作成と学習を行う

Image Classification (Face) をより簡単にお使いいただけるよう、顔認識モデルの作成と学習を GUI で操作いただけるコンソールをご用意しています。コンソールへは SORACOM Mosaic からアクセスできます。

まず、「New model」をクリックして学習用の新しいモデルを作成します。

その後、モデル名を入力するとモデルの作成が数秒で完了し、S+ Camera Basic で収集した顔画像が 100 枚ずつ読み込まれます。読み込まれた顔画像はモデルにより人物ごとに分類されます。ただし、学習前のモデルのためこの段階では判定精度が悪く顔画像をうまく分類できません。例えば以下の画面に表示されている青枠の分類結果を見ると、異なる人物の顔写真が混ざっていることが分かります。

より判定精度を向上させるためにはモデルの分類結果を修正して学習させる必要があります。まず、分類結果を修正したい顔画像をクリックすると、該当の顔画像を「Create new person (新しいグループを作成)」「Move to Person X (既存のグループに移動)」「Ignore this face (学習対象から除外)」を選択できます。今回の顔画像は既存のグループにはないので「Create new person」を選択します。

そうすると、クリックした顔画像は同一人物と判定された他の顔画像と共に元のグループから消えて新しいグループが作成されます。

なお、「Ignore this face (学習対象から除外)」は、逆光で顔が暗くなってしまったりピンボケしていたりなど、うまく撮影されていない顔画像があった際に使用します。画質の悪い画像で学習してしまうと、モデルの精度が下がる可能性があるため、適宜ご利用ください。

上記の修正を繰り返し行うことで、モデルの学習ができます。モデルは顔画像と同様、Harvest Files の/face_detection_v1/models/ 下に <ランダムな文字列>-<作成したモデル名>.json という名前で保存されます。

修正が終わったら分類されたグループにラベルを付与します。ラベルは顔認識の判定結果として出力されますので、名前や社員番号など人物を識別する文字列にしてください。

S+ Camera Basic に顔認識モデルを反映させて判定結果を確認する

SORACOM Mosaic 上で以下のようにアルゴリズムのパラメータに Harvest Files 上のパスを入力して Apply ボタンをクリックするだけで、学習したモデルが S+ Camera Basic に反映されます。

モデルの反映後、顔画像を収集した時のように S+ Camera Basic を顔に向けると顔認識モデルによる判定が行われます。判定結果は SORACOM のオンラインストレージサービスである SORACOM Harvest Data に送信されます。

青枠の label に判定した人物のラベルが出力されます。上の画面では S+ Camera Basic に写った顔画像は jed であると判定されています。なお、学習した顔画像のどの人物にも該当しない場合は null と出力されます。

おわりに

いかがでしょうか?機械学習を利用したシステムというと身構えてしまう方も多いと思いますが、S+ Camera Basic とImage Classification (Face) をご利用いただくことで比較的簡単に顔認識モデルの作成とデバイスへの適用ができることを感じていただけていたら嬉しく思います。

Image Classification (Face)は S+ Camera Basic と SORACOM Mosaic にて、今日から無料でお使いいただくことができます。S+ Camera Basic ならびに SORACOM Mosaic 自体の利用料は別途必要となりますが、S+ Camera Basicは2020年11月にはお求めやすい新価格で提供を開始していますので、この機会にお試しください。

― ソラコム加納 (kanu)