(57)【要約】【課題】カメラの取り付け位置が制約を受ける場合であっても、顔の向きを検出し得る、顔向き検出装置、顔向き検出方法、及びプログラムを提供する。【解決手段】顔向き検出装置１０は、人の顔を含む部分の３次元点群データを取得する、データ取得部１１と、取得された３次元点群データから、顔の各部品に対応する領域を特定する、部品特定部１２と、特定された領域全体から、任意の３つ以上の点を抽出し、抽出する度に、抽出した点を含む仮平面を設定する、仮平面設定部１３と、仮平面それぞれ毎に、当該仮平面が顔の面に相当する可能性を示すスコアを算出し、仮平面それぞれのスコアの値に基づいて、１つの仮平面を選択する、仮平面選択部１４と、選択された仮平面の法線の方向を前記顔の向きとして検出する、顔向き検出部１５と、を備えている。【選択図】図１
2020135076.tif 000002
【特許請求の範囲】
【請求項１】
人の顔を含む部分の３次元点群データを取得する、データ取得部と、
取得された前記３次元点群データから、前記顔の部品に対応する領域を特定する、部品特定部と、
特定された前記領域全体から、任意の３つ以上の点を抽出し、抽出する度に、抽出した点を含む仮平面を設定する、仮平面設定部と、
設定された前記仮平面それぞれ毎に、当該仮平面が前記顔の面に相当する可能性を示すスコアを算出し、算出した前記仮平面それぞれの前記スコアの値に基づいて、１つの前記仮平面を選択する、仮平面選択部と、
選択された前記仮平面の法線の方向を前記顔の向きとして検出する、顔向き検出部と、を備えている、
ことを特徴とする顔向き検出装置。
【請求項２】
請求項１に記載の顔向き検出装置であって、
前記仮平面選択部が、前記仮平面それぞれ毎に、当該仮平面とそれに含まれない点との距離に基づいて、当該仮平面に含まれない点それぞれに、前記距離が小さい程、値が小さくなるようにスコアを付加し、更に、当該仮平面に含まれない点それぞれのスコアを合計して、当該仮平面の合計スコアを算出し、算出した前記合計スコアの値に基づいて、１つの前記仮平面を選択する、
ことを特徴とする顔向き検出装置。
【請求項３】
請求項２に記載の顔向き検出装置であって、
前記仮平面選択部が、前記仮平面それぞれ毎に、当該仮平面に含まれない点それぞれに、スコアを付加する際に、前記距離に応じた重みを適用する、
ことを特徴とする顔向き検出装置。
【請求項４】
請求項１から３のいずれかに記載の顔向き検出装置であって、
前記部品特定部が、前記顔の目に対応する領域、鼻に対応する領域、及び口に対応する領域のうちの少なくとも１つを特定し、
前記仮平面設定部が、特定された、各領域を合わせた領域から、任意の３点を抽出して、前記仮平面を設定する、
ことを特徴とする顔向き検出装置。
【請求項５】
請求項１から４のいずれかに記載の顔向き検出装置であって、
前記３次元点群データが、被写体までの距離を画素毎に測定可能な撮像装置を用いて得られたデータである、
ことを特徴とする顔向き検出装置。
【請求項６】
（ａ）人の顔を含む部分の３次元点群データを取得する、ステップと、
（ｂ）取得された前記３次元点群データから、前記顔の部品に対応する領域を特定する、ステップと、
（ｃ）特定された前記領域全体から、任意の３つ以上の点を抽出し、抽出する度に、抽出した点を含む仮平面を設定する、ステップと、
（ｄ）設定された前記仮平面それぞれ毎に、当該仮平面が前記顔の面に相当する可能性を示すスコアを算出し、算出した前記仮平面それぞれの前記スコアの値に基づいて、１つの前記仮平面を選択する、ステップと、
（ｅ）選択された前記仮平面の法線の方向を前記顔の向きとして検出する、ステップと、を有する、
ことを特徴とする顔向き検出方法。
【請求項７】
請求項６に記載の顔向き検出方法であって、
前記（ｄ）のステップにおいて、前記仮平面それぞれ毎に、当該仮平面とそれに含まれない点との距離に基づいて、当該仮平面に含まれない点それぞれに、前記距離が小さい程、値が小さくなるようにスコアを付加し、更に、当該仮平面に含まれない点それぞれのスコアを合計して、当該仮平面の合計スコアを算出し、算出した前記合計スコアの値に基づいて、１つの前記仮平面を選択する、
ことを特徴とする顔向き検出方法。
【請求項８】
請求項７に記載の顔向き検出方法であって、
前記（ｄ）のステップにおいて、前記仮平面それぞれ毎に、当該仮平面に含まれない点それぞれに、スコアを付加する際に、前記距離に応じた重みを適用する、
ことを特徴とする顔向き検出方法。
【請求項９】
請求項６から８のいずれかに記載の顔向き検出方法であって、
前記（ｂ）のステップにおいて、前記顔の目に対応する領域、鼻に対応する領域、及び口に対応する領域のうちの少なくとも１つを特定し、
前記（ｃ）のステップにおいて、特定された、各領域を合わせた領域から、任意の３点を抽出して、前記仮平面を設定する、
ことを特徴とする顔向き検出方法。
【請求項１０】
請求項６から９のいずれかに記載の顔向き検出方法であって、
前記３次元点群データが、被写体までの距離を画素毎に測定可能な撮像装置を用いて得られたデータである、
ことを特徴とする顔向き検出方法。
【請求項１１】
コンピュータに、
（ａ）人の顔を含む部分の３次元点群データを取得する、ステップと、
（ｂ）取得された前記３次元点群データから、前記顔の部品に対応する領域を特定する、ステップと、
（ｃ）特定された前記領域全体から、任意の３つ以上の点を抽出し、抽出する度に、抽出した点を含む仮平面を設定する、ステップと、
（ｄ）設定された前記仮平面それぞれ毎に、当該仮平面が前記顔の面に相当する可能性を示すスコアを算出し、算出した前記仮平面それぞれの前記スコアの値に基づいて、１つの前記仮平面を選択する、ステップと、
（ｅ）選択された前記仮平面の法線の方向を前記顔の向きとして検出する、ステップと、を実行させる、プログラム。
【請求項１２】
請求項１１に記載のプログラムであって、
前記（ｄ）のステップにおいて、前記仮平面それぞれ毎に、当該仮平面とそれに含まれない点との距離に基づいて、当該仮平面に含まれない点それぞれに、前記距離が小さい程、値が小さくなるようにスコアを付加し、更に、当該仮平面に含まれない点それぞれのスコアを合計して、当該仮平面の合計スコアを算出し、算出した前記合計スコアの値に基づいて、１つの前記仮平面を選択する、
ことを特徴とするプログラム。
【請求項１３】
請求項１２に記載のプログラムであって、
前記（ｄ）のステップにおいて、前記仮平面それぞれ毎に、当該仮平面に含まれない点それぞれに、スコアを付加する際に、前記距離に応じた重みを適用する、
ことを特徴とするプログラム。
【請求項１４】
請求項１１から１３のいずれかに記載のプログラムであって、
前記（ｂ）のステップにおいて、前記顔の目に対応する領域、鼻に対応する領域、及び口に対応する領域のうちの少なくとも１つを特定し、
前記（ｃ）のステップにおいて、特定された、各領域を合わせた領域から、任意の３点を抽出して、前記仮平面を設定する、
ことを特徴とするプログラム。
【請求項１５】
請求項１１から１４のいずれかに記載のプログラムであって、
前記３次元点群データが、被写体までの距離を画素毎に測定可能な撮像装置を用いて得られたデータである、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像から人の顔の向きを検出するための、顔向き検出装置、及び顔向き検出方法に関し、更には、これらを実現するためのプログラムに関する。
【背景技術】
【０００２】
近年、映像監視、自動車といった種々の分野において、画像から人の顔を検出する顔検出処理が行われている。特に、映像監視の分野では、侵入者を特定するために、顔検出処理が行われている。また、自動車の分野においては、運転手の状態を監視して、安全運転を支援するために、顔検出処理が行われている。
【０００３】
例えば、特許文献１は、顔検出処理を行う装置を開示している。特許文献１に開示された装置は、まず、映像データから人物の領域を検出し、検出した領域の特徴量と、予め登録されている顔の特徴量とを比較することで、顔の領域を特定する。また、特許文献１に開示された装置は、顔の領域に、予め登録されている顔の各部品のテンプレートをマッチングすることで、顔の各部品を特定する。更に、特許文献１に開示された装置は、特定した部品の画面上での位置関係から、実空間における顔の向きを推定する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−２２８０６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、特許文献１に開示された装置では、このように顔の部品の画面上での位置関係によって実空間における顔の向きを推定することから、顔の向きを正確に推定するためには、カメラを人の顔の正面に配置する必要がある。
【０００６】
しかしながら、実際には、カメラを人の顔の正面に配置することは難しく、特に、自動車の分野では、カメラの位置は車内の形状に制約を受けるため、極めて困難である。このため、特許文献１に開示された装置では、カメラの位置が制約される場合に、顔の向きを正確に推定できないという問題がある。
【０００７】
本発明の目的の一例は、上記問題を解消し、カメラの取り付け位置が制約を受ける場合であっても、顔の向きを検出し得る、顔向き検出装置、顔向き検出方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明の一側面における顔向き検出装置は、
人の顔を含む部分の３次元点群データを取得する、データ取得部と、
取得された前記３次元点群データから、前記顔の部品に対応する領域を特定する、部品特定部と、
特定された前記領域全体から、任意の３つ以上の点を抽出し、抽出する度に、抽出した点を含む仮平面を設定する、仮平面設定部と、
設定された前記仮平面それぞれ毎に、当該仮平面が前記顔の面に相当する可能性を示すスコアを算出し、算出した前記仮平面それぞれの前記スコアの値に基づいて、１つの前記仮平面を選択する、仮平面選択部と、
選択された前記仮平面の法線の方向を前記顔の向きとして検出する、顔向き検出部と、
を備えている、
ことを特徴とする。
【０００９】
また、上記目的を達成するため、本発明の一側面における顔向き検出方法は、
（ａ）人の顔を含む部分の３次元点群データを取得する、ステップと、
（ｂ）取得された前記３次元点群データから、前記顔の部品に対応する領域を特定する、ステップと、
（ｃ）特定された前記領域全体から、任意の３つ以上の点を抽出し、抽出する度に、抽出した点を含む仮平面を設定する、ステップと、
（ｄ）設定された前記仮平面それぞれ毎に、当該仮平面が前記顔の面に相当する可能性を示すスコアを算出し、算出した前記仮平面それぞれの前記スコアの値に基づいて、１つの前記仮平面を選択する、ステップと、
（ｅ）選択された前記仮平面の法線の方向を前記顔の向きとして検出する、ステップと、を有する、
ことを特徴とする。
【００１０】
更に、上記目的を達成するため、本発明の一側面におけるプログラムは、
コンピュータに、
（ａ）人の顔を含む部分の３次元点群データを取得する、ステップと、
（ｂ）取得された前記３次元点群データから、前記顔の部品に対応する領域を特定する、ステップと、
（ｃ）特定された前記領域全体から、任意の３つ以上の点を抽出し、抽出する度に、抽出した点を含む仮平面を設定する、ステップと、
（ｄ）設定された前記仮平面それぞれ毎に、当該仮平面が前記顔の面に相当する可能性を示すスコアを算出し、算出した前記仮平面それぞれの前記スコアの値に基づいて、１つの前記仮平面を選択する、ステップと、
（ｅ）選択された前記仮平面の法線の方向を前記顔の向きとして検出する、ステップと、を実行させる、ことを特徴とする。
【発明の効果】
【００１１】
以上のように、本発明によれば、カメラの取り付け位置が制約を受ける場合であっても、顔の向きを検出することができる。
【図面の簡単な説明】
【００１２】
【図１】図１は、本発明の実施の形態における顔向き検出装置の構成を示すブロック図である。
【図２】図２は、本発明の実施の形態における顔向き検出装置を用いたシステムの一例を示す図である。
【図３】図３は、本発明の実施の形態において利用される３次元点群データの一例を示す図である。
【図４】図４は、本発明の実施の形態において選択された仮平面の一例を３次元点群データと共に示す図である。
【図５】図５（ａ）〜（ｃ）は、本実施の形態における顔向き検出装置が行う処理を説明する図であり、それぞれ一連の処理を示している。
【図６】図６は、本発明の実施の形態における顔向き検出装置の動作を示すフロー図である。
【図７】図７は、本発明の実施の形態における顔向き検出装置を実現するコンピュータの一例を示すブロック図である。
【発明を実施するための形態】
【００１３】
（実施の形態）
以下、本発明の実施の形態における、顔向き検出装置、顔向き検出方法、及びプログラムについて、図１〜図７を参照しながら説明する。
【００１４】
［装置構成］
最初に、図１を用いて、本発明の実施の形態における顔向き検出装置の構成について説明する。図１は、本発明の実施の形態における顔向き検出装置の構成を示すブロック図である。
【００１５】
図１に示す本実施の形態における顔向き検出装置１０は、人の顔を含む部分の３次元点群データから、顔の向きを検出するための装置である。図１に示すように、本実施の形態における顔向き検出装置１０は、データ取得部１１と、部品特定部１２と、仮平面設定部１３と、仮平面選択部１４と、顔向き検出部１５とを備えている。
【００１６】
データ取得部１１は、顔向き検出装置１０の外部から、３次元点群データを取得する。部品特定部１２は、データ取得部１１によって取得された３次元点群データから、顔の部品（目、鼻、口等）に対応する領域を特定する。
【００１７】
仮平面設定部１３は、部品特定部１２によって特定された領域全体から、任意の３つ以上の点を抽出し、抽出する度に、抽出した点を含む仮平面を設定する。
【００１８】
仮平面選択部１４は、まず、仮平面設定部１３によって設定された仮平面それぞれ毎に、各仮平面が顔の面に相当する可能性を示すスコアを算出する。続いて、仮平面選択部１４は、算出した仮平面それぞれのスコアの値に基づいて、１つの仮平面を選択する。なお、本明細書では、選択された１つの仮平面を「顔平面」と表記する。
【００１９】
顔向き検出部１５は、仮平面選択部１４によって選択された仮平面の法線の方向を顔の向きとして検出する。
【００２０】
このように、本実施の形態では、顔の部品の位置関係ではなく、顔の正面に相当する面から顔の向きを検出することができる。このため、本実施の形態によれば、カメラの取り付け位置が制約を受ける場合であっても、顔の向きを検出することができる。
【００２１】
続いて、図２〜図５を用いて、本実施の形態における顔向き検出装置１０の構成及び機能についてより具体的に説明する。図２は、本発明の実施の形態における顔向き検出装置を用いたシステムの一例を示す図である。
【００２２】
図２の例では、顔向き検出装置１０は、車両２１に搭載される安全運転支援システム２０の一部を構成している。安全運転支援システム２０は、顔向き検出装置１０によって検出された運転手の顔の向きに基づいて、運転手の状態を監視して、安全運転を支援するシステムである。例えば、安全運転支援システム２０は、運転手の顔の向きが下向きであり、その状態が一定時間続くと、運転手が居眠りをしていると判定し、運転手を覚醒させるための処理を行う。
【００２３】
また、顔向き検出装置１０は、本実施の形態では、撮像装置３０に接続されている。撮像装置３０は、被写体までの距離を画素毎に測定可能な装置である。撮像装置３０の具体例としては、ＴＯＦ（Time-of-Flight）カメラが挙げられる。ＴＯＦカメラは、被写体に向けて、近赤外光等の光を照射し、照射した光が被写体で反射されて戻ってくるまでの時間を計測して、画素毎に、被写体までの距離を測定し、測定した画素毎の距離を特定するデータを出力する。本実施の形態では、この出力されたデータが、３次元点群データとな
る。
【００２４】
データ取得部１１は、本実施の形態では、撮像装置（ＴＯＦカメラ）３０が出力したデータを、３次元点群データとして取得する。図３は、本発明の実施の形態において利用される３次元点群データの一例を示す図である。図３の例では、被写体は運転手であり、撮像装置３０は車内に取り付けられている。また、図３の例では、３次元点群データは、運転手の斜め上方から撮影することによって得られている。
【００２５】
部品特定部１２は、本実施の形態では、図３に示すように、３次元点群データにおいて、顔の目に対応する領域、鼻に対応する領域、及び口に対応する領域、それぞれを特定する。図３において、目に対応する領域は○印で示され、鼻に対応する領域は△印で示され、口に対応する領域は□印で示されている。なお、図３において、各領域を示す印は、説明の便宜上付与したものであり、各領域の形状は任意である。
【００２６】
なお、３次元点群データに、目、鼻、及び口の全てが存在していない場合もある。このため、部品特定部１２は、目に対応する領域、鼻に対応する領域、及び口に対応する領域のうちの少なくとも１つを特定できれば良い。
【００２７】
具体的には、部品特定部１２は、例えば、Viola & Jones法に沿って、予め登録されている「目」、「鼻」、「口」の特徴量を用いたラスタスキャンによって、目、鼻、口の特徴量を持った点群が存在しているボクセル群を特定する。ボクセルは、被写体である運転手が存在する空間を複数個に区切ることで得られる立方体である。よって、上記のボクセル群の特定により、目に対応する領域、鼻に対応する領域、及び口に対応する領域、それぞれが特定される。なお、Viola & Jones法は、下記の参照文献に開示されている。
【００２８】
参照文献：
Viola, P and Jones, M,"Rapid object detection using a boosted cascade of simple features", CVPR,vol.1,pp.511-518
【００２９】
仮平面設定部１３は、本実施の形態では、これらの特定された３つの領域を合わせた領域から、任意の３点を抽出し、この３点を抽出する度に、抽出した３点を含む仮平面を設定する。即ち、仮平面設定部１３は、特定された３つの領域を合わせた領域から、一度に一組の点群として３点を抽出し、抽出した点群毎に仮平面を設定する。なお、任意の３点は、目に対応する領域、鼻に対応する領域、口に対応する領域それぞれから１点ずつ抽出されている必要はない。
【００３０】
仮平面選択部１４は、本実施の形態では、仮平面毎に、仮平面とそれに含まれない点との距離に基づいて、この仮平面に含まれない点それぞれに、距離が小さい程、値が小さくなるようにスコアを付加し、各点のスコアを合計して、この仮平面の合計スコアを算出する。このスコアが小さい程、その仮平面が、顔の正面に近似していることになる。そして、仮平面選択部１４は、算出した各仮平面の合計スコアの値が最も小さい１つの仮平面（顔平面）を選択する。
【００３１】
図４は、本発明の実施の形態において選択された仮平面の一例を３次元点群データと共に示す図である。図４に示すように、選択された仮平面（顔平面）Ａは、顔の正面を最も近似した面となっている。なお、図４の例では、３次元点群データは、図３の例と異なり、運転手の上方から撮影して得られている。
【００３２】
また、顔向き検出部１５は、本実施の形態では、図４に示すように、仮平面選択部１４によって選択された仮平面（顔平面）Ａの法線の方向を顔の向きとして検出する。
【００３３】
ここで、部品特定部１２、仮平面設定部１３、仮平面選択部１４、及び顔向き検出部１５による処理について、図５を用いて説明する。図５（ａ）〜（ｃ）は、本実施の形態における顔向き検出装置が行う処理を説明する図であり、それぞれ一連の処理を示している。なお、仮平面は、実際は、３次元空間において設定されるが、図５（ａ）〜（ｃ）においては、説明のため、２次元座標上で示されている。
【００３４】
図５（ａ）に示すように、部品特定部１２は、３次元点群データ４０において、目に対応する領域４１、鼻に対応する領域４２、及び口に対応する領域（図４においては図示せず）を特定する。
【００３５】
そして、図５（ａ）に示すように、仮平面設定部１３は、各領域を合わせた領域から、任意の３点を抽出する。また、図５（ｂ）に示すように、仮平面設定部１３は、抽出した点を含む仮平面４３を設定する。図５（ａ）〜（ｃ）では、抽出された点は○で示され、抽出されなかった点は●で示されている。
【００３６】
続いて、図５（ｃ）に示すように、仮平面選択部１４は、仮平面毎に、それに含まれる３点以外の点群について、平面との距離、即ち、平面との誤差を算出し、各点についての誤差の合計値を求め、これを、その仮平面のスコアとする。
【００３７】
また、仮平面選択部１４は、スコアの算出において、算出した距離（誤差）に応じて、Biweight推定法による重みを適用することによって、外れ値の影響を小さくすることができる。具体的には、この場合、仮平面から遠距離にある点を外れ値と仮定し、誤差０ｍｍの点の重みを１．０、許容誤差より誤差の大きな点の重みを０．０とする。つまり、誤差が小さい点の重みを強く、誤差が大きい点の重みを弱くする。仮平面選択部１４は、下記の数１及び数２に基づいて、スコアを算出する。
【００３８】
下記の数１及び数２において、「ｅｉ」は、ｉ番目の点の誤差［ｍｍ］を示し、「ｗ（ｅｉ）」は、誤差ｅｉでの重みを示している。また、「ａＥ」は、許容誤差［ｍｍ］である。
【００３９】
【数１】
2020135076.tif 000003
【００４０】
【数２】
2020135076.tif 000004
【００４１】
［装置動作］
次に、本発明の実施の形態における顔向き検出装置１０の動作について図６を用いて説明する。図６は、本発明の実施の形態における顔向き検出装置の動作を示すフロー図である。以下の説明においては、適宜図１〜図５を参照する。また、本実施の形態では、顔向き検出装置１０を動作させることによって、顔向き検出方法が実施される。よって、本実
施の形態における顔向き検出方法の説明は、以下の顔向き検出装置の動作説明に代える。
【００４２】
図６に示すように、最初に、データ取得部１１は、本実施の形態では、撮像装置（ＴＯＦカメラ）３０が出力したデータを、３次元点群データとして取得する（ステップＡ１）。
【００４３】
次に、部品特定部１２は、３次元点群データにおいて、顔の目に対応する領域、鼻に対応する領域、及び口に対応する領域、それぞれを特定する（ステップＡ２）。
【００４４】
次に、仮平面設定部１３は、ステップＡ２で特定された３つの領域を合わせた領域から、ランダムに３点を抽出し、抽出した３点を含む仮平面を設定する（ステップＡ３）。
【００４５】
次に、仮平面設定部１３は、設定した仮平面の数が設定値に到達したかどうかを判定する（ステップＡ４）。ステップＡ４の判定の結果、仮平面の数が設定値に到達していない場合は、仮平面設定部１３は、再度ステップＡ３を実行する。
【００４６】
一方、ステップＡ４の判定の結果、仮平面の数が設定値に到達している場合は、仮平面設定部１３は、仮平面の設定を終了する。これにより、ステップＡ５が実行される。
【００４７】
ステップＡ５では、仮平面選択部１４が、ステップＡ３で設定された仮平面毎に、この仮平面とそれに含まれない点との距離に基づいて、この仮平面に含まれない点それぞれに、スコアを付加し、各点のスコアを合計して、この仮平面の合計スコアを算出する。
【００４８】
次に、仮平面選択部１４は、ステップＡ５で算出した各仮平面の合計スコアの値が最も小さい１つの仮平面（顔平面）を選択する（ステップＡ６）。
【００４９】
次に、顔向き検出部１５は、仮平面選択部１４によって選択された仮平面（顔平面）Ａの法線の方向を検出し、検出した法線の方向を顔の向きとする（ステップＡ７）。
【００５０】
その後、顔向き検出部１５は、検出した顔の向きを特定する情報を、安全運転支援システム２０に出力する。これにより、安全運転支援システム２０は、検出された運転手の顔の向きに基づいて、運転手の状態を監視して、安全運転を支援する。
【００５１】
［実施の形態における効果］
このように、本実施の形態では、顔の部品の位置関係ではなく、顔の正面に相当する面から顔の向きを検出することができるので、カメラの取り付け位置が制約を受ける場合であっても、顔の向きを検出することができる。
【００５２】
また、本実施の形態では、顔の正面に相当する面は、目、鼻、口の領域に存在する点群との距離が最も近くなるように選ばれる。更に、面の選択においては、点群データのノイズが除去されるように、点と面との距離に応じた重みも設定される。このため、選択された面と顔の正面との一致性は高く、本実施の形態によれば、精度良く顔の向きを検出できる。
【００５３】
［プログラム］
本実施の形態におけるプログラムは、コンピュータに、図６に示すステップＡ１〜Ａ７を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態における顔向き検出装置１０と顔向き検出方法とを実現することができる。この場合、コンピュータのプロセッサは、データ取得部１１、部品特定部１２、仮平面設定部１３、仮平面選択部１４、及び顔向き検出部１５として機
能し、処理を行なう。また、コンピュータは、汎用のコンピュータであっても良いし、車両に搭載されたコンピュータであっても良い。
【００５４】
また、本実施の形態におけるプログラムは、複数のコンピュータによって構築されたコンピュータシステムによって実行されても良い。この場合は、例えば、各コンピュータが、それぞれ、データ取得部１１、部品特定部１２、仮平面設定部１３、仮平面選択部１４、及び顔向き検出部１５のいずれかとして機能しても良い。
【００５５】
ここで、本実施の形態におけるプログラムを実行することによって、顔向き検出装置１０を実現するコンピュータについて図７を用いて説明する。図７は、本発明の実施の形態における顔向き検出装置を実現するコンピュータの一例を示すブロック図である。
【００５６】
図７に示すように、コンピュータ１１０は、ＣＰＵ（Central Processing Unit）１１１と、メインメモリ１１２と、記憶装置１１３と、入力インターフェイス１１４と、表示コントローラ１１５と、データリーダ／ライタ１１６と、通信インターフェイス１１７とを備える。これらの各部は、バス１２１を介して、互いにデータ通信可能に接続される。また、コンピュータ１１０は、ＣＰＵ１１１に加えて、又はＣＰＵ１１１に代えて、ＧＰＵ（Graphics Processing Unit）、又はＦＰＧＡ（Field-Programmable Gate Array）を備えていても良い。
【００５７】
ＣＰＵ１１１は、記憶装置１１３に格納された、本実施の形態におけるプログラム（コード）をメインメモリ１１２に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ１１２は、典型的には、ＤＲＡＭ（Dynamic Random Access Memory）等の揮発性の記憶装置である。また、本実施の形態におけるプログラムは、コンピュータ読み取り可能な記録媒体１２０に格納された状態で提供される。なお、本実施の形態におけるプログラムは、通信インターフェイス１１７を介して接続されたインターネット上で流通するものであっても良い。
【００５８】
また、記憶装置１１３の具体例としては、ハードディスクドライブの他、フラッシュメモリ等の半導体記憶装置が挙げられる。入力インターフェイス１１４は、ＣＰＵ１１１と、キーボード及びマウスといった入力機器１１８との間のデータ伝送を仲介する。表示コントローラ１１５は、ディスプレイ装置１１９と接続され、ディスプレイ装置１１９での表示を制御する。
【００５９】
データリーダ／ライタ１１６は、ＣＰＵ１１１と記録媒体１２０との間のデータ伝送を仲介し、記録媒体１２０からのプログラムの読み出し、及びコンピュータ１１０における処理結果の記録媒体１２０への書き込みを実行する。通信インターフェイス１１７は、ＣＰＵ１１１と、他のコンピュータとの間のデータ伝送を仲介する。
【００６０】
また、記録媒体１２０の具体例としては、ＣＦ（Compact Flash（登録商標））及びＳＤ（Secure Digital）等の汎用的な半導体記憶デバイス、フレキシブルディスク（Flexible Disk）等の磁気記録媒体、又はＣＤ−ＲＯＭ（Compact Disk Read Only Memory）などの光学記録媒体が挙げられる。
【００６１】
なお、本実施の形態における顔向き検出装置１０は、プログラムがインストールされたコンピュータではなく、各部に対応したハードウェアを用いることによっても実現可能である。更に、顔向き検出装置１０は、一部がプログラムで実現され、残りの部分がハードウェアで実現されていてもよい。
【００６２】
上述した実施の形態の一部又は全部は、以下に記載する（付記１）〜（付記１５）によ
って表現することができるが、以下の記載に限定されるものではない。
【００６３】
（付記１）
人の顔を含む部分の３次元点群データを取得する、データ取得部と、
取得された前記３次元点群データから、前記顔の部品に対応する領域を特定する、部品特定部と、
特定された前記領域全体から、任意の３つ以上の点を抽出し、抽出する度に、抽出した点を含む仮平面を設定する、仮平面設定部と、
設定された前記仮平面それぞれ毎に、当該仮平面が前記顔の面に相当する可能性を示すスコアを算出し、算出した前記仮平面それぞれの前記スコアの値に基づいて、１つの前記仮平面を選択する、仮平面選択部と、
選択された前記仮平面の法線の方向を前記顔の向きとして検出する、顔向き検出部と、を備えている、
ことを特徴とする顔向き検出装置。
【００６４】
（付記２）
付記１に記載の顔向き検出装置であって、
前記仮平面選択部が、前記仮平面それぞれ毎に、当該仮平面とそれに含まれない点との距離に基づいて、当該仮平面に含まれない点それぞれに、前記距離が小さい程、値が小さくなるようにスコアを付加し、更に、当該仮平面に含まれない点それぞれのスコアを合計して、当該仮平面の合計スコアを算出し、算出した前記合計スコアの値に基づいて、１つの前記仮平面を選択する、
ことを特徴とする顔向き検出装置。
【００６５】
（付記３）
付記２に記載の顔向き検出装置であって、
前記仮平面選択部が、前記仮平面それぞれ毎に、当該仮平面に含まれない点それぞれに、スコアを付加する際に、前記距離に応じた重みを適用する、
ことを特徴とする顔向き検出装置。
【００６６】
（付記４）
付記１から３のいずれかに記載の顔向き検出装置であって、
前記部品特定部が、前記顔の目に対応する領域、鼻に対応する領域、及び口に対応する領域のうちの少なくとも１つを特定し、
前記仮平面設定部が、特定された、各領域を合わせた領域から、任意の３点を抽出して、前記仮平面を設定する、
ことを特徴とする顔向き検出装置。
【００６７】
（付記５）
付記１から４のいずれかに記載の顔向き検出装置であって、
前記３次元点群データが、被写体までの距離を画素毎に測定可能な撮像装置を用いて得られたデータである、
ことを特徴とする顔向き検出装置。
【００６８】
（付記６）
（ａ）人の顔を含む部分の３次元点群データを取得する、ステップと、
（ｂ）取得された前記３次元点群データから、前記顔の部品に対応する領域を特定する、ステップと、
（ｃ）特定された前記領域全体から、任意の３つ以上の点を抽出し、抽出する度に、抽出した点を含む仮平面を設定する、ステップと、
（ｄ）設定された前記仮平面それぞれ毎に、当該仮平面が前記顔の面に相当する可能性を示すスコアを算出し、算出した前記仮平面それぞれの前記スコアの値に基づいて、１つの前記仮平面を選択する、ステップと、
（ｅ）選択された前記仮平面の法線の方向を前記顔の向きとして検出する、ステップと、を有する、
ことを特徴とする顔向き検出方法。
【００６９】
（付記７）
付記６に記載の顔向き検出方法であって、
前記（ｄ）のステップにおいて、前記仮平面それぞれ毎に、当該仮平面とそれに含まれない点との距離に基づいて、当該仮平面に含まれない点それぞれに、前記距離が小さい程、値が小さくなるようにスコアを付加し、更に、当該仮平面に含まれない点それぞれのスコアを合計して、当該仮平面の合計スコアを算出し、算出した前記合計スコアの値に基づいて、１つの前記仮平面を選択する、
ことを特徴とする顔向き検出方法。
【００７０】
（付記８）
付記７に記載の顔向き検出方法であって、
前記（ｄ）のステップにおいて、前記仮平面それぞれ毎に、当該仮平面に含まれない点それぞれに、スコアを付加する際に、前記距離に応じた重みを適用する、
ことを特徴とする顔向き検出方法。
【００７１】
（付記９）
付記６から８のいずれかに記載の顔向き検出方法であって、
前記（ｂ）のステップにおいて、前記顔の目に対応する領域、鼻に対応する領域、及び口に対応する領域のうちの少なくとも１つを特定し、
前記（ｃ）のステップにおいて、特定された、各領域を合わせた領域から、任意の３点を抽出して、前記仮平面を設定する、
ことを特徴とする顔向き検出方法。
【００７２】
（付記１０）
付記６から９のいずれかに記載の顔向き検出方法であって、
前記３次元点群データが、被写体までの距離を画素毎に測定可能な撮像装置を用いて得られたデータである、
ことを特徴とする顔向き検出方法。
【００７３】
（付記１１）
コンピュータに、
（ａ）人の顔を含む部分の３次元点群データを取得する、ステップと、
（ｂ）取得された前記３次元点群データから、前記顔の部品に対応する領域を特定する、ステップと、
（ｃ）特定された前記領域全体から、任意の３つ以上の点を抽出し、抽出する度に、抽出した点を含む仮平面を設定する、ステップと、
（ｄ）設定された前記仮平面それぞれ毎に、当該仮平面が前記顔の面に相当する可能性を示すスコアを算出し、算出した前記仮平面それぞれの前記スコアの値に基づいて、１つの前記仮平面を選択する、ステップと、
（ｅ）選択された前記仮平面の法線の方向を前記顔の向きとして検出する、ステップと、を実行させる、プログラム。
【００７４】
（付記１２）
付記１１に記載のプログラムであって、
前記（ｄ）のステップにおいて、前記仮平面それぞれ毎に、当該仮平面とそれに含まれない点との距離に基づいて、当該仮平面に含まれない点それぞれに、前記距離が小さい程、値が小さくなるようにスコアを付加し、更に、当該仮平面に含まれない点それぞれのスコアを合計して、当該仮平面の合計スコアを算出し、算出した前記合計スコアの値に基づいて、１つの前記仮平面を選択する、
ことを特徴とするプログラム。
【００７５】
（付記１３）
付記１２に記載のプログラムであって、
前記（ｄ）のステップにおいて、前記仮平面それぞれ毎に、当該仮平面に含まれない点それぞれに、スコアを付加する際に、前記距離に応じた重みを適用する、
ことを特徴とするプログラム。
【００７６】
（付記１４）
付記１１から１３のいずれかに記載のプログラムであって、
前記（ｂ）のステップにおいて、前記顔の目に対応する領域、鼻に対応する領域、及び口に対応する領域のうちの少なくとも１つを特定し、
前記（ｃ）のステップにおいて、特定された、各領域を合わせた領域から、任意の３点を抽出して、前記仮平面を設定する、
ことを特徴とするプログラム。
【００７７】
（付記１５）
付記１１から１４のいずれかに記載のプログラムであって、
前記３次元点群データが、被写体までの距離を画素毎に測定可能な撮像装置を用いて得られたデータである、
ことを特徴とするプログラム。
【産業上の利用可能性】
【００７８】
以上のように、本発明によれば、カメラの取り付け位置が制約を受ける場合であっても、顔の向きを検出することができる。本発明は、顔の向きの検出が求められる、映像監視システム、車両用のシステム等に有用である。
【符号の説明】
【００７９】
１０  顔向き検出装置
１１  データ取得部
１２  部品特定部
１３  仮平面設定部
１４  仮平面選択部
１５  顔向き検出部
２０  安全運転支援システム
３０  撮像装置
１１０  コンピュータ
１１１  ＣＰＵ
１１２  メインメモリ
１１３  記憶装置
１１４  入力インターフェイス
１１５  表示コントローラ
１１６  データリーダ／ライタ
１１７  通信インターフェイス
１１８  入力機器
１１９  ディスプレイ装置
１２０  記録媒体
１２１  バス
【図１】
2020135076.tif 000005
【図２】
2020135076.tif 000006
【図３】
2020135076.tif 000007
【図４】
2020135076.tif 000008
【図５】
2020135076.tif 000009
【図６】
2020135076.tif 000010
【図７】
2020135076.tif 000011