(57)【要約】【課題】オブジェクト検出処理における検出時間を短縮する。【解決手段】画像データＤ１から取得した窓画像データＷＤを９０°おきに回転させ、回転させた各窓画像データに対し複数の判定器Ｊ１〜Ｊｎで判定を行い、判定器Ｊ１〜Ｊｎの全てで正判定した場合に窓画像データＷＤにオブジェクトありと判断するにあたり、回転させた各窓画像データに対しまとめて判定処理を行う関数と出力値とが対応付けられた関数テーブルを備えさせ、画像データＤ１から取得される窓画像データの回転角度組合せに対し、前記判定器の１つで判定する関数を前記関数テーブルを参照して設定し、組合せに含まれる各回転角度の窓画像データＷＤに対して関数で正否判定を行い、該正否判定で正判定された回転角度の組合せに対し次の判定器で判定を実行するための関数を前記関数テーブルを参照して設定する。【選択図】図１０
2009237754.tif 000002
【特許請求の範囲】
【請求項１】
対象画像から所定オブジェクト画像を検出するオブジェクト検出方法であって、
前記対象画像から取得した解析対象画像に前記所定オブジェクト画像が含まれるか否かを判定する複数の判定を行い、該複数の判定の全てで前記所定オブジェクト画像が含まれると判定された場合に、前記解析対象画像から前記所定オブジェクト画像を検出するにあたり、
前記複数の解析対象画像として、前記対象画像の所定位置において、所定の検出枠を複数の角度に回転させ、各角度において該検出枠が指定する範囲の前記対象画像を取得する取得工程と、
前記対象画像から取得される複数の解析対象画像の所定組合せに対し、前記判定の１つを実行するための判定ユニットを設定する設定工程と、
前記組合せに含まれる各解析対象画像に対して前記判定ユニットで判定を行う判定工程と、
前記判定工程において前記所定オブジェクト画像が含まれると判定された解析対象画像の組合せに対し未実行の判定を実行するための判定ユニットの設定を前記設定工程に指示する指示工程と、
を具備することを特徴とするオブジェクト検出方法。
【請求項２】
前記複数の解析対象画像の各組合せと、各組合せに対して所定の判定を実行するための判定ユニットとが対応付けられたテーブルを備え、
前記設定工程においては、前記テーブルに基づいて前記判定ユニットを設定する請求項１に記載のオブジェクト検出方法。
【請求項３】
対象画像から所定オブジェクト画像を検出するオブジェクト検出装置であって、
前記対象画像から取得した解析対象画像に前記所定オブジェクト画像が含まれるか否かを判定する複数の判定を行い、該複数の判定の全てで前記所定オブジェクト画像が含まれると判定された場合に、前記解析対象画像に前記所定オブジェクト画像が存在すると判断するにあたり、
前記対象画像から取得される複数の解析対象画像の所定組合せに対し、前記判定の１つを実行する判定ユニットを設定する設定手段と、
前記組合せに含まれる各解析対象画像に対して前記判定ユニットで判定を行う判定手段と、
前記判定手段において前記所定オブジェクト画像が含まれると判定された解析対象画像の組合せに対し未実行の判定を実行するための判定ユニットの設定を前記設定手段に指示する指示手段と、
を具備することを特徴とするオブジェクト検出装置。
【請求項４】
入力された画像データの画像から前記所定オブジェクト画像を検出し、検出された所定オブジェクト画像に基づいて前記画像データに画質調整処理を行い、画質調整後の画像データを印刷する印刷装置である請求項３に記載のオブジェクト検出装置。
【請求項５】
対象画像から所定オブジェクト画像を検出する機能をコンピュータに実現させるためのオブジェクト検出プログラムであって、
前記対象画像から取得した解析対象画像に前記所定オブジェクト画像が含まれるか否かを判定する複数の判定を行い、該複数の判定の全てで前記所定オブジェクト画像が含まれると判定された場合に、前記解析対象画像に前記所定オブジェクト画像が存在すると判断するにあたり、
前記対象画像から取得される複数の解析対象画像の所定組合せに対し、前記判定の１つを実行する判定ユニットを設定する設定機能と、
前記組合せに含まれる各解析対象画像に対して前記判定ユニットで判定を行う判定機能と、
前記判定機能において前記所定オブジェクト画像が含まれると判定された解析対象画像の組合せに対し未実行の判定を実行するための判定ユニットの設定を前記設定機能に指示する指示機能と、
をコンピュータに実現させるためのオブジェクト検出プログラム。
【請求項６】
対象画像から所定オブジェクト画像を検出する機能をコンピュータに実現させるためのオブジェクト検出プログラムを記録した記録媒体であって、
前記対象画像から取得した解析対象画像に前記所定オブジェクト画像が含まれるか否かを判定する複数の判定を行い、該複数の判定の全てで前記所定オブジェクト画像が含まれると判定された場合に、前記解析対象画像に前記所定オブジェクト画像が存在すると判断するにあたり、
前記対象画像から取得される複数の解析対象画像の所定組合せに対し、前記判定の１つを実行する判定ユニットを設定する設定機能と、
前記組合せに含まれる各解析対象画像に対して前記判定ユニットで判定を行う判定機能と、
前記判定機能において前記所定オブジェクト画像が含まれると判定された解析対象画像の組合せに対し未実行の判定を実行するための判定ユニットの設定を前記設定機能に指示する指示機能と、
をコンピュータに実現させるためのオブジェクト検出プログラムを記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オブジェクト検出方法、オブジェクト検出装置、印刷装置、オブジェクト検出プログラムおよびオブジェクト検出プログラムを記録した記録媒体に関し、特に、対象画像から所定オブジェクト画像を検出するオブジェクト検出方法、オブジェクト検出装置、印刷装置、オブジェクト検出プログラムおよびオブジェクト検出プログラムを記録した記録媒体に関する。
【背景技術】
【０００２】
デジタルカメラの普及と家庭用プリンタの印刷品質向上に伴い、家庭でデジタル画像を印刷する機会が増えている。特に家庭で印刷されるデジタル画像は、デジタルカメラで撮影されたデジタル写真が多い。デジタル写真は光学的に取得されたデータであるため、そのまま印刷すると、実際に目で見た映像と違うと感じるユーザが多いことが知られている。そこで、印刷前に写真データに画質調整を行い、ユーザの意図した印刷結果を得られるような画像データへの変換が行われている。無論、プリンタのみならず、デジタル画像を表示する機器としてのデジタルカメラやフォトビューワ等であっても、画像表示の際に画像データに対して画質調整を行い、表示結果がユーザにとって好ましい表示となるような画像データへの変換が行われることがある。
【０００３】
これら画像データの変換を適切に実行するためには、デジタル画像を解析し、デジタル画像の種類（人物写真、風景写真、ドキュメント等）判別を行ったり、デジタル画像に含まれるオブジェクト（人物の顔、山、海、建物、車両等）の位置を特定したりする必要がある。特許文献１には、画質調整の種類や画質調整適用部位の選択に利用して好適な、顔検出処理について記載されている。
【特許文献１】特開２００７−４８１０８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
近年では、コンピュータを介さずに画像データをメモリカードやＵＳＢメモリなどから直接プリンタが取得し、取得した画像データの印刷を行うダイレクトプリンタが増えつつある。コンピュータ経由で画像入力されるプリンタであれば、コンピュータで画質調整済みの画像データを入力すればよいが、ダイレクトプリンタでは、自機内で前述の画像種類判別処理やオブジェクト位置特定処理を行って適切な画質調整を選択しなければならない。しかしながら、汎用的なコンピュータに比べて家庭用プリンタの処理能力は低く、処理を効率化が望まれていた。このような実状は、デジタル写真を扱うデジタルカメラやフォトビューワ等でも同様である。
【０００５】
本発明は、前記課題に鑑みてなされたもので、オブジェクト検出処理における検出時間を短縮可能なオブジェクト検出方法、オブジェクト検出装置、印刷装置、オブジェクト検出プログラムおよびオブジェクト検出プログラムを記録した記録媒体の提供を目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明のオブジェクト検出方法は、対象画像からオブジェクトを検出するオブジェクト検出方法であって、取得工程と、設定工程と、判定工程と、指示工程とを備える構成としてある。
該構成においては、前記対象画像から取得した解析対象画像に前記所定オブジェクト画像が含まれるか否かを判定する複数の判定を行い、該複数の判定の全てで前記所定オブジェクト画像が含まれると判定された場合に、前記解析対象画像に前記所定オブジェクト画像が存在すると判断するにあたり、まず前記設定工程において、前記対象画像から前記取得工程において取得される複数の解析対象画像の所定組合せに対し、前記判定の１つを実行する判定ユニットを設定する。判定ユニットとは、複数の画像に対し個々に判定を行うのではなく、複数の画像に対し１つの判定をまとめて実行するユニットであり、例えば前記複数の解析対象画像を順次取得して各解析対象画像に対して順次判定を実行し、各解析対象画像に前記所定オブジェクト画像が含まれるか否かの判定を連続的に実行したり、前記複数の解析対象画像をまとめて取得してから、各解析対象画像に前記所定オブジェクト画像が含まれるか否かの判定をまとめて実行したりするものである。
そして判定工程において判定が行われると、前記複数の解析対象画像のいずれに前記所定オブジェクト画像が含まれるか（もしくは何れの解析対象画像にも前記所定オブジェクト画像が含まれなかったか）を示す判定結果が得られる。この判定結果は前記指示工程において利用される。すなわち該判定結果に基づいて、前記判定工程において前記所定オブジェクト画像が存在すると判定された解析対象画像の組合せを選択し、該選択された組合せに対して前記設定工程において未実行（判定ユニットとして未設定）の判定を実行するための判定ユニットの設定を前記設定工程に指示する。前記指示工程において指示されると、該指示に基づいて前記設定工程が実行される。以上の工程の結果、前記判定工程において前記所定オブジェクト画像が存在しないと判定された場合は、前記解析対象画像に前記所定オブジェクト画像を検出しないことになり、前記設定工程において未実行の判定が無くなった場合に前記解析対象画像に前記所定オブジェクト画像を検出することになる。
【０００７】
ところで、前記解析対象画像としては、前記対象画像から取得される画像であればいかなる画像であってもよく、例えば、前記対象画像の複数部位から取得された部分画像や、前記対象画像の所定部位を他の方向から観察した画像等が採用可能ある。後者の例では、画像を取得するにあたり、所定部位を含む範囲を指定しつつ該範囲を他の方向（例えば９０°、１８０°、２７０°回転させた方向）から観察した画像を取得する必要がある。このような場合に好適な一側面として、前記複数の解析対象画像として、前記対象画像の所定位置において、所定の検出枠を複数の角度に回転させ、各角度において該検出枠が指定する範囲の前記対象画像を取得する取得工程を備える構成としてもよい。
すなわち前記解析対象画像の所定位置で所定の検出枠を回転させて該検出枠にて指定される範囲の画像を解析対象画像とすることにより、他の方向から観測した画像が取得される。ここで前記検出枠とは、前記対象画像の所定範囲を検出領域として設定するものである。前記所定オブジェクト画像が回転対称性を持たない画像であれば、前記対象画像に対して指定される検出枠の位置とサイズとが決まっている場合、前記所定位置に含まれる前記所定オブジェクト画像は、必然的に前記複数の角度の何れか１つに限定されるはずである。よって、前記判定の何れかを順次実行する前記判定工程の早い段階で、前記所定オブジェクトが含まれると判定される解析対象画像が１つに絞られる可能性が高く、効率化の観点から極めて合理的な流れで判定を実行できる。
【０００８】
前記対象画像は、画像データであれば、点の集まりで表現されたビットマップデータでもよいし、所定の圧縮アルゴリズムで圧縮されたデータであってもよい。前記オブジェクトとは、対象画像に含まれる画像的特徴（顔、顔器官、マーキング等）である。前記解析対象画像とは、対象画像に基づいて作成される画像であり、対象画像の部分画像であったり、対象画像に所定の画像変換（回転、シフト、反転、画素数変換、色変換等）を行って作成された画像であったり、対象画像を他の角度から観察した画像であったりする。なお、対象画像の画像データから前記オブジェクトを検出する際は、画像データにおける変数（明度、彩度、色相等）の所定値、画像データにおける変数から算出された画像特徴量（コントラスト、勾配、標準偏差等）の所定値、変数や特徴量の所定の分布、等を画像的特徴として採用することになる。
前記判定は、大小比較や閾値判定等の２分された結果の一方に所望の結果が含まれる等の場合に、所望の結果を含む側を正判定し、含まない側を否判定とする判定である。複数の解析対象画像の組合せとは、異なる複数の解析対象画像の中から、重複した組合せを持たないように任意数を選択したものを意味する。すなわち、異なるｓ個の解析対象画像から異なるｔ個（ｓ＞ｔ）の解析対象画像を選んだ組合せである。前記未実行の判定とは、前記複数の判定のうち、前記解析対象画像に対し前記設定工程において未実行の判定である。なお、解析対象画像に対し複数の判定を行い、該複数の判定の全てで正判定した場合に、前記解析対象画像にオブジェクトありと判断する処理のように、複数の条件の全てが成立した場合に条件成立とする処理は、例えばカスケード処理が例示される。
【０００９】
本発明の選択的な一側面として、前記複数の解析対象画像の各組合せと、各組合せに対して所定の判定を実行するための判定ユニットとが対応付けられたテーブルを備え、前記設定工程においては、前記テーブルに基づいて前記判定ユニットを設定する構成としてもよい。すなわち、予め前記判定ユニットと前記組合せとを対応付けてテーブル化しておくことにより、前記設定工程における設定に要する時間を短縮可能になる。
【００１０】
前述したオブジェクト検出方法は、他の方法の一環として実施されたり各工程に対応する手段を備えたオブジェクト検出装置として実現されたりする等の各種の態様を含む。また、本発明は前記オブジェクト検出装置を備えるオブジェクト検出システム、前述した方法の構成に対応した機能をコンピュータに実現させるプログラム、該プログラムを記録したコンピュータ読み取り可能な記録媒体、等としても実現可能である。これらオブジェクト検出システム、オブジェクト検出装置、オブジェクト検出プログラム、該プログラムを記録した媒体、の発明も、前述した作用、効果を奏する。むろん、請求項２，３に記載した構成も、前記システムや前記装置や前記プログラムや前記記録媒体に適用可能である。
【発明を実施するための最良の形態】
【００１１】
以下、下記の順序に従って本発明の実施形態を説明する。
（１）オブジェクト検出装置の構成：
（２）画像処理の流れ：
（３）オブジェクト検出処理：
（４）変形例およびまとめ：
【００１２】
（１）オブジェクト検出装置の構成
図１は、本実施形態に係るオブジェクト検出装置を具体的に実現するプリンタの構成を示している。同図において、プリンタ１００は、ＣＰＵ１０とＲＡＭ１１とＲＯＭ１２と汎用インターフェイス（ＧＩＦ）１３とメモリカードインターフェース（ＭＩＦ）１４と印刷部１５と操作パネル１６と表示部１７とバス１８とから構成されている。バス１８はプリンタ１００を構成する各構成要素１０〜１７を相互通信可能に接続しており、図示しないチップセット等により通信が制御されている。ＲＯＭ１２には、ファームウェアを含む各種プログラムを実行するためのプログラムデータ１２ａ、が記憶されており、該プログラムデータ１２ａを適宜ＲＡＭ１１（所定量以下のデータを記憶可能な記憶媒体）に展開しつつＣＰＵ１０がプログラムに従った演算を実行することにより、プリンタ１００が制御される。また、ＲＯＭ１２には後述の関数テーブルＴも記憶されている。
【００１３】
ＧＩＦ１３は、例えばＵＳＢ規格に準じたインターフェイスであり、外部のコンピュータと接続されたり、ＵＳＢメモリ１３ａ（半導体メモリ）が接続されたりする。ＭＩＦ１４はメモリカード１４ａを挿入可能なスロットに接続されており、ＭＩＦを介してＣＰＵ１０がメモリカード１４ａにアクセスし、ファイルの読み出しと書き込みを実行可能である。操作パネル１６は例えば複数のボタンとしてプリンタ１００の筐体上に設けられており、ＣＰＵ１０は操作パネル１６に対する入力操作を示す信号を取得する。表示部１７は入力されたデータ基づいて各種の情報や画像等を表示可能であり、ＣＰＵ１０は表示部１７に表示するべき内容を示すデータを表示部１７に入力する。この結果、表示部１７には、各種の情報や画像等が表示される。
【００１４】
印刷部１５は、ＣＭＹＫ各色のインクが充填されたインクカートリッジ、該インクカートリッジのインクを記録媒体の記録面に向けて吐出する印刷ヘッド、該印刷ヘッドのインク吐出量をコントロールするＡＳＩＣ（Application Specific Integrated Circuits）、印刷ヘッドやインクカートリッジを搭載したキャリッジ機構の制御や記録媒体の送り速度の制御を行うコントロールＩＣ、等を備えており、ＣＰＵ１０の制御に従って所定の画像データを記録媒体に印刷可能である。
【００１５】
図２は、プリンタ１００において実行されるプログラムのソフトウェア構成を示している。同図において、プリンタ１００ではファームウェアと画像処理モジュールＭが実行されている。画像処理モジュールＭは、ファームウェアを介してメモリカード１４ａやＵＳＢメモリ１３ａから画像データを取得したり、画像データの印刷を印刷部１５に指示したりする。なお、プリンタ１００は、印刷機能以外にも、コピー機能やスキャナ機能など多種の機能を備えたいわゆる複合機であってもよい。
画像処理モジュールＭは、作業画像取得部Ｍ１と、検出窓設定部Ｍ２と、窓画像取得部Ｍ３と、特徴量算出部Ｍ４と、画質調整部Ｍ５と、関数設定部Ｍ６と、判定部Ｍ７と、関数設定指示部Ｍ８と、を備える。関数設定部Ｍ６は、対象画像から取得される複数の解析対象画像の所定組合せに対し、判定処理の１つを実行する関数（判定ユニット）を設定する。判定部Ｍ７は、前記組合せに含まれる各解析対象画像に対して前記関数で判定処理を行う。関数設定指示部Ｍ８は、判定部Ｍ７において前記所定オブジェクト画像が含まれると判定された解析対象画像の組合せに対し、判定部Ｍ７において未実行の判定処理を実行するための、関数の設定を関数設定部Ｍ６に指示する。以下、画像処理モジュールＭを構成する各部Ｍ１〜Ｍ８が実行する処理の詳細について説明する。
【００１６】
（２）画像処理の流れ：
図３は本実施形態に係る画像処理の流れを示すフローチャートである。画像処理が開始されると、ステップＳ１００（以下、「ステップ」の表記は省略。）において、作業画像取得部Ｍ１が画像処理の対象となる画像（対象画像）の画像データＤ１（ｍ×ｎ画素）を取得し、画像データＤ１をＲＡＭ１１のワークエリアに記憶する。
【００１７】
画像データＤ１は、メモリカード１４ａやＵＳＢメモリ１３ａ等、所定の記録メディアから取得される。むろん、プリンタ１００がハードディスクドライブ（ＨＤＤ）を有していれば、作業画像取得部Ｍ１は、当該ＨＤＤに保存されている画像データＤ１を取得してもよいし、ＧＩＦ１３を介してＰＣやサーバやＤＣ等から画像データＤ１を取得してもよい。画像データＤ１は、表示部１７に表示されたユーザインターフェース（ＵＩ）画面を参照してユーザが操作パネル１６を操作することにより、対象画像として指定される。
【００１８】
画像データＤ１は、複数の画素からなるビットマップデータであり、それぞれの画素は、レッド（Ｒ），グリーン（Ｇ），ブルー（Ｇ）各チャンネルの階調（例えば、０〜２５５の２５６階調）の組合せで表現されている。画像データＤ１は、記録メディア等に記録されている段階ではＪＰＥＧ等の所定の圧縮形式で圧縮されていてもよいし、他の色空間で各画素の色が表現されていてもよい。画像データＤ１がＲＧＢビットマップデータでない場合は、作業画像取得部Ｍ１は、画像データＤ１の展開や色空間の変換を実行してＲＧＢビットマップデータとしての画像データＤ１を取得する。
【００１９】
画像データＤ１は、ＲＡＭ１１のワークエリアに記憶される。ここで言うワークエリアとは、ＲＡＭ１２において後述のオブジェクト検出処理に係る画像データの一時保存に使用可能な記憶領域であり、プリンタ１００の制御プログラムの実行に必要な記憶領域を除いた記憶領域である。なお、画像データＤ１は、ワークエリアに記憶される際に、取得した画像データＤ１から画素数を減らすなどして画像サイズを縮小してもよい。サイズ縮小は、画素数を間引いたり、所定数の画素から補間演算で新たな１画素を作成したりして行われる。また、後述のオブジェクト検出処理に必要な画像情報が輝度情報だけであれば、画像データＤ１はグレースケールのビットマップデータで作成されてもよい。
【００２０】
Ｓ２００では、検出窓設定部Ｍ２が画像データＤ１において、順次、検出窓Ｗを設定し、検出窓Ｗが設定されるごとに窓画像取得部Ｍ３が検出窓の窓画像データＷＤ（対象画像の部分画像）を取得し、関数設定部Ｍ６と判定部Ｍ７と関数設定指示部Ｍ８が窓画像データＷＤについての複数方向画像検出処理を実行して、その検出結果を出力する。
Ｓ３００では、Ｓ２００の検出結果に応じて、画質調整部Ｍ５が肌色調整処理（画質調整処理）を実行し、画質調整後の画像データＤ１を印刷部１５に出力する。すると印刷部１５が印刷制御処理を実行し、プリンタ１００にて画質調整後の画像データＤ１を印刷する。本実施形態においては、画質調整処理の一例として肌色調整処理を例に取り説明を行うが、無論、青や緑等の他の色を調整する処理でもよいし、明度やコントラストを調整する処理でもよいし、シャープネスやぼかし加工等の処理でもよく、検出するオブジェクトにあわせて画質調整を選択可能である。
【００２１】
（２−１）オブジェクト検出処理：
図４はオブジェクト検出処理のフローチャートである。Ｓ１１０〜Ｓ１６０では、各種サイズの検出窓Ｗを対象画像内に設定して窓画像データＷＤを取得し、窓画像データＷＤからオブジェクト検出を行う。検出窓Ｗは対象画像の一部領域を範囲指定する仮想的な枠であり、検出窓Ｗで指定された範囲の縮小画像のデータを窓画像データＷＤとして取得して解析し、オブジェクト検出処理を行う。本実施形態においては、検出窓Ｗを正方形状の枠として説明を行うが、検出窓Ｗの形状には、円形，矩形，三角形等、任意の形状を採用可能であるし、さらには１つの閉じた範囲を指定するもののみならず、複数の閉じた範囲を組合せて指定するものであってもよい。
【００２２】
図５は画像データＤ１を示している。図５において、画像データＤ１に正方形状の検出窓Ｗが設定されており、オブジェクト検出処理において、検出窓設定部Ｍ２が検出窓Ｗを画像データＤ１において隈無く移動させつつ、検出窓Ｗ内の画像データを窓画像データＷＤとして取得して窓画像データＷＤが所定オブジェクト画像を含むか否かの判定を行う。なお、画像データＤ１の長手方向をｘ軸とし、短手方向をｙ軸と表すものとし、ｘ軸とｙ軸の原点は画像データＤ１の左上隅位置とする。所定サイズの検出窓Ｗが画像データＤ１内を隈無く走査すると、検出窓Ｗのサイズを順次変更して画像データＤ１内を隈無く走査させる。本実施形態においては、以上のように検出窓Ｗをシフトさせるために下記カウンタｎＳ，ｎｘ，ｎｙを用いる。
【００２３】
Ｓ１１０では、各カウンタｎＳ，ｎｘ，ｎｙをリセットする。ｎＳはサイズカウンタであり、検出窓ＷのサイズパラメータＳを順にシフトさせるための整数値である。ｎｘはｘ方向カウンタであり、検出窓Ｗの中心位置Ｐをｘ軸方向にシフトさせるための整数値である。ｎｙはｙ方向カウンタであり、検出窓Ｗの中心位置Ｐをｙ軸方向にシフトさせるための整数値である。これらのカウンタはリセットにより例えば０に初期化される。
【００２４】
図６は、カウンタｎsと検出窓ＷのサイズＳとの関係を示している。同図に示すように、サイズカウンタｎＳの増加とともに、検出窓ＷのサイズＳ（縦と横の長さ）が徐々に減少する。本実施例では、サイズカウンタｎＳとサイズＳが線形的な関係を有し、カウンタｎＳが１〜１５の間で１増加する毎に、検出窓ＷのサイズＳ（縦および横の長さ）が所定画素数ずつ小さくなるようにしている。また、カウンタｎＳが１のときに検出窓ＷのサイズＳが最大となり、検出窓ＷのサイズＳは画像データＤ１の短手の長さｎ画素よりわずかに短い画素数（例えばＱＶＧＡ（３２０×２４０画素）であれば、ｎ＝２４０なので２００画素等）となる。また、カウンタｎＳが１５のときに検出窓Ｓのサイズが最小となり、検出窓ＷのサイズＳは所定オブジェクト画像を検出可能な最小画素数（例えば２０画素）となる。なお、ここで示したカウンタｎＳと検出窓ＷのサイズＳの関係は一例であり、これらが非線形の関係を有していたり、傾きや切片などを変更したりしてもよい。
【００２５】
Ｓ１３０では、検出窓設定部Ｍ２が対象画像に中心位置Ｐを中心としてサイズＳの検出窓Ｗを設定する。
Ｓ１３２では、窓画像取得部Ｍ３が、検出窓Ｗ内の画像データを窓画像データＷＤとして取得する。ここで、検出窓Ｗの中心位置Ｐのｘ，ｙ座標をは、ｘ方向カウンタｎｘとｙ方向カウンタｎyを用いて、例えば下記の（１）式によって算出する。
【数１】
2009237754.tif 000003
上記（１）式において、ｄx，ｄyは検出窓Ｗの中心位置Ｐの各方向への単位移動距離（画素数）を示す一定の移動間隔を表しており、移動間隔ｄx，ｄyと方向カウンタｎx，ｎyをそれぞれ乗算することにより、検出窓Ｗの中心位置Ｐのｘ，ｙ座標が算出される。移動間隔ｄx，ｄyは検出窓Ｗの縦および横の長さを示すサイズＳに基づいて下記（２）式で算出される。
【数２】
2009237754.tif 000004
上記の（２）式によって移動間隔ｄy＜１となる場合は、ｄy＝１とする。なお、ｘ方向カウンタｎxが取り得る範囲は１〜［画像データＤ１のｘ方向画素数ｍ］／ｄx（整数部分）とし、ｙ方向カウンタｎyは１〜［画像データＤ１のｙ方向画素数ｎ］／ｄy（整数部分）とする。
【００２６】
Ｓ１３５では、窓画像データＷＤに対し複数方向画像検出処理を行う。この複数方向画像検出処理については後述する。
Ｓ１４０では、検出窓Ｗが画像データＤ１の右端に到達したか否かを判断する。より具体的には、ｎx＝［画像データＤ１のｘ方向画素数ｍ］／ｄx（整数部分）であるか否かを判定する。すなわち、現在の検出窓ＷのサイズＳおよびｙ方向の位置において、すべてのｘ方向の位置について検出窓Ｗの設定が完了したか否かを判定する。ｘ方向カウンタｎx＜［画像データＤ１のｘ方向画素数ｍ］／ｄx（整数部分）である場合には、Ｓ１２５に戻り、ｘ方向カウンタｎxに１を加算する。これにより、次回はｘ方向の移動間隔ｐxだけ右側に進んだ中心位置Ｐに検出窓Ｗが設定される。
【００２７】
一方、ｘ方向カウンタｎx＝［画像データＤ１のｘ方向画素数ｍ］／ｄx（整数部分）である場合にはＳ１４５に進んでｘ方向カウンタｎxを０にリセットし、Ｓ１５０においてｙ方向カウンタｎy＝［画像データＤ１のｙ方向画素数ｎ］／ｄy（整数部分）であるか否かを判定する。すなわち、現在の検出窓ＷのサイズＳにおいて、すべての中心位置Ｐについて検出窓Ｗの設定が完了したか否かを判定する。ｙ方向カウンタｎy＜［画像データＤ１のｙ方向画素数ｎ］／ｄy（整数部分）である場合には、Ｓ１２０に戻り、ｙ方向カウンタｎyに１を加算する。これにより、次回はｙ方向に移動間隔ｐyだけ進んだ中心位置Ｐに検出窓Ｗを設定することができる。
【００２８】
一方、ｙ方向カウンタｎy＝［画像データＤ１のｙ方向画素数ｎ］／ｄy（整数部分）である場合にはＳ１５５においてｙ方向カウンタｎyを０にリセットし、Ｓ１６０においてサイズカウンタｎs＝１５であるか否かを判定する。すなわち、すべてのサイズＳについて検出窓Ｗの設定が完了したか否かを判定する。サイズカウンタｎs＜１５である場合には、Ｓ１１５に戻り、サイズカウンタｎsに１を加算する。これにより、次回は一回り小さいサイズＳの検出窓Ｗを設定することができる。一方、サイズカウンタｎs＝１５である場合には、すべてのパラメータ（サイズＳおよび位置Ｐ）の組合せについて検出窓Ｗの設定が完了したとして、処理を終了させる。
【００２９】
（２−２）複数方向画像検出処理：
ところで、画像データには上下反転したり、画像データの左右方向が上下であったりするなど、窓画像データＷＤに含まれる可能性のあるオブジェクトは、必ずしも正立しているとは限らない。傾いたオブジェクトを検出するには、画像データや窓画像データを回転させてオブジェクト検出を行ったり、窓画像データから画像特徴量を抽出するフィルタを回転させたりする必要がある。
【００３０】
そこで、本実施形態においては、窓画像データＷＤから上下左右４方向の画像特徴量を抽出し、これらの画像特徴量に所定オブジェクトが含まれるか否かを判定する。以下、画像データＤ１に検出窓Ｗを回転させずに適用して取得した窓画像データに適用して抽出された特徴量を上特徴量ＣＡｕ、検出窓Ｗを時計回りに９０°回転させた状態で抽出された特徴量を右特徴量ＣＡｒ、検出窓Ｗを時計回りに１８０°回転させた状態で抽出された特徴量を下特徴量ＣＡｄ、検出窓Ｗをを時計回りに２７０°回転させた状態で抽出された特徴量を左特徴量ＣＡｌとする。
【００３１】
また、本実施形態のオブジェクト検出処理は、複数の判定器を用いて行われる。各判定器Ｊ１，Ｊ２，・・・，Ｊｎはそれぞれ異なる種類（例えばフィルタが異なる）の特徴量ＣＡ１，ＣＡ２，・・・，ＣＡｍを入力値としており、それぞれ正または否の判定を出力する。各判定器Ｊ１，Ｊ２，・・・，Ｊｎの判定アルゴリズムは、それぞれ特徴量ＣＡ１，ＣＡ２，・・・，ＣＡｍの大小比較や閾値判定等であり、各判定器で異なる判定アルゴリズムが採用されている。これら判定器は、全てが正を出力した場合のみオブジェクトが窓画像データに存在することを意味し、いずれかの判定器において否の出力がなされると、オブジェクト画像が存在しない旨の判定を出力する。
【００３２】
図７は、判定器Ｊ１，Ｊ２，・・・，Ｊｎを用いた判定の判定特性を示している。同図においては、各判定器Ｊ１，Ｊ２，・・・，Ｊｎにおいて使用される特徴量ＣＡ１，ＣＡ２，・・・，ＣＡｍの軸で定義される特徴量空間を示しており、最終的にオブジェクト画像が存在する（正）と判定される窓画像データＷＤから得られる特徴量ＣＡ１，ＣＡ２，・・・，ＣＡｍの組合せで表される特徴量空間内の座標をプロットしている。オブジェクト画像が存在すると判定される窓画像データＷＤは一定の特徴を有しているため、特徴量空間における一定の領域に分布が見られると考えることができる。各判定器Ｊ１，Ｊ２，・・・，Ｊｎは、このような特徴量空間において境界平面を生成し、当該境界平面で区切られた空間のうち、前記分布が属する空間に判定対象の特徴量ＣＡ１，ＣＡ２，・・・，ＣＡｍの座標が存在している場合には、正を出力する。従って、図８のように各判定器Ｊ１，Ｊ２，・・・，Ｊｎをカスケード状に接続することにより、徐々に正と出力される空間を絞り込んでいくことができる。複数の境界平面によれば、複雑な形状の前記分布についても精度よく判定を行うことができる。
【００３３】
一般には、これらの判定器は複数の判定器Ｊ１，Ｊ２，…，Ｊｎを複数段カスケード状に接続して用いる。例えば、各判定器は前の段の判定器の正の出力に接続されており、前の段の判定器の出力が正であった場合のみ次の段の判定器が判定を行う。カスケード状に接続した判定器で、前記上下左右の特徴量ＣＡｕ，ＣＡｄ，ＣＡｌ，ＣＡｒを順に判定する複数方向判定処理の場合、図９のような処理の流れになる。しかしながら、図９に示す処理では、各判定器を順に適用する処理に挟まれて特徴量の検出方向の数だけ処理が分岐し、処理時間をロスするため非効率的な処理になる。そこで、本実施形態においては図１０の流れで処理を行う。
【００３４】
図１０は、本実施形態における複数方向画像検出処理のフローチャートである。複数方向画像検出処理は、Ｓ１３２にて取得された窓画像データＸＤに対して実行される。処理が開始されると、特徴量算出部Ｍ４が窓画像データＷＤから複数の特徴量を、各方向について算出する。特徴量は、窓画像データＸＤに対して各種のフィルタを適用し、当該フィルタ内の輝度平均やエッジ量やコントラスト等の状態を示す特徴量（平均値や最大値や最小値や標準偏差等）を算出することにより得られる。なお、窓画像データＷＤは、検出窓ＷのサイズＳによって異なる大きさとなるが、Ｓ２００において予め一定の大きさに解像度変換される。
【００３５】
図１１は、窓画像データＷＤから特徴量を算出する様子を示している。同図において、窓画像データＷＤに対して多数のフィルタＦＴが用意されており、各フィルタＦＴを順次窓画像データＷＤに適用し、各フィルタＦＴ内の画像について例えば１２個の上特徴量ＣＡｕ１〜ＣＡｕ１２を順次算出する。さらに検出窓Ｗを９０°ずつ順次回転させて、右特徴量ＣＡｒ１〜Ｃａｒ１２と、下特徴量ＣＡｄ１〜ＣＡｄ１２と、左特徴量ＣＡｄ１〜ＣＡｄ１２と、をそれぞれ算出する。
【００３６】
Ｓ２０１では、関数設定指示部Ｍ８が、出力値としてＤ１を設定し、ＲＡＭ１２に一時的に記憶する。この出力値は、前述した複数の判定器で特徴量を判定するにあたり、前段の判定器において上下左右の特徴量のうち、いずれの特徴量が正判定されたかを示す値である。本実施形態においては４方向の特徴量を判定するので、出力値は上下左右を任意に組合せたＤ１〜Ｄ１５の１５種類（正判定された方向が無い場合の出力値を設けるのであればＤ１６までの１６種類）となる。なお、４方向以外の例えばｋ方向の特徴量を判定するのであれば、出力値は（２ｋ−１）種類となり、後述の関数も各判定器に（２ｋ−１）個ずつ用意されることになる。
【００３７】
Ｓ２０２では、関数設定部Ｍ６が、使用する判定器を設定する。Ｓ２０２で設定される判定器は、本複数方向画像検出処理において未設定の判定器であり、Ｓ２２５で条件不成立する度に、Ｊ１，Ｊ２，・・・，Ｊｎが順に設定される。
【００３８】
Ｓ２０５では、関数設定部Ｍ６が、関数テーブルＴを参照して、出力値に対応する関数を取得する。関数テーブルには、予め複数方向画像検出処理の関数（以下、関数と略す。）が、出力値に対応付けられて登録されており、ＲＡＭ１２に記憶された出力値に合わせて適切な関数が取得される。例えばＲＡＭ１２に記憶されている出力値がＤ５、設定されている判定器がＪ７であれば、関数Ｆ７_５が取得される。
【００３９】
図１２は関数テーブルの一例である。各関数においては、上下左右１５通りのいずれかの組合せに対し、組合せの方向の特徴量を判定する処理が関数化されている。同図において、関数テーブルＴの右には、各関数が何れの方向の判定に対応しているかを示しており、各関数は○の記載がある方向の判定を実行する。例えば判定器Ｊ１については、上・下・左・右全ての特徴量を判定する処理を関数化した関数Ｆ１_１、上・下・左の特徴量を判定する処理を関数化したＦ１_２、上・下・右の特徴量を判定する処理を関数化したＦ１_３、・・・・Ｆ１_ｎ、が準備される。これらの関数に各方向の特徴量が入力されると、判定した各方向の特徴量に対する正否判定が出力される。この正否判定においては、入力された各方向の特徴量に対し閾値判定を行い、入力された特徴量が該閾値の上下いずれか所定の側にあれば正判定し、所定の側でない側にあれば否判定とする。例えば、図１２においては、Ｆ１_３に上・下・右の特徴量が入力されると、上・下・右の特徴量に対する判定結果が出力される。本実施形態における判定結果は、出力値Ｄ１〜Ｄ１６の何れかで出力される。
【００４０】
関数テーブルにおいては、関数の判定する方向と、出力値に対応付けられた方向の組合せと、が一致するように対応付けられている。例えば、関数Ｆ１_１は、上・下・左・右全ての特徴量に対して正判定したことを示す出力値Ｄ１に対応付けられており、関数Ｆ１_２は、上・下・左の特徴量に対して正判定したことを示す出力値Ｄ２に対応付けられている。なお、本実施形態においては、前記Ｄ１〜Ｄ１５の出力値に加えて、正判定された方向が無い場合の出力値としてＤ１６を設けてある。
以上の関数テーブルＴを参照して、Ｓ２０５では、Ｓ２００で設定された出力値や後述のＳ２１５で設定された出力値に対応する関数を取得する。
【００４１】
Ｓ２１０では、判定部Ｍ７が、Ｓ２０５で取得された関数で判定処理を行う。そしてＳ２１５では、関数設定指示部Ｍ８が、該判定結果に基づいた出力値を設定し、ＲＡＭ１２に一時的に記憶する。すなわちＲＡＭ１２には、直前の判定器で正判定された方向を示す値が格納される。
Ｓ２２０では、Ｓ２１０の判定処理において、一方向以上で正判定されたか否かを、例えば出力値に基づいて関数設定指示部Ｍ８が判断する。すなわち、出力値がＤ１〜Ｄ１５であれば、一方向以上で正判定されているので、Ｓ２２５に進み、出力値がＤ１６であれば、検出失敗として本処理を終了し、オブジェクト検出処理にリターンする。
【００４２】
Ｓ２２５では、関数設定指示部Ｍ８が、全ての判定器で判定を行ったか否かを判断する。すなわち本処理が開始されて以降、判定器Ｊ１，Ｊ２，…，Ｊｎの中でＳ２０２で未設定の判定器があるか否かを判断する。未設定の判定器があれば、Ｓ２０２に戻り、未設定の判定器を設定して処理を続ける。全ての判定器を設定済みであればＳ２３０に進み、そのときの検出窓ＷのサイズＳおよび位置Ｐおよび前記所定オブジェクト画像が含まれると判定された検出窓Ｗの回転角ＴをＲＡＭ１２に記憶させて本処理を終了し、オブジェクト検出処理にリターンする。
【００４３】
ここで、図１３を参照して、対象画像に所定オブジェクトが存在する場合と対象画像から所定オブジェクトを検出できなかった場合の処理の流れの一例を説明する。図１３は、対象画像に所定オブジェクトが存在する場合と対象画像から所定オブジェクトを検出できなかった場合における、前述した各判定器の判定処理において選択される関数と、該関数によって判定される方向、そして判定の結果設定される出力値、の関係を、示した図である。図１３において、「検出」の欄に○が記載されている方向が実行された関数で判定する方向であり、「結果」の欄に○が記載されている方向が、該関数により所定オブジェクトが存在すると判定された方向である。この結果にあわせて、出力値が決定される。
【００４４】
図１３の上の表は、対象画像に所定オブジェクトが存在する場合の例である。複数方向画像検出処理が開始されると、Ｓ２００において初期値として出力値Ｄ１が設定されるので、判定器Ｊ１の判定は、関数Ｆ１_１で行われる。同図において、関数Ｆ１_１は、上・下・左・右方向の特徴量を判定し、上・左・右方向の特徴量で正判定している。従って、出力値はＤ４となり、次の判定器Ｊ２の判定は、関数Ｆ２_４で行われる。関数Ｆ２_４は上・左・右方向の特徴量と判定し、上方向の特徴量で正判定している。従って、出力値はＤ１２となり、次の判定器Ｊ３の判定は、関数Ｆ３_１２で行われる。以降の判定では上方向の特徴量を判定する関数が選択され、出力値は全てＤ１２となる。
【００４５】
図１３の下の表は、対象画像から所定オブジェクトを検出できなかった場合の例である。複数方向画像検出処理が開始されると、Ｓ２００において初期値として出力値Ｄ１が設定されるので、判定器Ｊ１の判定は、関数Ｆ１_１で行われる。同図において、関数Ｆ１_１は、上・下・左・右方向の特徴量を判定し、上・左・右方向の特徴量で正判定している。従って、出力値はＤ４となり、次の判定器Ｊ２の判定は、関数Ｆ２_４で行われる。関数Ｆ２_４は上・左・右方向の特徴量と判定し、上方向の特徴量で正判定している。従って、出力値はＤ１２となり、次の判定器Ｊ３の判定は、関数Ｆ３_１２で行われる。そして関数Ｆ３_１２が上方向の特徴量を判定し、上方向の特徴量で正判定し、出力値Ｄ１２が設定される。そして関数Ｆ４_１２で上方向の特徴量を判定すると、正判定の方向が無くなり出力値Ｄ１６が設定され、処理が終了する。
【００４６】
以上のように、Ｓ２００〜Ｓ２２５のループ処理が進むにつれて、次の判定処理で判定する特徴量の方向が絞られていく。さらに、複数方向の判定がある場合でも、１つの関数で全ての方向の判定を終了できるので、検出方向の分岐が発生せず処理時間が短縮される。
【００４７】
（２−３）肌色調整および印刷処理
図１４は、画質調整部Ｍ５が実行する肌色調整処理（画質調整処理）の流れを示している。なお本実施形態においては、人物の顔に対する肌色調整処理を例に取り説明を行うが、無論、顔以外の腕や足や体であってもよいし、画質調整処理も肌色調整処理のみならず検出対象のオブジェクト種類にあわせて適宜選択可能である。上述したオブジェクト検出処理のＳ３２０において、すべてのサイズＳについて検出窓Ｗの設定が完了したか否かを判定されると、オブジェクト検出処理が終了する。Ｓ５１０においては、オブジェクト検出処理の終了を検出し、調整対象の画像データＤ１を取得する。ここで取得される画像データＤ１は、オブジェクト検出処理の対象となった画像データＤ１である。Ｓ５２０においては、顔画像（オブジェクト画像）が存在すると判定された検出窓ＷのサイズＳおよび位置Ｐおよび回転角ＴをＲＡＭ１２から読み出す。Ｓ５３０においては、顔画像が存在すると判定された検出窓Ｗに対応する領域を画像データＤ１において特定する。検出窓ＷのサイズＳおよび位置ＰがＲＡＭ１２から取得されているため、これを画像データＤ１の画像サイズに換算することにより、検出窓Ｗに対応する領域を特定することができる。
【００４８】
Ｓ５４０においては、Ｓ５４０にて特定した領域に含まれる肌色画素の色を調整する処理を実行する。ここでは、まずＳ５４０にて特定した領域に含まれる肌色画素を、各画素の色彩値（例えばＲＧＢ値やＨＳＶ値）に基づいて特定し、当該色彩値を肌色として好ましいものに補正する。具体的には、予め肌色として好ましい色彩値がＨＤＤ１４に記憶されており、各肌色画素の色彩値が好ましい色彩値に近づくように補正を行う。検出窓Ｗによって顔画像が存在する領域が予め特定されているため、顔画像の肌色画素についてのみ補正を行うことができる。なお、顔画像が存在すると判定された検出窓Ｗが複数検出された場合には、そのそれぞれについて肌色調整を実行する。以上のようにして、肌色調整が完了すると、Ｓ５５０にて調整後の画像データＤ１を印刷部１５に出力する。すると、印刷部１５は、画像データＤ１に対して解像度変換処理と色変換処理とハーフトーン処理とラスタライズ処理を順次実行させ、画質調整後の画像データＤ１に対応する画像の印刷を実行する。
【００４９】
（４）まとめ：
以上説明したように、本実施形態においては、画像データＤ１から取得した窓画像データＷＤを９０°おきに回転させ、回転させた各窓画像データに対し複数の判定器Ｊ１〜Ｊｎで判定を行い、判定器Ｊ１〜Ｊｎの全てで正判定した場合に窓画像データＷＤにオブジェクトありと判断するにあたり、複数角度に回転させた検出窓で取得された各窓画像データに対しまとめて判定処理を行う関数と出力値とが対応付けられた関数テーブルを備えさせ、前記窓画像データを取得するにあたって使用された検出窓の回転角度組合せに対し、前記判定器の１つで判定する関数を前記関数テーブルを参照して設定し、組合せに含まれる各回転角度の窓画像データＷＤに対して関数で前記所定オブジェクト画像が含まれるか否かの判定を行い、該判定で前記所定オブジェクト画像が含まれると判定された回転角度の組合せに対し次の判定器で判定を実行するための関数を前記関数テーブルを参照して設定する。よって、オブジェクト検出処理における検出時間が短縮される。
【００５０】
なお、本発明は上述した実施形態や変形例に限られず、上述した実施形態および変形例の中で開示した各構成を相互に置換したり組合せを変更したりした構成、公知技術並びに上述した実施形態および変形例の中で開示した各構成を相互に置換したり組合せを変更したりした構成、等も含まれる。
【図面の簡単な説明】
【００５１】
【図１】オブジェクト検出装置のハードウェア構成ブロック図である。
【図２】オブジェクト検出装置のソフトウェア構成ブロック図である。
【図３】画像処理の流れを示すフローチャートである。
【図４】オブジェクト検出処理のフローチャートである。
【図５】画像データＤ１を示す図である。
【図６】カウンタｎsと検出窓ＷのサイズＳとの関係を示す図である。
【図７】複数の判定器を用いた判定の判定特性である。
【図８】カスケード状に接続した判定器の概念図である。
【図９】カスケード状に接続した判定器で行うフローチャートである。
【図１０】複数方向画像検出処理のフローチャートである。
【図１１】窓画像データＷＤから特徴量を算出する様子を示す図である。
【図１２】関数テーブルの一例である。
【図１３】検出成功と検出失敗の処理の流れを説明する。
【図１４】肌色調整処理の流れを示している。
【符号の説明】
【００５２】
１０…ＣＰＵ、１１…ＲＡＭ、１２ａ…プログラムデータ、１３…汎用インターフェイス（ＧＩＦ）、１３ａ…ＵＳＢメモリ、１４…メモリカードインターフェース（ＭＩＦ）、１４ａ…メモリカード、１５…印刷部、１６…操作パネル、１７…表示部、１８…バス、１００…プリンタ、Ｍ…画像処理モジュール、Ｍ１…作業画像取得部、Ｍ２…検出窓設定部、Ｍ３…窓画像取得部、Ｍ４…特徴量算出部、Ｍ５…画質調整部、Ｍ６…関数設定部、Ｍ７…判定部、Ｍ８…関数設定指示部
【図１】
2009237754.tif 000005
【図２】
2009237754.tif 000006
【図３】
2009237754.tif 000007
【図４】
2009237754.tif 000008
【図５】
2009237754.tif 000009
【図６】
2009237754.tif 000010
【図７】
2009237754.tif 000011
【図８】
2009237754.tif 000012
【図９】
2009237754.tif 000013
【図１０】
2009237754.tif 000014
【図１１】
2009237754.tif 000015
【図１２】
2009237754.tif 000016
【図１３】
2009237754.tif 000017
【図１４】
2009237754.tif 000018