手話解読アプリの要素技術(1)

受託開発で進めている手話解読アプリを構築する上での核となるアイデアを紹介します。

手話を構成する要素としては、表情や口の動き等も欠かせない要素ではありますが、手の位置、手の形、手の動きが最も主要な要素と言えます。そしてこの3つの要素で表される手話最小単位(ここでは「手話トークン」と呼びます)が時間的にどのような順番で現れるかで、単語として、さらには文章としての意味を構成していると考えることができます。手話解読アプリを開発するにあたり、上述の流れを時間的に遡っていく方法で必要な要素技術を定義していくこととします。

  • 単語や文章を表現する最小単位を把握し「手話トークン」とする。
  • 手話動画から手話トークンに対応する動画を収集する。(手話から切り出していく)
  • 手話トークン動画に対して両手の特徴点座標(片手21点、両手42点)を取得する。(手の形とての位置を表すデータ)
  • 数フレーム分の上記特徴点座標データを1まとまりとしたデータをインプットとし、アウトプットを手話トークンとして機械学習する。
  • 機械学習したモデルをスマホに組み込み、リアルタイムで手話トークン検出する。
  • 検出された手話トークンの順番を元に単語や文章を解読する。

今回以降のTopicsで具体的な解説を行っていきたいと思いますが、まずは手話と手話トークンの関係を表す動画をご覧ください。

  • バックグラウンド:両手が胸より下にあって動きがほとんどない状態(ラベル0)
  • 遷移状態:手話トークンと手話トークンの間の遷移状態(ラベル1)
  • 「初めて」:初めての意味を持つ動作。手話トークン(ラベル2)
  • 「会う」:会うの意味を持つ動作。手話トークン(ラベル3)
  • 「初めて」→「会う」が検出されたので、「初めまして」が表現されたと解読。

このような考え方で手話解読を実現していきます。これ以降のTopicsでは技術的な解説をしていきますが、開発上最も重要で労力が必要なのは、良質な手話動画の入手、適切な手話トークンの設定、手話トークンに対応する動画の切り出し、といった手話そのものの理解に関わる部分となります。ご協力いただける方がいらっしゃいましたら、ご連絡をお待ちしております。