IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ トヨタ自動車株式会社の特許一覧

特許7359087ドライバモニタ装置及びドライバモニタ方法
<>
  • 特許-ドライバモニタ装置及びドライバモニタ方法 図1
  • 特許-ドライバモニタ装置及びドライバモニタ方法 図2
  • 特許-ドライバモニタ装置及びドライバモニタ方法 図3
  • 特許-ドライバモニタ装置及びドライバモニタ方法 図4
  • 特許-ドライバモニタ装置及びドライバモニタ方法 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-02
(45)【発行日】2023-10-11
(54)【発明の名称】ドライバモニタ装置及びドライバモニタ方法
(51)【国際特許分類】
   G06T 7/20 20170101AFI20231003BHJP
   G06T 7/70 20170101ALI20231003BHJP
【FI】
G06T7/20 300B
G06T7/70 Z
【請求項の数】 2
(21)【出願番号】P 2020114941
(22)【出願日】2020-07-02
(65)【公開番号】P2022012829
(43)【公開日】2022-01-17
【審査請求日】2022-06-07
(73)【特許権者】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】100099759
【弁理士】
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【弁理士】
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100092624
【弁理士】
【氏名又は名称】鶴田 準一
(74)【代理人】
【識別番号】100147555
【弁理士】
【氏名又は名称】伊藤 公一
(74)【代理人】
【識別番号】100123593
【弁理士】
【氏名又は名称】関根 宣夫
(74)【代理人】
【識別番号】100133835
【弁理士】
【氏名又は名称】河野 努
(72)【発明者】
【氏名】友末 和寛
(72)【発明者】
【氏名】原 健一郎
【審査官】淀川 滉也
(56)【参考文献】
【文献】特開2010-249454(JP,A)
【文献】特開平08-249454(JP,A)
【文献】特開2003-296712(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/20
G06T 7/70
(57)【特許請求の範囲】
【請求項1】
車両に搭載された、前記車両のドライバを撮影するカメラにより得られた、前記ドライバの顔が表された時系列の一連の顔画像のそれぞれから、前記ドライバの顔の向き及び前記ドライバの顔の位置を検出する顔向き検出部と、
前記一連の顔画像のうちの直近の所定期間に得られた複数の顔画像のそれぞれから検出された前記ドライバの顔の向きに基づいて前記ドライバの顔の向きの基準方向を更新し、または、前記所定期間に得られた複数の顔画像のそれぞれから検出された前記ドライバの顔の位置に基づいて前記ドライバの顔の基準位置を更新する顔基準更新部と、
前記一連の顔画像のそれぞれにおいて、前記ドライバの顔への装着物の取り付け、あるいは、前記ドライバの顔からの装着物の取り外しを検出する着脱検出部と、
記憶部と、
を有し、
前記顔基準更新部は、前記装着物の取り付け、または前記装着物の取り外しが検出されると、前記一連の顔画像のうちの当該検出以降に得られた顔画像から検出された前記ドライバの顔の向きのみに基づいて前記基準方向を更新し、または、当該検出以降に得られた顔画像から検出された前記ドライバの顔の位置のみに基づいて前記基準位置を更新するとともに、
前記装着物の取り付けが検出されると、前記装着物の取り付けの検出時点でのドライバの顔の第1の基準方向またはドライバの顔の第1の基準位置を前記記憶部に記憶し、その後に前記装着物の取り外しが検出されると、前記記憶部に記憶された前記第1の基準方向を、前記装着物の取り外しの検出時点でのドライバの顔の基準方向とし、あるいは、前記記憶部に記憶された前記第1の基準位置を、前記装着物の取り外しの検出時点でのドライバの顔の基準位置とする
ドライバモニタ装置。
【請求項2】
車両に搭載された、前記車両のドライバを撮影するカメラにより得られた、前記ドライバの顔が表された時系列の一連の顔画像のそれぞれから、前記ドライバの顔の向き及び前記ドライバの顔の位置を検出し、
前記一連の顔画像のうちの直近の所定期間に得られた複数の顔画像のそれぞれから検出された前記ドライバの顔の向きに基づいて前記ドライバの顔の向きの基準方向を更新し、または、前記所定期間に得られた複数の顔画像のそれぞれから検出された前記ドライバの顔の位置に基づいて前記ドライバの顔の基準位置を更新し、
前記一連の顔画像のそれぞれにおいて、前記ドライバの顔への装着物の取り付け、あるいは、前記ドライバの顔からの装着物の取り外しを検出する、
ことを含み、
前記更新は、前記装着物の取り付け、または前記装着物の取り外しが検出されると、前記一連の顔画像のうちの当該検出以降に得られた顔画像から検出された前記ドライバの顔の向きのみに基づいて前記基準方向を更新し、または、当該検出以降に得られた顔画像から検出された前記ドライバの顔の位置のみに基づいて前記基準位置を更新するとともに、
前記装着物の取り付けが検出されると、前記装着物の取り付けの検出時点でのドライバの顔の第1の基準方向またはドライバの顔の第1の基準位置を記憶部に記憶し、その後に前記装着物の取り外しが検出されると、前記記憶部に記憶された前記第1の基準方向を、前記装着物の取り外しの検出時点でのドライバの顔の基準方向とし、あるいは、前記記憶部に記憶された前記第1の基準位置を、前記装着物の取り外しの検出時点でのドライバの顔の基準位置とする
ことを含む、
ドライバモニタ方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、車両のドライバをモニタリングするドライバモニタ装置及びドライバモニタ方法に関する。
【背景技術】
【0002】
車両を運転中のドライバの状態を確認するために、ドライバを撮影することで得られた画像に基づいてドライバの顔の向きを検出する技術が研究されている(例えば、特許文献1を参照)。例えば、特許文献1に開示されたドライバモニタシステムは、車両の速度が所定速度以上であることを含むゼロ点設定条件が成立しているときに撮像装置によって撮像された顔画像に基づいて認識されたドライバの顔向き角度に基づいて、ドライバの顔のピッチ角、ヨー角及びロール角のゼロ点を設定する。そしてこのドライバモニタシステムは、設定されたゼロ点に対する現在の顔向き角度に基づいてドライバの状態を診断する。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2019-87150号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記の技術では、所定の条件下で設定された基準となるドライバの顔の向きに対する現在の顔の向きに基づいてドライバの状態が診断される。したがって、基準となるドライバの顔の向きが正確に検出されていないと、ドライバの状態の判断を誤るおそれが有るので、基準となる顔の向きが正確に検出されることが求められる。しかし、ドライバによっては、車両の走行中において、サングラスまたはマスクといった装着物を自身の顔に装着し、あるいは、装着されている装着物を顔から取り外すことがある。このような場合、基準となるドライバの顔の向きを正確に求めることが困難となるおそれがある。
【0005】
そこで、本発明は、ドライバの顔に対する装着物の着脱が行われても、基準となるドライバの顔の向きまたは基準となるドライバの顔の位置を正確に設定可能なドライバモニタ装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
一つの実施形態によれば、ドライバモニタ装置が提供される。このドライバモニタ装置は、車両に搭載された、車両のドライバを撮影するカメラにより得られた、ドライバの顔が表された時系列の一連の顔画像のそれぞれから、ドライバの顔の向き及びドライバの顔の位置を検出する顔向き検出部と、一連の顔画像のうちの直近の所定期間に得られた複数の顔画像のそれぞれから検出されたドライバの顔の向きに基づいてドライバの顔の向きの基準方向を更新し、または、所定期間に得られた複数の顔画像のそれぞれから検出されたドライバの顔の位置に基づいてドライバの顔の基準位置を更新する顔基準更新部と、一連の顔画像のそれぞれにおいて、ドライバの顔への装着物の取り付け、あるいは、ドライバの顔からの装着物の取り外しを検出する着脱検出部とを有する。そして顔基準更新部は、装着物の取り付け、または装着物の取り外しが検出されると、その検出以降に得られた顔画像から検出されたドライバの顔の向きのみに基づいて基準方向を更新し、または、その検出以降に得られた顔画像から検出されたドライバの顔の位置のみに基づいて基準位置を更新する。
【0007】
このドライバモニタ装置は、記憶部をさらに有することが好ましい。そして顔基準更新部は、ドライバの顔に対する装着物の取り付けが検出されると、その装着物の取り付けの検出時点でのドライバの顔の第1の基準方向またはドライバの顔の第1の基準位置を記憶部に記憶し、その後にドライバの顔から装着物の取り外しが検出されると、記憶部に記憶された第1の基準方向を、装着物の取り外しの検出時点でのドライバの顔の基準方向とし、あるいは、記憶部に記憶された第1の基準位置を、装着物の取り外しの検出時点でのドライバの顔の基準位置とすることが好ましい。
【0008】
他の実施形態によれば、ドライバモニタ方法が提供される。このドライバモニタ方法は、車両に搭載された、車両のドライバを撮影するカメラにより得られた、ドライバの顔が表された時系列の一連の顔画像のそれぞれから、ドライバの顔の向き及びドライバの顔の位置を検出し、一連の顔画像のうちの直近の所定期間に得られた複数の顔画像のそれぞれから検出されたドライバの顔の向きに基づいてドライバの顔の向きの基準方向を更新し、または、その所定期間に得られた複数の顔画像のそれぞれから検出されたドライバの顔の位置に基づいてドライバの顔の位置の基準点を更新し、一連の顔画像のそれぞれにおいて、ドライバの顔への装着物の取り付け、あるいは、ドライバの顔からの装着物の取り外しを検出する、ことを含む。そしてドライバの顔の基準方向または基準位置の更新は、ドライバの顔に対する装着物の取り付け、またはドライバの顔からの装着物の取り外しが検出されると、一連の顔画像のうちのその検出以降に得られた顔画像から検出されたドライバの顔の向きのみに基づいて基準方向を更新し、または、その検出以降に得られた顔画像から検出されたドライバの顔の位置のみに基づいて基準位置を更新することを含む。
【発明の効果】
【0009】
本発明に係るドライバモニタ装置は、ドライバの顔に対する装着物の着脱が行われても、基準となるドライバの顔の向きまたは基準となるドライバの顔の位置を正確に設定できるという効果を奏する。
【図面の簡単な説明】
【0010】
図1】ドライバモニタ装置が実装される車両制御システムの概略構成図である。
図2】ドライバモニタ装置の一つの実施形態である電子制御装置のハードウェア構成図である。
図3】ドライバモニタ処理に関する、電子制御装置のプロセッサの機能ブロック図である。
図4】(a)は、直近の所定期間においてドライバの顔に対する装着物の着脱が無い場合の基準方向及び基準位置の検出の一例を示す図である。(b)は、直近の所定期間中にドライバの顔に対する装着物の着脱が検出された場合の基準方向及び基準位置の検出の一例を示す図である。
図5】ドライバモニタ処理の動作フローチャートである。
【発明を実施するための形態】
【0011】
以下、図を参照しつつ、ドライバモニタ装置について説明する。このドライバモニタ装置は、ドライバを撮影するように設けられたカメラにより得られた時系列の一連の画像(以下、説明の便宜上、顔画像と呼ぶ)のそれぞれから、ドライバの顔の向き及び顔の位置を検出する。そしてこのドライバモニタ装置は、顔の向きの基準方向に対する検出した顔の向きの角度、または、顔の基準位置に対する検出した顔の位置のずれ量に基づいて、ドライバの状態を判定する。その際、このドライバモニタ装置は、直近の所定期間に得られた複数の顔画像のそれぞれから検出されたドライバの顔の向きに基づいて、ドライバの顔の基準方向を更新し、かつ、その所定期間に得られた複数の顔画像のそれぞれから検出されたドライバの顔の位置に基づいてドライバの顔の位置の基準点を更新する。ただし、このドライバモニタ装置は、何れかの顔画像において、ドライバの顔への装着物の取り付けまたは取り外しを検出すると、顔の基準方向及び顔の基準位置を一旦リセットする。そしてこのドライバモニタ装置は、直近の所定期間に得られた複数の顔画像のうち、装着物の着脱の検出以降に得られた顔画像から検出された顔の向き及び顔の位置のみを用いて、顔の基準方向及び顔の基準位置を更新する。これにより、このドライバモニタ装置は、顔の基準方向及び基準位置の更新における、ドライバの顔に対する装着物の脱着による影響を無くして、ドライバの顔に対する装着物の着脱が行われても、顔の基準方向及び顔の基準位置を正確に設定することを可能にする。
【0012】
図1は、ドライバモニタ装置が実装される車両制御システムの概略構成図である。また図2は、車両制御装置の一つの実施形態である電子制御装置のハードウェア構成図である。本実施形態では、車両10に搭載され、かつ、車両10を制御する車両制御システム1は、ドライバモニタカメラ2と、ユーザインターフェース3と、車両制御装置の一例である電子制御装置(ECU)4とを有する。ドライバモニタカメラ2及びユーザインターフェースとECU4とは、コントローラエリアネットワークといった規格に準拠した車内ネットワークを介して通信可能に接続される。なお、車両制御システム1は、車両10の自己位置を測位するためのGPS受信機(図示せず)をさらに有してもよい。また、車両制御システム1は、車両10の周囲を撮影するためのカメラ(図示せず)、または、LiDARあるいはレーダといった、車両10から車両10の周囲に存在する物体までの距離を測定する距離センサ(図示せず)の少なくとも何れかをさらに有していてもよい。さらにまた、車両制御システム1は、他の機器と無線通信するための無線通信端末(図示せず)を有していてもよい。さらにまた、車両制御システム1は、車両10の走行ルートを探索するためのナビゲーション装置(図示せず)を有していてもよい。
【0013】
ドライバモニタカメラ2は、カメラまたは車内撮像部の一例であり、CCDあるいはC-MOSなど、可視光または赤外光に感度を有する光電変換素子のアレイで構成された2次元検出器と、その2次元検出器上に撮影対象となる領域の像を結像する結像光学系を有する。ドライバモニタカメラ2は、赤外LEDといったドライバを照明するための光源をさらに有していてもよい。そしてドライバモニタカメラ2は、車両10の運転席に着座したドライバの頭部がその撮影対象領域に含まれるように、すなわち、ドライバの頭部を撮影可能なように、例えば、インストルメントパネルまたはその近傍にドライバへ向けて取り付けられる。そしてドライバモニタカメラ2は、所定の撮影周期(例えば1/30秒~1/10秒)ごとにドライバの頭部を撮影し、ドライバの顔の少なくとも一部が写った顔画像を生成する。ドライバモニタカメラ2により得られた顔画像は、カラー画像であってもよく、あるいは、グレー画像であってもよい。ドライバモニタカメラ2は、顔画像を生成する度に、その生成した顔画像を、車内ネットワークを介してECU4へ出力する。
【0014】
ユーザインターフェース3は、通知部の一例であり、例えば、液晶ディスプレイまたは有機ELディスプレイといった表示装置を有する。ユーザインターフェース3は、車両10の車室内、例えば、インスツルメンツパネルに、ドライバへ向けて設置される。そしてユーザインターフェース3は、ECU4から車内ネットワークを介して受信した各種の情報を表示することで、その情報をドライバへ通知する。ユーザインターフェース3は、さらに、車室内に設置されるスピーカを有していてもよい。この場合、ユーザインターフェース3は、ECU4から車内ネットワークを介して受信した各種の情報を音声信号として出力することで、その情報をドライバへ通知する。
【0015】
ECU4は、顔画像に基づいてドライバの顔の向きまたは顔の位置を検出し、その顔の向きまたは顔の位置に基づいてドライバの状態を判定する。そしてECU4は、ドライバの状態が、ドライバが余所見をしているといった運転に適さない状態である場合、ユーザインターフェース3を介してドライバへ警告する。
【0016】
図2に示されるように、ECU4は、通信インターフェース21と、メモリ22と、プロセッサ23とを有する。通信インターフェース21、メモリ22及びプロセッサ23は、それぞれ、別個の回路として構成されてもよく、あるいは、一つの集積回路として一体的に構成されてもよい。
【0017】
通信インターフェース21は、ECU4を車内ネットワークに接続するためのインターフェース回路を有する。そして通信インターフェース21は、ドライバモニタカメラ2から顔画像を受信する度に、受信した顔画像をプロセッサ23へわたす。また、通信インターフェース21は、ユーザインターフェース3に表示させる情報をプロセッサ23から受け取ると、その情報をユーザインターフェース3へ出力する。
【0018】
メモリ22は、記憶部の一例であり、例えば、揮発性の半導体メモリ及び不揮発性の半導体メモリを有する。そしてメモリ22は、ECU4のプロセッサ23により実行されるドライバモニタ処理において使用される各種のアルゴリズム及び各種のデータを記憶する。例えば、メモリ22は、顔画像、顔画像からドライバの顔の各部の検出、顔の向きの判定などに利用される各種のパラメータなどを記憶する。さらに、メモリ22は、ドライバモニタ処理の途中で生成される各種のデータを一時的に記憶する。
【0019】
プロセッサ23は、1個または複数個のCPU(Central Processing Unit)及びその周辺回路を有する。プロセッサ23は、論理演算ユニット、数値演算ユニットあるいはグラフィック処理ユニットといった他の演算回路をさらに有していてもよい。そしてプロセッサ23は、ドライバモニタ処理を実行する。
【0020】
図3は、ドライバモニタ処理に関する、プロセッサ23の機能ブロック図である。プロセッサ23は、顔向き検出部31と、着脱検出部32と、顔基準更新部33と、判定部34とを有する。プロセッサ23が有するこれらの各部は、例えば、プロセッサ23上で動作するコンピュータプログラムにより実現される機能モジュールである。あるいは、プロセッサ23が有するこれらの各部は、プロセッサ23に設けられる、専用の演算回路であってもよい。
【0021】
顔向き検出部31は、ECU4がドライバモニタカメラ2から顔画像を受け取る度に、受け取った顔画像に基づいて、ドライバの顔の向きを検出する。
【0022】
顔向き検出部31は、例えば、顔画像を、画像からドライバの顔を検出するように予め学習された識別器に入力することで、その顔画像上でドライバの顔が写っている領域(以下、顔領域と呼ぶ)を検出する。顔向き検出部31は、そのような識別器として、例えば、Single Shot MultiBox Detector(SSD)、または、Faster R-CNNといった、コンボリューショナルニューラルネットワーク型(CNN)のアーキテクチャを持つディープニューラルネットワーク(DNN)を用いることができる。あるいは、顔向き検出部31は、そのような識別器として、AdaBoost識別器を利用してもよい。識別器は、顔が表された画像及び顔が表されていない画像を含む教師データを用いて、所定の学習手法に従って予め学習される。そして識別器を規定するパラメータセットは、メモリ22に予め記憶されればよい。また、顔向き検出部31は、画像から顔領域を検出する他の手法に従って、顔画像から顔領域を検出してもよい。
【0023】
顔向き検出部31は、顔画像の顔領域から、目尻、目頭、鼻尖点、口角点等のドライバの顔の複数の特徴点を検出する。この場合も、顔向き検出部31は、例えば、画像に表された顔の特徴点を検出するように予め学習された識別器に顔領域を入力することで、顔の特徴点を検出することができる。そのような識別器として、顔向き検出部31は、例えば、CNN型のアーキテクチャを持つDNNまたはAdaBoost識別器を用いることができる。なお、顔領域を検出する識別器が、顔領域だけでなく、顔の特徴点を検出するように予め学習されてもよい。この場合には、顔向き検出部31は、顔画像を識別器に入力することで、顔領域とともに顔の特徴点も検出することができる。あるいは、顔向き検出部31は、顔の特徴点を表すテンプレートと顔領域とのテンプレートマッチング、あるいは、顔の特徴点を検出する他の手法に従って、顔領域からドライバの顔の特徴点を検出してもよい。
【0024】
顔向き検出部31は、検出した顔の特徴点を、顔の3次元形状を表す3次元顔モデルにフィッティングする。そして顔向き検出部31は、各特徴点が3次元顔モデルに最もフィッティングする際の3次元顔モデルの顔の向きを、ドライバの顔の向きとして検出する。なお、ドライバの顔の向きは、例えば、ドライバモニタカメラ2に対して正対する方向を基準とする、ピッチ角、ヨー角及びロール角の組み合わせで表される。その際、顔向き検出部31は、過去に得られた顔画像に基づく、ドライバの顔に対する装着物の着脱の判定結果に基づいて、装着物が顔に装着されている場合の3次元顔モデルと装着物が無い場合の3次元顔モデルとを異ならせてもよい。すなわち、顔向き検出部31は、装着物が顔から取り外されたと判定された以降では、顔に装着物が無い場合の3次元顔モデルを用いてドライバの顔の向きを検出すればよい。一方、顔向き検出部31は、装着物が顔に取り付けられたと判定された以降では、顔に装着物が取り付けられた場合の3次元顔モデルを用いてドライバの顔の向きを検出すればよい。
【0025】
また、顔向き検出部31は、画像に表された顔の向きを判定する他の手法に従って、顔画像に基づいてドライバの顔の向きを検出してもよい。例えば、顔向き検出部31は、上記の先行技術文献(特開2019-87150号公報)に記載されているように、顔の特徴点間の位置関係に基づいてドライバの顔の向きを検出してもよい。この場合、顔向き検出部31は、例えば、鼻尖点から左右それぞれの目尻を結んだ線へ下した垂線と左右それぞれの目尻を結んだ線との交点を検出してもよい。そして顔向き検出部31は、左右それぞれの目尻間の距離に対する、その交点から鼻尖点までの距離の比、その交点から左の目尻までの距離に対するその交点から右の目尻までの距離の比、及び、画像上の水平線に対する、左右それぞれの目尻を結んだ線の傾きに基づいて、ドライバの顔の向き(ピッチ角、ヨー角及びロール角)を検出してもよい。あるいは、顔向き検出部31は、左右それぞれの目尻の中点または左右それぞれの眼頭の中点と、左右それぞれの口角点の中点とを結ぶ線を顔の正中線として検出し、顔の正中線に対する鼻尖点の位置関係に基づいて、ドライバの顔の向きを検出してもよい。あるいはまた、顔向き検出部31は、ドライバの顔の向きを検出するように予め学習された識別器に顔画像を入力することで、ドライバの顔の向きを検出してもよい。顔向き検出部31は、そのような識別器として、例えば、CNN型のアーキテクチャを有するDNNを用いることができる。
【0026】
さらにまた、顔向き検出部31は、過去に得られた顔画像に基づく、ドライバの顔に対する装着物の着脱の判定結果に基づいて、ドライバの顔の向きを検出するために適用される手法を切り替えてもよい。例えば、顔向き検出部31は、装着物が顔から外されたと判定された以降では、顔の特徴点を3次元顔モデルにフィッティングすることで、あるいは、上記のように顔の特徴点間の位置関係に基づいてドライバの顔の向きを検出すればよい。一方、顔向き検出部31は、装着物が顔に取り付けられたと判定された以降では、顔画像を識別器に入力することでドライバの顔の向きを検出すればよい。
【0027】
さらに、顔向き検出部31は、ECU4がドライバモニタカメラ2から顔画像を受け取る度に、受け取った顔画像に基づいて、ドライバの顔の位置を検出する。例えば、顔向き検出部31は、検出された所定の顔の特徴点に基づいて、ドライバの顔の位置を検出する。例えば、顔向き検出部31は、左右の目頭の中点の位置、鼻尖点の位置、あるいは、顔の各特徴点の重心の位置を、顔の位置として検出する。あるいは、顔向き検出部31は、顔領域の重心の位置を顔の位置として検出してもよい。なお、顔向き検出部31は、過去に得られた顔画像に基づく、ドライバの顔に対する装着物の着脱の判定結果に基づいて、ドライバの顔の位置を検出するために適用される手法を切り替えてもよい。例えば、顔向き検出部31は、装着物が顔から取り外されたと判定された以降では、顔の各特徴点の重心位置をドライバの顔の位置として検出すればよい。一方、顔向き検出部31は、装着物が顔に取り付けられたと判定された以降では、顔領域の重心をドライバの顔の位置として検出すればよい。
【0028】
なお、顔向き検出部31は、ドライバモニタカメラ2から受信したすべての顔画像についてドライバの顔の向き及び顔の位置を検出する必要はなく、ドライバモニタカメラ2から所定枚数の顔画像を受信する度に、それら所定枚数の顔画像の何れか一つからドライバの顔の向き及び顔の位置を検出してもよい。あるいは、顔向き検出部31は、車両10またはドライバの状況が所定の状況となっているときに得られた顔画像からのみ、ドライバの顔の向き及び顔の位置を検出してもよい。例えば、顔向き検出部31は、車両10の速度が所定の速度以上である場合に得られた顔画像からのみ、ドライバの顔の向き及び顔の位置を検出してもよい。すなわち、顔の向き及び顔の位置が検出される時系列の一連の顔画像には、ドライバモニタカメラ2により得られる顔画像のうちの一部の顔画像のみが含まれてもよい。
【0029】
顔向き検出部31は、ドライバの顔の向き及び顔の位置を検出する度に、検出した顔の向き及び顔の位置を表す情報を、顔基準更新部33及び判定部34へ出力する。また、顔向き検出部31は、ECU4がドライバモニタカメラ2から顔画像を取得する度に、その顔画像から検出された顔特徴点及び顔領域を表す情報を着脱検出部32へ出力する。
【0030】
着脱検出部32は、顔向き検出部31から検出された顔特徴点及び顔領域を表す情報を受け取る度に、ドライバの顔に対して、サングラスまたはマスクといった装着物が取り付けられたか否か、及び、ドライバの顔に装着されていた装着物が取り外されたか否か判定する。
【0031】
例えば、ドライバがサングラスを装着すると、その装着前まで検出されていた眼の特徴点(例えば、目頭または目尻)がその装着以降検出されなくなる。同様に、ドライバがマスクを装着すると、その装着前まで検出されていた口または鼻の特徴点(例えば、口角点または鼻尖点)がその装着以降検出されなくなる。逆に、ドライバが装着していたサングラスを取り外すと、その取り外し前まで検出されなかった目の特徴点がその取り外し以降検出されるようになる。同様に、ドライバがマスクを取り外すと、その取り外し前まで検出されなかった口の特徴点がその取り外し以降検出されるようになる。
【0032】
そこで、着脱検出部32は、直前の顔画像において、顔の所定の部位(例えば、目、口または鼻)の特徴点が検出されており、かつ、最新の顔画像において、その所定の部位の特徴点が検出されていない場合に、顔に対して装着物が取り付けられたことを検出する。逆に、着脱検出部32は、直前の顔画像において、顔の所定の部位の特徴点が検出されておらず、かつ、最新の顔画像において、その所定の部位の特徴点が検出されている場合に、顔から装着物が取り外されたことを検出する。なお、着脱検出部32は、直前の顔画像から検出された特徴点の種類及び数と、最新の顔画像から検出された特徴点の種類及び数とが同じである場合には、ドライバの顔に対する装着物の着脱は行われていないと判定する。
【0033】
なお、ドライバの顔に対して、赤外線カットの機能を有するサングラスが装着された場合には、照明光源である赤外光源からの赤外光がサングラスで吸収され、顔画像上のサングラスに相当する領域は黒つぶれとなる。逆に、ドライバの顔に対してマスクが装着された場合には、赤外光がそのマスクで反射されるため、顔画像上のマスクに相当する領域は白飛びとなる。
【0034】
そこで変形例によれば、着脱検出部32は、顔領域を表す情報を受け取る度に、顔画像におけるその顔領域内で輝度が所定の黒つぶれ閾値以下となる黒つぶれ領域または顔領域内で輝度が所定の白飛び閾値以上となる白飛び領域が存在するか否か判定する。そして着脱検出部32は、直前の顔画像において顔領域内に黒つぶれ領域及び白飛び領域がなく、かつ、最新の顔画像において顔領域内に黒つぶれ領域または白飛び領域が検出された場合に、顔に対して装着物が取り付けられたことを検出してもよい。逆に、着脱検出部32は、直前の顔画像において顔領域内に黒つぶれ領域または白飛び領域が存在し、かつ、最新の顔画像において顔領域内に黒つぶれ領域及び白飛び領域の何れも検出されない場合に、顔から装着物が取り外されたことを検出してもよい。この場合、着脱検出部32は、例えば、顔領域を複数の部分領域に分割して、複数の部分領域のそれぞれごとに輝度平均値を算出し、各部分領域の輝度平均値を黒つぶれに相当する黒つぶれ閾値及び白飛びに相当する白飛び閾値と比較すればよい。そして何れかの部分領域の輝度平均値が黒つぶれ閾値以下である場合、着脱検出部32は、その部分領域を黒つぶれ領域とすればよい。また、何れかの部分領域の輝度平均値が白飛び閾値以上である場合、着脱検出部32は、その部分領域を白飛び領域とすればよい。なお、サングラスを顔の下方に着用すること、及び、運転中にマスクで目を覆うことは考えられないので、着脱検出部32は、顔領域内の全ての部分領域について輝度を調べる必要は無く、例えば、顔領域内の中心近傍に位置する部分領域についてのみ、その輝度平均値を黒つぶれ閾値と比較して、その部分領域が黒つぶれ領域か否かを判定すればよい。また、着脱検出部32は、顔領域内の下方に位置する部分領域(例えば、顔領域の下半分または顔領域の下端から顔領域の1/3程度の領域)についてのみ、その輝度平均値を白飛び閾値と比較して、その部分領域が白飛び領域か否かを判定すればよい。
【0035】
着脱検出部32は、ドライバの顔に対して装着物が取り付けられたことを検出する度に、その旨を顔向き検出部31及び顔基準更新部33へ通知する。同様に、着脱検出部32は、ドライバの顔から装着物が取り外されたことを検出する度に、その旨を顔向き検出部31及び顔基準更新部33へ通知する。なお、以下では、ドライバの顔に対して装着物が取り付けられたことの検出、及び、ドライバの顔から装着物が取り外されたことの検出を、まとめて、ドライバの顔に対する装着物の着脱の検出と呼ぶことがある。
【0036】
顔基準更新部33は、直近の所定期間(例えば、数十秒間~1分間)に得られた時系列の複数の顔画像のそれぞれから検出されたドライバの顔の向きに基づいてドライバの顔の基準方向を更新する。また、顔基準更新部33は、直近の所定期間に得られたその複数の顔画像のそれぞれから検出されたドライバの顔の位置に基づいてドライバの顔の基準位置を更新する。ただし、その所定期間内において、着脱検出部32から、ドライバの顔に対する装着物の着脱が検出されたことが通知されると、顔基準更新部33は、直近の所定期間に得られた複数の顔画像のうち、その検出以降に得られた顔画像に基づいて検出されたドライバの顔の向き及び顔の位置に基づいて、基準方向及び基準位置を更新する。
【0037】
ドライバが車両10を運転している場合、ドライバは、必要に応じて左右を確認し、あるいは、ルームミラーを介して後方を確認することがあるものの、ドライバは基本的に車両10の進行方向、すなわち、車両10の正面側を見ていると想定される。そのため、ドライバの顔の向きは、車両10の進行方向を向いていることが多いと想定される。そこで、顔基準更新部33は、直近の所定期間に得られた時系列の複数の顔画像のそれぞれから検出されたドライバの顔の向きの平均値をドライバの顔の基準方向として算出する。したがって、ドライバの顔の基準方向は、ドライバが車両10の進行方向を見ているときのドライバの顔の向きを表す。またこのように、直近の所定期間における顔の向きの平均値として基準方向を算出することで、ドライバが運転中に姿勢を変えるなどしてドライバモニタカメラ2に対するドライバの頭部の位置の相対的な位置関係が変化しても、顔基準更新部33は、常に正確な基準方向を算出することができる。
【0038】
ただし、上記のように、直近の所定期間内において、着脱検出部32から、ドライバの顔に対する装着物の着脱が検出されたことが通知されると、顔基準更新部33は、それまでに求められた顔の基準方向を一旦リセットする。そして顔基準更新部33は、直近の所定期間に得られる複数の顔画像のうち、その検出以降に得られた顔画像のそれぞれから検出されたドライバの顔の向きの平均値を、ドライバの顔の基準方向とする。ドライバの顔に対して装着物が取り付けられ、あるいは、ドライバの顔から装着物が取り外されると、その着脱以前において顔画像に表されていた顔の特徴点がその着脱以降、顔画像に写らなくなり、あるいはその逆となることがある。そのため、ドライバの顔に対する装着物の着脱の前後で、ドライバの顔の向きが実際には変化していなくても、顔向き検出部31による顔の向きの検出結果が変化することがある。そこで上記のように、顔基準更新部33は、ドライバの顔に対する装着物の着脱の検出以降に得られた顔画像から得られた顔の向きのみを顔の基準方向の算出に利用することで、ドライバの顔に対する装着物の最新の装着状況に応じた適切な基準方向を算出することができる。
【0039】
同様に、顔基準更新部33は、直近の所定期間に得られた時系列の複数の顔画像のそれぞれから検出されたドライバの顔の位置の平均値をドライバの顔の基準位置として算出する。ただし、直近の所定期間内において、着脱検出部32から、ドライバの顔に対する装着物の着脱が検出されたことが通知されると、顔基準更新部33は、それまでに求められた顔の基準位置を一旦リセットする。そして顔基準更新部33は、直近の所定期間に得られた複数の顔画像のうち、その検出以降に得られた顔画像のそれぞれから検出されたドライバの顔の位置の平均値を、ドライバの顔の基準位置とすればよい。
【0040】
なお、上記のように、ドライバは、車両10の運転中において、車両10の周囲を確認するために、車両10の正面方向以外を向くことがある。そこで、顔基準更新部33は、上記のようにして一旦算出した顔の基準方向を仮の基準方向とする。そして顔基準更新部33は、仮の基準方向の算出に用いられた複数の顔画像のそれぞれについて、その顔画像から検出された顔の向きと仮の基準方向との差の絶対値を算出し、その差の絶対値が所定の許容範囲から外れる顔画像について、基準方向の算出に利用しないようにしてもよい。すなわち、顔基準更新部33は、仮の基準方向の算出に用いられた複数の顔画像のうち、基準方向の算出に利用しないと判定された顔画像以外の残りの顔画像のそれぞれから検出されたドライバの顔の向きの平均値を、改めてドライバの顔の基準方向として算出すればよい。
【0041】
同様に、顔基準更新部33は、上記のようにして一旦算出した顔の基準位置を仮の基準位置とする。そして顔基準更新部33は、仮の基準位置の算出に用いられた複数の顔画像のそれぞれについて、その顔画像から検出された顔の位置と仮の基準位置との差の絶対値を算出し、その差の絶対値が所定の許容範囲から外れる顔画像について、基準位置の算出に利用しないようにしてもよい。すなわち、顔基準更新部33は、仮の基準位置の算出に用いられた複数の顔画像のうち、基準位置の算出に利用しないと判定された顔画像以外の残りの顔画像のそれぞれから検出されたドライバの顔の位置の平均値を、改めてドライバの顔の基準位置として算出すればよい。
【0042】
図4(a)は、直近の所定期間においてドライバの顔に対する装着物の着脱が無い場合の基準方向及び基準位置の検出の一例を示す図である。一方、図4(b)は、直近の所定期間中にドライバの顔に対する装着物の着脱が検出された場合の基準方向及び基準位置の検出の一例を示す図である。図4(a)及び図4(b)において、横軸は時間を表す。
【0043】
図4(a)に示される例では、現時刻t0に対する直近の所定期間Pにおいて、ドライバの顔に対する装着物の着脱は検出されていない。したがって、所定期間P内に得られた顔画像401-1~401-nのそれぞれから検出されたドライバの顔の向き及び顔の位置に基づいて、ドライバの顔の基準方向及び基準位置が算出される。
【0044】
一方、図4(b)に示される例では、現時刻t0に対する直近の所定期間P内の時刻t1において、ドライバの顔に対する装着物の着脱が検出されている。そこで、所定期間P内に得られた顔画像402-1~402-nのうち、時刻t1以降に得られた顔画像402-m~402-nのそれぞれから検出されたドライバの顔の向き及び顔の位置に基づいて、ドライバの顔の基準方向及び基準位置が算出される。したがって、顔基準更新部33は、ドライバの顔に対する装着物の着脱による、ドライバの顔の基準方向及び基準位置の算出に対する影響を無くすことができる。
【0045】
顔基準更新部33は、ドライバの顔の基準方向及びドライバの顔の基準位置を更新する度に、更新後のドライバの顔の基準方向及びドライバの顔の基準位置を判定部34へ通知する。
【0046】
判定部34は、最新のドライバの顔の向き及びドライバの顔の位置と、ドライバの顔の基準方向及びドライバの顔の基準位置とを比較することで、ドライバの状態が車両10の運転に適した状態か否か判定する。
【0047】
例えば、判定部34は、最新のドライバの顔の向きとドライバの顔の基準方向との差の絶対値を算出し、その差の絶対値を所定の顔向き許容範囲と比較する。そして判定部34は、その差の絶対値が顔向き許容範囲から外れている場合、ドライバは余所見をしている、すなわち、ドライバの状態は車両10の運転に適した状態でないと判定する。同様に、判定部34は、最新のドライバの顔の位置とドライバの顔の基準位置との差の絶対値を算出し、その差の絶対値を所定の位置許容範囲と比較する。そして判定部34は、その差の絶対値が位置許容範囲から外れる場合、ドライバの状態は車両10の運転に適した状態でないと判定する。
【0048】
なお、上記のように、ドライバは、車両10の周辺の状況の確認のために、車両10の正面方向以外を向くことがある。ただしそのような場合でも、ドライバが車両10の運転に集中していれば、ドライバは、車両10の正面方向以外を継続して向くことはない。そこで変形例によれば、判定部34は、ドライバの顔の向きとドライバの顔の基準方向との差の絶対値が顔向き許容範囲から外れている期間が所定時間(例えば、数秒間)以上継続した場合に、ドライバの状態は車両10の運転に適した状態でないと判定してもよい。同様に、判定部34は、ドライバの顔の位置とドライバの顔の基準位置との差の絶対値が位置許容範囲から外れている期間が所定時間以上継続した場合に、ドライバの状態は車両10の運転に適した状態でないと判定してもよい。
【0049】
判定部34は、ドライバの状態が車両10の運転に適した状態でないと判定した場合、ドライバに対して車両10の正面を向くように警告する警告メッセージを含む警告情報を生成する。そして判定部34は、生成した警告情報を、通信インターフェース21を介してユーザインターフェース3へ出力することで、ユーザインターフェース3にその警告メッセージを表示させ、あるいは、ユーザインターフェース3が有するスピーカに、ドライバに対して車両10の正面を向くように警告する音声を出力させる。
【0050】
図5は、プロセッサ23により実行される、ドライバモニタ処理の動作フローチャートである。プロセッサ23は、所定の周期ごと、例えば、顔画像が取得される度に、以下の動作フローチャートに従ってドライバモニタ処理を実行すればよい。
【0051】
プロセッサ23の顔向き検出部31は、ドライバモニタカメラ2により得られた顔画像に基づいて車両10のドライバの顔向き及び顔の位置を検出する(ステップS101)。また、プロセッサ23の着脱検出部32は、ドライバの顔に対する装着物の着脱を検出できたか否か判定する(ステップS102)。
【0052】
ステップS102にて、ドライバの顔に対する装着物の着脱が検出された場合(ステップS102-Yes)、顔基準更新部33は、顔の基準方向及び顔の基準位置をリセットする(ステップS103)。
【0053】
一方、ドライバの顔に対する装着物の着脱が検出されない場合(ステップS102-No)、あるいは、ステップS103の後、プロセッサ23の顔基準更新部33は、直近の所定期間内、かつ、前回の装着物の着脱の検出以降に得られた複数の顔画像のそれぞれから検出されたドライバの顔の向きの平均値をドライバの顔の基準方向とするよう、その基準方向を更新する(ステップS104)。また、顔基準更新部33は、直近の所定期間内、かつ、前回の装着物の着脱の検出以降に得られた複数の顔画像のそれぞれから検出されたドライバの顔の位置の平均値をドライバの顔の基準位置とするよう、その基準位置を更新する(ステップS105)。
【0054】
基準方向及び基準位置が更新された後、プロセッサ23の判定部34は、最新のドライバの顔の向き及び顔の位置と、ドライバの顔の基準方向及び顔の基準位置とを比較することで、ドライバの状態を判定する(ステップS106)。そしてプロセッサ23は、ドライバモニタ処理を終了する。なお、ステップS103にて顔の基準方向及び基準位置がリセットされた直後では、最新の顔の向き及び最新の顔の位置と基準方向及び基準位置が同一となるので、プロセッサ23は、ステップS106の処理を省略してもよい。
【0055】
以上に説明してきたように、このドライバモニタ装置は、直近の所定期間内に得られた複数の顔画像のそれぞれから検出されたドライバの顔の向き及び顔の位置に基づいて、ドライバの顔の基準方向及び顔の基準位置を更新する。ただし、このドライバモニタ装置は、ドライバの顔に対する装着物の着脱を検出すると、一旦顔の基準方向及び顔の基準位置をリセットする。すなわち、このドライバモニタ装置は、直近の所定期間内に得られた複数の顔画像のうち、ドライバの顔に対する装着物の着脱が検出された以降に得られた1以上の顔画像のそれぞれから検出されたドライバの顔の向き及び顔の位置に基づいて、ドライバの顔の基準方向及び顔の基準位置を更新する。そのため、このドライバモニタ装置は、ドライバの顔に対する装着物の着脱を起因とする、検出される顔の向きまたは顔の位置のずれによる、ドライバの顔の基準方向及び顔の基準位置への影響を無くすことができる。したがって、このドライバモニタ装置は、ドライバの顔に対する装着物の着脱が行われても、ドライバの顔の基準方向及び顔の基準位置を正確に設定できる。
【0056】
なお、ドライバは、顔に一旦装着した装着物を顔から取り外し、あるいは、顔に装着されていた装着物を一旦取り外してから再度装着することがある。このような場合、一旦顔に装着された装着物が再度取り外されたときのドライバの顔の基準方向及び顔の基準位置は、装着物が装着されているときの基準方向及び基準位置よりも、その装着物がドライバの顔に装着される前の基準方向及び基準位置に近いと想定される。同様に、一旦顔から取り外された装着物が再度装着されたときのドライバの顔の基準方向及び顔の基準位置は、装着物が取り外されているときの基準方向及び基準位置よりも、以前にその装着物がドライバの顔に装着されていたときの基準方向及び基準位置に近いと想定される。
【0057】
そこで変形例によれば、着脱検出部32がドライバの顔に装着物が取り付けられたことを検出すると、顔基準更新部33は、ドライバの顔の基準方向及び顔の基準位置をリセットする前に、その時点における、ドライバの顔の基準方向(第1の基準方向)及び顔の基準位置(第1の基準位置)をメモリ22に記憶してもよい。そしてその後、着脱検出部32がドライバの顔から装着物が取り外されたことを検出したときに、顔基準更新部33は、メモリ22から、ドライバの顔に装着物が取り付けられたことが検出されたときのドライバの顔の基準方向(第1の基準方向)及び顔の基準位置(第1の基準位置)を読み込んで、装着物が取り外されたことが検出された時点のドライバの顔の基準方向及び顔の基準位置としてもよい。同様に、着脱検出部32がドライバの顔から装着物が取り外されたことを検出すると、顔基準更新部33は、ドライバの顔の基準方向及び顔の基準位置をリセットする前に、その時点における、ドライバの顔の基準方向(第2の基準方向)及び顔の基準位置(第2の基準位置)をメモリ22に記憶してもよい。そしてその後、着脱検出部32がドライバの顔に装着物が取り付けられたことを検出したときに、顔基準更新部33は、メモリ22から、ドライバの顔から装着物が取り外されたことが検出されたときのドライバの顔の基準方向(第2の基準方向)及び顔の基準位置(第2の基準位置)を読み込んで、装着物が取り付けられたことが検出された時点のドライバの顔の基準方向及び顔の基準位置としてもよい。これにより、顔基準更新部33は、ドライバの顔に対する装着物の着脱が検出されたときのドライバの顔の基準方向及び基準位置をより正確に設定することができる。
【0058】
また、顔に装着物がある場合の方が、装着物が無い場合と比較して、顔向きなどの検出精度が低下し、その結果として、検出される顔向きなどがばらつく。そこで他の変形例によれば、顔基準更新部33は、ドライバの顔に装着物が装着されている場合における、基準方向または基準位置の更新に利用する直近の所定期間の長さを、ドライバの顔に装着物が装着されていない場合における、その所定期間よりも長くしてもよい。あるいは、顔基準更新部33は、ドライバの顔に装着物が装着されている場合における、基準方向または基準位置の更新の際に参照するドライバの顔向きまたはドライバの顔の位置の許容範囲を、ドライバの顔に装着物が装着されていない場合における、その許容範囲よりも広くしてもよい。これにより、顔基準更新部33は、ドライバの顔に装着物が装着されている場合の顔の基準方向及び基準位置の精度低下を抑制することができる。
【0059】
また他の変形例によれば、顔基準更新部33は、装着物の取り付けが検出される直前の基準方向または基準位置に対する、装着物の取り付けが検出された直後の顔の向きまたは顔の位置の差をオフセットとしてメモリ22に記憶してもよい。そして顔向き検出部31は、装着物が顔に取り付けられている間、そのオフセット分だけ、検出された顔の向きまたは顔の位置から減じることで、検出された顔の向きまたは顔の位置を補正してもよい。これにより、顔向き検出部31は、車両10の運転中にドライバの顔に対して装着物が取り付けられても、装着物の有無による顔の基準方向または基準位置のずれによらず、顔に対して装着物が装着されている場合の顔の向き及び顔の位置の検出精度低下を抑制することができる。
【0060】
さらに他の変形例によれば、判定部34は、ドライバの顔の向きまたは顔の位置の何れか一方に基づいてドライバの状態を判定してもよい。この場合、顔向き検出部31は、ドライバの顔の向き及び顔の位置のうち、ドライバの状態の判定に利用される方のみを検出してもよい。同様に、顔基準更新部33は、ドライバの顔の基準方向及び顔の基準位置のうち、ドライバの状態の判定に利用される方のみを更新してもよい。
【0061】
上記の実施形態または変形例によるドライバモニタ処理は、ドライバが車両の進行方向を監視することを条件として車両を自動運転制御する車両制御システムに適用されてもよい。この場合には、例えば、ECU4のプロセッサ23は、車両10に搭載された、車両10の周囲の領域を撮影するように設けられたカメラ(図示せず)により得られた画像から、車両10の周囲に存在する物体を検出し、検出した物体と車両10とが衝突しないように車両10を自動運転制御してもよい。そしてプロセッサ23は、上記の実施形態または変形例に従って、ドライバの顔の基準方向または顔の基準位置を更新しつつ、その基準方向または基準位置とドライバの顔の向きまたは顔の位置とを比較することで、ドライバが車両10の進行方向を監視しているか否かを判定すればよい。この場合、プロセッサ23は、ドライバが車両10の進行方向を監視していないと判定し、ドライバに車両10の進行方向を監視するようユーザインターフェース3を介して警告してから一定期間経過しても、ドライバが車両10の進行方向を監視していない場合、車両10の自動運転制御を停止して、ドライバに車両10を運転させるようにしてもよい。
【0062】
また、上記の実施形態または変形例による、ECU4のプロセッサ23の機能を実現するコンピュータプログラムは、半導体メモリ、磁気記録媒体または光記録媒体といった、コンピュータ読取可能な可搬性の記録媒体に記録された形で提供されてもよい。
【0063】
以上のように、当業者は、本発明の範囲内で、実施される形態に合わせて様々な変更を行うことができる。
【符号の説明】
【0064】
1 車両制御システム
10 車両
2 ドライバモニタカメラ
3 ユーザインターフェース
4 電子制御装置(ECU)
21 通信インターフェース
22 メモリ
23 プロセッサ
31 顔向き検出部
32 着脱検出部
33 顔基準更新部
34 判定部
図1
図2
図3
図4
図5