画像処理装置および画像処理方法
【課題】画像データに付加される顔情報が誤検出情報であるか否かを求めることができる画像処理装置および画像処理方法を提供する。
【解決手段】画像データに付加される撮影情報(被写体距離、レンズ焦点距離、画像高さの解像度およびデジタルズーム倍率)に基づいて画像データに人物の顔が含まれるときに人物の顔サイズとして取り得る値の範囲を示す有効顔サイズ範囲を求めた後、撮影情報とともに前記画像データに付加される顔情報で特定される顔サイズが、有効顔サイズ範囲の最大値Smaxよりも大きい、または有効顔サイズ範囲の最小値Sminよりも小さい場合、顔領域FRS、FRLは誤検出されたものであると認定する。
【解決手段】画像データに付加される撮影情報(被写体距離、レンズ焦点距離、画像高さの解像度およびデジタルズーム倍率)に基づいて画像データに人物の顔が含まれるときに人物の顔サイズとして取り得る値の範囲を示す有効顔サイズ範囲を求めた後、撮影情報とともに前記画像データに付加される顔情報で特定される顔サイズが、有効顔サイズ範囲の最大値Smaxよりも大きい、または有効顔サイズ範囲の最小値Sminよりも小さい場合、顔領域FRS、FRLは誤検出されたものであると認定する。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、画像データに付加された顔情報の適否を判断する画像処理装置および画像処理方法に関するものである。
【背景技術】
【0002】
画像データに顔情報を付加する技術については、例えば特許文献1に記載されている。この特許文献1に記載のプリントシステムでは、デジタルカメラが顔認識処理を実行して顔オブジェクトの位置情報や色情報などを顔オブジェクト情報として検出し、さらに原撮影画像データに添付し、または埋め込んで顔オブジェクト情報付き撮影画像データを生成する。一方、プリンターなどの印刷装置は、撮影画像に付加される顔オブジェクト情報に基づいて画像データに対して色補正を実行し、色補正済の画像を印刷する。このように、デジタルカメラによる顔認識結果を利用して印刷装置側で独自に補正をかける技術が知られている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2007−213455号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、デジタルカメラの顔認識によって被写体に含まれる人物の顔の全部が完全かつ正確に検出される保証はなく、デジタルカメラ側で誤検出が発生する可能性があった。このため、顔情報が付加された画像データを受け取った装置側で、当該顔情報が正しく検出されたものであるか否かを判別することができる技術の提供が要望されている。
【0005】
この発明にかかるいくつかの態様は、画像データに付加される顔情報が誤検出情報であるか否かを求めることができる画像処理装置および画像処理方法を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の第1の態様は、画像データに付加される顔情報および撮影情報を取得する情報取得部と、画像データに人物の顔が含まれるときに人物の顔サイズとして取り得る値の範囲である有効顔サイズ範囲を、撮影情報に基づいて求める範囲算出部と、情報取得部により取得した顔情報で特定される顔サイズが有効顔サイズ範囲から外れるときには顔情報を誤検出情報と認定する誤検出認定部とを備えることを特徴としている。
【0007】
また、本発明の第2の態様は、画像データに付加される撮影情報に基づいて画像データに人物の顔が含まれるときに人物の顔サイズとして取り得る値の範囲を示す有効顔サイズ範囲を求めた後、撮影情報とともに画像データに付加される顔情報で特定される顔サイズが、有効顔サイズ範囲の最大値よりも大きい、または有効顔サイズ範囲の最小値よりも小さい場合、顔情報は誤検出されたものであると認定することを特徴としている。
【0008】
人物を撮影して画像データを生成した場合、その画像データに撮影情報とともに顔情報が付加されることがある。ここで注目すべきは、人物が適正に撮影されたとき、画像データに含まれる人物の顔サイズは撮影情報に含まれる撮影条件(被写体距離やレンズ焦点距離など)に応じた有効顔サイズ範囲に収まることであり、顔情報で特定される顔サイズが有効顔サイズ範囲から外れる場合、その顔情報は誤検出されたものである蓋然性が高いという点である。そこで、本発明では、画像データに付加された撮影情報に基づき有効顔サイズ範囲が求められ、顔情報で特定される顔サイズが有効顔サイズ範囲から外れるとき、当該顔情報は誤検出情報と認定される。このため、画像データに付加される顔情報が誤検出情報であるか否かを求めることができる。
【0009】
ここで、画像データに付加された顔情報が誤検出されたものである場合、画像データから人物の顔を認識して顔情報を新たに検出するのが望まれる。もちろん、画像データ全体から顔情報を検出してもよいが、誤検出情報と認定された顔情報により特定される顔領域以外の検索範囲で画像データから人物の顔を認識して顔情報を検出するのが好適である。このように人物の顔が含まれないことが判っている領域を省いて顔認識処理を実行することで同処理に要する時間を短縮することができる。
【0010】
また、有効顔サイズ範囲内の検索サイズを有する検索領域を検索範囲内で移動させながら各検索領域に対応する画像データに基づき人物の顔を認識して顔情報を検出するように構成してもよい。また、検索領域の検索サイズを有効顔サイズ範囲の最大値に設定し、検索範囲から人物の顔を認識して顔情報を検出する第1顔認識処理を行うように構成してもよい。さらに、第1顔認識処理の後に、検索領域の検索サイズを有効顔サイズ範囲の最大値よりも小さい値に設定し、検索範囲から第1顔認識処理により検出された人物の顔領域を除いた範囲から人物の顔を認識して顔情報を検出する第2顔認識処理を行うように構成してもよい。このような顔認識処理を行うことで、顔認識処理に要する時間をさらに短縮することができる。
【0011】
なお、上記のようにして画像データから顔情報を新たに検出したときには、当該顔情報に基づいて画像データを補正するのが望ましい。また、画像データに複数の顔情報が付加されていることがあり、その一部が誤検出情報と認定されることがある。この場合、誤検出情報以外の顔情報は適切に検出されたものであるため、これらの顔情報と、上記のように新たに検出した顔情報とに基づいて画像データを補正するのが好適である。
【図面の簡単な説明】
【0012】
【図1】本発明にかかる画像処理装置の一実施形態を用いた印刷システムを示す図。
【図2】デジタルカメラで作成される画像ファイルの一例を示す図。
【図3】図2の部分拡大図。
【図4】顔認識処理により認識された顔の一例を示す図。
【図5】顔領域のサイズと有効顔サイズとの関係を示す模式図。
【図6】画像上の画素数と実顔サイズとの関係を示す図。
【図7】誤検出顔領域、検索領域および検索範囲の関係を示す図。
【図8】図1の印刷装置で実行される画像処理および印刷動作を示すフローチャート。
【図9】図1の印刷装置で実行される画像処理および印刷動作を示すフローチャート。
【図10】プリンター顔座標およびカメラ顔座標の座標リストへの登録例を示す図。
【発明を実施するための形態】
【0013】
A.印刷システムの構成
図1は、本発明にかかる画像処理装置の一実施形態を用いた印刷システムを示す図である。この印刷システムは、デジタルカメラ200の撮影により取得された画像データを、メモリカードM、USB(Universal Serial Bus)ケーブルや無線LAN(Local Area Network)等によって印刷装置100に転送し、印刷装置100で印刷するものである。すなわち、ここではユーザーがデジタルカメラ200で画像を撮影して画像データを生成し、その画像データをそのまま印刷装置100で読み込んで印刷する、いわゆるダイレクト印刷を想定しているが、本発明を適用可能な印刷システムはこれに限定されるものではない。つまり、デジタルカメラ200で生成した画像データをパーソナルコンピューターや携帯電話などに取り込み、パーソナルコンピューターから印刷装置100に画像データを送信して印刷する印刷システムにも本発明を適用することは可能である。
【0014】
デジタルカメラ200では、同図に示すように、CPU(Central Processing Unit)201、ROM(Read Only Memory)202、RAM(Random Access Memory)203、CCD(Charge Coupled Device)204、GP(Graphic Processor)205およびI/F(Interface)206がバス207を介して相互に接続され、これらの間で情報の授受が可能となっている。そして、CPU201はROM202に格納されているプログラムに応じて各種演算処理を実行しながらデジタルカメラ200の制御を行う。このとき一時的に必要となるデータはRAM203に格納される。また、CCD204は、光学系208によって集光された被写体からの光学像を電気信号に変換して出力する。この光学系208は、複数のレンズおよびアクチュエータによって構成されており、アクチュエータによってフォーカス等を調整しながら被写体の光学像を複数のレンズによってCCD204の受光面に結像する。さらに、GP205は、CPU201から供給される表示命令に基づいて表示用の画像処理を実行し、得られた表示用画像データをLCD(Liquid Crystal Display)209に供給して表示させる。
【0015】
I/F206はデジタルカメラ200の入出力機能を提供するものであり、操作ボタン210、ジャイロセンサー211およびカードI/F回路212の間で情報を授受する際に、データの表現形式を適宜変換する装置である。I/F206に接続される操作ボタン210には、電源、モード切替え、シャッターなどのボタンや、各種機能を設定できる入力手段があり、これらによってユーザーはデジタルカメラ200を任意に制御して動作させることが可能となっている。また、ジャイロセンサー211はデジタルカメラ200によって被写体を撮影した際のカメラ本体の角度(水平面に対する角度)を示す信号を生成して出力する。デジタルカメラ200は、上記したカメラ本体の角度を含め、撮影時における種々の情報(例えば、露光、被写体等に関する情報)を生成する。それらの情報の一つである撮影情報に後述する顔情報やシーン情報などが含まれる。なお、本実施形態では、デジタルカメラ200は、撮影情報をExif(Exchangeable Image File Format)情報に記載し、画像データに付加した画像ファイルを生成することができる構造となっている。
【0016】
また、カードI/F回路212はカードスロット213に挿入されたメモリカードMとの間で情報を読み書きするためのインタフェースである。さらに、I/F206は図示を省略するUSB、無線LANなどの外部機器との接続機能も有しており、有線または無線にて印刷装置100との間で画像ファイルの授受が可能となっている。なお、デジタルカメラ200で作成され、印刷装置100に与えられる画像ファイル(画像データ+Exif情報)については、後で詳述する。
【0017】
印刷装置100はデジタルカメラ200で撮像された画像を印刷する装置であり、次のように構成されている。印刷装置100では、CPU101、ROM102、RAM103、EEPROM(Electrically Erasable and Programmable ROM)104、GP105およびI/F106がバス107を介して相互に接続され、これらの間で情報の授受が可能となっている。CPU101はROM102およびEEPROM104に格納されているプログラムに応じて各種演算処理を実行するとともに印刷装置100の各部を制御し、本発明の「情報取得部」、「範囲算出部」、「誤検出認定部」。「顔情報検出部」および「補正部」として機能する。また、CPU101が実行対象とするプログラムやデータについてはRAM103に一時的に格納される一方、印刷装置の電源が切断された後も保持しておくデータ等についてはEEPROM104に格納される。さらに、CPU101は必要に応じてGP105に対して表示命令を与え、この表示命令に応じてGP105が表示用の画像処理を実行し、その処理結果をLCD108に供給して表示させる。
【0018】
I/F106は、操作ボタン109、カードI/F回路110およびプリンターエンジンコントローラー111の間で情報を授受する際に、データの表現形式を適宜変換する装置である。印刷装置100では、操作ボタン109は印刷装置100のメニュー選択等を行う時に押されるように構成されている。また、カードI/F回路110は、カードスロット112と接続されており、このカードスロット112に挿入されたメモリカードMからデジタルカメラ200によって生成された画像ファイルを読み出す。なお、I/F106は、図示を省略するUSB、無線LANなどの外部機器との接続機能も有しており、有線通信または無線通信にてデジタルカメラ200との間で画像ファイルの授受が可能となっている。
【0019】
そして、印刷装置100は、メモリカードMを介して、あるいはデータ通信により画像データを受け取ると、CPU101により種々の処理を行うとともにプリンターエンジンコントローラー111によりプリンターエンジン113を制御し、これによって画像データに対応する画像を印刷する。以下、図2ないし図4に基づき画像ファイルの構成を説明した上で、本実施形態における画像処理動作および印刷動作について図4ないし図10を参照しつつ詳述する。
【0020】
図2は上記のように構成されたデジタルカメラで作成される画像ファイルの一例を示す図である。また、図3は図2の部分拡大図である。この実施形態では、デジタルカメラ200はCCD204で撮像された画像を示す画像データをRAM203に格納する。また、デジタルカメラ200は、被写体に人物が含まれているときには顔認識処理を行う(顔認識方式については従来より数多く提案されており、それらのうちいずれの方式を採用してもよい)。なお、本実施形態では、顔認識処理により検出される顔認識結果は、図4(a)に示すような座標情報が顔情報として表現される。すなわち、同図(a)に示すように、画像データは所定の画像幅(Width)と画像高さ(Height)の画素で構成されており、Xが横軸、Yが縦軸を表しており、左上が原点(0,0)である。そして、画像データから顔が検出されると、両目端が入る間隔(顔サイズ)を1辺とする正方形の顔領域(または顔矩形という)FRを左上(LT)、左下(LB)、右上(RT)、右下(RB)の4点の座標で囲まれる領域で表し、顔領域FRを示す座標、つまり顔座標を、認識した顔の個数(つまりカメラ顔個数)NcとともにRAM203に格納する。なお、本明細書では、後で説明するように、印刷装置100においてもデジタルカメラ200での顔認識と同様に顔認識を行って顔座標を求めることがあるため、両者を識別するために、デジタルカメラ200での顔認識により検出される顔座標を「カメラ顔座標」と称する一方、後述するように印刷装置100の顔認識処理により検出される顔座標については「プリンター顔座標」と称する。
【0021】
また、この実施形態では、上記のように画像データ、顔個数および顔座標などをRAM203に格納しているが、その記録方式としてディジタルスチルカメラ用画像ファイルフォーマット規格Exif Ver.2.2.1を使用している。このExif画像ファイルの構造は、基本的には通常のJPEG(Joint Photographic Experts Group)画像形式そのものであり、その中にサムネイル画像や撮影関連データ等のデータをJPEGの規約に準拠した形で埋め込んだものである。
【0022】
本実施形態で使用する画像ファイルは、図2の左側部分に示すように、最初にSOI(Start of image)301がある。その後に、APP1(アプリケーション・マーカーセグメント)302、DQT(Define Quantization Table)303、DHT(Define Huffman Table)304の順となっている。さらにその後に、SOF(Start of Frame)305、SOS(Start of Stream)マーカー306、圧縮データ(Compress Data)307の順となっている。最後にEOI(End of Image)308がある。これらのうちAPP1はアプリケーションプログラムで使用するためのデータ領域として図2の中央部分に示す構造を有している。APP1の構造では、先頭にAPP1 Marker領域302aがある。そして、その次にLength領域302bがある。
【0023】
Length領域302bに続くデータの最初の6バイトの領域302cでは、識別子としてASCII文字の“Exif"が、その次に2バイトの0x00が続く。そこからTiff(Tagged Image File Format)形式でデータが格納されている。Tiff形式の最初の8バイトはTiffヘッダー(Header)領域302dである。
【0024】
また、Tiffヘッダー領域302dの次の0th IFD(IFD of main image)領域302eに、同図の右側部分に示すように、画像幅、画像高さ等の画像関連情報が格納される。そして、0th IFDの次に0th IFD Value領域302fがある。さらに、その次にExif IFD領域302gが設けられ、露出時間、Fナンバー、被写体距離、レンズ焦点距離などの撮影関連情報が格納される。また、Exif IFD領域302gにExif IFD Value領域302hがある。なお、現在のところ、顔認識処理により検出される顔個数NcとNc個の顔座標をExifタグに書き込む規格は規定されていないが、本実施形態では顔個数NcがExif IFD領域302gに書き込まれ、Nc個の顔座標がExif IFD Value領域302hに書き込まれるとともに該書込位置をポイントする情報がExif IFD領域302gに書き込まれると仮定して説明を続ける。もちろん、これらの情報をメーカーに依存する領域に書き込むように構成してもよい。このように、本実施形態では、顔位置(顔座標)の情報である顔情報はExif情報に記載され、画像データに添付されている。したがって、Exif情報に顔情報が含まれる場合には、顔個数Ncやシーン情報などとともに画像データの補正に利用される。一方、Exif情報に顔情報が含まれていない場合、顔情報がないと判断される。
【0025】
このようにデジタルカメラ200側で顔認識処理が実行されるが、被写体に含まれる人物の顔の全部が完全かつ正確に検出される保証はなく、デジタルカメラ200側で誤検出が発生することがある。例えば過剰に小さい顔(例えば、人形の顔)や、過剰に大きい顔(例えば、ポスターに写る顔)を検出し、それらの顔座標をExifタグに書き込んでしまうことがあった。そこで、本実施形態では、有効顔サイズ範囲に基づく誤検出認定処理、有効顔サイズ範囲を利用した顔認識処理を実行している。以下においては、それらの処理概要を説明した上で、印刷装置100による画像処理および印刷動作について詳述する。
【0026】
B.有効顔サイズ範囲に基づく誤検出認定処理
図5は顔領域のサイズと有効顔サイズとの関係を示す模式図である。デジタルカメラ200により顔認識処理を行った場合、例えば図5に示すように、人形の顔を人物の顔と認識して過剰に小さい顔領域FRSが検出されたり、ポスターに写る顔を人物の顔と認識して過剰に大きい顔領域FRLが検出されることがある。そこで、本実施形態では、画像データに人物の顔が含まれるときに人物の顔サイズとして取り得る値の範囲、つまり有効顔サイズ範囲を画像データに付加されている撮影情報に基づいて求め、デジタルカメラ200により検出された顔領域のうち有効顔サイズ範囲内にあるものを適正な顔領域FRAと認定する一方、有効顔サイズ範囲から外れた顔領域FRS、FRLを誤検出領域と認定している。
【0027】
図6は画像上の画素数と実顔サイズとの関係を示す図である。図中には、被写体SBと、光学系208と、CCD204との位置関係を示す側面図が示されている。光学系208は複数のレンズを有しているが、ここでは、簡略化のために、1つのレンズが光学系208を示している。さらに、図中には、以下の要素が示されている。すなわち、被写体の実顔サイズSX(実際の長さ:単位cm)と、被写体距離LA(単位m)と、レンズ焦点距離LB(単位mm)と、CCD204の受光面(結像面)上に形成された被写体OBを表す結像PIと、デジタルズーム倍率DZRとである。なお、被写体OBの実顔サイズSXは、高さ方向(CCD204の高さ方向、画像高さの方向に相当する)に沿った長さを示している。また、Exifタグ(0x9206)から取得した被写体距離LAは、光学系208の光学中心(主点PP)と被写体OBとの間の距離とほぼ同じである。また、Exifタグ(0x920A)から取得したレンズ焦点距離LBは、光学系208の光学中心(主点PP)とCCD204上の結像面との間の距離を示している。なお、デジタルズーム倍率DZRは、Exifタグ(0xA404)から取得されるとともに、図示されていないが画像高さの解像度C(dpi)がExifタグ(0x11B)から取得される。
【0028】
従来より周知のように、主点PPと被写体OBとで決まる三角形と、主点PPと結像PIとで決まる三角形とは、相似である。なお、実際には、被写体OB側からみた光学系208の主点が、結像PI側から見た光学系208の主点と、異なる場合もあるが、図6に示す関係においてはその差違は十分に小さいので、実質的には、その差違を省略することができる。また、被写体の画像上のサイズ、つまり顔サイズSは結像PIのサイズにデジタルズーム倍率DZRを乗じて得られる値と同じである。そこで、顔サイズSを画素数(ピクセル)で示すと、次式で表される。
S=(LB*DZR*(SX*C/24.5))/(LA*100)…式1
そして、人物の標準的な実顔サイズSXを例えば20cmとし、それより10cm短い実顔サイズを最小値とする一方、それより10cm大きい実顔サイズを最大値とし、上記式に基づき顔サイズSの最小値、つまり有効最小顔サイズSminおよび最大値、有効最大顔サイズSmaxが求まる。これら有効最小顔サイズSminおよび有効最大顔サイズSmaxの間が顔サイズSの取り得る範囲、つまり有効顔サイズ範囲であり、上記した被写体距離LA、レンズ焦点距離LB、画像高さの解像度Cおよびデジタルズーム倍率DZRを画像データに付加された撮影情報から取得することで有効顔サイズ範囲を算出することが可能となっている。
【0029】
そして、画像データに付加される各顔座標により特定される顔領域の顔サイズSが有効顔サイズ範囲内に入っているか否かを判別することができ、有効顔サイズ範囲内に含まれる顔領域FRAを「適正な顔領域」と認定し、範囲外の顔領域FRS、FRLを「誤検出領域」と認定することができる。
【0030】
なお、本実施形態では、後述するようにデジタルカメラ200で撮像された画像をQVGA(Quarter Video Graphics Array)サイズに規格化することから、Exifタグ(0x100)から画像幅Wを取得するとともにExifタグ(0x101)から画像高さHを取得し、上記式により得られる顔サイズSを次式にしたがってQVGAサイズに規格化する。
W/H≧320/240のとき(QVGAより横に長いとき)、
S′=S*240/H
S′max=Smax*240/H
S′min=Smin*240/H
W/H<320/240のとき(QVGAより縦に長いとき)、
S′=S*320/W
S′max=Smax*320/W
S′min=Smin*320/W
なお、後述する印刷装置100の画像処理においては、こうして求めたS′maxおよびS′minをそれぞれ有効最大顔サイズSmaxおよび有効最小顔サイズSminとして有効顔サイズ範囲を規定するとともに、これらの値を用いて次に説明する顔認識処理を行う。
【0031】
C.有効顔サイズ範囲を利用した顔認識処理
図7は、誤検出顔領域、検索領域および検索範囲の関係を示す図である。同図(a)では、画像データで示される画像領域(320×240)に過剰に大きい顔領域FRLが含まれている。この場合、上記した誤検出認定処理により顔領域FRLは誤検出領域であると認定されることから、この顔領域FRLについて顔認識を行うことは無意味である。したがって、画像データから人物の顔を検出する検索範囲を、画像領域全体に設定するのではなく、同図(b)に示すように誤検出領域(顔領域FRL)を除いた範囲に設定するのが合理的であり、これにより印刷装置100における顔認識処理に要する時間を短縮することができる。
【0032】
また、誤検出認定処理により有効顔サイズ範囲が既に求められているため、この範囲から外れた顔サイズのテンプレート(検索領域)TPを用いて顔認識を行うことも意味がなく、有効顔サイズ範囲に入る顔サイズのテンプレートTPのみを用いて顔認識を行うことで印刷装置100における顔認識処理に要する時間をさらに短縮することができる。なお、テンプレートTPを用いて顔認識を行う技術は既に周知であるため、この明細書での詳しい説明は省略する。
【0033】
D.印刷装置100による画像処理および印刷動作
本実施形態では、有効顔サイズ範囲に基づく誤検出認定処理と、有効顔サイズ範囲を利用した顔認識処理とを組み合わせて画像データに付加される顔情報が誤検出情報であるか否かを求め、さらに誤検出情報が含まれる際には短時間で顔認識処理を行って新たな顔情報を検出している。また、人物の顔を新たに検出すると、そのプリンター顔座標を考慮して画像データを補正した上で印刷装置100により印刷される。以下に、この印刷装置100における一連の動作について説明する。
【0034】
図8および図9は図1の印刷装置で実行される画像処理および印刷動作を示すフローチャートである。ここでは、図2に示すデータ構造を有する画像ファイルがメモリカードMに保存されており、そのメモリカードMから画像ファイルを読み出し、印刷装置100により画像ファイルに含まれる各種情報に基づき所定の画像処理を実行して印刷する動作について説明する。
【0035】
ユーザーが印刷装置100のカードスロット112にメモリカードMを挿入し、操作ボタン109を操作して印刷指令を与えると、CPU101がROM102に格納されているプログラムにしたがって装置各部を制御して以下の画像処理および印刷動作を実行する。
【0036】
まず、CPU101は、印刷の対象となる画像ファイルをメモリカードMから取得し、ハフマン解凍処理を実行し、量子化DCT(Discrete Cosine Transform)係数を得る(ステップS10)。より具体的には、CPU101は、図2に示す画像ファイルからエントロピー符号化テーブルを取得し、圧縮データ307に含まれているY(輝度)成分、Cr(色差成分)、および、Cb(色差成分)のそれぞれのブロックのDC係数と、AC係数とを復号する。なお、この際、最小符号化単位であるMCU(Minimum Coded Unit)単位で復号を行う。
【0037】
また、CPU101は、ステップS10において得られた量子化DCT係数を逆量子化する(ステップS11)。具体的には、CPU101は、図2に示す画像ファイルから量子化テーブルを取得し、ステップS10において得られた量子化DCT係数に乗じることにより(逆量子化することにより)、DCT係数を得る。
【0038】
次に、CPU101は、画像を回転させるために必要な情報を、例えばRAM103にキャッシュする(ステップS12)。具体的には、JPEG方式によって圧縮された画像を回転させる場合、MCUのDC成分(直流成分)とAC成分(交流成分)のそれぞれを一度ハフマン展開しなければならない。ここで、DC成分については隣接するDC成分値の差分をハフマン符号化することから、隣接するMCUとの相関関係が問題となる。また、AC成分ではハフマン符号化処理によりそのデータ長が各MCUで一定にならず、JPEGデータのビットストリーム中のどのデータが求めるMCUのAC成分値であるかが不明となることが問題となる。そこで、ステップS12では、各MCUのDC成分値とAC成分のアドレスを求めてキャッシュしておくことにより、ローテート処理を可能とする。
【0039】
そして、CPU101はステップS11で得られたDCT係数に対して逆DCT演算を施すことによりもとの画素値を得る(ステップS13)。また、CPU101は、ステップS13の処理によって得られたYCC空間の画像をRGB(Red Green Blue)空間の画像と、HSB(Hue Saturation Brightness)空間の画像に変換する(ステップS14)。
【0040】
次に、CPU101はステップS13およびステップS14の処理において得られたYCC,RGB,HSBのそれぞれの画像をRAM103に格納して保持する。なお、このとき、データ量を削減するために画素を所定の割合で間引きした後にRAM103に格納してもよい(ステップS15)。
【0041】
また、CPU101は、ステップS15においてRAM103に格納されたYCC,RGB,HSBそれぞれの画像の成分について、ヒストグラムを計算する(ステップS16)。具体的には、RGB画像については、R,G,Bそれぞれの画像についてヒストグラムを計算する。その結果、画像を構成する各成分の分布を得る。
【0042】
上記したように、本実施形態では、ステップS10〜16の処理はMCU単位で行われており、CPU101は、全てのMCUについての処理が終了したことを確認するまで、ステップS10に戻って処理を繰り返して実行する。一方、全てのMCUについての処理が終了した場合には、次に有効顔サイズ範囲を求める(ステップS17〜S21)。
【0043】
ステップS17で、CPU101は画像データに付加された撮影情報を読み込む。そして、有効顔サイズ範囲を算出するのに必要な撮影情報、つまり被写体距離LA、レンズ焦点距離LB、画像高さの解像度Cおよびデジタルズーム倍率DZRを取得することができたとき(ステップS18で「YES」)、CPU101は、実顔サイズSXの最小値および最大値をそれぞれ10cm、30cmとし、式1に基づいて有効最小顔サイズSminおよび有効最大顔サイズSmaxを算出する(ステップS19)。一方、必要な撮影情報が得られなかったとき(ステップS18で「NO」)、CPU101は有効最小顔サイズSminおよび有効最大顔サイズSmaxをそれぞれ20(ピクセル)、240(ピクセル)に設定する(ステップS20)。
【0044】
次のステップS21で、CPU101は、Exifタグから画像データに付加されたカメラ顔座標を取得し、RAM103のカメラ顔座標用のメモリ空間に記憶するとともにカメラ顔個数Ncを記憶する。すなわち、CPU101は、図2の画像ファイル中のExifタグから顔個数Ncおよびカメラ顔座標を読み込み、さらにカメラ顔座標についてはQVGAサイズに規格化し、それらをRAM103に格納する。この実施形態では、例えば図10(a)に示すように、10個のカメラ顔座標を記憶するためのメモリ空間が予めRAM103に準備されており、このメモリ空間にカメラ顔座標が登録顔情報No.1、2、…の順序で記憶される。例えばデジタルカメラ200での顔認識処理によって2つの顔領域が検出され、各顔領域を示すカメラ顔座標(LT1c,LB1c,RT1c,RB1c)、(LT2c,LB2c,RT2c,RB2c)が検出されて画像データに付加されているときには、印刷装置100において2つのカメラ顔座標は図10(a)に示すようにそれぞれ登録顔情報No.1、2として登録される。なお、該当するカメラ顔座標がない登録顔情報No.3以降のアドレスにはゼロを登録する。また、CPU101は、読み込んだ顔の個数、つまりカメラ顔個数Ncを設定する(上記した具体例では、Nc=2と設定する)。
【0045】
こうして有効顔サイズ範囲が決定されると、CPU101は有効顔サイズ範囲に基づく誤検出認定処理(S22〜S25)を実行する。すなわち、CPU101は、ステップS22でカメラ顔個数Ncがゼロより大きい値である間(ステップS22で「YES」)、Nc番目のカメラ顔座標により特定される顔領域の顔サイズが有効顔サイズ範囲内であるか否かを判別する(ステップS23)。なお、本明細書では、Nc番目のカメラ顔座標により特定される顔領域を「Nc番目の顔領域」と称し、Nc番目の顔領域の顔サイズを「Nc番目の顔サイズ」と称する。
【0046】
上記ステップS23で「YES」のとき、つまりNc番目の顔領域を「適正な顔領域」と認定すると、CPU101はNc番目のカメラ顔座標を座標リストに登録する(ステップS24)。この座標リストは、例えば図10(b)に示すように予め10個の顔座標を記憶するためのRAM103に設定されたメモリ空間であり、上記カメラ顔座標用とは別個に設けられたものである。そして、座標リストへの登録が完了すると、CPU101は、ステップS25に進んでカメラ顔個数Ncを「1」だけデクリメントし、ステップS22に戻る。なお、上記ステップS23で「NO」のとき、つまりNc番目の顔領域を「誤検出顔領域」と認定すると、CPU101はそのままステップS25に進む。このように、本実施形態では、誤検出顔領域と認定された顔領域を示すカメラ顔座標を誤検出顔座標として座標リストに登録しないことで、当該カメラ顔座標を実質的に印刷装置100から削除している。例えば、図10に示すように、デジタルカメラ200により検出された2つのカメラ顔座標のうち登録顔情報No.2が誤検出顔座標と認定されると、座標リストに登録されず、人物の顔と認識されず、事実上、削除されている。
【0047】
こうして画像データに付加された、つまりデジタルカメラ200での顔認識処理により検出された顔領域の全てについて、「適正な顔領域」または「誤検出顔領域」の認定が完了すると、CPU101は、画像データに付加されたカメラ顔個数Ncと、座標リストへのカメラ顔座標の登録個数とが一致し、しかも、それらがゼロよりも大きいかを判別する(ステップS26)。すなわち、デジタルカメラ200で人物の顔と認定された顔領域の全てが「適正な顔領域」と判別されたか否かを判別する。そして、全て適正な顔領域である場合には、改めて画像データを補正する必要がないため、ステップS27で「エンハンスなし」を設定し、印刷処理に進む。これに対し、デジタルカメラ200で人物の顔と認定された顔領域のうち少なくとも1つでも「誤検出顔領域」と認定されるとき、あるいはデジタルカメラ200側で人物の顔が検出されていないとき、次に説明するように印刷処理に先立って有効顔サイズ範囲を利用した顔認識処理を実行する(ステップS28〜S42)。
【0048】
この実施形態では、CPU101は、顔認識に用いるテンプレートTPの顔サイズSを有効最大顔サイズSmaxに設定し(ステップS28)、そのテンプレートTPを原点(0,0)に位置させる(ステップS29,S30)。そして、CPU101は、図7に示すようにテンプレートTPをΔX(この実施形態では、ΔX=S/2)単位でX方向にステップ移動させながら原点位置および各移動位置でステップS31〜S36の処理を実行する。すなわち、CPU101は、テンプレートTPが位置する検索領域に未登録のカメラ顔座標が含まれるか否か、つまり誤検出領域FRL(あるいはFRS)が重なっているか否かを判別する(ステップS31)。これは、「C.有効顔サイズ範囲を利用した顔認識処理」の項で説明したように、画像データから人物の顔を検出する検索範囲を、図7(b)に示すように誤検出領域を除いた範囲に絞り込むためであり、CPU101はステップS31で「YES」と判別したときには、判別処理(ステップS32)および顔認識処理(S33〜S36)をパスする。
【0049】
ステップS32では、CPU101は、印刷装置100による顔認識が行われてプリンター顔座標が既に登録されているか否かを判別する。そして、既にプリンター顔座標が検出されて座標リストに登録されている場合(ステップS32で「YES」)、CPU101は顔認識処理(S33〜S36)をパスする。このように、無駄となる顔認識処理を実行しないことで印刷装置100での顔認識に要する時間の短縮を図っている。
【0050】
一方、テンプレートTPが位置する検索領域に未登録カメラ顔座標もプリンター顔座標も存在しない場合(ステップS31で「NO」、ステップS32で「NO」)、CPU101はステップS15で保持した画像データに対してテンプレートTPを適用して顔認識処理を行い(ステップS33)、顔を検出した場合には、例えば図10(b)に示すように、その顔領域の位置を示すプリンター顔座標を座標リストに追加する。
【0051】
また、CPU101は、保持した画像データを90゜、180゜および270゜回転させて顔認識処理を行い(ステップS34〜S36)、顔を検出した場合には、その顔領域の位置を示すプリンター顔座標を座標リストに追加する。なお、本実施形態では画像データを回転させて顔認識を行っているが、テンプレートTPを回転させて顔認識を行ってもよい。
【0052】
また、X方向の1ラインの顔認識が完了する(ステップS38で「YES」)と、CPU101はテンプレートTPをY方向にΔY(この実施形態では、ΔY=S/2)だけ移動させる(ステップS39)。そして、テンプレートTPがY方向の端部まで位置するまでの間(ステップS40で「NO」の間)、上記したステップS30〜S39を繰り返して行う。これにより、図7(b)に示すように誤検出領域を除いた検索範囲内で顔サイズSのテンプレートTPを用いた顔認識処理が実行される。
【0053】
なお、CPU101は、上記した一連の顔認識処理(ステップS29〜S40)が完了する毎にテンプレートTPの顔サイズSをΔS(この実施形態では10ピクセルに設定)だけ小さくし(ステップS41)、顔サイズSが有効最小顔サイズSminを下回るまでステップS29に戻って上記した一連の顔認識処理(ステップS29〜S40)を繰り返して行う。
【0054】
こうして、印刷装置100による顔認識処理が行われると、次のステップS43で、CPU101は座標リストにカメラ顔座標および/またはプリンター顔座標が登録されている否かを判別する。そして、カメラ顔座標かプリンター顔座標かを問わず、顔座標が登録されている場合(ステップS43で「YES」)には、CPU101は、座標リストに登録された顔座標に基づいて全ての顔位置を計算し、さらに顔の平均顔色を取得した(ステップS44)後、顔色が最適になるようにエンハンスパラメータを計算する(ステップS45)。なお、エンハンスパラメータ計算の詳細については省略するが、RAM103に記憶したRGBヒストグラムに基づきコントラスト、明度、彩度、シャープネスなどの各画質パラメータの特徴量を抽出し、抽出した特徴量が所定の画質パラメータの特徴量に近づくようエンハンスのパラメータを設定する。
【0055】
一方、座標リストにカメラ顔座標もプリンター顔座標も登録されていない場合(ステップS43で「NO」)、CPU101は、画像全体が最適になるようにエンハンスパラメータを計算する(ステップS46)。
【0056】
このように、本実施形態では印刷装置100により顔認識処理を実行した際にはエンハンスパラメータの設定を行った後、ステップS47に進む。なお、上記したようにデジタルカメラ200で人物の顔と認定された顔領域の全てが「適正な顔領域」と判別された場合(ステップS26で「YES」)、「エンハンスなし」が設定された状態で、ステップS47に進む。
【0057】
このステップS47では、CPU101は、印刷対象となる画像ファイルにおいて、解凍処理の対象となる位置を示すファイルポインタをリセットし、処理位置を画像ファイルの先頭に復元する。そして、CPU101は、以下のステップS48〜S56を繰り返して画像データに基づいて画像を印刷する。
【0058】
CPU101は、RAM103にキャッシュされた1MCUライン分の画像データにハフマン解凍処理を施し、量子化DCT係数を得る(ステップS48)。ここで、1MCUラインとは、画像を回転させる場合には、画像を構成する列方向に1列のMCU群をいい、回転させない場合には、画像を構成する行方向に1列のMCU群をいう。そして、CPU101は、ステップS29の処理において得られた量子化DCT係数を逆量子化し(ステップS49)、さらにステップS48で得られたDCT係数に対して逆DCT演算を施すことによりもとのデータを得る(ステップS50)。
【0059】
こうして得られたYCC空間の画像を、CPU101はRGB空間の画像に変換する(ステップS51)。そして、CPU101は、エンハンスの実行が設定されている場合のみ、つまりステップS52で「YES」と判別した場合のみ、RGB空間の画像を構成する各画素に対してステップS45、S46において算出したエンハンスパラメータを適用することにより、印刷される画像を最適な色合いに補正し(ステップS53)、次のステップS54に進む。
【0060】
CPU101は、こうして補正された画像データに対して、リサイズ、回転などのレイアウト処理を施し(ステップS54)、プリンターエンジンコントローラー111の図示せぬバンドバッファに供給する。これを受けたプリンターエンジンコントローラー111は、プリンターエンジン113の各部を制御して画像データに対応する画像を印刷する(ステップS55)。そして、印刷処理が完了すると、CPU101はRAM103のキャッシュ状態を更新する(ステップS56)。そして、全MCUライン分について上記ステップS48〜S56が完了すると、一連の処理を終了する。
【0061】
以上のように、本実施形態によれば、画像データに付加された撮影情報(被写体距離LA、レンズ焦点距離LB、画像高さの解像度Cおよびデジタルズーム倍率DZR)に基づき有効顔サイズ範囲(Smin〜Smax)を求め、これに基づいて画像データに付加されるカメラ顔情報が誤検出情報であるか否かを認定している。より具体的には、カメラ顔座標で特定される顔サイズが有効顔サイズ範囲から外れるとき、当該カメラ顔情報を誤検出情報と認定しており、誤検出情報を高い蓋然性を求めることができる。
【0062】
また、こうして誤検出情報を求めた場合に、画像データから人物の顔を認識してプリンター顔座標を新たに検出しているので、デジタルカメラ側での顔認識の補佐を行うことができる。そして、プリンター顔座標に基づいて画像データを補正することで良好な色合い等で画像を印刷することができる。
【0063】
また、上記のように印刷装置100で顔認識する際、画像データ全体から顔情報を検出してもよいが、誤検出領域と認定された顔領域FRS、FRLを除いた検索範囲(図7(b)の梨地部分)で画像データから人物の顔を認識して顔座標を検出している。つまり、人物の顔が含まれないことが判っている領域を省いて顔認識処理を実行しているので、画像データ全体から顔情報を検出する従来技術に比べて顔認識処理に要する時間を大幅に短縮することができる。
【0064】
また、印刷装置100での顔認識処理において、テンプレート(検索領域)TPの顔サイズを有効顔サイズ範囲内に設定して顔認識処理を行っているため、印刷装置100での顔認識処理に要する時間を短縮することができる。
【0065】
E.その他
なお、本発明は上記した実施形態に限定されるものではなく、その趣旨を逸脱しない限りにおいて上述したもの以外に種々の変更を行うことが可能である。例えば、上記実施形態では、画像データに顔座標などを付加した画像ファイルをメモリカードMに記録し、当該メモリカードMを介して印刷装置100に供給して印刷しているが、有線または無線通信により画像ファイルが印刷装置100に供給される場合も、本発明を適用することで上記した実施形態と同様の作用効果が得られる。
【0066】
また、上記実施形態では、顔領域FRA、FRL、FRSを4点の座標で示しているが、顔領域の表現方式はこれに限定されるものではなく、例えば中心座標に大きさを組み合わせたもの、中心座標に幅および高さを組み合わせたもの等を用いることができる。
【0067】
また、上記実施形態では、本発明にかかる画像処理装置および方法を印刷装置100に適用しているが、複数の電子機器から構成される印刷システムにも、また印刷装置以外の1つの電子機器(例えば複合機、ファクシミリ装置など)にも適用可能である。
【0068】
また、上記実施形態にかかる画像処理方法を実行するプログラムを、CD−ROM、光ディスク、光磁気ディスク、不揮発性メモリカードなどの記憶媒体に記憶させ、この記憶媒体からプログラムをコードとして読み出し、コンピューターにおいて実行してもよい。つまり、上記プログラムを記憶した記憶媒体、コンピュータープログラム自体も本発明の一実施形態に含まれる。
【符号の説明】
【0069】
100…印刷装置、 101…CPU(情報取得部、範囲算出部、誤検出認定部、顔情報検出部、補正部)、 102…ROM、 103…RAM、 104…EEPROM、 200…デジタルカメラ、 307…圧縮データ(画像データ)、 FRA…(適正な)顔領域、 FRS、FRL…誤検出顔領域、 TP…テンプレート(検索領域)
【技術分野】
【0001】
この発明は、画像データに付加された顔情報の適否を判断する画像処理装置および画像処理方法に関するものである。
【背景技術】
【0002】
画像データに顔情報を付加する技術については、例えば特許文献1に記載されている。この特許文献1に記載のプリントシステムでは、デジタルカメラが顔認識処理を実行して顔オブジェクトの位置情報や色情報などを顔オブジェクト情報として検出し、さらに原撮影画像データに添付し、または埋め込んで顔オブジェクト情報付き撮影画像データを生成する。一方、プリンターなどの印刷装置は、撮影画像に付加される顔オブジェクト情報に基づいて画像データに対して色補正を実行し、色補正済の画像を印刷する。このように、デジタルカメラによる顔認識結果を利用して印刷装置側で独自に補正をかける技術が知られている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2007−213455号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、デジタルカメラの顔認識によって被写体に含まれる人物の顔の全部が完全かつ正確に検出される保証はなく、デジタルカメラ側で誤検出が発生する可能性があった。このため、顔情報が付加された画像データを受け取った装置側で、当該顔情報が正しく検出されたものであるか否かを判別することができる技術の提供が要望されている。
【0005】
この発明にかかるいくつかの態様は、画像データに付加される顔情報が誤検出情報であるか否かを求めることができる画像処理装置および画像処理方法を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の第1の態様は、画像データに付加される顔情報および撮影情報を取得する情報取得部と、画像データに人物の顔が含まれるときに人物の顔サイズとして取り得る値の範囲である有効顔サイズ範囲を、撮影情報に基づいて求める範囲算出部と、情報取得部により取得した顔情報で特定される顔サイズが有効顔サイズ範囲から外れるときには顔情報を誤検出情報と認定する誤検出認定部とを備えることを特徴としている。
【0007】
また、本発明の第2の態様は、画像データに付加される撮影情報に基づいて画像データに人物の顔が含まれるときに人物の顔サイズとして取り得る値の範囲を示す有効顔サイズ範囲を求めた後、撮影情報とともに画像データに付加される顔情報で特定される顔サイズが、有効顔サイズ範囲の最大値よりも大きい、または有効顔サイズ範囲の最小値よりも小さい場合、顔情報は誤検出されたものであると認定することを特徴としている。
【0008】
人物を撮影して画像データを生成した場合、その画像データに撮影情報とともに顔情報が付加されることがある。ここで注目すべきは、人物が適正に撮影されたとき、画像データに含まれる人物の顔サイズは撮影情報に含まれる撮影条件(被写体距離やレンズ焦点距離など)に応じた有効顔サイズ範囲に収まることであり、顔情報で特定される顔サイズが有効顔サイズ範囲から外れる場合、その顔情報は誤検出されたものである蓋然性が高いという点である。そこで、本発明では、画像データに付加された撮影情報に基づき有効顔サイズ範囲が求められ、顔情報で特定される顔サイズが有効顔サイズ範囲から外れるとき、当該顔情報は誤検出情報と認定される。このため、画像データに付加される顔情報が誤検出情報であるか否かを求めることができる。
【0009】
ここで、画像データに付加された顔情報が誤検出されたものである場合、画像データから人物の顔を認識して顔情報を新たに検出するのが望まれる。もちろん、画像データ全体から顔情報を検出してもよいが、誤検出情報と認定された顔情報により特定される顔領域以外の検索範囲で画像データから人物の顔を認識して顔情報を検出するのが好適である。このように人物の顔が含まれないことが判っている領域を省いて顔認識処理を実行することで同処理に要する時間を短縮することができる。
【0010】
また、有効顔サイズ範囲内の検索サイズを有する検索領域を検索範囲内で移動させながら各検索領域に対応する画像データに基づき人物の顔を認識して顔情報を検出するように構成してもよい。また、検索領域の検索サイズを有効顔サイズ範囲の最大値に設定し、検索範囲から人物の顔を認識して顔情報を検出する第1顔認識処理を行うように構成してもよい。さらに、第1顔認識処理の後に、検索領域の検索サイズを有効顔サイズ範囲の最大値よりも小さい値に設定し、検索範囲から第1顔認識処理により検出された人物の顔領域を除いた範囲から人物の顔を認識して顔情報を検出する第2顔認識処理を行うように構成してもよい。このような顔認識処理を行うことで、顔認識処理に要する時間をさらに短縮することができる。
【0011】
なお、上記のようにして画像データから顔情報を新たに検出したときには、当該顔情報に基づいて画像データを補正するのが望ましい。また、画像データに複数の顔情報が付加されていることがあり、その一部が誤検出情報と認定されることがある。この場合、誤検出情報以外の顔情報は適切に検出されたものであるため、これらの顔情報と、上記のように新たに検出した顔情報とに基づいて画像データを補正するのが好適である。
【図面の簡単な説明】
【0012】
【図1】本発明にかかる画像処理装置の一実施形態を用いた印刷システムを示す図。
【図2】デジタルカメラで作成される画像ファイルの一例を示す図。
【図3】図2の部分拡大図。
【図4】顔認識処理により認識された顔の一例を示す図。
【図5】顔領域のサイズと有効顔サイズとの関係を示す模式図。
【図6】画像上の画素数と実顔サイズとの関係を示す図。
【図7】誤検出顔領域、検索領域および検索範囲の関係を示す図。
【図8】図1の印刷装置で実行される画像処理および印刷動作を示すフローチャート。
【図9】図1の印刷装置で実行される画像処理および印刷動作を示すフローチャート。
【図10】プリンター顔座標およびカメラ顔座標の座標リストへの登録例を示す図。
【発明を実施するための形態】
【0013】
A.印刷システムの構成
図1は、本発明にかかる画像処理装置の一実施形態を用いた印刷システムを示す図である。この印刷システムは、デジタルカメラ200の撮影により取得された画像データを、メモリカードM、USB(Universal Serial Bus)ケーブルや無線LAN(Local Area Network)等によって印刷装置100に転送し、印刷装置100で印刷するものである。すなわち、ここではユーザーがデジタルカメラ200で画像を撮影して画像データを生成し、その画像データをそのまま印刷装置100で読み込んで印刷する、いわゆるダイレクト印刷を想定しているが、本発明を適用可能な印刷システムはこれに限定されるものではない。つまり、デジタルカメラ200で生成した画像データをパーソナルコンピューターや携帯電話などに取り込み、パーソナルコンピューターから印刷装置100に画像データを送信して印刷する印刷システムにも本発明を適用することは可能である。
【0014】
デジタルカメラ200では、同図に示すように、CPU(Central Processing Unit)201、ROM(Read Only Memory)202、RAM(Random Access Memory)203、CCD(Charge Coupled Device)204、GP(Graphic Processor)205およびI/F(Interface)206がバス207を介して相互に接続され、これらの間で情報の授受が可能となっている。そして、CPU201はROM202に格納されているプログラムに応じて各種演算処理を実行しながらデジタルカメラ200の制御を行う。このとき一時的に必要となるデータはRAM203に格納される。また、CCD204は、光学系208によって集光された被写体からの光学像を電気信号に変換して出力する。この光学系208は、複数のレンズおよびアクチュエータによって構成されており、アクチュエータによってフォーカス等を調整しながら被写体の光学像を複数のレンズによってCCD204の受光面に結像する。さらに、GP205は、CPU201から供給される表示命令に基づいて表示用の画像処理を実行し、得られた表示用画像データをLCD(Liquid Crystal Display)209に供給して表示させる。
【0015】
I/F206はデジタルカメラ200の入出力機能を提供するものであり、操作ボタン210、ジャイロセンサー211およびカードI/F回路212の間で情報を授受する際に、データの表現形式を適宜変換する装置である。I/F206に接続される操作ボタン210には、電源、モード切替え、シャッターなどのボタンや、各種機能を設定できる入力手段があり、これらによってユーザーはデジタルカメラ200を任意に制御して動作させることが可能となっている。また、ジャイロセンサー211はデジタルカメラ200によって被写体を撮影した際のカメラ本体の角度(水平面に対する角度)を示す信号を生成して出力する。デジタルカメラ200は、上記したカメラ本体の角度を含め、撮影時における種々の情報(例えば、露光、被写体等に関する情報)を生成する。それらの情報の一つである撮影情報に後述する顔情報やシーン情報などが含まれる。なお、本実施形態では、デジタルカメラ200は、撮影情報をExif(Exchangeable Image File Format)情報に記載し、画像データに付加した画像ファイルを生成することができる構造となっている。
【0016】
また、カードI/F回路212はカードスロット213に挿入されたメモリカードMとの間で情報を読み書きするためのインタフェースである。さらに、I/F206は図示を省略するUSB、無線LANなどの外部機器との接続機能も有しており、有線または無線にて印刷装置100との間で画像ファイルの授受が可能となっている。なお、デジタルカメラ200で作成され、印刷装置100に与えられる画像ファイル(画像データ+Exif情報)については、後で詳述する。
【0017】
印刷装置100はデジタルカメラ200で撮像された画像を印刷する装置であり、次のように構成されている。印刷装置100では、CPU101、ROM102、RAM103、EEPROM(Electrically Erasable and Programmable ROM)104、GP105およびI/F106がバス107を介して相互に接続され、これらの間で情報の授受が可能となっている。CPU101はROM102およびEEPROM104に格納されているプログラムに応じて各種演算処理を実行するとともに印刷装置100の各部を制御し、本発明の「情報取得部」、「範囲算出部」、「誤検出認定部」。「顔情報検出部」および「補正部」として機能する。また、CPU101が実行対象とするプログラムやデータについてはRAM103に一時的に格納される一方、印刷装置の電源が切断された後も保持しておくデータ等についてはEEPROM104に格納される。さらに、CPU101は必要に応じてGP105に対して表示命令を与え、この表示命令に応じてGP105が表示用の画像処理を実行し、その処理結果をLCD108に供給して表示させる。
【0018】
I/F106は、操作ボタン109、カードI/F回路110およびプリンターエンジンコントローラー111の間で情報を授受する際に、データの表現形式を適宜変換する装置である。印刷装置100では、操作ボタン109は印刷装置100のメニュー選択等を行う時に押されるように構成されている。また、カードI/F回路110は、カードスロット112と接続されており、このカードスロット112に挿入されたメモリカードMからデジタルカメラ200によって生成された画像ファイルを読み出す。なお、I/F106は、図示を省略するUSB、無線LANなどの外部機器との接続機能も有しており、有線通信または無線通信にてデジタルカメラ200との間で画像ファイルの授受が可能となっている。
【0019】
そして、印刷装置100は、メモリカードMを介して、あるいはデータ通信により画像データを受け取ると、CPU101により種々の処理を行うとともにプリンターエンジンコントローラー111によりプリンターエンジン113を制御し、これによって画像データに対応する画像を印刷する。以下、図2ないし図4に基づき画像ファイルの構成を説明した上で、本実施形態における画像処理動作および印刷動作について図4ないし図10を参照しつつ詳述する。
【0020】
図2は上記のように構成されたデジタルカメラで作成される画像ファイルの一例を示す図である。また、図3は図2の部分拡大図である。この実施形態では、デジタルカメラ200はCCD204で撮像された画像を示す画像データをRAM203に格納する。また、デジタルカメラ200は、被写体に人物が含まれているときには顔認識処理を行う(顔認識方式については従来より数多く提案されており、それらのうちいずれの方式を採用してもよい)。なお、本実施形態では、顔認識処理により検出される顔認識結果は、図4(a)に示すような座標情報が顔情報として表現される。すなわち、同図(a)に示すように、画像データは所定の画像幅(Width)と画像高さ(Height)の画素で構成されており、Xが横軸、Yが縦軸を表しており、左上が原点(0,0)である。そして、画像データから顔が検出されると、両目端が入る間隔(顔サイズ)を1辺とする正方形の顔領域(または顔矩形という)FRを左上(LT)、左下(LB)、右上(RT)、右下(RB)の4点の座標で囲まれる領域で表し、顔領域FRを示す座標、つまり顔座標を、認識した顔の個数(つまりカメラ顔個数)NcとともにRAM203に格納する。なお、本明細書では、後で説明するように、印刷装置100においてもデジタルカメラ200での顔認識と同様に顔認識を行って顔座標を求めることがあるため、両者を識別するために、デジタルカメラ200での顔認識により検出される顔座標を「カメラ顔座標」と称する一方、後述するように印刷装置100の顔認識処理により検出される顔座標については「プリンター顔座標」と称する。
【0021】
また、この実施形態では、上記のように画像データ、顔個数および顔座標などをRAM203に格納しているが、その記録方式としてディジタルスチルカメラ用画像ファイルフォーマット規格Exif Ver.2.2.1を使用している。このExif画像ファイルの構造は、基本的には通常のJPEG(Joint Photographic Experts Group)画像形式そのものであり、その中にサムネイル画像や撮影関連データ等のデータをJPEGの規約に準拠した形で埋め込んだものである。
【0022】
本実施形態で使用する画像ファイルは、図2の左側部分に示すように、最初にSOI(Start of image)301がある。その後に、APP1(アプリケーション・マーカーセグメント)302、DQT(Define Quantization Table)303、DHT(Define Huffman Table)304の順となっている。さらにその後に、SOF(Start of Frame)305、SOS(Start of Stream)マーカー306、圧縮データ(Compress Data)307の順となっている。最後にEOI(End of Image)308がある。これらのうちAPP1はアプリケーションプログラムで使用するためのデータ領域として図2の中央部分に示す構造を有している。APP1の構造では、先頭にAPP1 Marker領域302aがある。そして、その次にLength領域302bがある。
【0023】
Length領域302bに続くデータの最初の6バイトの領域302cでは、識別子としてASCII文字の“Exif"が、その次に2バイトの0x00が続く。そこからTiff(Tagged Image File Format)形式でデータが格納されている。Tiff形式の最初の8バイトはTiffヘッダー(Header)領域302dである。
【0024】
また、Tiffヘッダー領域302dの次の0th IFD(IFD of main image)領域302eに、同図の右側部分に示すように、画像幅、画像高さ等の画像関連情報が格納される。そして、0th IFDの次に0th IFD Value領域302fがある。さらに、その次にExif IFD領域302gが設けられ、露出時間、Fナンバー、被写体距離、レンズ焦点距離などの撮影関連情報が格納される。また、Exif IFD領域302gにExif IFD Value領域302hがある。なお、現在のところ、顔認識処理により検出される顔個数NcとNc個の顔座標をExifタグに書き込む規格は規定されていないが、本実施形態では顔個数NcがExif IFD領域302gに書き込まれ、Nc個の顔座標がExif IFD Value領域302hに書き込まれるとともに該書込位置をポイントする情報がExif IFD領域302gに書き込まれると仮定して説明を続ける。もちろん、これらの情報をメーカーに依存する領域に書き込むように構成してもよい。このように、本実施形態では、顔位置(顔座標)の情報である顔情報はExif情報に記載され、画像データに添付されている。したがって、Exif情報に顔情報が含まれる場合には、顔個数Ncやシーン情報などとともに画像データの補正に利用される。一方、Exif情報に顔情報が含まれていない場合、顔情報がないと判断される。
【0025】
このようにデジタルカメラ200側で顔認識処理が実行されるが、被写体に含まれる人物の顔の全部が完全かつ正確に検出される保証はなく、デジタルカメラ200側で誤検出が発生することがある。例えば過剰に小さい顔(例えば、人形の顔)や、過剰に大きい顔(例えば、ポスターに写る顔)を検出し、それらの顔座標をExifタグに書き込んでしまうことがあった。そこで、本実施形態では、有効顔サイズ範囲に基づく誤検出認定処理、有効顔サイズ範囲を利用した顔認識処理を実行している。以下においては、それらの処理概要を説明した上で、印刷装置100による画像処理および印刷動作について詳述する。
【0026】
B.有効顔サイズ範囲に基づく誤検出認定処理
図5は顔領域のサイズと有効顔サイズとの関係を示す模式図である。デジタルカメラ200により顔認識処理を行った場合、例えば図5に示すように、人形の顔を人物の顔と認識して過剰に小さい顔領域FRSが検出されたり、ポスターに写る顔を人物の顔と認識して過剰に大きい顔領域FRLが検出されることがある。そこで、本実施形態では、画像データに人物の顔が含まれるときに人物の顔サイズとして取り得る値の範囲、つまり有効顔サイズ範囲を画像データに付加されている撮影情報に基づいて求め、デジタルカメラ200により検出された顔領域のうち有効顔サイズ範囲内にあるものを適正な顔領域FRAと認定する一方、有効顔サイズ範囲から外れた顔領域FRS、FRLを誤検出領域と認定している。
【0027】
図6は画像上の画素数と実顔サイズとの関係を示す図である。図中には、被写体SBと、光学系208と、CCD204との位置関係を示す側面図が示されている。光学系208は複数のレンズを有しているが、ここでは、簡略化のために、1つのレンズが光学系208を示している。さらに、図中には、以下の要素が示されている。すなわち、被写体の実顔サイズSX(実際の長さ:単位cm)と、被写体距離LA(単位m)と、レンズ焦点距離LB(単位mm)と、CCD204の受光面(結像面)上に形成された被写体OBを表す結像PIと、デジタルズーム倍率DZRとである。なお、被写体OBの実顔サイズSXは、高さ方向(CCD204の高さ方向、画像高さの方向に相当する)に沿った長さを示している。また、Exifタグ(0x9206)から取得した被写体距離LAは、光学系208の光学中心(主点PP)と被写体OBとの間の距離とほぼ同じである。また、Exifタグ(0x920A)から取得したレンズ焦点距離LBは、光学系208の光学中心(主点PP)とCCD204上の結像面との間の距離を示している。なお、デジタルズーム倍率DZRは、Exifタグ(0xA404)から取得されるとともに、図示されていないが画像高さの解像度C(dpi)がExifタグ(0x11B)から取得される。
【0028】
従来より周知のように、主点PPと被写体OBとで決まる三角形と、主点PPと結像PIとで決まる三角形とは、相似である。なお、実際には、被写体OB側からみた光学系208の主点が、結像PI側から見た光学系208の主点と、異なる場合もあるが、図6に示す関係においてはその差違は十分に小さいので、実質的には、その差違を省略することができる。また、被写体の画像上のサイズ、つまり顔サイズSは結像PIのサイズにデジタルズーム倍率DZRを乗じて得られる値と同じである。そこで、顔サイズSを画素数(ピクセル)で示すと、次式で表される。
S=(LB*DZR*(SX*C/24.5))/(LA*100)…式1
そして、人物の標準的な実顔サイズSXを例えば20cmとし、それより10cm短い実顔サイズを最小値とする一方、それより10cm大きい実顔サイズを最大値とし、上記式に基づき顔サイズSの最小値、つまり有効最小顔サイズSminおよび最大値、有効最大顔サイズSmaxが求まる。これら有効最小顔サイズSminおよび有効最大顔サイズSmaxの間が顔サイズSの取り得る範囲、つまり有効顔サイズ範囲であり、上記した被写体距離LA、レンズ焦点距離LB、画像高さの解像度Cおよびデジタルズーム倍率DZRを画像データに付加された撮影情報から取得することで有効顔サイズ範囲を算出することが可能となっている。
【0029】
そして、画像データに付加される各顔座標により特定される顔領域の顔サイズSが有効顔サイズ範囲内に入っているか否かを判別することができ、有効顔サイズ範囲内に含まれる顔領域FRAを「適正な顔領域」と認定し、範囲外の顔領域FRS、FRLを「誤検出領域」と認定することができる。
【0030】
なお、本実施形態では、後述するようにデジタルカメラ200で撮像された画像をQVGA(Quarter Video Graphics Array)サイズに規格化することから、Exifタグ(0x100)から画像幅Wを取得するとともにExifタグ(0x101)から画像高さHを取得し、上記式により得られる顔サイズSを次式にしたがってQVGAサイズに規格化する。
W/H≧320/240のとき(QVGAより横に長いとき)、
S′=S*240/H
S′max=Smax*240/H
S′min=Smin*240/H
W/H<320/240のとき(QVGAより縦に長いとき)、
S′=S*320/W
S′max=Smax*320/W
S′min=Smin*320/W
なお、後述する印刷装置100の画像処理においては、こうして求めたS′maxおよびS′minをそれぞれ有効最大顔サイズSmaxおよび有効最小顔サイズSminとして有効顔サイズ範囲を規定するとともに、これらの値を用いて次に説明する顔認識処理を行う。
【0031】
C.有効顔サイズ範囲を利用した顔認識処理
図7は、誤検出顔領域、検索領域および検索範囲の関係を示す図である。同図(a)では、画像データで示される画像領域(320×240)に過剰に大きい顔領域FRLが含まれている。この場合、上記した誤検出認定処理により顔領域FRLは誤検出領域であると認定されることから、この顔領域FRLについて顔認識を行うことは無意味である。したがって、画像データから人物の顔を検出する検索範囲を、画像領域全体に設定するのではなく、同図(b)に示すように誤検出領域(顔領域FRL)を除いた範囲に設定するのが合理的であり、これにより印刷装置100における顔認識処理に要する時間を短縮することができる。
【0032】
また、誤検出認定処理により有効顔サイズ範囲が既に求められているため、この範囲から外れた顔サイズのテンプレート(検索領域)TPを用いて顔認識を行うことも意味がなく、有効顔サイズ範囲に入る顔サイズのテンプレートTPのみを用いて顔認識を行うことで印刷装置100における顔認識処理に要する時間をさらに短縮することができる。なお、テンプレートTPを用いて顔認識を行う技術は既に周知であるため、この明細書での詳しい説明は省略する。
【0033】
D.印刷装置100による画像処理および印刷動作
本実施形態では、有効顔サイズ範囲に基づく誤検出認定処理と、有効顔サイズ範囲を利用した顔認識処理とを組み合わせて画像データに付加される顔情報が誤検出情報であるか否かを求め、さらに誤検出情報が含まれる際には短時間で顔認識処理を行って新たな顔情報を検出している。また、人物の顔を新たに検出すると、そのプリンター顔座標を考慮して画像データを補正した上で印刷装置100により印刷される。以下に、この印刷装置100における一連の動作について説明する。
【0034】
図8および図9は図1の印刷装置で実行される画像処理および印刷動作を示すフローチャートである。ここでは、図2に示すデータ構造を有する画像ファイルがメモリカードMに保存されており、そのメモリカードMから画像ファイルを読み出し、印刷装置100により画像ファイルに含まれる各種情報に基づき所定の画像処理を実行して印刷する動作について説明する。
【0035】
ユーザーが印刷装置100のカードスロット112にメモリカードMを挿入し、操作ボタン109を操作して印刷指令を与えると、CPU101がROM102に格納されているプログラムにしたがって装置各部を制御して以下の画像処理および印刷動作を実行する。
【0036】
まず、CPU101は、印刷の対象となる画像ファイルをメモリカードMから取得し、ハフマン解凍処理を実行し、量子化DCT(Discrete Cosine Transform)係数を得る(ステップS10)。より具体的には、CPU101は、図2に示す画像ファイルからエントロピー符号化テーブルを取得し、圧縮データ307に含まれているY(輝度)成分、Cr(色差成分)、および、Cb(色差成分)のそれぞれのブロックのDC係数と、AC係数とを復号する。なお、この際、最小符号化単位であるMCU(Minimum Coded Unit)単位で復号を行う。
【0037】
また、CPU101は、ステップS10において得られた量子化DCT係数を逆量子化する(ステップS11)。具体的には、CPU101は、図2に示す画像ファイルから量子化テーブルを取得し、ステップS10において得られた量子化DCT係数に乗じることにより(逆量子化することにより)、DCT係数を得る。
【0038】
次に、CPU101は、画像を回転させるために必要な情報を、例えばRAM103にキャッシュする(ステップS12)。具体的には、JPEG方式によって圧縮された画像を回転させる場合、MCUのDC成分(直流成分)とAC成分(交流成分)のそれぞれを一度ハフマン展開しなければならない。ここで、DC成分については隣接するDC成分値の差分をハフマン符号化することから、隣接するMCUとの相関関係が問題となる。また、AC成分ではハフマン符号化処理によりそのデータ長が各MCUで一定にならず、JPEGデータのビットストリーム中のどのデータが求めるMCUのAC成分値であるかが不明となることが問題となる。そこで、ステップS12では、各MCUのDC成分値とAC成分のアドレスを求めてキャッシュしておくことにより、ローテート処理を可能とする。
【0039】
そして、CPU101はステップS11で得られたDCT係数に対して逆DCT演算を施すことによりもとの画素値を得る(ステップS13)。また、CPU101は、ステップS13の処理によって得られたYCC空間の画像をRGB(Red Green Blue)空間の画像と、HSB(Hue Saturation Brightness)空間の画像に変換する(ステップS14)。
【0040】
次に、CPU101はステップS13およびステップS14の処理において得られたYCC,RGB,HSBのそれぞれの画像をRAM103に格納して保持する。なお、このとき、データ量を削減するために画素を所定の割合で間引きした後にRAM103に格納してもよい(ステップS15)。
【0041】
また、CPU101は、ステップS15においてRAM103に格納されたYCC,RGB,HSBそれぞれの画像の成分について、ヒストグラムを計算する(ステップS16)。具体的には、RGB画像については、R,G,Bそれぞれの画像についてヒストグラムを計算する。その結果、画像を構成する各成分の分布を得る。
【0042】
上記したように、本実施形態では、ステップS10〜16の処理はMCU単位で行われており、CPU101は、全てのMCUについての処理が終了したことを確認するまで、ステップS10に戻って処理を繰り返して実行する。一方、全てのMCUについての処理が終了した場合には、次に有効顔サイズ範囲を求める(ステップS17〜S21)。
【0043】
ステップS17で、CPU101は画像データに付加された撮影情報を読み込む。そして、有効顔サイズ範囲を算出するのに必要な撮影情報、つまり被写体距離LA、レンズ焦点距離LB、画像高さの解像度Cおよびデジタルズーム倍率DZRを取得することができたとき(ステップS18で「YES」)、CPU101は、実顔サイズSXの最小値および最大値をそれぞれ10cm、30cmとし、式1に基づいて有効最小顔サイズSminおよび有効最大顔サイズSmaxを算出する(ステップS19)。一方、必要な撮影情報が得られなかったとき(ステップS18で「NO」)、CPU101は有効最小顔サイズSminおよび有効最大顔サイズSmaxをそれぞれ20(ピクセル)、240(ピクセル)に設定する(ステップS20)。
【0044】
次のステップS21で、CPU101は、Exifタグから画像データに付加されたカメラ顔座標を取得し、RAM103のカメラ顔座標用のメモリ空間に記憶するとともにカメラ顔個数Ncを記憶する。すなわち、CPU101は、図2の画像ファイル中のExifタグから顔個数Ncおよびカメラ顔座標を読み込み、さらにカメラ顔座標についてはQVGAサイズに規格化し、それらをRAM103に格納する。この実施形態では、例えば図10(a)に示すように、10個のカメラ顔座標を記憶するためのメモリ空間が予めRAM103に準備されており、このメモリ空間にカメラ顔座標が登録顔情報No.1、2、…の順序で記憶される。例えばデジタルカメラ200での顔認識処理によって2つの顔領域が検出され、各顔領域を示すカメラ顔座標(LT1c,LB1c,RT1c,RB1c)、(LT2c,LB2c,RT2c,RB2c)が検出されて画像データに付加されているときには、印刷装置100において2つのカメラ顔座標は図10(a)に示すようにそれぞれ登録顔情報No.1、2として登録される。なお、該当するカメラ顔座標がない登録顔情報No.3以降のアドレスにはゼロを登録する。また、CPU101は、読み込んだ顔の個数、つまりカメラ顔個数Ncを設定する(上記した具体例では、Nc=2と設定する)。
【0045】
こうして有効顔サイズ範囲が決定されると、CPU101は有効顔サイズ範囲に基づく誤検出認定処理(S22〜S25)を実行する。すなわち、CPU101は、ステップS22でカメラ顔個数Ncがゼロより大きい値である間(ステップS22で「YES」)、Nc番目のカメラ顔座標により特定される顔領域の顔サイズが有効顔サイズ範囲内であるか否かを判別する(ステップS23)。なお、本明細書では、Nc番目のカメラ顔座標により特定される顔領域を「Nc番目の顔領域」と称し、Nc番目の顔領域の顔サイズを「Nc番目の顔サイズ」と称する。
【0046】
上記ステップS23で「YES」のとき、つまりNc番目の顔領域を「適正な顔領域」と認定すると、CPU101はNc番目のカメラ顔座標を座標リストに登録する(ステップS24)。この座標リストは、例えば図10(b)に示すように予め10個の顔座標を記憶するためのRAM103に設定されたメモリ空間であり、上記カメラ顔座標用とは別個に設けられたものである。そして、座標リストへの登録が完了すると、CPU101は、ステップS25に進んでカメラ顔個数Ncを「1」だけデクリメントし、ステップS22に戻る。なお、上記ステップS23で「NO」のとき、つまりNc番目の顔領域を「誤検出顔領域」と認定すると、CPU101はそのままステップS25に進む。このように、本実施形態では、誤検出顔領域と認定された顔領域を示すカメラ顔座標を誤検出顔座標として座標リストに登録しないことで、当該カメラ顔座標を実質的に印刷装置100から削除している。例えば、図10に示すように、デジタルカメラ200により検出された2つのカメラ顔座標のうち登録顔情報No.2が誤検出顔座標と認定されると、座標リストに登録されず、人物の顔と認識されず、事実上、削除されている。
【0047】
こうして画像データに付加された、つまりデジタルカメラ200での顔認識処理により検出された顔領域の全てについて、「適正な顔領域」または「誤検出顔領域」の認定が完了すると、CPU101は、画像データに付加されたカメラ顔個数Ncと、座標リストへのカメラ顔座標の登録個数とが一致し、しかも、それらがゼロよりも大きいかを判別する(ステップS26)。すなわち、デジタルカメラ200で人物の顔と認定された顔領域の全てが「適正な顔領域」と判別されたか否かを判別する。そして、全て適正な顔領域である場合には、改めて画像データを補正する必要がないため、ステップS27で「エンハンスなし」を設定し、印刷処理に進む。これに対し、デジタルカメラ200で人物の顔と認定された顔領域のうち少なくとも1つでも「誤検出顔領域」と認定されるとき、あるいはデジタルカメラ200側で人物の顔が検出されていないとき、次に説明するように印刷処理に先立って有効顔サイズ範囲を利用した顔認識処理を実行する(ステップS28〜S42)。
【0048】
この実施形態では、CPU101は、顔認識に用いるテンプレートTPの顔サイズSを有効最大顔サイズSmaxに設定し(ステップS28)、そのテンプレートTPを原点(0,0)に位置させる(ステップS29,S30)。そして、CPU101は、図7に示すようにテンプレートTPをΔX(この実施形態では、ΔX=S/2)単位でX方向にステップ移動させながら原点位置および各移動位置でステップS31〜S36の処理を実行する。すなわち、CPU101は、テンプレートTPが位置する検索領域に未登録のカメラ顔座標が含まれるか否か、つまり誤検出領域FRL(あるいはFRS)が重なっているか否かを判別する(ステップS31)。これは、「C.有効顔サイズ範囲を利用した顔認識処理」の項で説明したように、画像データから人物の顔を検出する検索範囲を、図7(b)に示すように誤検出領域を除いた範囲に絞り込むためであり、CPU101はステップS31で「YES」と判別したときには、判別処理(ステップS32)および顔認識処理(S33〜S36)をパスする。
【0049】
ステップS32では、CPU101は、印刷装置100による顔認識が行われてプリンター顔座標が既に登録されているか否かを判別する。そして、既にプリンター顔座標が検出されて座標リストに登録されている場合(ステップS32で「YES」)、CPU101は顔認識処理(S33〜S36)をパスする。このように、無駄となる顔認識処理を実行しないことで印刷装置100での顔認識に要する時間の短縮を図っている。
【0050】
一方、テンプレートTPが位置する検索領域に未登録カメラ顔座標もプリンター顔座標も存在しない場合(ステップS31で「NO」、ステップS32で「NO」)、CPU101はステップS15で保持した画像データに対してテンプレートTPを適用して顔認識処理を行い(ステップS33)、顔を検出した場合には、例えば図10(b)に示すように、その顔領域の位置を示すプリンター顔座標を座標リストに追加する。
【0051】
また、CPU101は、保持した画像データを90゜、180゜および270゜回転させて顔認識処理を行い(ステップS34〜S36)、顔を検出した場合には、その顔領域の位置を示すプリンター顔座標を座標リストに追加する。なお、本実施形態では画像データを回転させて顔認識を行っているが、テンプレートTPを回転させて顔認識を行ってもよい。
【0052】
また、X方向の1ラインの顔認識が完了する(ステップS38で「YES」)と、CPU101はテンプレートTPをY方向にΔY(この実施形態では、ΔY=S/2)だけ移動させる(ステップS39)。そして、テンプレートTPがY方向の端部まで位置するまでの間(ステップS40で「NO」の間)、上記したステップS30〜S39を繰り返して行う。これにより、図7(b)に示すように誤検出領域を除いた検索範囲内で顔サイズSのテンプレートTPを用いた顔認識処理が実行される。
【0053】
なお、CPU101は、上記した一連の顔認識処理(ステップS29〜S40)が完了する毎にテンプレートTPの顔サイズSをΔS(この実施形態では10ピクセルに設定)だけ小さくし(ステップS41)、顔サイズSが有効最小顔サイズSminを下回るまでステップS29に戻って上記した一連の顔認識処理(ステップS29〜S40)を繰り返して行う。
【0054】
こうして、印刷装置100による顔認識処理が行われると、次のステップS43で、CPU101は座標リストにカメラ顔座標および/またはプリンター顔座標が登録されている否かを判別する。そして、カメラ顔座標かプリンター顔座標かを問わず、顔座標が登録されている場合(ステップS43で「YES」)には、CPU101は、座標リストに登録された顔座標に基づいて全ての顔位置を計算し、さらに顔の平均顔色を取得した(ステップS44)後、顔色が最適になるようにエンハンスパラメータを計算する(ステップS45)。なお、エンハンスパラメータ計算の詳細については省略するが、RAM103に記憶したRGBヒストグラムに基づきコントラスト、明度、彩度、シャープネスなどの各画質パラメータの特徴量を抽出し、抽出した特徴量が所定の画質パラメータの特徴量に近づくようエンハンスのパラメータを設定する。
【0055】
一方、座標リストにカメラ顔座標もプリンター顔座標も登録されていない場合(ステップS43で「NO」)、CPU101は、画像全体が最適になるようにエンハンスパラメータを計算する(ステップS46)。
【0056】
このように、本実施形態では印刷装置100により顔認識処理を実行した際にはエンハンスパラメータの設定を行った後、ステップS47に進む。なお、上記したようにデジタルカメラ200で人物の顔と認定された顔領域の全てが「適正な顔領域」と判別された場合(ステップS26で「YES」)、「エンハンスなし」が設定された状態で、ステップS47に進む。
【0057】
このステップS47では、CPU101は、印刷対象となる画像ファイルにおいて、解凍処理の対象となる位置を示すファイルポインタをリセットし、処理位置を画像ファイルの先頭に復元する。そして、CPU101は、以下のステップS48〜S56を繰り返して画像データに基づいて画像を印刷する。
【0058】
CPU101は、RAM103にキャッシュされた1MCUライン分の画像データにハフマン解凍処理を施し、量子化DCT係数を得る(ステップS48)。ここで、1MCUラインとは、画像を回転させる場合には、画像を構成する列方向に1列のMCU群をいい、回転させない場合には、画像を構成する行方向に1列のMCU群をいう。そして、CPU101は、ステップS29の処理において得られた量子化DCT係数を逆量子化し(ステップS49)、さらにステップS48で得られたDCT係数に対して逆DCT演算を施すことによりもとのデータを得る(ステップS50)。
【0059】
こうして得られたYCC空間の画像を、CPU101はRGB空間の画像に変換する(ステップS51)。そして、CPU101は、エンハンスの実行が設定されている場合のみ、つまりステップS52で「YES」と判別した場合のみ、RGB空間の画像を構成する各画素に対してステップS45、S46において算出したエンハンスパラメータを適用することにより、印刷される画像を最適な色合いに補正し(ステップS53)、次のステップS54に進む。
【0060】
CPU101は、こうして補正された画像データに対して、リサイズ、回転などのレイアウト処理を施し(ステップS54)、プリンターエンジンコントローラー111の図示せぬバンドバッファに供給する。これを受けたプリンターエンジンコントローラー111は、プリンターエンジン113の各部を制御して画像データに対応する画像を印刷する(ステップS55)。そして、印刷処理が完了すると、CPU101はRAM103のキャッシュ状態を更新する(ステップS56)。そして、全MCUライン分について上記ステップS48〜S56が完了すると、一連の処理を終了する。
【0061】
以上のように、本実施形態によれば、画像データに付加された撮影情報(被写体距離LA、レンズ焦点距離LB、画像高さの解像度Cおよびデジタルズーム倍率DZR)に基づき有効顔サイズ範囲(Smin〜Smax)を求め、これに基づいて画像データに付加されるカメラ顔情報が誤検出情報であるか否かを認定している。より具体的には、カメラ顔座標で特定される顔サイズが有効顔サイズ範囲から外れるとき、当該カメラ顔情報を誤検出情報と認定しており、誤検出情報を高い蓋然性を求めることができる。
【0062】
また、こうして誤検出情報を求めた場合に、画像データから人物の顔を認識してプリンター顔座標を新たに検出しているので、デジタルカメラ側での顔認識の補佐を行うことができる。そして、プリンター顔座標に基づいて画像データを補正することで良好な色合い等で画像を印刷することができる。
【0063】
また、上記のように印刷装置100で顔認識する際、画像データ全体から顔情報を検出してもよいが、誤検出領域と認定された顔領域FRS、FRLを除いた検索範囲(図7(b)の梨地部分)で画像データから人物の顔を認識して顔座標を検出している。つまり、人物の顔が含まれないことが判っている領域を省いて顔認識処理を実行しているので、画像データ全体から顔情報を検出する従来技術に比べて顔認識処理に要する時間を大幅に短縮することができる。
【0064】
また、印刷装置100での顔認識処理において、テンプレート(検索領域)TPの顔サイズを有効顔サイズ範囲内に設定して顔認識処理を行っているため、印刷装置100での顔認識処理に要する時間を短縮することができる。
【0065】
E.その他
なお、本発明は上記した実施形態に限定されるものではなく、その趣旨を逸脱しない限りにおいて上述したもの以外に種々の変更を行うことが可能である。例えば、上記実施形態では、画像データに顔座標などを付加した画像ファイルをメモリカードMに記録し、当該メモリカードMを介して印刷装置100に供給して印刷しているが、有線または無線通信により画像ファイルが印刷装置100に供給される場合も、本発明を適用することで上記した実施形態と同様の作用効果が得られる。
【0066】
また、上記実施形態では、顔領域FRA、FRL、FRSを4点の座標で示しているが、顔領域の表現方式はこれに限定されるものではなく、例えば中心座標に大きさを組み合わせたもの、中心座標に幅および高さを組み合わせたもの等を用いることができる。
【0067】
また、上記実施形態では、本発明にかかる画像処理装置および方法を印刷装置100に適用しているが、複数の電子機器から構成される印刷システムにも、また印刷装置以外の1つの電子機器(例えば複合機、ファクシミリ装置など)にも適用可能である。
【0068】
また、上記実施形態にかかる画像処理方法を実行するプログラムを、CD−ROM、光ディスク、光磁気ディスク、不揮発性メモリカードなどの記憶媒体に記憶させ、この記憶媒体からプログラムをコードとして読み出し、コンピューターにおいて実行してもよい。つまり、上記プログラムを記憶した記憶媒体、コンピュータープログラム自体も本発明の一実施形態に含まれる。
【符号の説明】
【0069】
100…印刷装置、 101…CPU(情報取得部、範囲算出部、誤検出認定部、顔情報検出部、補正部)、 102…ROM、 103…RAM、 104…EEPROM、 200…デジタルカメラ、 307…圧縮データ(画像データ)、 FRA…(適正な)顔領域、 FRS、FRL…誤検出顔領域、 TP…テンプレート(検索領域)
【特許請求の範囲】
【請求項1】
画像データに付加される顔情報および撮影情報を取得する情報取得部と、
前記画像データに人物の顔が含まれるときに前記人物の顔サイズとして取り得る値の範囲である有効顔サイズ範囲を、前記撮影情報に基づいて求める範囲算出部と、
前記情報取得部により取得した前記顔情報で特定される顔サイズが前記有効顔サイズ範囲から外れるときには前記顔情報を誤検出情報と認定する誤検出認定部と
を備えることを特徴とする画像処理装置。
【請求項2】
前記誤検出認定部により誤検出情報と認定された前記顔情報により特定される顔領域以外の検索範囲で前記画像データから人物の顔を認識して顔情報を検出する顔情報検出部を備える請求項1に記載の画像処理装置。
【請求項3】
前記顔情報検出部は、前記有効顔サイズ範囲内の検索サイズを有する検索領域を前記検索範囲内で移動させながら各検索領域に対応する画像データに基づき人物の顔を認識して顔情報を検出する請求項2に記載の画像処理装置。
【請求項4】
前記顔情報検出部は、前記検索領域の検索サイズを前記有効顔サイズ範囲の最大値に設定し、前記検索範囲から人物の顔を認識して顔情報を検出する第1顔認識処理を行う請求項3に記載の画像処理装置。
【請求項5】
前記顔情報検出部は、前記第1顔認識処理の後に、前記検索領域の検索サイズを前記有効顔サイズ範囲の最大値よりも小さい値に設定し、前記検索範囲から前記第1顔認識処理により検出された人物の顔領域を除いた範囲から人物の顔を認識して顔情報を検出する第2顔認識処理を行う請求項4に記載の画像処理装置。
【請求項6】
前記顔情報検出部により顔情報が検出されたとき、当該顔情報と、前記情報取得部により取得した前記顔情報から前記誤検出情報を除いた顔情報とに基づいて前記画像データを補正する補正部を備える請求項3ないし5のいずれか一項に記載の画像処理装置。
【請求項7】
画像データに付加される撮影情報に基づいて前記画像データに人物の顔が含まれるときに前記人物の顔サイズとして取り得る値の範囲を示す有効顔サイズ範囲を求めた後、
前記撮影情報とともに前記画像データに付加される顔情報で特定される顔サイズが、前記有効顔サイズ範囲の最大値よりも大きい、または前記有効顔サイズ範囲の最小値よりも小さい場合、前記顔情報は誤検出されたものであると認定する
ことを特徴とする画像処理方法。
【請求項1】
画像データに付加される顔情報および撮影情報を取得する情報取得部と、
前記画像データに人物の顔が含まれるときに前記人物の顔サイズとして取り得る値の範囲である有効顔サイズ範囲を、前記撮影情報に基づいて求める範囲算出部と、
前記情報取得部により取得した前記顔情報で特定される顔サイズが前記有効顔サイズ範囲から外れるときには前記顔情報を誤検出情報と認定する誤検出認定部と
を備えることを特徴とする画像処理装置。
【請求項2】
前記誤検出認定部により誤検出情報と認定された前記顔情報により特定される顔領域以外の検索範囲で前記画像データから人物の顔を認識して顔情報を検出する顔情報検出部を備える請求項1に記載の画像処理装置。
【請求項3】
前記顔情報検出部は、前記有効顔サイズ範囲内の検索サイズを有する検索領域を前記検索範囲内で移動させながら各検索領域に対応する画像データに基づき人物の顔を認識して顔情報を検出する請求項2に記載の画像処理装置。
【請求項4】
前記顔情報検出部は、前記検索領域の検索サイズを前記有効顔サイズ範囲の最大値に設定し、前記検索範囲から人物の顔を認識して顔情報を検出する第1顔認識処理を行う請求項3に記載の画像処理装置。
【請求項5】
前記顔情報検出部は、前記第1顔認識処理の後に、前記検索領域の検索サイズを前記有効顔サイズ範囲の最大値よりも小さい値に設定し、前記検索範囲から前記第1顔認識処理により検出された人物の顔領域を除いた範囲から人物の顔を認識して顔情報を検出する第2顔認識処理を行う請求項4に記載の画像処理装置。
【請求項6】
前記顔情報検出部により顔情報が検出されたとき、当該顔情報と、前記情報取得部により取得した前記顔情報から前記誤検出情報を除いた顔情報とに基づいて前記画像データを補正する補正部を備える請求項3ないし5のいずれか一項に記載の画像処理装置。
【請求項7】
画像データに付加される撮影情報に基づいて前記画像データに人物の顔が含まれるときに前記人物の顔サイズとして取り得る値の範囲を示す有効顔サイズ範囲を求めた後、
前記撮影情報とともに前記画像データに付加される顔情報で特定される顔サイズが、前記有効顔サイズ範囲の最大値よりも大きい、または前記有効顔サイズ範囲の最小値よりも小さい場合、前記顔情報は誤検出されたものであると認定する
ことを特徴とする画像処理方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【公開番号】特開2012−100183(P2012−100183A)
【公開日】平成24年5月24日(2012.5.24)
【国際特許分類】
【出願番号】特願2010−248053(P2010−248053)
【出願日】平成22年11月5日(2010.11.5)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】
【公開日】平成24年5月24日(2012.5.24)
【国際特許分類】
【出願日】平成22年11月5日(2010.11.5)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】
[ Back to top ]