DeepLens Family Assistant

インスピレーション

DeepLens がチャレンジすべきものについて考えたところ、すぐに決まりました。困っている人々をアシストできるものを作りたいのです。人と人を結びつけることにテクノロジーを使いたかったのです。テクノロジーのためにテクノロジーを使うことは避けたいと思いました。DeepLens デバイスを応用できるアプリケーションを数多く検討しましたが、顔識別機能は人の識別が難しい人たちの支援には非常に有用であることがわかりました。認知症と診断された人たち (つまり、患者) は、友人はもちろん家族すら認識することが難しく、愛する人たちと話すときに混乱に陥ってしまうことがあります。

内容

私たちのアプリケーションは、記憶障害を抱える患者が愛する人たちを忘れないようにサポートします。このアプリケーションで設定した DeepLens デバイスのカメラは、アシスタントとして機能できます。カメラは視界に捉えた家族や友人を識別し、簡潔なプロフィール紹介付きで名前を音声で読み上げます。これは記憶障害を抱える人たちが点と点を結ぶ手助けになります。

家族や友人の短い情報付きの写真を事前設定し、データストアにアップロードします。写真のアップロードは患者の家族ならだれでも可能で、アプリケーションのシンプルなウェブ UI を使用して行います。

DeepLens デバイスのカメラとアプリケーションは、患者が家庭で記憶力を訓練する場合にも使用できます。記憶力の訓練によって記憶障害の進行を遅らせられることが、研究で明らかになっています。患者は、スマートフォンに保存された家族や友人の写真をカメラに対して提示します。写真が認識されると、名前が人物紹介とともに音声で読み上げられます。こうした機能は医師やケアスタッフも使用できます。

手法

DeepLens とともに提供されたデフォルトの顔検出モデルのほか、Elastic Beanstalk、Rekognition、Polly、Lambda、S3 といった AWS のサービスがアプリケーションの構築に使用されました。

UI: Elastic Beanstalk を使用してシンプルかつユーザーフレンドリーなウェブアプリケーションを作成し、家族や友人の写真のマスターを人物紹介付きでアップロードできるようにしました。人物紹介には人物の短い情報を盛り込んで、患者がつながりを思い出せるようにします。情報はすべてマスター S3 バケットに保存されます。

機械学習モデル: DeepLens とともに提供されたデフォルトの顔検出モデルは、アプリケーション内でもそのままの形で使用されます。このモデルに関連付けられた Lambda 関数は、デバイス上の Greengrass サービス内で実行され、イメージフレームを S3 バケットにアップロードして音声を再生するようカスタマイズされています。

顔認識: デバイスがキャプチャしたフレームによってアップロードされた顔を、AWS Rekognition サービスを使用して認識します。

テキスト読み上げ: AWS Polly の SynthesizeSpeech 機能を使用して、友人についてのユーザーの記憶を音声ファイルに転換し、ユーザーにインタラクティブに働きかけます。

エンドツーエンドフロー: S3 バケットと Lambda 関数を使用してすべてを非同期的に結びつけ、エンドツーエンドフローを作り出します。S3 バケットに届いたイメージフレームが Lambda 関数をトリガーし、AWS Rekognition に接続して人を識別させます。マスター S3 バケットに保存されているその人の情報が取得され、AWS Polly を使用して音声が合成されます。読み上げ音声がオーディオ S3 バケットに届くと、デバイス上で実行中の Lambda 関数が受け取って、再生します。

課題

課題のほとんどは DeepLens デバイスに関するものです。フォーラムや Slack チャンネルでの問い合わせに辛抱強く対応してくれた AWS チームには感謝しています。Office Hours は実に役立ちました。ほぼ一対一形式でエキスパートによるサポートを受けられ、具体的な問題を解決できました。デバイス関連の課題は次のようなものがありました。

  • デバイス登録 - デフォルト URL が Wi-Fi サブネットとクラッシュするといった問題があり、デバイスのセットアップに複数回の試行が必要でした。
  • 音声再生 - デバイスから音声が再生されるエンドツーエンドフローを構築するのには、AWS チームと、一緒に参加した仲間からの多くの助けを必要としました。成功への大きなステップとなったのは、各プロジェクトのデプロイメントに関して group.json ファイルの手動変更、および ggc_user にアクセス可能な Python Boto モジュールのセットアップの 2 点です。

成果

困っている人を助けるものを作れて本当にうれしいです。このアプリケーションとソリューションは、記憶障害を抱える人たちが社交性を高めて家族や友人の輪に加わるのに貢献するでしょう。アプリケーションがユーザーに提供するツールは、ユーザーが単独で使用することができます。

教訓

  1. Rekognition、Polly といった複数の AWS のサービスを上手く活用しながら作業できたことです。
  2. さらに、DeepLens デバイスの設定、そのデバイスをセットアップしたうえで機械学習モデルの実行、推論に対するアクションの拡張といったことも学びました。

DeepLens Family Assistant の次のステップ

  1. Family Assistant アプリケーションを、インターネット接続またはクラウドへの接続なしに実行することです。これには、SageMaker および MXNet を使用して顔を識別するカスタム顔検出機械学習モデルを作成する必要があります。このモデルをデバイスにアップロードすれば、デバイスだけで顔認識推論を実行できるようになります。これが実現すると、デバイスの小型化というメジャーアップグレードになるでしょう。基本アプローチと Lambda コードは現行の DeepLens デバイスや、「真の伴侶」として機能可能などんな類似デバイスでも再利用できるようになるでしょう。
  2. 顔認識、および顔に一致する人物の紹介音声の再生におけるエンドツーエンドパフォーマンスの改善も課題です。これには #1 が非常に役立つでしょう。
  3. デバイスを特定の患者と家族に関連付ける保証も必要です。

以下を使用しました:

アマゾン ウェブ サービス
Lambda
S3
Python
Rekognition
DeepLens
Polly