(57)【特許請求の範囲】
【請求項１】
顔画像の位置を示す顔情報に基づいて画像データを処理する画像処理装置において、
顔情報が前記画像データに付加されているか否かを判別する顔情報付加判別部と、
前記画像データの検索範囲内で人物の顔を認識する顔認識処理を行って前記画像データに付加された顔情報以外の顔情報を検出する顔情報検出部とを備え、
前記顔情報付加判別部が前記画像データに顔情報が付加されていると判別するとき、前記顔情報検出部は、前記画像データに含まれる画像領域のうち前記画像データに付加された顔情報で特定される顔領域を除いた領域を前記検索範囲とすることを特徴とする画像処理装置。
【請求項２】
前記顔情報付加判別部が前記画像データに顔情報が付加されていないと判別するとき、前記顔情報検出部は前記画像データに含まれる画像領域全体を検索範囲とする請求項１に記載の画像処理装置。
【請求項３】
前記画像データに付加された顔情報で特定される顔領域のサイズに関するサイズ情報を取得するサイズ情報取得部を備え、
前記顔情報検出部は、前記サイズ情報取得部により取得されたサイズ情報に基づき前記顔認識処理で用いる検索パラメータを変更する請求項１または２に記載の画像処理装置。
【請求項４】
前記顔情報検出部は、検索領域を前記検索範囲内で移動させながら各検索領域に対応する画像データに基づき人物の顔を認識して顔情報を検出し、前記検索領域のサイズを変更するサイズ変更範囲を前記検索パラメータとして前記サイズ情報に基づいて変更する請求項３に記載の画像処理装置。
【請求項５】
顔画像の位置を示す顔情報に基づいて画像データを処理する画像処理方法において、
顔情報が前記画像データに付加されているか否かを判別し、
前記画像データに顔情報が付加されていると判別されると、前記画像データに含まれる画像領域のうち前記画像データに付加された顔情報で特定される顔領域を除いた領域に対して顔認識処理を行って前記画像データに付加された顔情報で特定される顔画像以外の顔画像の位置を示す顔情報を検出することを特徴とする画像処理方法。
【請求項６】
顔画像の位置を示す顔情報に基づいて画像データを処理する画像処理のためのコンピュータープログラムであって、
顔情報が前記画像データに付加されているか否かを判別する機能と、
前記画像データに顔情報が付加されていると判別されると、前記画像データに含まれる画像領域のうち前記画像データに付加された顔情報で特定される顔領域を除いた領域に対して顔認識処理を行って前記画像データに付加された顔情報で特定される顔画像以外の顔画像の位置を示す顔情報を検出する機能と
をコンピューターに実現させることを特徴とするコンピュータープログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、顔画像の位置を示す顔情報に基づいて画像データの補正を適切に行う画像処理装置、画像処理方法、画像処理のためのコンピュータープログラムに関するものである。
【背景技術】
【０００２】
画像データに顔情報を付加する技術については、例えば特許文献１に記載されている。この特許文献１に記載のプリントシステムでは、デジタルカメラが顔認識処理を実行して顔オブジェクトの位置情報や色情報などを顔オブジェクト情報として検出し、さらに原撮影画像データに添付し、または埋め込んで顔オブジェクト情報付き撮影画像データを生成する。一方、プリンターなどの印刷装置は、撮影画像に付加される顔オブジェクト情報に基づいて画像データに対して色補正を実行し、色補正済の画像を印刷する。このように、デジタルカメラによる顔認識結果を利用して印刷装置側で独自に補正をかける技術が知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−２１３４５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、デジタルカメラの顔認識によって被写体に含まれる人物の顔の全部が完全かつ正確に認識される保証はない。このため、デジタルカメラ側での顔認識の補佐あるいは再確認を行う意味で印刷装置側でも独自に顔認識を行うことは有効である。その一方で、印刷装置側での顔認識処理をデジタルカメラで撮像された画像全体に対して画一的に行うことには次の問題が含まれている。すなわち、顔認識処理には時間がかかり、かつ印刷開始前に行う必要があることから、印刷装置側での顔認識処理を画像全体に対して無条件に実行する場合、印刷ボタン押下から印刷開始までの待ち時間が徒に増えるという問題がある。
【０００５】
この発明にかかるいくつかの態様は、顔画像の位置を示す顔情報を検出するための顔認識処理に要する時間を短縮することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の第１の態様は、顔画像の位置を示す顔情報に基づいて画像データを処理する画像処理装置であって、上記目的を達成するため、顔情報が画像データに付加されているか否かを判別する顔情報付加判別部と、画像データの検索範囲内で人物の顔を認識する顔認識処理を行って画像データに付加された顔情報以外の顔情報を検出する顔情報検出部とを備え、顔情報付加判別部が画像データに顔情報が付加されていると判別するとき、顔情報検出部は、画像データに含まれる画像領域のうち画像データに付加された顔情報で特定される顔領域を除いた領域を検索範囲とすることを特徴としている。
【０００７】
また、本発明の第２の態様は、顔画像の位置を示す顔情報に基づいて画像データを処理する画像処理方法であって、顔情報が画像データに付加されているか否かを判別し、画像データに顔情報が付加されていると判別されると、画像データに含まれる画像領域のうち画像データに付加された顔情報で特定される顔領域を除いた領域に対して顔認識処理を行って画像データに付加された顔情報で特定される顔画像以外の顔画像の位置を示す顔情報を検出することを特徴としている。
【０００８】
また、本発明の第３の態様は、顔画像の位置を示す顔情報に基づいて画像データを処理する画像処理のためのコンピュータープログラムであって、顔情報が画像データに付加されているか否かを判別する機能と、画像データに顔情報が付加されていると判別されると、画像データに含まれる画像領域のうち画像データに付加された顔情報で特定される顔領域を除いた領域に対して顔認識処理を行って画像データに付加された顔情報で特定される顔画像以外の顔画像の位置を示す顔情報を検出する機能とをコンピューターに実現させることを特徴としている。
【０００９】
このように構成された発明（画像処理装置、画像処理方法および画像処理のためのコンピュータープログラム）では、画像データに顔情報が付加されている場合、顔認識処理を行う検索範囲は、画像データに含まれる画像領域全体ではなく、同画像領域のうち画像データに付加された顔情報で特定される顔領域を除いた領域となっている。このような領域に対して顔認識処理を行うことで、画像データに付加された顔情報で特定される顔領域以外の領域に写り込んでいる人物の顔情報を検出することができる。しかも、顔認識処理を行う検索範囲が狭まっていることから顔認識処理に要する時間が短縮される。
【００１０】
ここで、画像データに顔情報が付加されていない場合には、画像データに含まれる画像領域全体を検索範囲として顔認識処理を行うように構成してもよく、これによって画像データから画像処理に必要な顔情報を検出することが可能となる。
【００１１】
また、画像データに付加された顔情報で特定される顔領域のサイズに関するサイズ情報を取得するサイズ情報取得部を設け、サイズ情報取得部により取得されたサイズ情報に基づき顔認識処理で用いる検索パラメータを変更するように構成してもよい。これにより、顔情報の検出をさらに効率的に行うことができる。例えば、検索領域を検索範囲内で移動させながら各検索領域に対応する画像データに基づき人物の顔を認識して顔情報を検出する場合、検索領域のサイズを変更する範囲、つまりサイズ変更範囲を検索パラメータとしてサイズ情報に応じて変更してもよい。これは後で詳述するように画像データに複数の人物の顔画像が含まれる場合、顔画像や顔領域が人物間で極端に相違することは少ないという知見に基づくものであり、サイズ情報に応じて検索領域のサイズを変更することで顔認識処理に要する時間をさらに短縮することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明にかかる画像処理装置の第１実施形態を用いた印刷システムを示す図。
【図２】デジタルカメラで作成される画像ファイルの一例を示す図。
【図３】図２の部分拡大図。
【図４】顔認識処理により認識された顔の一例を示す図。
【図５】図１の印刷装置で実行される画像処理および印刷動作を示すフローチャート。
【図６】図１の印刷装置で実行される画像処理および印刷動作を示すフローチャート。
【図７】カメラ顔領域、検出領域および検索範囲の関係を示す模式図。
【図８】座標リストを示す図。
【発明を実施するための形態】
【００１３】
図１は、本発明にかかる画像処理装置の第１実施形態を用いた印刷システムを示す図である。この印刷システムは、デジタルカメラ２００の撮影により取得された画像データを、メモリカードＭ、ＵＳＢ(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）情報に記載し、画像データに付加した画像ファイルを生成することができる構造となっている。
【００１６】
また、カードＩ／Ｆ回路２１２はカードスロット２１３に挿入されたメモリカードＭとの間で情報を読み書きするためのインタフェースである。さらに、Ｉ／Ｆ２０６は図示を省略するＵＳＢ、無線ＬＡＮなどの外部機器との接続機能も有しており、有線または無線にて印刷装置１００との間で画像ファイルの授受が可能となっている。なお、デジタルカメラ２００で作成され、印刷装置１００に与えられる画像ファイル（画像データ＋Ｅｘｉｆ情報）については、後で詳述する。
【００１７】
印刷装置１００はデジタルカメラ２００で撮像された画像を印刷する装置であり、次のように構成されている。印刷装置１００では、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、ＥＥＰＲＯＭ（Electrically Erasable and Programmable ROM）１０４、ＧＰ１０５およびＩ／Ｆ１０６がバス１０７を介して相互に接続され、これらの間で情報の授受が可能となっている。ＣＰＵ１０１はＲＯＭ１０２およびＥＥＰＲＯＭ１０４に格納されているプログラムに応じて各種演算処理を実行するとともに印刷装置１００の各部を制御し、本発明の「顔情報検出部」および「顔情報付加判別部」として機能する。また、ＣＰＵ１０１が実行対象とするプログラムやデータについてはＲＡＭ１０３に一時的に格納される一方、印刷装置の電源が切断された後も保持しておくデータ等についてはＥＥＰＲＯＭ１０４に格納される。さらに、ＣＰＵ１０１は必要に応じてＧＰ１０５に対して表示命令を与え、この表示命令に応じてＧＰ１０５が表示用の画像処理を実行し、その処理結果をＬＣＤ１０８に供給して表示させる。
【００１８】
Ｉ／Ｆ１０６は、操作ボタン１０９、カードＩ／Ｆ回路１１０およびプリンターエンジンコントローラー１１１の間で情報を授受する際に、データの表現形式を適宜変換する装置である。印刷装置１００では、操作ボタン１０９は印刷装置１００のメニュー選択等を行う時に押されるように構成されている。また、カードＩ／Ｆ回路１１０は、カードスロット１１２と接続されており、このカードスロット１１２に挿入されたメモリカードＭからデジタルカメラ２００によって生成された画像ファイルを読み出す。なお、Ｉ／Ｆ１０６は、図示を省略するＵＳＢ、無線ＬＡＮなどの外部機器との接続機能も有しており、有線通信または無線通信にてデジタルカメラ２００との間で画像ファイルの授受が可能となっている。
【００１９】
そして、印刷装置１００は、メモリカードＭを介して、あるいはデータ通信により画像データを受け取ると、ＣＰＵ１０１により種々の処理を行うとともにプリンターエンジンコントローラー１１１によりプリンターエンジン１１３を制御し、これによって画像データに対応する画像を印刷する。以下、図２ないし図４に基づき画像ファイルの構成を説明した上で、本実施形態における画像処理動作および印刷動作について詳述する。
【００２０】
図２は上記のように構成されたデジタルカメラで作成される画像ファイルの一例を示す図である。また、図３は図２の部分拡大図である。この実施形態では、デジタルカメラ２００はＣＣＤ２０４で撮像された画像データをＲＡＭ２０３に格納する。また、デジタルカメラ２００は、被写体に人物が含まれているときには顔認識処理を行う（なお、顔認識方式については従来より数多く提案されており、それらのうちいずれの方式を採用してもよい）。なお、本実施形態では、顔認識結果は、図４に示すような座標情報が顔位置の情報、つまり顔情報として表現される。すなわち、同図に示すように、画像データは所定の画像幅(Width)と画像高さ(Height)の画素で構成されており、Ｘが横軸、Ｙが縦軸を表しており、左上が原点（０，０）である。そして、画像データから顔が検出されると、その顔領域ＦＲを左上（ＬＴ）、左下（ＬＢ）、右上（ＲＴ）、右下（ＲＢ）の４点の座標で囲まれる領域で表し、顔領域ＦＲを示す座標、つまり顔座標（顔位置）を、認識した顔の個数（つまり顔個数）ＮｃとともにＲＡＭ２０３に格納する。また、本明細書では、後で説明するように、印刷装置１００においてもデジタルカメラ２００での顔認識と同様に顔認識を行って顔座標を求めるため、デジタルカメラ２００での顔認識により得られる顔座標を「カメラ顔座標」と称し、左上（ＬＴｃ）、左下（ＬＢｃ）、右上（ＲＴｃ）、右下（ＲＢｃ）で示す。また、顔認識処理により複数個の顔が検出される場合もあるため、第ｎ番目のカメラ顔座標を左上（ＬＴｎｃ）、左下（ＬＢｎｃ）、右上（ＲＴｎｃ）、右下（ＲＢｎｃ）で示す。なお、後述するように印刷装置１００の顔認識で得られる顔座標については「プリンター顔座標」と称し、第ｎ番目のプリンター顔座標については、左上（ＬＴｎｐ）、左下（ＬＢｎｐ）、右上（ＲＴｎｐ）、右下（ＲＢｎｐ）で示す。
【００２１】
また、この実施形態では、上記のように画像データ、顔個数および顔座標などをＲＡＭ２０３に格納しているが、その記録方式としてディジタルスチルカメラ用画像ファイルフォーマット規格Ｅｘｉｆ 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）サイズに規格化する。そして、ＣＰＵ１０１はカメラ顔座標をＲＡＭ１０３に格納する（ステップＳ１８）。なお、本実施形態では、例えば図８（ａ）に示すように予め１０個の顔座標を記憶するためのメモリ空間がＲＡＭ１０３に準備されており、このメモリ空間にステップＳ１７で規格化されたカメラ顔座標や次に説明する印刷装置１００での顔認識処理により得られるプリンター顔座標が登録顔情報Ｎｏ．１、２、…の順序で記憶される。こうして、１０個の登録顔情報を記憶する座標リストが生成される。例えば２個のカメラ顔座標が画像データに付加されている場合には、図８（ｂ）に示すようにＱＶＧＡサイズに規格化されたカメラ顔座標（ＬＴ１ｃ、ＬＢ１ｃ、ＲＴ１ｃ、ＲＢ１ｃ）が座標リストの登録顔情報Ｎｏ．１のアドレスに登録される。また、２つ目のカメラ顔座標（ＬＴ２ｃ、ＬＢ２ｃ、ＲＴ２ｃ、ＲＢ２ｃ）が座標リストの登録顔情報Ｎｏ．２のアドレスに登録される。また、該当する顔座標がない登録顔情報のアドレスにはゼロを登録する。なお、本実施形態では、最大１０個の顔座標を登録することが可能となっているが、登録可能個数はこれに限定されるものではなく、任意である。
【００３５】
次のステップＳ１９〜Ｓ３４で、ＣＰＵ１０１は、テンプレート（検索領域）を用いた顔認識処理を行うとともに、顔認識処理により検出されるプリンター顔座標を座標リストに登録する。すなわち、ＣＰＵ１０１は、顔認識に用いるテンプレートの顔サイズＳを最大顔サイズ（２４０ピクセル）に設定し（ステップＳ１９）、そのテンプレートを原点（０，０）に位置させる（ステップＳ２０、Ｓ２１）。そして、ＣＰＵ１０１は、テンプレートをΔＸ（この実施形態では、ΔＸ＝Ｓ／２）単位でＸ方向にステップ移動させながら原点位置および各移動位置でステップＳ２２〜Ｓ２８の処理を実行する。すなわち、ＣＰＵ１０１は、テンプレート内、つまり検索領域にカメラ顔や既に検出したプリンター顔が含まれているか否かを判別する（ステップＳ２２、Ｓ２３）。具体的には、ＣＰＵ１０１は、例えば図７（ａ）に示すようにテンプレートＴＰ内に座標リストに登録されているカメラ顔座標で特定されるカメラ顔の全部または一部が含まれるか否かを判別しており、含まれると判別する場合には、ステップＳ２３の判定ステップおよび顔認識処理（ステップＳ２４〜Ｓ２８）を省略している。また、テンプレート（検索領域）ＴＰにカメラ顔が含まれていないものの、当該テンプレートＴＰ内にプリンター顔が含まれていることが既に検出されている場合（ステップＳ２３で「ＹＥＳ」）も、顔認識処理（ステップＳ２４〜Ｓ２８）を省略している。
【００３６】
このような判別処理（ステップＳ２２、Ｓ２３）は、カメラ顔と同じ顔をわざわざ印刷装置１００側でも重複して検出するのを回避して印刷装置１００における顔認識処理に要する時間を短縮することを狙ったものである。つまり、本実施形態では、画像データから人物の顔を検出する検索範囲を、画像領域全体に設定するのではなく、例えば図７（ｂ）に示すようにカメラ顔領域ＦＲを除いた範囲に設定している。
【００３７】
一方、これらのステップＳ２２、Ｓ２３のいずれかで「ＮＯ」と判別すると、ＣＰＵ１０１はステップＳ１７で保持した画像データに対してテンプレートを適用して顔認識処理を行う（ステップＳ２４）。また、ＣＰＵ１０１は、保持した画像データを９０゜、１８０゜および２７０゜回転させて顔認識処理を行う（ステップＳ２５〜Ｓ２７）。このようなテンプレートを用いた顔認識処理（ステップＳ２４〜Ｓ２７）については、従来より多用されているもので用いることができ、例えば４５゜単位で回転させながら顔認識を行ってもよい。
【００３８】
このような顔認識処理によって顔を検出した場合には、ＣＰＵ１０１は、テンプレート（顔領域）に含まれるプリンター顔の位置情報、つまりプリンター顔座標を座標リストに登録する（ステップＳ２８）。例えば顔認識処理によってプリンター顔座標（ＬＴ１ｐ、ＬＢ１ｐ、ＲＴ１ｐ、ＲＢ１ｐ）が検出されると、そのプリンター顔座標が図８（ｃ）に示すようにカメラ顔座標（ＬＴ１ｃ、ＬＢ１ｃ、ＲＴ１ｃ、ＲＢ１ｃ）、（ＬＴ２ｃ、ＬＢ２ｃ、ＲＴ２ｃ、ＲＢ２ｃ）に続いて、座標リストの登録顔情報Ｎｏ．３のアドレスに登録される。
【００３９】
また、Ｘ方向の１ラインについて顔認識処理およびプリンター顔座標の登録処理が完了する（ステップＳ３０で「ＹＥＳ」）と、ＣＰＵ１０１はテンプレートＴＰをＹ方向にΔＹ（この実施形態では、ΔＹ＝Ｓ／２）だけ移動させる（ステップＳ３１）。そして、テンプレートがＹ方向の端部に位置するまでの間（ステップＳ３２で「ＮＯ」の間）、上記したステップＳ２１〜Ｓ３１を繰り返して行う。これにより、画像データ全体に対して顔サイズＳのテンプレートを用いた顔認識処理およびプリンター顔座標の登録処理が実行される。
【００４０】
なお、ＣＰＵ１０１は、上記した一連の顔認識処理（ステップＳ２０〜Ｓ３２）が完了する毎にテンプレートの顔サイズＳをΔＳ（この実施形態では１０ピクセルに設定）だけ小さくし（ステップＳ３４）、顔サイズＳが最小顔サイズ（２０ピクセル）を下回るまでステップＳ２０に戻って上記した一連の顔認識処理およびプリンター顔座標の登録処理（ステップＳ２０〜Ｓ３４）を繰り返して行う。
【００４１】
こうして、印刷装置１００による顔認識処理およびプリンター顔座標の登録処理が行われると、次のステップＳ３５で、ＣＰＵ１０１は座標リストにカメラ顔座標および／またはプリンター顔座標が登録されている否かを判別する。そして、カメラ顔座標かプリンター顔座標かを問わず、顔座標が登録されている場合（ステップＳ３５で「ＹＥＳ」）には、ＣＰＵ１０１は、座標リストに登録された顔座標に基づいて全ての顔位置を計算し、さらに顔の平均顔色を取得した（ステップＳ３６）後、顔色が最適になるようにエンハンスパラメータを計算する（ステップＳ３７）。なお、エンハンスパラメータ計算の詳細については省略するが、ＲＡＭ１０３に記憶したＲＧＢヒストグラムに基づきコントラスト、明度、彩度、シャープネスなどの各画質パラメータの特徴量を抽出し、抽出した特徴量が所定の画質パラメータの特徴量に近づくようエンハンスのパラメータを設定する。
【００４２】
一方、座標リストにカメラ顔座標もプリンター顔座標も登録されていない場合（ステップＳ３５で「ＮＯ」）、ＣＰＵ１０１は、画像全体が最適になるようにエンハンスパラメータを計算する（ステップＳ３８）。
【００４３】
次のステップＳ３９では、ＣＰＵ１０１は、印刷対象となる画像ファイルにおいて、解凍処理の対象となる位置を示すファイルポインタをリセットし、処理位置を画像ファイルの先頭に復元する。そして、ＣＰＵ１０１は、以下のステップＳ４０〜Ｓ４７を繰り返して画像データに基づいて画像を印刷する。
【００４４】
ＣＰＵ１０１は、ＲＡＭ１０３にキャッシュされた１ＭＣＵライン分の画像データにハフマン解凍処理を施し、量子化ＤＣＴ係数を得る（ステップＳ４０）。ここで、１ＭＣＵラインとは、画像を回転させる場合には、画像を構成する列方向に１列のＭＣＵ群をいい、回転させない場合には、画像を構成する行方向に１列のＭＣＵ群をいう。そして、ＣＰＵ１０１は、ステップＳ２９の処理において得られた量子化ＤＣＴ係数を逆量子化し（ステップＳ４１）、さらにステップＳ４１で得られたＤＣＴ係数に対して逆ＤＣＴ演算を施すことによりもとのデータを得る（ステップＳ４２）。
【００４５】
こうして得られたＹＣＣ空間の画像を、ＣＰＵ１０１はＲＧＢ空間の画像に変換する（ステップＳ４３）。そして、ＣＰＵ１０１は、ＲＧＢ空間の画像を構成する各画素に対してステップＳ３７、Ｓ３８において算出したエンハンスパラメータを適用することにより、印刷される画像を最適な色合いに補正する（ステップＳ４４）。
【００４６】
ＣＰＵ１０１は、こうして補正された画像データに対して、リサイズ、回転などのレイアウト処理を施し（ステップＳ４５）、プリンターエンジンコントローラー１１１の図示せぬバンドバッファに供給する。これを受けたプリンターエンジンコントローラー１１１は、プリンターエンジン１１３の各部を制御して画像データに対応する画像を印刷する（ステップＳ４６）。そして、印刷処理が完了すると、ＣＰＵ１０１はＲＡＭ１０３のキャッシュ状態を更新する（ステップＳ４７）。そして、全ＭＣＵライン分について上記ステップＳ４０〜Ｓ４７が完了すると、一連の処理を終了する。
【００４７】
以上のように、本実施形態によれば、画像データに対して顔認識処理を実行してプリンター顔座標を検出しているが、画像データにカメラ顔情報が付加されている場合には、画像データに含まれる画像領域全体を検索範囲として顔認識処理を実行するのではなく、同画像領域のうち画像データに付加されたカメラ顔情報で特定される顔領域ＦＲを除いた領域を検索範囲とし、顔認識処理を実行している。このように、画像データに付加されたカメラ顔情報で特定されるカメラ顔領域以外の領域に写り込んでいる人物の顔情報を検出することができ、デジタルカメラ２００側で認識できなかった人物の顔を認識し、デジタルカメラ２００での顔認識を補完することができる。しかも、印刷装置１００で顔認識処理を行う検索範囲が、カメラ顔領域の分だけ狭まっていることから顔認識処理に要する時間を短縮することができる。
【００４８】
また、画像データにカメラ顔情報が付加されていない場合には、画像データに含まれる画像領域全体を検索範囲として顔認識処理を行うため、印刷装置１００により画像データから画像処理に必要な顔情報を検出することが可能となる。
【００４９】
ところで、上記実施形態では、ＱＶＧＡサイズに規格化したことに対応してテンプレート（検索領域）ＴＰのサイズを２４０ピクセルから２０ピクセルまでの範囲内で変化させながら顔認識処理を実行しているが、当該サイズ変更範囲については、これに限定されるものではなく、任意であり、例えばデジタルカメラ２００で検出されたカメラ顔領域の顔サイズに基づき上記サイズ変更範囲の最大値、最小値または両者を設定してもよい。すなわち、ＣＰＵ１０１は、画像データに付加されたカメラ顔情報で特定されるカメラ顔領域の顔サイズ（顔サイズ情報）を取得し、その顔サイズに基づき変更範囲を顔認識処理で用いる検索パラメータとして変更するように構成してもよい。これは、画像データに複数の人物の顔画像が含まれる場合、顔画像や顔領域が人物間で極端に相違することは少なく、カメラ顔の顔サイズよりも大幅に大きな顔サイズを有する人物の顔がデジタルカメラ２００で認識されなかった可能性が低く、またカメラ顔の顔サイズよりも大幅に小さい顔サイズの人物については注目度や重要度が低いことを考慮したものである。このようにカメラ顔領域の顔サイズ（顔サイズ情報）に応じてテンプレートＴＰのサイズを変更することで顔認識処理に要する時間をさらに短縮することができる。この実施形態では、ＣＰＵ１０１は本発明の「サイズ情報取得部」としても機能する。
【００５０】
なお、本発明は上記した実施形態に限定されるものではなく、その趣旨を逸脱しない限りにおいて上述したもの以外に種々の変更を行うことが可能である。例えば、上記実施形態では、画像データに顔情報およびシーン情報を付加した画像ファイルをメモリカードＭに記録し、当該メモリカードＭを介して印刷装置１００に供給して印刷しているが、有線または無線通信により画像ファイルが印刷装置１００に供給される場合も、本発明を適用することで上記した実施形態と同様の作用効果が得られる。
【００５１】
また、上記実施形態では、本発明にかかる画像処理装置および方法を印刷装置１００に適用しているが、複数の電子機器から構成される印刷システムにも、また印刷装置以外の１つの電子機器（例えば複合機、ファクシミリ装置など）にも適用可能である。
【００５２】
また、上記実施形態にかかる画像処理方法を実行するプログラムを、ＣＤ−ＲＯＭ、光ディスク、光磁気ディスク、不揮発性メモリカードなどの記憶媒体に記憶させ、この記憶媒体からプログラムをコードとして読み出し、コンピューターにおいて実行してもよい。つまり、上記プログラムを記憶した記憶媒体、コンピュータープログラム自体も本発明の一実施形態に含まれる。
【符号の説明】
【００５３】
１００…印刷装置、  １０１…ＣＰＵ（顔情報検出部、顔情報付加判別部、サイズ情報取得部）、  １０２…ＲＯＭ、  １０３…ＲＡＭ、  １０４…ＥＥＰＲＯＭ、  ２００…デジタルカメラ、  ３０７…圧縮データ（画像データ）、  ＦＲ…顔領域、  ＴＰ…テンプレート（検索領域）
【図１】
0005644578.tif 000002
【図２】
0005644578.tif 000003
【図３】
0005644578.tif 000004
【図４】
0005644578.tif 000005
【図５】
0005644578.tif 000006
【図６】
0005644578.tif 000007
【図７】
0005644578.tif 000008
【図８】
0005644578.tif 000009