(57)【要約】【課題】  経験的な閾値を必要とせず、画像中における所定の被写体の検出をより簡便且つ高精度に行うための技術を提供すること。【解決手段】  輝度画像上の各位置に配置した所定サイズの矩形内の顔確率を求め（Ｓ１０６）、それぞれの領域の顔確率に基づいてそれぞれの領域の確率分布を求め、このそれぞれの確率分布を示す第１マップデータを作成し（Ｓ１０９）、輝度画像の第２縮小画像乃至第Ｎ縮小画像を生成し（Ｓ１０３）、第ｎ縮小画像上の各位置に配置した上記矩形内の領域の顔確率を求め（Ｓ１０６）、それぞれの領域の顔確率に基づいてそれぞれの領域の確率分布を求め、このそれぞれの確率分布を示す第ｎマップデータを第（ｎ−１）マップデータに合成する処理をｎ＝２〜Ｎについて繰り返すことで合成マップデータを作成し、合成マップデータを用いて代表パターンを選択する（Ｓ１１５）。【選択図】  図２
2007025902.tif 000002
【特許請求の範囲】
【請求項１】
所定の被写体を含む画像を取得する取得手段と、
前記画像の輝度成分で構成される輝度画像を生成する生成手段と、
前記輝度画像上の各位置に所定サイズの矩形を配置した場合に、当該矩形内の領域が前記所定の被写体とおぼしきパターンを示す確率を求める第１確率計算手段と、
前記第１確率計算手段が計算したそれぞれの領域に対する確率に基づいて、当該それぞれの領域に対する確率分布を求める第１確率分布計算手段と、
前記輝度画像上における当該それぞれの領域に対する確率分布を示す第１マップデータを作成する第１作成手段と、
前記輝度画像を再帰的に縮小することで、第２縮小画像乃至第Ｎ縮小画像を生成する縮小手段と、
第ｎ（２≦ｎ≦Ｎ）縮小画像上の各位置に前記矩形を配置した場合に、当該矩形内の領域が前記所定の被写体とおぼしきパターンを示す確率を求める第２確率計算手段と、
前記第２確率計算手段が計算したそれぞれの領域に対する確率に基づいて、当該それぞれの領域に対する確率分布を求める第２確率分布計算手段と、
前記第ｎ縮小画像上における当該それぞれの領域に対する確率分布を示す第ｎマップデータを第（ｎ−１）マップデータに合成する合成手段と、
ｎ＝２〜Ｎについて前記第２確率計算手段、前記第２確率分布計算手段、前記合成手段による処理を繰り返すことで合成マップデータを作成する繰り返し手段と、
前記合成マップデータに基づいて、被写体パターン候補の中から代表パターンを検出する検出手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記検出手段は、
前記第１確率計算手段が計算した確率が０よりも大きい領域に相当する前記取得手段が取得した画像上の領域のうち、前記合成マップデータが示す画像上において最も大きい値を有する画素の位置に最も近い位置における領域を前記所定の被写体の領域として出力する第１の手段と、
前記合成マップデータにおいて、前記合成マップデータが示す画像上において前記第１の手段が検出した領域に対応する領域に相当するデータを０に設定することで、前記合成マップデータを更新する第２の手段と、
前記第２の手段によって更新された合成マップデータについて、前記第１，２の手段による処理を繰り返す第３の手段と
を備えることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記第３の手段は、前記合成マップデータが示す画像上において最も大きい値が所定の閾値以上であれば、前記第１、２の手段による処理を繰り返すことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
所定の被写体を含む画像を取得する取得工程と、
前記画像の輝度成分で構成される輝度画像を生成する生成工程と、
前記輝度画像上の各位置に所定サイズの矩形を配置した場合に、当該矩形内の領域が前記所定の被写体とおぼしきパターンを示す確率を求める第１確率計算工程と、
前記第１確率計算工程で計算したそれぞれの領域に対する確率に基づいて、当該それぞれの領域に対する確率分布を求める第１確率分布計算工程と、
前記輝度画像上における当該それぞれの領域に対する確率分布を示す第１マップデータを作成する第１作成工程と、
前記輝度画像を再帰的に縮小することで、第２縮小画像乃至第Ｎ縮小画像を生成する縮小工程と、
第ｎ（２≦ｎ≦Ｎ）縮小画像上の各位置に前記矩形を配置した場合に、当該矩形内の領域が前記所定の被写体とおぼしきパターンを示す確率を求める第２確率計算工程と、
前記第２確率計算工程で計算したそれぞれの領域に対する確率に基づいて、当該それぞれの領域に対する確率分布を求める第２確率分布計算工程と、
前記第ｎ縮小画像上における当該それぞれの領域に対する確率分布を示す第ｎマップデータを第（ｎ−１）マップデータに合成する合成工程と、
ｎ＝２〜Ｎについて前記第２確率計算工程、前記第２確率分布計算工程、前記合成工程による処理を繰り返すことで合成マップデータを作成する繰り返し工程と、
前記合成マップデータに基づいて、被写体パターン候補の中から代表パターンを検出する検出工程と
を備えることを特徴とする画像処理方法。
【請求項５】
コンピュータに請求項４に記載の画像処理方法を実行させることを特徴とするプログラム。
【請求項６】
請求項５に記載のプログラムを格納したことを特徴とする、コンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像中における所定の被写体を検出するための技術に関するものである。
【背景技術】
【０００２】
画像から特定の被写体パターンを自動的に検出する画像処理方法は非常に有用であり、このような画像処理方法は例えば、人間の顔を検出するために利用することができる。このような方法は、通信会議、マン・マシン・インタフェース、セキュリティ、人間の顔を追跡するためのモニタ・システム、画像圧縮などの多くの分野で使用することができる。このような画像中から顔を検出する技術としては、例えば、非特許文献１に各種方式が挙げられている。その中では、いくつかの顕著な特徴（２つの目、口、鼻など）とその特徴間の固有の幾何学的位置関係とを利用するか、又は人間の顔の対称的特徴、人間の顔色の特徴、テンプレート・マッチング、ニューラル・ネットワークなどを利用することによって、人間の顔を検出する方式が示されている。
【０００３】
例えば、非特許文献２で提案されている方式は、ニューラル・ネットワークにより画像中の顔パターンを検出する方法である。以下、非特許文献２による顔検出の方法について簡単に説明する。
【０００４】
まず、顔を含む画像をメモリに読み込み、この画像から、顔と照合する所定の領域を切り出す。そして、切り出した領域を構成する各画素の画素値の分布を入力としてニューラル・ネットワークによる演算で一つの出力を得る。
【０００５】
このとき、ニューラル・ネットワークの重み、閾値は、膨大な顔画像パターンと非顔画像パターンによりあらかじめ学習されており、このようなニューラル・ネットワークを用いれば、例えば、ニューラル・ネットワークの出力が０以上なら顔、それ以外は非顔であると判別することができる。
【０００６】
そして、ニューラル・ネットワークの入力である顔と照合する画像パターンの切り出し位置を、例えば、画像全域から縦横順次に走査していくことにより、画像中から顔を検出する。
【０００７】
また、様々な大きさの顔の検出に対応するため、読み込んだ画像を所定の割合で順次縮小し、それぞれに対して、前述した顔検出の走査を行うようにしている。
【０００８】
上記方法で顔の検出を行い、顔であると判別されたパターンを出力とした場合、隣接したパターンや大きさが微妙に異なるパターン等で重なってパターンが検出される状況が頻繁に発生する。このような場合に非特許文献２では、所定の閾値を利用してパターンの大きさや出現数を絞り込む処理や、パターンの重なりと重心の位置関係を利用するなど、複数の経験的なアルゴリズムを組み合わせて、正しい顔の絞込みを行っている。
【０００９】
このように従来例はアルゴリズムが複雑で、また、パラメータを経験的に複数設定する必要がある。したがって、検出すべき顔を示すパターンを取りこぼす（未検出）、あるいは顔でないパターンを残してしまう（誤検出）という問題があった。
【非特許文献１】IEEE TRANSACTIONS ON PATTERN ANALYSIS AND MACHINE INTELLIGENCE, VOL.24 , NO.1, JANUARY 2002、”Detecting Faces in Images: A Survey”
【非特許文献２】IEEE TRANSACTIONS ON PATTERN ANALYSIS AND MACHINE INTELLIGENCE, VOL.20 , NO.1, JANUARY 1998、”Neural network-based face detection”
【発明の開示】
【発明が解決しようとする課題】
【００１０】
本発明は以上の問題に鑑みてなされたものであり、経験的な閾値を必要とせず、画像中における所定の被写体の検出をより簡便且つ高精度に行うための技術を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明の目的を達成するために、例えば、本発明の画像処理装置は以下の構成を備える。
【００１２】
即ち、所定の被写体を含む画像を取得する取得手段と、
前記画像の輝度成分で構成される輝度画像を生成する生成手段と、
前記輝度画像上の各位置に所定サイズの矩形を配置した場合に、当該矩形内の領域が前記所定の被写体とおぼしきパターンを示す確率を求める第１確率計算手段と、
前記第１確率計算手段が計算したそれぞれの領域に対する確率に基づいて、当該それぞれの領域に対する確率分布を求める第１確率分布計算手段と、
前記輝度画像上における当該それぞれの領域に対する確率分布を示す第１マップデータを作成する第１作成手段と、
前記輝度画像を再帰的に縮小することで、第２縮小画像乃至第Ｎ縮小画像を生成する縮小手段と、
第ｎ（２≦ｎ≦Ｎ）縮小画像上の各位置に前記矩形を配置した場合に、当該矩形内の領域が前記所定の被写体とおぼしきパターンを示す確率を求める第２確率計算手段と、
前記第２確率計算手段が計算したそれぞれの領域に対する確率に基づいて、当該それぞれの領域に対する確率分布を求める第２確率分布計算手段と、
前記第ｎ縮小画像上における当該それぞれの領域に対する確率分布を示す第ｎマップデータを第（ｎ−１）マップデータに合成する合成手段と、
ｎ＝２〜Ｎについて前記第２確率計算手段、前記第２確率分布計算手段、前記合成手段による処理を繰り返すことで合成マップデータを作成する繰り返し手段と、
前記合成マップデータに基づいて、被写体パターン候補の中から代表パターンを検出する検出手段と
を備えることを特徴とする。
【００１３】
本発明の目的を達成するために、例えば、本発明の画像処理方法は以下の構成を備える。
【００１４】
即ち、所定の被写体を含む画像を取得する取得工程と、
前記画像の輝度成分で構成される輝度画像を生成する生成工程と、
前記輝度画像上の各位置に所定サイズの矩形を配置した場合に、当該矩形内の領域が前記所定の被写体とおぼしきパターンを示す確率を求める第１確率計算工程と、
前記第１確率計算工程で計算したそれぞれの領域に対する確率に基づいて、当該それぞれの領域に対する確率分布を求める第１確率分布計算工程と、
前記輝度画像上における当該それぞれの領域に対する確率分布を示す第１マップデータを作成する第１作成工程と、
前記輝度画像を再帰的に縮小することで、第２縮小画像乃至第Ｎ縮小画像を生成する縮小工程と、
第ｎ（２≦ｎ≦Ｎ）縮小画像上の各位置に前記矩形を配置した場合に、当該矩形内の領域が前記所定の被写体とおぼしきパターンを示す確率を求める第２確率計算工程と、
前記第２確率計算工程で計算したそれぞれの領域に対する確率に基づいて、当該それぞれの領域に対する確率分布を求める第２確率分布計算工程と、
前記第ｎ縮小画像上における当該それぞれの領域に対する確率分布を示す第ｎマップデータを第（ｎ−１）マップデータに合成する合成工程と、
ｎ＝２〜Ｎについて前記第２確率計算工程、前記第２確率分布計算工程、前記合成工程による処理を繰り返すことで合成マップデータを作成する繰り返し工程と、
前記合成マップデータに基づいて、被写体パターン候補の中から代表パターンを検出する検出工程と
を備えることを特徴とする。
【発明の効果】
【００１５】
本発明の構成により、経験的な閾値を必要とせず、画像中における所定の被写体の検出をより簡便且つ高精度に行うことができる。
【発明を実施するための最良の形態】
【００１６】
以下添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。
【００１７】
［第１の実施形態］
本実施形態に係る画像処理装置は、ＰＣ（パーソナルコンピュータ）やＷＳ（ワークステーション）等のコンピュータにより構成されており、ディジタルカメラなどの撮像装置から入力した画像、インターネットなどのネットワークを介して外部機器からダウンロードした画像、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどの記憶媒体からの読み出しにより入力した画像など、様々な入力形態で入力した画像中に含まれている所定の被写体を検出する。なお、本実施形態では被写体として人間の顔を用いるが、その他の被写体を用いても良い。
【００１８】
先ず、このような処理を行う本実施形態に係る画像処理装置について説明する。図３は、本実施形態に係る画像処理装置に適用可能なコンピュータのハードウェア構成を示す図である。
【００１９】
２０１はＣＰＵで、ＲＡＭ２０２やＲＯＭ２０３に格納されているプログラムやデータを用いてコンピュータ全体の制御を行うと共に、コンピュータが行う後述の各処理を実行する。
【００２０】
２０２はＲＡＭで、外部記憶装置２０７や記憶媒体ドライブ装置２０８から読み出したプログラムやデータを一時的に記憶するためのエリア、Ｉ／Ｆ２０９を介して外部から受信したデータを一時的に記憶する為のエリア、ＣＰＵ２０１が各種の処理を実行する為に用いるワークエリア等、各種のエリアを適宜提供することができる。
【００２１】
２０３はＲＯＭで、ここにブートプログラムや本コンピュータの設定データなどを格納する。
【００２２】
２０４、２０５は夫々キーボード、マウスで、コンピュータの操作者が操作することで各種の指示をＣＰＵ２０１に対して入力することができる。
【００２３】
２０６は表示部で、ＣＲＴや液晶画面などにより構成されており、ＣＰＵ２０１による処理結果を文字や画像等でもって表示する。
【００２４】
２０７は外部記憶装置で、ハードディスクドライブ装置等の大容量情報記憶装置であって、ここにＯＳ（オペレーティングシステム）や、コンピュータが行う後述の各処理をＣＰＵ２０１に実行させるためのプログラムやデータが格納されており、これらはＣＰＵ２０１による制御に従って適宜ＲＡＭ２０２に読み出される。
【００２５】
２０８は記憶媒体ドライブ装置で、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどの記憶媒体に記録されているプログラムやデータを読み出して、ＲＡＭ２０２や外部記憶装置２０７等に出力する。なお、上記外部記憶装置２０７に記憶されているプログラムやデータの一部を上記記憶媒体に記録しておいても良く、その場合には、これら記憶されているプログラムやデータを使用する際に、記憶媒体ドライブ装置２０８がこの記憶媒体に記録されているプログラムやデータを読み出して、ＲＡＭ２０２に出力する。
【００２６】
２０９はＩ／Ｆ（インターフェース）で、ここにディジタルカメラやインターネットやＬＡＮのネットワーク回線等を接続することができる。
【００２７】
２１０は上述の各部を繋ぐバスである。
【００２８】
なお、コンピュータへの画像の入力形態については特に限定するものではなく、様々な形態が考えられる。
【００２９】
図１は、本実施形態に係る画像処理装置に適用可能なコンピュータの機能構成を示すブロック図である。同図に示す如く、本実施形態に係る画像処理装置は、画像入力部１０、画像メモリ２０、画像縮小部３０、照合パターン抽出部４０、輝度正規化部５０、顔判別部６０、顔候補リスト格納部７０、顔確率分布生成部８０、顔確率マップ格納部９０、代表パターン検出部１００、顔領域出力部１０１により構成されている。
【００３０】
画像入力部１０は、例えばディジタルスチルカメラ、フィルムスキャナーなどの装置から出力された画像データを受け、後段の画像メモリ２０に出力するものである。なお、上述の通り、画像の入力形態については特に限定するものではない。
【００３１】
画像メモリ２０は、画像入力部１０から出力される画像データを格納するためのメモリである。
【００３２】
画像縮小部３０は、先ず、画像メモリ２０から受けた画像データの輝度成分で構成される輝度画像を生成する。そして、生成した輝度画像を再帰的に縮小することで、複数枚の縮小画像を生成する。生成したそれぞれの縮小画像（画像メモリ２０から受けた画像データに基づいて生成したオリジナルの輝度画像も１／１の縮小画像と解釈すれば、このオリジナルもまた、縮小画像に含めることができる）は順次後段の照合パターン抽出部４０に出力する。
【００３３】
照合パターン抽出部４０は、画像縮小部３０から縮小画像を受けると、この縮小画像上で所定サイズの矩形を移動させながら、この矩形に含まれる画素群を「照合対象パターン」として順次抽出し、後段の輝度正規化部５０に出力する。このような処理は、画像縮小部３０から受けたそれぞれの縮小画像について行う。
【００３４】
輝度正規化部５０は、照合パターン抽出部４０から受けた照合対象のパターンを構成する画素群の輝度分布を正規化する。
【００３５】
顔判別部６０は、輝度正規化部５０で正規化された照合対象パターンが顔パターンである確率を求め、この照合対象パターンが顔パターンである確率が０ではない場合には、画像入力部１０に入力された画像上におけるこの照合対象パターンの位置（この照合対象パターンを抽出した縮小画像とこの照合対象パターンとの位置関係が維持されるような、画像入力部１０に入力された画像上における位置）、及びサイズを顔候補リスト格納部７０に登録すると共に、この照合対象パターンについて求めた確率を示すデータを後段の顔確率分布生成部８０に出力する。
【００３６】
顔候補リスト格納部７０は、画像入力部１０に入力された画像上において顔パターンとおぼしき照合対象パターンの位置、及びサイズのセットを格納する。このセットのデータはリストデータなるデータに順次登録されることになる。従ってこのリストデータは、１以上のセットのデータから成る。
【００３７】
顔確率分布生成部８０は、照合対象パターンに対する確率分布を求め、求めた確率分布のデータを用いて確率マップ格納部９０に格納されているマップデータを更新する。
【００３８】
確率マップ格納部９０は、マップデータを格納する。マップデータについては後述する。
【００３９】
代表パターン検出部１００は、顔確率マップ格納部９０に格納されているマップデータと、顔候補リスト格納部７０に登録されているリストデータとを用いて、画像入力部１０に入力された画像上における代表的な顔パターン（以下、代表パターンと呼称する）を検出する処理を行う。代表パターンについては後述する。
【００４０】
顔領域出力部１０１は、代表パターン検出部１００によって検出された代表パターンを出力する。
【００４１】
以上の各部は、例えば、ＣＰＵ２０１やＲＡＭ２０２、外部記憶装置２０７等でもって構成することができる。
【００４２】
次に、ＣＰＵ２０１が図１に示した各部として動作することでなされる処理、即ち、画像中に含まれている被写体を検出するための処理について、同処理のフローチャートを示す図２を用いて以下説明する。なお、同図のフローチャートに従った処理をＣＰＵ２０１に実行させるためのプログラムやデータは外部記憶装置２０７（もしくは記憶媒体ドライブ装置２０８が読み取り可能な記憶媒体）に保存されており、これをＣＰＵ２０１の制御に従って適宜ＲＡＭ２０２にロードし、ＣＰＵ２０１がこれを用いて処理を実行することで、コンピュータは以下説明する各処理を実行することになる。
【００４３】
外部記憶装置２０７や、Ｉ／Ｆ２０９を介して外部から画像データが入力されると、ＣＰＵ２０１は、これをＲＡＭ２０２内の上記画像メモリ２０に相当するエリアに一時的に格納する（ステップＳ１０１）。なお、本コンピュータに入力した画像が圧縮されている場合には、これを伸張してからＲＡＭ２０２に一時的に格納する。
【００４４】
本実施形態では、入力された画像データを構成する各画素は、Ｒ、Ｇ、Ｂで表現されるものであるとする。従って、ＣＰＵ２０１は、ステップＳ１０１でＲＡＭ２０２に格納した画像データに基づいて、この画像の輝度成分で構成される画像（輝度画像）、即ち、この画像を構成する各画素の値をこの画素の輝度値に変換した画像を生成する（ステップＳ１０２）。しかし、ステップＳ１０１でＲＡＭ２０２に格納した画像データを構成する各画素がＹＣｒＣｂで表現されるものである場合には、ステップＳ１０２では、Ｙ成分のみを用いて輝度画像を生成する。
【００４５】
次に、ＣＰＵ２０１は、生成した輝度画像を再帰的に縮小することで、複数枚の縮小画像を生成する（ステップＳ１０３）。例えば、ステップＳ１０２で生成した輝度画像（以下の説明上、縮小画像１と呼称する）の縦横のサイズを１／１．２倍した縮小画像２を生成し、次に縮小画像２の縦横のサイズを１／１．２倍した縮小画像３を生成する、というように、複数枚の縮小画像を生成する。これは、以後の処理で顔を抽出する際に様々な大きさの顔の検出に対応するため複数のサイズの画像データに対して順次検出を行うようにしたためである。なお、生成する縮小画像の枚数については特に限定するものではない。
【００４６】
そして、ステップＳ１０４以降では、生成したそれぞれの縮小画像について処理を行う。即ち、ステップＳ１０４以降の処理は、生成した縮小画像の数だけ繰り返し行うことになる。
【００４７】
以降の説明では、生成した縮小画像はサイズの大きい順に縮小画像１、縮小画像２、、、、縮小画像Ｎと呼称するものとし、先ず、縮小画像１について以降の処理を行うものとする。なお、処理の対象として選択する順番については特に限定するものではない。
【００４８】
先ず、ＣＰＵ２０１は、縮小画像１上に所定サイズの矩形を配置し、矩形内の画素群を照合対象パターンとして抽出する（ステップＳ１０４）。この矩形は、縮小画像１上の各位置に配置した場合に、それぞれの位置における矩形内の輝度分布を得るためのものであるので、例えばこの矩形は最初は画像の左上隅に配置する。
【００４９】
次に、ステップＳ１０４で抽出した照合対象パターン内の各画素の輝度分布を正規化する処理を行う（ステップＳ１０５）。例えば、ヒストグラム平滑化などの輝度補正を行う。これは、撮像される被写体パターンはその照明条件によって輝度分布が変わるので被写体照合の精度が劣化するのを抑制するためである。
【００５０】
次に、ステップＳ１０５で輝度分布が正規化された照合対象パターン（輝度パターン）が、顔パターン（顔とおぼしきパターン）である確率（顔確率）を求める処理を行う（ステップＳ１０６）。
【００５１】
図５は、所定領域内のパターンを識別する為のニューラル・ネットワークの動作について示した図である。同図においてＲは、例えば画像上で識別する領域を示すものであり、本実施形態ではこの領域Ｒを同図に示す如く、３種類の方法にてさらに領域分割し、各ニューロン（Ｎで示す）への受容野とする。そして、分割された領域の輝度分布を各ニューロンに入力し、中間層での出力が得られる。そして、各ニューロンの出力を出力層のニューロンの入力として最終出力が得られる。
【００５２】
ここで、各ニューロンでは予め学習によって得られた重みと輝度分布との積和演算およびその結果のシグモイド関数による演算が行われる。本実施形態では出力層のニューロンの出力値を顔確率とした（ニューラル・ネットワークの詳細および学習の方法については、上記非特許文献２を参照されたい）。なお、ステップＳ１０５で輝度分布が正規化された照合対象パターンが顔パターンである確率（顔確率）を求める処理についてはこれに限定するものではなく、例えば、Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2001に”Rapid Object Detection using a Boosted Cascade of Simple Features”と題するViolaとJonesによる報告で提案されているAdaBoostによる方式を用いてもよい。
【００５３】
図４は、様々なサイズの縮小画像（本実施形態の場合には縮小画像１、縮小画像２、、、、縮小画像Ｎ）について、顔のパターンを検出するための処理を説明する図である。それぞれの縮小画像上の各位置に同じサイズの矩形を配置した場合に、それぞれの位置における矩形内の領域が顔のパターンであるのか否かを判断するために、先ず、同図左側に示す如く、縮小画像の左上隅に矩形を配置し、そこから右側に、上から下に向かって矩形の位置を移動させる。移動させる毎に矩形内の画素群は照合パターンとして顔のパターンの判別に用いられる。
【００５４】
図２に戻って、次に、ステップＳ１０５で輝度分布が正規化された照合対象パターン（輝度パターン）が、顔パターン（顔とおぼしきパターン）である確率が０よりも大きい、即ち、この照合対象パターンが顔パターンであると判別した場合には処理をステップＳ１０７を介してステップＳ１０８に進め、この照合対象パターンのサイズ、及びステップＳ１０１で取得した画像上におけるこの照合対象パターンの位置をセットにしてＲＡＭ２０２内、若しくは外部記憶装置２０７内に設けられている顔候補リスト格納部７０に格納（登録）する（ステップＳ１０８）。
【００５５】
次に、ステップＳ１０４で抽出された照合対象パターン内についてステップＳ１０６で求めた顔確率に基づいて、この照合対象パターンに対する確率分布（顔確率分布）を求め、ＲＡＭ２０２内、若しくは外部記憶装置２０７内に設けられている顔確率マップ格納部９０に格納されているマップデータにおいて、この照合対象パターンに対応するデータ部分に求めた顔確率分布を加算すべく、マップデータを更新する処理を行う（ステップＳ１０９）。
【００５６】
ここで、ステップＳ１０９における処理についてより詳細に説明する。
【００５７】
先ず、ステップＳ１０４で抽出された照合対象パターンの中心位置を原点とした場合に、この原点でピーク値を有し、この原点からの距離が遠くなるほど確率値が小さくなるような確率分布を求める。例えば、照合対象パターンの中心位置におけるピーク値を上記顔確率とし、照合対象パターンの対角長を拡がりとしてもつ二次元ガウス関数を求める。そして、求めた二次元ガウス関数を用いて、照合対象パターン内における各画素位置に対応する確率値を求める。これにより、照合対象パターンを構成する各画素に対応する確率値を得ることができる。
【００５８】
ここで、マップデータは、所定のサイズを有する画像（マップ画像）のデータであり、マップ画像を構成する各画素の画素値は０に初期化されている。
【００５９】
従って、ステップＳ１０９では、縮小画像１上において照合対象パターンを抽出した領域（第１の領域）に対応するマップ画像上における領域（第２の領域）を構成する各画素の画素値に対して、第１の領域を構成する各画素のうち位置的に対応する画素の確率値を加算する処理を行うことで、マップデータを更新する。
【００６０】
ここで、マップ画像と縮小画像１とが同じサイズであれば、第１の領域と第２の領域とは同じサイズとなり、その場合、第１の領域を構成する画素の確率値をＳ（ｘ、ｙ）｛ｘ、ｙは縮小画像１上における座標値｝とすると、マップ画像で座標（ｘ、ｙ）に位置する画素の確率値Ｍ（ｘ、ｙ）に対して確率値Ｓ（ｘ、ｙ）を加算することで、マップデータを更新する。
【００６１】
次に処理をステップＳ１１０に進め、縮小画像１上における矩形の移動先があるのかをチェックする（ステップＳ１１０）。即ち、縮小画像１上における矩形の位置を移動させ、次の位置における矩形内の部分（画素群）を照合対象パターンとして抽出する処理を行う場合に、移動先が無い場合、例えば、現在の矩形の位置が既に縮小画像１の右下隅の位置であれば、もう矩形の移動は行えない。一方、現在の矩形の位置が既に縮小画像１の右下隅の位置でなければ、矩形の移動を行うことができる。
【００６２】
従って、移動先がある場合には処理をステップＳ１１０からステップＳ１１１に進め、縮小画像１上における矩形の位置を移動させる（ステップＳ１１１）。そして矩形の移動が完了すると、処理をステップＳ１０４に進め、移動後の矩形内における照合対象パターンを抽出し、以降の処理を行う。
【００６３】
一方、矩形の移動先がない場合には、処理をステップＳ１１２に進め、全ての縮小画像について以上の処理を行ったのかを判断し（ステップＳ１１２）、まだ処理対象となっていない縮小画像がある場合には処理をステップＳ１１３に進め、縮小画像上に配置する矩形の位置を初期化（例えば縮小画像の左上隅の位置に戻す）し（ステップＳ１１３）、次の縮小画像についてステップＳ１０４以降の処理を行う。
【００６４】
本実施形態では現在縮小画像１について処理を行ったので、次は縮小画像２について処理を行う。よってこの場合には、縮小画像２上の左上隅の位置に矩形を配置し（ステップＳ１１３）、この縮小画像２についてステップＳ１０４以降の処理を行う。
【００６５】
よって、縮小画像ｎ（ｎ≧２）についてステップＳ１０４以降の処理を行うことで、縮小画像ｎ上において照合対象パターンを抽出した領域（第ｋの領域）に対応するマップ画像上における領域（第ｍの領域）を構成する各画素の確率値に対して、第ｋの領域を構成する各画素のうち位置的に対応する画素の確率値を加算する処理を行うことで、マップデータを更新することになる。
【００６６】
これによれば、本来顔である領域で起こる、隣接したパターンや大きさが微妙に異なるパターン等で重なってパターンが検出された場合には、確率値が順次加算されることになるので、マップデータにおいて比較的高い確率が得られる。また、本来顔でないパターンがたまたま顔として判別されるような場合には孤立して高い確率が出力されることがあるが、高い確率値が加算されることがないので、照合パターン走査後のマップデータにおいては比較的低い確率になる。
【００６７】
なお、以上の確率分布は全ての照合対象パターンについて算出する必要はなく、例えば、０以上の顔確率を出力した（顔パターンとして判別された）照合パターンについてのみ確率分布を生成するようにする。
【００６８】
図６は確率分布生成の様子を示す図である。Ａは顔パターンとして判別されたパターンを表し、Ｂは一つのパターンから生成される確率分布で暗いほど高い確率値を表す。また、Ｃはその確率分布を加算したマップデータを表す。
【００６９】
なお、顔確率マップの生成方法はこれに限らず、例えば図１３に示すように、照合の対象とする顔パターンが示す矩形Ｌ内部の画素の重みを１に、それ以外の部分を０として、対応する顔確率マップの画素に値を加算していく方法などがある。図１３の顔確率マップＢにおける数字は、重みを表す。この方法を用いた場合でも、本来顔である領域で起こる隣接したパターンや大きさが微妙に異なるパターン等で重なってパターンが検出された場合には、図１４（ｂ）に示すように確率値が順次加算され、代表顔パターンの画像Ａ内での位置は、顔確率マップＢにおいて比較的高い確率となるため、マップの値が最大となる領域あるいは、ある閾値以上の領域を指定することで、代表パターンを検出することが可能である。例えば、図１５において、マップの値が最大となる領域Ｑをとると、入力画像においてＰで示す矩形領域となる。
【００７０】
図２に戻って、全ての縮小画像について以上の処理を行った場合には処理をステップＳ１１４に進める。
【００７１】
ステップＳ１１４では、マップデータが示すマップ画像を構成する各画素の確率値を０〜１に正規化する（ステップＳ１１４）。例えば、マップ画像を構成する全ての画素の確率値を走査して最大値と最小値を求め、最大値が１、最小値が０になるように線形変換により正規化する。
【００７２】
そして、このようにして生成されたマップデータを用いて、ステップＳ１０１で取得した画像から代表パターンを検出する処理を行う（ステップＳ１１５）。
【００７３】
図７は、ステップＳ１１５における処理の詳細を示すフローチャートである。
【００７４】
先ず、ＲＡＭ２０２内、若しくは外部記憶装置２０７内に設けられている顔候補リスト格納部７０が保持するリストデータを読み出す（ステップＳ３０１）。次に、マップデータが示すマップ画像を構成する各画素の確率値を参照し、最も大きい確率値を有する画素位置を特定する処理を行う（ステップＳ３０２）。図８（ｂ）は、マップ画像の一例を示す図で、同図においてＡは最大の確率値を有する画素の位置を示している。なお、このマップ画像は、ステップＳ１０１で図８（ａ）に示す画像８０１が入力された場合に得られたものであるとする。
【００７５】
次に、ステップＳ３０３では以下のような処理を行う。先ず、リストデータに登録されている各位置（ステップＳ１０１で取得した画像上において顔パターンとおぼしき照合対象パターンの位置）を取得する。そして取得したそれぞれの位置のうち、ステップＳ３０２で特定した位置に最も近いものを選択する。選択した位置における照合対象パターンが代表パターンとなる。
【００７６】
ステップＳ３０３における処理を図８を用いて説明する。図８（ａ）において、リストデータに登録されている各位置のうちの１つをＢとする。また、この位置Ｂを中心とし、「位置Ｂとセットでリストデータに登録されているサイズ」を有する領域（即ち、位置Ｂにおける照合対象パターン）をＰとする。ここで、リストデータに登録されている位置のうち、この位置Ｂが、図８（ｂ）に示す位置Ａに最も近い場合（即ち、画像８０１と画像８０２とを同じサイズにして重ね合わせた場合に、位置Ｂが位置Ａに最も近い場合）、ステップＳ３０３では、この照合対象パターンＰが代表パターンとして選択されることになる。
【００７７】
図７に戻って、次に、マップデータを更新する処理を行う（ステップＳ３０４）。例えば、図８（ｂ）の場合、マップデータにおいて、マップ画像８０２上において照合対象パターンＰに対応する領域に相当するデータを０に設定する。図９は、マップ画像８０２に対してステップＳ３０４における処理を行った後のマップ画像の例を示す図である。
【００７８】
次に、選択した代表パターンの数が所定数となった場合、若しくは、ステップＳ３０４における更新後のマップデータを参照し、所定値以上の確率値を有する画素が存在しない場合には、本処理を終了するが、選択した代表パターンの数が所定数に達しておらず、且つ、ステップＳ３０４における更新後のマップデータを参照し、所定値以上の確率値を有する画素が存在する場合には処理をステップＳ３０５を介してステップＳ３０２に進め、以降の処理を繰り返す。
【００７９】
このような処理により、２つ目以降の代表パターンを選択する場合には、マップ画像において先に選択された照合対象パターンに対応する領域を避け、２番目に大きい確率値を有する画素位置を高速に検索することができる。
【００８０】
なお、ステップＳ３０５における判断処理で用いる判断条件についてはこれに限定するものではなく、選択する代表パターンの数を特に限定せず、ステップＳ３０５では、ステップＳ３０４における更新後のマップデータを参照し、所定値以上の確率値を有する画素が存在しない場合には本処理を終了し、ステップＳ３０４における更新後のマップデータを参照し、所定値以上の確率値を有する画素が存在する場合には処理をステップＳ３０２に進めるようにしても良い。
【００８１】
以上のようにして、代表パターンを選択することができるので、図２に戻って、次に、この代表パターンの画像データを出力する（ステップＳ１１６）。なお、出力する代表パターンについては、ステップＳ１０５における補正前のものであっても良いし、補正後のものであっても良い。
【００８２】
また、出力先については特に限定するものではないが、ＲＡＭ２０２内の所定のエリアであっても良いし、外部記憶装置２０７やＩ／Ｆ２０９を介してデータ通信可能な外部の装置であっても良い。
【００８３】
また、更新されたマップ画像は図９に示すようになるので、ステップＳ３０３による処理において代表パターンとして選択された照合対象パターンと、それ以前に代表パターンとして検出された照合対象パターンとを比較し、重なりが所定の面積以上ある場合には、代表パターンとして出力しないようにする、という処理も考えられ、これにより更に精度が高くなる。なお、この時、一旦代表パターンとして検出された領域に対してステップＳ３０４で更新処理を行うようにする。
【００８４】
また、前述した、ステップＳ１１５では、照合対象パターンの中心と最大確率値を有する画素との距離を利用する手法について説明したが、代表パターンを決定する手法はこれに限るものではない。例えば、マップ画像上で最大確率値を有する画素を中心とし、所定の閾値以上の値を持つ領域に内接する矩形パターンを代表パターンとしてもよい。
【００８５】
即ち、図８（ｂ）に示すようなマップ画像８０２において、位置Ａにおける画素が最大確率値を有する画素位置とした場合、図１０に示す如く、このマップ画像８０２において位置Ａを通り、且つｘ軸に平行な面Ｈにおける確率分布は、同図下段に示すグラフのようになる。この時、同図では、マップ画像８０２上で最大確率を有する画素の位置を中心とし、所定の閾値ｔｈ以上の確率値を有する領域に内接する矩形パターンのｘ軸と平行な辺の長さはｍとなる。
【００８６】
同様に、位置Ａを通り、且つｙ軸に平行な面Ｉにおける確率分布は、図１１に示すグラフのようになる。この時、同図では、所定の閾値ｔｈ以上の確率値を有する領域に内接する矩形パターンのｙ軸と平行な辺の長さはｎとなる。
【００８７】
このようにして、マップ画像８０２上で最大確率を有する画素位置を中心とし、所定の閾値以上の確率値を有する領域に内接する矩形パターンの各辺の長さが決まるので、図１２に示す如く、代表パターンＰとしてマップ画像８０２上に示す矩形Ｒと対応する入力画像（ステップＳ１０１で取得した画像）上の領域が検出される。
【００８８】
また、ここで抽出するパターンは矩形パターンに限らず、最大確率を有する画素位置Ａを中心とした円形のパターンとしてもよい。
【００８９】
［その他の実施形態］
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体（または記憶媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【００９０】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００９１】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００９２】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【００９３】
【図１】本発明の第１の実施形態に係る画像処理装置に適用可能なコンピュータの機能構成を示すブロック図である。
【図２】画像中に含まれている被写体を検出するための処理のフローチャートである。
【図３】本発明の第１の実施形態に係る画像処理装置に適用可能なコンピュータのハードウェア構成を示す図である。
【図４】様々なサイズの縮小画像について、照合対象パターンが顔パターンであるかを判別する処理を説明する図である。
【図５】所定領域内のパターンを識別する為のニューラル・ネットワークの動作について示した図である。
【図６】確率分布生成の様子を示す図である。
【図７】ステップＳ１１５における処理の詳細を示すフローチャートである。
【図８】ステップＳ１０１で取得した画像、マップ画像の一例を示す図である。
【図９】マップ画像８０２に対してステップＳ３０４における処理を行った後のマップ画像の例を示す図である。
【図１０】図８（ｂ）に示すようなマップ画像８０２において、位置Ａにおける画素が最大確率値を有する画素位置とした場合に、このマップ画像８０２において位置Ａを通り、且つｘ軸に平行な面Ｈにおける確率分布を示す図である。
【図１１】位置Ａを通り、且つｙ軸に平行な面Ｉにおける確率分布を示す図である。
【図１２】マップ画像８０２上に示す矩形Ｒと対応する入力画像上の領域を示す図である。
【図１３】顔確率マップの生成方法を説明する図である。
【図１４】顔確率マップの生成方法を説明する図である。
【図１５】顔確率マップの生成方法を説明する図である。
【図１】
2007025902.tif 000003
【図２】
2007025902.tif 000004
【図３】
2007025902.tif 000005
【図４】
2007025902.tif 000006
【図５】
2007025902.tif 000007
【図６】
2007025902.tif 000008
【図７】
2007025902.tif 000009
【図８】
2007025902.tif 000010
【図９】
2007025902.tif 000011
【図１０】
2007025902.tif 000012
【図１１】
2007025902.tif 000013
【図１２】
2007025902.tif 000014
【図１３】
2007025902.tif 000015
【図１４】
2007025902.tif 000016
【図１５】
2007025902.tif 000017