最終更新日:
ディープラーニングを用いた視線推定
こんにちは。スキルアップAIの下山です。私は現在、ディープラーニングを用いた視線推定(gaze estimation)の研究に取り組んでいます。
視線推定はコンピュータビジョンの一分野です。コンピュータビジョンと聞くとMNISTの分類問題や、GANによる画像の生成などを思い浮かべる人が多いのではないでしょうか。視線推定とは簡単に言うと人の顔の画像からその人の視線方向を予測するタスクであり、基礎的な側面と応用の側面の両面での面白さがあります。そこで本ブログでは、視線推定という分野についてお話していきます。この記事を通じて、視線推定という分野に少しでも興味を持っていただけたら幸いです。
1.視線推定とは
先ほど述べた通り、視線推定は画像から視線を推定するタスクです。推定される視線は2次元の座標もしくは3次元のベクトルで表現されます。見ている場所の座標を推定することを2次元視線推定(2D gaze estimation)、視線の方向を表す3次元ベクトルを推定することを3次元視線推定(3D gaze estimation)といいます。
図1にディープラーニングを用いた視線推定の流れの一例を示します。2次元視線推定では、例えば、ある人がPCの画面を見ているような状況において画面のどこを見ているのかを推定し、それを2次元の座標で表現します。画面のどこを見ているのかを精度良く推定できれば、ウェブ画面の改善などに役立てることができると考えられます。
3次元視線推定では、ある人がどの方向を見ているのかを推定し、それを3次元のベクトルで表現します。見ている方向を精度良く推定できればロボットと人が目でコミュニケーションをうまくとれるようになるでしょう。
2次元視線推定、3次元視線推定のどちらにおいても、入力としては2次元形式の顔画像もしくは3次元形式の顔のデータが与えられます。
図1. ディープラーニングを用いた視線推定の流れの一例
(参考文献[1]より引用)
2.視線推定の手法と現状
視線推定の手法は、大きく分けると、以下のように分類されます。
model-based | appearance-based | |
person-specific | 人ごとに最適化、目の幾何学モデルから推定 | 人ごとに最適化、顔や目の画像から推定 |
person-independent | 誰にでも使える、目の幾何学モデルから推定 | 誰にでも使える、顔や目の画像から推定 |
これまでは、目を幾何学的にモデル化し視線を推定するアプローチ(model-basedと呼ばれる)がとられていました。この方法では、角膜の反射や虹彩なども考慮する必要があり、低解像度の画像からそのような条件を考慮することは難しく、model-basedな方法では高い精度を達成することが難しいと考えられていました。
そんな中、視線推定の分野にもディープラーニングが取り入れられ始めました。2015年にZhangら[2]によってCNNを用いて顔の画像から直接視線を推定する手法(appearance-basedと呼ばれる)が提案されました。図2にその手法の概要を示します。この手法では従来のmodel-basedな手法に比べ、それほど高画質な入力画像が要求されないという利点があり、様々なデータを用いることができるようになりました。
図2. 最初に提案されたCNNベースの手法
(参考文献[2]より引用)
また視線推定の手法にはperson-specificとperson-independentという2つの分類があります。
- person-specific:ある特定の人物の視線を推定するためにその人物に合わせて最適化する手法
- person-independent:一度学習すれば再学習等を行わなくても誰に対しても同じように推定できることを目指す手法
これまでは主にperson-independentな手法が研究されてきましたが、最近では少ないデータでも学習がしやすいことからperson-specificな手法も研究されるようになってきています。今のディープラーニングの技術を持ってすれば、person-independentな手法も実現できそうに思われますが、それには大量のデータを用意する必要があります。視線推定というタスクでは、画像だけ先に用意して後から正解ラベル(視線方向)をつけるということが難しいため、視線推定用のデータを作るところから始めなければならず、大量にデータを用意するのは現実的ではありません。
こういった理由から最近ではperson-specificな手法も提案されるようになってきているのですが、もちろんこれらの手法においては、ある1人の人物のデータをたくさん用意して、その人の画像だけで学習するというやり方はしません。ここで登場するのはfew-shot learningという考え方です。few-shot learningとは、あらかじめ学習済みモデルを用意しておき、最適化したい対象に関するデータを少量用いて学習済みモデルを再学習する手法のことです。few-shot learningを用いた視線推定では汎用的なデータセットを用いて学習した後、視線を推定したい人物のアノテーション付きの画像を数枚(5枚程度)だけ用いてその人物に合わせて最適化します。
視線推定用の代表的なデータセットして、MPIIGaze[2]とGazeCapture[4]があります。 MPIIGazeは15人に関する計約21万枚の画像を含むデータセットで、GazeCaptureは1450人に関する計約250万枚の画像を含むデータセットです。参考までに、GANによる顔画像の生成などで用いられるCelebAというデータセットは約1万人の画像を含んでおり、これに比べると視線推定のデータセットは多様性に欠けるということが言え、これは今後の課題です。
3.今後の展望
person-independentな手法の実現を目指す研究や、person-specificでより精度の高いものを目指す研究などが今後の研究の主流になっていくと考えられますが、どちらにおいても顔の画像から視線に関する特徴をいかに上手く捉えるかということが大きな課題です。 これに関し、2019年、Parkら[3]によって面白い手法が提案されました。それは、視線の方向をずらしながら画像を再構成するように自己符号化器(autoencoder)を学習させることで、潜在ベクトルにおいて視線に関する特徴を明示的に分離し(disentanglingという)、これを特徴量として視線推定器を学習するというものです。図3に、視線方向をずらしながら再構成された目の画像を示します。このような視線に関する特徴を捉えるための新しい手法についても、今後の重要な研究テーマとなるでしょう。
図3 .視線方向をずらしながら再構成された目の画像
(参考文献[3]より引用)
4.もっと詳しく学びたい方へ
図1と図2で紹介した視線推定の方法は、どちらもCNNをベースとしています。CNNの仕組みや実装方法にご興味のある方は、ぜひ現場で使えるディープラーニング基礎講座をご検討ください。
また、スキルアップAIでは毎週水曜日に実践的AI勉強会「スキルアップAIキャンプ」を開催しています。勉強会では、様々な実践的テーマを取り上げ、データ分析・AI開発の実務力アップにつながるヒントをご提供します。講師が参加者の皆さんからの質問や悩みに答えるコーナーもあります。
興味がある方はぜひ参加してみてください!
5.参考文献
[2] ZHANG, Xucong, et al.. Appearance-based gaze estimation in the wild. In: Proceedings of the IEEE conference on computer vision and pattern recognition. 2015. p. 4511-4520.
[3] ARK, Seonwook, et al.. Few-shot adaptive gaze estimation. In: Proceedings of the IEEE International Conference on Computer Vision. 2019. p. 9368-9377.
[4] KRAFKA, Kyle, et al.. Eye tracking for everyone. In: Proceedings of the IEEE conference on computer vision and pattern recognition. 2016. p. 2176-2184.
【監修】スキルアップAI 取締役CTO 小縣信也
AI指導実績は国内トップクラス。「太陽光発電発電量予測および異常検知」など、多数のAI開発案件を手掛けている。日本ディープラーニング協会主催2018E資格試験 優秀賞受賞、2019#1E資格試験優秀賞受賞。著書「徹底攻略ディープラーニングE資格エンジニア問題集」(インプレス)。
配信を希望される方はこちら
また、SNSでも様々なコンテンツをお届けしています。興味を持った方は是非チェックしてください♪
公開日: