(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-02-12
(45)【発行日】2025-02-20
(54)【発明の名称】視線推定システム
(51)【国際特許分類】
G06T 7/70 20170101AFI20250213BHJP
G06T 7/00 20170101ALI20250213BHJP
G06T 7/20 20170101ALI20250213BHJP
【FI】
G06T7/70 B
G06T7/00 350B
G06T7/20 300Z
(21)【出願番号】P 2021095579
(22)【出願日】2021-06-08
【審査請求日】2024-04-16
(73)【特許権者】
【識別番号】000006895
【氏名又は名称】矢崎総業株式会社
(74)【代理人】
【識別番号】110001771
【氏名又は名称】弁理士法人虎ノ門知的財産事務所
(72)【発明者】
【氏名】▲高▼橋 勇氣
(72)【発明者】
【氏名】関 俊剛
(72)【発明者】
【氏名】橋本 亜矢
(72)【発明者】
【氏名】佐久本 尚武
【審査官】伊知地 和之
(56)【参考文献】
【文献】国際公開第2018/030515(WO,A1)
【文献】特開2019-028640(JP,A)
【文献】米国特許出願公開第2016/0005176(US,A1)
【文献】国際公開第2020/183732(WO,A1)
【文献】長松隆 外2名,キャリブレーションフリー視線計測手法の研究動向,ヒューマンインタフェース学会 論文誌 2021[CD-ROM],2021年02月25日,第23巻 第1号,pp.73~88
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00 - 7/90
G06V 10/00 - 20/90
G06V 30/418
G06V 40/16
G06V 40/20
CSDB(日本国特許庁)
(57)【特許請求の範囲】
【請求項1】
測定対象者の顔を含む撮影画像を時系列上連続して取得する画像取得部と、
取得された各前記撮影画像に基づいて前記測定対象者の視線の推定処理を実行する処理部と、を備え、
前記処理部は、
前記測定対象者の顔を含む学習画像に基づいてアピアランスベース手法による視線の推定処理を行って第1推定視線情報を生成する第1視線推定処理、及び、前記学習画像に基づいてモデルベース手法による視線の推定処理を行って第2推定視線情報を生成する第2視線推定処理を実行するものであり、
各前記撮影画像から得られる前記測定対象者の視線の変化が伴う動作に応じて、当該視線が、相対的に高い精度を要求される第1対象範囲に向いているか、前記第1対象範囲の外側にあって前記第1対象範囲以上の高い精度を要求されない第2対象範囲に向いているかを判定する第1判定部を有し、
前記第1判定部により前記視線が前記第1対象範囲に向いていると判定された場合、前記第1視線推定処理を実行し、
前記視線が前記第2対象範囲に向いていると判定された場合、前記第2視線推定処理を実行する、
ことを特徴とする視線推定システム。
【請求項2】
前記動作は、前記測定対象者の顔の動きであり、
前記第1判定部は、
各前記撮影画像から前記測定対象者の顔向き角度を算出し、当該顔向き角度に基づいて、前記視線が前記第1対象範囲に向いているか、前記第2対象範囲に向いているかを判定する、
請求項1に記載の視線推定システム。
【請求項3】
前記処理部は、
前記第2推定視線情報を得た場合、当該第2推定視線情報に基づいて、前記視線が前記第1対象範囲に向いているか、前記第2対象範囲に向いているかを判定する第2判定部をさらに有し、
前記第2判定部により前記視線が前記第1対象範囲に向いていると判定された場合、前記第1視線推定処理を実行する、
請求項1または2に記載の視線推定システム。
【請求項4】
前記処理部は、
直前に実行された視線の推定処理が前記第1視線推定処理か、前記第2視線推定処理かを判定する第3判定部をさらに有し、
前記第3判定部により、直前に実行された視線の推定処理が前記第2視線推定処理であると判定された場合、前記第2視線推定処理を実行し、直前に実行された視線の推定処理が前記第1視線推定処理であると判定された場合、前記第1判定部による判定を行う、
請求項3に記載の視線推定システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、視線推定システムに関する。
【背景技術】
【0002】
画像処理を利用した視線推定技術には、モデルベース手法とアピアランスベース手法の2種類がある。モデルベース手法を用いた視線推定は、例えば、眼球モデルを含む3次元モデルを作成し、当該モデルと、測定対象者の目を含む画像とを対比して視線を推定するものである(例えば特許文献1参照)。アピアランスベース手法を用いた視線推定は、測定対象者の目を含む画像と、学習器に機械学習させた複数の学習画像と照合して視線を推定するものである(例えば特許文献2参照)。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2018-88236号公報
【文献】特開2019-28843号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、アピアランスベース手法によれば、深層学習を利用することで、測定対象者の視線を高精度に推定できるが、演算装置の処理負荷が増大し、また機械学習のための大量の学習が必要となる。一方、モデルベース手法によれば、アピアランスベース手法と比較して装置の処理負荷が減少するが、測定対象者の視線を高精度に推定することが容易ではない。そのため、測定対象者の視線を推定する場合において、処理負荷の軽減と、高精度な視線推定の両立が望まれる。
【0005】
本発明は、上記課題に鑑みてなされたものであり、処理負荷の軽減と、高精度な視線推定との両立を図ることができる視線推定システムを提供することを目的とする。
【課題を解決するための手段】
【0006】
上記目的を達成するために、本発明に係る視線推定システムは、測定対象者の顔を含む撮影画像を時系列上連続して取得する画像取得部と、取得された各前記撮影画像に基づいて前記測定対象者の視線の推定処理を実行する処理部と、を備え、前記処理部は、前記測定対象者の顔を含む学習画像に基づいてアピアランスベース手法による視線の推定処理を行って第1推定視線情報を生成する第1視線推定処理、及び、前記学習画像に基づいてモデルベース手法による視線の推定処理を行って第2推定視線情報を生成する第2視線推定処理を実行するものであり、各前記撮影画像から得られる前記測定対象者の視線の変化が伴う動作に応じて、当該視線が、相対的に高い精度を要求される第1対象範囲に向いているか、前記第1対象範囲の外側にあって前記第1対象範囲以上の高い精度を要求されない第2対象範囲に向いているかを判定する第1判定部を有し、前記第1判定部により前記視線が前記第1対象範囲に向いていると判定された場合、前記第1視線推定処理を実行し、前記視線が前記第2対象範囲に向いていると判定された場合、前記第2視線推定処理を実行する、ことを特徴とする。
【発明の効果】
【0007】
本発明に係る視線推定システムは、取得された各撮影画像に基づいて測定対象者の視線の推定処理における処理負荷の軽減と、高精度な視線推定との両立を図ることができる、という効果を奏する。
【図面の簡単な説明】
【0008】
【
図1】
図1は、実施形態に係る視線推定システムの適用例を示す模式図である。
【
図2】
図2は、
図1の視線推定システムの概略構成を示すブロック図である。
【
図3】
図3(A)は、
図1の視線推定システムの動作の概要を示す状態遷移図、
図3(B)は、測定対象者が視線を向ける対象範囲の一例を示す模式図である。
【
図4】
図4は、
図1の視線推定システムで実行される第1視線推定処理の概要を示す模式図である。
【
図5】
図5は、
図1の視線推定システムで実行される第2視線推定処理の概要を示すフローチャート図である。
【
図6】
図6(A)は、
図5のステップS16における眼球の三次元(3D)モデル及び二次元(2D)画像の関係を示す模式図、
図6(B)は、
図5のステップS17,S18で実行される黒目探索の概要を示す模式図である。
【
図7】
図7は、
図1の視線推定システムで実行される視線推定処理のアルゴリズムの一例を示すフローチャート図である。
【
図8】
図8は、実施形態の変形例に係る視線推定システムにて測定対象者が視線を向ける対象範囲の一例を示す模式図である。
【発明を実施するための形態】
【0009】
以下に、本発明の実施形態に係る視線推定システムについて図面を参照しつつ詳細に説明する。なお、以下に示す実施形態により本発明が限定されるものではない。以下の実施形態における構成要素には、いわゆる当業者が容易に想定できるもの、あるいは実質的に同一のものが含まれる。また、以下の実施形態における構成要素は、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。
【0010】
[実施形態]
図1及び
図2に示す本実施形態の視線推定システム1は、測定対象者を撮影し当該測定対象者の顔を含む撮影画像に基づいて当該測定対象者の視線を推定するシステムである。本実施形態では、視線推定システム1を車両に適用した場合について説明する。視線推定システム1は、撮影ユニット12と、処理部13とを含んで構成される。
【0011】
撮影ユニット12は、画像取得部(または画像取得装置)の一例であり、車両2の運転者20の顔21を撮影し、運転者20の顔21を含む撮影画像を時系列上連続して取得するものである。本実施形態では、運転者20が測定対象者である。撮影ユニット12は、光源と、カメラとを含んで構成される。光源及びカメラは、例えば、1枚の基板上に互いに隣接して配置される。
【0012】
光源は、例えば、撮影ユニット12の外部に向けて近赤外光を出射するLED(Light Emitting Diode)である。近赤外光は、波長が凡そ0.7~2.5μmの電磁波であり、赤色の可視光線に近い波長を有し、例えば、「見えない光」として、赤外線カメラや赤外線通信等に利用されている。光源は、処理部13から入力された点灯信号に応じて点灯(赤外光を発光)し、消灯信号に応じて消灯する。光源は、被視認対象物上または被視認対象物の近傍に配置される。
【0013】
カメラは、光源の近傍に配置され、撮影ユニット12外側に設定される撮影範囲(例えば画角)を撮影する。カメラは、撮影ユニット12外側に設定される撮影範囲に運転者20が存在する場合、光源から出射された赤外光によって照らされた運転者20を撮影する。撮影ユニット12は、車両2の車室10内の運転席101に着座している運転者20の顔21を撮影するために、例えば運転席101前方のメータユニット内、または、コラムカバー上部に設置される。撮影ユニット12は、処理部13に接続されており、取得した撮影画像を処理部13に出力する。
【0014】
カメラは、光源から出射される赤外光の出射方向と反対方向に反射する反射光を受光する位置に配置される。カメラが赤外光の出射方向と反対方向に反射する反射光を受光する位置に配置された場合、当該カメラの光軸と光源の光軸とは重なる。カメラの光軸と光源の光軸とが重なるとは、両方の光軸が同軸になることであるが、両方の光軸が並行であって反射光が受光可能な位置であればよい。カメラは、少なくとも顔21全体が十分な解像度で撮影できることが好ましい。撮影範囲は、アプリケーションより要求される検出したい範囲より決めることができる。アプリケーションは、例えば、自動販売機の興味の計測、デジタルサイネージ等の広告の視認者の自動カウント、ディスプレイシステムの視認時のみ点灯させる(または輝度をあげる)といったものがある。
【0015】
処理部13は、処理部(または処理装置)の一例であり、撮影ユニット12で取得された撮影画像に基づいて運転者20の視線の推定処理を実行するものである。処理部13は、例えば、視線推定システム1における各種処理機能を実現する処理回路(不図示)を有する。処理回路は、例えば、プロセッサによって実現される。プロセッサとは、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)等の回路を意味する。処理部13は、例えば、不図示の記憶回路(記憶部)から読み出したプログラムを実行することにより、各処理機能を実現する。
【0016】
処理部13は、
図2に示すように、第1視線推定処理部14Aと、第2視線推定処理部14Bと、第1判定部15Aと、第2判定部15Bと、第3判定部15Cとを含んで構成される。
【0017】
処理部13のうち第1視線推定処理部14Aは、運転者20の顔21を含む学習画像に基づいてアピアランスベース手法による視線の推定処理を行って第1推定視線情報を生成する第1視線推定処理を実行する。第1推定視線情報は、例えば、運転者20の視線24の視線角度である。第1視線推定処理は、第1視線推定処理部14Aが実行する。アピアランスベース手法による視線推定の技術は、例えば、以下の文献に示されている。
「特定環境応用におけるアピアランスベース手法による高精度視線推定,瞿 万霆(慶應大学)高橋勇氣(矢崎総業株式会社)他 第26回画像センシングシンポジウム(SSII2020),IS2-18,June 2020.」
【0018】
アピアランスベース手法による視線の推定は、被験者の目画像そのものを入力情報とし、機械学習によって視線と目画像の組み合わせを学習し、新規目画像に対して視線の位置を推定する手法である。機械学習手法は、例えば、深層学習手法である畳み込みニューラルネットワーク(Convolutional Neural Networks:CNN)等が用いられる。CNNは、ニューラルネットワークというパターン認識手法を多層化したDNN(Deep Neural Network,ディープニューラルネットワーク)のうち、2次元データに対応させたもので、画像に対して高いパターン認識能力が報告されている手法である。CNNで学習を実施するためには、入力画像と対応した正解ラベルが必要である。今回は入力情報として顔画像を、正解ラベルとして視線角度を与える。
【0019】
アピアランスベース手法による視線の推定では、学習用データセットを作成し、機械学習によってモデルを生成する必要がある。このとき、学習用データセットを正確に作成することが学習の精度に影響する。そのため、学習用データセットを作成する際に、測定対象者(または被験者)が正確に視認対象を見ているようにする必要があることから、例えば、
図4に示すように、測定対象者が装着型の視線計測器を着用して視線計測結果を収集する。画像31は、測定対象者が視線計測器を着用した状態で当該測定対象者を撮影して得られたものである。一方、実際に測定対象者の視線を推定する場合、視線計測器を装着していない顔画像が入力されることから、実際の利用時の画像に近づけるために、画像32に示すように、顔画像にかかる視線計測器のアーム部分を顔と同じ色で塗り潰す処理を行う。
【0020】
処理部13のうち第2視線推定処理部14Bは、運転者20の顔21を含む学習画像に基づいてモデルベース手法による視線の推定処理を行って第2推定視線情報を生成する第2視線推定処理を実行する。第2推定視線情報は、例えば、運転者20の視線24の視線角度である。第2視線推定処理は、第2視線推定処理部14Bが実行する。モデルベース手法による視線推定の技術は、例えば、特開2018-88236号公報に示されている。
【0021】
図5に示す処理は、第2視線推定処理の一例であり、処理部13が記憶部から読みだしたプログラムを実行することにより、各ステップが順次行われる。
【0022】
ステップS12では、撮影ユニット12は、運転者20の顔を含む映像を撮影して映像の信号を出力する。処理部13は、撮影ユニット12から映像の信号を1フレーム分取り込む。
【0023】
ステップS13では、処理部13は、グレースケール化を含む、画像のデータ形式の変換(下処理)を行う。例えば、1フレーム内の画素位置毎に、輝度を「0~255」の範囲の階調で表す8ビットデータを、撮影時のフレーム内走査方向に合わせて縦方向及び横方向に並べた二次元(2D)配列の画像データを生成する。
【0024】
ステップS14では、処理部13は、ステップS13で変換された画像に基づいて、例えば「Viola-Jones法」を用いて顔検出を行い、1フレームの二次元画像データの中から顔を含む顔画像を抽出する。すなわち、顔の陰影差を特徴とし「Boosting」を用いた学習によって作成された検出器を使って顔画像を抽出する。「Viola-Jones法」の技術は、例えば以下の文献に示されている。
「Viola,Paul and Michael J.Jones,“Rapid Object Detection using aBoosted Cascade of Simple Features”,Proceedings of the 2001 IEEE Computer SocietyConference on Computer Vision and Pattern Recognition,2001.Volume:1,pp.511-518.」
【0025】
ステップS15では、処理部13は、ステップS14で抽出した顔画像から、例えば上述したViola-Jones法を用いて目の領域を検出する。
【0026】
ステップS16では、処理部13は、後述する眼球3Dモデルを用いるモデルベース手法によって視線を検出する場合、眼球中心を推定する。ここでは、ステップS15で検出した目の矩形領域の中心座標を眼球中心と仮定する。例えば、目尻、目頭位置に基づき眼球中心を決定する方法や、顔の特徴点より骨格を推定し同時に眼球中心位置を算出する方法を利用することも想定される。
【0027】
ステップS17では、処理部13は、ステップS15で検出した目の矩形領域のデータについて、テンプレートマッチングの手法を適用して、黒目(瞳孔または虹彩)の粗探索を行う。具体的には、目周辺を切り出した目画像を二値化した画像に対して、テンプレートとして黒丸画像をマッチングさせて最も尤度の大きかった黒丸画像の画像中心(黒丸の中心)の座標を目画像中の黒目の中心位置とし、最も尤度の大きかった黒丸画像の半径を目画像中の黒目の半径とする。なお、ステップS17の処理は、目画像中の黒目の中心位置及び半径に関して大凡の目処をつけるために行うものである。
【0028】
ステップS18では、処理部13は、ステップS17で探索した黒目の中心位置及び半径を利用し、パーティクルフィルタの手法を適用して、より精度の高い黒目の中心位置及び半径を検出する。
【0029】
ステップS19では、処理部13は、上述したステップS13~ステップS18の処理により、1フレームの画像について、眼球中心座標、黒目の中心位置の座標の数値データを得るので、その数値データを出力する。眼球中心座標および黒目の中心位置の座標により視線の方向を特定できる。また、撮影ユニット12が出力する映像が途切れるまで、ステップS11~ステップS20のループ状の処理を繰り返すことで、リアルタイムでの視線検出を実現する。これらのデータを用いて画像平面上の座標から眼球回転角を計算する際には、
図6の(A)に示す、眼球3Dモデルを用いた変換を行う。
【0030】
図6の(A)に示す眼球3Dモデルにおいて、この眼球Eは、眼球中心Oと、眼球半径Rとで表される球体である。また、この眼球Eの表面には、黒目を構成する円形形状の虹彩Fがあり、虹彩Fの中央には円形形状の瞳孔Gがある。視線の方向は、眼球中心Oから虹彩Fまたは瞳孔Gの中央に向かう方向として特定でき、水平面内の基準方向に対する回転角度ヨー(yaw)、および上下方向の基準方向に対する回転角度ピッチ(pitch)により表すことができる。また、虹彩Fまたは瞳孔Gの中心座標は、眼球中心Oを基準とした場合、眼球半径R、ヨー(yaw)、およびピッチ(pitch)により表すことができる。一方、撮影ユニット12で撮影された映像は、2次元平面を表していることから、撮影ユニット12の撮影で得た二次元画像を眼球3Dモデルに適用する場合には、二次元/三次元の相互変換を行う必要がある。例えば、次式を用いて変換する。
【0031】
X=-R×cos(pitch)×sin(yaw)・・・(1)
Y=R×sin(pitch) ・・・(2)
X:二次元画像平面上での眼球中心Oからのx方向の距離
Y:二次元画像平面上での眼球中心Oからのy方向の距離
【0032】
次に、顔画像から黒目を探索する処理について
図6の(B)を参照して説明する。ステップS41では、処理部13は、
図5中のステップS15の結果を利用し、1フレーム全体の二次元画像データの中から目及びその周辺の矩形領域を切り出して、データD41を取得する。
【0033】
ステップS42では、処理部13は、ステップS41で取得したデータD41を画素毎の階調が黒/白の二値のみになるように二値化したデータD42を生成した後で、このデータD42に対して
図5中のステップS17のテンプレートマッチングを実施する。すなわち、黒目の形状に似た黒丸形状の画像をテンプレートとして利用し、このテンプレートをデータD42の画像上で走査しながら、特徴が尤も似ている大凡の黒目の位置を探索し、その位置および黒目の半径または直径を特定する。
【0034】
ステップS43では、処理部13は、ステップS41で取得した目のデータD41に対してソーベルフィルタの処理を施す。具体的には、目のデータD41を左から右に向かって水平方向に順次に走査し、輝度変化のない部分では黒(階調値:0)を出力し、輝度変化の勾配が大きいほど白(階調値:255)に近づくようにして、エッジを検出する。これにより、エッジを抽出した目画像のデータD43が得られる。
【0035】
ステップS44では、処理部13は、ステップS42で得られた大凡の黒目の位置を起点として、ステップS43で得られた目画像のデータD43に対してパーティクルフィルタの処理を実行する。パーティクルフィルタによる黒目検出は、以下の[1]~[4]の順に行う。
【0036】
[1]処理部13は、テンプレートマッチングで大まかな黒目位置を探索する
[2]処理部13は、眼球3Dモデルに基づき、上記[1]の黒目位置から眼球回転角を算出する。
[3]処理部13は、上記[2]で得た大まかな眼球回転角近傍に、黒目楕円候補サンプリングのためのパーティクルを散布する。
[4]処理部13は、[3]で散布した黒目楕円候補位置での尤度を計算する。ここで尤度は黒目楕円候補44aにおいて、ソーベルフィルタのエッジ画像D44を参照しエッジと抽出された点であれば+1、エッジでなければ+0として、円周上の全点で合計したスコアを算出した値を尤度とする。
[5]散布したパーティクルに対して尤度を計算し、散布位置に対して尤度の変化傾向を捉えた上で検出結果を出力する。すなわち、複数のパーティクルの散布結果より、散布位置変化に対して尤度が最大になる点を検出結果として出力する。
【0037】
上記[3]の眼球回転角近傍は、
図6の(A)に示した眼球3Dモデルのyaw、pitchの値に乱数によるブレを加え複数パターン作成する。このとき、次フレームの検出のブレの変化量は、その前のフレームの検出結果より生成される。すなわち、乱数の中央値より検出結果の差が大きくなるほど、乱数によるブレの変化量は大きくなる。
【0038】
処理部13は、
図3の(A)に示すように、モデルベース視線推定(第2視線推定処理)を実行し、当該視線推定処理の結果が条件Aを満たす場合、アピアランスベース視線推定(第1視線推定処理)を実行する。一方、処理部13は、第1視線推定処理を実行した際、当該第1視線推定処理を実行する前に行う顔向き算出処理の結果が条件Bを満たす場合、第2視線推定処理を実行する。条件Aは、例えば、第2視線推定処理にて推定された視線角度が±θ°以内である。θ°(yaw,pitch)は、モデルベース視線推定で得られた視線角度に基づいてアピアランスベース視線推定へ遷移する閾値であり、アピアランスベース視線推定における対応範囲を示す。条件Bは、顔向き算出処理にて算出された顔向き角度が±φ°以上である。φ°(yaw,pitch)は、アピアランスベース視線推定からモデルベース視線推定に遷移する顔向き角度の閾値である。φ°は、アピアランスベース視線推定における対応範囲θ°に基づいて設定することができる。例えば、対象物を見たときの顔向きと視線角度との関連性について検討された分担比に基づいて設定することができる。分担比の詳細については、例えば、下記文献に示されている。なお、処理部13は、システム起動直後は、初期設定を行い、初期設定後は第2視線推定処理を実行する。
「2次元平面上の指標を注視させたときの頭部運動と眼球運動の協調関係の分析、山田光穂、電子情報通信学会論文誌D Vol.J75-D2 No.5 pp971-981 1992年5月」
【0039】
第1判定部15Aは、各撮影画像から得られる運転者20の視線24の変化が伴う動作に応じて、当該視線24が、第1対象範囲41に向いているか、第2対象範囲42に向いているかを判定する。各撮影画像から得られる運転者20の視線24の変化が伴う動作とは、例えば、顔の向きを変える動作や体の向きを変える動作である。本実施形態では、顔向きを変える動作とする。第1判定部15Aは、各撮影画像から運転者20の顔向き角度を算出し、当該顔向き角度に基づいて、視線24が第1対象範囲41に向いているか、第2対象範囲42に向いているかを判定する。
【0040】
第1対象範囲41は、運転者20の視認範囲のうち、相対的に高精度な視線の推定を要求される範囲に設定される。第1対象範囲41は、
図3の(B)に示すように、例えば、運転視野範囲である。運転視野範囲では、例えば、運転者20が前方を走行する車両のブレーキランプを見たか、赤信号を確認したか、遠方の横断歩道の歩行者を見たかといった視線の向きを推定することが要求される。第2対象範囲42は、運転者20の視認範囲のうち、第1対象範囲41の外側にあって第1対象範囲41以上の高精度な視線の推定を要求されない範囲である。第2対象範囲42は、例えば、運転者20が安全確認や、脇見をした際に視線を向ける範囲である。
【0041】
第2判定部15Bは、第2推定視線情報を得た場合、当該第2推定視線情報に基づいて、視線24が第1対象範囲41に向いているか、第2対象範囲42に向いているかを判定する。
【0042】
第3判定部15Cは、直前に実行された視線の推定処理が第1視線推定処理か、第2視線推定処理かを判定する。
【0043】
次に、視線推定システム1で実行される視線推定処理のアルゴリズムについて
図3及び
図7を参照して説明する。
図7に示す処理は、例えば、電源投入(例えば車両2のIGNのON)に応じて、処理部13が記憶部から読みだしたプログラムを実行することにより、各ステップが順次行われる。
【0044】
ステップS31では、撮影ユニット12は、運転者20の顔を含む映像を撮影して映像の信号を出力する。処理部13は、撮影ユニット12から映像の信号を1フレーム分取り込む。このとき、処理部13は、グレースケール化を含む、画像のデータ形式の変換やサイズの変更などを必要に応じて実行する。
【0045】
ステップS32では、処理部13は、ステップS31で取り込んだ撮影画像に基づいて、例えば、上述した「Viola-Jones法」を用いて顔検出を行い、1フレームの二次元画像データの中から顔を含む顔画像を抽出する。
【0046】
ステップS33では、処理部13は、ステップS32で抽出した顔画像内で目検出を行う。処理部13は、例えば、上述した「Viola-Jones法」により、目の位置を検出することも可能だが、後段のステップで顔向き算出を行うため、顔の特徴点検出を行い、目の特徴点を包含する矩形部分を特定する手法が好ましい。例えば、下記サイトに示す一般的な顔の特徴点検出アルゴリズムを使用してもよい。 Facial point annotations :https://ibug.doc.ic.ac.uk/resources/facial-point-annotations/
【0047】
ステップS34では、処理部13は、ステップS32で抽出した顔画像内で顔の向きを算出する。ステップS33で実行されるアルゴリズムには、顔の向きを算出するアルゴリズムが含まれる。これは、標準的な顔モデルを予め作成しておき、検出された2次元の特徴点配置と対応する各点の位置を比較することによって、顔向きの回転角度(yaw,pitch,roll)を推定する手法である。なお、顔向き角度は、後段のステップで使用されるので、例えば、処理部13内の記憶部に一時格納される。なお、ステップS32~S34で実行されるアルゴリズムは、上述した手法以外のソフトウェアを用いて実現してもよい。
【0048】
ステップS35では、処理部13は、直前に実行された視線推定処理があるか否かを判定する。処理部13は、例えば、記憶部にソフトウェア使用ログが記録されているか否かを判定する。ここでソフトウェア使用ログには、上記第1視線推定処理に対応するものと、上記第2視線推定処理に対応するものとがある。処理部13は、記憶部にソフトウェア使用ログが記録されていない場合、直前に実行された視線推定処理がないと判定して、ステップS41へ移行する。記憶部にソフトウェア使用ログが記録されていない場合とは、例えば、初期フレームに対して視線推定処理を実行する場合やシステムが初期化された場合が含まれる。または、前段の顔検出や目検出において検出できない、すなわち運転者20の顔21が横や後ろを向いていることで、当該顔21や眼22が画像範囲内に存在しない場合が含まれる。ステップS35の判定の結果、記憶部にソフトウェア使用ログが記録されている場合、ステップS36へ進む。
【0049】
ステップS36では、処理部13は、直前に実行された視線の推定処理が第1視線推定処理か、第2視線推定処理かを判定する。ステップS36は、第3判定部15Cにより実行される。処理部13は、記憶部に記録されたソフトウェア使用ログを参照し、第1視線推定処理に対応するものか、第2視線推定処理に対応するものかを判定する。処理部13は、ソフトウェア使用ログが第1視線推定処理に対応するものである場合、ステップS37へ進む。一方、ソフトウェア使用ログが第2視線推定処理に対応するものである場合、ステップS41へ進む。
【0050】
ステップS37では、処理部13は、顔向き角度が±φ°以上か否かを判定する。ステップS37は、第1判定部15Aにより実行される。顔向き角度は、ステップS34で算出されたものである。処理部13は、顔向き角度が±φ°以上であると判定した場合、運転者20の視線24が第2対象範囲42を向いていると判定して、ステップS41へ進む。一方、顔向き角度が±φ°以上でないと判定した場合、運転者20の視線24が第1対象範囲41を向いていると判定して、ステップS38へ進む。
【0051】
ステップS38では、処理部13は、上記第1視線推定処理を実行して、ステップS39へ進む。
【0052】
ステップS39では、処理部13は、実行した視線推定処理の結果を出力して、ステップS40へ進む。
【0053】
ステップS40では、処理部13は、実行した視線推定処理を示すソフトウェア使用ログを記憶部に記録してステップS31に戻る。
【0054】
ステップS41では、処理部13は、上記第2視線推定処理を実行して、ステップS42へ進む。処理部13は、実行した視線推定処理の結果を記憶部に一時記録する。
【0055】
ステップS42では、処理部13は、視線角度が±θ°以内か否かを判定する。ステップS42は、第2判定部15Bにより実行される。視線角度は、ステップS41で推定されたものである。処理部13は、視線角度が±θ°以内であると判定した場合、運転者20の視線24が第1対象範囲41に向いていると判定し、ステップS41で一時記録された視線推定処理の結果を消去してステップS38へ進む。一方、視線角度が±θ°以内でないと判定した場合、運転者20の視線24が第2対象範囲42に向いていると判定し、ステップS39へ進む。
【0056】
以上説明した視線推定システム1は、撮影画像から得られる運転者20の視線24が、相対的に高い精度を要求される第1対象範囲41に向いているか、第1対象範囲41の外側にあって第1対象範囲41以上の高い精度を要求されない第2対象範囲42に向いているかを判定する。この結果、視線24が第1対象範囲41に向いていると判定した場合、アピアランスベース手法による視線の推定処理を行って第1推定視線情報を生成する第1視線推定処理を実行する。一方、視線24が第2対象範囲42に向いていると判定した場合、モデルベース手法による視線の推定処理を行って第2推定視線情報を生成する第2視線推定処理を実行する。
【0057】
上記構成により、運転者20が、高い精度が要求される第1対象範囲41に視線を向けている場合には、アピアランスベース手法により高精度に視線を推定することができ、高い精度を要求されない第2対象範囲42に視線を向けている場合には、アピアランスベース手法より処理負荷が低いモデルベース手法により視線推定を行うことができる。この結果、アピアランスベース手法のみを用いて視線を推定する場合に比べて処理負荷を軽減することができ、モデルベースのみを用いて視線を推定する場合に比べて高精度な視線を推定することができ、処理負荷の軽減と、高精度な視線推定との両立を図ることができる。また、視線推定システム1を車両に適用した場合、車両前方の運転視野範囲における視線、運転者20の安全確認や脇見といった運転視野範囲外の視線を推定することができる。
【0058】
また、視線推定システム1は、動作が運転者20の顔向き動作である場合、各撮影画像から運転者20の顔向き角度を算出し、当該顔向き角度に基づいて、視線24が第1対象範囲41に向いているか、第2対象範囲42に向いているかを判定する。これにより、例えば、画像ごとに第2視線推定処理を実行し、運転者20の視線24が第1対象範囲41と第2対象範囲42のどちらを向いているかを判定する場合と比較して、運転者20の顔向き角度に基づいて視線24がどちらの対象範囲を向いているかを判定する方が処理負荷を軽減することができる。
【0059】
また、視線推定システム1は、第2視線推定視線情報に基づいて、視線24が第1対象範囲41に向いているか、第2対象範囲42に向いているかを判定し、視線24が第1対象範囲41に向いていると判定した場合、第1視線推定処理を実行する。これにより、例えば、運転者20の視線24が第1対象範囲41に向いていると判定すべきところを誤って第2対象範囲42を向いていると判定して第2視線推定処理で視線推定を行ったとしても、第1視線推定処理を実行することができ、第1対象範囲41に向いた視線を高精度に推定することができる。
【0060】
また、視線推定システム1は、直前に実行された視線の推定処理が第1視線推定処理か、第2視線推定処理かを判定し、直前に実行された視線の推定処理が、第2視線推定処理である場合、第2視線推定処理を実行し、第1視線推定処理である場合、第1判定部15Aによる判定を行う。これにより、例えば、直前に実行された視線の推定処理が第2視線推定処理の場合、第1判定部15Aによる判定を行うことなく第2視線推定処理を行うことから、第1判定部15Aによる判定分の処理を軽減することができる。
【0061】
[変形例]
なお、上記実施形態では、視線推定システム1は、自動車等の車両2に適用されているが、これに限定されず、例えば車両2以外の船舶や航空機等に適用してもよい。また、視線推定システム1は、撮影ユニット12と、処理部13とに分かれているが、これに限定されず、一体で構成されていてもよい。
【0062】
また、視線推定システム1をデジタルサイネージに適用してもよい。例えば、デジタルサイネージに撮影ユニット12を設置することで、通行人がデジタルサイネージのどこを見たかを分析することができる。
図8に示す例では、中央のデジタルサイネージ51の上部に撮影ユニット12を設置している。なお、撮影ユニット12の設置位置は下部でもよいが、設置位置と測定対象者のあらわれる範囲に応じて、アピアランスベース手法による視線推定に使用する学習済モデルを学習させるための視線角度情報と顔画像を対応させた視線データベースを作成する必要がある。このような視線推定システムでは、撮影ユニット12を設置したデジタルサイネージ51内では、アピアランスベース手法による視線推定を用いることで、当該デジタルサイネージ51内のどの部分に着目したかを精度よく推定することができる。また、デジタルサイネージ外52では、モデルベース手法による視線推定を用いることで、例えばデジタルサイネージ51の左右に隣接するデジタルサイネージ外52のどちらを見ているかといった視線情報を推定することができる。また、これらの視線位置と注視している時間を合わせて記録することで、表示しているコンテンツの注目度合を計測することが可能になる。
【0063】
また、上記実施形態では、処理回路は、単一のプロセッサによって各処理機能が実現されるものとして説明したがこれに限らない。処理回路は、複数の独立したプロセッサを組み合わせて各プロセッサがプログラムを実行することにより各処理機能が実現されてもよい。また、処理回路が有する処理機能は、単一又は複数の処理回路に適宜に分散又は統合されて実現されてもよい。また、処理回路が有する処理機能は、その全部又は任意の一部をプログラムにて実現してもよく、また、ワイヤードロジック等によるハードウェアとして実現してもよい。
【0064】
以上で説明したプロセッサによって実行されるプログラムは、記憶回路等に予め組み込まれて提供される。なお、このプログラムは、これらの装置にインストール可能な形式又は実行可能な形式のファイルで、コンピュータで読み取り可能な記憶媒体に記録されて提供されてもよい。また、このプログラムは、インターネット等のネットワークに接続されたコンピュータ上に格納され、ネットワーク経由でダウンロードされることにより提供又は配布されてもよい。
【符号の説明】
【0065】
1 視線推定システム
2 車両
12 撮影ユニット
13 処理部
14A 第1視線推定処理部
14B 第2視線推定処理部
15A 第1判定部
15B 第2判定部
15C 第3判定部
20 運転者
21 顔
22 眼