Googleがスマホのカメラで手の動きを高精度でリアルタイムトラッキングする技術を開発

GoogleのAI開発チームは、コンピュータービジョンに関する国際会議のCVPR 2019において、リアルタイムで手の動きをトラッキングする機械学習システムを、Googleが提供するオープンソースフレームワークであるMediaPipeに実装すると発表しました。手や指の動きを追跡する既存のハンドトラッキングシステムは、高性能なデスクトップ環境に依存してきましたが、Googleは新たにスマートフォンのカメラでリアルタイムのトラッキングを可能にした上に、複数の手もトラッキングできると説明しています。

手の形や指の動きをトラッキングすることは、人々が画面の中で行うハンドジェスチャーや手話を理解することを可能にするため、さまざまな技術分野やプラットフォームにおいてユーザー体験を向上させることにつながります。手話やジェスチャーをコンピューターが読み取ることで、拡張現実の世界に手話の翻訳やジェスチャーの意味を表示させることができる可能性があるとのこと。

しかし、人間は自然に人の手の形や指の動きを目で見て識別できますが、コンピューターにとっては難しいタスクであるそうです。手はしばしば握りこぶしや握手などを形作り、それまで見えていた指を隠してしまうことがあります。また、手は人の顔のように目や鼻、口といったコントラストの違う部分があるわけではないため、部分ごとの識別も比較的難しいとGoogle AIのブログで解説されています。

そこでGoogle AIの開発チームは、機械学習を使った複数のモデルを組み合わせることで、困難な手や指のトラッキングシステムを構築したとのこと。Googleのシステムに使われている機械学習モデルが以下の3つ。

・手のひらの方向と境界を識別する「手のひら検出器モデル(BlazePalm)」
・手のひら検出器モデルによってトリミングされた領域で、精度の高い手の3Dキーポイントを返す「手の目印モデル」
・手の目印モデルが検出したキーポイントをジェスチャの個別セットに分類する「ジェスチャー識別モデル」

これらのモデルを組み合わせることで、Googleは効率的な手や指のリアルタイムトラッキングを可能にしました。最初にトラッキングするべき手のひらを画像の中から正確にトリミングすることで、その後のモデルが使用するデータ量が大幅に削減され、座標予測などの精度向上にコンピューターのリソースを割くことができるとGoogle AIチームは述べています。

手のひら検出器モデルのBlazePalmは、画像全体においてさまざまな大きさに変化する手を検出できる上に、握りこぶしを作ったり握手したりすることで指などのパターンが消失した手も検出できなければなりません。また、顔のように目や鼻といった明確なコントラストを持つ部位がないため、BlazePalmでは腕や体といった追加のコンテキストを利用し、正確な手の位置を特定しているとのこと。Google AIチームは、BlazePalmが95.7%の精度で手のひらを検出できると主張しました。

次に動作する手の目印モデルでは、手の領域を付け根・関節などの21座標に分解し、それぞれの正確な3D座標を返すことができます。機械学習による訓練で、部分的にしか見えない部位や握りこぶしなどについても正確に座標を取得できるとのこと。なお、Google AIチームは検出精度を上げるため、現実世界の画像の上にレンダリングされた高品質の合成手モデルを組み合わせているそうです。

続いて、手の3D座標をもとにして、ジェスチャー識別モデルが適合するジェスチャーを導き出します。各指の状態は関節の累積角度によって曲がっている、あるいは真っ直ぐ伸びているといった状態が決められ、定義済みのジェスチャーセットに適合するものがあるかどうかをマッピングするとのこと。Google AIチームは記事作成時点でアメリカ、ヨーロッパ、中国などの複数の文化からハンドジェスチャーのセットを作成しており、「サムズアップ」「握りこぶし」「OKサイン」「コルナ(ロックンロール)」「ピースサイン」などを識別できるようになっています。以下の画像をクリックすると、目まぐるしく変わるハンドジェスチャーを機械学習モデルが識別する様子が見られます(上のGIFムービーは約6.9MB、下のGIFムービーは約5.7MB)。

今回Google AIチームが開発した機械学習モデルは、Googleが提供する機械学習による画像検出などに利用可能なオープンソースフレームワーク「MediaPipe」に実装され、開発者は自由にアプリなどにハンドトラッキングシステムを利用できるとのこと。Googleは今後もハンドトラッキング機能を堅牢で安全な方法で拡張していく予定としており、研究者や開発者コミュニティの創造的なアイデアやアプリケーションに刺激を与えることで、いったい何が開発されるのかを楽しみにしていると述べました。