(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024162431
(43)【公開日】2024-11-21
(54)【発明の名称】学習モデル生成プログラム、情報処理装置及び学習モデル生成方法
(51)【国際特許分類】
G06T 7/00 20170101AFI20241114BHJP
G06T 7/70 20170101ALI20241114BHJP
【FI】
G06T7/00 350B
G06T7/70 B
G06T7/00 660A
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2023077924
(22)【出願日】2023-05-10
【新規性喪失の例外の表示】特許法第30条第2項適用申請有り (1)令和4年7月20日に第25回 画像の認識・理解シンポジウム(MIRU2022)の予稿集にて発表。 (2)令和4年7月27日に第25回 画像の認識・理解シンポジウム(MIRU2022)にて発表。 (3)令和4年10月21日にパターン認識・メディア理解研究会(PRMU)にて発表。
(71)【出願人】
【識別番号】504137912
【氏名又は名称】国立大学法人 東京大学
(74)【代理人】
【識別番号】110003421
【氏名又は名称】弁理士法人フィールズ国際特許事務所
(72)【発明者】
【氏名】菅野 裕介
(72)【発明者】
【氏名】久留 陽一郎
(72)【発明者】
【氏名】呉 天一
(72)【発明者】
【氏名】秦 嘉偉
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096BA02
5L096CA02
5L096DA02
5L096EA16
5L096EA26
5L096FA26
5L096FA32
5L096FA62
5L096FA67
5L096FA69
5L096KA04
(57)【要約】
【課題】視線推定に用いる学習モデルの汎化性能を向上させることを可能とする学習モデル生成プログラム、情報処理装置及び学習モデル生成方法を提供する。
【解決手段】第1カメラによって人物の頭部を撮影した第1対象画像データと、第2カメラによって人物の頭部を撮影した第1参照画像データとから、第1カメラについて正規化処理が行われた第1仮想カメラと第2カメラについて正規化処理が行われた第2仮想カメラとの間における相対的な回転角度に対応する第1回転行列を特定し、第1対象画像データと、第1参照画像データと、第1回転行列と、人物の視線方向を示す第1視線情報とを含む教師データを生成し、生成した教師データを学習することによって学習モデルを生成する。
【選択図】
図5
【特許請求の範囲】
【請求項1】
第1カメラによって人物の頭部を撮影した第1対象画像データと、第2カメラによって前記頭部を撮影した第1参照画像データとから、前記第1カメラについて正規化処理が行われた第1仮想カメラと前記第2カメラについて正規化処理が行われた第2仮想カメラとの間における相対的な回転角度に対応する第1回転行列を特定し、
前記第1対象画像データと、前記第1参照画像データと、前記第1回転行列と、前記人物の視線方向を示す第1視線情報とを含む教師データを生成し、
生成した前記教師データを学習することによって学習モデルを生成する、
処理をコンピュータに実行させることを特徴とする学習モデル生成プログラム。
【請求項2】
請求項1において、
第3カメラによって前記頭部を撮影した第2対象画像データと、第4カメラによって前記頭部を撮影した第2参照画像データとから、前記第3カメラについて正規化処理が行われた第3仮想カメラと前記第4カメラについて正規化処理が行われた第4仮想カメラとの間における相対的な回転角度に対応する第2回転行列とを算出し、
前記第2対象画像データと、前記第2参照画像データと、前記第2回転行列とを前記学習モデルに入力し、
前記学習モデルから出力された第2視線情報を取得し、
取得した前記第2視線情報を出力する、
ことを特徴とする学習モデル生成プログラム。
【請求項3】
請求項2において、
前記学習モデルは、第1対象モジュールと、第2対象モジュールと、第3対象モジュールと、第4対象モジュールと、第1参照モジュールと、第2参照モジュールと、第3参照モジュールと、第4参照モジュールと、を有し、
前記第1対象モジュールは、前記第2対象画像データに映る前記頭部に対応する第1対象特徴量を抽出し、
前記第1参照モジュールは、前記第2参照画像データに映る前記頭部に対応する第1参照特徴量を抽出し、
前記第2対象モジュールは、前記第1対象モジュールによって抽出された前記第1対象特徴量から、前記第3参照モジュールにおいて用いられる回転可能な第2対象特徴量を抽出し、
前記第2参照モジュールは、前記第1参照モジュールによって抽出された前記第1参照特徴量から、前記第3対象モジュールにおいて用いられる回転可能な第2参照特徴量を抽出し、
前記第3対象モジュールは、前記第1対象特徴量と、前記第1回転行列と、前記第2参照モジュールによって抽出された前記第2参照特徴量とを用いて、前記第2対象特徴量を更新し、
前記第3参照モジュールは、前記第1参照特徴量と、前記第1回転行列と、前記第2対象モジュールによって抽出された前記第2対象特徴量とを用いて、前記第2参照特徴量を更新し、前記第4対象モジュールは、前記第1対象特徴量と、前記第3対象モジュールによって更新された前記第2対象特徴量とを用いて、前記第2対象画像データに映る前記人物の視線方向を示す対象視線情報を推定し、
前記第4参照モジュールは、前記第2参照特徴量と、前記第3参照モジュールによって更新された前記第2参照特徴量とを用いて、前記第2参照画像データに映る前記人物の視線方向を示す参照視線情報を推定する、
ことを特徴とする学習モデル生成プログラム。
【請求項4】
請求項3において、
前記取得する処理では、前記第4対象モジュールによって推定された前記対象視線情報を前記第2視線情報として取得する、
ことを特徴とする学習モデル生成プログラム。
【請求項5】
請求項3において、
前記学習モデルは、
前記第1対象特徴量と、前記第1回転行列と、前記第3参照モジュールによって抽出された前記第2参照特徴量とを用いて、前記第2対象特徴量をさらに更新する第5対象モジュールと、
前記第1参照特徴量と、前記第1回転行列と、前記第3対象モジュールによって抽出された前記第2対象特徴量とを用いて、前記第2参照特徴量をさらに更新する第5参照モジュールと、
前記第1対象特徴量と、前記第5対象モジュールによって更新された前記第2対象特徴量とを用いて、前記対象視線情報を更新する第6対象モジュールと、
前記第1参照特徴量と、前記第5参照モジュールによって更新された前記第2参照特徴量とを用いて、前記参照視線情報を推定する第6参照モジュールと、を有する、
ことを特徴とする学習モデル生成プログラム。
【請求項6】
請求項5において、
前記取得する処理では、前記第6対象モジュールによって更新された前記対象視線情報を前記第2視線情報として取得する、
ことを特徴とする学習モデル生成プログラム。
【請求項7】
第1カメラによって人物の頭部を撮影した第1対象画像データと、第2カメラによって前記頭部を撮影した第1参照画像データとから、前記第1カメラについて正規化処理が行われた第1仮想カメラと前記第2カメラについて正規化処理が行われた第2仮想カメラとの間における相対的な回転角度に対応する第1回転行列を特定する行列特定部と、
前記第1対象画像データと、前記第1参照画像データと、前記第1回転行列と、前記人物の視線方向を示す第1視線情報とを含む教師データを生成するデータ生成部と、
生成した前記教師データを学習することによって学習モデルを生成するモデル生成部と、を有する、
ことを特徴とする情報処理装置。
【請求項8】
第1カメラによって人物の頭部を撮影した第1対象画像データと、第2カメラによって前記頭部を撮影した第1参照画像データとから、前記第1カメラについて正規化処理が行われた第1仮想カメラと前記第2カメラについて正規化処理が行われた第2仮想カメラとの間における相対的な回転角度に対応する第1回転行列を特定し、
前記第1対象画像データと、前記第1参照画像データと、前記第1回転行列と、前記人物の視線方向を示す第1視線情報とを含む教師データを生成し、
生成した前記教師データを学習することによって学習モデルを生成する、
処理をコンピュータが実行することを特徴とする学習モデル生成方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、学習モデル生成プログラム、情報処理装置及び学習モデル生成方法に関する。
【背景技術】
【0002】
例えば、対象者(人物)の頭部が映る画像データを用いることによって、対象者の視線方向を推定する技術(以下、単に視線推定技術とも呼ぶ)がある。このような技術では、例えば、対象者の目が映る画像データを学習済の学習モデル(以下、単に学習モデルとも呼ぶ)に入力することによって、対象者の視線方向の推定を行う(特許文献1、特許文献2及び非特許文献1を参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2022-187546号公報
【特許文献2】特開2022-187547号公報
【非特許文献】
【0004】
【非特許文献1】X. Zhang, Y. Sugano, and A. Bulling, “Revisiting data normalization for appearance-based gaze estimation,” in ETRA, 2018.
【発明の概要】
【発明が解決しようとする課題】
【0005】
ここで、上記のような学習モデルは、例えば、画像データに映る対象者の頭部の向きによって、対象者の視線方向を精度良く推定することができない場合がある。具体的に、例えば、画像データに映る対象者の頭部の向きが学習時において学習されていない向きである場合、学習モデルは、対象者の視線方向を精度良く推定することができない場合がある。すなわち、上記のような視線推定技術では、例えば、汎化性能の高い学習モデルを生成することができない場合がある。
【0006】
この点、例えば、様々な配置位置の複数のカメラ(撮影装置)によって撮影された複数の画像データを用いて学習モデルの生成を行うことにより、学習モデルの汎化性能を向上させることが可能になる。
【0007】
しかしながら、この場合、例えば、カメラの組合せごとに教師データを生成する必要が生じ、学習モデルの生成に要する作業負担が増大する。そのため、上記のような視線推定技術では、例えば、学習モデルの生成に要する作業負担を抑制しつつ、学習モデルの汎化性能を向上させることが可能な方法が望まれている。
【0008】
そこで、本発明の目的は、視線推定に用いる学習モデルの汎化性能を向上させることを可能とする学習モデル生成プログラム、情報処理装置及び学習モデル生成方法を提供することにある。
【課題を解決するための手段】
【0009】
上記目的を達成するための本発明における学習モデル生成プログラムは、第1カメラによって人物の頭部を撮影した第1対象画像データと、第2カメラによって前記頭部を撮影した第1参照画像データとから、前記第1カメラについて正規化処理が行われた第1仮想カメラと前記第2カメラについて正規化処理が行われた第2仮想カメラとの間における相対的な回転角度に対応する第1回転行列を特定し、前記第1対象画像データと、前記第1参照画像データと、前記第1回転行列と、前記人物の視線方向を示す第1視線情報とを含む教師データを生成し、生成した前記教師データを学習することによって学習モデルを生成する、処理をコンピュータに実行させる。
【発明の効果】
【0010】
本発明における学習モデル生成プログラム、情報処理装置及び学習モデル生成方法によれば、視線推定に用いる学習モデルの汎化性能を向上させることが可能になる。
【図面の簡単な説明】
【0011】
【
図1】
図1は、第1の実施の形態における情報処理システム10の構成例を示す図である。
【
図2】
図2は、第1の実施の形態における情報処理装置1の構成例を示す図である。
【
図3】
図3は、第1の実施の形態の概略を説明する図である。
【
図4】
図4は、第1の実施の形態の概略を説明する図である。
【
図5】
図5は、第1の実施の形態の概略を説明する図である。
【
図6】
図6は、第1の実施の形態の概略を説明する図である。
【
図7】
図7は、第1の実施の形態の概略を説明する図である。
【
図8】
図8は、第1の実施の形態における学習処理を説明するフローチャート図である。
【
図9】
図9は、第1の実施の形態における学習処理を説明するフローチャート図である。
【
図10】
図10は、第1の実施の形態における学習処理を説明するフローチャート図である。
【
図11】
図11は、第1の実施の形態における学習処理を説明するフローチャート図である。
【
図12】
図12は、第1の実施の形態における推定処理を説明するフローチャート図である。
【
図13】
図13は、学習モデルMDの構成の具体例について説明する図である。
【
図14】
図14は、学習モデルMDの構成の具体例について説明する図である。
【発明を実施するための形態】
【0012】
以下、図面を参照して本開示の実施の形態について説明を行う。しかしながら、かかる説明は限定的な意味に解釈されるべきではなく、特許請求の範囲に記載の主題を限定するものではない。また、本開示の趣旨及び範囲から逸脱することがなく様々な変更や置換や改変をすることが可能である。また、異なる実施の形態を適宜組み合わせることが可能である。
【0013】
[第1の実施の形態における情報処理システム10の構成例]
初めに、第1の実施の形態における情報処理システム10の構成例について説明を行う。
図1は、第1の実施の形態における情報処理システム10の構成例を示す図である。
【0014】
情報処理システム10は、例えば、情報処理装置1と、操作端末2と、記憶部130とを有する。なお、記憶部130は、情報処理装置1の外部に配置される記憶部であってもよいし、情報処理装置1内に搭載される記憶部であってもよい。
【0015】
操作端末2は、例えば、PC(Personal Computer)やスマートフォン等のモバイル端末であり、情報処理装置1の作業者(以下、単に作業者とも呼ぶ)が必要な情報の入力等を行う端末である。
【0016】
情報処理装置1は、例えば、物理マシンや仮想マシンであり、対象者の視線方向を推定する学習モデルを生成する処理(以下、単に学習処理とも呼ぶ)と、学習モデルを用いることによって対象者の視線方向を推定する処理(以下、推定処理とも呼ぶ)とを行う。
【0017】
具体的に、情報処理装置1は、学習処理において、例えば、予め記憶部130に記憶された教師データ(複数の教師データ)の機械学習を行うことによって学習モデルを生成し、生成された学習モデルを記憶部130に記憶する。また、情報処理装置1は、推定処理において、例えば、学習処理において生成された学習モデルを用いることによって対象者の視線方向を推定する。
【0018】
以下、情報処理システム10が1台の情報処理装置1を有する場合について説明を行うが、情報処理システム10は、例えば、複数台の情報処理装置1を有するものであってもよい。また、以下、情報処理システム10が1台の操作端末2を有する場合について説明を行うが、情報処理システム10は、例えば、複数台の操作端末2を有するものであってもよい。
【0019】
さらに、情報処理装置1と操作端末2とは、例えば、単一の装置であってもよい。具体的に、情報処理システム10は、例えば、作業者が情報を直接入力可能なPCやモバイル端末を情報処理装置1として用いる場合、操作端末2を有しないものであってよい。
【0020】
[第1の実施の形態における情報処理装置1の構成例]
次に、情報処理装置1の構成例について説明を行う。
図2は、第1の実施の形態における情報処理装置1の構成例を示す図である。
【0021】
情報処理装置1は、
図2に示すように、例えば、プロセッサであるCPU101と、メモリ102と、通信インタフェース103と、記憶媒体104とを有する。各部は、バス105を介して互いに接続される。
【0022】
記憶媒体104は、例えば、学習処理及び推定処理(以下、これらを総称して学習処理等とも呼ぶ)を行うためのプログラム110を記憶するプログラム格納領域(図示せず)を有する。
【0023】
また、記憶媒体104は、例えば、学習処理等を行う際に用いられる情報を記憶する記憶部130(以下、情報格納領域130とも呼ぶ)を有する。なお、記憶媒体104は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)であってよい。
【0024】
CPU101は、例えば、記憶媒体104からメモリ102にロードされたプログラム110を実行して学習処理等を行う。
【0025】
また、通信インタフェース103は、例えば、操作端末2と通信を行う。
【0026】
[第1の実施の形態の概略]
次に、第1の実施の形態の概略について説明を行う。
図3から
図7は、第1の実施の形態の概略を説明する図である。
【0027】
情報処理装置1は、
図3に示すように、例えば、画像取得部111と、情報取得部112と、行列特定部113と、データ生成部114、モデル生成部115と、データ推定部116と、データ出力部117とを含む各機能を実現する。
【0028】
具体的に、画像取得部111、情報取得部112、行列特定部113、データ生成部114、モデル生成部115及び第2モデル生成部115のそれぞれは、例えば、学習処理を実現する機能である。また、画像取得部111、行列特定部113、データ推定部116及びデータ出力部117のそれぞれは、例えば、推定処理を実現する機能である。
【0029】
なお、以下、学習処理及び推定処理が情報処理装置1において実行される場合について説明を行うが、これに限られない。具体的に、学習処理及び推定処理のうちのいずれかは、例えば、情報処理装置1と異なる他の情報処理装置(図示せず)において実行されるものであってもよい。また、情報処理システム10が複数の情報処理装置1を有する場合、学習処理及び推定処理のそれぞれを実行する各機能は、例えば、複数の情報処理装置1のうちのいずれか、または、複数の情報処理装置1のそれぞれに分散された状態で実行されるものであってもよい。
【0030】
初めに、学習処理における機能について説明を行う。
【0031】
カメラCA1(以下、第1カメラCA1とも呼ぶ)は、
図4に示すように、例えば、対象者OBの頭部を撮影可能な位置から対象者OBの頭部を撮影することによって、対象者OBの頭部が映る画像データDT1(以下、第1対象画像データDT1とも呼ぶ)を取得する。
【0032】
カメラCA2(以下、第2カメラCA2とも呼ぶ)は、例えば、対象者OBの頭部を撮影可能な位置(カメラCA1の設置位置と異なる位置)から対象者OBの頭部を撮影することによって、対象者OBの頭部が映る画像データDT2(以下、第1参照画像データDT2とも呼ぶ)を取得する。なお、カメラCA2は、例えば、カメラCA1が画像データDT1を撮影したタイミングと同じタイミングにおいて画像データDT2を撮影する。
【0033】
画像取得部111は、例えば、カメラCA1が撮影した画像データDT1をカメラCA1から取得する。そして、画像取得部111は、
図4に示すように、例えば、取得した画像データDT1を情報格納領域130に記憶する。
【0034】
また、画像取得部111は、例えば、カメラCA2が撮影した画像データDT2をカメラCA2から取得する。そして、画像取得部111は、例えば、取得した画像データDT2を情報格納領域130に記憶する。
【0035】
なお、画像データDT1は、例えば、作業者がカメラCA1から取得して情報格納領域130に記憶するものであってもよい。また、画像データDT2は、例えば、作業者がカメラCA2から取得して情報格納領域130に記憶するものであってもよい。以下、画像データDT1と画像データDT2とを総称して単に画像データDTとも呼ぶ。
【0036】
情報取得部112は、例えば、カメラCA1が画像データDT1を撮影したタイミング(カメラCA2が画像データDT2を撮影したタイミング)における対象者OBの視線方向SDを示す視線情報DT4(以下、第1視線情報DT4とも呼ぶ)を取得する。具体的に、情報取得部112は、例えば、作業者が情報処理装置1に対して入力した視線情報DT4を取得する。そして、情報取得部112は、例えば、取得した視線情報DT4を情報格納領域130に記憶する。
【0037】
行列特定部113は、例えば、画像取得部111が取得した画像データDT1と画像データDT2とから、カメラCA1について正規化処理が行われた後の仮想的なカメラCA1(以下、仮想カメラCA1aまたは第1仮想カメラCA1aとも呼ぶ)と、カメラCA2について正規化処理が行われた後の仮想的なカメラCA2a(以下、仮想カメラCA2aまたは第2仮想カメラCA2aとも呼ぶ)との間における相対的な回転角度に対応する回転行列DT3(以下、第1回転行列DT3とも呼ぶ)を特定する。各カメラの正規化処理については後述する。そして、行列特定部113は、例えば、特定した回転行列DT3を情報格納領域130に記憶する。
【0038】
データ生成部114は、
図5に示すように、例えば、画像取得部111が取得した画像データDT1と、画像取得部111が取得した画像データDT2と、行列特定部113が特定した回転行列DT3と、情報取得部112が取得した視線情報DT4とを少なくとも含む教師データDT5を生成する。そして、データ生成部114は、例えば、生成した教師データDT5を情報格納領域130に記憶する。
【0039】
モデル生成部115は、
図5に示すように、例えば、データ生成部114が生成した教師データDT5(複数の教師データDT5)を用いた機械学習を行うことによって学習モデルMDを生成する。そして、モデル生成部115は、例えば、生成した学習モデルMDを情報格納領域130に記憶する。
【0040】
なお、以下、2台のカメラ(カメラCA1及びカメラCA2)によって撮影された画像データDT(画像データDT1及び画像データDT2)を用いて学習モデルMDを生成する場合について説明を行うが、情報処理装置1は、例えば、3台以上のカメラのそれぞれによって撮影された画像データを用いて学習モデルMDを生成するものであってもよい。
【0041】
次に、推定処理における機能について説明を行う。
【0042】
画像取得部111は、例えば、
図6に示すように、カメラCA11(以下、第3カメラCA11とも呼ぶ)が撮影した画像データDT11(以下、第2対象画像データDT11とも呼ぶ)をカメラCA11から取得する。なお、カメラCA11は、例えば、カメラCA1であってもよいし、カメラCA1及びカメラCA2と異なる他のカメラであってもよい。
【0043】
また、画像取得部111は、例えば、カメラCA12(以下、第4カメラCA12とも呼ぶ)が撮影した画像データDT12(以下、第2参照画像データDT12とも呼ぶ)をカメラCA12から取得する。カメラCA12は、例えば、カメラCA11が画像データDT11を撮影したタイミングと同じタイミングにおいて画像データDT12を撮影する。なお、カメラCA12は、例えば、カメラCA2であってもよいし、カメラCA1及びカメラCA2と異なる他のカメラであってもよい。
【0044】
行列特定部113は、例えば、画像取得部111が取得した画像データDT11と画像データDT12とから、カメラCA11について正規化処理が行われた後の仮想的なカメラCA11(以下、仮想カメラCA11aまたは第3仮想カメラCA11aとも呼ぶ)と、カメラCA12について正規化処理が行われた後の仮想的なカメラCA12(以下、仮想カメラCA12aまたは第4仮想カメラCA12aとも呼ぶ)との間における相対的な回転角度に対応する回転行列DT13(以下、第2回転行列DT13とも呼ぶ)を特定する。
【0045】
データ推定部116は、
図7に示すように、例えば、画像取得部111が取得した画像データDT11と、画像取得部111が取得した画像データDT12と、行列特定部113が特定した回転行列DT13とを学習モデルMDに入力する。そして、データ推定部116は、例えば、学習モデルMDから出力された視線情報DT14(以下、第2視線情報DT14とも呼ぶ)を取得する。
【0046】
データ出力部117は、例えば、データ推定部116が取得した視線情報DT14を操作端末2に出力する。
【0047】
すなわち、本実施の形態における情報処理装置1は、例えば、仮想カメラCA1aと仮想カメラCA2aとの間における相対的な回転角度に対応する回転行列DT3を含む教師データDT5を用いることによって、対象者OBの視線方向SDの推定を行う学習モデルMDを生成する。
【0048】
これにより、本実施の形態における情報処理装置1は、例えば、推定処理において用いられるカメラCA11やカメラCA12(学習モデルMDに入力される画像データDT11や画像データDT12を撮影したカメラ)が、学習処理において用いられたカメラCA1やカメラCA2(学習モデルMDの生成に用いられた画像データDT1や画像データDT2を撮影したカメラ)と異なる場合であっても、対象者OBの視線方向SDを精度よく推定することが可能になる。
【0049】
言い換えれば、本実施の形態における情報処理装置1は、学習処理において、例えば、汎化性能の高い学習モデルMDを生成することが可能になる。そのため、情報処理装置1は、推定処理において、例えば、画像データDT11や画像データDT12に映る対象者OBの頭部の向き(カメラCA11やカメラCA12の撮影方向)に依らず、対象者OBの視線方向SDを精度よく推定することが可能になる。
【0050】
また、本実施の形態における情報処理装置1は、例えば、回転行列DT3を含む教師データDT5を用いて学習モデルMDを生成することで、カメラの組合せごとの教師データDT5をそれぞれ用意する必要が必ずしもなくなる。そのため、情報処理装置1は、例えば、回転行列DT3を含まない他の教師データ(図示せず)を用いて他の学習モデル(図示せず)を生成する場合と比較して、学習モデルMDの生成に要する教師データDT5の数(学習モデルMDの判定精度を所望のレベルまで向上させるために必要な教師データDT5の数)を抑制することが可能になる。
【0051】
[第1の実施の形態における学習処理のフローチャート図]
次に、第1の実施の形態における学習処理について説明を行う。
図8から
図11は、第1の実施の形態における学習処理を説明するフローチャート図である。
【0052】
画像取得部111は、
図8に示すように、例えば、カメラCA1が撮影した画像データDT1の入力を受け付けるまで待機する(S11のNO)。具体的に、画像取得部111は、例えば、カメラCA1が撮影した画像データDT1がカメラCA1から送信されるまで待機する。
【0053】
そして、画像データDT1の入力を受け付けた場合(S11のYES)、画像取得部111は、例えば、入力を受け付けた画像データDT1を情報格納領域130に記憶する(S12)。
【0054】
同様に、画像取得部111は、例えば、カメラCA2が撮影した画像データDT2の入力を受け付けるまで待機する(S11のNO)。
【0055】
そして、画像データDT2の入力を受け付けた場合(S11のYES)、画像取得部111は、例えば、入力を受け付けた画像データDT2を情報格納領域130に記憶する(S12)。
【0056】
また、情報取得部112は、
図9に示すように、例えば、カメラCA1が画像データDT1を撮影したタイミング(カメラCA2が画像データDT1を撮影したタイミング)における対象者OBの視線方向SDを示す視線情報DT4の入力を受け付けるまで待機する(S21のNO)。具体的に、情報取得部112は、例えば、カメラCA1が画像データDT1を撮影したタイミングにおける対象者OBの視線方向SDを示す視線情報DT4を作業者が入力するまで待機する。
【0057】
そして、視線情報DT4の入力を受け付けた場合(S21のYES)、情報取得部112は、例えば、入力を受け付けた視線情報DT4を情報格納領域130に記憶する(S22)。
【0058】
その後、行列特定部113は、
図10に示すように、例えば、学習タイミングになるまで待機する(S31のNO)。学習タイミングは、例えば、作業者が学習モデルMDの生成を開始する旨の情報を情報処理装置1に入力したタイミングであってよい。
【0059】
そして、学習タイミングになった場合(S31のYES)、行列特定部113は、例えば、情報格納領域130に記憶された画像データDT1と画像データDT2とから、仮想カメラCA1aと仮想カメラCA2aとの間における相対的な回転角度に対応する回転行列DT3を特定する(S32)。そして、行列特定部113は、例えば、特定した回転行列DT3を情報格納領域130に記憶する。以下、S32の処理の詳細について説明を行う。
【0060】
[S32の処理の詳細]
図11は、S32の処理の詳細について説明するフローチャート図である。以下、非特許文献1に記載された方法を用いて回転行列DT3の算出を行う場合について説明を行う。なお、以下、回転行列DT3を回転行列Rとも表記する。
【0061】
初めに、行列特定部113は、
図11に示すように、例えば、画像データDT1及び画像データDT2のそれぞれの正規化処理を行う(S101)。
【0062】
具体的に、行列特定部113は、例えば、以下の条件を満たす画像変換を実現する射影変換行列N(以下、単に変換行列Nとも呼ぶ)を画像データごとに算出する。まず、変換後の画像データが対象者OBの顔の中心からの所定の距離に配置された仮想カメラによって撮影された状態と等しくする。次に、変換後の画像データに映る対象者OBの目を結ぶ直線が仮想カメラの撮影方向についての3次元座標系(以下、正規化後のカメラ座標系とも呼ぶ)における水平方向(Y軸方向)と並行になるようにする。さらに、変換後の画像データに映る対象者OBの顔の中心が仮想カメラの光軸上に位置するようにする。なお、以下、各画像データDTの撮影を行ったカメラの撮影方向についての3次元座標系を正規化前のカメラ座標系とも呼ぶ。
【0063】
具体的に、変換行列Nは、例えば、以下の式(1)から式(4)を用いることによって算出される。
【0064】
【0065】
【0066】
【0067】
【0068】
上記の式(1)から式(4)において、xは、変換行列NにおけるX軸方向の要素を示し、cは、対象者OBの顔の中心位置を示し、yは、変換行列NにおけるY軸方向の要素を示し、eleftは、対象者OBの左目の位置を示し、erightは、対象者OBの右目の位置を示し、×は、ベクトルの外積を示す。なお、cは、例えば、eleft及びerightの中心位置と、対象者OB口の位置との平均の位置であってよい。
【0069】
そして、行列特定部113は、S101の処理において、例えば、画像データDT1及び画像データDT2のそれぞれから算出された各変換行列Nを用いることによって、画像データDT1及び画像データDT2のそれぞれに映る対象者OBの視線方向SDを、正規化前のカメラ座標系における視線方向SDから正規化後のカメラ座標系における視線方向SDに変換する。
【0070】
続いて、行列特定部113は、例えば、以下の式(5)を用いることによって回転行列Rを算出する(S102)。
【0071】
【0072】
上記の式(5)において、R0は、カメラCA1とカメラCA2との間の回転行列を示す。そのため、R0は、例えば、カメラCA1とカメラCA2とのステレオキャリブレーションによって取得されるものであってよい。また、Ntgtは、画像データDT1から算出された変換行列Nを示し、Nrefは、画像データDT2から算出された変換行列Nを示す。
【0073】
すなわち、回転行列Rは、例えば、カメラCA1を正規化した仮想カメラCA1aと、カメラCA2を正規化した仮想カメラCA2aとの間の回転行列である。
【0074】
また、行列特定部113は、S103の処理において、例えば、以下の式(6)を用いることによって回転行列Rを算出するものであってもよい。
【0075】
【0076】
上記の式(6)において、Hは、対象者OBの頭部を中心とした3次元座標系(以下、頭部座標系とも呼ぶ)と正規化後のカメラの座標系との間の回転行列を示し、変換行列Nと同様に画像データごとに算出される。また、Htgtは、画像データDT1から算出された回転行列Hを示し、Hrefは、画像データDT2から算出された回転行列Hを示す。
【0077】
これにより、情報処理装置1は、例えば、教師データDT5に含める回転行列DT3の算出を行うことが可能になる。
【0078】
図10に戻り、データ生成部114は、例えば、情報格納領域130に記憶された画像データDT1と、情報格納領域130に記憶された画像データDT2と、S32の処理で特定した回転行列DT3と、情報格納領域130に記憶された視線情報DT4とを少なくとも含む教師データDT5を生成する(S33)。そして、データ生成部114は、例えば、生成した教師データDT5を情報格納領域130に記憶する。
【0079】
なお、情報処理装置1は、S32及びS33の処理において、例えば、各処理を繰り返し行うことによって複数の教師データDT5を生成するものであってよい。
【0080】
また、データ生成部114は、S32及びS33の処理に代えて、例えば、CG(Computer graphics)等の技術を用いることによって、予め指定された回転行列DT3を満たす画像データDT1及び画像データDT2を生成するものであってもよい。そして、データ生成部114は、例えば、生成した画像データDT1及び画像データDT2と、作業者が予め指定した回転行列DT3と、予め指定された視線情報DT4とを少なくとも含む教師データDT5を生成するものであってもよい。
【0081】
続いて、モデル生成部115は、例えば、S33の処理で生成した教師データDT5(複数の教師データDT5)を用いた機械学習を行うことによって学習モデルMDを生成する(S34)。
【0082】
その後、モデル生成部115は、例えば、S34の処理で生成した学習モデルMDを記憶する(S35)。
【0083】
[第1の実施の形態における推定処理のフローチャート図]
次に、第1の実施の形態における推定処理のフローチャート図について説明を行う。
図12は、第1の実施の形態における推定処理を説明するフローチャート図である。
【0084】
行列特定部113は、
図12に示すように、例えば、画像データDT11と画像データDT12との入力を受け付けるまで待機する(S41のNO)。
【0085】
そして、画像データDT11と画像データDT12との入力を受け付けた場合(S41のYES)、行列特定部113は、例えば、入力を受け付けた画像データDT11と画像データDT12とから、仮想カメラCA11aと仮想カメラCA12aとの間における相対的な回転角度に対応する回転行列DT13を特定する(S42)。
【0086】
続いて、データ推定部116は、例えば、S41の処理で入力を受け付けた画像データDT11と、S41の処理で入力を受け付けた画像データDT12と、S42の処理で特定した回転行列DT13とを学習モデルMDに入力する(S43)。
【0087】
そして、データ推定部116は、例えば、学習モデルMDから出力された視線情報DT14を取得する(S44)。
【0088】
すなわち、データ推定部116は、例えば、学習モデルMDから出力された視線情報DT14を、画像データDT11及び画像データDT12に映る対象者OBの視線方向SDの推定結果として取得する。
【0089】
その後、データ出力部117は、例えば、S44の処理で取得した視線情報DT14を操作端末2に出力する(S45)。以下、学習モデルMDの構成の具体例について説明を行う。
【0090】
[学習モデルMDの構成の具体例]
図13及び
図14は、学習モデルMDの構成の具体例について説明する図である。以下、画像データDT11を画像データI
tgtと表記し、画像データDT12を画像データI
refと表記し、画像データDT11を用いて推定された視線情報DT14を視線情報g
tgtまたは対象視線情報g
tgtともを表記し、画像データDT12を用いて推定された視線情報DT14を視線情報g
refまたは参照視線情報g
refともを表記する。
【0091】
学習モデルMDは、
図13に示すように、例えば、画像データI
tgtに映る対象者OBの頭部に対応する特徴量f
tgt(以下、第1対象特徴量f
tgtとも呼ぶ)を抽出するモジュールM11(以下、第1対象モジュールM11とも呼ぶ)を有する。具体的に、モジュールM11は、例えば、画像データI
tgtを入力として特徴量f
tgtを出力する。
【0092】
また、学習モデルMDは、例えば、画像データIrefに映る対象者OBの頭部に対応する特徴量fref(以下、第1参照特徴量frefとも呼ぶ)を抽出するモジュールM21(以下、第1参照モジュールM21とも呼ぶ)を有する。具体的に、モジュールM21は、例えば、画像データIrefを入力として特徴量frefを出力する。なお、モジュールM21は、例えば、学習処理において訓練された重みをモジュールM11と共有するものであってもよい。言い換えれば、モジュールM21は、例えば、モジュールM11と同一のモジュールであってもよい。
【0093】
また、学習モデルMDは、例えば、特徴量ftgtから各特徴量を融合する処理(以下、特徴融合処理とも呼ぶ)において用いる回転可能な特徴量Ftgt
(0)を抽出するモジュールM12(以下、第2対象モジュールM12とも呼ぶ)を有する。具体的に、モジュールM12は、例えば、特徴量ftgtを入力として特徴量Ftgt
(0)を出力する。
【0094】
また、学習モデルMDは、例えば、特徴量frefから特徴融合処理において用いる回転可能な特徴量Fref
(0)を抽出するモジュールM22(以下、第2参照モジュールM22とも呼ぶ)を有する。具体的に、モジュールM22は、例えば、特徴量frefを入力として特徴量Fref
(0)を出力する。なお、モジュールM22は、例えば、学習処理において訓練された重みをモジュールM12と共有するものであってもよい。言い換えれば、モジュールM22は、例えば、モジュールM12と同一のモジュールであってもよい。
【0095】
また、学習モデルMDは、例えば、特徴量ftgtと回転行列Rが乗算された特徴量Fref
(0)とを用いる特徴融合処理を行うことによって、特徴量Ftgt
(1)を生成(特徴量Ftgt
(0)を更新)するモジュールM13(以下、第3対象モジュールM13とも呼ぶ)を有する。具体的に、モジュールM13は、例えば、回転行列Rが乗算された特徴量ftgtと特徴量Fref
(0)とを入力して特徴量Ftgt
(1)を出力する。
【0096】
また、学習モデルMDは、例えば、特徴量frefと回転行列Rの逆行列が乗算された特徴量Ftgt
(0)とを用いる特徴融合処理を行うことによって、特徴量Fref
(1)を生成(特徴量Fref
(0)を更新)するモジュールM23(以下、第3参照モジュールM23とも呼ぶ)を有する。具体的に、モジュールM23は、例えば、回転行列Rが乗算された特徴量frefと特徴量Ftgt
(0)とを入力して特徴量Fref
(1)を出力する。なお、モジュールM23は、例えば、学習処理において訓練された重みをモジュールM13と共有するものであってもよい。言い換えれば、モジュールM23は、例えば、モジュールM13と同一のモジュールであってもよい。
【0097】
すなわち、学習モデルMDは、例えば、特徴量Ftgt
(1)を算出する際に、画像データItgtから抽出された特徴量ftgtに加え、もう一方の画像データIrefから抽出された後に回転行列Rが乗算された特徴量Fref
(0)についても用いて演算を行う。また、学習モデルMDは、例えば、特徴量Fref
(1)を算出する際に、画像データIrefから抽出された特徴量frefに加え、もう一方の画像データIrefから抽出された後に回転行列Rの逆行列が乗算された特徴量Ftgt
(0)についても用いて演算を行う。
【0098】
また、学習モデルMDは、例えば、特徴量ftgtと特徴量Ftgt
(1)とを用いることによって、画像データItgtに映る対象者OBの視線情報gtgt
(1)を推定するモジュールM14(以下、第4対象モジュールM14とも呼ぶ)を有する。具体的に、モジュールM14は、例えば、特徴量ftgtと特徴量Ftgt
(1)とを入力として視線情報gtgt
(1)を出力する。
【0099】
また、学習モデルMDは、例えば、特徴量frefと特徴量Fref
(1)とを用いることによって、画像データIrefに映る対象者OBの視線情報gref
(1)を推定するモジュールM24(以下、第4参照モジュールM24とも呼ぶ)を有する。具体的に、モジュールM24は、例えば、特徴量frefと特徴量Fref
(1)とを入力として視線情報gref
(1)を出力する。なお、モジュールM24は、例えば、学習処理において訓練された重みをモジュールM14と共有するものであってもよい。言い換えれば、モジュールM24は、例えば、モジュールM14と同一のモジュールであってもよい。以下、モジュールM11、モジュールM12、モジュールM13、モジュールM14、モジュールM21、モジュールM22、モジュールM23及びモジュールM24を総称して単にモジュールMとも呼ぶ。
【0100】
続いて、学習モデルMDは、例えば、モジュールM14から出力された視線情報gtgt
(1)を出力する。その後、データ推定部116は、S44の処理において、例えば、学習モデルMDから出力された視線情報gtgt
(1)を取得する。
【0101】
そして、各モジュールMは、学習処理において、教師データDT5における視線方向の推定誤差を最小化するように訓練される。
【0102】
これにより、学習モデルMDは、例えば、回転行列Rの乗算による回転操作を適用可能な特徴表現を獲得することができ、さらに、画像データDTを撮影する各カメラ間の位置関係に応じた適応的な特徴融合を行うことで、視線情報gtgtの推定精度を向上させることが可能になる。
【0103】
なお、学習モデルMDは、
図14に示すように、例えば、モジュールM13とモジュールM14とモジュールM23とモジュールM24とをn(nは2以上の整数)組有するものであってもよい。そして、学習モデルMDは、この場合、例えば、(n-1)組目のモジュールM13(以下、第5対象モジュールM13とも呼ぶ)から出力された特徴量F
tgt
(n-1)をn組目のモジュールM23(以下、第6参照モジュールM23とも呼ぶ)に入力するとともに、(n-1)組目のモジュールM23(以下、第5参照モジュールM23とも呼ぶ)から出力された特徴量F
ref
(n-1)をn組目のモジュールM13(以下、第6対象モジュールM13とも呼ぶ)に入力する処理を繰り返すことによって、視線情報g
tgt
(n)と視線情報g
ref
(n)とを推定するものであってよい。
【0104】
続いて、学習モデルMDは、この場合、例えば、n組目のモジュールM14から出力された視線情報gtgt
(n)を出力するものであってもよい。その後、データ推定部116は、S44の処理において、例えば、学習モデルMDから出力された視線情報gtgt
(n)を取得するものであってもよい。
【0105】
そして、各モジュールM(1組目からn組目のそれぞれに含まれる各モジュールM)は、学習処理において、教師データDT5における視線方向の推定誤差を最小化するように訓練される。
【0106】
これにより、学習モデルMDは、例えば、視線情報DT14の推定精度をより向上させることが可能になる。
【0107】
このように、本実施の形態における情報処理装置1は、例えば、カメラCA1によって対象者OBの頭部を撮影した画像データDT1と、カメラCA2によって対象者OBの頭部を撮影した画像データDT2とから、仮想カメラCA1aと仮想カメラCA2aとの間における相対的な回転角度に対応する回転行列DT3を特定する。
【0108】
そして、情報処理装置1は、例えば、画像データDT1と、画像データDT2と、回転行列DT3と、対象者OBの視線方向SDを示す視線情報DT4とを含む教師データDT5を生成する。その後、情報処理装置1は、例えば、生成した教師データDT5を学習することによって学習モデルMDを生成する。
【0109】
すなわち、本実施の形態における情報処理装置1は、例えば、仮想カメラCA1aと仮想カメラCA2aとの間における相対的な回転角度に対応する回転行列DT3を含む教師データDT5を用いることによって、対象者OBの視線方向SDの推定を行う学習モデルMDを生成する。
【0110】
これにより、本実施の形態における情報処理装置1は、例えば、推定処理において用いられるカメラCA11やカメラCA12(学習モデルMDに入力される画像データDT11や画像データDT12を撮影したカメラ)が、学習処理において用いられたカメラCA1やカメラCA2(学習モデルMDの生成に用いられた画像データDT1や画像データDT2を撮影したカメラ)と異なる場合であっても、対象者OBの視線方向SDを精度よく推定することが可能になる。
【0111】
言い換えれば、本実施の形態における情報処理装置1は、学習処理において、例えば、汎化性能の高い学習モデルMDを生成することが可能になる。そのため、情報処理装置1は、推定処理において、例えば、画像データDT11や画像データDT12に映る対象者OBの頭部の向きに依らず、対象者OBの視線方向SDを精度よく推定することが可能になる。
【0112】
また、本実施の形態における情報処理装置1は、例えば、回転行列DT3を含む教師データDT5を用いて学習モデルMDを生成することで、カメラの組合せごとの教師データDT5をそれぞれ用意する必要が必ずしもなくなる。そのため、情報処理装置1は、例えば、回転行列DT3を含まない他の教師データ(図示せず)を用いて他の学習モデル(図示せず)を生成する場合と比較して、学習モデルMDの生成に要する教師データDT5の数を抑制することが可能になる。
【符号の説明】
【0113】
1:情報処理装置
2:操作端末
10:情報処理システム
101:CPU
102:メモリ
103:通信インタフェース
104:記憶媒体
105:バス
110:プログラム
111:画像取得部
112:情報取得部
113:行列特定部
114:データ生成部
115:モデル生成部
116:データ推定部
117:データ出力部
130:情報処理装置
CA1:カメラ
CA2:カメラ
CA11:カメラ
CA12:カメラ
DT1:画像データ
DT2:画像データ
DT3:回転行列
DT4:視線情報
DT5:教師データ
DT11:画像データ
DT12:画像データ
DT13:回転行列
DT14:視線情報
MD:学習モデル
OB:対象者
SD:視線方向