(57)【要約】【課題】画像データから人の顔に相当する領域を検出する顔認識処理を行う画像処理方法および装置において、顔認識処理をより効率よく短時間で行う。【解決手段】画像データが表す画像内における人の顔に相当する顔領域を特定する顔情報を取得し（ステップＳ１７）、該顔情報により特定される顔領域が肌色であるか否かを判定し（ステップＳ１９、Ｓ２０）、判定工程において肌色でないと判定された顔領域があるとき（ステップＳ２１）、当該顔領域についての顔情報に基づいて画像内の一部領域を検索対象領域として設定し、該検索対象領域内で所定の適合条件に適合する領域を検索し該領域を顔領域として認識する顔認識処理（ステップＳ２２〜Ｓ３５）を実行する。【選択図】図５
2012146164.tif 000002
【特許請求の範囲】
【請求項１】
画像データが表す画像内における人の顔に相当する顔領域を特定するための情報として当該画像データに付加された顔情報を取得する顔情報取得工程と、
前記顔情報により特定される前記顔領域が肌色であるか否かを判定する判定工程と、
前記画像内で所定の適合条件に適合する領域を検索し該領域を顔領域として認識する顔認識処理を実行する顔認識処理工程と
を備え、
前記顔認識処理工程では、前記判定工程において肌色でないと判定された前記顔領域があるとき、当該顔領域についての前記顔情報に基づいて前記画像内の一部領域を検索対象領域として設定し、該検索対象領域内で前記適合条件に適合する領域を検索する
ことを特徴とする画像処理方法。
【請求項２】
前記検索対象領域は、前記判定工程において肌色でないと判定された前記顔領域に隣接する隣接領域の少なくとも一部を含む請求項１に記載の画像処理方法。
【請求項３】
前記顔認識処理工程では、前記判定工程において肌色であると判定された前記顔領域については当該領域をそのまま顔領域として認識する請求項１または２に記載の画像処理方法。
【請求項４】
前記顔認識処理工程において検索される顔領域のサイズが、前記顔情報により特定される前記顔領域のサイズに基づいて設定される請求項１ないし３のいずれかに記載の画像処理方法。
【請求項５】
前記判定工程では、ＨＳＢ色空間におけるＨ値に対して肌色と見なす適合範囲を予め定め、前記顔情報により特定される前記顔領域の前記Ｈ値が前記適合範囲内にあるときに当該顔領域が肌色であると判定する請求項１ないし４のいずれかに記載の画像処理方法。
【請求項６】
前記判定工程において肌色と判定された顔領域および前記顔認識処理工程において検出された顔領域のいずれかが少なくとも１つあるとき、当該顔領域に対して顔色補正処理を実行する補正工程を備える請求項１ないし５のいずれかに記載の画像処理方法。
【請求項７】
画像データが表す画像内における人の顔に相当する顔領域を特定するための情報として当該画像データに付加された顔情報を取得する顔情報取得工程と、
前記顔情報により特定される前記顔領域が肌色であるか否かを判定する判定工程と、
前記判定工程において肌色でないと判定された前記顔領域があるとき、当該顔領域についての前記顔情報に基づいて前記画像内の一部領域を検索対象領域として設定し、該検索対象領域内で所定の適合条件に適合する領域を検索し該領域を顔領域として認識する顔認識処理を実行する顔認識処理工程と
をコンピューターに実行させることを特徴とする制御プログラム。
【請求項８】
画像データが表す画像内における人の顔に相当する顔領域を特定するための顔情報が付加された画像データを取得する画像データ取得手段と、
前記画像データに基づき、前記顔情報により特定される前記顔領域の色相を算出する算出手段と、
算出された色相の値に基づいて前記顔領域が肌色であるか否かを判定する判定手段と、
前記判定手段において肌色でないと判定された前記顔領域があれば、当該顔領域についての前記顔情報に基づいて前記画像内の一部領域を検索対象領域として設定し、該検索対象領域内で所定の適合条件に適合する領域を検索し該領域を顔領域として認識する顔認識処理を実行する顔認識処理手段と
を備えることを特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、画像処理方法および画像処理装置に関するものであり、特に画像から人の顔に相当する領域を検出する顔認識技術に関する。
【背景技術】
【０００２】
被写体を撮影して画像データを生成するデジタルカメラなどの撮像装置や、該画像データを表示または印刷するプリンターなどの出力装置では、画像内に含まれる人の顔に相当する領域を検出する顔認識機能を持つものが実用化されている。例えば、特許文献１に記載の技術においては、デジタルカメラ等での撮像時に生成された撮影情報、より具体的には画像内で検出された顔の数、位置、サイズ等の顔情報が画像データに付加されて画像処理装置である例えばプリンターに受け渡される。
【０００３】
一方、プリンター側では、取得した顔情報に基づいて改めて画像内で顔認識を行う。これは、カメラ側での顔認識が主に撮影条件を決定するために撮像前に行われるものであり、顔認識後に被写体が動くなどの理由により、顔情報が実際の画像内での顔の位置等を正確に示していないケースがあることに対応するためである。そして、画像データに付帯した顔情報を顔認識時に参照することで、画像処理装置での顔認識の処理時間の短縮および検出精度の向上が図られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−００３１６５号公報（例えば、図２）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記した従来技術では、カメラ等での顔認識精度に関係なくその顔認識結果を全て再検証することになるため、顔認識処理が重複して実行され非効率的であるという問題があった。また、例えば画像に多くの顔が含まれている場合、画像処理装置側での顔認識処理に時間がかかることとなっていた。
【０００６】
この発明にかかるいくつかの態様は、画像データから人の顔に相当する領域を検出する顔認識処理を行う画像処理方法および装置において、上記課題を解決し、顔認識処理をより効率よく短時間で行うことのできる技術を提供するものである。
【課題を解決するための手段】
【０００７】
この発明の一の態様は、上記課題を解決するため、画像データが表す画像内における人の顔に相当する顔領域を特定するための情報として当該画像データに付加された顔情報を取得する顔情報取得工程と、前記顔情報により特定される前記顔領域が肌色であるか否かを判定する判定工程と、前記画像内で所定の適合条件に適合する領域を検索し該領域を顔領域として認識する顔認識処理を実行する顔認識処理工程とを備え、前記顔認識処理工程では、前記判定工程において肌色でないと判定された前記顔領域があるとき、当該顔領域についての前記顔情報に基づいて前記画像内の一部領域を検索対象領域として設定し、該検索対象領域内で前記適合条件に適合する領域を検索することを特徴とする画像処理方法である。
【０００８】
また、この発明の他の態様は、上記各工程をコンピューターに実行させることを特徴とする制御プログラムである。
【０００９】
これらの発明では、画像データに付加された顔情報により特定される顔領域について、前記した従来技術のように無条件に再度顔認識処理を行うのでなく、まず当該顔領域の色を判定し、肌色でないと判定された、つまり顔でない可能性の高い顔領域があった場合に顔認識処理を行う。そして、この場合の顔認識処理については、画像全体で行うのではなく、画像データに付加された顔情報に基づいて設定した、画像の一部領域である検索対象領域について行う。このため、本発明によれば、画像全体について顔認識を行う従来技術や、上記した特許文献１に記載の従来技術に比して、顔認識処理をより効率よく短時間で行うことが可能となる。
【００１０】
ここで、例えば、検索対象領域は、判定工程において肌色でないと判定された顔領域に隣接する隣接領域の少なくとも一部を含むようにしてもよい。このようにすると、顔情報から特定される位置の近傍で新たな顔が検索されることとなる。例えば撮像時において顔認識が終わって撮像されるまでの間にカメラ等の撮像装置または被写体が少し動いた場合を考えると、顔情報で特定される位置から少しずれた位置に顔がある可能性が高い。そこで、顔情報で特定される位置の近傍で顔を検索することで、効率よく顔を検出することが可能となる。
【００１１】
また、例えば、顔認識処理工程では、判定工程において肌色であると判定された顔領域については顔情報が正しく顔の位置を特定しているものと考えられることから、当該領域をそのまま顔領域として認識するようにしてもよい。このように、検証により信憑性が高いと認められた顔認識結果をそのまま利用することで、処理に要する時間をさらに短縮することができる。
【００１２】
また、例えば、顔認識処理工程において検索される顔領域のサイズが、顔情報により特定される顔領域のサイズに基づいて設定されてもよい。前記したように、顔情報で特定される顔領域が実際には顔でないとされる場合、被写体が動いた可能性がある。この場合、移動した顔のサイズまでもが大きく変わることは考えにくいから、顔情報により特定される顔領域のサイズを基にして検索する顔サイズを定めることで、効率よく顔認識を行うことができる。また、顔の位置ではなくその画像に対する傾きが変わることもあるので、顔情報により特定される顔領域の傾き角度を基にして検索する顔の傾き角度を定めるようにしてもよい。
【００１３】
また、判定工程において、顔領域が肌色であるか否かについては、当該領域の画像の色を適当な色表示パラメータを用いて定量的に表現し、そのパラメータの値に基づいて判定することができる。例えば、ＨＳＢ色空間において色相を指標するパラメータであるＨ値に対して肌色と見なす適合範囲を予め定め、顔情報により特定される顔領域のＨ値が適合範囲内にあるときに当該顔領域が肌色であると判定することができる。このように、顔情報で特定される顔領域内の画像を定量的に示すパラメータを用いて判定を行うことにより、実際に顔認識処理を行うのに比べて遥かに演算量の少ない簡単な処理で、しかも一義的に当該領域の判定を行うことができる。
【００１４】
また、この発明にかかる他の態様は、上記課題を解決するため、画像データが表す画像内における人の顔に相当する顔領域を特定するための顔情報が付加された画像データを取得する画像データ取得手段と、前記画像データに基づき、前記顔情報により特定される前記顔領域の色相を算出する算出手段と、算出された色相の値に基づいて前記顔領域が肌色であるか否かを判定する判定手段と、前記判定手段において肌色でないと判定された前記顔領域があれば、当該顔領域についての前記顔情報に基づいて前記画像内の一部領域を検索対象領域として設定し、該検索対象領域内で所定の適合条件に適合する領域を検索し該領域を顔領域として認識する顔認識処理を実行する顔認識処理手段とを備えることを特徴とする画像処理装置である。
【００１５】
このように構成された発明では、上記した画像処理方法の発明と同様に、画像データに付加された顔情報により特定される顔領域に肌色でないと判定されたものがあるときに、該顔情報に基づいて設定された検索対象領域内で顔認識処理が行われる。そのため、上記した画像処理方法の発明と同様に、顔認識処理を効率よく短時間で行うことが可能である。
【図面の簡単な説明】
【００１６】
【図１】本発明にかかる画像処理装置の一実施形態を用いた印刷システムを示す図。
【図２】デジタルカメラで作成される画像ファイルの一例を示す図。
【図３】図２の部分拡大図。
【図４】顔認識処理により認識された顔の一例を示す図。
【図５】この発明にかかる顔認識処理の第１実施形態を示すフローチャート。
【図６】図１の印刷装置で実行される印刷動作を示すフローチャート。
【図７】ＨＳＢ色空間による色表現の例を模式的に示す図。
【図８】顔領域についての色判定のより具体的な態様を示す図。
【図９】この発明にかかる顔認識処理の第２実施形態を示すフローチャート。
【図１０】第２実施形態におけるパラメータ設定処理を示すフローチャート。
【図１１】カメラ顔情報とパラメータの設定値との対応関係を説明するための図。
【発明を実施するための形態】
【００１７】
図１は、本発明にかかる画像処理装置の一実施形態を用いた印刷システムを示す図である。この印刷システムは、デジタルカメラ２００の撮影により取得された画像データを、メモリカードＭ、ＵＳＢ（Universal Serial Bus）ケーブルや無線ＬＡＮ（Local Area Network）等によって印刷装置１００に転送し、印刷装置１００で印刷するものである。すなわち、ここではユーザーがデジタルカメラ２００で画像を撮影して画像データを生成し、その画像データをそのまま印刷装置１００で読み込んで印刷する、いわゆるダイレクト印刷を想定しているが、本発明を適用可能な印刷システムはこれに限定されるものではない。つまり、デジタルカメラ２００で生成した画像データをパーソナルコンピューターや携帯電話などに取り込み、パーソナルコンピューターから印刷装置１００に画像データを送信して印刷する印刷システムにも本発明を適用することが可能である。さらに、このような印刷装置１００を備えるシステムに限定されず、画像データに対して種々の処理を施す画像処理装置全般に対して、本発明を適用可能である。
【００１８】
デジタルカメラ２００では、同図に示すように、ＣＰＵ（Central Processing Unit）２０１、ＲＯＭ（Read Only Memory）２０２、ＲＡＭ（Random Access Memory）２０３、ＣＣＤ（Charge Coupled Device）２０４、グラフィックプロセッサー（Graphic Processor；ＧＰ）２０５およびインターフェース（Interface；Ｉ／Ｆ）２０６がバス２０７を介して相互に接続され、これらの間で情報の授受が可能となっている。そして、ＣＰＵ２０１はＲＯＭ２０２に格納されているプログラムに応じて各種演算処理を実行しながらデジタルカメラ２００の制御を行う。このとき一時的に必要となるデータはＲＡＭ２０３に格納される。また、ＣＣＤ２０４は、光学系２０８によって集光された被写体からの光学像を電気信号に変換して出力する。この光学系２０８は、複数のレンズおよびアクチュエータによって構成されており、アクチュエータによってフォーカス等を調整しながら被写体の光学像を複数のレンズによってＣＣＤ２０４の受光面に結像する。さらに、ＧＰ２０５は、ＣＰＵ２０１から供給される表示命令に基づいて表示用の画像処理を実行し、得られた表示用画像データを液晶ディスプレイ（Liquid Crystal Display；ＬＣＤ）２０９に供給して表示させる。
【００１９】
Ｉ／Ｆ２０６はデジタルカメラ２００の入出力機能を提供するものであり、操作ボタン２１０、ジャイロセンサー２１１およびカードＩ／Ｆ回路２１２の間で情報を授受する際に、データの表現形式を適宜変換する装置である。Ｉ／Ｆ２０６に接続される操作ボタン２１０には、電源、モード切替え、シャッターなどのボタンや、各種機能を設定できる入力手段があり、これらによってユーザーはデジタルカメラ２００を任意に制御して動作させることが可能となっている。また、ジャイロセンサー２１１はデジタルカメラ２００によって被写体を撮影した際のカメラ本体の角度（水平面に対する角度）を示す信号を生成して出力する。デジタルカメラ２００は、上記したカメラ本体の角度を含め、撮影時における種々の情報（例えば、露光、被写体等に関する情報）を生成する。
【００２０】
なお、本実施形態では、デジタルカメラ２００は、撮影情報をＥｘｉｆ（Exchangeable Image File Format）情報に記載し、画像データに付加した画像ファイルを生成することができる構造となっている。このＥｘｉｆ画像ファイルの構造は、基本的には通常のＪＰＥＧ（Joint Photographic Experts Group）画像形式そのものであり、その中にサムネイル画像や撮影関連データ等のデータをＪＰＥＧの規約に準拠した形で埋め込んだものである。
【００２１】
また、カードＩ／Ｆ回路２１２はカードスロット２１３に挿入されたメモリカードＭとの間で情報を読み書きするためのインタフェースである。さらに、Ｉ／Ｆ２０６は図示を省略するＵＳＢ、無線ＬＡＮなどの外部機器との接続機能も有しており、有線または無線にて印刷装置１００との間で画像ファイルの授受が可能となっている。なお、デジタルカメラ２００で作成され、印刷装置１００に与えられる画像ファイル（画像データ＋Ｅｘｉｆ情報）については、後で詳述する。
【００２２】
印刷装置１００はデジタルカメラ２００で撮像された画像を印刷する装置であり、次のように構成されている。印刷装置１００では、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、ＥＥＰＲＯＭ（Electrically Erasable and Programmable ROM）１０４、ＧＰ１０５およびＩ／Ｆ１０６がバス１０７を介して相互に接続され、これらの間で情報の授受が可能となっている。ＣＰＵ１０１はＲＯＭ１０２およびＥＥＰＲＯＭ１０４に格納されているプログラムに応じて各種演算処理を実行するとともに印刷装置１００の各部を制御する。また、ＣＰＵ１０１が実行対象とするプログラムやデータについてはＲＡＭ１０３に一時的に格納される一方、印刷装置の電源が切断された後も保持しておくデータ等についてはＥＥＰＲＯＭ１０４に格納される。さらに、ＣＰＵ１０１は必要に応じてＧＰ１０５に対して表示命令を与え、この表示命令に応じてＧＰ１０５が表示用の画像処理を実行し、その処理結果をＬＣＤ１０８に供給して表示させる。
【００２３】
Ｉ／Ｆ１０６は、操作ボタン１０９、カードＩ／Ｆ回路１１０およびプリンターエンジンコントローラー１１１の間で情報を授受する際に、データの表現形式を適宜変換する装置である。印刷装置１００では、操作ボタン１０９は印刷装置１００のメニュー選択等を行う時に押されるように構成されている。また、カードＩ／Ｆ回路１１０は、カードスロット１１２と接続されており、このカードスロット１１２に挿入されたメモリカードＭからデジタルカメラ２００によって生成された画像ファイルを読み出す。なお、Ｉ／Ｆ１０６は、図示を省略するＵＳＢ、無線ＬＡＮなどの外部機器との接続機能も有しており、有線通信または無線通信にてデジタルカメラ２００との間で画像ファイルの授受が可能となっている。
【００２４】
そして、印刷装置１００は、メモリカードＭを介して、あるいはデータ通信により画像データを受け取ると、ＣＰＵ１０１により種々の処理を行うとともにプリンターエンジンコントローラー１１１によりプリンターエンジン１１３を制御し、これによって画像データに対応する画像を印刷する。以下、図２ないし図４に基づき画像ファイルの構成を説明した上で、本実施形態における画像処理動作および印刷動作について詳述する。
【００２５】
図２は上記のように構成されたデジタルカメラで作成される画像ファイルの一例を示す図である。また、図３は図２の部分拡大図、図４は顔認識処理により認識された顔の一例を示す図である。この実施形態では、デジタルカメラ２００はＣＣＤ２０４で撮像された画像データをＲＡＭ２０３に格納する。また、デジタルカメラ２００は、被写体に人物が含まれているときには顔認識処理を行う（なお、顔認識方式については従来より数多く提案されており、それらのうちいずれの方式を採用してもよい）。なお、本実施形態では、顔認識結果は、図４に示すような座標情報が顔位置の情報、つまり顔情報として表現される。すなわち、同図に示すように、画像データは所定の画像幅(Width)と画像高さ(Height)の画素で構成されており、Ｘが横軸、Ｙが縦軸を表しており、左上が原点（０，０）である。そして、画像データから顔が検出されると、その顔領域ＦＲを左上（ＬT）、左下（ＬB）、右上（ＲT）、右下（ＲB）の４点の座標で囲まれる領域で表し、顔領域ＦＲを示す座標、つまり顔座標（顔位置）を、認識した顔の個数（つまり顔個数）ＮｃとともにＲＡＭ２０３に格納する。また、本明細書では、後で説明するように、印刷装置１００においてもデジタルカメラ２００での顔認識と同様に顔認識を行って顔座標を求めるため、デジタルカメラ２００での顔認識により得られる顔座標を「カメラ顔座標」と称し、左上（ＬTｃ）、左下（ＬBｃ）、右上（ＲBｃ）、右下（ＲBｃ）で示す。また、顔認識処理により複数個の顔が検出される場合もあるため、図３では、第ｎ番目のカメラ顔座標を左上（ＬTｎｃ）、左下（ＬBｎｃ）、右上（ＲTｎｃ）、右下（ＲBｎｃ）で示す。
【００２６】
また、この実施形態では、上記のように画像データ、顔個数および顔座標などをＲＡＭ２０３に格納しているが、その記録方式としてディジタルスチルカメラ用画像ファイルフォーマット規格Ｅｘｉｆ Ver.2.2.1を使用している。このＥｘｉｆ画像ファイルの構造は、基本的には通常のＪＰＥＧ（Joint Photographic Experts Group）画像形式そのものであり、その中にサムネイル画像や撮影関連データ等のデータをＪＰＥＧの規約に準拠した形で埋め込んだものである。
【００２７】
本実施形態で使用する画像ファイルは、図２の左側部分に示すように、最初にＳＯＩ(Start of image)３０１がある。その後に、ＡＰＰ１（アプリケーション・マーカーセグメント）３０２、ＤＱＴ(Define Quantization Table)３０３、ＤＨＴ(Define Huffman Table)３０４の順となっている。さらにその後に、ＳＯＦ(Start of Frame)３０５、ＳＯＳ(Start of Stream)マーカー３０６、圧縮データ(Compress Data)３０７の順となっている。最後にＥＯＩ(End of Image)３０８がある。これらのうちＡＰＰ１はアプリケーションプログラムで使用するためのデータ領域として図２の中央部分に示す構造を有している。ＡＰＰ１の構造は、先頭にＡＰＰ１  Ｍａｒｋｅｒ領域３０２ａがある。そして、その次にＬｅｎｇｔｈ領域３０２ｂがある。
【００２８】
Ｌｅｎｇｔｈ領域３０２ｂに続くデータの最初の６バイトの領域３０２ｃでは、識別子としてASCII文字の“Exif"が、その次に2バイトの0x00が続く。そこからＴＩＦＦ(Tagged Image File Format)形式でデータが格納されている。ＴＩＦＦ形式の最初の８バイトはＴＩＦＦヘッダー(Header)領域３０２ｄである。
【００２９】
また、ＴＩＦＦヘッダー領域３０２ｄの次の０ｔｈ  ＩＦＤ(IFD of main image)領域３０２ｅに、同図の右側部分に示すように、画像幅、画像高さ等の画像関連情報（あるいは、単に画像情報とも呼ぶ）が格納される。そして、０ｔｈ  ＩＦＤの次に０ｔｈ  ＩＦＤ  Ｖａｌｕｅ領域３０２ｆがある。さらに、その次にＥｘｉｆ  ＩＦＤ領域３０２ｇが設けられ、露出時間、Ｆナンバー、撮影シーンタイプなどの撮影関連情報（あるいは、単に撮影情報とも呼ぶ）が格納される。また、Ｅｘｉｆ  ＩＦＤ領域３０２ｇにＥｘｉｆ  ＩＦＤ  Ｖａｌｕｅ領域３０２ｈがある。なお、現在のところ、顔認識処理により検出される顔個数ＮｃとＮｃ個の顔座標をＥｘｉｆタグに書き込む規格は規定されていないが、本実施形態では顔個数ＮｃがＥｘｉｆ  ＩＦＤ領域３０２ｇに書き込まれ、Ｎｃ個の顔座標がＥｘｉｆ  ＩＦＤ  Ｖａｌｕｅ領域３０２ｈに書き込まれるとともに該書込位置をポイントする情報がＥｘｉｆ  ＩＦＤ領域３０２ｇに書き込まれると仮定して説明を続ける。もちろん、これらの情報をメーカーに依存する領域に書き込むように構成してもよい。このように、顔位置（顔座標）の情報である顔情報はＥｘｉｆ情報に記載され、画像データに添付されている。したがって、Ｅｘｉｆ情報に顔情報が含まれる場合には、顔個数Ｎｃなどとともに画像データの補正に利用される。一方、Ｅｘｉｆ情報に顔情報が含まれていない場合、顔情報がないと判断される。
【００３０】
次に、上記のようなデータ構造（図２）を有する画像ファイルがメモリカードＭに保存されており、そのメモリカードＭから画像ファイルを読み出し、印刷装置１００により画像ファイルに含まれる各種情報に基づき所定の画像処理を実行して印刷する動作の２つの実施形態について順に説明する。
【００３１】
＜第１実施形態＞
図５および図６は図１の印刷装置で実行される画像処理および印刷動作の第１実施形態を示すフローチャートである。ユーザーが印刷装置１００のカードスロット１１２にメモリカードＭを挿入し、操作ボタン１０９を操作して印刷指令を与えると、ＣＰＵ１０１がＲＯＭ１０２に格納されているプログラムにしたがって装置各部を制御して以下の画像処理および印刷動作を実行する。
【００３２】
まず、ＣＰＵ１０１は、印刷の対象となる画像ファイルをメモリカードＭから取得し、ハフマン解凍処理を実行し、量子化ＤＣＴ（Discrete Cosine Transform）係数を得る（ステップＳ１０）。より具体的には、ＣＰＵ１０１は、メモリカードＭから取得した画像ファイルからエントロピー符号化テーブルを取得し、圧縮データに含まれているＹ（輝度）成分、Ｃｒ（色差成分）、および、Ｃｂ（色差成分）のそれぞれのブロックのＤＣ係数と、ＡＣ係数とを復号する。なお、この際、最小符号化単位であるＭＣＵ（Minimum Coded Unit）単位で復号を行う。
【００３３】
また、ＣＰＵ１０１は、ステップＳ１０において得られた量子化ＤＣＴ係数を逆量子化する（ステップＳ１１）。具体的には、ＣＰＵ１０１は、画像ファイルから量子化テーブルを取得し、ステップＳ１０において得られた量子化ＤＣＴ係数に乗じることにより（逆量子化することにより）、ＤＣＴ係数を得る。
【００３４】
次に、ＣＰＵ１０１は、画像を回転させるために必要な情報（ローテート情報）を、例えばＲＡＭ１０３にキャッシュする（ステップＳ１２）。具体的には、ＪＰＥＧ方式によって圧縮された画像を回転させる場合、ＭＣＵのＤＣ成分（直流成分）とＡＣ成分（交流成分）のそれぞれを一度ハフマン展開しなければならない。ここで、ＤＣ成分については隣接するＤＣ成分値の差分をハフマン符号化することから、隣接するＭＣＵとの相関関係が問題となる。また、ＡＣ成分ではハフマン符号化処理によりそのデータ長が各ＭＣＵで一定にならず、ＪＰＥＧデータのビットストリーム中のどのデータが求めるＭＣＵのＡＣ成分値であるかが不明となることが問題となる。そこで、ステップＳ１２では、各ＭＣＵのＤＣ成分値とＡＣ成分のアドレスを求めてキャッシュしておくことにより、ローテート処理を可能とする。
【００３５】
そして、ＣＰＵ１０１はステップＳ１１で得られたＤＣＴ係数に対して逆ＤＣＴ演算を施すことによりもとの画素値を得る（ステップＳ１３）。また、ＣＰＵ１０１は、ステップＳ１３の処理によって得られたＹＣＣ空間の画像をＲＧＢ（Red Green Blue）空間の画像と、ＨＳＢ（Hue Saturation Brightness）空間の画像に変換する（ステップＳ１４）。
【００３６】
そして、ＣＰＵ１０１はステップＳ１３およびステップＳ１４の処理において得られたＹＣＣ，ＲＧＢ，ＨＳＢのそれぞれの画像をＲＡＭ１０３に格納して保持する。なお、このとき、データ量を削減するために画素を所定の割合で間引きし画像を縮小した後にＲＡＭ１０３に格納してもよい（ステップＳ１５）。ここでは、元の画像サイズに関わらず、ＱＶＧＡ（Quarter Video Graphics Array）サイズに相当する（３２０×２４０）ピクセルの画像に正規化するものとする。
【００３７】
また、ＣＰＵ１０１は、ステップＳ１５においてＲＡＭ１０３に格納されたＹＣＣ，ＲＧＢ，ＨＳＢそれぞれの画像の成分について、ヒストグラムを計算する（ステップＳ１６）。具体的には、ＲＧＢ画像については、Ｒ，Ｇ，Ｂそれぞれの画像についてヒストグラムを計算する。その結果、画像を構成する各成分の分布を得る。
【００３８】
上記したように、本実施形態では、ステップＳ１０〜１６の処理はＭＣＵ単位で行われており、ＣＰＵ１０１は、全てのＭＣＵについての処理が終了したことを確認するまで、ステップＳ１０に戻って処理を繰り返して実行する。一方、全てのＭＣＵについての処理が終了した場合には、次のステップＳ１７に進み、顔認識処理の主要部に相当する処理を実行する。
【００３９】
ステップＳ１７では、メモリカードＭから取得した画像ファイルのＥｘｉｆタグに含まれる顔情報を読み出し、デジタルカメラ２００側で実施された顔認識の結果として得られる顔座標（カメラ顔座標）を取得する。画像内での顔位置をＱＶＧＡサイズに正規化することにより（ステップＳ１８）、上記のようにして復元された画像内において検出済みの顔位置を求めることができる。
【００４０】
続いて、こうしてＱＶＧＡサイズに正規化されたカメラ顔座標により特定される顔領域、つまりカメラ顔座標により表される４点を頂点とする矩形領域であってデジタルカメラ２００によって顔（カメラ顔）であると認識された領域が、実際に人の顔であるか否かを検証する。このような検証を行う理由は、デジタルカメラ２００での顔認識は主としてフォーカスや露出等の撮影条件を決定するために行われるものであり、その結果として得られる顔情報が、撮影の実行により最終的に確定された画像での顔の位置等を正確に反映したものであるとは言えないからである。
【００４１】
すなわち、顔認識が行われフォーカス等が決定されてからシャッターが押され画像が確定するまでの間に、被写体またはカメラの位置や向きが変わってしまうことがあり、このような場合、カメラ顔座標で特定される顔領域と、実際の顔の位置とがずれてしまう。この問題に対応するため、この実施形態では、カメラ顔座標により特定される顔領域の色相を画像データに基づいて算出し（ステップＳ１９）、その色相が肌色であるか否かを判定して、肌色であれば当該領域が顔であるとみなす一方、肌色でなければ当該領域が顔ではないと判断して、以後の処理を異ならせる。
【００４２】
色を定量的に表す表現方法としては種々のものが知られており、この実施形態における色判定も任意の色表現の下で行うことができるが、ここでは人間の色覚と関連付けて肌色を指定しやすいＨＳＢ色空間で判定を行う場合について説明する。
【００４３】
図７はＨＳＢ色空間による色表現の例を模式的に示す図である。図７（ａ）に示すように、Ｈ（Hue angle；色相）、Ｓ（Saturation；彩度）、Ｂ（Brightness；明度）の３種のパラメータで表されるＨＳＢ色空間では、Ｈ値において０°が赤色、６０°が黄色に対応している。肌色に対応する色相は赤色と黄色との中間であり、例えば図７（ｂ）に示すように、０°より大きく６０°より小さい２つのＨ値Ｈ1およびＨ2（＞Ｈ1）を予め定めておき、値Ｈ1およびＨ2をそれぞれ下限および上限とする角度範囲ＲH内の色相を「肌色」であるとすることができる。図７（ｂ）の例では、ＨＳＢ色空間において斜線で示す空間領域Ｚ1内に属する色を「肌色」であるとみなす。
【００４４】
また、図７（ｃ）に斜線で示す領域Ｚ2のように、Ｈ値、Ｓ値、Ｂ値の三者の組み合わせによって「肌色」を定義してもよい。すなわち、Ｈ値、Ｓ値、Ｂ値の組み合わせが所定の条件を満たす色空間内の領域Ｚ2に属する色を「肌色」とみなすようにしてもよい。「肌色」とされる色相の範囲については適宜に定めてよく、また他の色表現法を用いて肌色を定義することも可能である。
【００４５】
図８は顔領域についての色判定のより具体的な態様を示す図である。顔領域内の画像が実際に人の顔であったとしても、例えば目や髪、影の部分を含み得るため、その全体が均一な肌色をしているというわけではない。そこで、図８に示すように、判定の対象となる顔領域ＦＲを多数のブロック、例えば画素単位に細分化し、各ブロックごとにそのＨＳＢ値を算出して、全ブロックのうち上記した肌色領域に属するブロックが占める比率が所定の閾値以上である場合に、当該領域を「肌色」であると判定することができる。あるいは、各ブロックのＨＳＢ値の平均値が肌色領域に属する場合に当該領域を「肌色」と判定するようにしてもよい。
【００４６】
図５に戻って、顔認識処理の説明を続ける。ステップＳ１９におけるカメラ顔の色相算出を上記のようにして行った結果、「肌色」であると判定された顔領域については、当該領域を顔（カメラ顔）であるとみなして、当該顔領域の４つの頂点座標を例えばＲＡＭ１０３に設けた顔登録リストに登録する（ステップＳ２０）。Ｅｘｉｆタグ情報に付された全ての顔情報について、同様の判定および登録を行う。
【００４７】
続いて、Ｅｘｉｆタグ情報に付された顔情報のうち上記処理によって顔登録リストに登録されなかった未登録カメラ顔情報、つまり、カメラ側では顔であると認識したが上記の色判定により顔でないと判定された顔領域に対応する顔情報が残っているか否かを判断する（ステップＳ２１）。ここでの結果がＹＥＳ、つまり未登録カメラ顔情報がある場合には、以下のステップＳ２２ないしＳ３５を実行して再度顔認識を行う一方、未登録カメラ顔情報がない、つまりＥｘｉｆタグ情報により指定される顔領域が全て顔として登録された場合にはこれらの処理をスキップする。
【００４８】
ステップＳ２２以降では、カメラ側で正しく認識できなかった顔が残っている可能性が高いと考えられることから、印刷装置１００側で改めて顔認識を行う。ただし、未登録カメラ顔情報の存在は、カメラ側でいったん顔であると認識された領域が画像内にあることを示すものであり、当該顔情報は別なる顔の所在を示唆する情報であるので、この情報を顔認識に利用することで、処理の効率化を図ることができる。この観点に鑑み、この実施形態では次のようにして顔認識を行っている。なお、顔認識処理自体は、例えばテンプレートを用いたマッチング技術のような公知の顔認識技術を適用することができるので、その原理や技術内容については詳しい説明を省略する。
【００４９】
まず、画像に対して適用するテンプレートの回転角度Ｄの初期値を０に設定する（ステップＳ２２）。そして、ＱＶＧＡサイズに縮小保持された画像データを設定された角度Ｄだけ回転させる（ステップＳ２３）。ここでは画像データを角度Ｄだけ回転させた状態でテンプレートを適用しているが、テンプレートを角度Ｄだけ回転させても技術的には等価である。そして、画像内におけるテンプレートの座標位置（検索Ｘ位置，検索Ｙ位置）を画像の原点位置（０，０）に初期設定する（ステップＳ２４、Ｓ２５）。
【００５０】
続いて、現在の検索位置およびその近傍領域に未登録カメラ顔情報があるか否かを判定する。具体的には、未登録カメラ顔情報により特定される顔領域（以下、「未登録顔領域」という）の少なくとも一部が、現在の検索位置からＸおよびＹ方向にドット数で±５０ドットの範囲の領域内に存在し、かつ、画像内における当該未登録顔領域の傾き角度が現在のテンプレートの設定角度Ｄに対して±１５度の範囲内にあるとき、ステップＳ２６では結果「ＹＥＳ」を返し、これ以外の場合は「ＮＯ」を結果として返す。なお、上記の「±５０ドット」および「±１５度」の各値は、カメラでの顔認識から撮像までの間に通常生じ得る顔の画像内での上下左右の移動量および傾き角度をそれぞれ考慮して定めた検索範囲の一数値例であって、これに限定されるものではない。
【００５１】
ここで、ステップＳ２６の結果がＮＯとなるケースは２通りある。その第１は、現在の検索位置またはその近傍に、カメラ顔情報によって顔領域とされる領域がそもそも存在しないケースである。つまり、現在の検索位置のみならずその近傍領域にも顔が存在しないことがカメラ側での顔認識により判明しており、現在の検索位置で顔が検出される可能性は低い。そこで、印刷装置１００側でも無駄な処理を省くべくステップＳ２７〜Ｓ２９をスキップする。第２のケースは、現在の検索位置近傍にカメラ顔情報によって顔領域とされる領域があり、しかもその領域が印刷装置側１００での処理により肌色と判定されたケースである。この場合、当該領域が顔であることが既に判っておりその情報が登録済みであるため、二重の処理を回避するためにステップＳ２７〜Ｓ２９をスキップする。
【００５２】
一方、該当する未登録カメラ顔情報があるとき（ステップＳ２６においてＹＥＳ）、現在の検索位置の近傍に新たな顔が見つかる可能性が高い。そこで、続いて現在の検索位置に印刷装置１００側で既に認識済みの顔情報があるか否かを判断する（ステップＳ２７）。「認識済みの顔情報がある」との文言は、現在の検索位置が認識済みの顔領域の一部であることを意味している。つまり、顔登録リストに登録された顔情報によって四隅の座標を特定される顔領域の少なくとも１つが現在の検索位置を含むとき、ステップＳ２７における結果が「ＹＥＳ」となる。このとき、現在の検索位置は既に顔の一部であると把握されているので、以下のステップＳ２８、Ｓ２９を省略する。
【００５３】
現在の検索位置に認識済みの顔情報がなければ、当該検索位置が顔の一部であるか否かを決定すべく顔認識を行う。すなわち、検出に適用するテンプレートの顔サイズを、ステップＳ２６の判断において該当したカメラ顔情報により特定される顔領域のサイズ（該当カメラ顔サイズ）の平均値に設定し（ステップＳ２８）、先に角度Ｄだけ回転させた画像データにテンプレートを適用して顔認識を行う（ステップＳ２９）。マッチングの結果、顔であると認識された場合には、認識された顔領域の四隅の座標を印刷装置側１００での顔情報として顔登録リストに新規登録する。顔登録リストでは、デジタルカメラ２００側で認識された顔情報（カメラ顔情報）と、印刷装置１００側で認識された顔情報（プリンター顔情報）とを識別可能な状態で登録がなされていることが望ましい。
【００５４】
テンプレートの顔サイズを、該当カメラ顔サイズの平均値としているのは次の理由による。カメラ側で顔領域と認識された領域が実際の画像では顔でないという現象が生じる理由としてここで想定しているのは、前述のようにカメラでの顔認識から撮像までの間に被写体またはカメラが動いてしまったケースである。このようなケースでは、顔認識時と撮像時とで被写体の顔サイズが大きく変わることは考えにくい。したがって、近傍位置で新たに検出され得る顔のサイズは、カメラ側で認識された顔領域のサイズに近いと考えられる。したがってカメラ側で認識された顔領域のサイズと同じ、またはそれに近いテンプレートの顔サイズとすることが好ましい。また、該当する顔が複数ある場合、それらの顔サイズの平均をテンプレートの顔サイズとすることで、それらを効率よく検出することが可能となる。
【００５５】
続いて、テンプレートをＸ方向に所定量ΔＸだけ移動させて（ステップＳ３０）、テンプレートがＸ方向における画像の端部に到達するまで（ステップＳ３１）、上記したステップＳ２６〜Ｓ２９の処理を繰り返す。
【００５６】
Ｘ方向の１ラインの顔認識が完了すると、ＣＰＵ１０１はテンプレートをＹ方向にΔＹだけ移動させる（ステップＳ３２）。そして、テンプレートがＹ方向の端部まで移動するまでの間（ステップＳ３３）、上記したステップＳ２５〜Ｓ３１の処理を繰り返して行う。これにより、処理対象画像の全体について顔認識処理が実行される。そして、これを画像の回転角度Ｄを少しずつ（ΔＤ）変化させながら繰り返すことで（ステップＳ３４、Ｓ３５）、種々の角度の顔を全て認識することができる。
【００５７】
こうして、印刷装置１００による顔認識処理が行われると、次のステップＳ４０（図６）では、ＣＰＵ１０１は顔登録リストに顔情報が登録されている否かを判別する。そして、顔情報が登録されている場合（ステップＳ４０で「ＹＥＳ」）には、ＣＰＵ１０１は、顔登録リストに登録された顔情報に基づいて全ての顔位置を計算し、さらに顔の平均顔色を取得した（ステップＳ４１）後、顔色が最適になるようにエンハンスパラメータを計算する（ステップＳ４２）。なお、エンハンスパラメータ計算の詳細については省略するが、ＲＡＭ１０３に記憶したＲＧＢヒストグラムに基づきコントラスト、明度、彩度、シャープネスなどの各画質パラメータの特徴量を抽出し、抽出した特徴量が所定の画質パラメータの特徴量に近づくようエンハンスのパラメータを設定する。
【００５８】
この場合において、実際には顔でない領域の色調がエンハンスパラメータの計算に算入されると、エンハンス処理の結果が不自然なものとなってしまうおそれがある。しかしながらこの実施形態において顔登録リストに登録された顔情報により特定される顔領域は、カメラ２００側で顔と認識された後、印刷装置１００側で肌色であることが確認された領域、もしくは、印刷装置１００側で新たに顔認識を行った結果として顔と認識された領域のいずれかである。このため、撮像時の被写体の移動等に起因して実際には顔でない領域の色調がエンハンスパラメータに算入されてしまうことが防止され、良好なエンハンス結果を得ることができる。
【００５９】
一方、顔登録リストに顔情報が登録されていない場合（ステップＳ４０で「ＮＯ」）、つまり当該画像内で人の顔が検出されなかった場合には、ＣＰＵ１０１は画像全体が最適になるようにエンハンスパラメータを計算する（ステップＳ４３）。
【００６０】
続いて、ＣＰＵ１０１は、印刷対象となる画像ファイルにおいて、解凍処理の対象となる位置を示すファイルポインタをリセットし（ステップＳ４４）、処理位置を画像ファイルの先頭に復元する。そして、ＣＰＵ１０１は、以下のステップＳ４５〜Ｓ５２を繰り返して画像データに基づいて画像を印刷する。
【００６１】
ＣＰＵ１０１は、ＲＡＭ１０３にキャッシュされた１ＭＣＵライン分の画像データにハフマン解凍処理を施し、量子化ＤＣＴ係数を得る（ステップＳ４５）。ここで、１ＭＣＵラインとは、画像を回転させる場合には、画像を構成する列方向に１列のＭＣＵ群をいい、回転させない場合には、画像を構成する行方向に１列のＭＣＵ群をいう。そして、ＣＰＵ１０１は、ステップＳ４５の処理において得られた量子化ＤＣＴ係数を逆量子化し（ステップＳ４６）、さらにステップＳ４５で得られたＤＣＴ係数に対して逆ＤＣＴ演算を施すことによりもとのデータを得る（ステップＳ４７）。
【００６２】
こうして得られたＹＣＣ空間の画像を、ＣＰＵ１０１はＲＧＢ空間の画像に変換する（ステップＳ４８）。そして、ＣＰＵ１０１は、ＲＧＢ空間の画像を構成する各画素に対してステップＳ４２またはＳ４３において算出したエンハンスパラメータを適用することにより、印刷される画像を最適な色合いに補正し（ステップＳ４９）、次のステップＳ５０に進む。
【００６３】
ＣＰＵ１０１は、こうして補正された画像データに対して、リサイズ、回転などのレイアウト処理を施し（ステップＳ５０）、プリンターエンジンコントローラー１１１の図示せぬバンドバッファに供給する。これを受けたプリンターエンジンコントローラー１１１は、プリンターエンジン１１３の各部を制御して画像データに対応する画像を印刷する（ステップＳ５１）。そして、印刷処理が完了すると、ＣＰＵ１０１はＲＡＭ１０３のキャッシュ状態を更新する（ステップＳ５２）。そして、全ＭＣＵライン分について上記ステップＳ４５〜Ｓ５２が完了すると、一連の処理を終了する。
【００６４】
以上のように、本実施形態によれば、デジタルカメラ２００での顔認識処理の結果、顔であると認識された画像内の領域を特定する情報（カメラ顔情報）を画像ファイルのＥｘｉｆタグ情報に記録する。一方、画像ファイルを受け取った印刷装置１００は、カメラ顔情報から特定される顔領域をそのまま顔とみなすのではなく、当該領域の色に基づいてカメラ側での認識結果を検証する。すなわち、当該領域が肌色であるときには顔であると判断する一方で、カメラ顔情報では顔であるとされたが実際には肌色でなかった領域がある場合には、当該領域の近傍で改めて顔認識を行う。
【００６５】
このようにすることで、カメラ側での顔認識から撮像までの間に被写体が動くなどしてタグ情報に基づく顔位置と実際の顔位置とが一致しなくなった場合でも、実際の顔位置が改めて検索されるので、画像内の顔領域をより確実に認識することができる。その結果、認識された顔領域の色調に対する顔色補正をより良好な品質で行うことができる。
【００６６】
また、印刷装置１００側での顔認識は、カメラ顔情報を参照して、カメラ側でいったん顔と認識された領域の近傍でのみ行うようにしているため、印刷装置１００側で顔認識処理は未登録の顔領域およびそれに隣接する近傍領域のみを検索対象領域として行われる。そのため、カメラ側での認識結果によらず画像全体で顔認識を行う従来技術に比べて遥かに短時間で顔認識処理を実行することが可能である。
【００６７】
さらに、カメラ側で認識された顔領域が肌色であればそのまま顔として登録し、肌色でない領域の近傍でのみ顔認識を実施するため、無用な顔認識の重複を回避することができる。ここでの判断は単に領域の色、より具体的にはその色相に基づく単純な判断であるため、前記した特許文献１に記載のように全ての顔領域について再度その近傍で顔認識を行う従来技術に比べて、処理時間を大幅に短縮することが可能である。
【００６８】
＜第２実施形態＞
上記した第１実施形態の顔認識処理では、検索位置を画像の全体で移動させながら、当該検索位置の近傍に未登録カメラ顔情報があるか否かによって当該検索位置で顔認識を行うか否かを決定するという処理フローとなっている。このような処理フローは、カメラ側での認識結果を使わず印刷装置１００だけで顔認識を行う場合の処理との整合性が良好である。すなわち、カメラ側で顔認識機能が使用されずに作成された、または当該機能を備えないカメラで作成された画像ファイルのように、カメラ顔情報を利用できない画像ファイルもあり、このような画像ファイルに対しては、印刷装置１００側で画像の全域に対する顔認識処理を行う必要がある。上記処理フローは、このような場合の顔認識処理フローと多くの部分を共通化することができるので、効率的な制御プログラムを構成することが可能である。
【００６９】
一方、以下に説明する第２実施形態の顔認識処理は、「カメラ顔情報で特定された位置に実際には存在しなかった顔を、当該位置の近傍で検索する」という技術思想をより直截的に具現化したものであり、この点においてより本発明の原理に沿った処理フローであるということができる。
【００７０】
図９はこの発明にかかる顔認識処理の第２実施形態を示すフローチャートである。第２実施形態においては、顔認識処理の要部のみが第１実施形態と異なっており、圧縮された画像の復元処理や顔認識後の印刷処理等については第１実施形態と同じである。より具体的には、図５のステップＳ２２〜Ｓ３５の処理を図９の処理内容に置き換えたものが、第２実施形態における処理フローである。図５のステップＳ１０〜Ｓ２１、図６のステップＳ４０〜Ｓ５２については第２実施形態においてもそのまま適用することができるので、これらについては説明を省略する。
【００７１】
ステップＳ２１において未登録カメラ顔情報ありと判断したとき、まず未登録のまま残されたカメラ顔の個数をパラメータＮとして設定する（ステップＳ１０１）。続くステップＳ１０２〜Ｓ１１７の処理では、検出すべき顔のうち第Ｎ番目の１つについて、当該顔に対応するカメラ顔情報に基づいて顔認識用の各種認識パラメータ、すなわち検索範囲や検索顔サイズなどを設定し（ステップＳ１０２）、顔認識を実行する（ステップＳ１０３〜Ｓ１１７）。そして、これをＮ＝０、つまり検出すべき顔の残りがなくなるまで繰り返すことにより（ステップＳ１１８、Ｓ１１９）、未登録であった顔の全てを検索するという構成となっている。まず認識パラメータを初期設定するためのパラメータ設定処理について、図１０および図１１を参照して説明する。
【００７２】
図１０は第２実施形態におけるパラメータ設定処理を示すフローチャートである。また、図１１はカメラ顔情報とパラメータの設定値との対応関係を説明するための図である。図１１に示すように、未登録カメラ顔情報は顔領域である矩形領域ＦＲの四隅の座標、すなわち（ＸTL，ＹTL）、（ＸTR，ＹTR）、（ＸBL，ＹBL）、（ＸBR，ＹBR）を含んでいる。これらの値に基づき、第Ｎ番目の未登録カメラ顔情報に対応する「顔矩形情報」を以下の通り算出する。なお、以下の説明において、符号に「Ｎ」が含まれるものは、第Ｎ番目の未登録カメラ顔情報に対応する数値であることを意味するものとする。
【００７３】
第Ｎ番目の未登録カメラ顔情報に対応する「第Ｎ番目の顔矩形情報」としては、最小Ｘ位置ＸＮmin、最大Ｘ位置ＸＮmax、最小Ｙ位置ＹＮmin、最大Ｙ位置ＹＮmax、顔角度ＤＮ、顔サイズＳＮを用い、それぞれ以下の計算式：
ＸＮmin＝ｍｉｎ（ｍｉｎ（ＸTL，ＸTR），ｍｉｎ（ＸBL，ＸBR））
ＹＮmin＝ｍｉｎ（ｍｉｎ（ＹTL，ＹTR），ｍｉｎ（ＹBL，ＹBR））
ＸＮmax＝ｍａｘ（ｍａｘ（ＸTL，ＸTR），ｍａｘ（ＸBL，ＸBR））
ＹＮmax＝ｍａｘ（ｍａｘ（ＹTL，ＹTR），ｍａｘ（ＹBL，ＹBR））
ＤＮ＝ｔａｎ−１（（ＹTR−ＹTL）／（ＸTR−ＸTL））
ＳＮ＝（ＸTR−ＸTL）／ｃｏｓＤＮ
により算出する（ステップＳ１２１）。上式において、ｍｉｎ（Ａ，Ｂ）およびｍａｘ（Ａ，Ｂ）はそれぞれ数値ＡとＢとのうちの最小値および最大値を返す関数である。
【００７４】
これらの数値の意味するところを図１１を参照して説明する。最小Ｘ位置ＸＮmin、最大Ｘ位置ＸＮmax、最小Ｙ位置ＹＮmin、最大Ｙ位置ＹＮmaxのそれぞれは、ＸＹ座標空間内において顔領域ＦＲが占める範囲を示す数値である。また、顔角度ＤＮはＸ座標軸に対する顔領域ＦＲの傾き角度を、顔サイズＳＮは顔領域ＦＲを表す正方形の１辺の長さを表している。
【００７５】
次に、こうして算出された顔矩形情報に基づき、現在の検索対象である第Ｎ番目のカメラ顔についての認識パラメータの初期値を設定する（ステップＳ１２２）。Ｘ方向における検索開始位置Ｘstrは、最小Ｘ位置Ｘminから５０（ドット）を減じた値とする。また、検索終了位置Ｘendは最小Ｘ位置Ｘminに５０を加えた値とする。また、Ｙ方向における検索開始位置Ｙstrは、最小Ｙ位置Ｙminから５０を減じた値とする。また、検索終了位置Ｙendは最小Ｙ位置Ｙminに５０を加えた値とする。これにより、カメラ側で第Ｎ番目の顔が認識された領域を中心にして、上下左右に各５０ドットずつ拡張された領域が、第Ｎ番目の顔の検索範囲に含まれる領域、すなわち検索対象領域となる。
【００７６】
また、検索顔サイズの初期値Ｓstrを顔サイズＳＮから５を減じた値、最終値Ｓendを顔サイズＳＮに５を加えた値とする。これにより、検索される顔のサイズに、カメラ側で認識された第Ｎ番目の顔のサイズに対して±５ドットの幅を持たせることができ、多少の顔サイズの変化にも対応することが可能となる。さらに、検索顔角度の初期値Ｄstrを顔角度ＤＮから１５度を減じた値、最終値Ｄendを顔角度ＤＮに１５度を加えた値とする。これにより、顔角度の変化にも対応することが可能となる。
【００７７】
なお、こうして設定された各パラメータによって顔認識用のテンプレートが設定されるが、テンプレートが画像からはみ出すことがないように、以下の丸め処理を行う。すなわち、Ｘ方向の検索開始位置Ｘstrが０より小さくなっているときにはこれを０に丸め（ステップＳ１２３、Ｓ１２４）、検索終了位置Ｘendが３２０を超えているときにはこれを３２０に丸める（ステップＳ１２５、Ｓ１２６）。同様に、Ｙ方向の検索開始位置Ｙstrが０より小さくなっているときにはこれを０に丸め（ステップＳ１２７、Ｓ１２８）、検索終了位置Ｙendが２４０を超えているときにはこれを２４０に丸める（ステップＳ１２９、Ｓ１３０）。さらに、検索顔サイズの初期値Ｓstrが０より小さくなっているときにはこれを０に丸め（ステップＳ１３１、Ｓ１３２）、最終値Ｓendが２４０を超えているときにはこれを２４０に丸める（ステップＳ１３３、Ｓ１３４）。以上でパラメータ設定処理が完了する。
【００７８】
図９に戻って、こうしてパラメータ設定処理（ステップＳ１０２）を行った後、顔認識用の認識パラメータのうちの回転角度Ｄ、検索サイズＳをそれぞれ初期値Ｄstr、Ｓstrに設定する（ステップＳ１０３、Ｓ１０４）。そして、マッチング用のテンプレートとして、サイズＳ、回転角度Ｄのものを用意する（ステップＳ１０５）。
【００７９】
次に、検索位置の座標（Ｘ，Ｙ）を初期位置（Ｘstr、Ｙstr）に設定し（ステップＳ１０６、Ｓ１０７）、第１実施形態と同様に、当該検索位置に印刷装置１００側で認識・登録済みの顔情報があるか否かを判断する（ステップＳ１０８）。登録された顔情報がなければ回転されたテンプレートを適用して当該検索位置で顔認識を行い、顔が検出されれば顔登録リストに登録する（ステップＳ１０９）。既に登録された顔があればこの処理はスキップする。
【００８０】
これを、Ｘ方向に少しずつ位置を変えながら検索終了位置Ｘendに到達するまで行うことで（ステップＳ１１０、Ｓ１１１）、検索範囲内でのＸ方向の１ライン分の顔認識が終了する。さらに、Ｙ方向にも少しずつ位置を変えながら検索終了位置Ｙendに到達するまで行うと（ステップＳ１１２、Ｓ１１３）、検索対象領域全体での顔認識が終了する。
【００８１】
そして、これをテンプレートの検索サイズＳおよび回転角度Ｄを少しずつ変化させながら繰り返し実行することにより（ステップＳ１１４〜Ｓ１１７）、第Ｎ番目の未登録顔情報に対応する顔の位置が特定される。このような処理を顔の残数が０となるまで繰り返せば、未登録であった顔の全てが元の検出位置の近傍領域を検索対象領域として改めて検索される。前記した通り、顔認識終了後の印刷処理は第１実施形態のものと共通である。
【００８２】
以上のように、第２実施形態の顔認識処理では、未登録カメラ顔情報に基づいて、印刷装置１００側での顔認識処理における検索範囲や顔サイズ等を設定し、その範囲内で新たな顔を検索するようにしている。これにより、第１実施形態の処理と同様の効果を得ることが可能となっている。
【００８３】
＜その他＞
以上説明したように、上記実施形態の印刷システムにおいては、印刷装置１００が本発明の「画像処理装置」として機能しており、ＣＰＵ１０１が所定の制御プログラムを実行することにより、本発明の「算出手段」、「判定手段」および「顔認識処理手段」としての機能を果たしている。また、デジタルカメラ２００からメモリカードＭを介して画像ファイルを受け取るカードＩ／Ｆ回路１１０およびインターフェース１０６が、本発明の「画像データ取得手段」として機能している。
【００８４】
また、この実施形態の画像処理動作（図５）においては、ステップＳ１７が本発明の「顔情報取得工程」に相当し、ステップＳ１９〜Ｓ２１が本発明の「判定工程」に相当している。さらに、第１実施形態の処理ではステップＳ２２〜Ｓ３７が、また第２実施形態の処理ではステップＳ１０２〜Ｓ１１９が、それぞれ発明の「顔認識処理工程」に相当している。また、両実施形態において、ステップＳ４９が本発明の「補正工程」に相当している。
【００８５】
なお、本発明は上記した実施形態に限定されるものではなく、その趣旨を逸脱しない限りにおいて上述したもの以外に種々の変更を行うことが可能である。例えば、上記実施形態では、画像データに方向座標などを付加した画像ファイルをメモリカードＭに記録し、当該メモリカードＭを介して印刷装置１００に供給して印刷しているが、有線または無線通信により画像ファイルが印刷装置１００に供給される場合も、本発明を適用することで上記した実施形態と同様の作用効果が得られる。
【００８６】
また、上記実施形態では、顔領域の色を定量的に表し肌色か否かを判定するのにＨＳＢ色空間内の座標位置を用いているが、別の色表現法、例えばｘｙ色度図上における座標位置やＬａｂ色空間内の座標位置によって色を表現し、それらの平面または空間において肌色を定義し色判定を行うようにしてもよい。
【００８７】
また、上記実施形態では、肌色領域の範囲や、顔認識処理における検索範囲・サイズ等に関する認識パラメータの可変範囲を予め定めた固定値としているが、これらの値を必要に応じて変更設定することができるようにしてもよい。
【００８８】
また、上記実施形態では、本発明にかかる画像処理装置および方法を印刷装置１００に適用しているが、複数の電子機器から構成される印刷システムにも、また印刷装置以外の１つの電子機器（例えば複合機、ファクシミリ装置など）にも適用可能である。
【００８９】
またデジタルカメラ２００に上記のような画像処理機能を設け、デジタルカメラ２００を本発明の「画像処理装置」として機能させるようにしてもよい。
【００９０】
また、上記実施形態にかかる画像処理方法を実行する制御プログラムを、ＣＤ−ＲＯＭ、光ディスク、光磁気ディスク、不揮発性メモリカードなどの記憶媒体に記憶させ、この記憶媒体からプログラムをコードとして読み出し、コンピューターにおいて実行してもよい。つまり、上記プログラムを記憶した記憶媒体、制御プログラム自体も本発明の一実施形態に含まれる。例えば、デジタルカメラで撮像された画像をパーソナルコンピューターもしくはワークステーション上で編集処理するためのアプリケーションソフトウェアにも、本発明を適用することが可能である。
【符号の説明】
【００９１】
１００…印刷装置（画像処理装置）、  １０１…ＣＰＵ（算出手段、判定手段、顔認識処理手段）、  １０２…ＲＯＭ、  １０３…ＲＡＭ、  １０４…ＥＥＰＲＯＭ、  １０６…インターフェース（画像データ取得手段）、  ２００…デジタルカメラ、  Ｍ…メモリカード
【図１】
2012146164.tif 000003
【図２】
2012146164.tif 000004
【図３】
2012146164.tif 000005
【図４】
2012146164.tif 000006
【図５】
2012146164.tif 000007
【図６】
2012146164.tif 000008
【図７】
2012146164.tif 000009
【図８】
2012146164.tif 000010
【図９】
2012146164.tif 000011
【図１０】
2012146164.tif 000012
【図１１】
2012146164.tif 000013