(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-06-16
(45)【発行日】2025-06-24
(54)【発明の名称】視線推定装置、視線推定用コンピュータプログラム及び視線推定方法
(51)【国際特許分類】
G06T 7/00 20170101AFI20250617BHJP
G06T 7/70 20170101ALI20250617BHJP
【FI】
G06T7/00 660A
G06T7/70 B
(21)【出願番号】P 2022117890
(22)【出願日】2022-07-25
【審査請求日】2024-07-25
(73)【特許権者】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(73)【特許権者】
【識別番号】000000011
【氏名又は名称】株式会社アイシン
(74)【代理人】
【識別番号】100099759
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100092624
【氏名又は名称】鶴田 準一
(74)【代理人】
【識別番号】100147555
【氏名又は名称】伊藤 公一
(74)【代理人】
【識別番号】100123593
【氏名又は名称】関根 宣夫
(74)【代理人】
【識別番号】100133835
【氏名又は名称】河野 努
(74)【代理人】
【識別番号】100135976
【氏名又は名称】宮本 哲夫
(72)【発明者】
【氏名】江崎 大嗣
【審査官】山田 辰美
(56)【参考文献】
【文献】特開2017-004117(JP,A)
【文献】特開2019-101520(JP,A)
【文献】特開2019-091441(JP,A)
【文献】特開2007-286995(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00-7/90
(57)【特許請求の範囲】
【請求項1】
ドライバの顔を含む顔画像内の
複数の顔特徴点を検出し且つ検出された
複数の前記顔特徴点の
それぞれの信頼度を求める特徴点検出部と、
複数の前記顔特徴点を用いて前記ドライバの第1視線方向を推定し、且つ、
複数の前記顔特徴点の信頼度
の平均値又は最小値を、前記第1視線方向の信頼度
として求める第1視線推定部と、
前記第1視線方向の信頼度が所定の閾値以下の場合、前記第1視線方向と、当該第1視線方向が推定された時刻よりも前の所定の期間内の前記ドライバの複数の他の視線方向とに基づいて、前記ドライバが注視状態にあるか否かを判定する判定部と、
前記ドライバが前記注視状態にある場合、前記第1視線方向に基づいて、前記ドライバの前方の環境を表す前方画像内に映された物体のうち、前記ドライバが注視していると推定される注視物体を検出する物体検出部と、
前記第1視線方向の信頼度が所定の閾値以下であり、且つ、前記ドライバが前記注視状態にある場合、前記注視物体に向くように前記第1視線方向を補正する補正部と、
を有する、視線推定装置。
【請求項2】
更に、
複数の前記顔特徴点を用いて、前記ドライバの顔の向いている顔向き方向を推定する顔向き方向推定部と、
前記ドライバの左目を表す前記顔特徴点の位置と、前記ドライバの右目を表す前記顔特徴点の位置とに基づいて、前記ドライバの眉間の位置を推定し、前記眉間の位置から前記注視物体へ向かう方向を、前記ドライバの第2視線方向
として推定する第2視線推定部と、
を有し、
前記補正部は、前記第1視線方向の信頼度が所定の閾値以下であり、且つ、前記ドライバが前記注視状態にある場合、
前記顔向き方向と前記第2視線方向とのなす角度と、前記第1視線方向の信頼度の逆数との積に基づいて、補正量を求め、
前記第1視線方向を、前記第2視線方向から前記顔向き方向に向かう方向へ、前記補正量により表される角度だけ移動させて前記第1視線方向を補正する、請求項1に記載の視線推定装置。
【請求項3】
前記判定部は、前記第1視線方向及び前記複数の他の視線方向の分散が、所定の基準値以内の場合、前記ドライバが前記注視状態にあると判定する、請求項1
又は2に記載の視線推定装置。
【請求項4】
ドライバの顔を含む顔画像内の
複数の顔特徴点を検出し且つ検出された
複数の前記顔特徴点の
それぞれの信頼度を求め、
複数の前記顔特徴点を用いて前記ドライバの第1視線方向を推定し、且つ、
複数の前記顔特徴点の信頼度
の平均値又は最小値を、前記第1視線方向の信頼度
として求め、
前記第1視線方向の信頼度が所定の閾値以下の場合、前記第1視線方向と、当該第1視線方向が推定された時刻よりも前の所定の期間内の前記ドライバの複数の他の視線方向とに基づいて、前記ドライバが注視状態にあるか否かを判定し、
前記ドライバが前記注視状態にある場合、前記第1視線方向に基づいて、前記ドライバの前方の環境を表す前方画像内に映された物体のうち、前記ドライバが注視していると推定される注視物体を検出し、
前記第1視線方向の信頼度が所定の閾値以下であり、且つ、前記ドライバが前記注視状態にある場合、前記注視物体に向くように前記第1視線方向を補正する、
ことをプロセッサに実行させることを特徴とする視線推定用コンピュータプログラム。
【請求項5】
ドライバの顔を含む顔画像内の
複数の顔特徴点を検出し且つ検出された
複数の前記顔特徴点の
それぞれの信頼度を求め、
複数の前記顔特徴点を用いて前記ドライバの第1視線方向を推定し、且つ、
複数の前記顔特徴点の信頼度
の平均値又は最小値を、前記第1視線方向の信頼度
として求め、
前記第1視線方向の信頼度が所定の閾値以下の場合、前記第1視線方向と、当該第1視線方向が推定された時刻よりも前の所定の期間内の前記ドライバの複数の他の視線方向とに基づいて、前記ドライバが注視状態にあるか否かを判定し、
前記ドライバが前記注視状態にある場合、前記第1視線方向に基づいて、前記ドライバの前方の環境を表す前方画像内に映された物体のうち、前記ドライバが注視していると推定される注視物体を検出し、
前記第1視線方向の信頼度が所定の閾値以下であり、且つ、前記ドライバが前記注視状態にある場合、前記注視物体に向くように前記第1視線方向を補正する、
ことを視線推定装置が実行することを特徴とする視線推定方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、視線推定装置、視線推定用コンピュータプログラム及び視線推定方法に関する。
【背景技術】
【0002】
従来、車両を運転しているドライバの視線方向を推定することが行われている。ドライバの視線方向に基づいて、ドライバの状態を監視することが行われている。
【0003】
ドライバの視線方向は、ドライバの顔を撮影した画像から目尻・目頭及び瞳孔中心等の顔特徴点を検出し、この顔特徴点に基づいて推定される。ドライバの顔は、例えば、ステアリングコラムに配置された監視カメラを用いて撮影される。ドライバの顔が車両正面の前方を向いている場合には、監視カメラを用いてドライバの顔が正面から撮影されるので、撮影された画像に基づいて顔特徴点は精度よく検出される。
【0004】
例えば、車両を運転中の運転者の顔画像に基づいて当該運転者の視線方向を推定し、運転者が正面方向をみているか判定して、運転者が正面方向をみていると判定された期間に推定された視線方向に基づいて基準方向を推定し、この基準方向に基づいて視線方向を補正する視線方向推定装置が提案されている(特許文献1参照)。この視線方向推定装置によれば、車両が直進していると判定された場合に推定された基準方向に基づいて、視線方向が補正される。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
ドライバは、車両の運転中に顔を左右の方向に向けて、車両の周辺の状況を確認する場合がある。この時、モニタカメラは、正面から見て傾いた方向のドライバの顔を撮影する。
【0007】
ドライバの顔が車両正面に対して左右の方向を向いていると、監視カメラによりドライバの顔が斜めに撮影されるので、撮影された画像に基づいて顔特徴点を精度よく検出できない場合がある。顔特徴点の位置が誤っていると、ドライバの視線方向も精度よく推定できないおそれがある。
【0008】
そこで、本開示は、ドライバの顔が車両正面に対して左右の方向を向いている場合でも、ドライバの顔が撮影された画像に基づいてドライバの視線方向を精度よく推定できる視線推定装置を提供することを目的とする。
【課題を解決するための手段】
【0009】
一の実施形態によれば、視線推定装置が提供される。この視線推定装置は、ドライバの顔を含む顔画像内の顔特徴点を検出し且つ検出された顔特徴点の信頼度を求める特徴点検出部と、顔特徴点を用いてドライバの第1視線方向を推定し、且つ、顔特徴点の信頼度に基づいて第1視線方向の信頼度を求める第1視線推定部と、第1視線方向の信頼度が所定の閾値以下の場合、第1視線方向と、当該第1視線方向が推定された時刻よりも前の所定の期間内のドライバの複数の他の視線方向とに基づいて、ドライバが注視状態にあるか否かを判定する判定部と、ドライバが注視状態にある場合、第1視線方向に基づいて、ドライバの前方の環境を表す前方画像内に映された物体のうち、ドライバが注視していると推定される注視物体を検出する物体検出部と、顔特徴点の信頼度が所定の閾値以下であり、且つ、ドライバが注視状態にある場合、注視物体に向くように第1視線方向を補正する補正部と、を有することを特徴とする。
【0010】
また、この視線推定装置において、更に、前記顔特徴点を用いて、前記ドライバの顔の向いている顔向き方向を推定する顔向き方向推定部と、前記顔特徴点の位置と、前記前方画像内の前記注視物体の位置とに基づいて、前記ドライバの第2視線方向を推定する第2視線推定部と、を有し、前記補正部は、前記第1視線方向の信頼度が所定の閾値以下であり、且つ、前記ドライバが前記注視状態にある場合、前記顔向き方向と前記第2視線方向とのなす角度と、前記第1視線方向の信頼度の逆数との積に基づいて、補正量を求め、前記第1視線方向を、前記第2視線方向から前記顔向き方向に向かう方向へ、前記補正量により表される角度だけ移動させて前記第1視線方向を補正することが好ましい。
【0011】
また、この視線推定装置において、第2視線推定部は、ドライバの左目を表す顔特徴点の位置と、ドライバの右目を表す顔特徴点の位置とに基づいて、ドライバの眉間の位置を推定し、眉間の位置から注視物体へ向かう方向を、第2視線方向として推定することが好ましい。
【0012】
更に、この視線推定装置において、判定部は、第1視線方向及び複数の他の視線方向の分散が、所定の基準値以内の場合、ドライバが注視状態にあると判定することが好ましい。
【0013】
他の実施形態によれば、視線推定用コンピュータプログラムが提供される。この視線推定用コンピュータプログラムは、ドライバの顔を含む顔画像内の顔特徴点を検出し且つ検出された顔特徴点の信頼度を求め、顔特徴点を用いてドライバの第1視線方向を推定し、且つ、顔特徴点の信頼度に基づいて第1視線方向の信頼度を求め、第1視線方向の信頼度が所定の閾値以下の場合、第1視線方向と、当該第1視線方向が推定された時刻よりも前の所定の期間内のドライバの複数の他の視線方向とに基づいて、ドライバが注視状態にあるか否かを判定し、ドライバが注視状態にある場合、第1視線方向に基づいて、ドライバの前方の環境を表す前方画像内に映された物体のうち、ドライバが注視していると推定される注視物体を検出し、顔特徴点の信頼度が所定の閾値以下であり、且つ、ドライバが注視状態にある場合、注視物体に向くように第1視線方向を補正する、ことをプロセッサに実行させることを特徴とする。
【0014】
更に他の実施形態によれば、視線推定方法が提供される。この視線推定方法は、ドライバの顔を含む顔画像内の顔特徴点を検出し且つ検出された顔特徴点の信頼度を求め、顔特徴点を用いてドライバの第1視線方向を推定し、且つ、顔特徴点の信頼度に基づいて第1視線方向の信頼度を求め、第1視線方向の信頼度が所定の閾値以下の場合、第1視線方向と、当該第1視線方向が推定された時刻よりも前の所定の期間内のドライバの複数の他の視線方向とに基づいて、ドライバが注視状態にあるか否かを判定し、ドライバが注視状態にある場合、第1視線方向に基づいて、ドライバの前方の環境を表す前方画像内に映された物体のうち、ドライバが注視していると推定される注視物体を検出し、顔特徴点の信頼度が所定の閾値以下であり、且つ、ドライバが注視状態にある場合、注視物体に向くように第1視線方向を補正する、ことを視線推定装置が実行することを特徴とする。
【発明の効果】
【0015】
本開示に係る視線推定装置は、ドライバの顔が車両正面に対して左右の方向を向いている場合でも、ドライバの顔が撮影された画像に基づいてドライバの視線方向を精度よく推定できる。
【図面の簡単な説明】
【0016】
【
図1】(A)~(D)は、本実施形態の視線推定装置を含む監視システムの動作の概要を説明しており、(A)は車両を示す図であり、(B)は監視カメラによりドライバの顔を含む顔画像が撮影されることを示す図であり、(C)はドライバが正面を向いた顔画像を示す図であり、(D)はドライバが左方向を向いた顔画像を示す図である。
【
図2】本実施形態の視線推定装置が実装される車両の概略構成図である。
【
図3】本実施形態の視線推定装置の視線推定処理に関する動作フローチャートの一例である。
【
図4】注視物体検出処理に関する動作フローチャートの一例である。
【
図6】補正処理に関する動作フローチャートの一例である。
【
図7】第2視線方向検出処理の一例を説明する図である。
【
図8】顔向き方向検出処理の一例を説明する図である。
【発明を実施するための形態】
【0017】
図1(A)~
図1(D)は、本実施形態の視線推定装置11を含む監視システムの動作の概要を説明する図である。
図1(A)は車両を示す図であり、
図1(B)は監視カメラによりドライバの顔を含む顔画像が撮影されることを示す図であり、
図1(C)はドライバが正面を向いた顔画像を示す図であり、
図1(D)はドライバが左方向を向いた顔画像を示す図である。
【0018】
図1(A)に示すように、車両10は監視システム1を含み、監視システム1は、視線方向v1を推定する視線推定装置11と、視線推定装置11によって推定された第1視線方向v1に基づいて、ドライバ30の運転に関する状態を監視する監視装置12等を含んで構成されている。
【0019】
図1(B)に示すように、視線推定装置11は、車室内において、ステアリングコラム31の上に配置された監視カメラ2を用いて、車両10を運転するドライバ30の顔を含む顔画像を撮影し、顔画像に基づいて第1視線方向v1を推定する。
【0020】
車両10が直進している時には、ドライバ30の顔は車両正面の前方を向くと考えられる。
図1(C)に示すように、ドライバ30の顔が車両正面の前方を向いている場合には、撮影された顔画像40に基づいて、左右の目の目尻f1、f6、目頭f3、f4及び瞳孔中心f2、f5等の顔特徴点は精度よく検出される。そのため、これらの顔特徴点に基づいて推定される視線方向v1の信頼度も高いと考えられる。監視装置12は、第1視線方向v1の信頼度が所定の信頼度閾値より高い場合、この第1視線方向v1に基づいて、ドライバの運転に関する状態を監視する。
【0021】
一方、車両10が左折する時には、ドライバ30は左折方向の状況を確認するために、ドライバ30の顔は車両正面に対して左の方向を向くと考えられる。
図1(D)に示すように、ドライバ30の顔が車両正面に対して左の方向を向いている場合には、撮影された顔画像に基づいて顔特徴点を精度よく検出できない場合がある。そのため、この顔特徴点に基づいて推定される視線方向の精度も高くないおそれがある。
【0022】
そこで、視線推定装置11では、推定される視線方向の信頼度が低い場合、第1視線方向v1と、所定の期間内のドライバ30の複数の他の視線方向とに基づいて、ドライバ30が注視状態にあるか否かを判定する。次に、視線推定装置11は、ドライバ30が注視状態にある場合、ドライバ30が注視していると推定される注視物体を検出する。次に、視線推定装置11は、注視物体を利用して第1視線方向v1を補正し、補正後の第1視線方向v4(後述する)を推定値として出力する。監視装置12は、補正後の第1視線方向v4に基づいて、ドライバの運転に関する状態を監視する。
【0023】
したがって、監視システム1は、ドライバの顔が、車両正面に対して左右の方向を向いている場合でも、ドライバの顔が撮影された画像に基づいてドライバの視線方向を精度よく推定できるので、ドライバの状態を正しく監視することができる。
【0024】
図2は、本実施形態の視線推定装置11が実装される車両10の概略構成図である。監視システム1は、監視カメラ2と、前方カメラ3と、ユーザインターフェース(UI)4と、視線推定装置11と、監視装置12等とを有する。
【0025】
監視カメラ2と、前方カメラ3と、UI4と、視線推定装置11と、監視装置12は、コントローラエリアネットワークといった規格に準拠した車内ネットワーク13を介して通信可能に接続される。
【0026】
監視カメラ2は、車両10を運転するドライバの顔を含む顔画像を撮影可能に、車室内に配置される。監視カメラ2は、ドライバの顔を含む顔画像を撮影する撮影装置の一例である。
図1(B)に示すように、監視カメラ2は、例えば、ステアリングコラム31の上に配置される。なお、監視カメラ2は、車室内のステアリングホイール、ルームミラー、メータパネル、メータフード等に配置されてもよい。
【0027】
監視カメラ2は、例えば所定の周期で、ドライバの顔を含む顔画像を撮影する。監視カメラ2は、ドライバの顔を含む顔画像を撮影する撮影装置の一例である。監視カメラ2は、CCDあるいはC-MOS等、赤外線に感度を有する光電変換素子のアレイで構成された2次元検出器と、その2次元検出器上に撮影対象となる領域の像を結像する撮像光学系を有する。所定の周期として、例えば、0.1~0.5秒とすることができる。監視カメラ2は、2次元検出器と共に、投光器を有していることが好ましい。投光器は、LED(発光ダイオード)であり、例えば撮像光学系の両側に配置された二個の近赤外LEDである。ドライバに近赤外光を照射することによって、夜間等の低照度時においてもドライバに不快感を与えることなくドライバの顔を撮影することができる。また、近赤外以外の波長成分の光を除去するするバンドパスフィルタが撮像光学系の内部に設けられ、近赤外LEDから照射される近赤外以外の光を除去する可視光カットフィルタが投光器の前面に設けられていてもよい。
【0028】
前方カメラ3は、車両10の前方を向くように、例えば、車両10の車室内に取り付けられる。前方カメラ3は、ドライバの前方の環境を表す前方画像を撮影する撮影装置の一例である。前方カメラ3は、監視カメラ2と同じ周期で、顔画像撮影時刻と同じ前方画像撮影時刻において、車両10及びドライバの前方の所定の領域が表された前方画像を撮影する。前方画像には、車両10の周囲の歩行者、他の車両又は車両10の前方の所定の領域内に含まれる路面上の横断歩道等の道路特徴物が表わされる。前方カメラ3は、CCDあるいはC-MOS等、可視光に感度を有する光電変換素子のアレイで構成された2次元検出器と、その2次元検出器上に撮影対象となる領域の像を結像する撮像光学系を有する。前方カメラ3は、ドライバの視界を含むように広い視野を有することが好ましい。例えば、前方カメラ3は、180度に近い視野を有することが好ましい。
【0029】
UI4は、通知部の一例である。UI4は、監視装置12に制御されて、車両周辺の環境に対して注意することを求める注意要求等を、ドライバへ通知する。UI4は、注意要求等を表示するために、液晶ディスプレイ又はタッチパネル等の表示装置4aを有する。また、UI4は、注意要求等をドライバへ通知するための音響出力装置(図示せず)を有していてもよい。また、UI4は、ドライバから車両10への操作情報を入力する入力装置として、例えば、タッチパネル又は操作ボタンを有する。操作情報として、例えば、注意要求を承諾したことを示す情報が挙げられる。UI4は、入力された操作情報を、車内ネットワーク13を介して監視装置12へ出力する。
【0030】
視線推定装置11は、顔画像に基づいて、ドライバの視線方向を推定し、推定された視線方向を監視装置12へ出力する。視線推定装置11は、通信インターフェース(IF)21と、メモリ22と、プロセッサ23とを有する。通信インターフェース21と、メモリ22と、プロセッサ23とは、信号線24を介して接続されている。通信インターフェース21は、視線推定装置11を車内ネットワーク13に接続するためのインターフェース回路を有する。
【0031】
メモリ22は、記憶部の一例であり、例えば、揮発性の半導体メモリ及び不揮発性の半導体メモリを有する。そしてメモリ22は、プロセッサ23により実行される情報処理において使用されるアプリケーションのコンピュータプログラム及び各種のデータを記憶する。メモリ22には、監視カメラ2から入力された顔画像が、顔画像撮影時刻と関連付けられて記憶される。また、メモリ22には、前方カメラ3から入力された前方画像が、前方画像撮影時刻と関連付けられて記憶される。
【0032】
視線推定装置11が有する機能の全て又は一部は、例えば、プロセッサ23上で動作するコンピュータプログラムにより実現される機能モジュールである。プロセッサ23は、特徴点検出部231と、視線推定部232と、判定部233と、物体検出部234と、補正部235とを有する。あるいは、プロセッサ23が有する機能モジュールは、プロセッサ23に設けられる、専用の演算回路であってもよい。プロセッサ23は、1個又は複数個のCPU(Central Processing Unit)及びその周辺回路を有する。プロセッサ23は、論理演算ユニット、数値演算ユニットあるいはグラフィック処理ユニットといった他の演算回路を更に有していてもよい。視線推定装置11の動作の詳細については、後述する。
【0033】
監視装置12は、前方画像と、ドライバの視線方向とに基づいて、前方画像内に映された物体のうち、ドライバが注視していると推定される物体を検出する。監視装置12は、車両10が交差点を走行する時に、ドライバが所定の物体を注視しているか否かを判定する。監視装置12は、ドライバが所定の物体を注視していない場合、ドライバの運転に関与する程度が低いと判定する。例えば、監視装置12は、車両10が交差点を左折又は右折する時に、横断歩道を方向する歩行者がいるにも関わらず、ドライバ30が歩行者を注視していない場合、ドライバの運転に関与する程度が低いと判定する。また、監視装置12は、車両10が交差点を走行する時に、信号機があるにも関わらず、ドライバが信号機を注視していない場合、ドライバの運転に関与する程度が低いと判定する。監視システム1は、ドライバの運転に関与する程度が低いと判定した場合、車両周辺の環境に注意することを求める要求を、UI4を介してドライバへ通知する。
【0034】
図2では、視線推定装置11と、監視装置12とは、別々の装置として説明されているが、これらの装置の全て又は一部は、一つの装置として構成されていてもよい。視線推定装置11及び監視装置12は、例えば、電子制御装置(Electronic Contorol Unit:ECU)である。
【0035】
図3は、本実施形態の視線推定装置11の視線推定処理に関する動作フローチャートの一例である。次に、
図3を参照しながら、監視システム1の視線推定処理について、以下に説明する。視線推定装置11は、監視カメラ2から顔画像が入力される度に、
図3に示される動作フローチャートに従って視線推定処理を実行する。
【0036】
まず、特徴点検出部231は、車内ネットワーク13を介して、監視カメラ2から顔画像及び前方画像を入力する(ステップS101)。監視カメラ2は、顔画像を撮影する度に、顔画像及び顔画像が撮影された顔画像撮影時刻を、車内ネットワーク13を介して、視線推定装置11へ出力する。特徴点検出部231は、顔画像を、顔画像撮影時刻と関連付けて、メモリ22に記憶する。
【0037】
また、特徴点検出部231は、車内ネットワーク13を介して、前方カメラ3から前方画像及び前方画像撮影時刻を入力する。前方カメラ3は、前方画像を生成する度に、前方画像及び前方画像が撮影された前方画像撮影時刻を、車内ネットワーク13を介して視線推定装置11及び監視装置12へ出力する。特徴点検出部231は、前方画像を、前方画像撮影時刻と関連付けて、メモリ22に記憶する。
【0038】
次に、特徴点検出部231は、顔画像内の顔特徴点を検出し且つ検出された顔特徴点の信頼度を求める(ステップS102)。特徴点検出部231は、顔画像を入力して、目尻、目頭、瞳孔中心といった所定部位を顔特徴点として検出するように学習した識別器を含んで構成されている。この識別器は、顔画像を入力して、顔画像に含まれる顔特徴点の種類及び位置を検出すると共に、検出された顔特徴点の信頼度を出力する。信頼度は、例えば、0.0~1.0の間の数値で表される。なお、ドライバの左目又は/及び右目を表す顔特徴点が検出された時の信頼度が所定の基準値よりも低い場合には、特徴点検出部231は、顔画像から左目又は/及び右目を含む領域を抽出して、部分画像を生成する。必要に応じてこの抽出された領域の解像度を上げてもよい。特徴点検出部231は、この部分画像を識別器に入力して、顔特徴点の種類及び位置を検出すると共に、検出された顔特徴点の信頼度を求めてもよい。
【0039】
識別器は、例えば、入力側から出力側に向けて直列に接続された複数の層を有する畳み込みニューラルネットワーク(CNN)である。予め顔特徴点を含む顔画像を教師データとして用いてCNNに入力し、学習を行うことにより、CNNは顔特徴点の種類及び位置を検出する識別器として動作する。識別器は、真の特徴点の信頼度を中心として、推定された特徴点の信頼度が正規分布となるように、顔特徴点の信頼度を出力することが好ましい。また、識別器として、サポートベクターマシン、ランダムフォレスト等の機械学習モデルを用いてもよい。
【0040】
顔特徴点の位置は、監視カメラ座標系を用いて表される。監視カメラ座標系は、撮像面の中心を原点として、監視カメラ2の光軸方向にZa軸が設定され、Za軸と直交し且つ地面に平行な方向にXa軸が設定され、Za軸及びXa軸と直交する方向にYa軸が設定され、原点は、地面から監視カメラ2が設置される高さにある。
【0041】
特徴点検出部231は、監視カメラ座標系で表された顔特徴点の位置を、車両座標系で表される位置に変換して、顔特徴点が検出された時刻を表す特徴点検出時刻(顔画像撮影時刻)と共に、視線推定部232へ通知する。車両座標系は、車両10の2つの後輪を結ぶ後軸の中央を原点として、車両10の進行方向にZb軸が設定され、Zb軸と直交し且つ地面に平行な方向にXb軸が設定され、鉛直方向にYb軸が設定される。顔特徴点の位置を監視カメラ座標系から車両座標系へ変換する変換式は、座標系間の回転を表す回転行列と座標系間の平行移動を表す並進ベクトルの組み合わせで表される。
【0042】
次に、視線推定部232は、顔特徴点を用いて、ドライバの第1視線方向v1を推定し、且つ、顔特徴点の信頼度に基づいて第1視線方向v1の信頼度を求める(ステップS103)。視線推定部232は、目尻及び目頭の位置に基づいて眼球中心の位置を求める。例えば、視線推定部232は、目尻の位置と目頭の位置とを結ぶ線分の中点から所定の方向(例えばZb軸の負方向)に所定の距離進んだ位置を、眼球中心の位置とする。視線推定部232は、眼球中心の位置と瞳孔中心の位置とを結んだ方向を、第1視線方向v1として推定する。視線推定部232は、ドライバの左右の何れか一方の目に基づいて第1視線方向v1を推定しても良いし、左右の目のそれぞれの視線方向を推定して、それらの平均した向きを第1視線方向v1としてもよい。なお、視線推定部232は、顔特徴点である瞳孔中心及びプルキニエ像の位置に基づいて、ドライバの視線方向を推定してもよい。
【0043】
また、視線推定部232は、ドライバの第1視線方向v1を推定するのに用いられた複数の顔特徴点(目尻、目頭及び瞳孔中心)の信頼度に基づいて、第1視線方向v1の信頼度を求める。例えば、視線推定部232は、複数の顔特徴点(目尻、目頭及び瞳孔中心)の信頼度の平均値を、第1視線方向v1の信頼度とする。また、視線推定部232は、複数の顔特徴点(目尻、目頭及び瞳孔中心)の信頼度のうちの最小値を、第1視線方向v1の信頼度としてもよい。視線推定部232は、第1視線方向v1及び信頼度を、第1視線方向が推定された第1視線推定時刻(特徴点検出時刻)と関連付けてメモリ22に記憶する。
【0044】
次に、視線推定部232は、第1視線方向v1の信頼度が信頼度閾値以下であるか否かを判定する(ステップS104)。信頼度閾値として、例えば、0.7~0.9とすることができる。視線推定部232は、信頼度が所定の信頼度下限値(例えば、0.4)以下の場合、一連の処理を終了するようにしてもよい。これは、第1視線方向v1の信頼度が特に低い場合、第1視線方向v1を補正しても意味のある視線方向を得られないおそれがあるためである。
【0045】
第1視線方向v1の信頼度が信頼度閾値以下であると判定された場合(ステップS104-Yes)、判定部233は、第1視線方向v1と、この第1視線方向v1が推定された時刻よりも前の所定の期間内のドライバ30の複数の他の視線方向に基づいて、ドライバが注視状態にあるか否かを判定する(ステップS105)。所定の期間として、信頼度が求められた第1視線方向v1が推定された第1視線推定時刻から1~2秒前の間とすることができる。判定部233は、第1視線方向v1が推定された時刻よりも前の所定の期間内に推定されたドライバの視線方向を、複数の他の視線方向としてメモリ22から読み出す。
【0046】
判定部233は、第1視線方向v1及び複数の他の視線方向のそれぞれを、始点が車両座標系の原点にあり所定の長さrを有する線分で表して、線分の終点の位置を極座標(r、θ、φ)で表す。θは、線分をXbYb面に投影した射影成分のXb軸からの角度であり、φは、Zb軸から線分までの角度である。判定部233は、第1視線方向v1及び複数の他の視線方向を含む視線方向について、θの分散及びφの分散を求めて、2つの分散の和(又は分散の平均値)を、視線方向の分散として求める。
【0047】
視線方向の分散が所定の分散基準値以下である場合、判定部233は、第1視線方向v1が推定された時、ドライバは注視状態にあると判定する(ステップS105-Yes)。
【0048】
なお、判定部233は、複数の第1視線方向v1についての終点の位置を表す極座標(r、θ、φ)を入力して、ドライバが注視状態であるか否かを識別するように学習した識別器を有していてもよい。この識別器は、複数の第1視線方向v1についての終点の位置を表す極座標(r、θ、φ)を入力して、ドライバが注視状態にあるか否かを表す識別情報を出力する。判定部233は、識別情報に基づいて、ドライバが注視状態にあるか否かを判定してもよい。
【0049】
また、視線推定部232は、第1視線方向v1の信頼度を推定するのに用いられた顔特徴点である目尻及び目頭の信頼度を入力して、瞳孔中心の位置の信頼度を検出するように学習した識別器を有していてもよい。この識別器は、第1視線方向v1の信頼度を推定するのに用いられた顔特徴点である目尻及び目頭の信頼度を入力して、瞳孔中心の位置の信頼度を出力する。視線推定部232は、瞳孔中心の位置の信頼度に基づいて、ドライバが注視状態にあるか否かを判定してもよい。瞳孔中心の位置の信頼度が高い場合、ドライバが注視状態にあると推定される。
【0050】
次に、ドライバが注視状態にあると判定された場合、物体検出部234は、第1視線方向v1に基づいて、ドライバの前方の環境を表す前方画像内に映された物体のうち、ドライバが注視していると推定される注視物体を検出する(ステップS106)。注視物体を検出する処理の詳細については、後述する。
【0051】
次に、補正部235は、前方画像内に映された注視物体に向くように、第1視線方向v1を補正する(ステップS107)。第1視線方向v1を補正する処理の詳細については、後述する。
【0052】
次に、補正部235は、補正後の第1視線方向を、監視装置12へ通知して、一連の処理を終了する(ステップS108)。
【0053】
また、顔特徴点の信頼度が信頼度閾値よりも大きいと判定された場合(ステップS104-No)、補正部235は、第1視線方向v1を監視装置12へ通知して、一連の処理を終了する(ステップS108)。
【0054】
ドライバは注視状態にないと判定された場合(ステップS105-No)、第1視線方向v1を補正することはできないので、視線方向は推定されることなく、一連の処理を終了する。
【0055】
図4は、上述したステップS106における注視物体検出処理に関する動作フローチャートの一例である。まず、物体検出部234は、第1視線方向v1を推定した第1視線方向推定時刻と一致する前方画像撮影時刻に撮影された前方画像を、メモリ22から読み出す。物体検出部234は、前方画像に表された物体の種類及び物体の位置を検出する(ステップS201)。物体検出部234は、前方画像を入力して、画像に表された物体を検出するよう学習した識別器を有する。この識別器は、前方画像を入力して、前方画像に表された物体の種類及び物体の位置を検出する。物体としては、道路及び道路の周辺に位置すると考えられる歩行者等の人物、信号機、横断歩道等の道路特徴物が含まれる。
【0056】
識別器は、例えば、入力側から出力側に向けて直列に接続された複数の層を有する畳み込みニューラルネットワーク(CNN)である。予め歩行者等の人物、信号機、横断歩道等の道路特徴物を含む画像を教師データとして用いてCNNに入力し、学習を行うことにより、CNNは物体の種類及び物体の位置を検出する識別器として動作する。また、識別器として、サポートベクターマシン、ランダムフォレスト等の機械学習モデルを用いてもよい。
【0057】
図5は、前方画像の一例を示す図である。前方画像500上には、歩行者を表す物体領域501と、他の歩行者を表す物体領域502と、横断歩道を表す物体領域503とが表されている。
【0058】
前方画像は、前方カメラ座標系のZc軸に直交し且つ中心がZc軸と交差する撮像面に、物体が投影された画像である。前方カメラ座標系は、撮像面の中心を原点として、前方カメラ3の光軸方向にZc軸が設定され、Zc軸と直交し且つ地面に平行な方向にXc軸が設定され、Zc軸及びXc軸と直交する方向にYc軸が設定され、原点は、地面から前方カメラ3が設置される高さにある。
【0059】
次に、物体検出部234は、前方画像に映された物体のうち、信頼度が求められた第1視線方向v1と前方画像との交点と最も近い位置にある注視物体を検出する(ステップS202)。
【0060】
物体検出部234は、前方画像を視点変換して、ドライバの眼球中心を視点とした画像に変換する。このような画像の視点変換として、公知の方法を用いることができる。
【0061】
物体検出部234は、第1視線方向v1の向きを有するベクトルの始点をドライバの眼球中心に配置して、このベクトルを伸ばして、視点変換された前方画像と直交する交点の位置504と、物体領域501~503のそれぞれとの距離を求める。交点504と物体領域との距離は、例えば、交点504と物体領域の重心との距離を用いることができる。物体検出部234は、交点504と最も近い位置にある歩行者を表す物体領域501を、注視物体として検出して、一連の処理が終了する。なお、物体検出部234は、複数の時刻における第1視線方向v1の向きの変化と、物体領域501、502、503の位置の変化とを比較して、第1視線方向v1の向きの変化と最も類似する位置の変化を示す物体領域を、注視物体として検出してもよい。
【0062】
物体検出部234は、前方画像に表された物体の種類及び位置を、監視装置12へ出力してもよい。監視装置12は、物体検出部234から入力された前方画像に表された物体の種類及び位置と、ドライバの視線方向とに基づいて、前方画像内に映された物体のうち、ドライバが注視していると推定される物体を検出して、ドライバの運転に関与する程度を判定してもよい。また、監視装置12は、物体検出部234と同様の物体検出処理を実行して、前方画像内に映された物体のうち、ドライバが注視していると推定される物体を検出してもよい。
【0063】
図6は、上述したステップS107における補正処理に関する動作フローチャートの一例である。まず、視線推定部232は、前方画像内の注視物体の位置に基づいて、ドライバの第2視線方向を推定する(ステップS301)。
【0064】
図7は、第2視線方向検出処理の一例を説明する図である。視線推定部232は、第1視線方向v1の推定に用いられた顔画像42について、車両座標系で表されたドライバの左目を表す顔特徴点である目頭f3の位置と、ドライバの右目を表す顔特徴点のである目頭f4の位置とに基づいて、ドライバの眉間p1の位置を推定する。視線推定部232は、目頭f3と目頭f4とを結ぶ線分の中央の位置から上方(例えばYb軸の正の方向)に所定の距離の位置を、眉間p1の位置として推定する。
【0065】
物体検出部234は、前方画像を視点変換して、ドライバの眉間p1の位置を視点とした画像に変換する。このような画像の視点変換として、公知の方法を用いることができる。
【0066】
補正部235は、眉間p1の位置から注視物体である物体領域501へ向かう方向を、第2視線方向v2として推定する。視線推定部232は、眉間p1の位置から
図5に示す前方画像500上の物体領域501の重心へ向かう方向を第2視線方向v2として求める。
【0067】
次に、視線推定部232は、顔特徴点を用いて、ドライバの顔の向いている顔向き方向を推定する(ステップS302)。視線推定部232は、顔向き方向推定部の一例である。
図8は、顔向き方向推定処理の一例を説明する図である。特徴点検出部231は、第1視線方向v1の推定に用いられた顔画像42を、識別器に入力して、目尻f1、f6、目頭f3、f4、鼻尖点f7、口角点f8、f9の位置を検出して、視線推定部232へ通知する。視線推定部232は、検出された顔特徴点を、顔の3次元形状を表す3次元顔モデルにフィッティングする。視線推定部232は、各顔特徴点が3次元顔モデルに最もフィッティングする際の3次元顔モデルの顔の向きを、ドライバの顔向き方向v3として推定する。視線推定部232は、監視カメラ座標系で表された第2視線方向v2を、車両座標系に変換する。
【0068】
なお、視線推定部232は、ドライバの顔特徴点である目尻の位置と、目頭の位置とを結ぶ線分の中央の位置を始点として、この線分と直交し且つ地面と平行に外方に向かう方向、ドライバの顔向き方向として推定してもよい。視線推定部232は、ドライバの左右の何れか一方の目に基づいて顔向き方向を推定しても良いし、左右の目のそれぞれの顔向き方向を推定して、それらの平均した向きを顔向き方向としてもよい。
【0069】
次に、補正部235は、第2視線方向v2と顔向き方向v3とに基づいて、第1視線方向v1を補正する(ステップS303)。
図9は、補正処理の一例を説明する図である。
【0070】
まず、
図9に示すように、補正部235は、顔向き方向v3と第2視線方向v2とのなす角度αを求める。また、補正部235は、角度αと、第1視線方向v1の信頼度の逆数cと係数kの積として、補正量βを求める。補正量βは、第1視線方向v1の信頼度が低い程大きくなり、第1視線方向v1の信頼度が高い程小さくなる。ここで、補正部235は、信頼度が所定の信頼度基準値以下の場合(例えば、信頼度が0.4以下の場合)、顔特徴点の信頼度を0.4として、顔特徴点の信頼度の逆数cを求めてもよい。これにより、第1視線方向v1の信頼度が低い時に、補正量βが発散することが防止される。
【0071】
そして、
図9に示すように、補正部235は、第1視線方向v1を、第2視線方向v2から顔向き方向v3に向う方向へ、補正量βにより表される角度だけ移動させて、第1視線方向v1を補正して、補正後の第1視線方向v4を求める。
【0072】
以上に説明してきたように、この位置推定装置は、ドライバの顔が、車両正面を向いている時と共に、車両正面に対して左右の方向を向いている場合でも、ドライバの顔が撮影された画像に基づいてドライバの視線方向も精度よく推定できる。従って、監視システムは、ドライバの視線方向に基づいて、ドライバの状態を正しく監視することができる。
【0073】
本開示では、上述した実施形態の視線推定装置、視線推定用コンピュータプログラム及び視線推定方法は、本開示の趣旨を逸脱しない限り適宜変更が可能である。また、本開示の技術範囲はそれらの実施形態に限定されず、特許請求の範囲に記載された発明とその均等物に及ぶものである。
【0074】
例えば、上述した実施形態では、一つの第1視線方向に基づいて、前方画像内に映された物体のうち、ドライバが注視していると推定される注視物体が検出されていた。物体検出部は、第1視線方向と、第1視線方向が推定された時刻よりも前の所定の期間内のドライバの複数の他の視線方向のそれぞれと前方画像との交点の平均の位置を求め、前方画像内に映された物体のうち、平均の位置と最も近い位置にある物体を注視物体として検出してもよい。また、物体検出部は、第1視線方向と、第1視線方向が推定された時刻よりも前の所定の期間内のドライバの複数の他の視線方向を入力して、画像内の注視物体を検出するように学習した識別器を有していてもよい。この識別器は、第1視線方向及び複数の他の視線方向を入力して、前方画像から注視物体を検出する。識別器は、例えば、入力側から出力側に向けて直列に接続された複数の層を有する畳み込みニューラルネットワーク(CNN)である。予め複数の視線方向及び注視物体を含む画像を教師データとして用いてCNNに入力し、学習を行うことにより、CNNは注視物体を検出する識別器として動作する。
【0075】
また、判定部が前方画像内の注視物体を検出する際に、ドライバの第1視線方向が前方カメラの視野外にあると、ドライバの第1視線方向が前方画像内におさまっていないことがあり得る。そこで、判定部は、過去の複数の時刻に撮影された前方画像を用いて、これらの前方画像に映された物体領域の移動を追跡し、現在の前方画像に映された物体領域の位置を推測して、推測された物体領域と第1視線方向との関係に基づいて、注視物体を検出してもよい。
【0076】
また、上述した実施形態では、車両は、ドライバの前方の環境を撮影する前方カメラを一つ有していたが、車両は、ドライバの前方の環境を撮影する複数の前方カメラを有していてもよい。複数の前方カメラは、視野の一部が重複するように、左右に異なる光軸方向を有することが好ましい。判定部は、複数の前方カメラにより撮影された複数の前方画像を用いて、ドライバが注視していると推定される注視物体を検出できる。これにより、一つの前方カメラでは撮影できない方向をドライバの視線が向いている場合でも、注視物体を検出できるようになる。
【0077】
また、補正部は、第1視線方向の信頼度が所定の閾値以下であり、且つ、ドライバが注視状態にある場合、顔向き方向と第1視線方向とのなす角度と、第1視線方向の信頼度の逆数との積に基づいて、補正量を求め、第1視線方向を、第1視線方向から顔向き方向に向かう方向へ、補正量により表される角度だけ移動させて第1視線方向を補正してもよい。
【0078】
更に、補正部は、顔画像と、第1視線方向と、第2視線方向とを入力して、補正量を出力するように学習した識別器を用いて、補正量を求めるようにしてもよい。
【符号の説明】
【0079】
1 監視システム
2 監視カメラ
3 前方カメラ
4 ユーザインターフェース
4a 表示装置
10 車両
11 視線推定装置
12 監視装置
13 車内ネットワーク
21 通信インターフェース
22 メモリ
23 プロセッサ
231 特徴点検出部
232 視線推定部
233 判定部
234 物体検出部
235 補正部