(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-05-15
(45)【発行日】2023-05-23
(54)【発明の名称】顔検出装置、顔検出方法、及びプログラム
(51)【国際特許分類】
G06T 7/70 20170101AFI20230516BHJP
G06T 7/521 20170101ALI20230516BHJP
G06T 7/00 20170101ALI20230516BHJP
【FI】
G06T7/70 B
G06T7/521
G06T7/00 660A
(21)【出願番号】P 2019024018
(22)【出願日】2019-02-13
【審査請求日】2022-01-07
(73)【特許権者】
【識別番号】000232092
【氏名又は名称】NECソリューションイノベータ株式会社
(73)【特許権者】
【識別番号】000003551
【氏名又は名称】株式会社東海理化電機製作所
(74)【代理人】
【識別番号】110002044
【氏名又は名称】弁理士法人ブライタス
(72)【発明者】
【氏名】関原 忠
(72)【発明者】
【氏名】深谷 安利
(72)【発明者】
【氏名】榊原 将城
(72)【発明者】
【氏名】名和 佑記
(72)【発明者】
【氏名】多田 圭吾
(72)【発明者】
【氏名】原田 久光
【審査官】片岡 利延
(56)【参考文献】
【文献】特開平10-000960(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/70
G06T 7/521
G06T 7/00
(57)【特許請求の範囲】
【請求項1】
人の顔を含む部分の3次元点群データを取得する、データ取得部と、
取得された前記3次元点群データにおいて、前記顔の各部品のうち削除対象となる部品に対応する第1の領域を特定する、領域特定部と、
特定された前記第1の領域に存在する点を、不要な点として、前記3次元点群データから除去する、フィルタリング部と、
前記不要な点が除去された前記3次元点群データを用いて、前記顔を検出する、顔検出部と、
を備え
、
前記領域特定部が、取得された前記3次元点群データにおいて、前記顔の各部品のうち顔検出の対象となる部品に対応する第2の領域も特定し、
前記フィルタリング部が、前記第1の領域から任意の3つ以上の点を点抽出し、抽出する度に、抽出した点を含む第1の仮平面と、前記第1の仮平面に直交し、且つ、前記第2の領域における3点以上の点からの距離が設定範囲内にある、第2の仮平面とを設定し、そして、設定した前記第1の仮平面とそれと同時に設定した前記第2の仮平面との組毎に、
これら仮平面が前記顔の面に相当する可能性を示すスコアを算出し、算出した前記スコアに基づいて、1つの組を選択し、
前記3次元点群データにおける、選択した前記組の前記第1の仮平面からの距離が設定範囲内となる点を、前記不要な点として、前記3次元点群データから除去する、
ことを特徴とする顔検出装置。
【請求項2】
請求項1に記載の顔検出装置であって、
前記フィルタリング部が、前記第1の領域に基準位置を設定し、前記3次元点群データにおける、設定した前記基準位置からの距離が設定範囲内となる点を、前記不要な点として、前記3次元点群データから除去する、
ことを特徴とする顔検出装置。
【請求項3】
請求項
1に記載の顔検出装置であって、
前記領域特定部が、耳に対応する領域を前記第1の領域として特定し、目、鼻、口に対応する領域を前記第2の領域として特定し、
前記フィルタリング部が、前記組毎に、当該組を構成する前記第1の仮平面及び前記第2の仮平面のいずれにも含まれない点それぞれに、この点と前記第1の仮平面との距離、及びこの点と前記第2の仮平面との距離のうち、短い方の距離に基づいて、前記距離が小さい程、値が小さくなるようにスコアを付加し、更に、各点に付加したスコアを合計して、当該組の合計スコアを算出し、算出した前記合計スコアの値に基づいて、1つの組を選択する、
ことを特徴とする顔検出装置。
【請求項4】
請求項
1に記載の顔検出装置であって、
前記顔検出部が、選択された組の前記第2の仮平面における法線の方向を前記顔の向きとして検出する、
ことを特徴とする顔検出装置。
【請求項5】
請求項
1に記載の顔検出装置であって、
前記3次元点群データが、画素毎に距離情報を取得可能な撮像装置を用いて得られたデータである、
ことを特徴とする顔検出装置。
【請求項6】
(a)人の顔を含む部分の3次元点群データを取得する、ステップと、
(b)取得された前記3次元点群データにおいて、前記顔の各部品のうち削除対象となる部品に対応する第1の領域を特定する、ステップと、
(c)特定された前記第1の領域に存在する点を、不要な点として、前記3次元点群データから除去する、ステップと、
(d)前記不要な点が除去された前記3次元点群データを用いて、前記顔を検出する、ステップと、
を有
し、
前記(b)のステップにおいて、取得された前記3次元点群データにおいて、前記顔の各部品のうち顔検出の対象となる部品に対応する第2の領域も特定し、
前記(c)のステップにおいて、前記第1の領域から任意の3つ以上の点を点抽出し、抽出する度に、抽出した点を含む第1の仮平面と、前記第1の仮平面に直交し、且つ、前記第2の領域における3点以上の点からの距離が設定範囲内にある、第2の仮平面とを設定し、
そして、設定した前記第1の仮平面とそれと同時に設定した前記第2の仮平面との組毎に、
これら仮平面が前記顔の面に相当する可能性を示すスコアを算出し、算出した前記スコアに基づいて、1つの組を選択し、
前記3次元点群データにおける、選択した前記組の前記第1の仮平面からの距離が設定範囲内となる点を、前記不要な点として、前記3次元点群データから除去する、
ことを特徴とする顔検出方法。
【請求項7】
請求項
6に記載の顔検出方法であって、
前記(c)のステップにおいて、前記第1の領域に基準位置を設定し、前記3次元点群データにおける、設定した前記基準位置からの距離が設定範囲内となる点を、前記不要な点として、前記3次元点群データから除去する、
ことを特徴とする顔検出方法。
【請求項8】
請求項
6に記載の顔検出方法であって、
前記(b)のステップにおいて、耳に対応する領域を前記第1の領域として特定し、目、鼻、口に対応する領域を前記第2の領域として特定し、
前記(c)のステップにおいて、前記組毎に、当該組を構成する前記第1の仮平面及び前記第2の仮平面のいずれにも含まれない点それぞれに、この点と前記第1の仮平面との距離、及びこの点と前記第2の仮平面との距離のうち、短い方の距離に基づいて、前記距離が小さい程、値が小さくなるようにスコアを付加し、更に、各点に付加したスコアを合計して、当該組の合計スコアを算出し、算出した前記合計スコアの値に基づいて、1つの組を選択する、
ことを特徴とする顔検出方法。
【請求項9】
請求項
6に記載の顔検出方法であって、
前記(d)のステップにおいて、選択された組の前記第2の仮平面における法線の方向を前記顔の向きとして検出する、
ことを特徴とする顔検出方法。
【請求項10】
請求項
6に記載の顔検出方法であって、
前記3次元点群データが、画素毎に距離情報を取得可能な撮像装置を用いて得られたデータである、
ことを特徴とする顔検出方法。
【請求項11】
コンピュータに、
(a)人の顔を含む部分の3次元点群データを取得する、ステップと、
(b)取得された前記3次元点群データにおいて、前記顔の各部品のうち削除対象となる部品に対応する第1の領域を特定する、ステップと、
(c)特定された前記第1の領域に存在する点を、不要な点として、前記3次元点群データから除去する、ステップと、
(d)前記不要な点が除去された前記3次元点群データを用いて、前記顔を検出する、ステップと、
を実行させ
、
前記(b)のステップにおいて、取得された前記3次元点群データにおいて、前記顔の各部品のうち顔検出の対象となる部品に対応する第2の領域も特定し、
前記(c)のステップにおいて、前記第1の領域から任意の3つ以上の点を点抽出し、抽出する度に、抽出した点を含む第1の仮平面と、前記第1の仮平面に直交し、且つ、前記第2の領域における3点以上の点からの距離が設定範囲内にある、第2の仮平面とを設定し、
そして、設定した前記第1の仮平面とそれと同時に設定した前記第2の仮平面との組毎に、
これら仮平面が前記顔の面に相当する可能性を示すスコアを算出し、算出した前記スコアに基づいて、1つの組を選択し、
前記3次元点群データにおける、選択した前記組の前記第1の仮平面からの距離が設定範囲内となる点を、前記不要な点として、前記3次元点群データから除去する、
プログラム。
【請求項12】
請求項
11に記載のプログラムであって、
前記(c)のステップにおいて、前記第1の領域に基準位置を設定し、前記3次元点群データにおける、設定した前記基準位置からの距離が設定範囲内となる点を、前記不要な点として、前記3次元点群データから除去する、
ことを特徴とするプログラム。
【請求項13】
請求項
11に記載のプログラムであって、
前記(b)のステップにおいて、耳に対応する領域を前記第1の領域として特定し、目、鼻、口に対応する領域を前記第2の領域として特定し、
前記(c)のステップにおいて、前記組毎に、当該組を構成する前記第1の仮平面及び前記第2の仮平面のいずれにも含まれない点それぞれに、この点と前記第1の仮平面との距離、及びこの点と前記第2の仮平面との距離のうち、短い方の距離に基づいて、前記距離が小さい程、値が小さくなるようにスコアを付加し、更に、各点に付加したスコアを合計して、当該組の合計スコアを算出し、算出した前記合計スコアの値に基づいて、1つの組を選択する、
ことを特徴とするプログラム。
【請求項14】
請求項
11に記載のプログラムであって、
前記(d)のステップにおいて、選択された組の前記第2の仮平面における法線の方向を前記顔の向きとして検出する、
ことを特徴とするプログラム。
【請求項15】
請求項
11に記載のプログラムであって、
前記3次元点群データが、画素毎に距離情報を取得可能な撮像装置を用いて得られたデータである、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像から人の顔を検出ための、顔検出装置、及び顔検出方法に関し、更には、これらを実現するためのプログラムに関する。
【背景技術】
【0002】
近年、映像監視、自動車といった種々の分野において、画像から人の顔を検出する顔検出処理が行われている。特に、映像監視の分野では、侵入者を特定するために、顔検出処理が行われている。また、自動車の分野においては、運転手の状態を監視して、安全運転を支援するために、顔検出処理が行われている。
【0003】
例えば、特許文献1は、顔検出処理を行う装置を開示している。特許文献1に開示された装置は、まず、映像データから人物の領域を検出し、検出した領域の特徴量と、予め登録されている顔の特徴量とを比較することで、顔の領域を特定する。また、特許文献1に開示された装置は、顔の領域に、予め登録されている目、鼻、口のテンプレートをマッチングすることで、目、鼻、口の各部品を検出する。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、特許文献1に開示された装置では、このようにテンプレートのマッチングによって顔の部品の検出を行っているが、この検出方法では、検出に必要がない余分な部品が映像に映っている場合に、検出精度が低下するという問題が発生する。また、この問題は、顔がカメラの正面を向いていない場合において、発生しやすく、特に、自動車の分野では、カメラの位置は車内の形状に制約を受けるため、この問題はより顕著となる。
【0006】
本発明の目的の一例は、上記問題を解消し、カメラの取り付け位置が制約を受ける場合であっても、顔の部品の検出精度の低下を抑制し得る、顔検出装置、顔検出方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【0007】
上記目的を達成するため、本発明の一側面における顔検出装置は、
人の顔を含む部分の3次元点群データを取得する、データ取得部と、
取得された前記3次元点群データにおいて、前記顔の各部品のうち削除対象となる部品に対応する第1の領域を特定する、領域特定部と、
特定された前記第1の領域に存在する点を、不要な点として、前記3次元点群データから除去する、フィルタリング部と、
前記不要な点が除去された前記3次元点群データを用いて、前記顔を検出する、顔検出部と、
を備えている、ことを特徴とする。
【0008】
また、上記目的を達成するため、本発明の一側面における顔検出方法は、
(a)人の顔を含む部分の3次元点群データを取得する、ステップと、
(b)取得された前記3次元点群データにおいて、前記顔の各部品のうち削除対象となる部品に対応する第1の領域を特定する、ステップと、
(c)特定された前記第1の領域に存在する点を、不要な点として、前記3次元点群データから除去する、ステップと、
(d)前記不要な点が除去された前記3次元点群データを用いて、前記顔を検出する、ステップと、
を有する、ことを特徴とする。
【0009】
更に、上記目的を達成するため、本発明の一側面におけるプログラムは、
コンピュータに、
(a)人の顔を含む部分の3次元点群データを取得する、ステップと、
(b)取得された前記3次元点群データにおいて、前記顔の各部品のうち削除対象となる部品に対応する第1の領域を特定する、ステップと、
(c)特定された前記第1の領域に存在する点を、不要な点として、前記3次元点群データから除去する、ステップと、
(d)前記不要な点が除去された前記3次元点群データを用いて、前記顔を検出する、ステップと、
を実行させる、ことを特徴とする。
【発明の効果】
【0010】
以上のように、本発明によれば、カメラの取り付け位置が制約を受ける場合であっても、顔の部品の検出精度の低下を抑制することができる。
【図面の簡単な説明】
【0011】
【
図1】
図1は、本発明の実施の形態1における顔検出装置の構成を示すブロック図である。
【
図2】
図2は、本発明の実施の形態1における顔検出装置を用いたシステムの一例を示す図である。
【
図3】
図3は、本発明の実施の形態1において利用される3次元点群データの一例を示す図である。
【
図4】
図4は、本発明実施の形態1におけるフィルタリング部の処理を説明するための図である。
【
図5】
図5は、本発明の実施の形態1における顔検出装置の動作を示すフロー図である。
【
図6】
図6は、本発明の実施の形態2において設定される2つの仮平面の一例を示す図である。
【
図7】
図7は、本発明の実施の形態2においてフィルタリング部によって行われる処理を説明する図である。
【
図8】
図8は、本発明の実施の形態2における顔検出装置の動作を示すフロー図である。
【
図9】
図9は、本発明の実施の形態1及び2における顔検出装置を実現するコンピュータの一例を示すブロック図である。
【発明を実施するための形態】
【0012】
(実施の形態1)
以下、本発明の実施の形態1における、顔検出装置、顔検出方法、及びプログラムについて、
図1~
図9を参照しながら説明する。
【0013】
[装置構成]
最初に、
図1を用いて、本実施の形態1における顔検出装置の構成について説明する。
図1は、本発明の実施の形態1における顔検出装置の構成を示すブロック図である。
【0014】
図1に示すように、本実施の形態1における顔検出装置10は、人の顔を含む部分の3次元点群データから、顔を検出するための装置である。
図1に示すように、本実施の形態1における顔検出装置10は、データ取得部11と、領域特定部12と、フィルタリング部13と、顔検出部14とを備えている。
【0015】
データ取得部11は、人の顔を含む部分の3次元点群データを取得する。領域特定部12は、データ取得部11によって取得された3次元点群データにおいて、顔の各部品のうち削除対象となる部品に対応する領域を特定する。
【0016】
フィルタリング部13は、領域特定部12によって特定された削除領域に存在する点を、不要な点として、3次元点群データから除去する。顔検出部14は、フィルタリング部13によって不要な点が除去された3次元点群データを用いて、顔を検出する。
【0017】
このように、本実施の形態1では、顔検出に必要ない顔の部品、即ち、削除対象となる部品のデータが削除されてから、顔検出が実行される。このため、本実施の形態1によれば、カメラの取り付け位置が制約を受ける場合であっても、顔の部品の検出精度の低下を抑制することができる。
【0018】
続いて、
図2~
図5を用いて、本実施の形態1における顔検出装置10の構成及び機能についてより具体的に説明する。
図2は、本発明の実施の形態1における顔検出装置を用いたシステムの一例を示す図である。
【0019】
図2の例では、顔検出装置10は、車両21に搭載される安全運転支援システム20の一部を構成している。安全運転支援システム20は、顔検出装置10によって検出された運転手の顔に基づいて、運転手の状態を監視して、安全運転を支援するシステムである。例えば、安全運転支援システム20は、運転手の顔が下を向いており、その状態が一定時間続くと、運転手が居眠りをしていると判定し、運転手を覚醒させるための処理を行う。
【0020】
また、顔検出装置10は、本実施の形態1では、撮像装置30に接続されている。撮像装置30は、被写体までの距離を画素毎に測定可能な装置である。撮像装置30の具体例としては、TOF(Time-of-Flight)カメラが挙げられる。TOFカメラは、まず、被写体に向けて、近赤外光等の光を照射する。また、TOFカメラは、照射した光が被写体で反射されて戻ってくるまでの時間を計測して、画素毎に、被写体までの距離を測定し、測定した画素毎の距離を特定するデータを出力する。本実施の形態では、この出力されたデータが、3次元点群データとなる。
【0021】
データ取得部11は、本実施の形態では、撮像装置(TOFカメラ)30が出力したデータを、3次元点群データとして取得する。
図3は、本発明の実施の形態1において利用される3次元点群データの一例を示す図である。
図3の例では、被写体は運転手であり、撮像装置30は車内に取り付けられている。また、
図3の例では、3次元点群データは、運転手の斜め上方から撮影することによって得られている。
【0022】
領域特定部12は、本実施の形態1では、
図3に示すように、3次元点群データにおいて、顔の各部品のうち、例えば、耳に対応する領域を削除領域として特定する。
図3において、耳に対応する領域は破線で示されている。
【0023】
具体的には、領域特定部12は、最初に、被写体が存在する空間を複数の立方体で区切る。この立方体を「ボクセル」と表記する。次いで、領域特定部12は、例えば、Viola & Jones法に沿って、予め登録されている「耳」の特徴量を用いたラスタスキャンによって、耳に対応する領域、即ち、耳の特徴量を持った点群が存在しているボクセル群を特定
する。Viola & Jones法は、下記の参照文献に開示されている。また、この場合の特徴量としては、局所領域間の信頼度(輝度)差に着目した「Haar-like特徴」が挙げられる。
【0024】
参照文献:
Viola, P and Jones, M,"Rapid object detection using a boosted cascade of simple features", CVPR,vol.1,pp.511-518
【0025】
フィルタリング部13は、
図4に示すように、本実施の形態1では、まず、耳に対応する領域に基準位置を設定する。
図4は、本発明実施の形態1におけるフィルタリング部の処理を説明するための図である。
図4の例では、フィルタリング部13は、領域特定部12によって、耳に対応する領域として特定されたボクセル群において、ボクセル毎に、耳の特徴量を持った点群の重心位置を特定し、特定した位置を、そのボクセルの基準位置とする。
図4において、基準位置は◇で示されている。また、●は、目、鼻、又は口に相当する点を示し、×は、フィルタリング部によって除去される点を示している。
【0026】
続いて、フィルタリング部13は、
図4に示すように、3次元点群データにおける、設定した基準位置からの距離が設定範囲内に存在する点を、不要な点として、3次元点群データから除去する。なお、
図4においては、例として、1つのボクセルにおいて除去される点が示されている。除去される範囲の設定は、予め行われた実験の結果等に基づいて行われる。
【0027】
顔検出部14は、本実施の形態1では、3次元点群データからフィルタリング部13によって不要な点が除去されると、まず、領域特定部12に、3次元点群データにおいて、顔検出の対象となる部品(目、鼻、口)に対応する領域(以下「顔検出領域」と表記する。)の特定を指示する。
【0028】
この場合、領域特定部12は、予め登録されている「目」、「鼻」、「口」の特徴量を用いたラスタスキャンによって、顔検出領域、即ち、目、鼻、口の特徴量を持った点群が存在しているボクセル群を特定する。
【0029】
続いて、顔検出部14は、領域特定部12によって特定された顔検出領域に存在する、点群に基づいて、人の顔を検出する。このように、顔検出部14は、耳に対応する領域の点群が除かれた3次元点群データを用いて、顔検出を実行できるので、顔検出の精度の向上が図られる。また、本実施の形態1において、顔検出部14による顔検出の手法としては、従来からの手法が用いられていても良い。
【0030】
[装置動作]
次に、本実施の形態1における顔検出装置10の動作について
図5を用いて説明する。
図5は、本発明の実施の形態1における顔検出装置の動作を示すフロー図である。以下の説明においては、適宜
図1~
図4を参照する。また、本実施の形態1では、顔検出装置10を動作させることによって、顔検出方法が実施される。よって、本実施の形態1における顔検出方法の説明は、以下の顔検出装置10の動作説明に代える。
【0031】
図5に示すように、最初に、データ取得部11は、撮像装置(TOFカメラ)30が出力したデータを、3次元点群データとして取得する(ステップA1)。
【0032】
次に、領域特定部12は、3次元点群データにおいて、顔の各部品のうち削除対象となる、耳に対応する領域を特定する(ステップA2)。
【0033】
次に、フィルタリング部13は、耳に対応する領域に存在する各ボクセルに基準位置を
設定し、設定した基準位置からの距離が設定範囲内となる点を、不要な点として、3次元点群データから除去する(ステップA3)。
【0034】
次に、顔検出部14は、ステップA3でフィルタリング部13によって不要な点が除去された3次元点群データを用いて、顔を検出する(ステップA4)。
【0035】
[実施の形態1における効果]
以上のように、本実施の形態1では、撮像装置30が、人を斜め方向から撮影しており、3次元点群データに耳が含まれていても、耳の点群が削除された状態で、顔検出が行われる。このため、本実施の形態1によれば、撮像装置30の取り付け位置に制約を受けることなく、顔の部品の検出精度の低下が抑制される。
【0036】
[プログラム]
本実施の形態1におけるプログラムは、コンピュータに、
図5に示すステップA1~A4を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態1における顔検出装置10と顔検出方法とを実現することができる。この場合、コンピュータのプロセッサは、データ取得部11、領域特定部12、フィルタリング部13,及び顔検出部14として機能し、処理を行なう。また、コンピュータは、汎用のコンピュータであっても良いし、車両に搭載されたコンピュータであっても良い。
【0037】
また、本実施の形態1におけるプログラムは、複数のコンピュータによって構築されたコンピュータシステムによって実行されても良い。この場合は、例えば、各コンピュータが、それぞれ、データ取得部11、領域特定部12、フィルタリング部13,及び顔検出部14のいずれかとして機能しても良い。
【0038】
(実施の形態2)
次に、本発明の実施の形態2における、顔検出装置、顔検出方法、及びプログラムについて、
図6~
図8を参照しながら説明する。
【0039】
[装置構成]
最初に、本実施の形態2における顔検出装置の構成について説明する。本実施の形態2における顔検出装置は、
図1及び
図2に示した実施の形態1における顔検出装置10と同様の構成を備えている。本実施の形態2においても、顔検出装置は、データ取得部11と、領域特定部12と、フィルタリング部13と、顔検出部14とを備えている。
【0040】
但し、本実施の形態2における顔検出装置は、領域特定部12、フィルタリング部13及び顔検出部14における機能の点で、実施の形態1における顔検出装置10と異なっている。以下に、
図6及び
図7を用いて、実施の形態1との相違点を中心に説明する。
【0041】
領域特定部12は、本実施の形態2では、データ取得部11によって、取得された3次元点群データにおいて、耳に対応する領域の特定の際に、耳に対応する領域だけでなく、顔検出の対象となる部品(目、鼻、口)に対応する領域(顔検出領域)も特定する。
【0042】
フィルタリング部13は、本実施の形態2では、
図6に示すように、まず、耳に対応する領域から任意の3つ以上の点を抽出し、抽出する度に、抽出した点を含む第1の仮平面Aと、第2の仮平面Bとを設定する。第2の仮平面Bは、第1の仮平面Aに直交し、且つ、いずれかの顔検出領域における3点以上の点からの距離が設定範囲内にある面である。なお、設定範囲は、撮像装置の性能、撮像装置と運転手との距離等を考慮し、予め実験を行うことによって設定される。
【0043】
図6は、本発明の実施の形態2において設定される2つの仮平面の一例を示す図である。
図6の例では、フィルタリング部13によって除去される点は「×」で示され、顔検出領域に存在する点(目、鼻、口に相当する点)は「●」で示されている。
【0044】
続いて、フィルタリング部13は、本実施の形態では、第1の仮平面Aとそれと同時に設定した第2の仮平面Bとの組毎に、これら仮平面が顔の面に相当する可能性を示すスコアを算出し、算出したスコアに基づいて、1つの組を選択する。
【0045】
具体的には、
図7に示すように、フィルタリング部13は、組毎に、この組を構成する第1の仮平面及び第2の仮平面のいずれにも含まれない点それぞれに、この点と第1の仮平面との距離、及びこの点と第2の仮平面との距離のうち、短い方の距離に基づいて、距離が短い程、値が小さくなるようにスコアを付加する。
【0046】
図7は、本発明の実施の形態2においてフィルタリング部によって行われる処理を説明する図である。なお、仮平面は、実際は、3次元空間において設定されるが、
図7の例では、説明のため、2次元座標上で示されている。また、
図7において、いずれかの仮平面に含まれる点は○で示され、いずれの仮平面にも含まれない点は●で示されている。
【0047】
また、フィルタリング部13は、組毎に、この組を構成する第1の仮平面及び第2の仮平面のいずれにも含まれない点それぞれに付加したスコアを合計して、この組の合計スコアを算出する。そして、フィルタリング部13は、算出した合計スコアの値に基づいて、1つの組を選択する。
【0048】
また、フィルタリング部13は、スコアの算出において、算出した距離(誤差)にBiweight推定法による重みを適用することによって、外れ値の影響を小さくすることができる。具体的には、この場合、仮平面から遠距離にある点を外れ値と仮定し、誤差0mmの点の重みを1.0、許容誤差より誤差の大きな点の重みを0.0とする。つまり、誤差が小さい点の重みを強く、誤差が大きい点の重みを弱くする。フィルタリング部13は、例えば、下記の数1及び数2に基づいて、スコアを算出することができる。
【0049】
下記の数1及び数2において、「ei」は、i番目の点の誤差[mm]を示し、「w(ei)」は、誤差eiでの重みを示している。また、「aE」は、許容誤差[mm]である。
【0050】
【0051】
【0052】
その後、フィルタリング部13は、3次元点群データにおける、選択した組の第1の仮
平面からの距離が設定範囲内となる点を、不要な点として、3次元点群データから除去する。
【0053】
また、顔検出部14は、不要な点が削除された3次元点群データから顔検出を実行する。本実施の形態2では、顔検出部14は、更に、フィルタリング部13によって選択された組の第2の仮平面における法線の向きを検出し、検出した向きを人の顔の向きとすることもできる。
【0054】
[装置動作]
次に、本実施の形態2における顔検出装置の動作について
図8を用いて説明する。
図8は、本発明の実施の形態2における顔検出装置の動作を示すフロー図である。以下の説明においては、適宜
図1、
図2、
図6及び
図7を参照する。また、本実施の形態2では、顔検出装置を動作させることによって、顔検出方法が実施される。よって、本実施の形態2における顔検出方法の説明は、以下の顔検出装置の動作説明に代える。
【0055】
図8に示すように、最初に、データ取得部11は、撮像装置(TOFカメラ)30が出力したデータを、3次元点群データとして取得する(ステップB1)。ステップB1は、
図5に示したステップA1と同様のステップである。
【0056】
次に、領域特定部12は、3次元点群データにおいて、顔の各部品のうち削除対象となる、耳に対応する領域を特定し、更に、目、鼻、口に対応する領域を顔検出領域として特定する(ステップB2)。
【0057】
次に、フィルタリング部13は、耳に対応する領域から任意の3つ以上の点(具体的には3点)を抽出し、抽出した3点を含む第1の仮平面を設定する(ステップB3)。
【0058】
次に、フィルタリング部13は、第1の仮平面に直交し、且つ、いずれかの顔検出領域における3点以上の点(具体的には3点)を含む、第2の仮平面を設定する(ステップB4)。
【0059】
次に、フィルタリング部13は、ステップB3及びB4で設定した仮平面の組数が設定値に到達したかどうかを判定する(ステップB5)。ステップB5の判定の結果、仮平面の数が設定値に到達していない場合は、フィルタリング部13は、再度ステップB3及びB4を実行する。
【0060】
一方、ステップB5の判定の結果、仮平面の組数が設定値に到達している場合は、フィルタリング部13は、組毎に、この組を構成する第1の仮平面及び第2の仮平面のいずれにも含まれない点それぞれに、スコアを付加する(ステップB6)。また、ステップB6において、フィルタリング部13は、各点と第1の仮平面との距離、及び各点と第2の仮平面との距離のうち、短い方の距離に基づいて、距離が短い程、値が小さくなるようにスコアを付加する。
【0061】
次に、フィルタリング部13は、組毎に、各点に付加したスコアを合計して、この組の合計スコアを算出し、算出した合計スコアの値に基づいて、1つの組を選択する(ステップB7)。
【0062】
その後、フィルタリング部13は、3次元点群データにおける、ステップB7で選択した組の第1の仮平面からの距離が設定範囲内となる点を、不要な点として、3次元点群データから除去する(ステップB8)。
【0063】
次に、顔検出部14は、ステップB8で不要な点が除去された3次元点群データを用いて、顔を検出する(ステップB9)。また、ステップB9の実行後、顔検出部14は、ステップB7で選択された組の第2の仮平面における法線の向きを検出し、検出した向きを人の顔の向きとすることもできる。
【0064】
[実施の形態2における効果]
以上のように、本実施の形態2でも、実施の形態1と同様に、撮像装置30が、人を斜め方向から撮影しており、3次元点群データに耳が含まれていても、耳の点群が削除された状態で、顔検出が行われる。このため、本実施の形態2においても、撮像装置30の取り付け位置に制約を受けることなく、顔の部品の検出精度の低下が抑制される。
【0065】
また、本実施の形態2では、人の顔の向きの検出も可能となる。よって、安全運転支援システム20は、実施の形態1に比べて、より詳細に運転手の状態を検出することができる。
【0066】
[プログラム]
本実施の形態2におけるプログラムは、コンピュータに、
図8に示すステップB1~B9を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態2における顔検出装置10と顔検出方法とを実現することができる。この場合、コンピュータのプロセッサは、データ取得部11、領域特定部12、フィルタリング部13,及び顔検出部14として機能し、処理を行なう。また、コンピュータは、汎用のコンピュータであっても良いし、車両に搭載されたコンピュータであっても良い。
【0067】
また、本実施の形態2におけるプログラムは、複数のコンピュータによって構築されたコンピュータシステムによって実行されても良い。この場合は、例えば、各コンピュータが、それぞれ、データ取得部11、領域特定部12、フィルタリング部13,及び顔検出部14のいずれかとして機能しても良い。
【0068】
(物理構成)
ここで、本実施の形態1及び2におけるプログラムを実行することによって、顔検出装置を実現するコンピュータについて
図9を用いて説明する。
図9は、本発明の実施の形態1及び2における顔検出装置を実現するコンピュータの一例を示すブロック図である。
【0069】
図9に示すように、コンピュータ110は、CPU(Central Processing Unit)111と、メインメモリ112と、記憶装置113と、入力インターフェイス114と、表示コントローラ115と、データリーダ/ライタ116と、通信インターフェイス117とを備える。これらの各部は、バス121を介して、互いにデータ通信可能に接続される。また、コンピュータ110は、CPU111に加えて、又はCPU111に代えて、GPU(Graphics Processing Unit)、又はFPGA(Field-Programmable Gate Array)を備えていても良い。
【0070】
CPU111は、記憶装置113に格納された、本実施の形態におけるプログラム(コード)をメインメモリ112に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ112は、典型的には、DRAM(Dynamic Random Access Memory)等の揮発性の記憶装置である。また、本実施の形態におけるプログラムは、コンピュータ読み取り可能な記録媒体120に格納された状態で提供される。なお、本実施の形態におけるプログラムは、通信インターフェイス117を介して接続されたインターネット上で流通するものであっても良い。
【0071】
また、記憶装置113の具体例としては、ハードディスクドライブの他、フラッシュメモリ等の半導体記憶装置が挙げられる。入力インターフェイス114は、CPU111と、キーボード及びマウスといった入力機器118との間のデータ伝送を仲介する。表示コントローラ115は、ディスプレイ装置119と接続され、ディスプレイ装置119での表示を制御する。
【0072】
データリーダ/ライタ116は、CPU111と記録媒体120との間のデータ伝送を仲介し、記録媒体120からのプログラムの読み出し、及びコンピュータ110における処理結果の記録媒体120への書き込みを実行する。通信インターフェイス117は、CPU111と、他のコンピュータとの間のデータ伝送を仲介する。
【0073】
また、記録媒体120の具体例としては、CF(Compact Flash(登録商標))及びSD(Secure Digital)等の汎用的な半導体記憶デバイス、フレキシブルディスク(Flexible Disk)等の磁気記録媒体、又はCD-ROM(Compact Disk Read Only Memory)などの光学記録媒体が挙げられる。
【0074】
なお、本実施の形態1及び2における顔検出装置10は、プログラムがインストールされたコンピュータではなく、各部に対応したハードウェアを用いることによっても実現可能である。更に、顔検出装置は、一部がプログラムで実現され、残りの部分がハードウェアで実現されていてもよい。
【0075】
上述した実施の形態の一部又は全部は、以下に記載する(付記1)~(付記18)によって表現することができるが、以下の記載に限定されるものではない。
【0076】
(付記1)
人の顔を含む部分の3次元点群データを取得する、データ取得部と、
取得された前記3次元点群データにおいて、前記顔の各部品のうち削除対象となる部品に対応する第1の領域を特定する、領域特定部と、
特定された前記第1の領域に存在する点を、不要な点として、前記3次元点群データから除去する、フィルタリング部と、
前記不要な点が除去された前記3次元点群データを用いて、前記顔を検出する、顔検出部と、
を備えている、
ことを特徴とする顔検出装置。
【0077】
(付記2)
付記1に記載の顔検出装置であって、
前記フィルタリング部が、前記第1の領域に基準位置を設定し、前記3次元点群データにおける、設定した前記基準位置からの距離が設定範囲内となる点を、前記不要な点として、前記3次元点群データから除去する、
ことを特徴とする顔検出装置。
【0078】
(付記3)
付記1または2に記載の顔検出装置であって、
前記領域特定部が、取得された前記3次元点群データにおいて、前記顔の各部品のうち顔検出の対象となる部品に対応する第2の領域も特定し、
前記フィルタリング部が、前記第1の領域から任意の3つ以上の点を点抽出し、抽出する度に、抽出した点を含む第1の仮平面と、前記第1の仮平面に直交し、且つ、前記第2の領域における3点以上の点からの距離が設定範囲内にある、第2の仮平面とを設定し、そして、設定した前記第1の仮平面とそれと同時に設定した前記第2の仮平面との組毎に
、
これら仮平面が前記顔の面に相当する可能性を示すスコアを算出し、算出した前記スコアに基づいて、1つの組を選択し、
前記3次元点群データにおける、選択した前記組の前記第1の仮平面からの距離が設定範囲内となる点を、前記不要な点として、前記3次元点群データから除去する、
ことを特徴とする顔検出装置。
【0079】
(付記4)
付記3に記載の顔検出装置であって、
前記領域特定部が、耳に対応する領域を前記第1の領域として特定し、目、鼻、口に対応する領域を前記第2の領域として特定し、
前記フィルタリング部が、前記組毎に、当該組を構成する前記第1の仮平面及び前記第2の仮平面のいずれにも含まれない点それぞれに、この点と前記第1の仮平面との距離、及びこの点と前記第2の仮平面との距離のうち、短い方の距離に基づいて、前記距離が小さい程、値が小さくなるようにスコアを付加し、更に、各点に付加したスコアを合計して、当該組の合計スコアを算出し、算出した前記合計スコアの値に基づいて、1つの組を選択する、
ことを特徴とする顔検出装置。
【0080】
(付記5)
付記3または4に記載の顔検出装置であって、
前記顔検出部が、選択された組の前記第2の仮平面における法線の方向を前記顔の向きとして検出する、
ことを特徴とする顔検出装置。
【0081】
(付記6)
付記1から5のいずれかに記載の顔検出装置であって、
前記3次元点群データが、画素毎に距離情報を取得可能な撮像装置を用いて得られたデータである、
ことを特徴とする顔検出装置。
【0082】
(付記7)
(a)人の顔を含む部分の3次元点群データを取得する、ステップと、
(b)取得された前記3次元点群データにおいて、前記顔の各部品のうち削除対象となる部品に対応する第1の領域を特定する、ステップと、
(c)特定された前記第1の領域に存在する点を、不要な点として、前記3次元点群データから除去する、ステップと、
(d)前記不要な点が除去された前記3次元点群データを用いて、前記顔を検出する、ステップと、
を有する、
ことを特徴とする顔検出方法。
【0083】
(付記8)
付記7に記載の顔検出方法であって、
前記(c)のステップにおいて、前記第1の領域に基準位置を設定し、前記3次元点群データにおける、設定した前記基準位置からの距離が設定範囲内となる点を、前記不要な点として、前記3次元点群データから除去する、
ことを特徴とする顔検出方法。
【0084】
(付記9)
付記7または8に記載の顔検出方法であって、
前記(b)のステップにおいて、取得された前記3次元点群データにおいて、前記顔の各部品のうち顔検出の対象となる部品に対応する第2の領域も特定し、
前記(c)のステップにおいて、前記第1の領域から任意の3つ以上の点を点抽出し、抽出する度に、抽出した点を含む第1の仮平面と、前記第1の仮平面に直交し、且つ、前記第2の領域における3点以上の点からの距離が設定範囲内にある、第2の仮平面とを設定し、
そして、設定した前記第1の仮平面とそれと同時に設定した前記第2の仮平面との組毎に、
これら仮平面が前記顔の面に相当する可能性を示すスコアを算出し、算出した前記スコアに基づいて、1つの組を選択し、
前記3次元点群データにおける、選択した前記組の前記第1の仮平面からの距離が設定範囲内となる点を、前記不要な点として、前記3次元点群データから除去する、
ことを特徴とする顔検出方法。
【0085】
(付記10)
付記9に記載の顔検出方法であって、
前記(b)のステップにおいて、耳に対応する領域を前記第1の領域として特定し、目、鼻、口に対応する領域を前記第2の領域として特定し、
前記(c)のステップにおいて、前記組毎に、当該組を構成する前記第1の仮平面及び前記第2の仮平面のいずれにも含まれない点それぞれに、この点と前記第1の仮平面との距離、及びこの点と前記第2の仮平面との距離のうち、短い方の距離に基づいて、前記距離が小さい程、値が小さくなるようにスコアを付加し、更に、各点に付加したスコアを合計して、当該組の合計スコアを算出し、算出した前記合計スコアの値に基づいて、1つの組を選択する、
ことを特徴とする顔検出方法。
【0086】
(付記11)
付記9または10に記載の顔検出方法であって、
前記(d)のステップにおいて、選択された組の前記第2の仮平面における法線の方向を前記顔の向きとして検出する、
ことを特徴とする顔検出方法。
【0087】
(付記12)
付記7から11のいずれかに記載の顔検出方法であって、
前記3次元点群データが、画素毎に距離情報を取得可能な撮像装置を用いて得られたデータである、
ことを特徴とする顔検出方法。
【0088】
(付記13)
コンピュータに、
(a)人の顔を含む部分の3次元点群データを取得する、ステップと、
(b)取得された前記3次元点群データにおいて、前記顔の各部品のうち削除対象となる部品に対応する第1の領域を特定する、ステップと、
(c)特定された前記第1の領域に存在する点を、不要な点として、前記3次元点群データから除去する、ステップと、
(d)前記不要な点が除去された前記3次元点群データを用いて、前記顔を検出する、ステップと、
を実行させる、プログラム。
【0089】
(付記14)
付記13に記載のプログラムであって、
前記(c)のステップにおいて、前記第1の領域に基準位置を設定し、前記3次元点群データにおける、設定した前記基準位置からの距離が設定範囲内となる点を、前記不要な点として、前記3次元点群データから除去する、
ことを特徴とするプログラム。
【0090】
(付記15)
付記13または14に記載のプログラムであって、
前記(b)のステップにおいて、取得された前記3次元点群データにおいて、前記顔の各部品のうち顔検出の対象となる部品に対応する第2の領域も特定し、
前記(c)のステップにおいて、前記第1の領域から任意の3つ以上の点を点抽出し、抽出する度に、抽出した点を含む第1の仮平面と、前記第1の仮平面に直交し、且つ、前記第2の領域における3点以上の点からの距離が設定範囲内にある、第2の仮平面とを設定し、
そして、設定した前記第1の仮平面とそれと同時に設定した前記第2の仮平面との組毎に、
これら仮平面が前記顔の面に相当する可能性を示すスコアを算出し、算出した前記スコアに基づいて、1つの組を選択し、
前記3次元点群データにおける、選択した前記組の前記第1の仮平面からの距離が設定範囲内となる点を、前記不要な点として、前記3次元点群データから除去する、
ことを特徴とするプログラム。
【0091】
(付記16)
付記15に記載のプログラムであって、
前記(b)のステップにおいて、耳に対応する領域を前記第1の領域として特定し、目、鼻、口に対応する領域を前記第2の領域として特定し、
前記(c)のステップにおいて、前記組毎に、当該組を構成する前記第1の仮平面及び前記第2の仮平面のいずれにも含まれない点それぞれに、この点と前記第1の仮平面との距離、及びこの点と前記第2の仮平面との距離のうち、短い方の距離に基づいて、前記距離が小さい程、値が小さくなるようにスコアを付加し、更に、各点に付加したスコアを合計して、当該組の合計スコアを算出し、算出した前記合計スコアの値に基づいて、1つの組を選択する、
ことを特徴とするプログラム。
【0092】
(付記17)
付記15または16に記載のプログラムであって、
前記(d)のステップにおいて、選択された組の前記第2の仮平面における法線の方向を前記顔の向きとして検出する、
ことを特徴とするプログラム。
【0093】
(付記18)
付記13から17のいずれかに記載のプログラムであって、
前記3次元点群データが、画素毎に距離情報を取得可能な撮像装置を用いて得られたデータである、
ことを特徴とするプログラム。
【産業上の利用可能性】
【0094】
以上のように、本発明によれば、カメラの取り付け位置が制約を受ける場合であっても、顔の部品の検出精度の低下を抑制することができる。本発明は、人の顔の検出が求めら
れる、映像監視システム、車両用のシステム等に有用である。
【符号の説明】
【0095】
10 顔検出装置
11 データ取得部
12 領域特定部
13 フィルタリング部
14 顔検出部
20 安全運転支援システム
21 車両
30 撮像装置
110 コンピュータ
111 CPU
112 メインメモリ
113 記憶装置
114 入力インターフェイス
115 表示コントローラ
116 データリーダ/ライタ
117 通信インターフェイス
118 入力機器
119 ディスプレイ装置
120 記録媒体
121 バス