(57)【要約】【課題】顔認識処理を効率的に実行することが可能な画像処理装置を提供すること。【解決手段】処理の対象となる画像データの方向を検出する検出手段（制御部２０ｃ）と、検出手段によって検出された画像の方向に対応する認識パラメータにより、画像データ中の顔を認識する顔認識処理を実行する顔認識手段（顔認識処理部２０ｉ）と、顔認識手段の認識結果に応じて画像データに対する補正処理を施す補正手段（画像処理部２０ｅ、補正パラメータ算出部２０ｊ）と、を有する。【選択図】図１
2008090399.tif 000002
【特許請求の範囲】
【請求項１】
処理の対象となる画像データの方向を検出する検出手段と、
上記検出手段によって検出された画像の方向に対応する認識パラメータにより、画像データ中の顔を認識する顔認識処理を実行する顔認識手段と、
上記顔認識手段の認識結果に応じて画像データに対する補正処理を施す補正手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記検出手段は、Ｅｘｉｆ形式の画像データのヘッダに含まれている画像の向きを示す情報に基づいて、画像データの方向を検出することを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記顔認識手段は、画像データの向きが横長方向である場合には、顔のサイズに関する認識パラメータを小さいサイズの範囲に設定し、画像データの向きが縦長方向である場合には、上記認識パラメータを大きいサイズの範囲に設定することを特徴とする請求項１記載の画像処理装置。
【請求項４】
前記顔認識手段は、画像データの向きが横長方向である場合には、顔の傾きに関する認識パラメータを大きい角度の範囲に設定し、画像データの向きが縦長方向である場合には、上記認識パラメータを小さい角度の範囲に設定することを特徴とする請求項１記載の画像処理装置。
【請求項５】
前記顔認識手段は、画像データの向きが横長方向である場合には、探索する顔の数に関する認識パラメータを多く設定し、画像データの向きが縦長方向である場合には、上記認識パラメータを少なく設定することを特徴とする請求項１記載の画像処理装置。
【請求項６】
請求項１〜５のいずれか１項記載の画像処理装置を有する印刷装置。
【請求項７】
処理の対象となる画像データの方向を検出し、
検出された画像の方向に対応する認識パラメータにより、画像データ中の顔を認識する顔認識処理を実行し、
認識結果に応じて画像データに対する補正処理を施す、
ことを特徴とする画像処理方法。
【請求項８】
コンピュータを、
処理の対象となる画像データの方向を検出する検出手段、
上記検出手段によって検出された画像の方向に対応する認識パラメータにより、画像データ中の顔を認識する顔認識処理を実行する顔認識手段、
上記顔認識手段の認識結果に応じて画像データに対する補正処理を施す補正手段、
として機能させることを特徴とするコンピュータ読み取り可能な画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、印刷装置、画像処理方法、および、画像処理プログラムに関する。
【背景技術】
【０００２】
コンピュータなどの画像機器を用いて作成されたカラーの画像データや、ディジタルカメラなどの撮像機器で撮影したカラーの画像データを出力する出力機器として、カラープリンタが広く使用されている。
【０００３】
近年、特許文献１に示すように、例えば、人間の肌の色が自然な発色となるように画像データに補正処理を施した後に、印刷することが行われている。
【０００４】
【特許文献１】特開平１１−００８７７３号公報（要約書、請求項）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、前述した肌色の補正を行うためには、例えば、画像データに含まれている人物の顔を顔認識処理により特定し、当該顔の領域の肌色を参照して、肌色の補正処理が行われることが多い。
【０００６】
しかしながら、顔認識処理には時間を要するため、画像の印刷が指示されてから実際に印刷が開始されるまでの待ち時間が長くなるという問題点がある。また、近年では、パーソナルコンピュータを接続せずに、プリンタ単独で画像を印刷できるいわゆるスタンドアローンプリンタが流通している。このようなスタンドアローンプリンタでは、中央処理装置の処理速度がパーソナルコンピュータに比較して遅いため、顔認識処理を実行しようとすると、印刷を開始するまでにさらに長い時間を要するという問題点がある。
【０００７】
本発明は、上記の事情に基づきなされたもので、その目的とするところは、顔認識処理を効率的に実行することが可能な画像処理装置、印刷装置、画像処理方法、および、画像処理プログラムを提供しよう、とするものである。
【課題を解決するための手段】
【０００８】
上述の目的を達成するため、本発明の画像処理装置は、処理の対象となる画像データの方向を検出する検出手段と、検出手段によって検出された画像の方向に対応する認識パラメータにより、画像データ中の顔を認識する顔認識処理を実行する顔認識手段と、顔認識手段の認識結果に応じて画像データに対する補正処理を施す補正手段と、を有する。このため、本発明によれば、顔認識処理を効率的に実行することが可能な画像処理装置を提供することができる。
【０００９】
また、他の発明の画像処理装置は、前述の発明に加えて、検出手段が、Ｅｘｉｆ形式の画像データのヘッダに含まれている画像の向きを示す情報に基づいて、画像データの方向を検出するようにしている。このため、画像の方向を簡易かつ迅速に検出することができる。
【００１０】
また、他の発明の画像処理装置は、前述の発明に加えて、顔認識手段が、画像データの向きが横長方向である場合には、顔のサイズに関する認識パラメータを小さいサイズの範囲に設定し、画像データの向きが縦長方向である場合には、認識パラメータを大きいサイズの範囲に設定するようにしている。このため、画像の方向に応じて最適な顔認識処理を実行することにより、処理速度を向上させることが可能になる。
【００１１】
また、他の発明の画像処理装置は、前述の発明に加えて、顔認識手段が、画像データの向きが横長方向である場合には、顔の傾きに関する認識パラメータを大きい角度の範囲に設定し、画像データの向きが縦長方向である場合には、認識パラメータを小さい角度の範囲に設定するようにしている。このため、画像の方向に応じて顔の傾きの検出範囲を設定することにより、顔の認識漏れを防ぐことが可能になる。
【００１２】
また、他の発明の画像処理装置は、前述の発明に加えて、顔認識手段が、画像データの向きが横長方向である場合には、探索する顔の数に関する認識パラメータを多く設定し、画像データの向きが縦長方向である場合には、認識パラメータを少なく設定するようにしている。このため、画像の方向に応じて探索する顔の数を設定することにより、処理を迅速に実行することが可能になる。
【００１３】
また、本発明の印刷装置は、前述した画像処理装置を有している。このため、本発明によれば、顔認識処理を効率的に実行することが可能な印刷装置を提供することができる。
【００１４】
また、本発明の画像処理方法は、処理の対象となる画像データの方向を検出し、検出された画像の方向に対応する認識パラメータにより、画像データ中の顔を認識する顔認識処理を実行し、認識結果に応じて画像データに対する補正処理を施す、ようにしている。このため、本発明によれば、顔認識処理を効率的に実行することが可能な画像処理方法を提供することができる。
【００１５】
また、本発明の画像処理プログラムは、コンピュータを、処理の対象となる画像データの方向を検出する検出手段、検出手段によって検出された画像の方向に対応する認識パラメータにより、画像データ中の顔を認識する顔認識処理を実行する顔認識手段、顔認識手段の認識結果に応じて画像データに対する補正処理を施す補正手段、として機能させる。このため、本発明によれば、顔認識処理を効率的に実行することが可能な画像処理プログラムを提供することができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の一実施の形態について、図面を参照して説明する。
【００１７】
図１は、本発明の実施の形態に係る画像処理装置を有する印刷装置１０の構成例を示す図である。なお、本発明の画像処理装置、画像処理方法、および、画像処理プログラムについては印刷装置１０の動作として説明する。
【００１８】
図１に示す印刷装置１０は、スキャナ装置、印刷装置、および、コピー装置が一体となったいわゆる複合型の印刷装置である。印刷装置１０は、メイン制御部２０、情報入力部３０、情報出力部４０、プリント機構５０、および、スキャン機構６０を主要な構成要素としている。
【００１９】
ここで、メイン制御部２０は、入出力制御部２０ａ、カードＩ／Ｆ（Interface）２０ｂ、制御部２０ｃ、メモリ２０ｄ、画像処理部２０ｅ、プリンタ制御部２０ｆ、バッファ２０ｇ、スキャナ制御部２０ｈ、顔認識処理部２０ｉ、および、補正パラメータ算出部２０ｊを主要な構成要素としており、情報入力部３０から入力された情報に基づいて、情報出力部４０、プリント機構５０、および、スキャン機構６０等を制御する。
【００２０】
より詳細には、入出力制御部２０ａは、情報入力部３０および情報出力部４０との間で情報を授受する際にデータの表現形式を適宜変換するインタフェースである。カードＩ／Ｆ２０ｂは、メモリカード７０が挿入された場合には、メモリカード７０から画像データを読み出したり、画像データを書き込んだりする処理を実行する。メモリカード７０は、例えば、フラッシュメモリ等によって構成され、例えば、図示せぬディジタルカメラによって撮影された画像データを記憶する。
【００２１】
検出手段としての制御部２０ｃは、例えば、ＣＰＵ（Central Processing Unit）によって構成され、メモリ２０ｄに記憶されているプログラム２０ｄ１に基づいて装置の各部を制御する。補正手段の一部としての画像処理部２０ｅは、制御部２０ｃから供給された画像データに対して、復号処理および画像補正処理等を施す。プリンタ制御部２０ｆは、プリント機構５０を制御し、画像データ等を印刷用紙に印刷する。バッファ２０ｇは、プリンタ制御部２０ｆに供給する画像データを一時的に格納するとともに、スキャナ制御部２０ｈから供給される画像データを一時的に格納する。スキャナ制御部２０ｈは、スキャン機構６０を制御し、原稿に印刷された画像データを光学的に読み込む処理を実行する。
【００２２】
顔認識手段としての顔認識処理部２０ｉは、画像データ中の人物の顔を認識し、その位置と領域とを特定する処理を実行する。補正手段の一部としての補正パラメータ算出部２０ｊは、顔認識処理部２０ｉによって特定された人物の顔の領域から肌色の画素を取得し、肌色が人間が記憶している理想的な色になるように補正処理を実行する。
【００２３】
情報入力部３０は、操作ボタン３０ａおよびタッチパネル３０ｂを主要な構成要素とし、ユーザの操作に基づく情報を生成して出力する。ここで、操作ボタン３０ａは、操作パネル等に配置されたボタンであり、ユーザの操作に応じた情報を生成して出力する。タッチパネル３０ｂは、ＬＣＤ（Liquid Crystal Display）４０ａに重畳するように配置され、ＬＣＤ４０ａに表示された情報に基づいて、タッチパネル３０ｂを操作することにより、操作された位置に対応する位置情報が出力される。
【００２４】
情報出力部４０は、ＬＣＤ４０ａおよびランプ４０ｂを主要な構成要素とし、ユーザに提示する情報を出力する。ここで、ＬＣＤ４０ａは、前述したようにタッチパネル３０ｂと重畳されており、制御部２０ｃから供給された画像データ等を表示する。ランプ４０ｂは、操作パネル等に配置されており、制御部２０ｃの制御に応じて点灯／消灯することにより、所定の情報をユーザに示す。
【００２５】
プリント機構５０は、記録ヘッド５０ａ、走査部５０ｂ、および、用紙搬送部５０ｃを主要な構成要素としており、制御部２０ｃから供給された画像データを、印刷用紙に印刷する。ここで、記録ヘッド５０ａは、例えば、ＣＭＹＫに対応する各色のインクを複数のノズルから適宜吐出し、印刷用紙に対応する画像を印刷する。走査部５０ｂは、記録ヘッド５０ａを主走査方向（各色のノズル列に直交する方向）に移動させる。用紙搬送部５０ｃは、印刷用紙を副走査方向（各色のノズル列に平行な方向）に移動させる。
【００２６】
スキャン機構６０は、光源６０ａ、受光部６０ｂ、および、走査部６０ｃを主要な構成要素としており、原稿に印刷された画像を光学的に読み取って、対応する画像データを生成して出力する。ここで、光源６０ａは、例えば、冷陰極管によって構成され、原稿の読み取ろうとする領域に対して白色光を照射する。受光部６０ｂは、光源６０ａによって照射され、原稿によって反射された光を受光して対応する電気信号に変換するＣＣＤ（Charge Coupled Device）等によって構成される。走査部６０ｃは、受光部６０ｂを副走査方向（受光部６０ｂの長手方向に直交する方向）に移動させる。
【００２７】
つぎに、本発明の実施の形態の動作の概要を説明する。すなわち、本発明の実施の形態では、まず、印刷しようとする画像データに含まれているＥｘｉｆのヘッダ情報を参照し、画像データが横長の画像（以下、「横長画像」と称する。）であるか、縦長の画像（以下、「縦長画像」と称する。）であるかを判定する。そして、横長画像の場合には、図２（Ａ）に示すように、複数の人物が含まれている場合が多いことから、顔認識処理の際には、顔のサイズに関する認識パラメータを小さいサイズの範囲に設定し、また、探索する顔の数に関する認識パラメータを多く設定する。一方、縦長画像の場合には、図２（Ｂ）に示すように、一人の人物が含まれている場合が多いことから、顔認識処理の際には、顔のサイズに関する認識パラメータを大きいサイズの範囲に設定し、また、探索する顔の数に関する認識パラメータを少なく設定する。また、横長画像の場合には、例えば、他人の顔と重ならないようにするために、人物が顔を傾げている場合が多いため、顔の傾きに関する認識パラメータを大きい角度の範囲に設定し、一方、縦長画像の場合にはそのようなことは少ないので、顔の傾きに関する認識パラメータを小さい角度の範囲に設定する。このように画像の向きに応じて、検出範囲を設定することで、顔認識処理を効率的に実行することができる。
【００２８】
つぎに、図３〜７を参照して、本発明の実施の形態の詳細な動作を説明する。図３は、図１に示す実施の形態において、メモリカード７０に格納されている所定の画像データが選択されて印刷が指示された場合に実行される処理である。なお、以下の処理は、図１に示すメモリ２０ｄに格納されているプログラム２０ｄ１が実行されることにより、ソフトウエアとしてのプログラム２０ｄ１と制御部２０ｃを始めとするハードウエアとが協働することにより実現される。
【００２９】
ステップＳ１０：ユーザが操作ボタン３０ａまたはタッチパネル３０ｂを操作することにより、メモリカード７０に記憶されている所定の画像データを選択すると、制御部２０ｃは、当該画像データをメモリカード７０から取得する。なお、メモリカード７０は、１回のアクセスによって読み出し可能なデータ量が決まっているので、制御部２０ｃは、当該データ量に応じて、画像データをメモリカード７０から読み出し、メモリ２０ｄに格納する。
【００３０】
ステップＳ１１：制御部２０ｃは、メモリ２０ｄに格納された画像データを所定の読み出し単位読み出し、画像処理部２０ｅに供給する。画像処理部２０ｅは、画像データに対してハフマン解凍処理を施す。
【００３１】
ステップＳ１２：画像処理部２０ｅは、ハフマン解凍処理が施された画像データに対して、逆量子化処理を施す。
【００３２】
ステップＳ１３：画像処理部２０ｅは、画像データを回転（ローテート）するための情報をメモリ２０ｄにキャッシュする。具体的には、画像データを印刷する際に、画像データファイルに含まれている順番に画像データを読み出して出力する場合には問題ないが、画像を回転して印刷する場合には、画像データファイルから読み出す位置を記憶する必要がある。すなわち、画像データは、可変長符号により符号化されているため、回転させて印刷するためには、読み出しの起点となるブロックを示す位置情報を記憶する必要がある。ステップＳ１３では、この起点情報をローテート情報として記憶（キャッシュ）する。
【００３３】
ステップＳ１４：画像処理部２０ｅは、逆量子化処理が施された画像データに対して、逆ＤＣＴ（Discrete Cosine Transform）演算処理を施す。
【００３４】
ステップＳ１５：画像処理部２０ｅは、ＹＣＣ表色系で表現されている画像データを、ＲＧＢ表色系およびＨＳＢ表色系に変換する。
【００３５】
ステップＳ１６：画像処理部２０ｅは、色変換処理が終了した画像データを制御部２０ｃに供給する。制御部２０ｃは、画像処理部２０ｅから供給された画像データを、メモリ２０ｄに格納して保持させる。
【００３６】
ステップＳ１７：制御部２０ｃは、メモリ２０ｄに格納された画像データを所定の割合でサンプリングし、サンプリングによって得られたデータに基づいてヒストグラムを計算する。具体的には、制御部２０ｃは、サンプリングによって得られる画像のサイズがＱＶＧＡ（Quarter Video Graphics Array）となる割合でサンプリングを行う。そして、得られたデータの画素値の分布に応じてヒストグラムを生成する。
【００３７】
ステップＳ１８：制御部２０ｃは、画像データを構成する全てのデータに対する処理が終了したか否かを判定し、終了した場合にはステップＳ１９に進み、それ以外の場合にはステップＳ１１に戻って同様の処理を繰り返す。このステップＳ１１〜ステップＳ１８の処理の繰り返しにより、画像データがメモリカード７０またはメモリ２０ｄから所定の読み出し単位で読み出されて復号され、ヒストグラムが計算されてメモリ２０ｄに格納される。
【００３８】
ステップＳ１９：制御部２０ｃは、画像データに含まれているヘッダ情報を取得する。図４は、Ｅｘｉｆ（Exchangeable Image File Format）形式の画像データファイルの構造を示す図である。この図に示すように、Ｅｘｉｆ形式の画像データファイル９０は、ヘッダ情報９１および画像情報９２を有している。ここで、ヘッダ情報９１は、画像を構成する画素数、画像データの圧縮モード（例えば、ＪＰＥＧ等）、後述するオリエンテーション（Orientation）情報およびその他に関する情報を画像の属性情報９１ａとして有している。また、画像情報９２としては、画像データを一定の割合でサンプリングして生成したサムネイル画像データ９２ａおよび原画像である主画像データ９２ｂとを有している。ステップＳ１９の処理では、画像データのヘッダ情報９１に含まれているオリエンテーションに関する情報が取得される。
【００３９】
ステップＳ２０：制御部２０ｃは、ステップＳ１９において取得したオリエンテーション情報を参照し、処理対象となる画像データが縦長画像（図２（Ｂ）の方向の画像）であるか否かを判定する。
【００４０】
図５は、ヘッダ情報９１に含まれているオリエンテーション情報の詳細を示している。この図に示すように、オリエンテーション情報であることを示すタグ（Ｔａｇ）は、数値“２７４”であり、タグに続く情報のタイプ（Ｔｙｐｅ）はＳｈｏｒｔ（１６ビット符号無し整数）であり、カウント（Ｃｏｕｎｔ）（値の個数）は、“１”であり、デフォルト（Ｄｅｆａｕｌｔ）値は“１”となっている。また、タグに続く値が“１”である場合には、画像の０番目の行が目で見たときの画像の上であり、かつ、０番目の列が左側となり、当該値が“２”である場合には、画像の０番目の行が目で見たときの画像の上であり、かつ、０番目の列が右側となり、当該値が“３”である場合には、画像の０番目の行が目で見たときの画像の下であり、かつ、０番目の列が右側となり、当該値が“４”である場合には、画像の０番目の行が目で見たときの画像の下であり、かつ、０番目の列が左側となり、当該値が“５”である場合には、画像の０番目の行が目で見たときの画像の左側であり、かつ、０番目の列が上となり、当該値が“６”である場合には、画像の０番目の行が目で見たときの画像の右側であり、かつ、０番目の列が上となり、当該値が“７”である場合には、画像の０番目の行が目で見たときの画像の右側であり、かつ、０番目の列が下となり、当該値が“８”である場合には、画像の０番目の行が目で見たときの画像の左側であり、かつ、０番目の列が下となる。すなわち、値が１〜４である場合には横長画像であり、値が５〜８である場合には縦長画像である。したがって、ステップＳ２０において、オリエンテーション情報の値が５〜８である場合には縦長画像であるのでステップＳ２２に進み、それ以外の場合にはステップＳ２１に進む。なお、オリエンテーション情報は、図示せぬディジタルカメラに内蔵されているジャイロスコープによって検出された情報（カメラの向きを示す情報）に基づいて生成され、ヘッダ情報９１として埋め込まれているものである。
【００４１】
ステップＳ２１：制御部２０ｃは、オリエンテーション情報の値が１〜４である場合には、横長画像であると判定してステップＳ２３に進み、それ以外の場合にはステップＳ２４に進む。
【００４２】
ステップＳ２２：制御部２０ｃは、縦長画像の認識パラメータの設定を行う。すなわち、最大顔サイズとして２４０ピクセルを、最小顔サイズとして４０ピクセルを、顔角度としてプラスマイナス１５度を、探索顔数として５を、顔認識処理部２０ｉに設定する。ここで、これらのパラメータの詳細について説明する。顔認識処理では、顔を示すテンプレートと、画像データの任意の領域とが比較され、顔が含まれているか判断される。顔のテンプレートは、図６（Ａ）に示すように、顔の特徴点（目、鼻、口等）を含む画像であり、複数の大きさのテンプレートが存在する。図６（Ａ）の例では、第１〜第５の順でそのサイズが小さくなっている。なお、テンプレートの画像の解像度が高い場合には、各個人の顔の特徴に影響を受けてマッチング処理の精度が低下するので、図６（Ｂ）に示すように、テンプレートにモザイク処理を施すことにより、各個人の特徴に影響を受けにくくしている。
【００４３】
図２（Ｂ）を参照して前述したように、縦長画像の場合には、個人のポートレートとして撮影される場合が多いと考えられるので、撮影されている人物の顔のサイズは大きく、顔の傾きも小さく、また、人数（顔の数）も少ないと考えられる。そこで、縦長画像の認識パラメータのうち、テンプレートの範囲を示す最大顔サイズとして２４０ピクセルを、最小顔サイズとして４０ピクセルを設定する。ここで、最大顔サイズとは、図６に示すテンプレート（図６の例では正方形）において、最大サイズのテンプレートの縦または横の画素数をいう。最小顔サイズとは、最小のテンプレートの縦または横の画素数をいう。すなわち、縦長画像の場合には、４０ピクセルから２４０ピクセルの範囲のテンプレートを使用して顔認識処理が実行される。これは、横長画像である場合の範囲（２０ピクセルから２００ピクセル）に比較して、大きい方にシフトされている。
【００４４】
顔角度は、画像の横方向または縦方向からの顔の傾斜角度をいう。すなわち、顔のテンプレートは、顔がまっすぐの状態に対応しているので、人物の顔が右または左に傾いている場合には認識が正確に行えないため、テンプレート（または画像）をまっすぐな方向から傾けて認識を行う。顔角度はその際に傾ける角度の範囲を示す。縦長画像の場合の顔角度はプラスマイナス１５度であり、横長画像のプラスマイナス４５度に比べて、狭い範囲となっている。
【００４５】
探索顔数は、当該数の顔を検出した場合に顔認識処理を終了する。縦長画像の場合は、探索顔数は“５”であり、これは横長画像の場合の“１５”よりも少なくなっている。縦長画像の場合には、被写体となる人物の数が少ない場合が多いので、少ない数に設定している。これにより、縦長画像の場合には、５人分の顔が検出されるまで、顔認識処理が繰り返される。なお、画像データの全領域に対して探索を行った結果、５人分の顔が検出されなかった場合には処理を終了する。
【００４６】
ステップＳ２３：制御部２０ｃは、横長画像の顔認識処理の認識パラメータを設定する。すなわち、制御部２０ｃは、最大顔サイズとして２００ピクセルを、最小顔サイズとして２０ピクセルを、顔角度としてプラスマイナス４５度を、探索顔数として１５を、顔認識処理部２０ｉに設定する。
【００４７】
横長画像の場合は、複数の人物の集合写真として撮影が行われることが多いので、顔サイズは縦長画像の場合の４０〜２４０ピクセルに比較して、小さい範囲（２０〜２００ピクセル）にシフトされている。また、顔角度については、個々の人物が他人と重なることを防ぐために、顔を傾ける場合が多いので、プラスマイナス４５度と、縦長画像のプラスマイナス１５度に比較すると大きい範囲に設定されている。また、探索顔数についても、集合写真である場合には人数が多いので、縦長画像の場合の“５”に比較して、大きい値（“１５”）に設定してある。
【００４８】
ステップＳ２４：制御部２０ｃは、横長画像または縦長画像のいずれであるかが不明である画像の顔認識処理のパラメータとして、最大顔サイズとして２４０ピクセルを、最小顔サイズとして２０ピクセルを、顔角度としてプラスマイナス４５度を、探索顔数として１５を、顔認識処理部２０ｉに設定する。なお、横長画像または縦長画像のいずれであるかが不明である場合には、どちらの画像に対しても適切に対応できるために、設定される認識パラメータは、双方の認識パラメータを包含する値となっている。なお、このパラメータは、従来の顔認識処理において使用される認識パラメータである。
【００４９】
例えば、オリエンテーション情報が含まれていない等の理由により、縦長画像または横長画像のいずれかであるかが判定できない場合には、認識パラメータとして、前述した値が設定される。
【００５０】
ステップＳ２５：顔認識処理部２０ｉは、設定されたパラメータに基づいて、顔認識処理を実行する。例えば、縦長画像の場合には、最初に２４０ピクセルのサイズのテンプレートが使用されて顔認識処理が実行され、画像データの任意の領域とテンプレートとの相関が計算され、相関が高い領域には顔が存在すると判定される。また、テンプレートと画像との相対的な角度がプラスマイナス１５度の範囲で、例えば、５度単位で調整され、それぞれの角度において相関が判定される（例えば、−１５度、−１０度、−５度、０度、＋５度、＋１０度、＋１５度のそれぞれにおいて相関が判定される）。
【００５１】
そして、２４０ピクセルのテンプレートに対する認識処理が終了すると、例えば、２ピクセル小さいテンプレート（例えば、２３８ピクセル）のテンプレートがつぎに選択され、同様の処理が実行される。そして、探索顔数で示される５人分の顔が検出されるか、または、最小顔サイズである４０ピクセルのテンプレートに対する処理が終了した場合には、認識処理を終了する。なお、同様の処理は、ステップＳ２３で設定された横長画像のパラメータ、または、ステップＳ２４で設定されたパラメータについても同様にして実行される。なお、顔が検出された場合には、顔認識処理部２０ｉは、当該顔の位置と、領域を示す情報を制御部２０ｃに供給する。
【００５２】
ステップＳ２６：制御部２０ｃは、顔認識処理部２０ｉによる認識処理の結果に基づいて、画像データ中に人物の顔が存在するか否かを判定し、存在する場合にはステップＳ２７に進み、それ以外の場合には図７のステップＳ４０に進む。
【００５３】
ステップＳ２７：制御部２０ｃは、顔認識処理部２０ｉによって特定された顔の領域から肌色を示す画素データを取得する。
【００５４】
ステップＳ２８：制御部２０ｃは、取得した画素データを、補正パラメータ算出部２０ｊに供給し、画素データの色が記憶色としての肌色（理想的な肌色）に近づくように補正パラメータを算出する。そして、図７のステップＳ４０に進む。
【００５５】
より具体的には、補正パラメータ算出部２０ｊは、制御部２０ｃから供給された画素データ（肌色の画素（以下、「肌色画素」と称する））を用いて、ＨＳＢ色空間における肌色画素の平均彩度Ｓａと、肌色画素の平均色相Ｈａとを算出する。
【００５６】
つぎに、補正パラメータ算出部２０ｊは、算出された肌色画素の平均彩度Ｓａと、平均色相Ｈａと、予め設定されている補正基準明度Ｂｒとを用いて、補正基準明度Ｂｒにおける肌色画素のＲＧＢそれぞれの平均色成分値Ｒａ，Ｇａ，Ｂａを算出する。
【００５７】
つぎに、補正パラメータ算出部２０ｊは、補正の目標値となる肌色画素目標値である肌色画素目標色相Ｈｔ、肌色画素目標彩度Ｓｔ、および、先述した補正基準明度Ｂｒを、ＲＧＢ空間に変換し、ＲＧＢそれぞれの目標色成分値Ｒｔ，Ｇｔ，Ｂｔを求める。ここで、肌色画素目標色相Ｈｔおよび肌色画素目標彩度Ｓｔは、補正基準明度Ｂｒにおける目標値であり、画像サンプルの解析等によって経験的に求められた、いわば、人物の肌の色として好ましい肌色である。
【００５８】
つづいて、補正パラメータ算出部２０ｊは、先に求めた、平均色成分値Ｒａ，Ｇａ，Ｂａと、目標色成分値Ｒｔ，Ｇｔ，Ｂｔとの差分を求め、それぞれの色における補正量ΔＲ，ΔＧ，ΔＢを以下の式から求める。
【００５９】
ΔＲ＝（Ｒｔ−Ｒａ）  ・・・（１ａ）
ΔＧ＝（Ｇｔ−Ｇａ）  ・・・（１ｂ）
ΔＢ＝（Ｂｔ−Ｂａ）  ・・・（１ｃ）
【００６０】
以上のようにして求められた補正パラメータは、制御部２０ｃに供給され、後述する補正処理（ステップＳ４５）において用いられる。
【００６１】
つぎに、図７を参照して、ステップＳ４０以降の処理を説明する。
【００６２】
ステップＳ４０：制御部２０ｃは、画像データファイルの読み出し位置を示すファイルポインタをリセットする（先頭位置に復帰する）。
【００６３】
ステップＳ４１：制御部２０ｃは、画像処理部２０ｅに対して所定の処理単位の画像データを供給する。画像処理部２０ｅは、供給された画像データに対してハフマン解凍処理を施す。
【００６４】
ステップＳ４２：画像処理部２０ｅは、ハフマン解凍処理が施された画像データに対して、逆量子化処理を施す。
【００６５】
ステップＳ４３：画像処理部２０ｅは、逆量子化処理が施された画像データに対して、逆ＤＣＴ演算処理を施す。
【００６６】
ステップＳ４４：画像処理部２０ｅは、逆量子化処理が施された画像データに対して、表色系をＹＣＣからＲＧＢに変換する処理を施す。
【００６７】
ステップＳ４５：画像処理部２０ｅは、色変換が施された画像データに対して、ステップＳ２８で算出されたパラメータに基づいて補正処理を実行する。ステップＳ２８では、人物の肌色が理想的な色となるように補正パラメータが算出されているので、当該補正パラメータを用いて画像データを補正することにより、人物の肌色が理想的な色となるように補正がなされる。具体的には、式（１ａ）〜（１ｃ）で求めたΔＲ，ΔＧ，ΔＢの値を各色の画像データの画素値に加算する。
【００６８】
ステップＳ４６：画像処理部２０ｅは、補正処理が終了した画像データを、バッファ２０ｇを介してプリンタ制御部２０ｆに供給し、印刷処理を実行させる。すなわち、画像データは、バッファ２０ｇに一旦格納された後、プリンタ制御部２０ｆを介してプリント機構５０に供給され、印刷用紙に印刷される。すなわち、プリント機構５０では、１走査ライン分の画像データをプリンタ制御部２０ｆから取得し、記録ヘッド５０ａによって該当する色のインクを吐出して印刷用紙に記録する。この際、走査部５０ｂが記録ヘッド５０ａを主走査方向に移動させるとともに、用紙搬送部５０ｃが印刷用紙を副走査方向に移動させる。このような動作を繰り返すことにより、画像データが印刷用紙に印刷される。
【００６９】
なお、画像データを回転させる必要がある場合には、ステップＳ１３においてキャッシュされたローテート情報を参照して画像データファイルからデータが読み出され、画像データの回転処理が実行された後に、印刷処理が実行される。
【００７０】
ステップＳ４７：制御部２０ｃは、画像データを回転させる場合に使用するローテート情報を更新する。すなわち、画像データから読み出すべき位置を示す起点ブロックを示すアドレスを、読み出したデータ量に応じて更新する。
【００７１】
ステップＳ４８：制御部２０ｃは、画像データの全ての印刷が完了したか否かを判定し、完了した場合には処理を終了し、それ以外の場合にはステップＳ４１に戻って同様の処理を繰り返す。
【００７２】
以上に説明したように、本発明の実施の形態によれば、画像データが縦長画像であるか、または、横長画像であるかに応じて、顔認識のパラメータを設定するようにしたので、縦長画像または横長画像の特徴に応じて最適な認識処理を実行することができる。このため、処理の速度を向上するとともに、誤認識が発生する可能性を低減することができる。すなわち、従来では、ステップＳ２４において設定された認識パラメータによって認識処理が実行されていたが、縦長画像である場合にはステップＳ２２の認識パラメータによって認識処理が実行され、横長画像である場合にはステップＳ２３の認識パラメータによって認識処理が実行される。ステップＳ２２およびステップＳ２３の認識パラメータは、ステップＳ２４において設定される認識パラメータの範囲の一部であるので、認識処理に要する時間を短縮できる。
【００７３】
また、横長画像または縦長画像の判断を、Ｅｘｉｆのヘッダ情報９１に基づいて行うようにしたので、横画像または縦画像の判断を簡易かつ迅速に行うことができる。
【００７４】
なお、以上の実施の形態は、一例であって、これ以外にも種々の変形実施態様が存在する。例えば、以上の実施の形態では、メモリカード７０をカードＩ／Ｆ２０ｂに挿入して画像データを読み出すようにしたが、例えば、図示せぬディジタルカメラを、同じく図示せぬケーブルによって入出力制御部２０ａに接続し、当該ケーブルを介して画像データを読み出すようにしてもよい。
【００７５】
また、以上の実施の形態では、顔認識処理部２０ｉによる顔認識処理の順番については述べていないが、例えば、縦長画像の場合には、図２（Ｂ）に示すように、画像の中央よりも上付近に顔が存在する可能性が高いため、この部分から認識処理を実行するようにしてもよい。また、１つのテンプレートについて画像の全ての領域に対して認識処理を実行し、認識処理が終了した場合につぎのテンプレートを用いるようにしたが、例えば、顔の存在する可能性が高いと判断される領域について、全てのテンプレートを順次適用して、顔認識処理を実行するようにしてもよい。そのような処理によれば、顔が存在する可能性が高い領域を優先して処理することにより、顔認識処理を迅速に実行することが可能になる。
【００７６】
また、以上の実施の形態では、顔認識処理の結果として顔が特定された場合には、一定の強度で補正処理を施すようにしたが、例えば、画像中の顔の面積に応じて、補正処理の強度を変えるようにしてもよい。以下にその一例について説明する。
【００７７】
図８は、例えば、図３のステップＳ１０において印刷対象となる画像データを選択した後に、ＬＣＤ４０ａに表示される情報の一例である。この例では、画面１００内の最上部には、タイトル１０１としての「顔補正処理設定画面」が表示されている。その下には、メッセージ１０２としての「以下の項目を選択してください。」が表示されている。その下には、選択項目１０３としての「１．通常モード：面積比に応じた顔補正処理」が表示され、最下部には選択項目１０４としての「２．人物優先モード：面積比を考慮しない顔補正処理」が表示されている。
【００７８】
ここで、選択項目１０３としての「通常モード」は、図中の説明にもあるように、画像データ中における顔の面積と、画像全体の面積の比率に応じて、顔補正処理の強度を変更するモードである。一般的に、顔認識に基づく肌色補正は、画像データ全体に対して補正処理を施す。このため、人物の顔の面積が少ない場合に、画像データ全体に対して肌色に基づく補正処理を施した場合、肌色以外の領域の発色が不自然になってしまう場合がある。そこで、通常モードでは、顔の面積と、画像データ全体の面積とを比較し、当該面積比に応じた強度により肌色に対する補正処理を施す。すなわち、顔の面積が少ない場合には弱めに補正をし、多い場合には強めに補正をする。
【００７９】
一方、選択項目１０４としての「人物優先モード」は、面積比は考慮せずに肌色補正を実行するモードであり、人物の発色を最優先するモードである。
【００８０】
つぎに、図９を参照して、補正処理時の動作について説明する。図９は、図３に示すステップＳ２８において実行される処理の一例を示すフローチャートである。このフローチャートが開始されると、以下のステップが実行される。
【００８１】
ステップＳ６０：制御部２０ｃは、図８に示す設定画面において、選択項目１０３に示す「通常モード」が選択されたか否かを判定し、通常モードが選択された場合にはステップＳ６２に進み、それ以外の場合にはステップＳ６１に進む。図８の例では、選択項目１０３が矩形で囲繞されており、こちらが選択されているので、ステップＳ６２に進む。
【００８２】
ステップＳ６１：補正パラメータ算出部２０ｊは、ステップＳ２８において説明した方法に基づいて補正パラメータを算出する。この結果、肌色が記憶色に近くなるような補正パラメータが、顔の面積とは関係なく、算出される。
【００８３】
ステップＳ６２：補正パラメータ算出部２０ｊは、制御部２０ｃを介して、顔認識処理部２０ｉによって認識された全ての顔領域に関する情報を取得し、当該情報に基づいて全顔領域の面積Ｓ１を算出する。例えば、画像データに一人の人物が含まれている場合には当該人物の顔の面積がＳ１として算出される。また、複数の人物が含まれている場合にはこれら全ての人物の顔の面積の合計がＳ１として算出される。
【００８４】
ステップＳ６３：補正パラメータ算出部２０ｊは、画像データ全体の面積をＳ２として算出する。
【００８５】
ステップＳ６４：補正パラメータ算出部２０ｊは、ステップＳ６２およびステップＳ６３で算出された面積Ｓ１，Ｓ２の比率を算出し、面積比率として変数Ｒに格納する。この結果、変数Ｒには顔と画像の面積の比率に応じた値（≦１）が格納される。
【００８６】
ステップＳ６５：補正パラメータ算出部２０ｊは、ステップＳ６４で算出した面積比率Ｒに基づいて、肌色に基づく補正パラメータを算出する。具体的には、例えば、面積比率Ｒに対して所定の固定係数ｋを乗算して得られた値をα（＝ｋ・Ｒ）とし、以下の式に代入して、ΔＲ，ΔＧ，ΔＢの値を求める。そして、前述したのと同様の処理により、ステップＳ４５において画像データの補正を行う。なお、係数ｋについては、個々の印刷装置の特性に応じて選択する。
【００８７】
ΔＲ＝（Ｒｔ−Ｒａ）・α  ・・・（２ａ）
ΔＧ＝（Ｇｔ−Ｇａ）・α  ・・・（２ｂ）
ΔＢ＝（Ｂｔ−Ｂａ）・α  ・・・（２ｃ）
【００８８】
以上のような処理によれば、通常モードが選択された場合には、全ての顔の面積と画像データ全体との面積比率に応じた強度で肌色に対する補正処理が実行され、人物優先モードが選択された場合には、面積比率に拘わらず、肌色補正が実行される。このため、ユーザの指示に応じて補正処理を実行することができる。
【００８９】
なお、図９では、顔領域の面積Ｓ１と、全領域の面積Ｓ２の比率によって補正の強度を求めるようにしたが、例えば、顔領域に含まれる画素数と、全領域の画素数の比率によって補正の強度を求めるようにしてもよい。また、全領域ではなく、顔領域以外の領域の面積または画素数を用いるようにしてもよい。さらに、顔だけではなく、顔以外の肌色部分（例えば、手、足、体、首等）についても処理の対象とするようにしてもよい。
【００９０】
また、以上の実施の形態では、複合型の印刷装置を例に挙げて説明を行ったが通常の印刷装置（パーソナルコンピュータと接続して使用するタイプの印刷装置）に対して本発明を適用することができる。また、複合型ではない通常のスタンドアロン型の印刷装置に対して本発明を適用することも可能である。
【００９１】
また、以上の実施の形態では、図３および図７に示す処理を、印刷装置１０において実行するようにしたが、例えば、印刷装置１０に接続されているホストコンピュータにおいて実行することも可能である。
【００９２】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、画像処理装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Digital Versatile Disk）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disk ROM）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【００９３】
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【００９４】
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【図面の簡単な説明】
【００９５】
【図１】本発明の実施の形態に係る印刷装置の構成例を示す図である。
【図２】横長画像と縦長画像の一例を示す図である。
【図３】図１に示す実施の形態において実行されるフローチャートの一例である。
【図４】Ｅｘｉｆ形式の画像データの構成を示す図である。
【図５】オリエンテーション情報の一例を示す図である。
【図６】顔認識のテンプレートの一例を示す図である。
【図７】図１に示す実施の形態において実行されるフローチャートの一例である。
【図８】補正処理の強度を設定するための画面の表示例である。
【図９】補正処理の強度を変更する処理を説明するフローチャートの一例である。
【符号の説明】
【００９６】
１０  印刷装置、２０ｃ  制御部（検出手段）、２０ｅ  画像処理部（補正手段の一部）、２０ｉ  顔認識処理部（顔認識手段）、２０ｊ  補正パラメータ算出部（補正手段の一部）
【図１】
2008090399.tif 000003
【図２】
2008090399.tif 000004
【図３】
2008090399.tif 000005
【図４】
2008090399.tif 000006
【図５】
2008090399.tif 000007
【図６】
2008090399.tif 000008
【図７】
2008090399.tif 000009
【図８】
2008090399.tif 000010
【図９】
2008090399.tif 000011