手の動きを追跡するGoogleのアルゴリズムで手話を認識できるか

次の記事

Spotifyにペアレンタルコントロールが追加される

手話でコミュニケーションをとっている人は大勢いるが、手話の複雑な動きをとらえて音声言語に翻訳する取り組みはあまり成功していなかった。しかしGoogleのAIラボが研究しているリアルタイムのハンドトラッキングが進歩し、翻訳を待ち望んでいる人々にとってはこれが突破口になるかもしれない。

この新しい技術では巧みに効率化を図っている。そしてもちろん機械学習全般の効率が上がったこともあり、スマートフォンのカメラだけで手のひらとすべての指のマップをリアルタイムで正確に作成することができる。

Googleの研究者のValentin Bazarevsky(バレンティン・バザレヴスキ)氏とFan Zhang(ファン・チャン)氏はブログに次のように書いている。「現在の最先端のアプローチでは主にパワフルなデスクトップ環境に頼って推論しているが、私たちの方法では携帯電話でリアルタイムのパフォーマンスを出している。また複数の手にスケールすることもできる。手をリアルタイムで確実に認識するのは、コンピュータビジョンのタスクとしては明らかに難しい。手の一部、あるいは2つの手が重なり(指と手のひらが重なる、握手をするなど)、高コントラストのパターンでなくなることが多いからだ」。

しかも手の動きは速く、微妙だ。こうした動きをリアルタイムでとらえるのは、コンピュータは得意でない。正しく認識するのはとても難しく、速く認識するのも難しい。複数のカメラを使っても、SignAllのような深度を検知する装置で動きをすべて追跡することはなかなかできない(しかしこの方式を止めるわけではない)。

Googleの研究チームの目標は、一部だけを取り出して言えば、アルゴリズムが計算するのに必要なデータの量を減らすことだった。データが少なくなれば、動作は速くなる。

そのひとつとして、研究チームはシステムに手全体の位置と大きさを検知させるアイデアを捨てた。その代わりに、システムに手のひらだけを見つけさせる。手のひらは特徴的で信頼性の高いパーツであり、しかも正方形として認識できる。つまりシステムが縦長の長方形のイメージを扱えるのか、縦方向が短い場合はどうかなどと気にする必要がなくなった。

手のひらを認識したら、指はその手のひらの端から延びているものであり、別々のものとして解析できる。別のアルゴリズムがイメージを見て、21カ所に座標を割り当てる。大まかには指の関節と指先に座標が割り当てられ、座標間の距離も認識される(手のひらの大きさと角度などから推測できる)。

このように指を認識するために、研究チームはまず手作業でさまざまなポーズとライティングの約3万の手のイメージに21個のポイントを割り当て、機械学習システムはこれを使って学習した。いつだって、AIがうまく動作するには人間のハードワークが必要なのだ。

手のポーズが判定されたら、そのポーズを既知の大量のジェスチャーと比較する。既知のジェスチャーとは、文字や数字の一つひとつを表す指文字や、「平和」「金属」といった単語を表す手のポーズのことだ。

このハンドトラッキングのアルゴリズムは速く正確で、最適化されたデスクトップやクラウドではなく(クラウドは最適化された誰かのデスクトップだ)、一般的なスマートフォンで動作する。このアルゴリズムはすべて、マルチメディア技術系の人はおそらくご存じのMediaPipeフレームワークで動作する。

幸いなことに、ほかの研究者もこのシステムを利用できる。このように手を認識してジェスチャーを識別するには、既存のシステムでは強力なハードウェアが必要だが、この状況がおそらく改善されるだろう。しかし手話を本当に理解するのは、ここからが長い道のりだ。手話では、手、顔の表情、その他の手がかりから、ほかにはない豊かなコミュニケーションができる。

この技術はGoogleの製品にはまだ使われていないので、研究チームは無償で公開している。ソースコードはここにあり、誰でも入手して使える。

研究チームは「この手認識機能を公開することにより、多くの研究開発コミュニティからクリエイティブな利用例や刺激的な新しいアプリ、新しい研究手法が生まれるよう期待している」と書いている。

[原文へ]

(翻訳:Kaori Koyama)