face recognition with AI

出席者管理のための顔認識アルゴリズムの開発

Tokyo Techies 学生研究プロジェクト

スマート出欠アプリケーションにおける顔認識技術の使用

Tokyo Techies 学生グループによる研究

研究アドバイザー:フォン・グエン – データサイエンス及びAIテクノロジー責任者

 


抄録

私たちは、出欠確認のプロセスをより効率化するために、Smart出欠アプリケーションで顔認識技術を使用することを提案します。マニュアル点呼のような従来の方法は、非効率的で時間がかかるものです。しかし、顔認識技術の適用により、出欠確認が自動化かつ目立たなくなり、従来よりも洗練されたものになります。本研究論文では、顔認識モジュールとしてOpenFaceを用いたオープンソース出欠確認プログラムを紹介します。機械学習アプローチを使用して、個々の被験者の顔の固有の特徴から人の名前を識別するための分類モデルを構築します。実験では、50人の被験者を使ったテストで、顔認識モジュールの精度が96.2%であることを検証しました。この結果は、学校/組織等の少数ユーザーにとっては許容範囲内です。これは、教室内の点呼を自動化して管理を改善する為に実装が可能です。

キーワード

スマート出欠アプリケーション、顔認識技術、自動点呼

謝辞

このプロジェクトに協力してくれたTokyo Academisのスタッフと学生に感謝します。


  1. 序論学校での点呼や、職場でのタイムカードで見受けられるような出席確認は面倒ですが必要不可欠なものです。出席確認の過程での主な問題は、費用対効果が高いけれども、時間的に極端に非効率的であるということです。キーカードや指紋などの他の方法では、より効率的な出席、出勤記録が可能ですが、指紋認証機は高価であり、キーカードは紛失してしまう可能性があります。これは、従来の方法に代わる出欠確認方法の必要性を浮き彫りにしており、紛失の可能性がなく、しかも安価なものが求められています。顔認識技術は過去数年間において急速に発展しました。機械の計算能力、ならびに人工ニューラルネットワークのアルゴリズムの進歩は、顔認識を信頼性のある技術とするまで発達した今、これを出欠確認システムの代替解決策の1つとして使用する事が可能となりました。顔認識を使用することによって、我々は、費用対効果があり効率的な出席確認のための新しいアプリケーションを作成しました。これは現在の出欠確認をアップグレードとするものと言えます。本研究論文では、Smart出欠アプリケーションにおける顔認識技術の活用方法を紹介します。私たちのオープンソースコードはhttps://github.com/xphongvn/smart-attendance-system-taで入手可能であり、他の開発者が再利用し改善する為に役立てることができます。以下、本稿は次のように構成されています。まず、顔認識技術とSmart出欠システムに関連する作業の概要を説明します。第二に、システム全体に顔認識モジュールを適用するための方法を提示。 第三に、顔認識モジュールの精度を検証するための実験方法を説明します。そして結果とその結果についての議論をします。最後に、このシステムについて結論を出します。
  2. 関連研究Facefirst [1]やOpenFace [2]のような既存の顔認識ソフトウェアがあります。 Facefirstには顔認識ソフトウェアの機能がありますが、主に監視と写真の撮影にフォーカスしています。これは顔認識のアプリケーションではあるのですが、私たちの望んでいる機能ではありません。なぜなら出欠確認を取る機能を備えていないのです[1]。他にはOpenFaceなどのプログラムもあります。OpenFaceは顔を認識し、そこで得る顔の造作の特徴を使用可能なデータへと変換します。したがって、名前を分類してこの情報を出欠システムに使用することはありえません。OpenFaceのオープンソースコードを活用することによって、OpenFaceのリソースを利用したスマート出欠確認アプリケーションをそのソースコード上で構築することができた事により、出欠確認可能な顔認識プログラムという結果に結びつきました。別の研究では、出席確認のためのスマートフォンシステムとしてBluetooth Low Emissions(BLE)が使用されました。これを教室内で実施するにあたり、BLEエミッターの信号を減衰させる障害が教室内に存在する事によって問題が生じる為、読み取りを不正確なものとします。また、このシステムでは、学生は高価なBluetooth対応のスマートフォンを所有する必要もあります。
  3. アプローチと方法論
    a) データ収集
    トレーニングデータを準備するために、さまざまな被験者の顔の写真のサンプルを収集する必要があります。これらのサンプル写真は、実験前にラップトップコンピューターのウェブカメラでユーザーによって撮影されました。これらのサンプル写真はその後OpenFace APIに保管され、各被写体の名前のついたフォルダーに保存されます。これらの写真はSVM分類モデルを構築するために使用され、分類に使用されるラベルとして各人物の名前が使用されています。
    b) 顔認識モデルの構築   機械学習フレームワークを使用して分類モデルを構築。このモデルの目的は、コーネル大学の「人間に可能な顔面認識能力を超える」の中で人間レベルの精度として示唆される97.53%という数字を達成することでした[4]。人の顔の生画像データから、OpenFaceが提供するニューラルネットワークを使用してそれを特徴ベクトルに変換する。特徴ベクトルを使用して、人物の名前を識別するためのサポートベクターマシーン(SVM)分類モデルが構築された[3]。その流れは図1にて説明。プログラムの実装部分を使用することで、システムはカメラのフレーム内のすべての入力を取り込み、顔を識別しようとします。2つの目の内側および唇底部を目印とし、正しく範囲が認識された場合、カメラ内で顔が識別されます。それから私たちのシステムは顔の他のすべての目印を一致させて、以前に保存されたデータ(以前に撮られた写真のサンプル)とそれを比較します。私たちのシステムはそれから128の文字列を作り、それらを以前に保存されたデータと比較し、128の文字列の新旧セット間の一致比率が信頼比率と名前として返されます。
    図1Smart 出欠アプリケーションのトレーニングと実装のフローチャートc) アプリケーション人の建物への出入りを認識するために、2つのカメラを使用します。1つは入口方向を向いているもの、もう1つは出口方向を向いているものです(図2)。システムは出入りする人を識別し、次にその名前を処理プログラムに送って出席をマークします。このシステムは、出席を確認される必要がある学生と、出欠を確認する側の管理職員によって使用されます。また、学生が特定されると、到着時刻と教室を去った時刻、および出席記録が残ります(図3)。同時に、生徒の両親に電子メールが送信され、生徒が出欠状況、到着時刻と教室を去った時刻が通知されます。

    図2:Smart出欠システムの設定 エリアを出入りする人々を識別するカメラを使用facial recognition demo

    図3 Smart出欠システムのユーザーインターフェース
    d)実験設定 実験は日本のチュータースクールであるTokyo Academicsで2週間に渡って行われました(週末2回含む)。この実験は、顔認識モジュールの精度を検証するためのものです。合計50人の被験者を含む実験を行いました。開始2週間前に、各被験者は顔データ収集プログラムで10枚の写真を撮りました。それらの写真はユーザーの顔の複数の特徴データを含むユーザープロファイルとなります。実験者の写真を10枚撮るのにそれほど時間がかかる事はなく、許容範囲内でした。トレーニング用の写真が多ければ多いほど、よりよいモデルを構築できます。収集した写真とその名前を使用して、SVM分類モデルを構築しました。また、同じSVM分類モデルで精度をテストしました。 2週間にわたって、各被験者はカメラの前を10回通りました。公正な条件下でシステムの正確さをテストするために、照明、カメラのレベル、そして歩行速度を一定に保ちました。システムによって出力された人物の名前が画像の上に表示されるように、顔認識モジュールを設定します。図4は、モジュールがイメージとその上に名前を表示する方法の例を示しています。顔認識モジュールの正確さを検証するために、(人物の名前とシステム出力上の名前が同じ事を前提に)​​認識に成功した数を主要な測定基準として数えます。顔認識モジュールの正確さは私達のSmart出欠システムの信頼性を決定づけるものです。

    facial recognition with AI
    図4:顔認識モジュールは新しい入力画像に基づいて人名を出力します
  4. 結果概要行われた500の試験のうち481が認証に成功し、19が誤認識となりました。これにより、精度は約96.2%、誤差は3.8%となります。つまり、TAに来校した100人の学生のうち約4人が何らかの形で誤認識されるということです。 TAの場合、これが影響する人々の数を考慮すると、許容誤差範囲内です。これらの結果を従業員数10万人以上の特定の会社に当てはめると、誤認識される人が少なくとも3,800人いる事になります。また、SVM分類器は小規模の団体またはこの規模の企業でしかうまく機能しません。多数の従業員を抱える企業では大きな問題を引き起こすでしょう。より大規模な環境でこのシステムを使用するには改善が必要となります。
  5. 考察と結論私達のSmart出欠システムでは、顔認識モジュール96.2%の正確さを達成しました。ただし、SVM分類器は少数の団体でしかうまく機能しないため、この実験を大規模に実施する事はありませんでした。我々の将来の目標は、分類数を改善し、顔認識モジュールの精度を改善して、より大規模な場で実用化することです。これが現実世界のアプリケーションとして効果的に使用されるには、識別する必要のある人数がそれほど多くない、小規模の中学または高校など、比較的小規模な環境で使用する必要があることを意味します。不具合が起こった際に、教師によって簡単に修正できる事が必要となります。より大規模な環境でこのシステムを使用するには、プログラムが推測事項の確信度を示す率を提供するなどの改善が必須です。これはつまり、確信度が低い場合に、プログラムが名前を知らせる代わりに、再確認するよう警告を出す事ができるようにするものです。現状では、登録されていない人物がこのプログラム上で認識された場合、たとえ顔とほとんど一致しないとしても、それを識別して名前を付けるようになっており、正確性を損なう可能性があります。前述したように、私達のSVM分類器は少数の団体においてのみ機能するため、大規模な環境での処理能力に限りがあり、最適化するには分類のタイプを変更する必要があります。さらに、97.53%の精度を求めていたにもかかわらず、96.2%という結果になったように、精度のパーセンテージは我々の目標よりもわずかに低くなっています。しかしながら、たとえ我々のモデルが人間のレベルよりもわずかに劣っていても、このモデルが非常に効果的で、従来の出欠確認方法よりも効率的であると言えるでしょう。最後に、信頼度を上げ、モデルの開発と顔認識に使用する項目を変更するなどの改善により、97.53%の精度という目標を超えることができると確信しています。

引用文献

[1] Face Recognition Software: Best-in-Class Enterprise Facial Recognition Security Platform. (n.d.). Retrieved September 20, 2017, from https://www.facefirst.com/

[2] Amos, B., Ludwiczuk, B., & Satyanarayanan, M. (2016). Openface: A general-purpose face recognition library with mobile applications. CMU School of Computer Science.

[3]Steinwart, Ingo. Support Vector Machines. S.l.: Springer., n.d. Print.

[4] Lu, C., & Tang, X. (2015, January). Surpassing Human-Level Face Verification Performance on LFW with GaussianFace. In AAAI (pp. 3811-3819).

[5]Chun, S., Kwak, M., Park, M., & Kwon, T. (2017, September 19). An Automatic Attendance Checking System using Smartphones: An Infrastructureless Approach. Retrieved September 20, 2017.

© 2020 Tokyo Techies. All rights reserved.