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

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

▶ オムロン株式会社の特許一覧

<>
  • 特許-顔向き推定装置及び方法 図1
  • 特許-顔向き推定装置及び方法 図2
  • 特許-顔向き推定装置及び方法 図3
  • 特許-顔向き推定装置及び方法 図4
  • 特許-顔向き推定装置及び方法 図5a
  • 特許-顔向き推定装置及び方法 図5b
  • 特許-顔向き推定装置及び方法 図6
  • 特許-顔向き推定装置及び方法 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-25
(45)【発行日】2023-10-03
(54)【発明の名称】顔向き推定装置及び方法
(51)【国際特許分類】
   G06T 7/00 20170101AFI20230926BHJP
   G06T 7/70 20170101ALI20230926BHJP
【FI】
G06T7/00 660A
G06T7/70 B
【請求項の数】 8
(21)【出願番号】P 2019156979
(22)【出願日】2019-08-29
(65)【公開番号】P2021033938
(43)【公開日】2021-03-01
【審査請求日】2022-06-07
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】100101454
【弁理士】
【氏名又は名称】山田 卓二
(74)【代理人】
【識別番号】100091524
【弁理士】
【氏名又は名称】和田 充夫
(74)【代理人】
【識別番号】100172236
【弁理士】
【氏名又は名称】岩木 宣憲
(72)【発明者】
【氏名】相澤 知禎
【審査官】佐藤 実
(56)【参考文献】
【文献】国際公開第2009/091029(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00 - 7/90
(57)【特許請求の範囲】
【請求項1】
画像データから人の顔画像データを検出する顔検出部と、及び、
検出された人の顔画像データに関して顔の向きの角度を推定する顔向き推定部と
を備える顔向き推定装置であって、
前記顔向き推定部は、
3次元顔モデル初期設定部と、
3次元顔モデル移動(ずらし)部と、
3次元顔モデル詳細フィッティング部と、
3次元顔モデルフィッティングスコア算出部と、及び、
3次元顔モデル統合部と
を含み、
前記3次元顔モデル初期設定部は、顔画像データ上に3次元顔モデルを初期配置するものであり、
更に、
(1)前記3次元顔モデル移動(ずらし)部は、所与の3次元顔モデルの位置をずらし量だけ一又は複数回ずらし、詳細フィッティングのための複数の3次元顔モデルを生成し、
(2)前記3次元顔モデル詳細フィッティング部は、顔画像データに対して位置をずらすことにより生成された複数の詳細フィッティングのための3次元顔モデルを詳細フィッティングする処理を行い、
(3)前記3次元顔モデルフィッティングスコア算出部は、前記3次元顔モデル詳細フィッティング部による詳細フィッティング処理の直後の、3次元顔モデルのフィッティングスコアを算出し、
(4)前記3次元顔モデル統合部は、複数の3次元顔モデルフィッティング結果を統合して、顔の向きの角度を算出する
ものであり、
前記顔向き推定部は、上記(1)~(4)の処理を繰り返し実行し、最終的な顔の向きの角度を出力し、
ここで、上記(1)の前記所与の3次元顔モデルは、前記繰り返しの回数iが1であるとき、前記3次元顔モデル初期設定部による初期配置を経たものであり、前記繰り返しの回数iが複数であるとき、上記(4)における前記3次元顔モデル統合部による、複数の3次元顔モデルフィッティング結果の統合の処理を、前記繰り返しの実行により(i-1)回分、経由したものである、
顔向き推定装置。
【請求項2】
上記(4)における複数の3次元顔モデルフィッティング結果の統合処理を経由した3次元顔モデルに係るフィッティングスコアが、所定の第1閾値より大きく、且つ、前回の繰り返し回数における、上記(4)における顔の向きの角度からの変動値が、所定の第2の閾値より小さく、なるまで、
又は、
繰り返し回数が繰り返し上限回数を超えるまで、
実行され、
上記(1)~(4)の処理の繰り返しの実行後、最終的な顔の向きの角度を出力する、
請求項1に記載の顔向き推定装置。
【請求項3】
上記(4)における、前記3次元顔モデル統合部が、複数の3次元顔モデルフィッティング結果を統合して、顔の向きの角度を算出する処理では、
複数の詳細フィッティング結果について、夫々のフィッティングスコアが所定の第3閾値以上であれば当該フィッティングスコアで重み付けして積算し、
積算後、正規化により統合値を算出して顔向きの角度を算出する、
請求項1に記載の顔向き推定装置。
【請求項4】
上記(4)における、複数の3次元顔モデルフィッティング結果の統合処理を経由した3次元顔モデルに係るフィッティングスコアは、複数のフィッティングスコアのうち所定の第3閾値以上であるフィッティングスコアについての平均値である、
請求項3に記載の顔向き推定装置。
【請求項5】
コンピュータが実行する顔向き推定方法であって、
画像データから人の顔画像データを検出するステップと、
顔画像データ上に3次元顔モデルを初期配置するステップと、並びに、
下記(処理1)~(処理4)の処理を繰り返し実行し、最終的な顔の向きの角度を出力するステップと
を含み、
ここで、下記(処理1)の下記所与の3次元顔モデルは、前記繰り返しの回数iが1であるとき、前記初期配置するステップによる初期配置を経たものであり、前記繰り返しの回数iが複数であるとき、下記(処理4)における、複数の3次元顔モデルフィッティング結果の統合の処理を、前記繰り返しの実行により(i-1)回分、経由したものである、
顔向き推定方法。
(処理1)所与の3次元顔モデルの位置をずらし量だけ一又は複数回ずらし、詳細フィッティングのための複数の3次元顔モデルを生成する処理。
(処理2)顔画像データに対して位置をずらすことにより生成された複数の詳細フィッティングのための3次元顔モデルを詳細フィッティングする処理。
(処理3)上記(処理2)における詳細フィッティング処理の直後の、3次元顔モデルのフィッティングスコアを算出する処理。
(処理4)複数の3次元顔モデルフィッティング結果を統合して、顔の向きの角度を算出する処理。
【請求項6】
上記(処理4)における、複数の3次元顔モデルフィッティング結果の統合処理を経由した3次元顔モデルに係るフィッティングスコアが、所定の第1閾値より大きく、且つ、前回の繰り返し回数における、上記(処理4)における顔の向きの角度からの変動値が、所定の第2の閾値より小さく、なるまで、
又は、
繰り返し回数が繰り返し上限回数を超えるまで、
実行され、
上記(処理1)~(処理4)の処理の繰り返しの実行後、最終的な顔の向きの角度を出力する、
請求項5に記載の顔向き推定方法。
【請求項7】
上記(処理4)における、複数の3次元顔モデルフィッティング結果を統合して、顔の向きの角度を算出する処理では、
複数の詳細フィッティング結果について、夫々のフィッティングスコアが所定の第3閾値以上であれば当該フィッティングスコアで重み付けして積算し、
積算後、正規化により統合値を算出して顔向きの角度を算出する、
請求項5に記載の顔向き推定方法。
【請求項8】
上記(処理4)における、複数の3次元顔モデルフィッティング結果の統合処理を経由した3次元顔モデルに係るフィッティングスコアは、複数のフィッティングスコアのうち所定の第3閾値以上であるフィッティングスコアについての平均値である、
請求項7に記載の顔向き推定方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、画像データ中の人の顔に関して、安定して精度よく顔向きを推定する顔向き推定装置、及び方法に関する。
【背景技術】
【0002】
画像データの中から人の顔を検出し、更に検出した顔についてその顔の向きを推定する様々な技術が知られている。例えば、特許文献1は、人の顔における複数の特徴点に対応する複数の3次元位置を定める3次元顔モデルを、画像中の顔にフィッティングすることにより、画像中の顔の向きを推定する、3次元顔モデルフィッティングアルゴリズム、及び、同アルゴリズムを利用する検出装置を、開示している。
【0003】
しかしながら、斜め方向を向く顔の向きを、上述のような従来の3次元顔モデルフィッティングアルゴリズムにより検出しようとすると、推定の精度が安定しないことがある。横顔に近い斜め方向を向く顔、即ち、正面からのヨー角が大きい顔である場合であって、特に、眼鏡等の装飾品が掛けられている顔である場合においては、顔の奥側の顔特徴点が見え辛い(即ち、画像上にて明確ではない)ため、3次元顔モデルがフィットし辛く、結果として局所解に陥ってしまい、このことが顔向き推定精度に影響を及ぼす可能性があるからである。
【0004】
特許文献2に開示される顔特徴点検出装置は、あらかじめ顔特徴点の位置関係のルールを定めておくことによって、不自然な形状の変形3次元顔モデルでフィッティング処理をして局所解に陥り精度の低い顔特徴点検出結果となってしまうことを、抑制している。しかしながら、当該顔特徴点検出装置は、横顔等の正面からのヨー角が大きい場合、特に眼鏡等の装飾品を掛けている場合においては、自然な顔特徴点モデルによるフィッティング処理をしている際に、局所解に陥ることが考えられる。その結果として、顔特徴点検出において、精度の低い顔特徴点検出、即ち、精度の低い顔向き角度推定となってしまうおそれがある。
【0005】
また、特許文献3に開示される特徴点位置検出装置は、目、鼻、口等の主要な少数の顔特徴点位置の初期情報を外部から入力することによって、より多くの所望の顔特徴点の概略の位置を推定する。当該特徴点位置検出装置は、入力される位置から顔特徴点探索を開始するので、正解とは異なる姿勢や表情などの顔形状を、誤ってフィッティングする、すなわち、局所解に陥ることが、抑制される。しかしながら、当該特徴点位置検出装置においては、予め少数の顔特徴点が外部から入力されなければならず、よって、当該特徴点位置検出装置は高速且つリアルタイムの処理には不向きである。
【先行技術文献】
【特許文献】
【0006】
【文献】特開2007-249280号公報
【文献】特開2011-128966号公報
【文献】特許第6387831号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
本開示は、画像データ中の人の顔に関して、安定して精度良く顔向きを推定するアルゴリズム、及び同アルゴリズムを利用する顔向き推定装置及び方法を提供する。
【課題を解決するための手段】
【0008】
本開示の顔向き推定装置は、
画像データから人の顔画像データを検出する顔検出部と、及び、検出された人の顔画像データに関して顔の向きの角度を推定する顔向き推定部とを備える顔向き推定装置である。前記顔向き推定部は、3次元顔モデル初期設定部と、3次元顔モデル移動(ずらし)部と、3次元顔モデル詳細フィッティング部と、3次元顔モデルフィッティングスコア算出部と、及び、3次元顔モデル統合部とを含み、
前記3次元顔モデル初期設定部は、顔画像データ上に3次元顔モデルを設定するものであり、
更に、
(1)前記3次元顔モデル移動(ずらし)部は、所与の3次元顔モデルの位置をずらし量だけ一又は複数回ずらし、詳細フィッティングのための複数の3次元顔モデルを生成し、
(2)前記3次元顔モデル詳細フィッティング部は、顔画像データに対して位置をずらすことにより生成された複数の詳細フィッティングのための三次元顔モデルを詳細フィッティングする処理を行い、
(3)前記3次元顔モデルフィッティングスコア算出部は、前記3次元顔モデル詳細フィッティング部による詳細フィッティング処理の直後の、3次元顔モデルのフィッティングスコアを算出し、
(4)前記3次元顔モデル統合部は、複数の3次元顔モデルフィッティング結果を統合して、顔の向きの角度を算出する
ものであり、
前記顔向き推定部は、上記(1)~(4)の処理を繰り返し実行し、顔の向きの角度を出力する。
【発明の効果】
【0009】
本開示に係る顔向き推定装置及び方法は、画像データ中の人の顔に関して、安定して精度良く顔向きを推定することができる。
【図面の簡単な説明】
【0010】
図1】実施の形態1に係る顔向き推定装置の機能構成を示すブロック図である。
図2】本開示に係る顔向き推定装置の適用例を説明するための図である。
図3】実施の形態1に係る顔向き推定装置の全体動作を示すフローチャートである。
図4】実施の形態1に係る顔向き推定装置における、顔向き推定部の顔向き推定処理を示すフローチャートである。
図5a】実施の形態1に係る顔向き推定装置における、3次元顔モデル統合部の、M個の3次元顔モデルフィッティング結果の統合処理を示すフローチャートである。図5aに示すフローチャートでは、開始後、変数を初期化し、M個のフィッティング結果についてフィッティングスコアSmで重み付けして、積算する(足し込む)。
図5b】実施の形態1に係る顔向き推定装置における、3次元顔モデル統合部の、M個の3次元顔モデルフィッティング結果の統合処理を示すフローチャートである。図5bに示すフローチャートでは、正規化により統合値を算出して顔向きの角度を算出し、終了する。
図6図6(a-1)(a-2)は、ヨー(Yaw)角が約-40°である顔画像に対して、2種類の、点(ノード)のみにより構成される3次元顔モデルを、合わせた様子を示す図である。 図6(b-1)~(b-7)は、ヨー角を変化させたときの3次元顔モデルの形状の様子を示す図である。
図7】本開示に係る顔向き推定アルゴリズムの概要を説明する図である。
【発明を実施するための形態】
【0011】
以下、適宜図面を参照しながら、本発明に係る実施の形態を詳細に説明する。但し、必要以上に詳細な説明は省略する場合がある。例えば、既によく知られた事項の詳細説明や実質的に同一の構成に対する重複説明を省略する場合がある。これは、以下の説明が不必要に冗長になるのを避け、当業者の理解を容易にするためである。
【0012】
なお、発明者らは、当業者が本開示を十分に理解するために添付図面および以下の説明を提供するのであって、これらによって特許請求の範囲に記載の主題を限定することを意図するものではない。
【0013】
[本開示に至る経緯]
画像データから人の顔を検出し、更に検出した顔についてその顔の向きを推定する技術は、これまで様々に開発されている。特許文献1は、人の顔における複数の特徴点に対応する複数の3次元位置を定める3次元顔モデルを、画像中の顔にフィッティングすることにより、画像中の顔の向きを推定する、3次元顔モデルフィッティングアルゴリズム、及び、同アルゴリズムを利用する検出装置を、開示している。
【0014】
しかしながら、斜め方向を向く顔の向きを、従来の3次元顔モデルフィッティングアルゴリズムにより検出しようとすると、推定の精度が安定しない。正面からのヨー角が大きい、横顔に近い場合、特に、眼鏡等の装飾品が掛けられている場合においては、顔の奥側の顔特徴点が画像上にて明確ではないため、3次元顔モデルがフィットし辛く、結果として局所解に陥ってしまうことがあるからである。
【0015】
図6(b-1)~(b-7)は、ヨー(Yaw)角を変化させたときの3次元顔モデルの形状の様子を示す図である。正面を向くモデルが、ヨー角が0°である(図6(b-7))。図6(b-6)から図6(b-1)に移るにつれて、3次元顔モデルは右方向を深く向き、ヨー角が「約-10°」から「約-60°」に移行している。
【0016】
図6(a-1)(a-2)は、ヨー角が約-40°である顔画像に対して、2種類の、点(ノード)のみにより構成される3次元顔モデルを、合わせた様子を示す図である。図6(a-2)では、ヨー角が約-40°である3次元顔モデルが合わせられ、図6(a-1)では、ヨー角が約-50°である3次元顔モデルが合わせられている。
図6(a-1)に示されるように、ヨー角約-40°の顔画像に対して、ヨー角約-50°であると誤推定が生じる可能性がある。これは以下のような要因によるものである。
(要因1)ヨー角約-50°の3次元顔モデルに対しても、ヨー角約-40°の顔画像における多くの顔特徴点がフィットすること。
(要因2)顔の奥側(ここでは右側)の顔特徴点が明確でない(即ち、見辛い)ことから、ヨー角約-40°の3次元顔モデルもヨー角約-50°の3次元顔モデルも、いずれに対しても、顔の奥側の顔特徴点がフィットし難いこと。
つまり、3次元顔モデルフィッティングが結果として、局所解に陥り、誤推定を生じ、顔向き推定精度に影響を及ぼす。
【0017】
本開示は、このような問題点を解決するために、発明者により考案された技術である。図7は、本開示に係る顔向き推定アルゴリズムの概要を説明する図である。まず、顔画像に対して、初期の位置に3次元顔モデルを配置して(図7(a))、凡その位置に3次元顔モデルをフィッティングする。即ち、顔画像に対して、ラフフィッティングを行う(図7(b))。なおラフフィッティングは行われなくてもよい。次に、3次元顔モデルの位置を左右又は上下等にずらし、複数方向から、詳細フィッティングを行う(図7(c-1)、図7(c-2))。ここでのずらし量は、例えば、口幅の約半分である。更に、複数方向からのフィッティングの結果を統合する。この統合の際には、詳細フィッティング直後に算出されるフィッティングスコアが所定の閾値(即ち、所定の第3閾値)以上となる結果について、フィッティングスコアで重み付けして統合する。
【0018】
ラフフィッティング処理を含み得る初期配置処理を経た、又は統合処理を経た、3次元顔モデルの位置を、左右又は上下等にずらし、複数方向から、詳細フィッティングを行うことと、複数方向からのフィッティングの結果を統合することは、例えば、以下の条件をいずれも満たすまで繰り返す(イタレーションする)。
(条件1)統合されたフィッティングスコアが所定の第1閾値より大きい。
(条件2)顔向きの角度の変動量が所定の第2閾値より小さい。
但し、処理を終了する(打ち切る)ためのイタレーション回数の上限を設けることがある。
【0019】
以上を経て、3次元顔モデルフィッティングの最終結果を得る(図7(d))。このようして得られる最終結果は、安定して精度良く顔向きを推定するものである。
【0020】
[本開示で利用する3次元顔モデルフィッティング]
本開示で利用する3次元顔モデルフィッティングのアルゴリズムについて説明する。3次元顔モデルフィッティングのアルゴリズムは、様々存在する。特許文献1に開示される3次元顔モデルフィッティングのアルゴリズムは、リアルタイム性及び高精度が求められる車載モニタリングセンサの技術分野で用いられる、一つの例である。本開示で利用する3次元顔モデルフィッティングのアルゴリズムは、特許文献1に開示される3次元顔モデルフィッティングのアルゴリズムであってもよいし、別の3次元顔モデルフィッティングのアルゴリズムであってもよい。
【0021】
本開示で利用する3次元顔モデルフィッティングのアルゴリズムは、概略以下のようなものである。学習画像を用いて、モデルの各ノードが顔特徴点の正しい位置に配置された正解モデルと、いずれかのノードが誤った位置に配置された誤差モデルとの差、及び誤差モデルに基づいて取得されたノード特徴量、についての相関関係の情報を、予め取得しておく。入力画像から顔特徴点を検出する際には、複数のノードの3次元位置を定めた3次元モデルを作成し、各ノードを入力画像上に投影し、投影点からノード特徴量を取得し、このノード特徴量と学習した相関関係の情報に基づいて、現在の各ノードの位置と対応する特徴点の位置とのずれを示す誤差推定量を取得する。更に、この誤差推定量と現在の各ノードの位置に基づいて、入力画像における各顔特徴点の3次元位置を推定し、それに合わせて各ノードを動かす。
【0022】
なお、本開示で利用する「ラフフィッティング」では、相関関係を取得するための学習段階で用いる学習画像において、正解モデルと誤差モデルの差が比較的大きいものが用いられ、これにより相関関係が形成される。一方、本開示で利用する「詳細フィッティング」では、相関関係を取得するための学習段階で用いる学習画像において、正解モデルと誤差モデルの差が比較的小さいものが用いられ、これにより相関関係が形成される。
【0023】
本開示で利用する3次元顔モデルフィッティングのアルゴリズムは、上記以外のものであってもよい。
【0024】
[適用例]
本開示に係る顔向き推定装置が適用可能な一例について、図2を用いて説明する。図2は、本開示に係る顔向き推定装置14の適用例を説明するための図である。
【0025】
図2は、いずれも自動車に搭載される、車両制御部4と、及びドライバモニタリングセンサ12との、内部構成を示すブロック図である。車両制御部4は、ECU(electronic control unit:電子制御ユニット)6と、アクチュエータ8を含む。ECU6は、複数のものであってもよいし、アクチュエータ8も複数のものであってもよい。
【0026】
ドライバモニタリングセンサ12は、運転者の表情を中心にリアルタイムでモニタリングを行う装置であり、撮像装置であるカメラ16と、及び、顔向き推定装置である画像処理部14とを、含む。顔向き推定装置である画像処理部14は、ハードウェアプロセッサに相当するCPU18と、メモリに相当するROM(Read Only Memory)20と、メモリに相当するRAM(Random Access Memory)22とを有する。これら各構成は、適宜のバスを介して相互にデータ送受信可能に接続される。
更に、ドライバモニタリングセンサ12のCPU18と、車両制御部4のECU6とは、CAN(Control Area Network)10を介して接続する。
【0027】
CPU18は、ROM20又はRAM22に記憶されたプログラムの実行に関する制御やデータの演算、加工を行う。CPU18は、様々なプログラム(例えば、3次元顔モデルフィッティングアルゴリズムのためのプログラム)を実行する演算装置である。CPU18は、カメラ16や、車両制御部4のECU6から種々の入力データを受け取り、入力データの演算結果を、CAN10を介して車両制御部4のECU6に出力したり、ROM20やRAM22に格納したりする。
【0028】
ROM20は、データの読み出しのみが可能な記憶部であり、例えば半導体記憶素子で構成される。ROM20は、例えばCPU18が実行するアプリケーションのプログラムやデータ等を記憶する。
【0029】
RAM22は、データの書き換えが可能な記憶部であり、例えば半導体記憶素子で構成される。RAM22は、カメラ16からの入力画像等を記憶する。
【0030】
以上のような、車両制御部4及びドライバモニタリングセンサ12において、顔向き推定装置は、画像処理部14により実現される。
【0031】
[構成例]
以下、顔向き推定装置14の構成例としての実施の形態を説明する。
【0032】
1.実施の形態1
1.1.構成
実施の形態1に係る顔向き推定装置14の構成について、図1を用いて説明する。図1は、本実施の形態に係る顔向き推定装置14の機能構成を示すブロック図である。
【0033】
顔向き推定装置14は、顔検出部23、顔向き推定部24、目開閉検出部38、及び、視線推定部40により、構成される。顔検出部23は、カメラ16等により撮像される画像データから人の顔画像データを検出する。顔向き推定部24は、検出された人の顔画像データに関して顔の向き(角度)を推定する。目開閉検出部38は、検出された人の顔画像データ及び推定された顔の向きのデータに基づいて、目の開閉を検出する。視線推定部40は、検出された人の顔画像データ、推定された顔の向きのデータ、及び検出された目の開閉のデータに基づいて、視線の方向を推定する。なお、顔向き推定装置14は、目開閉検出部38と視線推定部40を備えなくてもよい。
【0034】
更に、顔向き推定部24は、3次元顔モデル初期設定部26、3次元顔モデル移動(ずらし)部30、3次元顔モデル詳細フィッティング部32、3次元顔モデルフィッティングスコア算出部34、及び、3次元顔モデル統合部36を、含む。更に3次元顔モデル初期設定部26は、3次元顔モデルラフフィッティング部28を含む。なお、3次元顔モデル初期設定部26は、3次元顔モデルラフフィッティング部28を含まないこともある。
【0035】
3次元顔モデル初期設定部26は、顔画像データに対して、初期の位置に3次元顔モデルを配置する。このとき、3次元顔モデル初期設定部26は、先ず配置した3次元顔モデルに基づいて、3次元顔モデルラフフィッティング部28により、顔画像データに対して、凡その位置に3次元顔モデルをフィッティングする、ラフフィッティングを行い、ラフフィッティング後の3次元顔モデルを初期配置の3次元顔モデルとする。なお、3次元顔モデルラフフィッティング部28によるラフフィッティングは行われないこともある。
【0036】
3次元顔モデル移動(ずらし)部30は、複数方向からのフィッティングのために3次元顔モデルの位置を左右又は上下等にずらし量だけ一又は複数回ずらす。ここでのずらし量は、例えば、口幅の約半分である。これは、以下の理由による。
(理由1)複数方向のフィッティング処理で、各々、各顔器官点の各両端の特徴(例えば、左からのフィッティングでは左側の特徴)が少なくともフィッティングされるようにするため。
(理由2)「口幅」は最大長さの器官点であり基準とされるべきものであるため。
なお、ずらし量は別の値であってもよい。
ずらすことにより詳細フィッティングのための3次元顔モデルが、例えば、M個(M≧1)生成される。
【0037】
3次元顔モデル詳細フィッティング部32は、M個のうちの一つ(m番目(1≦m≦M))の3次元顔モデルに基づいて、詳細フィッティングを行う。
3次元顔モデルフィッティングスコア算出部34は、3次元顔モデル詳細フィッティング部32による詳細フィッティングの直後の、3次元顔モデルのフィッティングスコアを算出する。
更に、3次元顔モデル統合部36は、複数方向からの詳細フィッティングの結果を統合して、顔向きの角度を算出する。
【0038】
1.2.動作
以上のように構成される顔向き推定装置14の動作について、以下説明する。
【0039】
1.2.1.全体動作
図3は、実施の形態1に係る顔向き推定装置14の全体動作を示すフローチャートである。顔向き推定装置14の動作開始(ステップS02)後、「t」の初期化処理を行う(ステップS04)。
【0040】
次に、tフレーム目の画像データに関して、顔検出部23が顔画像データ検出処理を行う(ステップS06)。顔検出ができれば(ステップS08・YES)、顔向き推定部24が顔向きを推定して(ステップS10)、「t」をインクリメントする(ステップS12)。顔検出ができなければ(ステップS08・NO)、そのまま「t」をインクリメントする(ステップS12)。
【0041】
「t」が終了値でなければ(ステップS14・NO)、次のフレームに関して顔検出処理から顔向き推定処理が行われる(ステップS06~)。
【0042】
「t」が終了値となれば(ステップS14・YES)、顔向き推定装置14の動作を終了する(ステップS16)。
【0043】
1.2.2.顔向き推定処理
図4は、実施の形態1に係る顔向き推定装置14における、顔向き推定部24の顔向き推定処理(図3・ステップS10)の内容を示すフローチャートである。
【0044】
顔向き推定処理開始(ステップS20)後、3次元顔モデル初期設定部26が、顔画像データ上に3次元顔モデルを初期配置(初期設定)する(ステップS22)。このとき、3次元顔モデル初期設定部26は、先ず配置した3次元顔モデルに基づいて、3次元顔モデルラフフィッティング部28により、顔画像データに対してラフフィッティングを行い、ラフフィッティング後の3次元顔モデルを初期配置の3次元顔モデルとすることがある。なお、3次元顔モデルラフフィッティング部28によるラフフィッティングは行われなくてもよい。また、3次元顔モデルラフフィッティング部28を備えない3次元顔モデル初期設定部26では、ラフフィッティングは行われない。「ラフフィッティング」については、上述の[本開示で利用する3次元顔モデルフィッティング]において説明している。
【0045】
次に、イタレーション回数を初期化(i=1)する(ステップS26)。続いて、3次元顔モデル移動(ずらし)部30が、3次元顔モデルの位置を左右又は上下等に一又は複数回ずらす(ステップS28)。ずらし量は、上述のように、例えば口幅の約半分である。なお、ずらすことにより詳細フィッティングのための3次元顔モデルがM個(M≧1)生成される。
【0046】
イタレーション回数(i)が“1”であるとき、3次元顔モデルの位置ずらし処理(ステップS28)の基になる3次元顔モデルは、初期配置処理(ステップS22)を経たものである。イタレーション回数(i)が複数であるときは、3次元顔モデルの位置ずらし処理(ステップS28)の基になる3次元顔モデルは、後で説明するステップS40における「M個の3次元顔モデルフィッティング結果の統合処理」を直前に且つ少なくとも1回経由したものである。

【0047】
次に、1~Mまでインクリメントされる変数であるmを初期化(m=1)する(ステップS30)。続いて、M個のうちのm番目の3次元顔モデルに基づいて、3次元顔モデル詳細フィッティング部32が、顔画像データに対して3次元顔モデルを詳細フィッティングする(ステップS32)。「詳細フィッティング」については、上述の[本開示で利用する3次元顔モデルフィッティング]において説明している。
【0048】
次に、3次元顔モデルフィッティングスコア算出部34が、3次元顔モデル詳細フィッティング部32による詳細フィッティング処理(ステップS32)の直後の、3次元顔モデルのフィッティングスコアを算出する(ステップS34)。フィッティングスコアは、例えば、以下のように算出する。ROM20に記憶される、正解モデルに基づいて取得される特徴量と、ステップS32の詳細フィッティング処理を経たm番目の3次元顔モデルに基づいて取得される特徴量との、相関値を求めて、フィッティングスコアとする。なお、フィッティングスコアは、この値に限定されるものでは無い。
【0049】
次に、変数mをインクリメントする(ステップS36)。ここでmがM以下であるならば(ステップS38・NO)、インクリメントしたm番目の3次元顔モデルについて、詳細フィッティング処理(ステップS32)、及び、フィッティングスコアの算出(ステップS34)を行う。
【0050】
mがMより大きければ(ステップS38・YES)、3次元顔モデル統合部36が、M個の3次元顔モデルフィッティング結果を統合する(ステップS40)。このステップS40については、図5a及び図5bを用いて、後で説明する。3次元顔モデル統合部36がM個の3次元顔モデルフィッティング結果を統合することにより、顔画像における顔向きの角度が算出される。
【0051】
続いて、統合されたフィッティングスコアが所定の第1閾値より大きく且つ顔向き変動が所定の第2閾値より小さければ(ステップS42・YES)、顔向き推定部24が、最終的な顔向きの角度を出力して(ステップS48)、顔向き推定処理を終了する(ステップS50)。ここで「統合されたフィッティングスコア」とは、M個の3次元顔モデルフィッティング結果の統合処理(ステップS40)を経由した3次元顔モデルに係るフィッティングスコアである。即ち、「統合されたフィッティングスコア」とは、例えば、後で説明する、M個の3次元顔モデルフィッティング結果の統合処理(ステップS40)において、所定の第3閾値以上でありそれ故に重み付けに用いられるフィッティングスコアについての平均値である。また「顔向き変動」とは、イタレーション回数が「i-1」である処理フローの際に算出された顔向きの角度からの変動値である。なお、i=1の際、即ち、i-1=0の際は、ステップS24のラフフィッティング処理を経た3次元顔モデルの顔向きの角度からの変動値が「顔向き変動」とされる。
【0052】
統合されたフィッティングスコアが所定の第1閾値より大きく且つ顔向き変動が所定の第2閾値より小さい、のでは無いならば(ステップS42・NO)、イタレーション回数をインクリメント(i++)して、次のイタレーション回数に入る(ステップS44)。
【0053】
イタレーション回数(i)が、所定のイタレーション上限回数“N”以下であるならば(ステップS46・NO)、3次元顔モデルの位置ずらし処理(ステップS28)~M個の3次元顔モデルフィッティング結果の統合処理(ステップS40)のフローを行う(繰り返す)。イタレーション回数(i)が多くなる程、3次元顔モデル統合部36による、M個の3次元顔モデルフィッティング結果の統合処理(ステップS40)が多く経由されることになる。即ち、3次元顔モデルの位置ずらし処理(ステップS28)の基になる3次元顔モデルも、M個の3次元顔モデルフィッティング結果の統合処理(ステップS40)を多く経由したものとなる。
【0054】
イタレーション回数(i)が所定のイタレーション上限回数“N”より大きければ(ステップS46・YES)、顔向き推定部24が、その時点での顔向きの角度を出力して(ステップS48)、顔向き推定処理を終了する(ステップS50)。
【0055】
1.2.3.M個の3次元顔モデルフィッティング結果の統合処理
図5a及び図5bは、実施の形態1に係る顔向き推定装置14における、3次元顔モデル統合部36の、M個の3次元顔モデルフィッティング結果の統合処理を示すフローチャートである。図5a及び図5bに示すフローチャートでは、M個の詳細フィッティング結果について、フィッティングスコアで重み付けして統合して、顔向きを算出する。
【0056】
図5a及び図5bに示すフローチャートが用いる変数及び定数は、次のように定義される。
・「paraN」:所定のフィッティングモデルパラメータ数(定数)。
・「ModelPara[k]」:「paraN」個のフィッティングモデルパラメータのうち、k番目のフィッティングモデルパラメータ。
「フィッティングモデルパラメータ」は、例えば、3次元顔モデルを左右方向に何度回転するか、などを表すものである。
・「validModelScoreSum」:“フィッティングスコアSm≧所定の第3閾値”を満たす3次元顔モデル(以下、有効モデルと言う。)のフィッティングスコアの合計値。
・「validModelParaSum[k]」:k番目のフィッティングモデルパラメータ「ModelPara[k]」について、“フィッティングスコアSm≧所定の第3閾値”を満たす有効モデルの分だけ、フィッティングスコアSmで重み付けして、フィッティングモデルパラメータ値を合計(積算)したもの。
・「Model[m].ModelPara[k]」:m番目の3次元顔モデルにおける、k番目のフィッティングモデルパラメータ。
【0057】
図5a及び図5bに示すフローチャートでは、概略、開始(図5a・ステップS60)後、変数を初期化し(図5a・ステップS62~S70)、M個の詳細フィッティング結果についてフィッティングスコアSmで重み付けして積算し(図5a・ステップS72~S88)、積算後、正規化により統合値を算出して顔向きの角度を算出し(図5b・ステップS90~98)、終了する(図5b・ステップS100)。以下にて、図5a及び図5bに示すフローチャートの各ステップを説明する。
【0058】
図5aに示すフローチャートにおいて、開始(ステップS60)後、「validModelScoreSum」(有効モデルのフィッティングスコアの合計値)を初期化し(ステップS62)、変数kを0から「paraN」までインクリメントして全部の「validModelParaSum[k]」を初期化する(ステップS64、ステップS66、ステップS68、及び、ステップS70)。
【0059】
「validModelParaSum[k]」の初期化が完了すれば(ステップS70・NO)、1~Mまでインクリメントされるmにまず“1”を設定する(m=1)(ステップS72)。
【0060】
続いて、M個のうちのm番目の3次元顔モデルについて、フィッティングスコアSmが所定の第3閾値より小さければ(ステップS74・YES)、フィッティング結果の積算処理(ステップS76~ステップS84)を行うこと無く、mをインクリメントし(ステップS86)、mがM以下である限り(ステップS88・NO)、ステップS74以下を繰り返す。
【0061】
フィッティングスコアSmが所定の第3閾値以上であれば(ステップS74・NO)、変数kを0から「paraN」までインクリメントして、M個のうちのm番目の3次元顔モデルにおける、k番目のフィッティングモデルパラメータ「Model[m].ModelPara[k]」の夫々について、フィッティングスコアSmで重み付けして、フィッティングモデルパラメータ値を足し込む。即ち、以下の処理を行う(ステップS76、ステップS78、ステップS80、及び、ステップS82)。
【数1】
【0062】
更に、有効モデルのフィッティングスコアSmについての足し込み処理を行う。即ち、以下の処理を行う(ステップS84)。
【数2】
【0063】
続いて、mをインクリメントし(ステップS86)、mがM以下である限り(ステップS88・NO)、ステップS74以下を繰り返す。mがMより大きくなれば(ステップSS88・YES)、図5bに示すステップS90~の、正規化による統合値の算出、及び、顔向き角度の算出の、処理ステップに進む。
【0064】
図5bに示すフローチャートでは、変数kを0から「paraN」までインクリメントして、k番目のフィッティングモデルパラメータ「ModelPara[k]」について、正規化することにより統合値を算出する。つまり、以下の処理のようにして、「validModelParaSum[k]」を「validModelScoreSum」で除することにより、統合値である「ModelPara[k]」を求める(ステップS90、ステップS92、ステップS94、及び、ステップS96)。
【数3】
【0065】
統合したフィッティング結果である、フィッティングモデルパラメータの統合値から、顔画像データにおける顔の向きの角度を算出して(ステップS98)、M個の3次元顔モデルフィッティング結果の統合処理が終了する(ステップS100)。
【0066】
1.3.まとめ
以上のように、本実施の形態に係る顔向き推定装置は、画像データから人の顔画像データを検出する顔検出部23と、及び、検出された人の顔画像データに関して顔の向きの角度を推定する顔向き推定部24とを備える顔向き推定装置14である。顔向き推定部24は、3次元顔モデル初期設定部26と、3次元顔モデル移動(ずらし)部30と、3次元顔モデル詳細フィッティング部32と、3次元顔モデルフィッティングスコア算出部34と、及び、3次元顔モデル統合部36とを含む。3次元顔モデル初期設定部26は、顔画像データ上に3次元顔モデルを設定するものである。更に、(1)3次元顔モデル移動(ずらし)部30は、所与の3次元顔モデルの位置をずらし量だけ一又は複数回ずらし、詳細フィッティングのための複数の3次元顔モデルを生成し、(2)3次元顔モデル詳細フィッティング部32は、顔画像データに対して位置をずらすことにより生成された複数の詳細フィッティングのための3次元顔モデルを詳細フィッティングする処理を行い、(3)3次元顔モデルフィッティングスコア算出部34は、3次元顔モデル詳細フィッティング部32による詳細フィッティング処理の直後の、3次元顔モデルのフィッティングスコアを算出し、(4)3次元顔モデル統合部36は、複数の3次元顔モデルフィッティング結果を統合して、顔の向きの角度を算出するものである。顔向き推定部14は、上記(1)~(4)の処理を繰り返し実行し、顔の向きの角度を出力する。
【0067】
以上の、本実施の形態に係る顔向き推定装置は、画像データ中の人の顔に関して、安定して精度良く顔の向きの角度を推定することができる。
【0068】
(他の実施の形態)
以上のように、本出願において開示する技術の例示として、実施の形態1を説明した。しかしながら、本開示における技術は、これに限定されず、適宜、変更、置き換え、付加、省略などを行った実施の形態にも適用可能である。
【0069】
実施の形態1に係る顔向き推定装置は、自動車に搭載されるドライバモニタリングセンサに適用されることが想定されるが、適用例はドライバモニタリングセンサに限定されない。例えば、工場における作業者の表情をモニタするモニタリングシステムや、カメラを駅や広場等に設置した上で特定の人物を検出してその人物の表情を検出する検出システム等に適用され得る。
【0070】
また、実施の形態を説明するために、添付図面および詳細な説明を提供した。したがって、添付図面および詳細な説明に記載された構成要素の中には、課題解決のために必須な構成要素だけでなく、上記技術を例示するために、課題解決のためには必須でない構成要素も含まれ得る。そのため、それらの必須ではない構成要素が添付図面や詳細な説明に記載されていることをもって、直ちに、それらの必須ではない構成要素が必須であるとの認定をするべきではない。
【0071】
また、上述の実施の形態は、本開示における技術を例示するためのものであるから、特許請求の範囲またはその均等の範囲において種々の変更、置き換え、付加、省略などを行うことができる。
【符号の説明】
【0072】
4・・・車両制御部、6・・・ECU、8・・・アクチュエータ、10・・・CAN、12・・・ドライバモニタリングセンサ、14・・・顔向き推定装置(画像処理部)、16・・・カメラ、18・・・CPU、20・・・ROM、22・・・RAM、23・・・顔検出部、24・・・顔向き推定部、26・・・3次元顔モデル初期設定部、28・・・3次元顔モデルラフフィッティング部、30・・・3次元顔モデル移動(ずらし)部、32・・・3次元顔モデル詳細フィッティング部、34・・・3次元顔モデルフィッティングスコア算出部、36・・・3次元顔モデル統合部、38・・・目開閉検出部、40・・・視線推定部。
図1
図2
図3
図4
図5a
図5b
図6
図7