(57)【要約】【課題】  人の頭部の半径を正確に推定できるようにする。【解決手段】  頭頂部推定部１２は、画像データ、および背景分離された画像データを基に頭頂の位置を算出する。垂直距離判定部２１は、背景分離された画像データ、および頭頂の位置を基に、頭頂の位置から処理対象ラインまでの垂直方向の距離が、処理対象ラインにおける、頭部の画像の水平方向の幅の１／２に等しいか否かを判定する。半径算出部２２は、垂直方向の距離が水平方向の幅の１／２に等しいと判断された場合、処理対象ラインにおける水平方向の幅または垂直方向の距離を基に、頭部の半径を算出する。本発明は、人の頭部の画像を処理する画像処理装置に適用できる。【選択図】  図１
2005196519.tif 000002
【特許請求の範囲】
【請求項１】
人の頭部の画像の頭頂の位置を推定する頭頂位置推定手段と、
前記頭頂の位置までの垂直方向の距離が、前記頭部の画像の水平方向の幅に対して一定の関係になる検出位置を検出する検出手段と、
前記検出位置における前記頭部の水平方向の幅または前記頭頂から前記検出位置までの距離を基に、前記頭部の画像に関係する頭部関係情報を算出する算出手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記一定の関係とは、垂直方向の距離が水平方向の幅のほぼ半分である
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記算出手段は、前記検出位置における前記頭部の水平方向の幅の略１／２または前記頭頂から前記検出位置までの距離を基に、前記頭部関係情報として、頭頂部の半径を算出する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記算出手段は、前記検出位置における前記頭部の水平方向の幅の中心、前記頭頂の位置、および前記検出位置における前記頭部の水平方向の幅の略１／２または前記頭頂から前記検出位置までの距離を基に、前記頭部関係情報として、頭頂部の中心位置を算出する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項５】
人の頭部の画像の頭頂の位置を推定する頭頂位置推定ステップと、
前記頭頂の位置までの垂直方向の距離が、前記頭部の画像の水平方向の幅に対して一定の関係になる検出位置を検出する検出ステップと、
前記検出位置における前記頭部の水平方向の幅または前記頭頂から前記検出位置までの距離を基に、前記頭部の画像に関係する頭部関係情報を算出する算出ステップと
を含むことを特徴とする画像処理方法。
【請求項６】
人の頭部の画像の頭頂の位置を推定する頭頂位置推定ステップと、
前記頭頂の位置までの垂直方向の距離が、前記頭部の画像の水平方向の幅に対して一定の関係になる検出位置を検出する検出ステップと、
前記検出位置における前記頭部の水平方向の幅または前記頭頂から前記検出位置までの距離を基に、前記頭部の画像に関係する頭部関係情報を算出する算出ステップと
を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
【請求項７】
人の頭部の画像の頭頂の位置を推定する頭頂位置推定ステップと、
前記頭頂の位置までの垂直方向の距離が、前記頭部の画像の水平方向の幅に対して一定の関係になる検出位置を検出する検出ステップと、
前記検出位置における前記頭部の水平方向の幅または前記頭頂から前記検出位置までの距離を基に、前記頭部の画像に関係する頭部関係情報を算出する算出ステップと
をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理装置および方法、記録媒体、並びにプログラムに関し、特に、人の頭部の画像を処理する画像処理装置および方法、記録媒体、並びにプログラムに関する。
【背景技術】
【０００２】
人の画像を撮像して、撮像された画像のうち、人の頭部の画像を抽出して、抽出した人の頭部の画像から顔の向きを検出したり、視線を検出したりする画像処理技術が知られている。
【０００３】
例えば、特許文献１には、撮像された人の顔の画像データから、肌が露出して肌色に見える部分（肌色領域）と髪の毛が存在し黒く見える部分（黒色領域）を含む重心点検出領域を抽出し、抽出された重心点検出領域の肌色領域と黒色領域からなる領域の重心点と、重心点検出領域の肌色領域の重心点を検出し、検出した重心点検出領域の肌色領域と黒色領域からなる領域の重心点、および肌色領域の重心点から、顔の向きを推定する手法が提案されている。
【０００４】
また、例えば、特許文献２には、撮像された人の顔の画像データから、肌、白目、若しくは黒目などの色彩情報または鼻孔の輝度情報を基に、顔における各部分についての位置関係を用いて、顔の視線を推定する手法が提案されている。
【０００５】
【特許文献１】特開２００１−７８１６２号公報
【０００６】
【特許文献２】特開２００２−１１８８３２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、これらの方法では、人の画像の頭頂部の半径または頭頂部の中心などの、人の頭部の画像のスケールまたは基準位置を正確に推定することができなかった。
【０００８】
そのため、顔向きまたは視線を簡単かつ確実に推定することが困難である課題があった。本発明はかかる状況に鑑みてなされたものであり、簡単かつ確実に人の頭部を検出できるようにするものである。
【課題を解決するための手段】
【０００９】
請求項１の画像処理装置は、人の頭部の画像の頭頂の位置を推定する頭頂位置推定手段と、頭頂の位置までの垂直方向の距離が、頭部の画像の水平方向の幅に対して一定の関係になる検出位置を検出する検出手段と、検出位置における頭部の水平方向の幅または頭頂から検出位置までの距離を基に、頭部の画像に関係する頭部関係情報を算出する算出手段とを備えることを特徴とする。
【００１０】
算出手段は、検出位置における頭部の水平方向の幅の略１／２または頭頂から検出位置までの距離を基に、頭部関係情報として、頭頂部の半径を算出するようにすることができる。
【００１１】
算出手段は、検出位置における頭部の水平方向の幅の中心、頭頂の位置、および検出位置における頭部の水平方向の幅の略１／２または頭頂から検出位置までの距離を基に、頭部関係情報として、頭頂部の中心位置を算出するようにすることができる。
【００１２】
請求項４の画像処理方法は、人の頭部の画像の頭頂の位置を推定する頭頂位置推定ステップと、頭頂の位置までの垂直方向の距離が、頭部の画像の水平方向の幅に対して一定の関係になる検出位置を検出する検出ステップと、検出位置における頭部の水平方向の幅または頭頂から検出位置までの距離を基に、頭部の画像に関係する頭部関係情報を算出する算出ステップとを含むことを特徴とする。
【００１３】
請求項５の記録媒体のプログラムは、人の頭部の画像の頭頂の位置を推定する頭頂位置推定ステップと、頭頂の位置までの垂直方向の距離が、頭部の画像の水平方向の幅に対して一定の関係になる検出位置を検出する検出ステップと、検出位置における頭部の水平方向の幅または頭頂から検出位置までの距離を基に、頭部の画像に関係する頭部関係情報を算出する算出ステップとを含むことを特徴とする。
【００１４】
請求項６のプログラムは、人の頭部の画像の頭頂の位置を推定する頭頂位置推定ステップと、頭頂の位置までの垂直方向の距離が、頭部の画像の水平方向の幅に対して一定の関係になる検出位置を検出する検出ステップと、検出位置における頭部の水平方向の幅または頭頂から検出位置までの距離を基に、頭部の画像に関係する頭部関係情報を算出する算出ステップとをコンピュータに実行させることを特徴とする。
【００１５】
本発明の画像処理装置および方法、記憶媒体、並びにプログラムにおいては、人の頭部の画像の頭頂の位置が推定され、頭頂の位置までの垂直方向の距離が、頭部の画像の水平方向の幅に対して一定の関係になる検出位置が検出され、その検出位置における頭部の水平方向の幅または頭頂から検出位置までの距離を基に、頭部の画像に関係する頭部関係情報が算出される。
【発明の効果】
【００１６】
本発明によれば、人の頭頂の画像のスケールまたは基準位置を推定することができる。
【００１７】
また、本発明によれば、画像上のノイズなどの外乱要素が存在しても、人の画像の頭頂部の半径または頭頂部の中心などの、人の頭部の画像のスケールまたは基準位置を、簡単かつ確実に、より正確に推定することができる。
【発明を実施するための最良の形態】
【００１８】
以下に本発明の最良の形態を説明するが、開示される発明と実施の形態との対応関係を例示すると、次のようになる。本明細書中には記載されているが、発明に対応するものとして、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その発明に対応するものではないことを意味するものではない。逆に、実施の形態が発明に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その発明以外の発明には対応していないものであることを意味するものではない。
【００１９】
さらに、この記載は、明細書に記載されている発明の全てを意味するものではない。換言すれば、この記載は、明細書に記載されている発明であって、この出願では請求されていない発明の存在、すなわち、将来、分割出願されたり、補正により出現し、追加される発明の存在を否定するものではない。
【００２０】
請求項１の画像処理装置は、人の頭部の画像の頭頂の位置（例えば、図１３のＩｖ）を推定する頭頂位置推定手段（例えば、図１の頭頂推定部１２）と、頭頂の位置までの垂直方向の距離が、頭部の画像の水平方向の幅（例えば、図９のｗ）に対して一定の関係（例えば、略１／２）になる検出位置（例えば、処理対象ラインの位置）を検出する検出手段（例えば、図１の垂直距離判定部２１）と、検出位置における頭部の水平方向の幅または頭頂から検出位置までの距離（例えば、図９のｈ）を基に、頭部の画像に関係する頭部関係情報（例えば、頭頂部の半径、頭頂部中心）を算出する算出手段（例えば、図１の半径算出部２２、図１９の中心位置算出部７１）とを備える。
【００２１】
算出手段は、検出位置における頭部の水平方向の幅の略１／２または頭頂から検出位置までの距離を基に、頭部関係情報として、頭頂部の半径を算出する（例えば、図８のステップＳ５６、図１８のステップＳ７６の処理）ようにすることができる。
【００２２】
算出手段は、検出位置における、頭部の水平方向の幅の中心、頭頂の位置、および検出位置における頭部の水平方向の幅の略１／２または頭頂から検出位置までの距離を基に、頭部関係情報として、頭頂部の中心位置を算出する（例えば、図２１のステップＳ１２６、Ｓ１２７、図２２のステップＳ１４６、Ｓ１４７の処理）ようにすることができる。
【００２３】
請求項４の画像処理方法は、人の頭部の画像の頭頂の位置（例えば、図１３のＩｖ）を推定する頭頂位置推定ステップ（例えば、図２のステップＳ２の処理）と、頭頂の位置までの垂直方向の距離が、頭部の画像の水平方向の幅（例えば、図９のｗ）に対して一定の関係（例えば、略１／２）になる検出位置（例えば、処理対象ラインの位置）を検出する検出ステップ（例えば、図８のステップＳ５２、Ｓ５３、図１８のステップＳ７２、Ｓ７３、図２１のステップＳ１２２、Ｓ１２３、図２２のステップＳ１４２、Ｓ１４３の処理）と、検出位置における頭部の水平方向の幅または頭頂から検出位置までの距離（例えば、図９のｈ）を基に、頭部の画像に関係する頭部関係情報（例えば、頭頂部の半径、頭頂部中心）を算出する算出ステップ（例えば、図８のステップＳ５６の処理、図１８のステップＳ７６の処理、図２１のステップＳ１２６、Ｓ１２７、図２２のステップＳ１４６、Ｓ１４７の処理）とを含む。
【００２４】
請求項５と請求項６のプログラムは、人の頭部の画像の頭頂の位置（例えば、図１３のＩｖ）を推定する頭頂位置推定ステップ（例えば、図２のステップＳ２の処理）と、頭頂の位置までの垂直方向の距離が、頭部の画像の水平方向の幅（例えば、図９のｗ）に対して一定の関係（例えば、略１／２）になる検出位置（例えば、処理対象ラインの位置）を検出する検出ステップ（例えば、図８のステップＳ５２、Ｓ５３、図１８のステップＳ７２、Ｓ７３、図２１のステップＳ１２２、Ｓ１２３、図２２のステップＳ１４２、Ｓ１４３の処理）と、検出位置における頭部の水平方向の幅または頭頂から検出位置までの距離（例えば、図９のｈ）を基に、頭部の画像に関係する頭部関係情報（例えば、頭頂部の半径、頭頂部中心）を算出する算出ステップ（例えば、図８のステップＳ５６の処理、図１８のステップＳ７６の処理、図２１のステップＳ１２６、Ｓ１２７、図２２のステップＳ１４６、Ｓ１４７の処理）とを含む。
【００２５】
以下、図面を参照しながら本発明の実施の形態について説明する。
【００２６】
図１は、本発明に係る画像処理装置の一実施の形態の構成を示すブロック図である。画像処理装置１は、背景分離部１１、頭頂推定部１２、および頭頂部半径推定部１３により構成される。
【００２７】
背景分離部１１は、人を撮像して得られた画像データを入力して、その画像データに基づく画像を背景および前景に分離し、背景から分離された前景の画像の画像データを頭頂推定部１２および頭頂部半径推定部１３に供給する。分離された前景の画像には、人の画像が含まれている。
【００２８】
頭頂推定部１２は、前景の画像の画像データを基に、前景の画像に含まれる人の画像の頭頂位置を推定し、推定した頭頂位置を示すデータを頭頂部半径推定部１３に供給する。
【００２９】
頭頂部半径推定部１３は、背景分離部１１から供給された、背景が分離された前景の画像の画像データ、および頭頂推定部１２から供給された頭頂位置を示すデータを基に、頭頂部半径を推定し、推定された頭頂部半径を示す頭頂部半径データを出力する。
【００３０】
頭頂部半径推定部１３は、垂直距離判定部２１および半径算出部２２により構成される。
【００３１】
垂直距離判定部２１は、前景の画像上の垂直方向の所定の検出位置を順次設定して、前景の画像の画像データおよび頭頂位置を示すデータを基に、頭頂の位置から、設定した検出位置までの垂直方向の距離が、前景の画像の水平方向の幅に対して一定の関係となるか否かを判定する。具体的には、垂直方向の距離が、水平方向の幅の略１／２の長さになるかが判定される。垂直距離判定部２１は、頭頂の位置から、設定した検出位置までの垂直方向の距離が、前景の画像の水平方向の幅の略１／２に等しいと判定された場合、設定した検出位置の垂直位置を示すデータを半径算出部２２に供給する。
【００３２】
半径算出部２２は、垂直距離判定部２１から供給された、頭頂の位置からの距離が前景の画像の水平方向の幅の略１／２に等しい検出位置の垂直位置を示すデータを基に、頭頂部半径を算出する。
【００３３】
次に、図２を参照して、図１の画像処理装置１の頭頂部の半径の推定の処理を説明する。
【００３４】
ステップＳ１において、背景分離部１１は、入力された画像データを取得して、取得した画像データに、背景分離の処理を適用して、前景を抽出する。背景分離の処理の詳細は、図３を参照して後述する。
【００３５】
背景分離部１１は、背景分離の処理の結果得られた、人の画像が含まれている前景の画像の画像データを頭頂推定部１２および頭頂部半径推定部１３に供給する。
【００３６】
ステップＳ２において、頭頂推定部１２は、人の画像が含まれている前景の画像の画像データに、頭頂推定の処理を適用して、頭頂を推定する。頭頂推定の処理の詳細は、図６を参照して後述する。
【００３７】
頭頂推定部１２は、頭頂推定の処理の結果得られた、頭頂位置を示すデータを頭頂部半径推定部１３に供給する。
【００３８】
ステップＳ３において、頭頂部半径推定部１３は、頭頂位置を示すデータおよび人の画像が含まれている前景の画像の画像データを基に、頭頂部半径算出の処理を実行して、人の画像における頭頂部の半径を算出する。頭頂部半径算出の処理の詳細は図８を参照して後述する。
【００３９】
次に、ステップＳ１の背景分離の処理の詳細について、図３のフローチャートを参照して説明する。
【００４０】
ステップＳ２１において、背景分離部１１は、画像の画素の各画素値が所定の条件を満たすか否かを判定する。例えば、ステップＳ２１において、背景分離部１１は、“肌色”または“黒”を示す所定の範囲の値が設定されている閾値と、画像の画素の各画素値とを比較して、各画素値が閾値の範囲に含まれるかを基に、画像の画素の各画素値が所定の条件を満たすか否かを判定する。
【００４１】
“肌色”を示す所定の範囲の値が設定されている閾値は、前景である、人の画像の皮膚の画像を識別するために使用される。“黒”を示す所定の範囲の値が設定されている閾値は、前景である、人の画像の髪または毛などの画像を識別するために使用されている。
【００４２】
すなわち、この場合、画像の画素の各画素値が、“肌色”または“黒”の閾値で示される範囲に属する場合、人の画像なので、背景分離部１１は、画素値が条件を満たすと判定する。
【００４３】
また、例えば、ステップＳ２１において、背景分離部１１は、“青”を示す所定の範囲の値が設定されている閾値と、画像の画素の各画素値とを比較して、各画素値が閾値の範囲に含まれないかを基に、画像の画素の各画素値が所定の条件を満たすか否かを判定する。
【００４４】
“青”を示す所定の範囲の値が設定されている閾値は、背景の画像を識別するために使用される。
【００４５】
この場合、画像の画素の各画素値が、“青”の閾値で示される範囲に属さない場合、背景の画像ではなく、人の画像であるとして、背景分離部１１は、画素値が条件を満たすと判定する。
【００４６】
なお、ステップＳ２１においては、画像の個々の画素値について、それぞれの画素値が所定の条件を満たすか否かが判定される。
【００４７】
ステップＳ２１において、画素値が所定の閾値の範囲内であると判定された場合、ステップＳ２２に進み、背景分離部１１は、閾値の範囲内であると判定された画素値を前景としての値に変換する。例えば、背景分離部１１は、閾値の範囲内であると判定された画素値を「１」に変換する。この場合、閾値の範囲内であると判定されたすべての画素値は、「１」に設定されることになる。
【００４８】
ステップＳ２１において、画素値が所定の閾値の範囲内でないと判定された場合、ステップＳ２３に進み、背景分離部１１は、閾値の範囲内でないと判定された画素値を背景としての値に変換する。例えば、背景分離部１１は、閾値の範囲内でないと判定された画素値を「０」に変換する。この場合、閾値の範囲内でないと判定されたすべての画素値は、「０」に設定されることになる。
【００４９】
ここで、図４に示される画像の画像データが入力された場合の具体例を説明する。背景分離の処理において、画像データに含まれる各画素値について、所定の条件を満たすか否かが判定される。所定の条件を満たす場合には、その画素は前景の画素とされ、条件を満たさない場合には、その画素は背景の画素とされる。
【００５０】
前景とされた画素の画素値には、所定の値が設定され、背景とされた画素の画素値には、他の値が設定される。例えば、前景とされた画素の画素値には、「１」が設定され、背景とされた画素の画素値には、「０」が設定される。すなわち、この場合、２値画像が生成されることになる。
【００５１】
図５は、図４に示される画像に背景分離の処理を適合した場合の、背景分離の処理の結果である２値画像を示す図である。“肌色”または“黒”の閾値の範囲に属する画素値を前景とし、“肌色”または“黒”の閾値の範囲に属しない画素値を背景とした場合、図５に示されるように、人の画像が、「１」に対応する白色に表示され、背景の画像が、「０」に対応する黒色に表示される。なお、図５において、人の画像以外の白点はノイズによる誤検出部分を示す。
【００５２】
背景分離の方法は、上述した例に限られるものではない。例えば、人物が動いていれば、画像の動きを示す動きベクトルを基に、動きベクトルが「０」である画素を背景として検出することで、背景分離をすることができる。
【００５３】
次に、図２のステップＳ２の頭頂推定の処理の詳細について、図６のフローチャートを参照して説明する。
【００５４】
ステップＳ３１において、頭頂推定部１２は、画像データで表される画像の処理対象ラインの垂直方向の位置に初期値を設定する。
【００５５】
すなわち、図７に示されるように、背景分離された画像上の、垂直方向のある位置における水平の直線（ライン）を考え、ステップＳ３１において、画像上のラインを特定する垂直方向の位置を表す初期値として、例えば、画像の上端部のラインの位置が設定される。
【００５６】
ステップＳ３２において、頭頂推定部１２は、垂直位置で特定されるライン上の前景の画素の数が、閾値以上であるか否か判定する。例えば、ステップＳ３２において、頭頂推定部１２は、背景分離された結果、前景の画素値が「１」とされ、背景の画素値が「０」とされた２値画像について、垂直位置で特定されるライン上の、「１」である画素値の画素の数を求めて、求めた画素の数が、閾値以上であるか否か判定する。
【００５７】
ステップＳ１の背景分離の処理において、背景画素を前景画素として誤って検出してしまうおそれがない場合でかつ頭部の形状が、理想的な円である場合、閾値に「１」、またはそれに近い値を設定することができる。しかし、通常は、ノイズによる影響を除去するため、また、頭頂付近の形状が平坦である等のバラツキを考慮して、閾値としては、もっと大きい値が設定される。この値を小さくすれば精度は上がるが、ノイズによる誤検出のおそれが大きくなるので、両者のバランスを考えながら所定の値が設定される。
【００５８】
ステップＳ３２において、そのラインの前景の画素の数が閾値未満であると判定された場合、ステップＳ３３に進み、頭頂推定部１２は、垂直位置を１ライン分進める。すなわち、ステップＳ３３において、頭頂推定部１２は、処理対象ラインを下方向に１画素分移動させる。いまの場合、初期値から２番目のラインに変更される。
【００５９】
ステップＳ３４において、頭頂推定部１２は、処理対象ラインの垂直位置が画像（画面）の外（最下端のラインより下のラインの位置）であるか否かを判定する。例えば、ステップＳ３４において、頭頂推定部１２は、予め記憶している画像の全ライン数と、画像の上端から垂直位置までの距離とを比較することにより、画像の上端から処理対象ラインの垂直位置までの距離が、画像の全ライン数を超えている場合、垂直位置が画像の外であると判定し、画像の上端から処理対象ラインの垂直位置までの距離が、画像の全ラインの数以下である場合、垂直位置が画像の外でないと判定する。
【００６０】
ステップＳ３４において、垂直位置が画像の外でない、すなわち、垂直位置が画像内であると判定された場合、ステップＳ３２に戻り、２番目のラインについて、同様の処理が行なわれる。
【００６１】
従って、処理対象ラインが、図７の垂直位置３１の範囲内にあるとき、ステップＳ３４において、垂直位置が画像の外でないと判定され、ステップＳ３２に戻り、上述した処理が繰り返される。
【００６２】
ステップＳ３２乃至ステップＳ３４の処理が繰り返されることにより、図７で示される画像上の処理対象ラインが、１画素分ずつ画像上の下側に順次移動する。
【００６３】
一方、ステップＳ３２において、前景の画素の数が閾値以上であると判定された場合、ステップＳ３５に進み、頭頂推定部１２は、前景の画素の数が閾値以上となる処理対象ラインの垂直位置を頭頂位置Ｉｖとして出力する。
【００６４】
図７に示される例においては、ステップＳ３２乃至ステップＳ３４の処理が繰り返されることにより、画像上の処理対象ラインが、１画素分ずつ画像上の下側に順次移動し、処理対象ラインが垂直位置３２となった場合、垂直位置３２におけるライン上の前景の画素の数が、閾値以上であるので、頭頂位置Ｉｖは、垂直位置３２となる。
【００６５】
なお、ステップＳ３４において、垂直位置が画像の外であると判定された場合、ステップＳ３６に進み、頭頂推定部１２は、頭頂位置を推定できなかった旨を示すエラーを出力する。エラーを出力した場合、頭頂位置を推定できなかったので、図２のステップＳ３の処理は実行されない。なお、ステップＳ３２における閾値を、ある程度大きくすれば、頭頂位置Ｉｖとして検出される位置は、実際の頭頂より下方の位置となる。そこで、その分を考慮して、検出された値に一定の値を加算した値を頭頂位置Ｉｖとして出力するようにしてもよい。
【００６６】
次に、図２のステップＳ３の頭頂部半径推定の処理の詳細について、図８のフローチャートを参照して説明する。
【００６７】
ステップＳ５１において、頭頂部半径推定部１３の垂直距離判定部２１は、画像データで表される画像の処理対象ラインの垂直方向の位置である垂直位置に初期値を設定する。この初期値は、人の頭の頂部に対応する。具体的には、図６のステップＳ３５で出力された頭頂位置Ｉｖ（図７の垂直位置３２）が初期値として設定される。
【００６８】
続くステップＳ５２の検出処理において、前景（頭部）の水平方向の幅である水平幅が過小に検出されることが想定される場合には、処理対象ラインの初期値を頭頂位置Ｉｖよりも下の位置に設定することができる。また、この初期値を垂直位置Ｉｖより下の位置に設定することで、所望の検出位置をより迅速に検出することが可能となる。
【００６９】
ステップＳ５２において、垂直距離判定部２１は、処理対象ラインの前景の水平幅を算出する。例えば、ステップＳ５２において、垂直距離判定部２１は、背景分離された結果、前景の画素値が「１」とされ、背景の画素値が「０」とされた２値画像について、処理対象ライン上の、「１」である画素値の画素の数であって、画像の横方向に連続する画素の数を求めることによって、処理対象ラインの前景の水平幅ｗを算出する。図９に示されるように、処理対象ラインの前景の水平幅ｗは、処理対象ラインの頂部からの距離（ライン数）ｈにより変化する値である。
【００７０】
具体的には、垂直距離判定部２１は、例えば、処理対象ラインを含む、一定の範囲の連続する複数のライン（演算ライン）の前景の画素の数を求めて、求めた前景の画素の数を、そのラインの数で割り算して、処理対象ラインの垂直位置における前景の水平幅を算出する。
【００７１】
例えば、水平幅ｗは、以下に示す式（１）により算出される。
【００７２】
水平幅ｗ＝（演算ラインの前景の画素数）／（演算ラインの本数）・・・（１）
【００７３】
図９に示される例において、両端に矢印が配された直線で示される処理対象ラインを基準として、上側のｎ本のラインと、下側のｎ本のラインの、合計（２ｎ＋１）本のラインが演算ラインとされる。そして、（２ｎ＋１）本の演算ラインの画素のうち、図中ハッチングを施して示す領域の前景の画素の数が、ラインの数（２ｎ＋１）で割り算されることにより、水平幅ｗが算出される。理論的には、1本のラインだけから水平幅ｗを算出することが可能であるが、そのようにするとノイズによる影響を受け易い。そこで、複数本のラインの平均値から水平幅ｗが演算される。
【００７４】
ステップＳ５３において、垂直距離判定部２１は、頭頂位置Ｉｖから、処理対象ラインまでの垂直方向の距離が、水平幅の１／２以上であるか否か判定する。
【００７５】
ステップＳ５３においては、人の頭頂部が球形（半球状）に近似する形状であることが仮定される。
【００７６】
すなわち、図１０乃至図１５に示されるように、人の頭部の形状は、顔の向きに拘わらず略一定であると仮定される。図１０および図１３は、左側を向いている顔の画像を示し、図１１および図１４は、正面を向いている顔の画像を示し、図１２および図１５は、右側を向いている顔の画像を示す。
【００７７】
人の頭頂部が球形に近似する形状なので、人の画像において、頭頂部は円形に近似する形状となり、図１０乃至図１２に示されるように、人の顔向きが変わっても、頭頂部の画像の形状はほとんど変化しない。
【００７８】
すなわち、図１３乃至図１５に示されるように、人の画像における、頭頂部は円で近似することができる。人の画像における、頭頂部が円で近似できれば、円の中心Ｏから円周までの距離、すなわち、半径Ｒは、一定である。
【００７９】
図１３乃至図１５に示されるように、頭頂部が円で近似されるとすれば、頭頂位置Ｉｖは、円周上に位置するので、頭頂位置Ｉｖから、頭頂部を近似する円の中心Ｏまでの距離と、画像において水平の直線上の半径Ｒとは等しい。
【００８０】
半径Ｒは、直径の１／２なので、頭頂位置Ｉｖから、頭頂部を近似する円の中心Ｏまでの距離は、画像において水平の直線上の直径（水平幅）の１／２に等しいことになる。
【００８１】
図１３乃至図１５に示されるように、人の画像における、頭頂部は円で近似することができるので、頭頂位置Ｉｖから、頭頂部を近似する円の中心Ｏまでの距離と、画像において水平の直線上の半径Ｒとが等しいという関係は、人の顔の向きが変わっても成立する。
【００８２】
また、図１３乃至図１５に示されるように、人の画像における、頭頂部は円で近似することができるので、垂直方向の上端（頭頂位置Ｉｖ）より、処理対象ラインを下に向かって移動させた場合、移動の距離が小さいとき、処理対象ラインにおける頭頂部の幅の１／２は、頭頂位置Ｉｖから処理対象ラインまでの距離よりも大きく、処理対象ラインが円の中心Ｏを通る位置（検出位置）になったとき、頭頂位置Ｉｖから処理対象ラインまでの距離と等しくなる。すなわち、処理対象ラインが円の中心Ｏを通る状態の場合、頭頂位置Ｉｖから処理対象ラインまでの垂直方向の距離と、頭頂部の水平方向の幅の１／２の値が等しくなる。
【００８３】
このように、円の中心Ｏにおいて、頭頂位置Ｉｖからの処理対象ラインの距離と水平方向の幅の１／２の値が等しくなる（一定の関係になる）ことを利用して、人の画像における、頭頂部を近似する円の中心の垂直方向の位置が求められる。
【００８４】
ステップＳ５３において、頭頂位置Ｉｖから処理対象ラインまでの垂直方向の距離が、水平幅の１／２未満であると判定された場合、ステップＳ５４に進み、垂直距離判定部２１は、垂直位置を定数分進める。定数は、「１」または、式（１）で説明した、図９のハッチングを施した領域の幅（２ｎ＋１）とすることができる。
【００８５】
図９に示される例の状態においては、垂直方向の距離ｈは水平幅ｗの１／２未満であるので、ステップＳ５４において、処理対象ラインが定数分進められる。
【００８６】
ステップＳ５５において、垂直距離判定部２１は、処理対象ラインが画像（画面）の外（最下端のラインより下のライン）であるか否かを判定する。例えば、ステップＳ５５において、垂直距離判定部２１は、予め記憶している画像の全ライン数と、画像の上端から処理対象ラインまでの距離とを比較することにより、画像の上端から処理対象ラインまでの距離が、画像の全ライン数を超えている場合、処理対象ラインが画像の外であると判定し、画像の上端から処理対象ラインまでの距離が、画像の全ラインの数以下である場合、処理対象ラインが画像の外でないと判定する。
【００８７】
ステップＳ５５において、処理対象ラインが画像の外でない、すなわち、処理対象ラインが画像内であると判定された場合、ステップＳ５２に戻り、定数分進められた処理対象ラインについて、上述した処理が繰り返される。
【００８８】
図１６に示される例は、図９に示される例から、処理対象ラインが定数分進められた状態を示す。この状態でも、垂直方向の距離ｈは水平幅ｗの１／２未満であるので、ステップＳ５４に進み、処理対象ラインが定数分進められる。ステップＳ５５において、処理対象ラインが画像内であるので、処理は、ステップＳ５２に戻り、上述した処理が繰り返される。
【００８９】
ステップＳ５２乃至ステップＳ５５の処理が繰り返されることにより、図１６に示される画像上の垂直位置が、定数分ずつ画面上の下側に順次移動する。
【００９０】
一方、ステップＳ５３において、頭頂位置Ｉｖから垂直位置までの処理対象ラインの距離が、水平幅の１／２以上であると判定された場合、処理対象ラインが人の画像における、頭頂部を近似する円の中心Ｏの垂直方向の位置（検出位置）に到達したことになる。すなわち、この場合、その時点における処理対象ラインと頭頂との距離ｈが、前景としての人の頭頂の水平方向の幅の略１／２と等しいことになる。そこで、ステップＳ５６に進み、半径算出部２２は、その時点での処理対象ライン、すなわち、頭頂位置Ｉｖから処理対象ラインまでの垂直方向の距離が、水平幅の１／２以上となる処理対象ラインにおける、水平幅の１／２を頭頂部半径として算出する。
【００９１】
このように、図９、図１６、および図１７に示されるように、ステップＳ５２乃至ステップＳ５５の処理が繰り返されることにより、画像上の垂直位置が、定数分（例えば、１画素）ずつ画像上の下側に移動し、ステップＳ５３において、頭頂位置Ｉｖから垂直位置までの垂直方向の距離ｈが、その垂直位置における水平幅ｗの略１／２以上となった場合、ステップＳ５６において、頭頂部半径として、ｗ／２が算出される。
【００９２】
ステップＳ５７において、頭頂部半径推定部１３は、ステップＳ５６において算出した頭頂部半径を図示せぬ後段の装置に出力して、処理は終了する。
【００９３】
図１７に示される例において、頭頂部半径として、ｗ／２が出力される。
【００９４】
なお、ステップＳ５５において、処理対象ラインが画像の外であると判定された場合、ステップＳ５８に進み、垂直距離判定部２１は、頭頂部半径を出力できなかった旨を示すエラーを出力し、処理は終了する。
【００９５】
次に、図２のステップＳ３頭頂部半径算出の他の処理の詳細について、図１８のフローチャートを参照して説明する。
【００９６】
ステップＳ７１乃至ステップＳ７５の処理は、図８における、ステップＳ５１乃至ステップＳ５５の処理とそれぞれ同様である。
【００９７】
すなわち、ステップＳ７１において、処理対象ラインの初期値が設定され、ステップＳ７２乃至ステップＳ７５の処理が繰り返されることにより、画像上の処理対象ラインが、定数分ずつ画像上の下側に順次移動し、ステップＳ７３において、頭頂位置Ｉｖから処理対象ラインまでの垂直方向の距離が、水平幅の１／２以上であると判定された場合、処理は、ステップＳ７６に進む。
【００９８】
ステップＳ７６において、半径算出部２２は、頭頂位置Ｉｖから処理対象ラインまでの垂直方向の距離が、前景の水平幅の１／２以上となる垂直位置における、頭頂位置Ｉｖから処理対象ラインまでの垂直方向の距離を頭頂部半径として算出する。
【００９９】
すなわち、図１３乃至図１５を参照して説明したように、頭頂位置Ｉｖは、円周上に位置し、頭頂部が円で近似されるとすれば、円の中心Ｏから円周までの距離、すなわち、半径Ｒは、一定であるので、頭頂位置Ｉｖから処理対象ラインまでの垂直方向の距離は、頭頂部半径であると言える。
【０１００】
図１７に示される例において、垂直方向の距離ｈは水平幅ｗの１／２以上であるので、ステップＳ７６において、頭頂部半径として、頭頂位置Ｉｖから垂直位置までの距離ｈが算出される。
【０１０１】
ステップＳ７７において、頭頂部半径推定部１３は、ステップＳ７６において算出した頭頂部半径を図示せぬ後段の装置に出力して、処理は終了する。
【０１０２】
図１７に示される例において、頭頂部半径として、ｈが出力される。
【０１０３】
ステップＳ７８の処理は、図８におけるステップＳ５８の処理と同様であり、その説明は省略する。
【０１０４】
このように、図１に示される画像処理装置１は、頭部関係情報として、頭頂部半径を算出することができる。
【０１０５】
図１９は、本発明に係る画像処理装置の一実施の形態の他の構成を示すブロック図である。図１に示す場合と対応する部分には、同一の番号が付してあり、その説明は適宜省略する。この画像処理装置５１は、背景分離部１１、頭頂推定部１２、および頭頂部中心推定部６１を有している。
【０１０６】
背景分離部１１と頭頂推定部１２は、図１における場合と同様の機能を有している。
【０１０７】
頭頂部中心推定部６１は、背景分離部１１から供給された、背景が分離された前景の画像データ、および頭頂推定部１２から供給された頭頂位置を示すデータを基に、頭頂部中心位置を推定し、推定された頭頂部中心位置を示す頭頂部中心データを図示せぬ後段の装置に出力する。
【０１０８】
頭頂部中心推定部６１は、垂直距離判定部２１および中心位置算出部７１により構成される。
【０１０９】
垂直距離判定部２１は、図１における場合と同様の機能を有する。
【０１１０】
中心位置算出部７１は、垂直距離判定部２１から供給された、頭頂の位置からの距離が前景の画像の水平方向の幅の１／２に等しい、垂直方向の垂直位置を示すデータなどを基に、頭頂部中心位置を算出する。
【０１１１】
次に図２０のフローチャートを参照して、図１９の画像処理装置５１による、頭頂部の中心の推定の処理を説明する。
【０１１２】
図２０における、ステップＳ１０１およびステップＳ１０２の処理のそれぞれは、図２における、ステップＳ１およびステップＳ２の処理のそれぞれと同様である。すなわち、これらの処理により、背景が分離された画像が得られ、頭頂位置Ｉｖが得られる。
【０１１３】
ステップＳ１０３において、頭頂部中心推定部６１は、頭頂位置を示すデータおよび人の画像が含まれている前景の画像データを基に、頭頂部中心算出の処理を実行して、人の画像における頭頂部の中心位置を算出して、処理は終了する。
【０１１４】
次に、図２０のステップＳ１０３の頭頂部中心算出の処理の詳細について、図２１のフローチャートを参照して説明する。ステップＳ１２１乃至ステップＳ１２５の処理のそれぞれは、図８のステップＳ５１乃至ステップＳ５５の処理のそれぞれと同様なので、その説明は省略する。
【０１１５】
ステップＳ１２１乃至ステップＳ１２５の処理で、頭頂からの距離が、人の頭頂部の水平幅の略１／２である処理対象ラインが検出された場合、ステップＳ１２６において、中心位置算出部７１は、頭頂部中心の水平位置として、頭頂位置Ｉｖから処理対象ラインまでの垂直方向の距離が、水平幅の１／２以上となる所定の処理対象ラインにおける、前景の水平幅ｗの中心を求める。
【０１１６】
例えば、頭頂部中心の水平位置である水平幅ｗの中心として、垂直方向の距離ｈが水平幅ｗの略１／２となる垂直位置における、図９と図１６においてハッチングを施して示した領域（処理対象領域）の水平方向の重心を求めることができる。
【０１１７】
以下、処理対象領域の水平方向の重心を、重心Ｇｈとする。
【０１１８】
ステップＳ１２７において、中心位置算出部７１は、頭頂位置Ｉｖから処理対象ラインまでの垂直方向の距離が、水平幅ｗの略１／２となる垂直位置における水平幅ｗの１／２を、頭頂位置Ｉｖに加算することで、頭頂部中心の垂直位置を算出する。
【０１１９】
図１７に示される例においては、中心位置算出部７１は、頭頂部中心の垂直位置として、（頭頂位置Ｉｖ＋（水平幅ｗ／２））を算出する。
【０１２０】
ステップＳ１２８において、頭頂部中心推定部６１は、ステップＳ１２６およびステップＳ１２７の処理において算出した水平位置および垂直位置で示される頭頂部中心位置を出力する。
【０１２１】
図１７に示される例においては、頭頂部中心位置推定部６１は、頭頂部中心位置として、（重心Ｇｈ、頭頂位置Ｉｖ＋（水平幅ｗ／２））を出力する。
【０１２２】
なお、ステップＳ１２５において、処理対象ラインの垂直位置が画像の外であると判定された場合、ステップＳ１２９に進み、垂直距離判定部２１は、頭頂部中心位置を出力できなかった旨を示すエラーを出力し、処理は終了する。
【０１２３】
次に、図２０のステップＳ１０３の処理に対応する、頭頂部中心算出の他の処理の詳細について、図２２のフローチャートを参照して説明する。
【０１２４】
ステップＳ１４１乃至ステップＳ１４６の処理のそれぞれは、図２１における、ステップＳ１２１乃至ステップＳ１２６の処理のそれぞれと同様であり、その説明は省略する。
【０１２５】
この場合の処理では、ステップＳ１４７において、中心位置算出部７１は、水平幅ｗの略１／２となる、頭頂位置Ｉｖから垂直位置までの垂直方向の距離を、頭頂位置Ｉｖに垂直方向の距離ｈを加算することで、頭頂部中心の垂直位置を算出する。
【０１２６】
図１７に示される例においては、中心位置算出部７１は、頭頂部中心の垂直位置として、（頭頂位置Ｉｖ＋垂直方向の距離ｈ）を算出する。
【０１２７】
ステップＳ１４８において、頭頂部中心推定部６１は、ステップＳ１４６およびステップＳ１４７において算出した水平位置および垂直位置で示される頭頂部中心位置を出力して、処理は終了する。
【０１２８】
図１７に示される例においては、頭頂部中心推定部６１は、頭頂部中心位置として、（重心Ｇｈ、頭頂位置Ｉｖ＋垂直方向の距離ｈ）を出力する。
【０１２９】
ステップＳ１４９の処理は、図２１における、ステップＳ１２９の処理と同様である。
【０１３０】
このように、図１９の画像処理装置５１は、頭部関係情報として、頭頂部中心位置を算出することができる。
【０１３１】
以上の処理においては、頭頂部を半円形と仮定したが、楕円、その他の形状に仮定してもよい。この場合においても、頭部の水平方向の幅と頭頂からの距離が一定の関係（仮定した形状によって規定される）になる検出位置が検出される。
また、以上の処理においては、画素アスペクト比が１対１であることを前提としたが、画素アスペクト比が１対１以外の場合であっても同様に処理を行うことができる。
【０１３２】
図２３および図２４は、画素アスペクト比を説明する図である。図２３および図２４において、縦横の直線に囲まれた四角は、画像における画素を示す。
【０１３３】
画素アスペクト比ａ：ｂが１：１である場合、図２３に示される例のように、画素の縦の長さｂと、横の長さａは等しく、画素は正方形である。縦横の比率が１：１の場合、垂直方向の長さと、水平方向の長さとの比率（例えば、頭頂位置Ｉｖからの垂直位置と、水平幅ｗとの比率）を変更することなく、頭部関係情報（例えば、頭頂部半径）が算出される。
【０１３４】
すなわち、例えば、縦横の比率が１：１の場合、垂直位置距離判定部２１は、頭頂位置Ｉｖから垂直位置までの垂直方向の距離が、水平幅ｗの１／２以上であるか否かの判定をし、その判定結果に基づいて、頭部関係情報を算出する。
【０１３５】
これに対して、図２４に示されるように、画素アスペクト比ａ：ｂが１：１ではない場合、画素は長方形となる。
【０１３６】
画素アスペクト比ａ：ｂが１：１ではない場合、水平方向の長さに、ｂ／ａを乗算するか、垂直方向の長さにａ／ｂを乗算してから頭部関係情報（例えば、頭頂部半径）が算出される。
【０１３７】
例えば、画素アスペクト比ａ：ｂが１：１ではない場合、垂直位置距離判定部２１は、水平幅ｗにｂ／ａを乗算してから、頭頂位置Ｉｖから垂直位置までの垂直方向の距離が、ｂ／ａが乗算された水平幅ｗの１／２以上であるか否かの判定をし、その判定結果に基づいて、頭部関係情報を算出する。
【０１３８】
次に、頭部関係情報を求めて、頭部関係情報を基に、顔の向きを推定するか、または視線を推定する場合の実施の形態を説明する。
【０１３９】
まず、頭部関係情報として、人の画像の頭頂部の半径を求めて、頭頂部の半径を基に、顔の向きを推定する画像処理装置について説明する。
【０１４０】
図２５は、顔の向きを推定する、画像処理装置１０１の一実施の形態の構成を示すブロック図である。図２５において、図１に示される場合と対応する部分には、同一の番号を付してあり、その説明は適宜省略する。
【０１４１】
背景分離部１１、頭頂推定部１２、および頭頂部半径推定部１３により、画像データを基に、推定された頭頂部半径は重心点検出領域設定部１２２および角度検出部１２５に供給される。
【０１４２】
色領域決定部１２１は、画像データを基に、肌色領域および黒色領域を決定し、決定した肌色領域および黒色領域を示すデータを重心点検出領域設定部１２２および重心点検出部１２３に供給する。
【０１４３】
重心点検出領域設定部１２２は、頭頂部半径推定部１３より供給される頭頂部半径を基に、色領域決定部１２１より供給されるデータに基づく肌色領域および黒色領域から重心点検出領域を抽出し、重心点検出領域を示すデータを重心点検出部１２３に供給する。
【０１４４】
重心点検出部１２３は、色領域決定部１２１より供給されるデータに基づく肌色領域および黒色領域、および重心点検出領域設定部１２２より供給されるデータに基づく重心点検出領域を基に、重心点検出領域の肌色領域Ａおよび黒色領域Ｂの両方からなる領域の重心点、および肌色領域の重心点を検出し、検出した重心点検出領域の肌色領域Ａおよび黒色領域Ｂの両方からなる領域の重心点および肌色領域の重心点を重心点Ｘ成分差分検出部１２４に供給する。
【０１４５】
重心点Ｘ成分差分検出部１２４は、重心点検出部１２３より検出される重心点検出領域の重心点、および肌色領域の重心点を基に、重心点検出領域の重心点と、肌色領域の重心点とのＸ軸方向の差分（Ｘ成分の差分）を検出し、検出したＸ成分の差分を角度検出部１２５に供給する。
【０１４６】
角度検出部１２５は、頭頂部半径推定部１３より供給される頭頂部半径、および重心点Ｘ成分差分検出部１２４より供給される重心点検出領域の重心点と、肌色領域の重心点とのＸ成分の差分を基に、顔の向きを検出し、検出した顔の向きを示す顔向きデータを出力する。
【０１４７】
図２６は、図２５に示される画像処理装置１０１による、顔向きの検出の処理を説明するフローチャートである。
【０１４８】
ステップＳ２０１において、背景分離部１１乃至頭頂部半径推定部１３は、頭頂部半径推定の処理を実行する。
【０１４９】
ステップＳ２０１における、頭頂部半径推定の処理の詳細について、図２７のフローチャートを参照して説明する。
【０１５０】
ステップＳ２２１において、背景分離部１１は、背景分離の処理を実行する。背景分離の処理の詳細は、図３のフローチャートを参照して説明した処理と同様なので、その説明は省略する。
【０１５１】
ステップＳ２２２において、頭頂推定部１２は、頭頂推定の処理を実行する。頭頂推定の処理の詳細は、図６のフローチャートを参照して説明した処理と同様なので、その説明は省略する。
【０１５２】
ステップＳ２２３において、頭頂部半径推定部１３は、頭頂部半径推定の処理を実行して、頭頂部半径推定の処理は終了する。頭頂部半径推定の処理の詳細は、図８のフローチャートまたは図１８のフローチャートを参照して説明した処理と同様なので、その説明は省略する。
【０１５３】
すなわち、これらの処理により、上述したように人の頭部の半径が算出される。以下、推定された頭頂部半径を、Ｒｈとする。
【０１５４】
図２６に戻り、ステップＳ２０２において、色領域決定部１２１は、肌色領域Ａおよび黒色領域Ｂを決定する。例えば、ステップＳ２０２において、色領域決定部１２１は、図２８Ａに示されるような、人の顔を含む画像データが供給されると、供給された画像データを基に、画像の色彩（色）情報（画素値）を用いて、図２８Ｂに示されるように、肌色領域Ａ（図２８Ｂ中、白抜き部分）および黒色領域（図２８Ｂ中、影が付されている部分）を決定する。すなわち、肌が露出して肌色に見える部分（顔部分および首部分）が、肌色領域Ａとなり、髪の毛が存在し黒く見える部分（頭部）が、黒色領域Ｂとなる。肌の色と髪の毛の色は、対象となる人種によって適宜設定可能である。
【０１５５】
ステップＳ２０３において、重心点検出領域設定部１２２は、重心点検出領域Ｗを抽出する。すなわち、重心点検出領域設定部１２２は、肌色領域Ａおよび黒色領域Ｂからなる領域の上端を検出し、その上端上に引かれる、Ｘ軸と平行な線を基準線Ｂ１とする。図２８に示される例において、黒色領域Ｂが肌色領域Ａより上側に位置するので、黒色領域Ｂの上端（頭の先端）上に引かれる、Ｘ軸と平行な線が基準線Ｂ１とされる。次に、重心点検出領域設定部１２２は、基準線Ｂ１を、距離Ｌ１分だけ下方（Ｙ軸が大きくなる方向）にＸ軸に対して平行移動させ、基準線Ｂ２を設定し、さらに基準線Ｂ２を、距離Ｌ２分だけ下方にＸ軸に対して平行移動させ、基準線Ｂ３を設定する。
【０１５６】
但し、距離Ｌ１および距離Ｌ２は、頭頂部半径Ｒｈを基に、以下に示す式（２）および式（３）により算出される。
【０１５７】
Ｌ１＝Ｒｈ×Ｌ１＿ｒａｔ・・・（２）
【０１５８】
但し、式（２）において、Ｌ１＿ｒａｔは定数である。
【０１５９】
Ｌ２＝Ｒｈ×Ｌ２＿ｒａｔ・・・（３）
【０１６０】
但し、式（３）において、Ｌ２＿ｒａｔは定数である。
【０１６１】
このように、重心点検出領域設定部１２２は、基準線Ｂ１、基準線Ｂ２、および基準線Ｂ３を設定し、図２８Ｃに示されるように、基準線Ｂ２と基準線Ｂ３で区分されるその間の領域（重心点検出領域Ｗ）を抽出する。
【０１６２】
距離Ｌ１および距離Ｌ２は、頭頂部半径Ｒｈを基に求められるので、基準線Ｂ２および基準線Ｂ３は、画面における人の頭頂部の画像の大きさ（画像のスケール）に応じて設定される。すなわち、重心点検出領域Ｗは、画像のスケールに応じて抽出される。その結果、正確な抽出が可能となる。
【０１６３】
ステップＳ２０４において、重心点検出部１２３は、抽出した重心点検出領域Ｗに存在する肌色領域Ａおよび黒色領域Ｂの両方からなる領域の重心点Ｇ１と、重心点検出領域Ｗに存在する肌色領域Ａの重心点Ｇ２を検出し、それぞれのＸ軸上の値を検出する。図２８Ｃに、図２８Ｂの重心点検出領域Ｗの肌色領域Ａおよび黒色領域Ｂの両方からなる領域の重心点Ｇ１およびそのＸ軸上の値Ｘ１、並びに肌色領域Ａの重心点Ｇ２およびそのＸ軸上の値Ｘ２が示されている。なお、この例の場合、値Ｘ１は値Ｘ２とほぼ同値となっている。
【０１６４】
ステップＳ２０５において、重心点Ｘ成分差分検出部１２４は、重心点検出部１２３で検出した重心点Ｇ１の値Ｘ１および重心点Ｇ２の値Ｘ２の差Ｄ＿ｏｒｇを算出する。図２８に示される例においては、値Ｘ１および値Ｘ２はほぼ同値であるので、その差Ｄ＿ｏｒｇは「０」となる。
【０１６５】
ステップＳ２０６において、角度検出部１２５は、ステップＳ２０５において算出した差Ｄ＿ｏｒｇを正規化し、正規化後の差Ｄを基に、顔の向きを検出する。
【０１６６】
正規化後の差Ｄは、以下に示す式（４）により算出される。
【０１６７】
Ｄ＝Ｄ＿ｏｒｇ／Ｒｈ・・・（４）
【０１６８】
具体的には、角度検出部１２５は、図２９で示されるような、差Ｄと顔の向きの角度（正面に対する角度）との対応関係を示すデータを予め有して（記憶して）おり、差Ｄと顔の向きの角度との対応関係を示すデータを参照して、差Ｄに対応する顔の向きの角度Ｖを検出する。図２９に示される例において、Ｄ＝０には、Ｖ＝０が対応しているので、０度が検出される。
【０１６９】
正規化された差Ｄを基に、角度を検出するので、画像のスケールに影響されることなく、より正確に角度を検出することができる。
【０１７０】
また、図２９で示される対応関係は、例えば、以下に示す式（５）により算出される。
【０１７１】
Ｄ＝ｃ × sin Ｖ・・・（５）
【０１７２】
なお、ｃは、所定の定数である。
【０１７３】
また、図２９に示される例において、正の値の角度Ｖは右方向を向いていることを示し、負の値の角度Ｖは左方向を向いていることを示している。
【０１７４】
例えば、人の顔が右方向を向いている場合における以上の処理は次のようになる。
【０１７５】
すなわち、ステップＳ２０１において、頭頂部半径推定部１２は、頭頂部半径Ｒｈを推定し、ステップＳ２０２において、色領域決定部１２１は、図３０Ｂに示されるように、肌色領域Ａおよび黒色領域Ｂを決定し、ステップＳ２０３において、重心検出領域設定部１２２は、重心点検出領域Ｗを設定する。次に、ステップＳ２０４において、重心点検出部１２３は、重心点Ｇ１（重心点検出領域Ｗに存在する肌色領域Ａおよび黒色領域Ｂの重心点）のＸ軸上の値Ｘ１、および重心点Ｇ２（重心点検出領域Ｗに存在する肌色領域Ａの重心点）のＸ軸上の値Ｘ２を検出し、ステップＳ２０５において、重心点Ｘ成分差分検出部１２４は、値Ｘ１および値Ｘ２より、差Ｄ＿ｏｒｇを算出する。次に、ステップＳ２０６において、角度検出部１２５は、差Ｄ＿ｏｒｇを基に算出された差Ｄに対応する顔の向きの角度Ｖを検出する。例えば、図３０における、差Ｄの値である差Ｄｅを基に、図２９で示される対応関係より、正面に対して右方向を向いていることを示す角度Ｖｅが検出される。
【０１７６】
このように、画像上のノイズなどの外乱要素が存在しても、頭頂部半径Ｒｈをより正確に推定して、推定された頭頂部半径Ｒｈを基に、顔の向きを示す角度Ｖを検出するようにしたので、より正確な顔の向きを検出することができるようになる。
【０１７７】
次に、頭頂部関係情報として、人の画像の頭頂部の半径および頭頂部中心位置を求めて、頭頂部の半径および頭頂部中心位置を基に、視線の向きを推定する画像処理装置について説明する。
【０１７８】
図３１は、視線の向きを推定する、画像処理装置１５１の一実施の形態の構成を示すブロック図である。
【０１７９】
図３１において、図１または図１９で示される場合と対応する部分には、同一の番号を付してあり、その説明は適宜省略する。
【０１８０】
頭頂部半径推定部１３は頭頂部の半径を推定し、推定した頭頂部の半径を目輪郭検出範囲設定部１７１に供給する。頭頂部中心推定部６１は、頭頂部中心位置を推定し、目輪郭検出範囲設定部１７１に供給する。
【０１８１】
目輪郭検出範囲設定部１７１は、頭頂部中心推定部６１から供給された頭頂部中心位置、および頭頂部半径推定部１３から供給された頭頂部半径を基に、目の輪郭が検出される範囲を設定し、設定した範囲を目輪郭検出部１７２に供給する。
【０１８２】
目輪郭検出部１７２は、目輪郭検出範囲設定部１７１より供給された、目の輪郭が検出される範囲における画像データを基に、目の輪郭を検出し、検出した目の輪郭を示すデータを鼻孔検出部１７３、眼球中心／半径推定部１７４、および瞳孔中心検出部１７５に供給する。
【０１８３】
鼻孔検出部１７３は、画像データ、および目輪郭検出部１７２より供給された、目の輪郭を基に、鼻孔を検出し、検出した鼻孔を示すデータを眼球中心／半径推定部１７４に供給する。
【０１８４】
眼球中心／半径推定部１７４は、目輪郭検出部１７２より供給された目の輪郭を示すデータ、および鼻孔検出部１７３より供給された鼻孔を示すデータを基に、眼球の中心および半径を推定し、眼球の中心および半径を示すデータを視線検出部１７６に供給する。
【０１８５】
瞳孔中心検出部１７５は、画像データ、および目輪郭検出部１７２より供給された目の輪郭を示すデータを基に、瞳孔の中心位置を検出し、検出した瞳孔の中心位置を示すデータを視線検出部１７６に供給する。
【０１８６】
視線検出部１７６は、眼球中心／半径推定部１７４より供給された眼球の中心および半径を示すデータ、および瞳孔中心検出部１７５より供給された瞳孔の中心位置を示すデータを基に、視線を検出する。
【０１８７】
次に、図３２のフローチャートを参照して、図３１の画像処理装置１５１による、視線の検出の処理を説明する。
【０１８８】
ステップＳ３０１において、背景分離部１１、頭頂推定部１２、および頭頂部中心推定部６１は、頭頂部中心推定の処理を行う。
【０１８９】
図３３は、ステップＳ３０１に対応する、頭頂部中心推定の処理の詳細を説明するフローチャートである。
【０１９０】
ステップＳ３２１において、背景分離部１１は、背景分離の処理を実行する。背景分離の処理の詳細は、図３のフローチャートを参照して説明した処理と同様なので、その説明は省略する。
【０１９１】
ステップＳ３２２において、頭頂推定部１２は、頭頂推定の処理を実行する。頭頂推定の処理の詳細は、図６のフローチャートを参照して説明した処理と同様なので、その説明は省略する。
【０１９２】
ステップＳ３２３において、頭頂中心推定部６１は、頭頂部中心算出の処理を実行して、頭頂部中心推定の処理は終了する。頭頂部中心算出の処理の詳細は、図２１または図２２のフローチャートを参照して説明した処理と同様なので、その説明は省略する。
【０１９３】
すなわち、上述したように、以上の処理により頭頂部中心が推定される。以下、推定された頭頂部中心位置を、Ｃ１とする。
【０１９４】
図３２に戻り、ステップＳ３０２において、頭頂部半径推定部１３は、頭頂部半径算出の処理を実行する。頭頂部半径算出の処理の詳細は、図８または図１８のフローチャートを参照して説明した処理と同様であるので、その説明は省略する。これにより、頭頂部半径Ｒｈが算出される。
【０１９５】
ステップＳ３０３において、目輪郭検出範囲設定部１７１は、頭頂部中心推定部６１より供給された頭頂部中心位置Ｃ１、および頭頂部半径推定部１３より供給された頭頂部半径Ｒｈを基に、目の輪郭が検出される輪郭検出範囲を設定する。例えば、ステップＳ３０３において、頭頂部中心推定部６１より供給された頭頂部中心位置Ｃ１、および頭頂部半径推定部１３より供給された頭頂部半径Ｒｈを基に、図３４に示されるように、目の輪郭検出範囲は、中心を頭頂部中心位置Ｃ１とし、半径を頭頂部半径Ｒｈとする円１９１の内側の範囲として設定される。
【０１９６】
ステップＳ３０４において、目輪郭検出部１７２は、目の輪郭検出範囲における、画像データの色彩情報を用いることで、顔画像における両目の輪郭を検出する。すなわち、供給された画像の色彩情報からステップＳ３０３で設定した目輪郭検出範囲内で、例えば肌、白目、黒目等の色領域を抽出し、それら抽出した色領域の境界を求めること等により、図３５に示すように、右目および左目の輪郭Ｅを検出する。なお、図３５においては、片目のみ示している。
【０１９７】
目の輪郭Ｅは、頭頂部の内側に存在し、ステップＳ３０３において、目の輪郭検出範囲が、頭頂部中心位置Ｃ１および頭頂部半径Ｒｈを基に設定されるようにしたので、ステップＳ３０４において、目輪郭検出部１７２は、顔画像における両目の輪郭Ｅをより確実に検出することができる。
【０１９８】
ステップＳ３０５において、鼻孔検出部１７３は、ステップＳ３０４の処理で検出された両目のそれぞれの輪郭Ｅに基づいて、鼻孔を検出する。例えば、ステップＳ３０５において、鼻孔検出部１７３は、両目のそれぞれの輪郭Ｅに基づいて、右目の内側端点Ｆ１および外側端点Ｆ２の位置、並びに左目の内側端点Ｆ１および外側端点Ｆ２の位置を求め、それら右目および左目のそれぞれの内側端点Ｆ１および外側端点Ｆ２の位置を基準として、図３６に示されるような鼻孔を検索するための検索範囲ＮＥを決定し、検索範囲ＮＥ内から鼻孔ＮＨの位置を検出する。すなわち、鼻孔検出部１７３は、左右両目について、図３５に示されるように、それぞれ目の輪郭Ｅを構成する画素集合の重心Ｑと、目の輪郭Ｅを構成する画素集合の２次モーメント（線に関する慣性）を最小にする線Ｍを求め、さらに、目の輪郭Ｅを構成する画素集合の中から、線Ｍの方向において重心Ｑからの距離が最大となる距離Ｌ３、Ｌ４の位置の画素を、重心Ｑから左右方向に１つずつ求め、これらの画素位置を上記内側端点Ｆ１と外側端点Ｆ２とする。
【０１９９】
なお、画素集合の２次モーメント（線に関する慣性）を最小にする線Ｍの算出については、図３９を参照して後述する。
【０２００】
次に、図３６に示されるように、鼻孔検出部１７３は、上述のようにして求めた右目の内側端点Ｆ１および外側端点Ｆ２の位置と、左目の内側端点Ｆ１および外側端点Ｆ２の位置とを基準とし、それら各内側端点Ｆ１および外側端点Ｆ２から下方側に、鼻孔を検索するための探索範囲ＮＥを決定する。ここで、鼻孔ＮＨ部分の画像は他の部分の画像と比較して暗く写るので、探索範囲ＮＥ内で、輝度が低い画像部分を鼻孔ＮＨの位置として検出する。
【０２０１】
ステップＳ３０６において、眼球中心／半径推定部１７４は、眼球の中心および半径を推定する。例えば、ステップＳ３０６において、眼球中心／半径推定部１７４は、図３７に示されるように、右目の内側端点Ｆ１および外側端点Ｆ２の位置と、左目の内側端点Ｆ１および外側端点Ｆ２の位置と、鼻孔ＮＨの位置との幾何学的な位置関係とに基づいて、眼球ＥＢの中心位置ＥＣおよび眼球ＥＢの半径ｒを推定する。
【０２０２】
ステップＳ３０７において、瞳孔中心検出部１７５は、右目の輪郭Ｅおよび左目の輪郭Ｅ内の画像の輝度情報を用いて、瞳孔の中心を検出する。例えば、ステップＳ３０７において、瞳孔中心検出部１７５は、図３６に示されるように、瞳孔ＥＡの中心位置ＥＡＣを検出する。
【０２０３】
ステップＳ３０８において、視線検出部１７６は、視線の方向を検出して、処理は終了する。例えば、ステップＳ３０８において、視線検出部１７６は、図３８に示されるように、ステップＳ３０６の処理で検出した眼球ＥＢの中心位置ＥＣと、ステップＳ３０７の処理で検出した瞳孔ＥＡの中心位置ＥＡＣとを結ぶベクトルＥＶを演算し、得られたベクトルＥＶを視線の方向として検出する。
【０２０４】
以上のように、視線が検出される。
【０２０５】
なお、図３５で示される、輪郭Ｅのような特定の画素集合の２次モーメントを最小にする線Ｍは、例えば、以下のような演算により求めることができる。ここでは、図３９に示されるように、式（６）で表される直線Ｍを例に説明する。
【０２０６】
【数１】
2005196519.tif 000003
【０２０７】
輪郭Ｅの画素集合上の各点（ｘｉ,ｙｉ）と直線Ｍとの距離をＲｉとするとき、直線Ｍに関する２次モーメントｍは、式（７）のように表すことができる。
【０２０８】
【数２】
2005196519.tif 000004
【０２０９】
すなわち、２次モーメントを最小にする直線Ｍとは、式（７）のｍを最小にする直線Ｍのことである。θは直線Ｍの傾きを表し、ρは原点から直線Ｍまでの距離を表す。結論を述べると、式（７）のｍを最小にするには、式（７）中のθ、ρとして、式（８）および式（９）の条件を満たすものを使用する。
【０２１０】
【数３】
2005196519.tif 000005
【０２１１】
【数４】
2005196519.tif 000006
【０２１２】
なお、式（９）の（ｘ0sinθ−y0cosθ＋ρ＝０）は、直線Ｍが画素集合の重心を通ることを意味する。
【０２１３】
但し、式（８）および式（９）において、ａ，ｂ，ｃは、式（１０）、式（１１）、および式（１２）で表される。なお、（ｘ0，ｙ0）は画素集合の重心である。
【０２１４】
【数５】
2005196519.tif 000007
【０２１５】
【数６】
2005196519.tif 000008
【０２１６】
【数７】
2005196519.tif 000009
【０２１７】
以上のように、画像上のノイズなどの外乱要素が存在しても、頭頂部中心位置および頭頂部半径をより正確に推定して、推定された頭頂部中心位置および頭頂部半径を基に、目の輪郭の検出範囲を設定して、目の輪郭を検出するようにしたので、より確実により正確な視線が検出されるようになる。
【０２１８】
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
【０２１９】
図４０は、上述した一連の処理をプログラムにより実行するパーソナルコンピュータの構成の例を示すブロック図である。CPU（Central Processing Unit）２０１は、ROM（Read Only Memory）２０２、または記録部２０８に記録されているプログラムに従って各種の処理を実行する。RAM（Random Access Memory）２０３には、CPU２０１が実行するプログラムやデータなどが適宜記憶される。これらのCPU２０１、ROM２０２、およびRAM２０３は、バス２０４により相互に接続されている。
【０２２０】
CPU２０１にはまた、バス２０４を介して入出力インタフェース２０５が接続されている。入出力インタフェース２０５には、キーボード、マウス、マイクロホンなどよりなる入力部２０６、ディスプレイ、スピーカなどよりなる出力部２０７が接続されている。CPU２０１は、入力部２０６から入力される指令に対応して各種の処理を実行する。そして、CPU２０１は、処理の結果得られた画像等を出力部２０７に出力する。
【０２２１】
入出力インタフェース２０５に接続されている記録部２０８は、例えばハードディスクなどで構成され、CPU２０１が実行するプログラムや各種のデータを記録する。通信部２０９は、インターネット、その他のネットワークを介して外部の装置と通信する。この例の場合、通信部２０９は、入力画像を取得するか、または出力画像を出力する、外部とのインタフェースとして動作する。
【０２２２】
また、通信部２０９を介してプログラムを取得し、記録部２０８に記録してもよい。
【０２２３】
入出力インタフェース２０５に必要に応じて接続されるドライブ２１０は、磁気ディスク２２１、光ディスク２２２、光磁気ディスク２２３、或いは半導体メモリ２２４などが装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記録部２０８に転送され、記録される。
【０２２４】
一連の処理をさせるプログラムが格納されている記録媒体は、図４０に示されるように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク２２１（フレキシブルディスクを含む）、光ディスク２２２（CD-ROM(Compact Disc-Read Only Memory)、ＤＶＤ(Digital Versatile Disc)を含む）、光磁気ディスク２２３（ＭＤ(Mini-Disc)（商標）を含む）、若しくは半導体メモリ２２４などよりなるパッケージメディアにより構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM２０２や、記録部２０８に含まれるハードディスクなどで構成される。
【０２２５】
なお、上述した一連の処理を実行させるプログラムは、必要に応じてルータ、モデムなどのインタフェースを介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を介してコンピュータにインストールされるようにしてもよい。
【０２２６】
また、本明細書において、記録媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０２２７】
なお、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【図面の簡単な説明】
【０２２８】
【図１】本発明に係る画像処理装置の一実施の形態の構成を示すブロック図である。
【図２】頭頂部の半径の推定の処理を説明するフローチャートである。
【図３】背景分離の処理の詳細を説明するフローチャートである。
【図４】入力画像の例を示す図である。
【図５】背景分離の処理の結果である２値画像の例を示す図である。
【図６】頭頂部推定の処理の詳細を説明するフローチャートである。
【図７】頭頂部推定を説明する図である。
【図８】頭頂部半径算出の処理の詳細を説明するフローチャートである。
【図９】画像データで表される画像の垂直方向の位置である垂直位置を説明する図である。
【図１０】人の頭頂部の形状を説明する図である。
【図１１】人の頭頂部の形状を説明する図である。
【図１２】人の頭頂部の形状を説明する図である。
【図１３】人の頭頂部の形状を説明する図である。
【図１４】人の頭頂部の形状を説明する図である。
【図１５】人の頭頂部の形状を説明する図である。
【図１６】画像データで表される画像の処理対象ラインの垂直位置を説明する図である。
【図１７】画像データで表される画像の処理対象ラインの垂直位置を説明する図である。
【図１８】頭頂部半径算出の他の処理を説明するフローチャートである。
【図１９】本発明に係る画像処理装置の一実施の形態の他の構成を示すブロック図である。
【図２０】頭頂部の中心の推定の処理を説明するフローチャートである。
【図２１】頭頂部中心算出の処理の詳細を説明するフローチャートである。
【図２２】頭頂部中心算出の他の処理の詳細を説明するフローチャートである。
【図２３】画素アスペクト比を説明する図である。
【図２４】画素アスペクト比を説明する図である。
【図２５】本発明に係る画像処理装置の一実施の形態のさらに他の構成を示すブロック図である。
【図２６】顔の向きの検出の処理を説明するフローチャートである。
【図２７】頭頂部半径推定の処理を説明するフローチャートである。
【図２８】画像データおよび重心点検出領域の例を示す図である。
【図２９】差Ｄと顔の向きの角度との対応を示す図である。
【図３０】画像データおよび重心点検出領域の他の例を示す図である。
【図３１】本発明に係る画像処理装置の一実施の形態のさらに他の構成を示すブロック図である。
【図３２】視線の検出の処理を説明するフローチャートである。
【図３３】頭頂部中心推定の処理を説明するフローチャートである。
【図３４】目の輪郭検出範囲の設定を説明する図である。
【図３５】目の両端位置の検出を説明する図である。
【図３６】鼻孔の検索範囲を説明する図である。
【図３７】目の両端位置、鼻孔位置、眼球中心位置を説明する図である。
【図３８】視線の方向の検出を説明する図である。
【図３９】画素集合の２次モーメントを最小にする線を説明する図である。
【図４０】パーソナルコンピュータの構成を説明するブロック図である。
【符号の説明】
【０２２９】
１１  背景分離部，  １２  頭頂推定部，  １３  頭頂部半径推定部，  ２１  垂直距離判定部，  ２２  半径算出部，  ６１  頭頂部中心推定部，  ７１  中心位置算出部，  １２１  色領域決定部，  １２２  重心点検出領域設定部，  １２３  重心点検出部，  １２４  重心点Ｘ成分差分検出部，  １２５  角度検出部，  １７１  目輪郭検出範囲設定部，  １７２  目輪郭検出部，  １７３  鼻孔検出部，  １７４  眼球中心／半径推定部，  １７５  瞳孔中心検出部，  １７６  視線検出部，  ２０８  記録部，  ２２１  磁気ディスク，  ２２２  光ディスク，  ２２３  光磁気ディスク，  ２２４  半導体メモリ
【図１】
2005196519.tif 000010
【図２】
2005196519.tif 000011
【図３】
2005196519.tif 000012
【図４】
2005196519.tif 000013
【図５】
2005196519.tif 000014
【図６】
2005196519.tif 000015
【図７】
2005196519.tif 000016
【図８】
2005196519.tif 000017
【図９】
2005196519.tif 000018
【図１０】
2005196519.tif 000019
【図１１】
2005196519.tif 000020
【図１２】
2005196519.tif 000021
【図１３】
2005196519.tif 000022
【図１４】
2005196519.tif 000023
【図１５】
2005196519.tif 000024
【図１６】
2005196519.tif 000025
【図１７】
2005196519.tif 000026
【図１８】
2005196519.tif 000027
【図１９】
2005196519.tif 000028
【図２０】
2005196519.tif 000029
【図２１】
2005196519.tif 000030
【図２２】
2005196519.tif 000031
【図２３】
2005196519.tif 000032
【図２４】
2005196519.tif 000033
【図２５】
2005196519.tif 000034
【図２６】
2005196519.tif 000035
【図２７】
2005196519.tif 000036
【図２８】
2005196519.tif 000037
【図２９】
2005196519.tif 000038
【図３０】
2005196519.tif 000039
【図３１】
2005196519.tif 000040
【図３２】
2005196519.tif 000041
【図３３】
2005196519.tif 000042
【図３４】
2005196519.tif 000043
【図３５】
2005196519.tif 000044
【図３６】
2005196519.tif 000045
【図３７】
2005196519.tif 000046
【図３８】
2005196519.tif 000047
【図３９】
2005196519.tif 000048
【図４０】
2005196519.tif 000049