(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022166702
(43)【公開日】2022-11-02
(54)【発明の名称】顔認識装置
(51)【国際特許分類】
G06T 7/00 20170101AFI20221026BHJP
G06T 7/70 20170101ALI20221026BHJP
【FI】
G06T7/00 660A
G06T7/70 B
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2021072097
(22)【出願日】2021-04-21
(71)【出願人】
【識別番号】000004260
【氏名又は名称】株式会社デンソー
(74)【代理人】
【識別番号】100106149
【弁理士】
【氏名又は名称】矢作 和行
(74)【代理人】
【識別番号】100121991
【弁理士】
【氏名又は名称】野々部 泰平
(74)【代理人】
【識別番号】100145595
【弁理士】
【氏名又は名称】久保 貴則
(72)【発明者】
【氏名】増田 正樹
(72)【発明者】
【氏名】黒川 景亮
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096AA02
5L096AA06
5L096BA04
5L096CA04
5L096DA03
5L096FA09
5L096FA32
5L096FA37
5L096FA59
5L096FA62
5L096FA64
5L096FA66
5L096FA67
5L096FA69
5L096GA51
5L096JA03
5L096JA09
(57)【要約】
【課題】処理負荷を抑制しつつ、顔が検出できない場合に顔が横向きであると高精度に推定することができる顔認識装置を提供する。
【解決手段】顔認識装置10は、所定の推定条件を満たす場合には、検出不可状態であっても、顔が横に向いたと推定する。検出状態から検出不可状態になった場合、顔が横を向いたのか、顔が手などの障害物などで一部が覆われたのか、顔が画像内から無くなったのかなど、判断することが望ましい。そこで推定部16は、検出不可状態になったときに、部分間距離の変化が所定の推定条件を満たす場合には、顔が横を向いたと推定している。推定条件は、検出不可時の直前の第1経過期間において、部分間距離が小さくなっているという条件である。
【選択図】
図11
【特許請求の範囲】
【請求項1】
対象者の顔を含む画像から顔の特徴部分を抽出し、抽出した特徴部分を用いて前記対象者の顔を検出する顔検出部(13)と、
前記顔検出部の検出結果から、画像における前記対象者の顔の左右に対をなして位置する同じ特徴部分間の距離である部分間距離を算出する距離算出部(18)と、
前記顔検出部が顔を検出している検出状態から、顔を検出できない検出不可状態となった場合、推定条件を満たす場合には、前記対象者の顔が横を向いていると推定する推定部(16)と、を含み、
前記部分間距離は、顔の左右対称性に基づいて、顔の左右方向の中心から等距離に位置するとみなせる顔の特徴部分間の距離であり、
前記推定条件は、前記検出不可状態となった検出不可時の直前の第1経過期間で前記部分間距離が小さくなっているという条件である顔認識装置。
【請求項2】
前記推定条件には、前記検出不可時の直前の前記部分間距離が、前記対象者が正面を向いている所定の正面範囲内にはないという条件をさらに含む請求項1に記載の顔認識装置。
【請求項3】
前記部分間距離は、画像における前記対象者の両目の中心間距離である請求項1または2に記載の顔認識装置。
【請求項4】
前記距離算出部は、前記顔検出部の検出結果から、画像における前記対象者の顔の左右に位置する同じ特徴部分の左右方向の大きさである特徴距離を、左側の前記特徴部分と右側の前記特徴部分のそれぞれで算出し、
前記推定条件には、前記検出不可状態となった検出不可時の直前の第2経過期間で、左側の前記特徴部分の前記特徴距離および右側の前記特徴部分の前記特徴距離の両方が減少しており、かつ前記第2経過期間における前記減少に差があるという条件をさらに含む請求項1~3のいずれか1つに記載の顔認識装置。
【請求項5】
前記推定部は、前記推定条件を満たした場合、
右側の前記特徴部分の前記特徴距離が左側の前記特徴部分の前記特徴距離よりも小さいときは、顔が右に向いたと推定し、
左側の前記特徴部分の前記特徴距離が右側の前記特徴部分の前記特徴距離よりも小さいときは、顔が左に向いたと推定する請求項4に記載の顔認識装置。
【請求項6】
右側の前記特徴部分の前記特徴距離は、画像における前記対象者の右目の目頭から目尻までの距離であり、
左側の前記特徴部分の前記特徴距離は、画像における前記対象者の左目の目頭から目尻までの距離である請求項4または5に記載の顔認識装置。
【請求項7】
前記顔検出部は、前記対象者の顔を含む画像から、前記対象者の顔が含まれる顔領域を定め、前記顔領域中において、顔の特徴部分における特徴点を抽出し、
前記推定条件は、前記検出不可時の直前の第3経過期間で前記特徴点が左右のいずれかに移動し、かつ、前記第3経過期間における前記特徴点の移動量が前記顔領域の幅の半分未満であるという条件をさらに含む請求項1~6のいずれか1つに記載の顔認識装置。
【請求項8】
前記顔検出部は、回転軸を前記対象者の顔を通過し、顔の正面方向(D1)に延びる軸とした場合、前記回転軸周りの顔の傾きを抽出し、
前記推定条件は、前記検出不可時の直前の第4経過期間で顔の傾きが所定の垂直範囲内であるという条件をさらに含む請求項1~7のいずれか1つに記載の顔認識装置。
【請求項9】
前記顔検出部は、前記対象者の顔を含む画像から、前記対象者の顔が含まれる顔領域を定め、前記顔領域の周辺に配置した輝度値評価領域(R4)において輝度値を検出し、
前記推定条件は、前記検出不可時の直前の第5経過期間で前記輝度値評価領域の平均の輝度値の変動が所定の安定範囲内であり、かつ前記検出不可時の直前の前記輝度値評価領域の輝度値が所定の中間明るさ範囲内であるという条件をさらに含む請求項1~8のいずれか1つに記載の顔認識装置。
【請求項10】
前記推定条件は、前記検出不可時の直前の第6経過期間のうち、前記顔検出部によって顔を検出した検出時間が占める検出率が所定の安定検出率以上であるという条件をさらに含む請求項1~9のいずれか1つに記載の顔認識装置。
【発明の詳細な説明】
【技術分野】
【0001】
この明細書における開示は、対象者の顔を認識する顔認識装置に関する。
【背景技術】
【0002】
画像から対象者の顔を検出する顔検出装置は、顔を検出して顔向き角度を検出する。顔認識装置は、車両に搭載されて、運転者の脇見の有無を検出する装置に用いられる。従来、運転者の脇見の有無を判定するための脇見判定装置は、顔向き角度算出部を備え、この顔向き角度算出部は、顔撮像部で撮像された運転者の顔画像データに基づいて顔向き角度を算出する。そして顔向き角度算出部が顔画像データから顔向き角度を算出することができないことに基づき、顔向き角度が検知限界範囲外であるとみなされる場合に、運転者が脇見状態にあると判定し、運転者に警告を与えるようにしている。
【0003】
このような顔向き角度の検出精度を上げるために、所定時間における顔向きの移動量から顔移動の角速度を計算する技術が開示されている(たとえば特許文献1参照)。顔移動の角速度が一定以下の場合には、顔の動きが止まったとして、移動前の顔向き角度から移動後の顔向き角度を推定している。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
顔が横を向いた場合には、顔の特徴が現れにくいので、顔が検出できないという問題がある。したがって顔を検出できなくなった場合には、顔が横を向いたのか、他の要因、たとえば手などで顔の一部が覆われたのかが判断できない。しかし顔が検出できなくとも、顔が横を向いたことを推定できることが望ましい。
【0006】
これに対して、前述の特許文献1に記載の技術では、顔移動の角速度を求めるので、顔が横を向く動作を検出でき、顔が横を向く動作を検出したことで顔が横向きであることを検出している。しかし、顔移動の角速度を求めるために、顔領域を多数の小領域に分割して、全ての小領域について顔移動前後で同じ画像を映し出す領域を見つけて角速度を算出している。このような方法では、分割した全ての小領域について移動量の探索を行うため、繰り返し処理が多くなり、処理負荷が大きくなるという問題がある。
【0007】
そこで、開示される目的は前述の問題点を鑑みてなされたものであり、処理負荷を抑制しつつ、顔が検出できない場合に顔が横向きであると高精度に推定することができる顔認識装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
本開示は前述の目的を達成するために以下の技術的手段を採用する。
【0009】
ここに開示された顔認識装置は、対象者の顔を含む画像から顔の特徴部分を抽出し、抽出した特徴部分を用いて対象者の顔を検出する顔検出部(13)と、顔検出部の検出結果から、画像における対象者の顔の左右に対をなして位置する同じ特徴部分間の距離である部分間距離を算出する距離算出部(18)と、顔検出部が顔を検出している検出状態から、顔を検出できない検出不可状態となった場合、推定条件を満たす場合には、対象者の顔が横を向いていると推定する推定部(16)と、を含み、部分間距離は、顔の左右対称性に基づいて、顔の左右方向の中心から等距離に位置するとみなせる顔の特徴部分間の距離であり、推定条件は、検出不可状態となった検出不可時の直前の第1経過期間で部分間距離が小さくなっているという条件である顔認識装置である。
【0010】
このような顔認識装置に従えば、推定条件を満たす場合には、検出不可状態であっても、顔が横に向いたと推定する。検出状態から検出不可状態になった場合、顔が横を向いたのか、顔が手などの障害物などで一部が覆われたのか、顔が画像内から無くなったのかなど、判断することが望ましい。そこで推定部は、検出不可状態になったときに、部分間距離の変化が所定の推定条件を満たす場合には、顔が横を向いたと推定している。部分間距離は、顔検出部の検出結果から、画像における対象者の顔の左右に対をなして位置する同じ特徴部分間の距離である。左右に対をなして位置する特徴部分は、たとえば両目、両眉毛、口の両わきなどである。部分間距離は、顔の左右対称性に基づいて、顔の中心から等距離に位置するとみなせる顔の特徴部分間の距離である。したがって、たとえば両目の中心間距離が部分間距離となる。
【0011】
このような部分間距離は、正面の場合が最も大きく、顔が横を向くについて小さくなる。そこで推定条件は、検出不可時の直前の第1経過期間において、部分間距離が小さくなっているという条件である。検出不可時の直前の第1経過期間で部分間距離が小さくなった場合には、顔が横に移動することで部分間距離が小さくなった可能性が高い。したがって推定条件を満たす場合には、検出不可状態であっても、顔が横を向いたと推定する。このような部分間距離の算出は、一般的な画像処理よりも処理負荷が低い。これによって処理負荷を抑制しつつ、顔が検出できなくなったときに横向き推定する推定精度を高めることができる。
【0012】
なお、前述の各手段の括弧内の符号は、後述する実施形態に記載の具体的手段との対応関係を示す一例である。
【図面の簡単な説明】
【0013】
【
図8】顔向き角度と顔スコアの関係の一例を示すグラフ。
【
図11】右向き時の特徴点間距離の時間変化の一例を示すグラフ。
【
図12】左向き時の特徴点間距離の時間変化の一例を示すグラフ。
【
図14】顔の傾きθの時間変化の一例を示すグラフ。
【
図16】検出率と顔スコアの時間変化の一例を示すグラフ。
【発明を実施するための形態】
【0014】
(第1実施形態)
本開示の第1実施形態に関して、
図1~
図16を用いて説明する。本実施形態の車両用警告装置100は、車両101に搭載されて用いられ、走行中に運転者の前方不注視を検出した場合には、運転者に警告する。車両用警告装置100は、
図1に示すように、顔認識装置10、車両情報取得部30および警告部20を備えている。顔認識装置10は、カメラ11と制御部12を含んで構成される。
【0015】
車両情報取得部30は、車両情報を取得し、取得した車両情報を顔認識装置10の制御部12に与える。車両情報取得部30は、例えば、他の制御装置と通信を行う通信インターフェースからなる。車両情報取得部30は、顔認識装置10が必要とする車両情報、たとえば車速およびブレーキ操作情報を保有している他の制御装置と通信を行い、その車両情報を取得する。また、車両情報取得部30は、必要な車両情報を検出する各種のセンサ、たとえば車速センサ、およびブレーキスイッチなどであっても良い。
【0016】
次に、顔認識装置10の該略について説明する。顔認識装置10は、カメラ11および制御部12を備えている。カメラ11は、たとえば車室内を前方から後方に向けて撮像し、運転席に着座した運転者の顔全体を含む画像を撮像する運転席カメラである。カメラ11は、
図2に示すように、運転者の前方側に設けられ、例えば、各種の計器が配置されるインストルメントパネル内や、ルームミラーの付近に配設される。
図2では、下側が運転者の正面方向D1である。カメラ11が設けられる位置は車種などによって異なり、カメラ11の光軸と運転者席側とは、
図2に示すように、一致せずに傾いている。そして、カメラ11は、周期的に運転者の顔を含む画像を撮像して、制御部12へ出力する。
【0017】
制御部12には、カメラ11によって撮像された画像、および車両情報取得部30からの情報が入力される。制御部12は、記憶媒体に記憶されているプログラムを実行し、各部を制御する。制御部12は、少なくとも1つの演算処理装置(CPU)と、プログラムとデータとを記憶する記憶媒体とを有する。制御部12は、たとえばコンピュータによって読み取り可能な記憶媒体を備えるマイクロコンピュータによって実現される。記憶媒体は、コンピュータによって読み取り可能なプログラムおよびデータを非一時的に格納する非遷移的実体的記憶媒体である。記憶媒体は、半導体メモリまたは磁気ディスクなどによって実現される。
【0018】
制御部12は、カメラ11が撮像した画像から、運転者の顔を構成する主要な要素を認識することにより、顔向き方向を顔向き角度として検出する。制御部12は、所定の制御プログラムを実行することにより、カメラ11によって撮像された運転者の顔を含む画像に基づき、運転者の顔向きの角度を検出したり、顔向き角度の推定値を算出したりするものである。制御部12は、ASICなど専用の集積回路によって構成してもよい。
【0019】
制御部12は、たとえば運転者の前方不注視であることを判定し、警告するための処理を実行する。例えば、制御部12は、算出した運転者の顔向き角度が、正面方向D1を中心とする所定の正面領域を外れている時間が所定の判定時間以上となったとき、運転者は脇見をしており、前方不注視である判定する。制御部12は、前方不注視と判定した場合には、警告部20に対して前方不注視の警告を行うよう指示する。
【0020】
警告部20は、制御部12から警告を行うように指示を受けると、例えば、警告音を発したり、音声や画面表示により運転者に警告メッセージを与えたりして、運転者に前方不注視を止めるよう警告を与える。
【0021】
次に、制御部12の構成および処理に関して、さらに説明する。制御部12は、
図1に示すように、機能ブロックとして顔検出部13、顔スコア算出部14、角度算出部15、推定部16、前方不注視判定部17および距離算出部18を含む。
【0022】
顔検出部13は、対象者の顔を含む画像から顔の特徴部分を抽出して、顔の特徴部分を用いて対象者の顔を検出する。本実施形態では、対象者は運転者である。顔検出部13は、対象者の顔を含む画像から、
図5に示すように、顔の特徴部分を抽出して、対象者の顔が含まれる顔領域41を定める。顔領域41を定めることは、顔を検出したことと同義である。
【0023】
顔検出部13は、具体的には、対象者の顔を含む画像から顔の特徴部分のパターンを走査し、画像内から顔位置を検出し、対象者の顔が含まれる顔領域41を検出する。顔領域41は、長方形状であり、顔枠ともいう。顔領域41の面積は、顔枠サイズともいう。顔領域41の大きさは、画像における顔が占める大きさに比例する。
【0024】
また顔領域41の面積は、顔向き角度と相関がある。顔領域41の面積は、運転者が正面の場合が大きく、顔向き角度が増加するにつれて減少する。したがって顔領域41の面積は、顔向き角度と相関がある顔向き係数と言うこともできる。したがって顔検出部13は、顔向き評価値算出部としても機能する。
【0025】
顔検出部13は、特定した顔領域41中において、顔の特徴部分を抽出する。特徴部分は、たとえば両目の位置、鼻の位置、口の位置などである。特徴部分は、より具体的には特徴点、および特徴量を含む。より具体的には、顔の特徴点として眉間の位置、両目の目尻の位置、両目の目頭の位置を検出し、特徴量として顔の傾きθを検出する。特徴点は、各部のパターンマッチング、輝度の違いなどを用いて抽出する。
【0026】
距離算出部18は、顔検出部13の検出結果から、画像における対象者の顔の左右に対をなして位置する同じ特徴部分間の距離である部分間距離を算出する。左右に対をなして位置する特徴部分は、たとえば目、眉毛、口の両わきなどである。部分間距離は、顔の左右対称性に基づいて、顔の左右方向の中心から等距離に位置するとみなせる顔の特徴部分間の距離である。本実施形態における顔の左右方向は、
図2および
図5における左右方向である。顔は、厳密には左右対称ではないが、目の形状、鼻の形状、口の形状などほぼ左右対称である。顔の左右方向の中心は、眉間の中心、または鼻の頂点、唇の中心ともいう。本実施形態では、顔を左右対称とみなして、顔の中心から、左右に対をなして位置する特徴部分、たとえば両目の目頭までは等距離に位置するとみなす。したがって部分間距離は、たとえば両目の中心間の距離、両眉毛の中心間の距離、口角間の距離である。口角は、口の両わきの上下のくちびるが合う部分である。
【0027】
また距離算出部18は、顔検出部13の検出結果から、画像における対象者の顔の左右に位置する同じ特徴部分の左右方向の大きさである特徴距離を、左側の特徴部分と右側の特徴部分のそれぞれで算出する。顔の左右に位置する同じ特徴部分は、たとえば目および眉毛である。たとえば特徴部分の特徴距離は、目の大きさ、目の中の黒目の大きさ、眉毛の長さなどである。より具体的には、たとえば右側の特徴部分の特徴距離は、画像における対象者の右目の目頭から目尻まで距離である。また左側の特徴部分の特徴距離は、画像における対象者の左目の目頭から目尻からまで距離ある。
【0028】
顔スコア算出部14は、顔を構成する主要な要素を認識する場合、画像に映し出された要素が、探索している要素に該当する確からしさを算出する。確からしさは、信頼度とも言う。本実施形態では、顔認識の確からしさを顔スコアという値として算出する。
【0029】
したがって顔スコア算出部14は、顔検出部13の検出結果から、顔スコアを算出する。例えば、顔スコア算出部14は、画像に映し出された顔の要素の形状、大きさ、輝度分布、色合いなどが、探索している要素とどの程度類似しているかに基づいて、顔スコアを算出する。そして、顔スコア算出部14は、算出した顔スコアを、所定の基準値と比較し、顔スコアが低ければ、顔の主要な要素が認識できていないと判定する。
【0030】
顔スコアは、画像上の顔サイズ、およびパターンのマッチング度合いに比例する。また顔スコアは、対象者の顔が向いている顔向き角度と相関がある。顔スコアは、対象者が正面の場合が高く、顔向き角度が増加するにつれて減少する。したがって顔スコアは、顔向き角度と相関がある顔向き係数と言うこともできる。したがって顔スコア算出部14は、顔向き評価値算出部としても機能する。
【0031】
角度算出部15は、顔検出部13の検出結果から、顔向きの角度である顔向き角度を算出する。角度算出部15は、顔向き評価値算出部としても機能する。顔向き角度は、本実施形態では、運転者の正面方向D1を0度とし、その正面方向D1から右方向への回転角度を正の角度、左方向への回転角度を負の角度として表す。したがって本実施形態では、顔が正面を向いているときの顔向き角度を0度とし、顔が右横を向いているときの顔向き角度を90度とし、顔が左横を向いているときの顔向き角度を-90度としている。また角度算出部15は、運転者の顔向き角度を、水平方向の動きとして2次元的に求めても良いし、水平方向及び上下方向の動きとして3次元的に求めても良い。
【0032】
前方不注視判定部17は、角度算出部15によって検出された顔向き角度を用いて運転者が前方不注視であるか否かを判定する。前方不注視判定部17は、顔向き角度と所定の判定度合いとを用いて運転者が前方不注視であるか否かを判定する。判定度合いは、所定の角度範囲および所定の判定時間によって設定される。判定度合いは、閾値とも言える。前方不注視判定部17は、運転者が、左右それぞれの方向へ、所定の角度範囲を超えてかつ所定の判定時間以上、顔向き角度を変化させた場合に、前方不注視と判定する。
図3に示すように、顔向き角度が所定の正面領域R1の外側の脇見領域R2にあると、前方不注視と判定する。
図3では、下側が運転者の正面方向D1である。脇見判定角度αは、たとえば正面に対して+-25度である。したがって前方不注視判定部17は、顔向き角度が、25度よりも大きい場合、または-25度よりも小さい場合には、脇見、すなわち前方不注視であると判定する。また前方不注視判定部17は、車両情報取得部30で取得した情報、例えば車速条件などを組み合わせて前方不注視か否かを判断してもよい。
【0033】
推定部16は、顔検出部13が顔を検出している検出状態から、顔を検出できない検出不可状態となった場合、所定の推定条件を満たす場合には、対象者の顔が横を向いていると推定する。検出状態から検出不可状態、換言すると検出ロストとなる要因は、様々あるが、運転者が首を振って顔が横を向いた場合には、検出ロストとなる。
【0034】
検出不可状態について、
図4および
図5を用いて説明する。
図4は、顔スコアによって顔検出した場合の検出可否であり、
図5は顔領域41によって顔検出した場合の検出可否である。
図4および
図5に示すように、運転者が正面を向いている場合は、検出している検出状態であり、正面から右側に首を降っていくと、ある時点で検出ロストして検出不可状態となる。顔スコアの場合は、顔スコアが所定の閾値を下回った場合に検出ロストとなる。顔領域41の場合は、顔領域41を特定できなくなった場合に検出ロストとなる。したがって首を振ると検出状態から検出ロストとなる。
【0035】
次に、制御部12による顔状態検出処理に関して、
図6のフローチャートを用いて説明する。
図6に示す顔状態検出処理は、顔認識装置10が電源投入状態において、短時間に繰り返し実行される。
【0036】
ステップS11では、顔のパターンを走査し、カメラ11が撮像した画像内から顔位置、顔領域41、および顔スコアを算出し、ステップS12に移る。ステップS12では、顔スコアが所定値以上であるか否かを判断し、所定値以上の場合はステップS13に移り、所定値以上でない場合には本フローを終了する。顔スコアが所定値未満の場合、顔を検出できていない検出ロストの場合であるので、以下の処理を行わない。ステップS13では、顔領域41内の特徴点を検出し、ステップS14に移る。ステップS13では、顔を構成する主要な要素、たとえば両目の目尻目頭の位置を検出する。
【0037】
ステップS14では、検出した目の特徴点から、両目を検出しているか否かを判断し、両目を検出している場合には、ステップS15に移り、両目を検出していない場合には、本フローを終了する。ステップS14では、目と判断した位置の周辺に両目の目尻目頭である4点が存在しているか否かで、目であるか否かを判定している。具体的には、特徴点が目付近にあるかを、目の確からしさとして目スコアを算出し、目スコアが所定の閾値以上の場合は、特徴点が両目の目尻目頭付近に検出されていると判定する。逆に目スコアが閾値未満の場合は、両目を検出できていないとして、顔向き角度の検出は行わない。
【0038】
ステップS15では、目スコアが高いので、顔向き角度を検出し、本フローを終了する。顔向き角度は、検出した特徴点を基準として、顔向き角度を検出している。
【0039】
このように制御部12は、運転者の顔向き角度を検出する場合、まず、カメラ11が撮像した画像において、運転者の顔が含まれる顔領域41を定め、その顔領域41中において、顔を構成する主要な要素、たとえば目、鼻および口などを認識する。そして、角度算出部15は、認識した主要な要素に基づいて、運転者の顔向き角度を算出する。また制御部12は、一連の処理で検出または算出したデータ、たとえば顔スコアおよび目スコアなどを時系列データとして記憶する。
【0040】
またたとえば、角度算出部15は、運転者の顔向きの角度として、運転者の視線方向の角度を検出するものであっても良い。視線方向の角度を検出する場合には、角度算出部15は、運転者の眼球の向きを画像解析により求める。そして、角度算出部15は、運転者の顔向き角度を基準として、眼球の向きから運転者の視線方向の角度を算出する。
【0041】
次に、制御部12による顔推定処理に関して、
図7のフローチャートを用いて説明する。
図7に示す顔推定処理は、顔認識装置10が顔を検出している検出状態において、短時間に繰り返し実行される。
【0042】
ステップS21では、顔検出ロストして検出不可状態となったか否かを判断し、顔検出ロストした場合はステップS22に移り、顔検出ロストしていない場合は本フローを終了する。
【0043】
ステップS22では、検出不可状態となった検出不可時の直前のデータを取得し、ステップS23に移る。直前のデータは、検出ロスト直前のデータと、直前の所定期間の蓄積データも含む。直前のデータは、たとえば顔領域41の面積、顔スコア、目スコアおよび顔向き角度などである。
【0044】
ステップS23では、直前のデータを用いて、所定の推定条件を満たすか否かを判断し、推定条件を満たす場合にはステップS24に移り、推定条件を満たさない場合には、本フローを終了する。所定の推定条件の詳細については、後述する。
【0045】
ステップS24では、推定条件を満たすので、顔が横を向いていると推定し、本フローを終了する。このように検出ロスト時に推定条件を満たす場合には、首が横を向いている、すなわち顔向き角度が約90度であると推定する。
【0046】
(第1の推定条件)
次に、10個の推定条件に関して説明する。まず第1の推定条件に関して、
図8を用いて説明する。第1の推定条件は、検出不可状態となった検出不可時の直前の顔スコアが、所定の正面範囲に対応する正面顔スコア範囲よりも低く、かつ検出不可時の直前の所定の第1経過期間で顔スコアが低下傾向にあるという条件である。
【0047】
顔スコアは、前述のように、顔向き角度に相関があり、
図8に示すように、顔向き角度が大きくなるにつれて小さくなる。したがって通常、正面から首を右側に振ると、
図8に示すような顔スコアが減少する波形となり、顔向き角度が大きくなるとある時点で検出ロストとなる。
【0048】
首を横に振って検出ロストとなった場合には、直前の第8経過期間、たとえば0.5秒間で顔スコアが低下する。したがって第1の推定条件によって、直前の第8経過期間で顔スコアが変化していない状態と区別することができる。
【0049】
また首を横に振って検出ロストとなった場合には、検出ロスト直前の顔スコアは、平均値未満である。顔スコアは、顔が正面に向いている状態では、高い値であり、正面に向いている値の範囲が正面顔スコア範囲である。また顔スコアの平均値は、顔が正面状態に向いている値である。したがって第1の推定条件によって、顔スコアが高い状態から突然、低下した状態と区別することができる。換言すると、第1の推定条件では、顔スコアが時系列的に徐々に低下する状態をとらえ横向きと推定している。
【0050】
(第2の推定条件)
次に、第2の推定条件に関して、
図2を用いて説明する。第2の推定条件は、検出不可時の直前の顔向き角度が、
図2に示す所定の正面範囲に対応する正面角度範囲R3にないという条件である。顔が正面を向いている状態から突然、顔をロストした状態と区別することができる。換言すると、第2の推定条件では、顔向き角度が時系列的に徐々に移動する状態をとらえ横向きと推定している。
【0051】
検出ロスト直前の顔向きが正面角度範囲R3、たとえば+-7.5度内の場合には、検出ロスト時に横向きよりも正面に向いている可能性が高い。このような場合を除外することで、たとえば運転者が正面を向いた状態から、サンバイザを降ろすなどの、遮蔽物で顔が検出できない状態と区別することができる。
【0052】
(第3の推定条件)
次に、第3の推定条件に関して、
図9を用いて説明する。第3の推定条件は、検出不可時の直前の第3経過期間で眉間の位置が左右のいずれかに移動し、かつ、第3経過期間における眉間の移動量が顔領域41の幅の半分未満であるという条件である。
【0053】
したがって第3の推定条件は、特徴部分の位置である特徴点が一定範囲内で左右方向に移動する条件とも言える。運転者が体全体を倒した場合は、
図9に示すように、首を振るだけの場合に対して特徴点の移動量が大きくなる。したがって単に検出ロスト直前の第3経過期間における特徴点の移動量だけでは、横向きと推定することができない。特徴点は、たとえば目頭、目尻、目の中心、口の中心、鼻の中心などである。本実施形態では特徴点を眉間の中心位置とし、検出ロスト直前の第3経過期間、たとえば0.5秒間で眉間の中心位置が左右に移動し、その移動量が顔領域41の幅の半分未満の場合とすることで、体を傾ける等の行動を除外することができる。これによって正面を向きながら体を倒した状況を誤検知しないようにできる。
【0054】
(第4の推定条件)
次に、第4~第6の推定条件に関して、
図10~
図12を用いて説明する。第4の推定条件は、検出不可時の直前の第1経過期間で両目の中心間距離dが小さくなっているという条件である。目の中心は、たとえば目頭から目尻を結んだ線分の中点である。したがって両目の中心間距離dは、本実施形態では両目の中心を結んだ直線の長さである。
【0055】
したがって第4の推定条件は、特徴点間の距離が変動する条件ともいえる。運転者が正面を向いている際には、
図10に示すように、左目の大きさwlと右目の大きさwrと、両目間の中心間距離dがある程度安定する。目の大きさは、目頭から目尻までの距離である。そして運転者が正面を向いている際には、中心間距離d、左目の大きさwl、および右目の大きさwrは、最大となる。
【0056】
両目の中心間距離dは、顔向き角度に相関があり、
図11および
図12に示すように、顔向き角度が大きくなるにつれて小さくなる。横を向いた場合には、画像では両目が近づくからである。したがって通常、正面から首を右側に振ると、
図11に示すような中心間距離dが減少する波形となり、顔向き角度が大きくなるとある時点で検出ロストとなる。
【0057】
首を横に振って検出ロストとなった場合には、直前の第1経過期間、たとえば0.5秒間で中心間距離dが低下する。したがって第4の推定条件によって、直前の第1経過期間で中心間距離dが変化していない状態と区別することができる。
【0058】
(第5の推定条件)
第5の推定条件は、検出不可時の直前の両目の中心間距離dが、対象者が正面を向いている所定の正面範囲内にはないという条件である。顔が正面を向いている状態から突然、顔をロストした状態と区別することができる。換言すると、第5の推定条件では、顔向き角度が時系列的に徐々に移動する状態をとらえ横向きと推定している。
【0059】
検出ロスト直前の中心間距離dが正面範囲内の場合には、検出ロスト時に横向きよりも正面に向いている可能性が高い。このような場合を除外することで、たとえば運転者が正面を向いた状態から、サンバイザを降ろすなどの、遮蔽物で顔が検出できない状態と区別することができる。
【0060】
(第6の推定条件)
第6の推定条件は、検出不可時の直前の第2経過期間で、左目の大きさwlおよび右目の大きさwrの両方が減少しており、かつ第2経過期間における減少に差があるという条件である。
【0061】
運転者が正面を向いている際には、
図10に示すように、左目の大きさwlと右目の大きさwrがある程度安定する。そして運転者が正面を向いている際には、
図11および
図12に示すように、左目の大きさwlと右目の大きさwrとはほぼ等しい。
【0062】
両目の大きさは、顔向き角度に相関があり、
図11および
図12に示すように、顔向き角度が大きくなるにつれて小さくなる。したがって通常、正面から首を右側に振ると、
図11に示すような両目の大きさが減少する波形となり、顔向き角度が大きくなるとある時点で検出ロストとなる。
【0063】
また横を向いた場合には、画像では向いた側の目が小さくなるので、検出ロストの直前の第2経過期間、たとえば0.5秒の目の大きさの減少が異なり、向いた方の目の大きさwが小さくなる。具体的には、顔が右を向くと
図11に示すようにwr<wlとなり、顔が左を向くと
図12に示すようにwr>wlとなる。このような変化から、検出ロスト時の左向きなのか右向きなのかを推定することができる。また正面顔のときの目の大きさwと中心間距離dを初期値として設定しておいて、検出ロスト時に初期値との差分を見て、横向きか否かを推定してもよい。
【0064】
(第7の推定条件)
次に、第7の推定条件に関して、
図13および
図14を用いて説明する。第7の推定条件は、検出不可時の直前の第4経過期間で顔の傾きθが所定の垂直範囲であるという条件をさらに含む。第7の推定条件は、前提条件とも言え、第7の推定条件を満足し、さらに他の第1~第6のいずれかの推定条件を満たした場合に、横向きと推定する。顔の傾きθは、回転軸を対象者の顔を通過して、顔の前後方向に延びる軸とした場合の、回転軸周りの顔の傾きθである。本実施形態では、回転軸は顔の中心を通り、傾きθが両目の中心を通過する直線と水平線とがなす角である。水平線とは、本実施形態では、
図13の左右方向である。顔が傾いていない場合は、顔の傾きθは0度であり、首をかしげて顔を傾けると傾きθは増大する。
【0065】
したがって第7の推定条件は、特徴点の位置関係から算出される顔の傾きθが規定値内であるという前提条件とも言える。
図13に示すように、左右方向を基準として特徴点から計算される顔の傾きθが規定の垂直範囲内の場合のみ、横向きと推定する。垂直範囲内は、たとえば顔が傾きθがたとえば+-20度未満である。
【0066】
図14に示すように、第7の推定条件は、第4経過時間、たとえば1.0秒間で、特徴点から算出した顔の傾きθが+-20度未満の場合に満足する。顔の傾きθが大きい場合は、顔がロール、すなわち首をかしげた可能性があるからである。
【0067】
運転者が前方不注視をする場合は、首をかしげる状況は少ないので、第7の推定条件は首をかしげる仕草を除外するための前提条件である。したがって傾きθが大きい場合は首のストレッチ等を行っている可能性が高く、前方不注視と誤検知しないようにしている。
【0068】
(第8の推定条件)
次に、第8の推定条件に関して、
図15を用いて説明する。第8の推定条件は、検出不可時の直前の第5経過期間で輝度値評価領域R4の平均の輝度値の変動が所定の安定範囲内であり、かつ検出不可時の直前の輝度値評価領域R4の輝度値が所定の中間明るさ範囲内であるという条件である。第8の推定条件は、前提条件とも言え、第8の推定条件を満足し、さらに他の第1~第6のいずれかの推定条件を満たした場合に、横向きと推定する。
【0069】
顔検出部13は、
図15に示すように、顔領域41の周辺に配置した輝度値評価領域R4において輝度値を検出する。輝度値評価領域R4は、顔領域41を一回り大きくした長方形枠状の領域である。そして、輝度値評価領域R4の輝度値の変化が規定値以下、および輝度値評価領域R4の輝度値が規定範囲内の場合、第8の推定条件を満足する。
【0070】
輝度値の変化が大きい場合は、検出を誤る可能性がある。また輝度値が大きい場合は白飛び、小さい場合は黒潰れとなり、いずれも顔を正しく検出できず誤検出する可能性がある。したがって輝度値評価領域R4の輝度値が規定の状態外の場合は、誤検知しないようにできる。本実施形態では、輝度値は、最小値0から最大値255までの256段階で表した値で、輝度が最小なら黒に、輝度が最大なら白になる。
【0071】
第8の推定条件は、輝度値評価領域R4の平均の輝度値において、第5経過期間、たとえば直近1.0秒の変動が安定範囲内、たとえば30未満の場合に満足する。輝度値の変化が大きい場合は、検出結果が不確かであり、白飛びまたは黒つぶれによる検出ロストと区別するためである。
【0072】
また第8の推定条件は、検出不可時の直前の輝度値評価領域R4の輝度値が所定の中間明るさ範囲内、たとえば30より大きく200未満の場合に満足する。この範囲外であると、真っ暗または白飛び時の検出結果であるため不確かであり、白飛びまたは黒つぶれによる検出ロストと区別するためである。
【0073】
(第9の推定条件)
次に、第9の推定条件に関して、
図16を用いて説明する。第9の推定条件は、検出不可時の直前の第6経過期間のうち、顔検出部13によって顔を検出した検出時間が占める検出率が所定の安定検出率以上であるという条件である。第9の推定条件は、前提条件とも言え、第9の推定条件を満足し、さらに他の第1~第6のいずれかの推定条件を満たした場合に、横向きと推定する。
【0074】
直近の顔検出率が低い場合は、遮蔽物および画角外れ等の理由で顔検出ができてない可能性が高く、誤検知する可能性がある。したがって検出率が高い状況は、安定した状況であるので、安定した状況についてのみ第9の推定条件を満足する。
【0075】
具体的には、
図16に示すように、顔スコアが規定値以上の場合に検出成功とし、第6経過期間、たとえば3.0秒間における成功率を検出率とする。そして検出率が安定検出率以上、たとえば70%以上の場合は、第9の推定条件を満足する。これによって顔検出が不安定な環境での推定を除外することができる。
【0076】
(第10の推定条件)
次に、第10の推定条件に関して、
図5を用いて説明する。第10の推定条件は、検出不可状態となった検出不可時の直前の顔領域41の面積が、所定の正面面積範囲よりも低く、かつ検出不可時の直前の所定の第7経過期間で顔領域41の面積が低下傾向にあるという条件である。
【0077】
顔領域41の面積は、前述のように、顔向き角度に相関があり、
図5に示すように、顔向き角度が大きくなるにつれて小さくなる。したがって通常、正面から首を右側に振ると、顔領域41の面積が減少する波形となり、顔向き角度が大きくなるとある時点で検出ロストとなる。
【0078】
首を横に振って検出ロストとなった場合には、直前の第7経過期間、たとえば0.5秒間で顔領域41の面積が低下する。したがって第10の推定条件によって、直前の第7経過期間で顔領域41の面積が変化していない状態と区別することができる。
【0079】
また首を横に振って検出ロストとなった場合には、検出ロスト直前の顔領域41の面積は、所定の正面面積範囲内にある。顔領域41の正面面積範囲は、顔が正面状態に向いているときの面積である。したがって第10の推定条件によって、顔領域41の面積が高い状態から突然、低下した状態と区別することができる。換言すると、第10の推定条件では、顔領域41の面積が時系列的に徐々に低下する状態をとらえ横向きと推定している。
【0080】
以上説明したように本実施形態の顔認識装置10は、所定の推定条件を満たす場合には、検出不可状態であっても、顔が横に向いたと推定する。検出状態から検出不可状態になった場合、顔が横を向いたのか、顔が手などの障害物などで一部が覆われたのか、顔が画像内から無くなったのかなど、判断することが望ましい。そこで推定部16は、検出不可状態になったときに、部分間距離の変化が所定の推定条件を満たす場合には、顔が横を向いたと推定している。部分間距離は、画像における対象者の顔の左右に対をなして位置する同じ特徴部分間の距離である。左右に対をなして位置する特徴部分は、たとえば両目、両眉毛、口の両わきなどである。部分間距離は、顔の左右対称性に基づいて、顔の中心から等距離に位置するとみなせる顔の特徴部分間の距離である。
【0081】
本実施形態では、部分間距離として、両目の中心間距離dを用いている。このような部分間距離は、正面の場合が最も大きく、顔が横を向くについて小さくなる。そこで一つの推定条件は、検出不可時の直前の第1経過期間において、部分間距離が小さくなっているという条件である。検出不可時の直前の第1経過期間で部分間距離が小さくなった場合には、顔が横に移動することで部分間距離が小さくなった可能性が高い。したがってこの推定条件を満たす場合には、検出不可状態であっても、顔が横を向いたと推定する。このような部分間距離の算出は、一般的な画像処理よりも処理負荷が低い。これによって処理負荷を抑制しつつ、顔が検出できなくなったときに横向き推定する推定精度を高めることができる。
【0082】
本実施形態では、部分間距離は、両目の中心間距離dであるが、このような距離に限るものではない。部分間距離は、左右に対をなして位置する特徴部分間の距離であれば、たとえば両目の目尻間距離であってもよく、両目の目頭間の距離であってもよく、両眉毛の中心間の距離であってもよく、口角間の距離であってもよい。
【0083】
また本実施形態では、対象者の顔の左右に位置する同じ特徴部分の左右方向の大きさである特徴距離は、目の大きさであったが、目の大きさに限るものではない。特徴距離は、たとえば眉毛の左右方向の長さであってもよく、唇の中心から各口の端までの距離であってもよい。また特徴距離は、眉間の中心から各目の中心までの距離であってもよい。
【0084】
(その他の実施形態)
以上、本開示の好ましい実施形態について説明したが、本開示は前述した実施形態に何ら制限されることなく、本開示の主旨を逸脱しない範囲において種々変形して実施することが可能である。
【0085】
前述の実施形態の構造は、あくまで例示であって、本開示の範囲はこれらの記載の範囲に限定されるものではない。本開示の範囲は、特許請求の範囲の記載によって示され、さらに特許請求の範囲の記載と均等の意味及び範囲内での全ての変更を含むものである。
【0086】
前述の第1実施形態では、第1の推定条件から第10の推定条件を全て満たす場合に、横向きと推定しているが、全てを満たす場合に限るものではない。少なくとも、第4の推定条件を満たせば、横向きと推定してもよい。また第1の推定条件から第10の推定条件のうち、幾つかを満足すれば横向きと推定してもよい。
【0087】
前述の第1実施形態において、顔検出装置の制御部12によって実現されていた機能は、前述のものとは異なるハードウェアおよびソフトウェア、またはこれらの組み合わせによって実現してもよい。制御部12は、たとえば他の制御装置と通信し、他の制御装置が処理の一部または全部を実行してもよい。制御部12が電子回路によって実現される場合、それは多数の論理回路を含むデジタル回路、またはアナログ回路によって実現することができる。
【0088】
前述の第1実施形態では、顔認識装置10は車両101で用いられているが、車両101に搭載された状態に限定されるものではなく、少なくとも一部が車両101に搭載されていなくてもよい。
【符号の説明】
【0089】
10…顔認識装置 11…カメラ 12…制御部
13…顔検出部 14…顔スコア算出部 15…角度算出部 16…推定部
17…前方不注視判定部 18…距離算出部 20…警告部
30…車両情報取得部 41…顔領域 100…車両用警告装置
101…車両 d…中心間距離 R1…正面領域
R2…脇見領域 R3…正面角度範囲 R4…輝度値評価領域 D1…正面方向