(57)【要約】【課題】顔全体に均等に光が照射されない場合においても、顔の中心線を正確に検出することができる顔画像処理装置及びプログラムを提供する。【解決手段】ウインドウ２０を横エッジ画像の左端に設定した場合には、ウインドウ２０の横方向の線分を２等分する線はＸ＝Ｋの直線になる。この直線に対して線対称な座標位置の両方に横エッジ点が存在する場合には予め設定した点数を加算する。この演算をウインドウ２０内の総ての画素に対して実施して獲得した点数の総和は、Ｘ＝Ｋの直線の中心線らしさの度合を表している。ウインドウ２０を横エッジ画像の右端まで右方向に少しずつ移動させながら、各ウインドウ位置により定まる直線について得点を求める。そして、最も得点が大きい直線が顔の中心線候補として選択される。中心線候補での得点が予め設定された閾値よりも大きい場合には、中心線候補を中心線と判定する。【選択図】図４
2004110543.tif 000002
【特許請求の範囲】
【請求項１】
顔画像を入力する画像入力手段と、
入力された顔画像から横エッジ画像を生成する横エッジ画像生成手段と、
生成された横エッジ画像に基づいて顔の中心線を検出する中心線検出手段と、
を備えた顔画像処理装置。
【請求項２】
前記中心線検出手段は、前記横エッジ画像に中心線候補を複数設定し、各中心線候補に対して左右対称な画素に共にエッジ点が存在すれば投票し、最も投票数が高い中心線候補を顔の中心線として検出する請求項１に記載の顔画像処理装置。
【請求項３】
前記中心線検出手段で検出された前記中心線の近傍領域の横エッジ画像に中心線候補を複数設定し、各中心線候補に対して左右対称な画素に共にエッジ点が存在しなければ投票し、最も投票数が高い中心線候補を顔の中心線として再検出する中心線再検出手段を更に備えた請求項１又は２に記載の顔画像処理装置。
【請求項４】
入力された顔画像から縦エッジ画像を生成する縦エッジ画像生成手段と、
生成された縦エッジ画像に基づいて顔の左右両端を検出する両端検出手段と、
検出された顔の左右両端と前記顔の中心線とから顔の向きを検出する顔方向検出手段と、
を更に備えた請求項１乃至３の何れか１項に記載の顔画像処理装置。
【請求項５】
コンピュータを、入力された顔画像から横エッジ画像を生成する横エッジ画像生成手段、及び生成された横エッジ画像に基づいて顔の中心線を検出する中心線検出手段として機能させる顔画像処理用のプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、顔画像処理装置及びプログラムに関し、特に、横エッジ画像に基づいて顔の中心線を正確に検出することができる顔画像処理装置及びプログラムに関する。
【０００２】
【従来の技術】
従来、入力された濃淡顔画像から、濃淡情報を利用し、顔の中心線を検出する方法が提案されている。この方法では、左右の画素の濃淡値が最も近い、即ち、対称性が高いことに基づいて中心線を算出している（特許文献１参照）。
【０００３】
【特許文献１】
特開平９−１７１５６０号公報
【０００４】
【発明が解決しようとする課題】
しかしながら、室内で顔画像を撮影する場合には、顔全体に均等に光が照射できるため、顔面の左右対称な点の濃淡値は近い値になるが、車室内環境を考えた場合には、顔全体に均等に光が照射されない場合が発生する。即ち、顔の側方から太陽光が当る場合には、太陽光が当る部分だけが明るくなる。従って、左右対称な座標点の濃淡値の差が大きくなり、顔の対称性の評価が正確に実行できない状況が発生する、という問題があった。
【０００５】
本発明は上記問題を解決すべく成されたものであり、本発明の目的は、顔全体に均等に光が照射されない場合においても、顔の中心線を正確に検出することができる顔画像処理装置及びプログラムを提供することにある。
【０００６】
【課題を解決するための手段】
上記目的を達成するために本発明の顔画像処理装置は、顔画像を入力する画像入力手段と、入力された顔画像から横エッジ画像を生成する横エッジ画像生成手段と、生成された横エッジ画像に基づいて顔の中心線を検出する中心線検出手段と、を備えたことを特徴としている。
【０００７】
本発明の顔画像処理装置では、画像入力手段から顔画像が入力されると、横エッジ画像生成手段が、入力された顔画像から横エッジ画像を生成する。そして、中心線検出手段が、生成された横エッジ画像に基づいて顔の中心線を検出する。顔画像には目や眉、眼鏡等、横エッジを生じる部分が多い。従って、横エッジ画像の対称性を利用することで、顔全体に均等に光が照射されない場合においても、顔の中心線を正確に検出することができる。
【０００８】
上記の顔画像処理装置において、中心線検出手段は、横エッジ画像に中心線候補を複数設定し、各中心線候補に対して左右対称な画素に共にエッジ点が存在すれば投票し、最も投票数が高い中心線候補を顔の中心線として検出するように構成することができる。
【０００９】
また、中心線検出手段で検出された中心線の近傍領域の横エッジ画像に中心線候補を複数設定し、各中心線候補に対して左右対称な画素に共にエッジ点が存在しなければ投票し、最も投票数が高い中心線候補を顔の中心線として再検出する中心線再検出手段を更に備えていてもよい。
【００１０】
また、上記の顔画像処理装置は、入力された顔画像から縦エッジ画像を生成する縦エッジ画像生成手段と、生成された縦エッジ画像に基づいて顔の左右両端を検出する両端検出手段と、検出された顔の左右両端と前記顔の中心線とから顔の向きを検出する顔方向検出手段と、を更に備えていてもよい。
【００１１】
上記の顔画像処理は、コンピュータを、入力された顔画像から横エッジ画像を生成する横エッジ画像生成手段、及び生成された横エッジ画像に基づいて顔の中心線を検出する中心線検出手段として機能させる顔画像処理用のプログラムを用いて実現することができる。
【００１２】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
（第１の実施の形態）
本実施の形態に係る顔画像処理装置は、図１に示すように、ドライバの顔を撮影するカメラ１０、ドライバの顔を照明する照明光源１２、画像処理用のコンピュータ１４、及びコンピュータ１４に接続された表示装置１６を備えている。表示装置１６は、ＣＲＴ等で構成され、カメラ１０で撮影された顔画像から抽出された２値化画像等を表示する。
【００１３】
画像処理用のコンピュータ１４は、ＣＰＵ、ＲＯＭ、ＲＡＭの外に、カメラ１０から入力された画像信号をディジタル信号に変換するＡ／Ｄ（アナログ／ディジタル）変換器、画像データを記憶する画像メモリ、及びこれらを接続するコントロールバスやデータバスで構成されている。ＲＯＭには、後述する中心線検出処理ルーチンを実行するプログラムが記憶されている。
【００１４】
次に、図２を参照して、本実施の形態に係る中心線検出処理ルーチンについて説明する。カメラ１０から入力された画像信号は、Ａ／Ｄ変換器によってディジタルの画像データに変換されて画像メモリに記憶されている。
【００１５】
ステップ１００において、画像メモリに記憶されている顔画像を取り込み、ステップ１０２で、取り込んだ顔画像に対して所定の閾値を用いて横エッジを検出する。図３（Ａ）に示す顔画像（グレー画像）を例に、横エッジを検出する例について説明する。まず、垂直方向に隣接する画素の輝度値の差を予め設定された閾値と比較し、輝度値の差が閾値を超える画素（横エッジ点）の出力値を０、輝度値の差が閾値を超えない画素の出力値を１とするようにラべリングを行い、顔画像をラベル０、１が付された２値画像に変換する。これにより、図３（Ｂ）に示すように、横エッジ点が白色で表示された白黒の横エッジ画像が得られる。
【００１６】
ステップ１０４では、得られた横エッジ画像を用いて顔の中心線候補を選択する。図４に示すように、縦横のサイズがＹ１、Ｘ１の矩形状の横エッジ画像に対し、縦横のサイズが各々Ｙ１、２Ｋ＋１のウインドウ（斜線を付した矩形部分）２０を想定する。横エッジ画像の左下端をＸＹ座標の原点（０，０）とすると、ウインドウ２０を横エッジ画像の左端に設定した場合には、ウインドウ２０の横方向の線分を２等分する線はＸ＝Ｋの直線になる。
【００１７】
この直線に対して線対称な座標位置の両方に横エッジ点が存在する場合には予め設定した点数を加算する。例えば、画素ａと画素ｂのように、Ｘ＝Ｋの直線から左右にそれぞれ距離Ｋ１離れた位置に存在する画素の各々が共に横エッジ点になる場合には、点数が加算される。一方、線対称な座標位置の両方に横エッジ点が存在しない場合には、即ち、片方のみに存在する場合及び両方共に存在しない場合には、点数を加算しない。この演算をウインドウ２０内の総ての画素に対して実施して獲得した点数の総和は、Ｘ＝Ｋの直線の中心線らしさの度合を表している。即ち、得点が大きいほど、その直線に対するエッジ部分の対称性が高く、横エッジ画像の中心線である可能性が高いことになる。
【００１８】
ウインドウ２０を横エッジ画像の右端まで右方向に少しずつ移動させながら、各ウインドウ位置により定まる直線について得点を求める。そして、最も得点が大きい直線が顔の中心線候補として選択され、該中心線候補でのＸ座標と得点とが得られる。
【００１９】
ステップ１０６では、選択された中心線候補が中心線として適切か否かを判定する。中心線候補での得点が予め設定された閾値よりも大きい場合には、中心線候補を中心線と判定し、ステップ１０８で中心線候補を中心線と決定する。一方、得点が予め設定された閾値よりも小さい場合には、中心線の検出は不可能と判定し、ステップ１００に戻って中心線の検出をやり直す。また、ステップ１０８で中心線を決定した後も、ステップ１００に戻って次の顔画像を取り込み、次の顔画像に対する中心線を検出する。
【００２０】
以上の通り、本実施の形態では、横エッジ画像のエッジ部分の対称性が最も高くなるように中心線を決定する。顔画像には目や眉、眼鏡等、横エッジを生じる部分が多いので、横エッジ部分の対称性を利用することで、顔全体に均等に光が照射されない場合においても、顔の中心線を正確に検出することができる。
【００２１】
（第２の実施の形態）
第１の実施の形態では横エッジ画像だけを用いて顔の中心線を検出したが、本実施の形態では横エッジ画像と縦エッジ画像の両方を用いて顔の中心線を検出する。この場合の中心線検出処理ルーチンを、図５を参照して説明する。
【００２２】
ステップ２００において、画像メモリに記憶されている顔画像を取り込み、ステップ２０２で、ステップ１０２と同様にして、取り込んだ顔画像に対して横エッジを検出する。これにより、例えば、図６（Ａ）に示すように、白黒の横エッジ画像が得られる。ステップ２０４で、今度は取り込んだ顔画像に対して縦エッジを検出する。横エッジの検出の場合と同様に、顔画像について水平方向に隣接する画素の輝度値の差を予め設定された閾値と比較し、輝度値の差が閾値を超える画素（縦エッジ点）の出力値を０、輝度値の差が閾値を超えない画素の出力値を１とするようにラべリングを行い、顔画像をラベル０、１が付された２値画像に変換することにより縦エッジを検出する。これにより、例えば、図６（Ｂ）に示すように、縦エッジ点が白色で表示された白黒の縦エッジ画像が得られる。
【００２３】
ステップ２０６では、ステップ１０４と同様にして、得られた横エッジ画像を用いて第１の中心線候補（中心線候補１）を選択する。次に、ステップ２０８で、得られた縦エッジ画像を用いて第１の中心線候補の近傍領域において第２の中心線候補を選択する。図６（Ｂ）に示すように、第１の中心線候補の近傍にウインドウ２０より小さい矩形のウインドウ（近傍領域）３０を設定する。ウインドウ３０の横方向の線分を２等分する線に対して線対称な座標位置の両方に縦エッジ点が存在する場合には予め設定した点数を加算する。この演算をウインドウ３０内の総ての画素に対して実施する。ウインドウ３０を第１の中心線候補の近傍の所定範囲で少しずつ横方向に移動させながら、各ウインドウ位置により定まる直線について得点を求める。そして、最も得点が大きい直線が第２の中心線候補として選択され、第２の中心線候補でのＸ座標と得点とが得られる。
【００２４】
ステップ２１０では、下記の３つの条件を組み合わせて、選択された第２の中心線候補が中心線として適切か否かを判定する。
（１）第１の中心線候補での得点が、予め設定された第１の閾値よりも大きい。
（２）第２の中心線候補での得点が、予め設定された第２の閾値よりも大きい。
（３）第１の中心線候補と第２の中心線候補との座標位置の差分が、予め設定された第３の閾値よりも小さい。
【００２５】
（１）〜（３）の全条件が成立する場合、又は（１）及び（２）の条件が成立する場合には、第２の中心線候補を中心線と判定し、ステップ２１２で第２の中心線候補を中心線と決定する。一方、（１）又は（２）の条件が成立しない場合には、中心線の検出は不可能と判定し、ステップ２００に戻って中心線の検出をやり直す。また、ステップ２１２で中心線を決定した後も、ステップ２００に戻って次の顔画像を取り込み、次の顔画像に対する中心線を検出する。
【００２６】
上述した通り、顔画像には横エッジを生じる部分が多いが、図６（Ｂ）から分かるように、顔の中心付近では鼻に起因して縦エッジ点が多くなる。従って、横エッジ画像のエッジ部分の対称性が最も高くなるように第１の中心線候補を検出した後、この第１の中心線候補の近傍において、縦エッジ画像のエッジ部分の対称性が最も高くなるように第２の中心線候補を選択することで、より正確に顔の中心線を検出することができる。
【００２７】
なお、上記の例では、得られた横エッジ画像を用いて第１の中心線候補を検出した後に、縦エッジ画像を用いて第２の中心線候補を選択したが、縦エッジ画像に現れた顔の輪郭線の左右両端を表すエッジ部分の対称性から第１の中心線候補を検出した後に、横エッジ画像を用いて第２の中心線候補を選択してもよい。また、この場合、第１の中心線候補と第２の中心線候補との座標位置の差分から、顔の向き（例えば、斜め前方を向いている等）を検出することができる。
【００２８】
（第３の実施の形態）
本実施の形態では、図８（Ａ）に示すように、ドライバがマスクを装着しており、鼻がマスクで覆われている場合の顔の中心線検出例について説明する。この場合の中心線検出処理ルーチンを、図７を参照して説明する。
【００２９】
ステップ３００において、画像メモリに記憶されている顔画像を取り込み、ステップ３０２で、ステップ１０２と同様にして、取り込んだ顔画像に対して横エッジを検出する。これにより、図８（Ｂ）に示すように、白黒の横エッジ画像が得られる。ステップ３０４で、ステップ１０４と同様に、得られた横エッジ画像のエッジ部分の対称性に着目して第１の中心線候補を選択する。
【００３０】
次に、ステップ３０６で、今度は横エッジ画像の非エッジ部分（エッジ点が存在しない部分）の対称性に着目して、第１の中心線候補（中心線候補１）の近傍領域において第２の中心線候補を選択する。図８（Ｂ）に示すように、第１の中心線候補の近傍にウインドウ２０より小さい矩形のウインドウ（近傍領域）４０を設定する。ウインドウ４０の横方向の線分を２等分する線に対して線対称な座標位置の両方に横エッジ点が存在しない場合に、予め設定した点数を加算する。この点で、線対称な座標位置の両方にエッジ点が存在する場合に点数を加算する第１〜第３の実施の形態とは相違する。即ち、得点が大きいほど、その直線に対する非エッジ部分の対称性が高く、横エッジ画像の中心線である可能性が高いことになる。
【００３１】
この演算をウインドウ４０内の総ての画素に対して実施する。ウインドウ４０を第１の中心線候補の近傍の所定範囲で少しずつ横方向に移動させながら、各ウインドウ位置により定まる直線について得点を求める。そして、最も得点が大きい直線が第２の中心線候補として選択され、第２の中心線候補でのＸ座標と得点とが得られる。
【００３２】
ステップ３０８では、下記の３つの条件を組み合わせて、選択された第２の中心線候補が中心線として適切か否かを判定する。
（１）第１の中心線候補での得点が、予め設定された第１の閾値よりも大きい。
（２）第２の中心線候補での得点が、予め設定された第２の閾値よりも大きい。
（３）第１の中心線候補と第２の中心線候補との座標位置の差分が、予め設定された第３の閾値よりも小さい。
【００３３】
（１）〜（３）の全条件が成立する場合、又は（１）及び（２）の条件が成立する場合には、第２の中心線候補を中心線と判定し、ステップ３１０で第２の中心線候補を中心線と決定する。一方、（１）又は（２）の条件が成立しない場合には、中心線の検出は不可能と判定し、ステップ３００に戻って中心線の検出をやり直す。また、ステップ３１０で中心線を決定した後も、ステップ３００に戻って次の顔画像を取り込み、次の顔画像に対する中心線を検出する。
【００３４】
上述した通り、顔画像には横エッジを生じる部分が多いが、図８（Ｂ）から分かるように、顔の中心付近では横エッジ点が少なくなる。また、ドライバがマスクを装着した状態では、顔の中心付近の縦エッジを抽出することもできない。従って、横エッジ画像のエッジ部分の対称性が最も高くなるように第１の中心線候補を検出した後、第１の中心線候補の近傍において、横エッジ画像の非エッジ部分の対称性が最も高くなるように第２の中心線候補を選択することで、より正確に顔の中心線を検出することができる。
【００３５】
（変形例）
上記第１乃至第３の実施の形態では、設定したウインドウ内の総ての線対称な座標位置について演算を実施したが、線対称な座標位置を探索する範囲を限定してもよい。例えば、図９に示すように、探索領域５０を、眼、鼻等の顔部品が存在する領域に限定することで、顔部品の特徴を確実に捉えることができ、中心線候補の検出精度が向上する。
【００３６】
また、上記第１乃至第３の実施の形態では、線対称な座標位置の両方にエッジ点が存在するか否かを基準に点数を加算したが、一方の座標位置に隣接する座標位置にエッジ点が存在する場合にも、点数を加算するようにしてもよい。例えば、図１０に示すように、ウインドウ２０の横方向の２等分線をＸ＝Ｋの直線とすると、同じＹ座標上にある画素ａと画素ｂの各々が横エッジ点になる場合に点数を加算する外、画素ａが横エッジ点となり且つ画素ｂに対し垂直方向に隣接する画素ｃ又は画素ｄが横エッジ点になる場合にも点数を加算する。このように、対応する画素を所定範囲内で縦方向に探索することで、顔の傾きに対してもある程度対応することができ、中心線候補の検出精度が向上する。
【００３７】
また、上記第１乃至第３の実施の形態では、縦エッジ又は横エッジを検出する例について説明したが、エッジを縦方向成分と横方向成分とに分けて検出するソーベルフィルタを用いてエッジ角度をモニターすることで、種々の方向のエッジを検出できる。例えば、図１１に示すように、縦エッジ画像と横エッジ画像を用いる代わりに、左４５度のエッジ画像と右４５度のエッジ画像を用いることもできる。なお、縦エッジ画像及び横エッジ画像以外のエッジ画像を用いる場合には、線対称な座標位置の両方に同じ角度方向のエッジ点が存在するか否かを基準に点数を加算する。
【００３８】
【発明の効果】
以上説明したように本発明によれば、顔全体に均等に光が照射されない場合においても、顔の中心線を正確に検出することができる、という効果がある。
【図面の簡単な説明】
【図１】本実施の形態に係る顔画像処理装置の構成を示すブロック図である。
【図２】第１の実施の形態に係る中心線検出処理ルーチンを示すフローチャートである。
【図３】（Ａ）は顔画像の原画像を示す図であり、（Ｂ）は（Ａ）を２値化して得られた横エッジ画像である。
【図４】横エッジ画像に対して矩形のウインドウを設定した図である。
【図５】第２の実施の形態に係る中心線検出処理ルーチンを示すフローチャートである。
【図６】（Ａ）は横エッジ画像であり、（Ｂ）は縦エッジ画像である。
【図７】第３の実施の形態に係る中心線検出処理ルーチンを示すフローチャートである。
【図８】（Ａ）はマスクを装着したドライバの顔画像の原画像を示す図であり、（Ｂ）は（Ａ）を２値化して得られた横エッジ画像である。
【図９】設定したウインドウ内で線対称な座標位置を探索する範囲を特定した図である。
【図１０】一方の座標位置に対応する画素を所定範囲内で縦方向に探索する例を示す図である。
【図１１】エッジ方向の置き換え例を示す図である。
【符号の説明】
１０　カメラ
１２　照明光源
１４　画像処理用のコンピュータ
１６　表示装置
２０、３０、４０　ウインドウ
５０　探索領域
【図１】
2004110543.tif 000003
【図２】
2004110543.tif 000004
【図３】
2004110543.tif 000005
【図４】
2004110543.tif 000006
【図５】
2004110543.tif 000007
【図６】
2004110543.tif 000008
【図７】
2004110543.tif 000009
【図８】
2004110543.tif 000010
【図９】
2004110543.tif 000011
【図１０】
2004110543.tif 000012
【図１１】
2004110543.tif 000013