人間はさまざまな手段を使用して感情を表現します。ジェスチャー、ボディーランゲージ、声の調子など。しかし、主な方法はもちろん、顔の表情です。非言語的コミュニケーションの柱の1つを構成する所有者の心の状態。私たちはそれぞれ、最初に目を開けてからそのようなパターン(基本的には直感的な行動分析)を認識することを学び、最終的にはそれが2番目の性質になります。
AI(特にニューラルネットワーク)も学習できることがわかったため、「人間の感情を解釈することを学ぶことができますか?」という避けられない質問をする必要があります。さらに、私たちよりも速く学習することはできますか?答えは間違いなくそうですが、先ほど述べたように、表情は感情を示す唯一の方法ではないため、顔だけを分析しても100%正確な結果を得ることができません。

バージョン18.11.21の時点で、eiROKUにはObject Detectorと連携して動作するモジュールFace Detector(Emotions)含まれています顔の画像をチェックし、7つの手段を使用して、各顔の全体的な心の状態を測定しようとします。

  • ハッピー
  • びっくりした
  • 怒っている
  • 嫌悪
  • 恐れ
  • 悲しい
  • 中性

これらはそれぞれ、さまざまな程度で検出された顔に現れ、その程度に基づいてパーセンテージ(0-100)が割り当てられます。上記の7つのスコアのうち、最も高いパーセンテージが支配的な状態(Mood)として受け入れられます。ただし、すべての計算は画面に表示されるため、低いパーセンテージも表示されます。ここではいくつかの例を示します。

気分はニュートラルとして検出されましたが、悲しみのヒントも検出器の注意を逃しませんでした(23%)。

気分は驚きとして識別されています2番目に高いスコアは、Afraid(23%)から得られることに注意してください。これら2つの感情状態の表情には多くの共通点があるため、これは非常に一般的です。ただし、検出器は違いを観察できます。

前に気づいたかもしれませんが、顔の下に感情認識を表示するパラメーターには、名前もあります。これは、現在フレーム内にある各顔に割り当てられている番号です(0から始まります)。ここには2つの面があるため、0と1の番号が付けられています。正確な測定値を取得するために、完全な面も必ずしも必要ではありません。気分は明らかにハッピーで、本当の挑戦ではありません。
これはやや複雑なケースです。

髪は顔の楕円形を部分的に覆い隠し、顔の髪も存在します。フレームには、顔と同じ色を持ち、その一部(手)ではない近接したオブジェクトが含まれます。それでも、検出器の評決は驚きです。

次に、モジュールの設定を詳しく見てみましょう。

日本語化されています。
日本語化されています。

検出にアーカイブストリーム(高解像度)を使用する -プレビューストリームの代わりに検出器がアーカイブストリームを分析できるようにします(これが異なる理由です)。
Postrecordは -検出器が反応を停止した後、アーカイブが記録を保持する期間を示します。
顔認識の範囲 -実際のカメラから顔までの距離を設定します。基本的に、顔が小さいほど、スライダーが高くなります。

すべてのReact-boxは、モジュールの真の機能が始まる場所です。各感情には別々のボックスがありますが、それらは一緒にカウントされます。コンピューターロジックに精通している場合は、論理AND(または接続詞)で接続されたチェックボックスを表示できます。そうでない場合は、次のように機能します。

  • 感情が1つだけ選択されている場合-検出器はその感情のみに反応し、他のすべての感情を無視します。
  • 2つの感情が選択されている場合-検出器はこれらの感情の両方を示す顔にのみ反応します。
  • 2つの感情が選択されている場合-検出器は、選択された感情の1つだけを表す顔に反応しません

これらの各ボックスをオンにすると、反応する最小および最大の割合を調整する2つのスライダーが表示されます。これは例によって最もよく説明されます:

日本語化されています。
日本語化されています。

ここでは、感情認識は中立性と悲しみのみをチェックします。顔の中立性は57%です(40%〜100%に適合)。悲しみは19%(15%から100%の間に収まる)です。したがって、検出器はスキップされ、両方の条件が満たされます。

日本語化されています。
日本語化されています。

ここで、検出器は3つの感情を探します:怒り、嫌悪、悲しみ。顔の怒りは61%です(50%〜100%に適合)。嫌悪感は4%(15%から100%の間に収まらない); 悲しみは23%(20%から100%の間に収まる)です。したがって、3つの条件のうち2つだけが満たされているため(怒りと悲しみ)、検出器はスキップしません。

このロジックは、感情の任意の組み合わせで機能します。ただし、良い結果が得られない可能性のあるものがいくつかあります。

  1. 反対の感情を同時に探します。たとえば、幸福と怒りは単一の顔にはほとんど現れないので、両方のボックスがチェックされている場合、モジュールはまったく反応しません。
  2. すべての感情を同時に探します。人間の顔のように表現力がありますが、表現できるものには限界があります。顔は7つの感情すべてを同時に示すことはできないため、すべてのボックスをオンにすると、モジュールが何かに反応することも防止されます。

カメラ画像内の指定された量の顔にのみ反応する -検出器が反応するためにフレームに必要な顔の数(最小および最大)を示します。
認識された顔の総数から選択された感情の指定された割合にのみ反応します。これにより、モジュールはより統計指向になります。要件に適合する; そのパーセンテージが設定したスライダーに適合する場合、検出器が反応します。要するに、現在フレームにいる人の何人が幸せか悲しいかなどを示すことができます。このようなデータは、行動分析にとって最も重要です。
検出結果を処理するための外部プログラムへのフルパス–これは統合目的で存在します。検出器の検出結果を保存および管理するスクリプトまたはデータベースを作成し、スクリプト/データベースを開くプログラムへのパスをこのボックスに配置できます(Python、PHPなど)
外部プログラムの起動用パラメーター –前のボックスと連動します。ここで、実際のスクリプト/データベース(my_script.py、emotion_database.phpなど)へのパスを配置し、マクロを使用して渡すパラメーターをeiROKUに指示します。外部プログラムの起動に関する情報でこれらのパラメーターのリスト全体を確認できます
外部プログラムの起動間隔–スクリプト/データベースを使用できる頻度を設定します。1つの顔がフレーム内にしばらく残ることがあるため、その情報を数回送信する必要がない場合があるため、この間隔を長く設定できます。
データをCSVレポートに保存 -指定したディレクトリにファイルを作成し、将来の(または即時の)分析のために検出器のすべての反応を記録します。

感情認識の可能なアプリケーションは非常に多様です:群衆制御、交通安全、統計収集、そしてもちろん小売マーケティング。群衆制御の観点から見ると、怒りや恐れのある措置の割合が高い多数の顔は、戦いや騒動の指標として役立ちます。車内:ドライバーの感情状態を常に監視するシステムは、道路の激怒を防ぐための心を落ち着かせる要素として、また車輪で眠りにつくことに対する予防策として役立ちます。統計とマーケティングは密接に関連しています:特定の商品を観察しながらクライアントがポジティブな感情を表現する頻度を知ることにより、マーケティング担当者はそのポジションが適切に選択されているか(目を引く)か、それがクライアントのクライアントにとって潜在的で関連性があるかどうかを示すことができます選択されたターゲットオーディエンス。これは特に新しい商品にとって価値があります。

言うまでもなく、ニューラルネットワークと行動分析の組み合わせは最先端のテクノロジーであり、信じられないほどのペースで成長し、洗練されることが期待されています。この傾向をフォローし、この研究の成果をお届けできることを楽しみにしています。

2018年12月24日