(57)【要約】【課題】  処理負荷の比較的重い画像検出処理を実行する前に、検出処理の実行対象となる領域を効率よく絞り込めるようにする。【解決手段】  顔パターンを検出しようとする画像中で、第１の図形内において肌色画素の比率が第１の閾値以下であると判定され（Ｓ９０８）、かつ第２の図形内において肌色画素の比率が第２の閾値以上であると判定された場合に（Ｓ９０９）、前記第１の図形の近傍を前記顔パターンが存在する可能性がある顔候補位置と判断する（Ｓ９１０）。顔候補位置を対象として顔検出を行う。【選択図】  図９
2008158774.tif 000002
【特許請求の範囲】
【請求項１】
画像中の第１の図形内において第１の属性を持つ画素の比率を判定する第１の比率判定工程と、
前記画像中の第２の図形内において第２の属性を持つ画素の比率を判定する第２の比率判定工程と、
前記第１及び第２の比率判定工程の判定結果に基づいて、前記第１の図形の近傍に予め定められたパターンが存在する可能性があるか否かを判断する判断工程と、
前記画像中で前記パターンが存在する可能性があると判断された部分を対象として当該パターンの検出を行う検出工程と
を有することを特徴とする画像処理方法。
【請求項２】
前記第１の比率判定工程では、前記第１の属性を持つ画素の比率が第１の範囲内であるかを判定することを特徴とする請求項１に記載の画像処理方法。
【請求項３】
前記第２の比率判定工程では、前記第２の属性を持つ画素の比率が第２の範囲内であるかを判定することを特徴とする請求項２に記載の画像処理方法。
【請求項４】
前記第１の図形と前記第２の図形とが、予め定められた位置関係にあることを特徴とする請求項１乃至３に記載の画像処理方法。
【請求項５】
前記第１及び第２の図形は、中心が一致した２つの回転対称な図形であることを特徴とする請求項４に記載の画像処理方法。
【請求項６】
前記画素の属性は、画素の色度または輝度、色相、彩度、明度であることを特徴とする請求項１乃至５に記載の画像処理方法。
【請求項７】
前記画像に対する累積画像を生成する生成工程を更に備え、前記第１及び第２の比率判定工程において、当該累積画像を用いて前記画素の比率を判定することを特徴とする請求項１乃至６に記載の画像処理方法。
【請求項８】
画像中の回転対称な図形を含む１つ以上の図形について、各図形内で予め定められた属性の画素の比率を判定する比率判定工程と、
前記比率判定工程の結果を基に前記図形の近傍に予め定められたパターンが存在する可能性があるか否かを判断する判断工程と、
前記画像中で前記パターンが存在する可能性があると判断された部分を対象として当該パターン及びそれを回転したパターンの検出を行う検出工程と
を有することを特徴とする画像処理方法。
【請求項９】
前記比率判定工程では、前記属性を持つ画素の比率が予め定められた範囲内であるかを判定することを特徴とする請求項８に記載の画像処理方法。
【請求項１０】
前記１つ以上の図形は、予め定められた位置関係にある２つ以上の図形であることを特徴とする請求項８または９に記載の画像処理方法。
【請求項１１】
前記１つ以上の図形は、中心点が一致した２つ以上の回転対称な図形であることを特徴とする請求項８乃至１０に記載の画像処理方法。
【請求項１２】
前記画素の属性は、画素の色度または輝度、色相、彩度、明度であることを特徴とする請求項８乃至１１に記載の画像処理方法。
【請求項１３】
前記画像に対する累積画像を生成する生成工程を更に備え、前記第１及び第２の比率判定工程において、当該累積画像を用いて前記画素の比率を判定することを特徴とする請求項８乃至１２に記載の画像処理方法。
【請求項１４】
画像中の第１の図形内において第１の属性を持つ画素の比率を判定する第１の比率判定手段と、
前記画像中の第２の図形内において第２の属性を持つ画素の比率を判定する第２の比率判定手段と、
前記第１及び第２の比率判定手段の判定結果に基づいて、前記第１の図形の近傍に予め定められたパターンが存在する可能性があるか否かを判断する判断手段と、
前記画像中で前記パターンが存在する可能性があると判断された部分を対象として当該パターンの検出を行う検出手段と
を有することを特徴とする画像処理装置。
【請求項１５】
画像中の回転対称な図形を含む１つ以上の図形について、各図形内で予め定められた属性の画素の比率を判定する比率判定手段と、
前記比率判定手段の結果を基に前記図形の近傍に予め定められたパターンが存在する可能性があるか否かを判断する判断手段と、
前記画像中で前記パターンが存在する可能性があると判断された部分を対象として当該パターン及びそれを回転したパターンの検出を行う検出手段と
を有することを特徴とする画像処理装置。
【請求項１６】
請求項１乃至１３に記載の画像処理方法をコンピュータに実行させることを特徴とするコンピュータ読み取り可能な画像処理プログラム。
【請求項１７】
請求項１６に記載の画像処理プログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像認識や画像変換などを行う画像処理装置、画像処理方法、プログラム及び記憶媒体に関するものである。
【背景技術】
【０００２】
画像に対して画像処理を施す場合、画像の一部に対してのみ処理を行うことがある。あるいは、画像の各領域に対してそれぞれ異なる処理を行う場合がある。いずれの場合にも、ある処理をどの領域に適用するべきかの判断が必要である。
【０００３】
多くのソフトウェア・アプリケーションは、この領域選択をユーザに任せている。例えば、Ｍｉｃｒｏｓｏｆｔ社のＰｈｏｔｏ  Ｅｄｉｔｏｒ（商標）という画像編集アプリケーションでは、ネガポジ反転などの画像処理を適用する前に、適用対象となる領域をマウスによって指定することができる。
【０００４】
あるいは、画像認識方法の中には、処理負荷のかかる認識処理を始める前に、処理負荷の軽いフィルタをかけて候補領域の絞り込みを行っているものがある。非特許文献１では、画像中の肌色領域を抽出して、連続する肌色領域の中心点を手の候補位置とし、その後に手の形状を得るための処理を行っている。
【０００５】
一方、肌色画素のある箇所を全て候補位置としているパターン認識方法もある（特許文献１参照）。この場合、候補位置を求めた後により精度の高いパターン検出を行っている。肌色画素を求める方法には様々なものがあるが、例えば非特許文献２にいくつか挙げられている。
【特許文献１】特開２００２−３１２７９６号公報
【非特許文献１】柳、柳生、徳田、北村、「手の動作と形状を用いたＨＭＭ手話認識」、２００４年電子情報通信学会総合大会講演論文集
【非特許文献２】Ｔｅｒｒｉｌｌｏｎ，Ｐｉｌｐｒ▲ｅ▼，Ｎｉｗａ，Ｙａｍａｍｏｔｏ，“Ａｎａｌｙｓｉｓ  ｏｆ  Ｈｕｍａｎ  Ｓｋｉｎ  Ｃｏｌｏｒ  Ｉｍａｇｅｓ  ｆｏｒ  ａ  Ｌａｒｇｅ  Ｓｅｔ  ｏｆ  Ｃｏｌｏｒ  Ｓｐａｃｅｓ  ａｎｄ  ｆｏｒ  Ｄｉｆｆｅｒｅｎｔ  Ｃａｍｅｒａ  Ｓｙｓｔｅｍｓ”，ＩＡＰＲ  Ｗｏｒｋｓｈｏｐ  ｏｎ  Ｍａｃｈｉｎｅ  Ｖｉｓｉｏｎ  Ａｐｐｌｉｃａｔｉｏｎｓ  （ＭＶＡ  ２００２）．
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記従来技術のようにユーザに画像処理の適用領域を指定させる方法は、ユーザの意向を反映したい多くの場合に有効であるが、画像認識のように自動的な検知が期待される場面においては相応しくない。
【０００７】
また、手などの検出を行う場面において、連続する肌色領域の中の１点のみを顔候補位置とすると、手を検出し損なう確率が高くなってしまう。なぜなら、自然画像には一般的に手以外の部分にも肌色の画素があり、もし手の回りに肌色の画素があれば、肌色の分布によっては候補点の位置がずれてしまうからである。
【０００８】
一方、肌色画素のある箇所全てを顔候補位置とすると、絞り込みが効果的に行われないことが多い。特に、肌色に該当する色一色の壁がある場合には、壁一面が顔候補位置となってしまう。そのため顔検出処理が頻繁に実行されることになり、処理速度の観点から好ましくない。
【０００９】
そこで、従来よりも効果的に候補絞り込み行うことのできる方法が望まれていた。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明によれば、画像処理方法に、画像中の第１の図形内において第１の属性を持つ画素の比率を判定する第１の比率判定工程と、前記画像中の第２の図形内において第２の属性を持つ画素の比率を判定する第２の比率判定工程と、前記第１及び第２の比率判定工程の判定結果に基づいて、前記第１の図形の近傍に予め定められたパターンが存在する可能性があるか否かを判断する判断工程と、前記画像中で前記パターンが存在する可能性があると判断された部分を対象として当該パターンの検出を行う検出工程とを備える。
【００１１】
また、本発明の他の態様によれば、画像処理方法に、画像中の回転対称な図形を含む１つ以上の図形について、各図形内で予め定められた属性の画素の比率を判定する比率判定工程と、前記比率判定工程の結果を基に前記図形の近傍に予め定められたパターンが存在する可能性があるか否かを判断する判断工程と、前記画像中で前記パターンが存在する可能性があると判断された部分を対象として当該パターン及びそれを回転したパターンの検出を行う検出工程とを備える。
【００１２】
また、本発明の他の態様によれば、画像処理装置に、画像中の第１の図形内において第１の属性を持つ画素の比率を判定する第１の比率判定手段と、前記画像中の第２の図形内において第２の属性を持つ画素の比率を判定する第２の比率判定手段と、前記第１及び第２の比率判定手段の判定結果に基づいて、前記第１の図形の近傍に予め定められたパターンが存在する可能性があるか否かを判断する判断手段と、前記画像中で前記パターンが存在する可能性があると判断された部分を対象として当該パターンの検出を行う検出手段とを備える。
【００１３】
また、本発明の他の態様によれば、画像処理装置に、画像中の回転対称な図形を含む１つ以上の図形について、各図形内で予め定められた属性の画素の比率を判定する比率判定手段と、前記比率判定手段の結果を基に前記図形の近傍に予め定められたパターンが存在する可能性があるか否かを判断する判断手段と、前記画像中で前記パターンが存在する可能性があると判断された部分を対象として当該パターン及びそれを回転したパターンの検出を行う検出手段とを備える。
【発明の効果】
【００１４】
本発明によれば、パターン検出の実行対象となる領域を効率よく絞り込めるという効果がある。
【発明を実施するための最良の形態】
【００１５】
以下、添付図面を参照しながら、本発明の実施形態を説明する。
【００１６】
（第１の実施の形態）
本発明の第１の実施形態では、データベースに収められている画像の中から顔を含むものを探し出す情報処理装置を示す。
【００１７】
図１は、第１の実施形態に係わる情報処理装置のハードウェア構成を表すブロック図である。同図において、ＣＰＵ（中央演算装置）１００は、本実施形態で説明する画像処理方法をプログラムに従って実行する。プログラムメモリ１０１は、ＣＰＵ１００により実行されるプログラムを記憶している。ＲＡＭ１０２は、ＣＰＵ１００によるプログラムの実行時に、各種情報を一時的に記憶するためのメモリを提供している。
【００１８】
ハードディスク１０３は、画像ファイルなどが保存されている。フラッシュメモリ１０５は、ＣＰＵ１００が情報を読み取ったり書き込んだりできるようになっている。フラッシュメモリ１０５は脱着可能となっており、ユーザが書き込まれた情報を持ち歩くことができるようになっている。バス１１０は、これら各部を接続し、データや制御信号を受け渡すために用いられる。尚、これ以外にもキーボードやポインティングデバイスなどの入力機器や、表示デバイスなどを備えていても良い。
【００１９】
図２は、第１の実施形態に係わる情報処理装置の機能構成を表すブロック図である。尚、これらの機能はＣＰＵ１００がプログラムを実行することにより実現される。ハードディスク１０３に保存された画像ファイルの中には、顔が写っているものもあれば、写っていないものもある。また、顔が写っている画像の中にも顔が傾いているものもあれば、傾いていないものもある。
【００２０】
それぞれの画像ファイルは画像読み込み部２０１によってＲＡＭ１０２に記憶される。顔検出部２０２は、ＲＡＭ１０２に書き込まれた画像に顔があるかどうかを検出する。画像書き込み部２０３は、ＲＡＭ１０２に書き込まれた画像をフラッシュメモリ１０５に書き込む。
【００２１】
図３は、図２に示す機能構成において、ハードディスク内の画像から顔を含む画像を選択してフラッシュメモリにコピーする処理の流れを示すフローチャートである。
【００２２】
まず、ステップＳ３００で、画像ポインタが最初の画像を指し示すように初期化する。画像ポインタは、ハードディスク１０３に保存してある画像ファイルを順に指し示す変数である。
【００２３】
次のステップＳ３０１で、ハードディスク１０３内に処理するべき画像が残っているかどうか確認し、残っている場合にはステップＳ３０３またはＳ３０５までのループを実行する。逆に、全ての画像の処理が終わった場合には、ループを抜けて処理を終了する。
【００２４】
次のステップＳ３０２では、その時点での画像ポインタが示す画像をＲＡＭ１０２に読み込む。そして、ステップＳ３０３で読み込んだ画像に顔が含まれているかどうかを判定する。判定の方法は後述する。ステップＳ３０３で画像に顔が含まれていないと判断された場合には、ループの先頭に戻ってステップＳ３０１を実行する。ステップＳ３０３で画像に顔が含まれていると判断された場合には、次のステップＳ３０４へと進む。
【００２５】
ステップＳ３０４では、ＲＡＭ１０２に読み込まれた画像をフラッシュメモリ１０５に書き込む。そして、ステップＳ３０５で画像ポインタを１つ進めて次の画像ファイルを指し示すようにする。ステップＳ３０５が実行されると再びループの先頭に戻ってステップＳ３０１を実行する。
【００２６】
図４は、図３のステップＳ３０３において顔検出を行う際のデータフロー図である。肌色抽出処理４０８では、ＲＡＭ１０２に読み込まれた画像４０１の各画素について肌色であるかどうかを判定して、２値画像である肌色マスク４０９を作成する。肌色抽出処理については非特許文献２に様々な方法が挙げられている。
【００２７】
スクリーニング４０２は、肌色マスク４０９を利用して画像４０１の中で顔のありそうな位置を拾い出す処理である。その結果を顔候補位置情報４０３に書き込む。スクリーニング４０２の詳細については後述する。また、顔候補位置情報４０３の内容については図６を用いて後述する。
【００２８】
顔検出処理４０４では、顔候補位置情報４０３に基づいて画像４０１上の該当箇所に顔が存在するかどうか判定される。そしてその結果が確度情報４０５に書き込まれる。確度情報４０５のフォーマットについても後述する。
【００２９】
１種類の検出処理で複数の傾きやサイズの顔を検出するために、画像４０１の回転・縮小４１０が行われる。その結果は、回転・縮小画像４１１として記憶される。顔検出処理４０４はこの回転・縮小画像４１１を使う。
【００３０】
検出判定処理４０６では、確度情報４０５を参照して画像４０１に顔が存在するかどうかを判定する。ある閾値を超える確度がある場合には、次の検出結果情報４０７として「あり」の情報を書き込み、なければ検出結果情報４０７として「なし」を書き込む。
【００３１】
以上のように本実施形態では、顔検出処理４０４の前に、スクリーニング処理４０２を置くことで、比較的計算負荷の重い顔検出処理４０４が実行される回数を削減している。
【００３２】
図５に、図４の顔候補位置情報４０３のフォーマットを概念図として示す。本実施形態では、顔検出部２０２が、０度、９０度、１８０度、２７０度の顔の傾きと、１倍、２倍、４倍の顔サイズに対応しているものとしている。ここで顔サイズが１倍とは最小顔サイズのことであり、実際には顔幅が例えば３０ピクセルといったことを指す。このとき、顔サイズが２倍とは顔幅が６０ピクセルという意味である。本明細書では具体的な顔サイズは発明の本質とは関係がないので、サイズ比が分かりやすいように、顔サイズを倍率で表すことにする。
【００３３】
画像４０１は参考のために描かれている。候補５００、５１０、５２０は顔候補位置情報４０３の内容を示したものである。それぞれ２値の２次元配列であり、ＲＡＭ１０２に展開される。それぞれの２次元配列上の１点は画像４０１上の１点に一対一対応しており、その１点の近傍領域に所定のサイズの顔がありそうかどうかを表している。つまり、図４の顔検出処理４０４をその領域において施す必要があるかどうかを表している。
【００３４】
候補５００は顔サイズが１倍である顔に関する候補位置情報であり、２次元配列の各要素に画像４０１の対応する領域にサイズが１倍の顔がありそうであるかどうかが格納される。例えば、１倍の候補位置情報５００上の１点（ｘ，ｙ）は、画像４０１上で（ｘ−ｓ／２，ｙ−ｓ／２）と（ｘ＋ｓ／２，ｙ＋ｓ／２）を対角線とする正方形内に１倍の顔がありそうかどうかを表す。ｓは任意の幅のことであり、運用するときに調整するパラメータである。
【００３５】
同じように、候補５１０はサイズが２倍である顔に関する候補位置情報であり、候補５２０はサイズが４倍の顔に関する候補位置情報である。この図では、サイズが２倍や４倍の顔に関する候補位置情報の寸法を、サイズが１倍の顔に関する候補位置情報の寸法の１／２倍や１／４倍にしている。これは、顔サイズが２倍の顔の位置が１ピクセルずれても、顔サイズが４倍の顔の位置が３ピクセルずれても、精度上大きな問題とはならないという判断から来ている。
【００３６】
そのため、図４のスクリーニング処理４０２において２倍の顔サイズについては１ピクセルおき、４倍の顔サイズについては３ピクセルおきにのみ、顔がありそうであるかどうか判定している。当然のことながら、より精度の高い位置情報を求めるために、全ピクセルについて判定しても良い。ここで重要なのは、それぞれの候補位置情報は顔の傾きによらないことである。つまり、０度、９０度、１８０度、２７０度の顔がありそうであるかどうかを一度に判定していることになる。
【００３７】
図６に、確度情報４０５のフォーマットを概念図として示す。画像４０１は参考のために描かれている。確度情報６００〜６２３が確度情報４０５の内容を示したものである。確度情報６００は傾きが０度で顔サイズが１倍である顔に関するものであり、２次元配列の各要素に画像４０１の対応する領域に傾きが０度でサイズが１倍の顔がある確度が格納される。
【００３８】
同じように、確度情報６０１は傾きが９０度でサイズが１倍である顔に関するものであり、確度情報６０２は傾きが１８０度でサイズが１倍の顔に関し、確度情報６０３は傾きが２７０度でサイズが１倍の顔に関する。確度情報６１０は傾きが０度でサイズが２倍の顔に関し、確度情報６１１は傾きが９０度でサイズが２倍の顔に関し、確度情報６２２は傾きが１８０度でサイズが４倍の顔に関する。確度情報６１２、６１３、６２０、６２１、６２３についても同様である。
【００３９】
この図では、サイズが２倍や４倍の顔に関する確度情報の寸法を、サイズが１倍の顔に関する確度情報の寸法の１／２倍や１／４倍にしている。これは、画像４０１を縮小することによってサイズが２倍や４倍の顔を同じ識別器を使って識別しているためである。本実施形態では、縮小された画像が投入されると識別器はその分寸法の小さい確度情報を出力する。
【００４０】
確度情報６００から６２３まではそれぞれ２次元配列であり、ＲＡＭ１０２に展開される。それぞれの２次元配列上の１点は画像４０１上の領域に対応しており、その領域に所定の傾き・サイズの顔がある確度を表している。例えば、０度１倍の確度情報６００上の１点（ｘ，ｙ）は、画像４０１上で（ｘ−ｗ／２，ｙ−ｈ／２）と（ｘ＋ｗ／２，ｙ＋ｈ／２）を対角線とする長方形内に０度１倍の顔がある確度を表す。ここでｗはサイズ１倍の顔幅のことであり、ｈはサイズ１倍の顔高さのことである。
【００４１】
また、９０度ｎ倍の確度情報上の１点（ｘ，ｙ）は、画像４０１上で（ｎ（ｙ−ｈ／２），Ｈ−ｎ（ｘ＋ｗ／２））と（ｎ（ｙ＋ｈ／２），Ｈ−ｎ（ｘ−ｗ／２））を対角線とする長方形内に９０度ｎ倍の顔がある確度を表す。ここで、Ｗは画像４０１の幅、Ｈは高さである。同じように、１８０度ｎ倍の確度情報上の１点（ｘ，ｙ）は、画像４０１上で（Ｗ−ｎ（ｘ＋ｗ／２），Ｈ−ｎ（ｙ＋ｈ／２））と（Ｗ−ｎ（ｘ−ｗ／２），Ｈ−ｎ（ｙ−ｈ／２））を対角線とする長方形内に１８０度ｎ倍の顔がある確度を表す。２７０度ｎ倍の場合も同様である。
【００４２】
スクリーニング４０２の詳細を説明する前に、まず累積画像の考え方について述べる。ここで累積画像と呼んでいるのは、Ｃｒｏｗがｓｕｍｍｅｄ−ａｒｅａ  ｔａｂｌｅ（Ｃｒｏｗ，“Ｓｕｍｍｅｄ−Ａｒｅａ  Ｔａｂｌｅｓ  Ｆｏｒ  Ｔｅｘｔｕｒｅ  Ｍａｐｐｉｎｇ”，Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ，Ｖｏｌ．１８，Ｎｏ．３，１９８４）として紹介したものを２値画像に適用したものである。１点（ｘ，ｙ）での２値画像の値をＩ（ｘ，ｙ）としたとき、１点（ｘ，ｙ）での累積画像の値Ｓ（ｘ，ｙ）は次の式で表される。
【００４３】
【数１】
2008158774.tif 000003
【００４４】
ただし、ｘ＜０またはｙ＜０のときＳ（ｘ，ｙ）＝０とする。このように累積画像を定義すると、（ｘ０，ｙ０）を左上の頂点、（ｘ１，ｙ１）を右下の頂点とする２値画像上の長方形内の１の個数Ｓ（ｘ０，ｙ０；ｘ１，ｙ１）は、次の式で表される。
【００４５】
Ｓ（ｘ０，ｙ０；ｘ１，ｙ１）＝Ｓ（ｘ０−１，ｙ０−１）−Ｓ（ｘ０−１，ｙ１）−Ｓ（ｘ１，ｙ０−１）＋Ｓ（ｘ１，ｙ１）  （２）
累積画像を予め用意しておくと、任意の長方形内の１の個数が累積画像内の４点を参照するだけで求められる。
【００４６】
次にスクリーニング４０２について詳述する。スクリーニングにおける基本的な考え方を図７に図示した。画像内の顔について、図７のように目を含む大矩形７０１と、目や鼻孔を含まない小矩形７０２とを用意する。すると、大矩形７０１内には肌色でない画素が含まれており、小矩形７０２内はほとんど肌色であることが期待できる。ここで、大矩形７０１と小矩形７０２は中心の一致する正方形とする。
【００４７】
例えば大矩形７０１内の肌色画素比率がｔＬ以下、小矩形７０２内の肌色画素比率がｔＳ以上という条件で、肌色マスク４０９を走査する。例えば、ｔＬ＝０．７、ｔＳ＝０．９とする。すると、条件を満たすところに顔の候補位置が得られる。スクリーニング４０２は以上のような考え方のもとで設計されている。
【００４８】
図８は、スクリーニング４０２の詳細を表すデータフロー図である。まず累積画像生成処理８０１にて、肌色マスク４０９から式（１）の定義に従って累積画像９０２を生成する。次に、矩形内密度判定処理８０３で累積画像８０２を使って矩形内の肌色画素の密度（比率）を調べ、その結果を顔候補位置情報４０３に書き込む。矩形内密度判定８０３の詳細については次に説明する。
【００４９】
図９は、スクリーニング４０２の処理手順を表したフローチャートである。まず、ステップＳ９０１で累積画像の定義式（１）を使って累積画像を生成する。累積画像は１枚のみで充分である。次にステップＳ９０２からＳ９０３までのループに入る。このループは各顔サイズについてｎに値を設定してループを繰り返す。本実施形態では、ｎに１や２や４の値を設定する。これらの値は検出すべき顔サイズによって調整しなければならないことは言うまでもない。
【００５０】
次に、ループの先頭のステップＳ９０４で、顔候補位置情報４０３のための記憶領域を確保する。顔候補位置情報４０３の内容については図５を用いて説明した。そして、ステップＳ９０５で顔候補位置情報を０で初期化する。次に顔候補位置情報４０３の各点についてステップＳ９０６からＳ９０７までのループを繰り返す。
【００５１】
ここで、大矩形の幅・高さをＳＬ、小矩形の幅・高さをＳＳとすると、顔候補位置情報上の点（ｘ，ｙ）に対応する画像４０１上の大矩形は（ｎ（ｘ−ＳＬ／２），ｎ（ｙ−ＳＬ／２））と（ｎ（ｘ＋ＳＬ／２），ｎ（ｙ＋ＳＬ／２））を結ぶ線分を対角線とする正方形である。また、点（ｘ，ｙ）に対応する画像４０１上の小矩形は（ｎ（ｘ−ＳＳ／２），ｎ（ｙ−ＳＳ／２））と（ｎ（ｘ＋ＳＳ／２），ｎ（ｙ＋ＳＳ／２））を結ぶ線分を対角線とする正方形である。これら矩形内の肌色画素の数は上述した式（２）より求まる。
【００５２】
ステップＳ９０８では、大矩形内の肌色画素の比率が７割以下であるかどうかの判定が行われる。次のステップＳ９０９では、小矩形内の肌色画素の比率が９割以上であるかどうかの判定が行われる。これら両方の条件が満たされると、ステップＳ９１０で顔候補位置情報４０３の点（ｘ，ｙ）に１が書き込まれる。以上のようにして、スクリーニング４０２では顔候補位置の絞り込みが行われ、結果が顔候補位置情報４０３に書き込まれる。
【００５３】
顔検出処理４０４では、作成された顔候補位置情報４０３上で１が書き込まれている箇所に対して、画像４０１上の対応する点の近傍に顔があるかどうかを判別する。この判別には、回転・縮小画像４１１を利用する。例えば、ｒ度ｎ倍の確度情報における点（ｘ，ｙ）の値が１の場合、回転・縮小処理４１０では画像４０１をｒ度回転させ１／ｎ倍に縮小する。顔検出処理４０４は、回転・縮小処理４１０の結果得られた回転・縮小画像４１１上の（ｘ−ｗ／２，ｙ−ｗ／２）と（ｘ＋ｗ／２，ｙ＋ｗ／２）を結ぶ線分を対角線とする矩形内に、顔があるかどうか判別する。その結果は確度情報４０５に書き込まれる。
【００５４】
顔検出処理４０４を実現するのには様々な方法がある。例えば、「選択的モジュール起動を用いたＣｏｎｖｏｌｕｔｉｏｎａｌ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋｓ  による変動にロバストな顔検出システム」、御手洗裕輔、森克彦、真継優和、第２回情報科学技術フォーラム、２００３）に提案されたニューラルネットワークがある。
【００５５】
以上、本実施形態の構成によれば、肌色抽出により生成された肌色マスク上で２つの矩形内にある肌色画素の密度を調べることによって、高速に顔候補領域を絞り込むことができる。その結果、続く顔検出処理の実行が抑えられ、全体的な処理速度の向上させることができる。
【００５６】
また、２つの矩形として正方形を使い、中心点を合わせることによって、複数の傾きの顔候補位置を１回の走査によって絞り込むことができ、更なる処理の高速化を図ることができる。また、肌色画素の密度を計算する際に累積画像を使用することによって、密度計算の処理の高速化を図っている。
【００５７】
本実施形態では、０度、９０度、１８０度、２７０度の顔の傾きに対応する情報処理装置を示したが、その内の１つの傾きにのみ対応すればよい場合には、スクリーニング処理の図形に対する制約を緩和することができる。具体的には、それぞれ４回回転対称な図形である必要がなく、長方形あるいは他の多角形や楕円などを使用できる。また、それぞれの図形の中心点を合わせる必要もない。
【００５８】
上記実施形態では、スクリーニング処理において、肌色画素比率を用いるようにしたが、画素の比率を計算する対象の属性値としては、色度、輝度、色相、彩度、明度などを用いるようにしてもよい。
【００５９】
［実施形態２］
本発明の第２の実施形態は、指定された２値画像に対して文字認識を行い、画像中の１文字の文字コードをメモリ上に格納する情報処理装置である。本実施形態に係わる情報処理装置のハードウェア構成は、図１からフラッシュメモリ１０５を除いたものとする。あるいは実施形態１と同様、図１に示したものとしてもよい。実施形態２では、ＲＡＭ１０２に文字認識の結果も格納される点で実施形態１と異なっている。
【００６０】
図１１は、本実施形態に係わる情報処理装置の機能構成を説明するブロック図である。尚、これらの機能はＣＰＵ１００がプログラムを実行することにより実現される。ハードディスク１０３に保存されている画像ファイルの中には文字が写っているものもあれば、写っていないものもある。それぞれの画像ファイルは画像読み込み部２０１によってＲＡＭ１０２に記憶される。文字識別部１００１では、ＲＡＭ１０２に書き込まれた画像に文字があればその文字を識別する。そして、識別結果をＲＡＭ１０２の所定のアドレスに書き込む。
【００６１】
図１１は、ＲＡＭ１０２のメモリ構成を表す図である。領域１１０１には、本情報処理装置のオペレーティングシステム（ＯＳ）が置かれる。領域１１０２には、本実施形態のプログラムが置かれる。領域１１０３には、文字識別部１００１が識別結果を書き込む。領域１１０４には、画像読み込み部２０１が画像を書き込む。領域１１０５は、上記以外の目的のために使用される。また、領域１１０６は未使用の領域である。
【００６２】
実際の装置においては、オペレーティングシステムの仕様により、上記領域の順番は図の通りにならないことがある。また、図中の各領域の大きさは実際のメモリ領域の大きさを反映していない。
【００６３】
図１２は、文字識別部１００１において文字識別を行う際のデータフロー図である。２値画像１２０１は、ＲＡＭ１０２に記憶されており、２値画像の各要素の値として０または１を取りうる。以降、２値画像上で１の値を文字色と呼ぶことにする。ただし、逆に０の方を文字色と呼んだとしても同様の効果が得られる。
【００６４】
文字種スクリーニング１２０２は、画像１２０１の中から文字のありそうな位置を拾い出し、その種類を大まかに分類する。文字種スクリーニングの詳細については後述する。文字種スクリーニング１２０２の結果は、文字候補情報１２０５に書き込まれ、文字識別処理１２０３が受ける。
【００６５】
文字識別処理１２０３では、文字種スクリーニング１２０２の結果を利用して２値画像１２０１上の該当場所にある文字の種類が判定される。もし文字が識別されればその結果が文字コード情報１２０４に書き込まれる。文字識別処理１２０３で文字が検出されなかった場合には、文字コード情報１２０４に０が書き込まれる。
【００６６】
以上のように本実施形態では、文字識別処理１２０３の前に、文字種スクリーニング処理１２０２を置くことで、比較的計算負荷の重い文字識別処理１２０３が実行される回数を削減する。また、文字種スクリーニング１２０２においてある程度の文字種の絞り込みを行うことによって、文字識別処理１２０３で最適な識別を行う。
【００６７】
次に、文字種スクリーニング処理１２０２について詳述する。文字種スクリーニングにおける基本的な考え方を図１３を用いて説明する。一般的な文字において、文字に外接する矩形内の文字色の画素数は特定の範囲内にあると期待できる。また、図１３のように文字領域を分割すると、ある文字に対しては、領域毎に文字色の画素数がそれぞれ特定の範囲内にあることが期待できる。そこで、文字を覆う矩形を複数用意する。
【００６８】
各矩形内の画素数の分布から、その分布に応じた文字識別処理を選択して実行すれば、その分布に特化した識別処理を行うことができる。これによって、個々の識別処理に対する学習負荷を軽減することができ、より精度の高い識別が行える。
【００６９】
本実施形態では図１４に並べた灰色の矩形１４００〜１４０８を用いる。この図では重複関係を明確にするために９個の矩形を別個に並べたが、実際には太い枠を合わせて重ねて矩形１４１０のように配置される。ここに挙げた矩形はあくまでも例である。漢字あるいは英字など識別したい文字種に応じて最適な矩形の選択は変更する必要がある。
【００７０】
また、誤解のないように書くが、ここで「文字種」と呼ぶのは特定の一文字のことではなく、文字の集合のことである。つまり、複数の文字をまとめて文字種と呼んでいる。ただし、その集合に１種類の文字しか含まないことはありうる。
【００７１】
文字種スクリーニング１２０２における文字種は２値のベクトルとして表す。ここで、各矩形１４００〜１４０８に対して閾値ｔ０〜ｔ８を定義する。そして、各矩形内にある文字色の画素数が対応する閾値を超えていれば１、そうでなければ０を矩形に割り当てる。これら０と１の数字を並べたベクトルが文字種を表す。
【００７２】
例えば、矩形１４００内の全画素数Ｐ＝４００とし、各矩形の閾値としてｔ０＝１３２，ｔ１＝２８，ｔ２＝９６，ｔ３＝９６，ｔ４＝２８，ｔ５＝９６，ｔ６＝２８，ｔ７＝９６，ｔ８＝２８とする。識別したい画像上の各矩形１４００〜１４０８における文字色の画素数がそれぞれｃ０＝１３２，ｃ１＝４４，ｃ２＝８８，ｃ３＝８８，ｃ４＝４４，ｃ５＝８８，ｃ６＝４４，ｃ７＝８８，ｃ８＝４４であるとする。その場合、文字種を表すベクトルは（０，１，０，０，１，０，１，０，１）となる。図１２の文字候補情報１２０５は、２値画像１２０１の各点（ｘ，ｙ）における文字種ベクトルを配列の（ｘ，ｙ）要素とした２次元配列である。
【００７３】
図１５は、文字種スクリーニング処理１２０２の処理を表したフローチャートである。まず、矩形１４００を０番目の矩形、矩形１４０１を１番目の矩形、矩形１４０２を２番目の矩形とし、矩形１４０３〜１４０８も同様とする。そして、矩形１４００の左上点からの相対座標で、ｉ番目の矩形の左上点を（ｘｉ０，ｙｉ０）、右下点を（ｘｉ１，ｙｉ１）とする。
【００７４】
文字種スクリーニング１２０２の実行はステップＳ１５０１から１５０２までのループで始まる。このループでは、図１２の２値画像１２０１内の各点（ｘ，ｙ）に対して、ループ内の実行を繰り返す。このループ内では更にステップＳ１５０３からステップＳ１５０４までのループを実行する。このループでは、変数ｉを０から８まで増加させながら次のステップＳ１５０５やステップＳ１５０６やステップＳ１５０７を繰り返す。
【００７５】
ステップＳ１５０５では、（ｘ＋ｘｉ０，ｙ＋ｙｉ０）と（ｘ＋ｘｉ１，ｙ＋ｙｉ１）を結ぶ線分を対角線とするｉ番目の矩形内にある文字色の画素数ｃｉを調べ、これがｔｉ以下かどうかを調べる。ｔｉ以下であればステップＳ１５０６へ進み、変数ｖｉに０を代入する。ｔｉより多ければステップＳ１５０７へ進み、変数ｖｉに１を代入する。
【００７６】
ステップＳ１５０１から１５０２までのループの実行を終えると、ステップＳ１５０８ではｖｉ（ｉ＝０〜８）を並べたベクトルｖを作成し、これを文字種とする。そして、最後のステップＳ１５０９では、文字候補情報１２０５の（ｘ，ｙ）要素にステップＳ１５０８で求めたベクトルｖを代入する。
【００７７】
図１６に、文字識別処理１２０３のフローチャートを示す。まず、文字候補情報１２０５の各要素（ｘ，ｙ）に対してステップＳ１６０１からステップＳ１６０２までのループを繰り返す。ステップＳ１６０３では文字候補情報１２０５の（ｘ，ｙ）要素を変数ｖに代入する。次のステップＳ１６０４では、変数ｖに対応する識別器を選択する。
【００７８】
このステップＳ１６０４は、図１７に示すような、ｖの５１２通りの値に対して識別器の識別子を並べたルックアップテーブルなどを参照して、識別器を選択することで実現できる。ここで、左側の９列は文字種ベクトルの値を示し、その右側に対応する識別器の識別子が記入されている。識別器として「なし」が指定されている場合には対応する有効な識別器がないことを示している。
【００７９】
ステップＳ１６０９では、ステップＳ１６０４で選択された識別器の識別子が「なし」かどうかを判断する。「なし」である場合には、有効な識別器がないので、識別を実行せずにステップＳ１６０１からステップＳ１６０２までのループを継続する。ステップＳ１６０９で識別器の識別子が「なし」でないと判断された場合は、ステップＳ１６０５へと進む。ステップＳ１６０５では、２値画像１２０１の（ｘ，ｙ）と（ｘ＋ｘ０１，ｙ＋ｙ０１）を対角線とする矩形内の画像に対して、ステップＳ１６０４で選択された識別器により文字識別を実行する。
【００８０】
そして、ステップＳ１６０６で、実行された識別によって文字が識別できたかを判定する。文字の識別に成功した場合は、ステップＳ１６０１からステップＳ１６０２までのループを抜け、ステップＳ１６０７へと進む。ステップＳ１６０７では、識別器によって検出された文字の文字コードを文字コード情報１２０４に代入する。一方、ステップＳ１６０６で文字が識別できなかったと判断された場合には、ステップＳ１６０１からステップＳ１６０２までのループを継続する。
【００８１】
文字候補情報１２０５の全ての点で文字が識別できなかった場合には、ステップＳ１６０８で文字コード情報１２０４に０が代入される。ステップＳ１６０５で使用する識別器としては、例えば一般的な多層ニューラルネットワークなどを利用できる。また、その学習にはバック  プロパゲーション（誤差逆伝播）法などが利用できる。あるいは、サポート  ベクター  マシン（ＳＶＭ）など他のパターン認識手法が利用できる。
【００８２】
いずれにしても、文字種ベクトル毎に異なる識別器を用意することで、認識性能を向上させることができる。なぜなら、それぞれの識別器は同じ文字種ベクトルで表される文字だけを学習すればよいからである。これによって、各識別器は限られた特徴空間内のパターンのみを学習すればよいことになり、個々の識別器における学習負荷が軽減される。
【００８３】
ここで「異なる識別器」と呼ぶのは、それぞれ異なる手法の識別器であっても、同じ手法でパラメータが異なる識別器であっても良い。あるいは、図１７に示したように、複数の文字種ベクトルで同じ識別器を使うことも可能である。
【００８４】
以上、本実施形態の構成によれば、所定の配置関係にある図形内の文字色の画素数を調べることによって、文字候補位置を絞り込むことができる。その結果、続く文字識別処理の実行が抑えられ、全体的な処理速度を向上させることができる。
【００８５】
また、各図形内の文字色の画素数の分布を調べることによって、文字識別処理を切り替えることができ、識別精度の向上を図っている。本実施形態では、文字の大きさを一定と仮定しているが、第１の実施形態のように２値画像を縮小すれば様々な大きさに文字にも対応できる。
【００８６】
本発明は、コンピュータが読出したプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳなどが実際の処理の一部または全部を行ない、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【００８７】
さらに、記憶媒体から読出され、機能拡張ボードや機能拡張ユニットに備わるメモリに書込まれたプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵの処理によって前述した実施形態の機能が実現される場合も含まれる。
【００８８】
ここで、プログラムコードを供給するための記憶媒体としては、例えば、フロッピー（登録商標）ディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ、ＤＶＤ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【００８９】
さらに、画像入力装置、情報蓄積機器、またこれらが複合または接続された装置において、両方またはいずれかの装置に備わるＣＰＵなどが実際の処理の一部または全部を行なうことで前述した実施形態の機能が実現される場合も含まれる。
【００９０】
上記画像入力装置としては、ビデオカメラ、デジタルカメラ、監視カメラなど各種ＣＣＤを利用したカメラやスキャナ、アナログ画像入力装置からＡＤ変換によりデジタル画像に変換された画像入力装置が利用できる。上記情報蓄積機器としては、外部ハードディスク、ビデオレコーダなどが利用できる。
【図面の簡単な説明】
【００９１】
【図１】第１の実施形態に係わる情報処理装置のハードウェア構成を表すブロック図である。
【図２】第１の実施形態に係わる情報処理装置の機能構成を表すブロック図である。
【図３】顔を含む画像を選択してコピーする処理の流れを示すフローチャートである。
【図４】顔検出を行う際のデータフローを表す図である。
【図５】顔候補位置情報のフォーマットを示す図である。
【図６】確度情報のフォーマットを示す図である。
【図７】スクリーニングにおける大矩形と小矩形の関係を表した図である。
【図８】スクリーニングの詳細データフローを表す図である。
【図９】スクリーニングの処理手順を表したフローチャートである。
【図１０】第２の実施形態に係わる情報処理装置の機能構成を説明するブロック図である。
【図１１】ＲＡＭのメモリマップ構成を表す図である。
【図１２】文字識別を行う際のデータフローを表す図である。
【図１３】文字種スクリーニングの考え方を示した図である。
【図１４】第２の実施形態で使う矩形を並べた図である。
【図１５】文字種スクリーニング処理手順を表したフローチャートである。
【図１６】文字識別処理手順を表したフローチャートである。
【図１７】文字識別処理手順で参照するルックアップテーブルを示す図である。
【符号の説明】
【００９２】
１００  ＣＰＵ
１０１  プログラムメモリ
１０２  ＲＡＭ
１０３  画像データベース
１０５  フラッシュメモリ
１１０  バス
【図１】
2008158774.tif 000004
【図２】
2008158774.tif 000005
【図３】
2008158774.tif 000006
【図４】
2008158774.tif 000007
【図５】
2008158774.tif 000008
【図６】
2008158774.tif 000009
【図７】
2008158774.tif 000010
【図８】
2008158774.tif 000011
【図９】
2008158774.tif 000012
【図１０】
2008158774.tif 000013
【図１１】
2008158774.tif 000014
【図１２】
2008158774.tif 000015
【図１３】
2008158774.tif 000016
【図１４】
2008158774.tif 000017
【図１５】
2008158774.tif 000018
【図１６】
2008158774.tif 000019
【図１７】
2008158774.tif 000020