(57)【要約】【課題】  被写体に応じた最適な補正を短時間で行うことが可能な画像処理装置を提供すること。【解決手段】  画像データの一部の領域を抽出する抽出手段（ＣＰＵ５０）と、抽出手段によって抽出された領域内に人物の顔が含まれているか否か判定する判定手段（ＣＰＵ５０）と、判定手段によって顔が含まれていると判定された場合には、顔の状態に基づいて画像データを補正する補正手段（ＣＰＵ５０）とを有する。このため、被写体に応じた最適な補正を短時間で行うことが可能となる。【選択図】  図２
2006277274.tif 000002
【特許請求の範囲】
【請求項１】
画像データの一部の領域を抽出する抽出手段と、
上記抽出手段によって抽出された領域内に人物の顔が含まれているか否か判定する判定手段と、
上記判定手段によって顔が含まれていると判定された場合には、上記顔の状態に基づいて画像データを補正する補正手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記抽出手段は、前記画像データの中央に存在する一部の領域を抽出することを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記抽出手段によって抽出された領域の画像データを拡大する拡大手段をさらに有することを特徴とする請求項１記載の画像処理装置。
【請求項４】
前記抽出手段によって抽出された領域の画像データを縮小する縮小手段をさらに有することを特徴とする請求項１記載の画像処理装置。
【請求項５】
前記請求項１〜４のいずれか１項に記載の画像処理装置を有する印刷装置。
【請求項６】
画像データの一部の領域を抽出する抽出ステップと、
上記抽出ステップによって抽出された領域内に人物の顔が含まれているか否か判定する判定ステップと、
上記判定ステップによって顔が含まれていると判定された場合には、上記顔の状態に基づいて画像データを補正する補正ステップと、
を有することを特徴とする画像処理方法。
【請求項７】
画像データの一部の領域を抽出する抽出手段、
上記抽出手段によって抽出された領域内に人物の顔が含まれているか否か判定する判定手段、
上記判定手段によって顔が含まれていると判定された場合には、上記顔の状態に基づいて画像データを補正する補正手段、
としてコンピュータを機能させるコンピュータ読み取り可能な画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、印刷装置、画像処理方法、および、画像処理プログラムに関する。
【背景技術】
【０００２】
近年、ディジタルカメラ等によって撮像された画像を簡易に印刷できる印刷装置が普及している。最近では、ディジタルカメラの普及に伴い、メモリカードが挿着できるスロットを有する印刷装置、あるいはディジタルカメラとの接続のためのインタフェースを有する高解像度の印刷装置も市販されるようになっている。この種の印刷装置には、プリントエンジンとして、インクジェット式、あるいは昇華式のものがあり、高い解像度での印刷が可能となっている。
【０００３】
ところで、例えば、ディジタルカメラによって撮像された画像は、カメラ自体の特性等によって、例えば、露出値が適切でなかったり、色かぶりが発生したりする場合があるため、これらを補正するための技術が提案されている（特許文献１参照）。
【０００４】
【特許文献１】特開２０００−１６５６４７号公報（要約書、請求項）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、前述したような補正は、被写体の種類（例えば、風景、または、人物等）に応じて行うことが望ましいが、特許文献１に示す技術では、被写体に応じて補正を行うことができないという問題点がある。
【０００６】
また、近年、パーソナルコンピュータを接続せずに、印刷装置自体に画像データを読み取る手段と、画像処理を行う手段とを有し、印刷装置単独で画像を印刷できるいわゆるスタンドアローンプリンタが流通しているが、このようなスタンドアローンプリンタでは、中央処理装置の処理速度がパーソナルコンピュータに比較して遅いため、被写体に応じて複雑な補正処理を施そうとすると、印刷を開始するまでに長い時間を要するという問題点がある。
【０００７】
本発明は、上記の事情に基づきなされたもので、その目的とするところは、被写体に応じた最適な補正を短時間で行うことが可能な画像処理装置、印刷装置、画像処理方法、および、画像処理プログラムを提供しよう、とするものである。
【課題を解決するための手段】
【０００８】
上述の目的を達成するため、本発明の画像処理装置は、画像データの一部の領域を抽出する抽出手段と、抽出手段によって抽出された領域内に人物の顔が含まれているか否か判定する判定手段と、判定手段によって顔が含まれていると判定された場合には、顔の状態に基づいて画像データを補正する補正手段と、を有する。
【０００９】
このため、被写体に応じた最適な補正を短時間で行うことが可能な画像処理装置を提供することができる。
【００１０】
また、他の発明の画像処理装置は、前述の発明に加えて、抽出手段が、画像データの中央に存在する一部の領域を抽出するようにしている。このため、中央付近に位置するように撮像されることが多い人物の画像を迅速かつ確実に抽出することが可能になる。
【００１１】
また、他の発明の画像処理装置は、前述の発明に加えて、抽出手段によって抽出された領域の画像データを拡大する拡大手段をさらに有するようにしている。このため、顔の特徴部分を拡大することにより、顔が含まれているか否かの判定を正確に行うことができる。
【００１２】
また、他の発明の画像処理装置は、前述の発明に加えて、抽出手段によって抽出された領域の画像データを縮小する縮小手段をさらに有するようにしている。このため、縮小および拡大を行うことにより、画像に含まれているノイズ成分を除去し、顔が含まれているか否かの判断をさらに正確に行うことができる。
【００１３】
また、他の発明の印刷装置は、前述の画像処理装置を有している。このため、画像データに顔が含まれている場合には、正確に画像を抽出し、当該顔の撮影状態に応じて、画像データを適切に補正して印刷することが可能になる。
【００１４】
また、本発明の画像処理方法は、画像データの一部の領域を抽出する抽出ステップと、抽出ステップによって抽出された領域内に人物の顔が含まれているか否か判定する判定ステップと、判定ステップによって顔が含まれていると判定された場合には、顔の状態に基づいて画像データを補正する補正ステップと、を有する。
【００１５】
このため、被写体に応じた最適な補正を短時間で行うことが可能な画像処理方法を提供することができる。
【００１６】
また、本発明の画像処理プログラムは、画像データの一部の領域を抽出する抽出手段、抽出手段によって抽出された領域内に人物の顔が含まれているか否か判定する判定手段、判定手段によって顔が含まれていると判定された場合には、顔の状態に基づいて画像データを補正する補正手段、としてコンピュータを機能させる。
【００１７】
このため、被写体に応じた最適な補正を短時間で行うことが可能な画像処理プログラムを提供することができる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の一実施の形態について、図面を参照して説明する。
【００１９】
図１は、本発明の実施の形態に係る画像処理装置を用いた印刷装置の構成例を示す図である。以下、本発明の一実施の形態について、図１から図１１に基づいて説明する。図１は、本実施の形態に係る印刷装置１１の基本構成を示す斜視図である。この図１に示すように、印刷装置１１は、ロール紙対応型のインクジェット式印刷装置であり、装置全体を覆うケース１２と、印刷媒体としてのロール紙Ｒおよび印刷用紙（不図示）を供給する給紙装置１３と、ロール紙Ｒまたは印刷用紙に対して印刷を行う印刷部とを備える。
【００２０】
ケース１２は、略四角形状の箱体であり、上面右側に操作パネル部１５を備え、操作パネル部１５は、ＬＣＤ（Liquid Crystal Display）１７と、操作ボタン１８とを備える。ＬＣＤ１７には、印刷装置１１のメニュー機能、動作内容、動作状況、エラー内容などが表示され、操作ボタン１８は、印刷装置１１のメニュー選択等を行う時に押されるようになっている。そして、これらＬＣＤ１７および操作ボタン１８により、カット位置調整等の各種操作が行えるようになっている。
【００２１】
ケース１２は、前面下部に、排出口１２ａを備え、印刷されたロール紙Ｒまたは印刷用紙が排出されるようになっている。また、ケース１２の前面右側には、カードスロット２１が設けられており、例えばディジタルカメラなどによって撮影された画像データを記録するメモリカードＭが、取り外し自在に収納されるようになっている。
【００２２】
給紙装置１３は、ケース１２の背面側に設けられており、ケース１２に対して固定されているホルダー２２と、ロール紙軸２３とを備える。そして、同ロール紙軸２３には、ロール紙Ｒの基端（終端）が連結され巻回されており、この状態で、ホルダー２２に対して回転可能に支持されている。そして、ユーザーがロール紙軸２３の両端部を掴んでロール紙軸２３を正回転、あるいは、逆回転させると、ロール紙Ｒは給紙装置１３から送り出されたり、巻き取られたりするようになっている。
【００２３】
つぎに、図１に示す印刷装置の制御系について説明する。図２は、図１に示す印刷装置の制御系を示すブロック図である。この図に示すように、印刷装置の制御系は、ＣＰＵ（Central Processing Unit）５０、ＲＯＭ（Read Only Memory）５１、ＲＡＭ（Random Access Memory）５２、ＥＥＰＲＯＭ（Electrically Erasable and Programmable ROM）５３、ＧＰ（Graphic Processor）５４、Ｉ／Ｆ（Interface）５５、バス５６、ＬＣＤ１７、操作ボタン１８、カードＭが挿入されるカードスロット２１、カードＩ／Ｆ回路６０、プリンタエンジンコントローラ６２、紙送りモータ６３、ローラ６４、キャリッジモータ６５、駆動ベルト６６、キャリッジ６７、および、記録ヘッド６８を有している。
【００２４】
ここで、抽出手段、判定手段、補正手段、拡大手段、および、縮小手段としてのＣＰＵ５０は、ＲＯＭ５１およびＥＥＰＲＯＭ５３に格納されているプログラムに応じて各種演算処理を実行するとともに、紙送りモータ６３およびキャリッジモータ６５をはじめとする装置の各部を制御する。
【００２５】
ＲＯＭ５１は、ＣＰＵ５０が実行する各種プログラムや各種データを格納している半導体メモリである。ＲＡＭ５２は、ＣＰＵ５０が実行対象とするプログラムやデータを一時的に格納する半導体メモリである。
【００２６】
ＥＥＰＲＯＭ５３は、ＣＰＵ５０における演算処理結果の所定のデータ等が格納され、印刷装置の電源が切断された後も該データを保持する半導体メモリである。
【００２７】
ＧＰ５４は、ＣＰＵ５０から供給されが描画命令に基づいて描画処理を実行し、得られた画像データをＬＣＤ１７に供給して表示させる。
【００２８】
Ｉ／Ｆ５５は、操作ボタン１８、カードＩ／Ｆ回路６０、および、プリンタエンジンコントローラ６２の間で情報を授受する際に、データの表現形式を適宜変換する装置である。
【００２９】
バス５６は、ＣＰＵ５０、ＲＯＭ５１、ＲＡＭ５２、ＥＥＰＲＯＭ５３、ＧＰ５４、および、Ｉ／Ｆ５５、を相互に接続し、これらの間で情報の授受を可能とするための信号線群である。
【００３０】
操作ボタン１８は、前述したように、メニュー選択等を行う場合に操作される。メモリカードＭは、前述したように、ディジタルカメラによって撮像された画像データが格納されている不揮発メモリである。
【００３１】
カードスロット２１は、前述したように印刷装置１１のケース１２の前面右側に設けられており、当該部分にメモリカードＭが挿入される。カードＩ／Ｆ回路６０は、メモリカードＭとの間で情報を読み書きするためのインタフェースである。
【００３２】
プリンタエンジンコントローラ６２は、紙送りモータ６３、キャリッジモータ６５、および、記録ヘッド６８を制御するための制御装置である。紙送りモータ６３は、ローラ６４を回転させることにより印刷用紙またはロール紙Ｒを副走査方向に移動させる。ローラ６４は、円柱状の部材によって構成され、印刷用紙またはロール紙Ｒを副走査方向に移動させる。
【００３３】
キャリッジモータ６５は、キャリッジ６７に一端が固定されている駆動ベルト６６に駆動力を与えることにより、キャリッジ６７を主走査方向に往復動させる。記録ヘッド６８は、印刷用紙に対向する面に複数のノズルが形成されており、当該複数のノズルからインクを吐出させることにより情報を印刷用紙に記録する。
【００３４】
つぎに、以上の実施の形態の動作について説明する。
【００３５】
図３は、以上の実施の形態の動作を説明するためのフローチャートである。このフローチャートの処理が開始されると、以下のステップが実行される。なお、この処理は、メモリカードＭがカードスロット２１に挿入された後、所定の画像または画像群を印刷することが指示された場合に、ＲＯＭ５１に格納されているプログラムを読み出して実行することにより、実現される。
【００３６】
ステップＳ１０：ＣＰＵ５０は、印刷の対象となる画像ファイルをメモリカードＭから取得し、ハフマン解凍処理を実行し、量子化ＤＣＴ（Discrete Cosine Transform）係数を得る。図４に示すように、画像ファイル７０は、ヘッダ情報７１、テーブル７２、および、圧縮データ７３によって構成されている。ここで、ヘッダ情報７１は、例えば、ファイル名、圧縮方式、画像サイズ、密度単位等の情報を有している。テーブル７２は、例えば、量子化テーブルおよびエントロピー符号化テーブル等によって構成されている。圧縮データ７３は、ＪＰＥＧ（Joint Photographic Coding Experts Group）方式により圧縮された画像データによって構成されている。ＣＰＵ５０は、図４に示す画像ファイル７０のテーブル７２からエントロピー符号化テーブルを取得し、圧縮データ７３に含まれているＹ（輝度）成分、Ｃｒ（色差成分）、および、Ｃｂ（色差成分）のそれぞれのブロックのＤＣ係数と、ＡＣ係数とを復号する。なお、この際、最小符号化単位であるＭＣＵ単位で復号を行う。
【００３７】
ステップＳ１１：ＣＰＵ５０は、ステップＳ１１において得られた量子化ＤＣＴ係数を逆量子化する。具体的には、ＣＰＵ５０は、図４に示す画像ファイル７０のテーブル７２から量子化テーブルを取得し、ステップＳ１１において得られた量子化ＤＣＴ係数に乗じることにより（逆量子化することにより）、ＤＣＴ係数を得る。
【００３８】
ステップＳ１２：ＣＰＵ５０は、印刷する際に画像を回転させる必要がある場合には、画像を回転させる（例えば、右に９０度回転させる）ために必要な情報を、例えば、ＲＡＭ５２にキャッシュする。具体的には、ＪＰＥＧ方式によって圧縮された画像を回転させる場合、ＭＣＵのＤＣ成分（直流成分）とＡＣ成分（交流成分）のそれぞれを一度ハフマン展開しなければならない。ここで、ＤＣ成分については隣接するＤＣ成分値の差分をハフマン符号化することから、隣接するＭＣＵとの相関関係が問題となる。また、ＡＣ成分ではハフマン符号化処理によりそのデータ長が各ＭＣＵで一定にならず、ＪＰＥＧデータのビットストリーム中のどのデータが求めるＭＣＵのＡＣ成分値であるかが不明となることが問題となる。そこで、ステップＳ１２の処理では、各ＭＣＵのＤＣ成分値とＡＣ成分のアドレスを求めてキャッシュしておくことにより、ローテート処理を可能とする。
【００３９】
ステップＳ１３：ＣＰＵ５０は、ステップＳ１１で得られたＤＣＴ係数に対して逆ＤＣＴ演算を施すことによりもとの画素値を得る。
【００４０】
ステップＳ１４：ＣＰＵ５０は、ステップＳ１３の処理によって得られたＹＣＣ方式の画像をＲＧＢ（Red Green Blue）方式の画像と、ＨＳＢ（Hue Saturation Brightness）方式の画像に変換する。
【００４１】
ステップＳ１５：ＣＰＵ５０は、ステップＳ１３およびステップＳ１４の処理において得られたＹＣＣ，ＲＧＢ，ＨＳＢのそれぞれの画像をＲＡＭ５２に格納して保持する。なお、このとき、データ量を削減するために画素を所定の割合で間引きした後にＲＡＭ５２に格納してもよい。
【００４２】
ステップＳ１６：ＣＰＵ５０は、ステップＳ１５においてＲＡＭ５２に格納されたＹＣＣ，ＲＧＢ，ＨＳＢそれぞれの画像の成分について、ヒストグラムを計算する。具体的には、ＲＧＢ画像については、Ｒ，Ｇ，Ｂそれぞれの画像についてヒストグラムを計算する。その結果、画像を構成する各成分の分布を得る。
【００４３】
ステップＳ１７：ＣＰＵ５０は、全てのＭＣＵについての処理が終了したか否かを判定し、終了した場合にはステップＳ１８に進み、それ以外の場合にはステップＳ１０に戻って同様の処理を繰り返す。
【００４４】
ステップＳ１８：ＣＰＵ５０は、ステップＳ１３の処理によって得られた画像の中央部をズームする処理を実行する。なお、この処理の詳細については、図６を参照して後述するが、概略を説明すると、つぎの通りである。すなわち、メインの被写体が人物である場合には、通常は、画像の中央部に人物像が存在している場合が多く、また、中央部分以外に存在する人物像については主な被写体でない場合が多い。そこで、画像から中央部分を抽出することにより、データ量を減らして、処理速度を向上させることができる。また、ズーム処理をすることにより、ステップＳ１９の顔抽出の対象となる目、口等の部分が拡大され、また、拡大によって画素値が平均化されてノイズ成分が減少するので、顔抽出処理の精度を向上させることができる。
【００４５】
ステップＳ１９：ＣＰＵ５０は、ステップＳ１８において抽出された画像に含まれている顔の画像を抽出する処理を実行する。なお、この処理の詳細については、図８を参照して後述するが、概略を説明するとつぎの通りである。すなわち、この処理では、ステップＳ１８において抽出された画像に顔画像が含まれているか否かを判定するために、例えば、顔画像のテンプレートを利用し、当該テンプレートと相関が高い領域を顔画像が含まれている領域（以下、「顔領域」と称する）として特定する。なお、含まれている顔画像の大きさは、被写体とディジタルカメラの距離によって変化し、また、被写体が複数である場合も想定されるので、ステップＳ１９の処理では、大きさの異なる複数のテンプレートを用いて顔画像の検出を行うとともに、１０人分の顔領域が発見されるまで処理を繰り返すようにしている。なお、特定された顔領域については、例えば、その中心部分の座標または左上端の座標がＲＡＭ５２に格納される。
【００４６】
ステップＳ２０：ＣＰＵ５０は、ステップＳ１９の処理において顔画像が特定された場合にはステップＳ２１に進み、それ以外の場合にはステップＳ２３に進む。
【００４７】
ステップＳ２１：ＣＰＵ５０は、ステップＳ１９において特定された顔領域から顔色を取得する。具体的には、顔領域を構成する所定の画素を抽出してＲ，Ｇ，Ｂそれぞれの値を取得する。このとき、複数の画素を抽出して平均値または中央値を計算し、これらの値を用いるようにしてもよい。なお、複数の顔領域が特定された場合にはそれぞれの顔領域から顔色を取得し、例えば、中央値または平均値を計算する。
【００４８】
ステップＳ２２：ＣＰＵ５０は、ステップＳ２１において取得された顔色が、正常な顔色となる補正パラメータを算出する。具体的には、Ｒ，Ｇ，Ｂのバランスが適正値からずれている場合には、色かぶりが生じているとして、正常値に補正するための補正パラメータをＲ，Ｇ，Ｂそれぞれについて算出する。また、Ｒ，Ｇ，Ｂのトータル値がずれている場合には、露光が適正でないとして、露光を適正とするための補正パラメータをＲ，Ｇ，Ｂそれぞれについて算出する。
【００４９】
なお、顔色は、人種および光源の種類によって異なる。そこで、ＲＯＭ５１に格納されているテーブル（図５参照）を参照して、取得したＲ，Ｇ，Ｂから適正な補正パラメータを算出する。図５の例では、第１〜第３の肌色が列挙してある。ここで、第１の肌色は白色系、第２の肌色は黄色系、第３の肌色は黒色系の肌色となっている。図５では、第１から第３の肌色のそれぞれについて、太陽光、蛍光灯、白熱光を光源とした場合のＲ，Ｇ，Ｂそれぞれの値の範囲が列挙されている。ステップＳ２２の処理では、顔領域の複数のポイントから画素をサンプリングし、サンプリングされた画素のＲ，Ｇ，Ｂ値の平均値または中央値を算出し、図５に示すテーブルと比較することにより、対象となる顔の肌色の種類と、光源の種類を特定する。そして、画素の平均値のＲ，Ｇ，Ｂのそれぞれの値が図５に示すテーブルの中央値（適正値）となるような補正パラメータを求める。なお、複数人の顔領域が特定された場合には、それぞれの顔領域から複数点におけるサンプリングを行い、得られた複数人分の画素の平均値または中央値を算出し、これらの値に基づいて、補正パラメータを算出する。
【００５０】
ステップＳ２３：ＣＰＵ５０は、印刷対象となる画像ファイルにおいて、解凍処理の対象となる位置を示すファイルポインタをリセットし、処理位置を画像ファイルの先頭に復元する。
【００５１】
ステップＳ２４：ＣＰＵ５０は、ＲＡＭ５２にキャッシュされた１ＭＣＵライン分の画像データにハフマン解凍処理を施し、量子化ＤＣＴ係数を得る。ここで、１ＭＣＵラインとは、画像を回転させる場合には、画像を構成する列方向に１列のＭＣＵ群をいい、回転させない場合には、画像を構成する行方向に１列のＭＣＵ群をいう。
【００５２】
ステップＳ２５：ＣＰＵ５０は、ステップＳ２４の処理において得られた量子化ＤＣＴ係数を逆量子化する。
【００５３】
ステップＳ２６：ＣＰＵ５０は、ステップＳ２５で得られたＤＣＴ係数に対して逆ＤＣＴ演算を施すことによりもとのデータを得る。
【００５４】
ステップＳ２７：ＣＰＵ５０は、ステップＳ２６の処理によって得られたＹＣＣ方式の画像をＲＧＢ方式の画像に変換する。
【００５５】
ステップＳ２８：ＣＰＵ５０は、ステップＳ２７において得られたＲＧＢ方式の画像を構成する各画素に対して補正処理を施す。具体的には、それぞれの画素に対して、ステップＳ２２において算出した補正パラメータを適用することにより、色かぶりを解消するとともに、露出が適正となるように補正する。
【００５６】
ステップＳ２９：ＣＰＵ５０は、補正処理の結果得られた画像データを、プリンタエンジンコントローラ６２の図示せぬバンドバッファに供給し、印刷処理を実行させる。この結果、プリンタエンジンコントローラ６２は、記録ヘッド６８を制御して画像データに対応するインクを吐出させ、キャリッジモータ６５を駆動して記録ヘッド６８を主走査方向に移動させるとともに、紙送りモータ６３を駆動して副走査方向に移動させ、画像を印刷する。
【００５７】
ステップＳ３０：ＣＰＵ５０は、ＲＡＭ５２にキャッシュされている画像データを、つぎの処理に備えて更新する。
【００５８】
ステップＳ３１：ＣＰＵ５０は、処理を終了するか否かを判定し、終了しない場合にはステップＳ２４に戻って同様の処理を繰り返し、それ以外の場合には処理を終了する。
【００５９】
つぎに、図６を参照して、図３のステップＳ１８の詳細な処理について説明する。図６の処理が開始されると、以下のステップが実行される。
【００６０】
ステップＳ４０：ＣＰＵ５０は、ステップＳ１５の処理により、ＲＡＭ５２に保持されている画像データを所定の割合で間引きして縮小する処理を実行する。例えば、間引き後の画像がＱＶＧＡ（Quarter Video Graphics Array）サイズの画像となるように間引き処理を実行する。なお、処理の対象となる画像データとしては、例えば、Ｙ（輝度）成分画像を用いることができる。すなわち、画像データに顔領域が含まれているか否か検索する場合には、後述する白黒濃淡画像であるテンプレートとの類比を判断するので、検索対象となる画像データについても白黒濃淡画像である輝度成分であるＹ成分画像を利用する。
【００６１】
ステップＳ４１：ＣＰＵ５０は、ステップＳ４０において間引きされて得られた画像データを所定の大きさに拡大する処理を実行する。例えば、図７（Ａ）に示すように、実線で示す画像データよりも上下にｄ１画素（例えば、１０画素）、左右にｄ２画素（例えば、１０画素）だけ大きい破線で示す領域まで拡大する。なお、拡大処理の方法としては、例えば、最近傍補間、双一次補間、双三次補間、または、線形補間等を用いることができる。
【００６２】
ステップＳ４２：ＣＰＵ５０は、ステップＳ４１において拡大された画像データから、もとの大きさの画像データを切り出す処理を実行し、もとの処理に復帰する。例えば、図７（Ｂ）に示すように、ステップＳ４１で拡大された画像データからもとの大きさの画像データを切り出す。
【００６３】
以上の処理によれば、被写体である人物が写されている可能性が高い領域（中央部分の領域）の画像を抽出することができる。なお、以上の実施の形態では、画像を拡大した後に中央部分の領域を抽出するようにしたが、例えば、画像の中央部分の領域を抽出した後に、抽出した領域を拡大することも可能である。例えば、図８（Ａ）に示すように、画像から破線で示す領域を切り出した後、図８（Ｂ）に示すように、切り出した領域を拡大するようにしてもよい。このような方法によれば、処理コストを要する拡大処理の対象となる領域を狭くすることができるので、図７の場合に比較して、処理速度を短縮することができる。
【００６４】
つぎに、図９を参照して、図３のステップＳ１９に示す顔抽出処理の詳細について説明する。図９に示す処理が開始されると、以下のステップが実行される。
【００６５】
ステップＳ５０：ＣＰＵ５０は、テンプレートを指定する変数ｎに値“１”を初期設定し、テンプレートの走査位置を指定する変数ｘ，ｙに値“０”をそれぞれ初期設定する。
【００６６】
ステップＳ５１：ＣＰＵ５０は、変数ｎによって指定される第ｎ番目のテンプレート（詳細は後述する）をＲＯＭ５１から選択する。第１回目の処理では、変数ｎには値“１”が設定されているので、第１番目のテンプレートが選択される。図１０（Ａ）は、第１〜第５のテンプレートの一例を示している。この図に示すように、テンプレートは顔の特徴点（目、鼻、口等）を含む画像であり、第１〜第５の順でそのサイズが小さくなっている。なお、テンプレートの画像の解像度が高い場合には、各個人の顔の特徴に影響を受けてマッチング処理の精度が低下するので、図１０（Ｂ）に示すように、テンプレートにモザイク処理を施すことにより、各個人の特徴に影響を受けにくくしている。
【００６７】
ステップＳ５２：ＣＰＵ５０は、ステップＳ１８の処理によってズームされた画像データからｘ，ｙを左上端とし、ステップＳ５１で選択したテンプレートに対応するサイズの領域を抽出する。なお、以下では、抽出された画像データを抽出画像データと称する。いまの例では、ｘ，ｙ＝０であり、第１のテンプレートが選択されているので、ｘ，ｙ＝０を左上端とし、第１のテンプレートと同じサイズの領域が抽出画像データとして抽出される。
【００６８】
ステップＳ５３：ＣＰＵ５０は、ステップＳ５１において選択したテンプレートと、ステップＳ５２において抽出された抽出画像データとのマッチング処理を実行する。マッチング方法としては、例えば、抽出画像データと、テンプレートの各画素の差分の２乗を累積加算し、所定の閾値以下になった場合には、これらの類似性が高い（顔が含まれている）と判断することができる。なお、これ以外にも、例えば、ニューラルネットワークを利用することも可能である。その場合、例えば、入力層、中間層、および、出力層の３層構造を有するニューラルネットワークを利用し、入力層にテンプレートの画像を、例えば、位置等をずらしながら入力して学習を行い、十分に学習を積んだニューラルネットワークを用いてマッチング処理を行うことが可能である。
【００６９】
また、ニューラルネットワークではなく、例えば、ジェネティックアルゴリズム（遺伝的アルゴリズム）を用いてマッチング処理を行うことも可能である。例えば、テンプレートを原画像に重ねる際のパラメータとして、テンプレートの種類ｎ、左上端のｘ，ｙ座標を定義し、各固体の染色体をこれらのパラメータに基づいて決定し、マッチング率を固体の適応度とみなして個体集団を進化させることにより、最適な個体をマッチング処理の結果とすることができる。
【００７０】
ステップＳ５４：ＣＰＵ５０は、ステップＳ５３の処理の結果に基づいて、ステップＳ５２で抽出された抽出画像データに顔が含まれているか否かを判定し、含まれていると判定した場合にはステップＳ５５に進み、それ以外の場合にはステップＳ５６に進む。例えば、前述した差分の２乗を計算するマッチング処理の場合には、累積加算値が所定の閾値よりも小さい場合には顔が含まれていると判定する。
【００７１】
ステップＳ５５：ＣＰＵ５０は、顔が存在すると判定された領域の中心の座標をＲＡＭ５２に記憶する。なお、中心座標を求めるには、現在選択されているテンプレートのサイズの半分の長さを、現在のｘ，ｙ座標に加算すればよい。
【００７２】
ステップＳ５６：ＣＰＵ５０は、それまでの処理で合計して１０人分の顔を検出したか否かを判定し、１０人分の顔を検出した場合には処理を終了してもとの処理に復帰し、それ以外の場合にはステップＳ５７に進む。例えば、第１のテンプレートで、３人の顔が検出され、第３のテンプレートで７人の顔が検出された場合には処理を終了してもとの処理に復帰する。
【００７３】
ステップＳ５７：ＣＰＵ５０は、抽出画像データが抽出される領域が画像データの右端に到達したか否かを判定し、到達した場合にはステップＳ５９に進み、それ以外の場合にはステップＳ５８に進む。すなわち、本発明の実施の形態では、図１１（Ａ）に示すように、画像データからテンプレートに対応した大きさの画像データを抽出し、図１１（Ｂ）に示す順序で抽出を繰り返す。このとき、画像を抽出する領域が右端に到達した場合には、ステップＳ５９に進む。
【００７４】
ステップＳ５８：ＣＰＵ５０は、左上端のｘ座標に対してΔｘを加算する。なお、Δｘは、選択されているテンプレートのサイズに応じて最適な値を決定する。例えば、テンプレートのサイズが小さい場合にはΔｘの値を小さくし、サイズが大きい場合にはΔｘの値を大きくする。
【００７５】
ステップＳ５９：ＣＰＵ５０は、左上端のｙ座標に対してΔｙを加算する。なお、Δｙは、前述のΔｘの場合と同様に、テンプレートのサイズに応じて決定する。
【００７６】
ステップＳ６０：ＣＰＵ５０は、左上端のｘ座標を“０”に設定する。その結果、画像を抽出する領域が画像の左端に復帰する。
【００７７】
ステップＳ６１：ＣＰＵ５０は、所定のテンプレートについて、全領域に対する処理が完了したか否かを判定し、終了したと判断した場合にはステップＳ６２に進み、それ以外の場合にはステップＳ５２に戻って同様の処理を繰り返す。
【００７８】
ステップＳ６２：ＣＰＵ５０は、ｘ，ｙのそれぞれに対して値“０”を設定する。その結果、画像を抽出する領域が画像データの左上端にリセットされる。
【００７９】
ステップＳ６３：ＣＰＵ５０は、テンプレートを選択するための変数ｎを“１”だけインクリメントする。いまの例では、変数ｎには初期値“１”が設定されているので、変数ｎの値はこの処理により“２”となる。その結果、ステップＳ５１の処理では第２のテンプレートが選択されることになる。
【００８０】
ステップＳ６４：ＣＰＵ５０は、変数ｎの値がテンプレートの最大値を示す値Ｎよりも大きいか否かを判定し、大きい場合には処理を終了する。いまの例では、図１０に示すように、Ｎ＝５であるので、ｎ＞５である場合には処理を終了してもとの処理に復帰し、それ以外の場合にはステップＳ５１に戻って同様の処理を繰り返す。
【００８１】
以上に説明したように、本発明の実施の形態によれば、画像データの中央部の領域を抽出して顔の有無を判定するようにしたので、処理の対象となる画像データを絞り込むことにより、処理速度を向上させることが可能になる。また、被写体となる人物は、画像の中央付近に存在する場合が多く、また、中央以外に存在する人物は主たる被写体ではない場合が多いので、処理の対象を効率よく絞り込むことが可能になる。
【００８２】
また、本発明の実施の形態によれば、対象となる画像を間引きにより縮小した後に、拡大するようにしたので、画像に含まれているノイズを除去し、マッチングの精度を向上させることができる。また、原画像よりも拡大することにより、特徴部分となる目、口、鼻等の要素を見つけ出しやすくすることができる。
【００８３】
なお、以上の実施の形態では、スタンドアロン型の印刷装置を例に挙げて説明を行ったが通常の印刷装置（パーソナルコンピュータと接続して使用するタイプの印刷装置）に対して本発明を適用することができる。また、図１２に示す、スキャナ装置、印刷装置、および、コピー装置が一体となったいわゆる複合型の印刷装置に対して本発明を適用することも可能である。
【００８４】
図１２の例では、印刷装置２１１は、装置全体を覆うケース２１２と、印刷媒体としての印刷用紙を供給する給紙装置２１３と、紙媒体等に印刷された画像を読み取るスキャナ部２３０と、印刷用紙に対して印刷を行う印刷部（不図示）とを備える。
【００８５】
ケース２１２は、略四角形状の箱体であり、上面にスキャナ部２３０が設けられており、また、前面中央部には、ＬＣＤ２１７と、各種操作ボタン２１８とを備える。ＬＣＤ２１７には、図１の場合と同様に、印刷装置２１１のメニュー機能、動作内容、動作状況、エラー内容などが表示され、操作ボタン２１８は、印刷装置２１１のメニュー選択等を行う時に押されるようになっている。
【００８６】
ケース２１２は、前面下部に、排出口２１２ａを備え、印刷された印刷用紙が排出されるようになっている。また、ケース２１２の前面右側には、カードスロット２２１が設けられており、例えばディジタルカメラなどによって撮影された画像データを記録するメモリカードＭが、取り外し自在に収納されるようになっている。
【００８７】
給紙装置２１３は、ケース２１２の背面側に設けられており、印刷用紙をストックするとともに、必要に応じて印刷装置２１１の内部に一枚ずつ供給する。
【００８８】
図１３は、図１２に示す複合型の印刷装置２１０の制御系の構成例を示す図である。なお、この図において、図２の場合と対応する部分には同一の符号を付してその説明を省略する。図１３の例では、図２の場合と比較して、操作ボタン１８が操作ボタン２１８に置換され、また、スキャナ部２３０が新たに付加されている。なお、その他の構成は、図２の場合と同様である。
【００８９】
ここで、操作ボタン２１８としては、スキャナ装置およびコピー装置を制御するためのボタンが新たに追加されている。スキャナ部２３０は、紙媒体に印刷されている画像を読み取るための光学系、撮像系、および、これらを制御するための制御系によって構成されており、ＣＰＵ５０の制御に応じて紙媒体に印刷された画像を読み取って、対応する画像データに変換して出力する。
【００９０】
このような複合型の印刷装置２１１では、メモリカードＭから読み込んだ画像データに対して、前述したような処理を実行することにより、画像に含まれている顔に応じて補正処理を行うことが可能となる。
【００９１】
また、図１２に示す実施の形態では、メモリカードＭのみならず、スキャナ部２３０によって読み込まれた画像に含まれている顔に応じて、補正処理を実行することも可能になる。すなわち、スキャナ部２３０に、例えば、写真等を配置してスキャンすることにより、画像を画像データに変換して読み込み、当該画像データに対して、前述の場合と同様の処理を実行することにより、人物の顔色に応じて補正処理を実行することができる。
【００９２】
なお、以上の実施の形態は、一例であって、これ以外にも種々の変形実施態様が存在する。例えば、以上の実施の形態では、画像データの抽出する領域は固定としたが、例えば、過去の処理に基づいて学習を行い、最適な範囲を設定するようにしてもよい。具体的には、画像データにおける顔が存在する確率が高い部分を過去のデータから特定し、当該部分を含むように領域を設定するようにすればよい。そのような方法によれば、最小限のコストで顔を発見することが可能になる。
【００９３】
また、以上の実施の形態では、中央部分の切り出す領域としては、略矩形形状の領域を設定するようにしたが、これ以外の形状に領域を切り出すようにしてもよい。例えば、台形形状、三角形状、あるいは、円形形状であってもよい。
【００９４】
また、以上の実施の形態では、中央部分の領域を拡大または縮小するようにしたが、拡大または縮小をせずに、切り出した領域の画像をそのまま用いて認識処理を実行するようにしてもよい。また、縮小および拡大を何度か繰り返すことにより、ノイズ成分を減少させ、認識精度を向上させることも可能である。さらに、切り出した画像についてもモザイク処理を施した後に顔が含まれているか否かの検出処理を行うこともできる。
【００９５】
また、以上の実施の形態では、ＹＣＣ方式の画像のＹ画像を利用して顔を検出するようにしたが、例えば、ＲＧＢ方式の画像から黒白濃淡画像を生成し、当該白黒濃淡画像から顔を検出することも可能である。
【００９６】
また、以上の実施の形態では、顔の大きさに拘わらず、１０人検出した場合に、処理を終了するようにしたが、例えば、小さい顔については重要度が低いと考えることができることから、大きい顔が所定の個数見つかった場合には、処理を終了するようにしてもよい。そのような実施の形態によれば、処理速度を向上させることができる。また、それぞれの大きさについて、個数を定めておき、定められた個数の顔が検出された場合には処理を終了するようにしてもよい。例えば、第１のテンプレートでは１つ、第２のテンプレートでは２つ、といった具合である。そのような処理によれば、主な被写体と考えられる大きな顔が検出された場合には、迅速に処理を終了することにより、処理時間を短縮することができる。
【００９７】
また、以上の実施の形態では、正面を向いた顔に対応するテンプレートを使用するようにしたが、例えば、上、下、右、および、左を向いたテンプレートを用いるようにしてもよい。その場合、正面と上、下、右、左の中間の段階のテンプレートを複数用意し、それぞれのテンプレートとのマッチング処理を実行してもよい。そのような実施の形態によれば、被写体の人物が正面以外の方向を向いている場合であっても、顔として認識される確率を向上させることができる。
【００９８】
また、以上の実施の形態では、図１１（Ｂ）に示す順序で顔を検出するようにしたが、例えば、顔が含まれている蓋然性が最も高い、画面の中央から外側に向かって、螺旋状に旋回しながら検出するようにしてもよい。なお、そのとき、画面の中央部分では、抽出範囲の移動ステップを小さくし、外側に行くほどステップを大きくするようにしてもよい。そのような実施の形態によれば、例えば、顔が存在する蓋然性に応じたステップで検出処理を実行することができる。また、前述の大きい顔が見つかった場合には処理を終了する実施の形態と併せて実施するようにすれば、処理速度を向上させることが可能になる。
【００９９】
また、以上の実施の形態では、抽出画像データを拡大する方法としては、線形補間を利用するようにしたが、これ以外の処理によって拡大処理することも可能である。例えば、補間点から最も近くにある画像構成点の色をそのまま補間点の色とするニアレストネーバー法、補間点の周囲にある４画像構成点の色の加重平均値を補間点の色とするバイリニア法、および、補間点の周囲にある４×４＝１６画像構成点をキュービックスプライン法により補間した結果を補間点の色とするバイキュービック法等を用いることができる。
【０１００】
また、以上の実施の形態では、図３，６，９に示す処理を、印刷装置１１または印刷装置２１１において実行するようにしたが、例えば、印刷装置１１または印刷装置２１１に接続されているホストコンピュータにおいて実行することも可能である。
【０１０１】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、画像処理装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Digital Versatile Disk）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disk ROM）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０１０２】
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１０３】
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【図面の簡単な説明】
【０１０４】
【図１】本発明の実施の形態に係る印刷装置の構成例を示す図である。
【図２】図１に示す印刷装置の制御系の構成例を示す図である。
【図３】図１に示す印刷装置において実行される処理を説明する図である。
【図４】図１に示す印刷装置の印刷対象となるファイルを示す図である。
【図５】顔色と光源との関係を示す図である。
【図６】図３に示すステップＳ１８の処理の詳細を示す図である。
【図７】図６に示す処理の詳細を説明する図である。
【図８】拡大処理の他の処理方法を示す図である。
【図９】図３に示すステップＳ１９の処理の詳細を示す図である。
【図１０】図９に示す処理において利用されるテンプレートを示す図である。
【図１１】図９に示す処理による顔検出の流れを示す図である。
【図１２】複合型の印刷装置の外観を示す図である。
【図１３】複合型の印刷装置の制御系の構成例を示す図である。
【符号の説明】
【０１０５】
５０  ＣＰＵ（抽出手段、判定手段、補正手段、拡大手段、縮小手段）、５１  ＲＯＭ、５２  ＲＡＭ、  ６２  プリンタエンジンコントローラ
【図１】
2006277274.tif 000003
【図２】
2006277274.tif 000004
【図３】
2006277274.tif 000005
【図４】
2006277274.tif 000006
【図５】
2006277274.tif 000007
【図６】
2006277274.tif 000008
【図７】
2006277274.tif 000009
【図８】
2006277274.tif 000010
【図９】
2006277274.tif 000011
【図１０】
2006277274.tif 000012
【図１１】
2006277274.tif 000013
【図１２】
2006277274.tif 000014
【図１３】
2006277274.tif 000015