画像処理方法、制御プログラムおよび画像処理装置
【課題】画像データから人の顔に相当する領域を検出する顔認識処理を行う画像処理方法および装置において、顔認識処理をより効率よく短時間で行う。
【解決手段】画像データが表す画像内における人の顔に相当する顔領域を特定する顔情報を取得し(ステップS17)、該顔情報により特定される顔領域が肌色であるか否かを判定し(ステップS19、S20)、判定工程において肌色でないと判定された顔領域があるとき(ステップS21)、当該顔領域についての顔情報に基づいて画像内の一部領域を検索対象領域として設定し、該検索対象領域内で所定の適合条件に適合する領域を検索し該領域を顔領域として認識する顔認識処理(ステップS22〜S35)を実行する。
【解決手段】画像データが表す画像内における人の顔に相当する顔領域を特定する顔情報を取得し(ステップS17)、該顔情報により特定される顔領域が肌色であるか否かを判定し(ステップS19、S20)、判定工程において肌色でないと判定された顔領域があるとき(ステップS21)、当該顔領域についての顔情報に基づいて画像内の一部領域を検索対象領域として設定し、該検索対象領域内で所定の適合条件に適合する領域を検索し該領域を顔領域として認識する顔認識処理(ステップS22〜S35)を実行する。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、画像処理方法および画像処理装置に関するものであり、特に画像から人の顔に相当する領域を検出する顔認識技術に関する。
【背景技術】
【0002】
被写体を撮影して画像データを生成するデジタルカメラなどの撮像装置や、該画像データを表示または印刷するプリンターなどの出力装置では、画像内に含まれる人の顔に相当する領域を検出する顔認識機能を持つものが実用化されている。例えば、特許文献1に記載の技術においては、デジタルカメラ等での撮像時に生成された撮影情報、より具体的には画像内で検出された顔の数、位置、サイズ等の顔情報が画像データに付加されて画像処理装置である例えばプリンターに受け渡される。
【0003】
一方、プリンター側では、取得した顔情報に基づいて改めて画像内で顔認識を行う。これは、カメラ側での顔認識が主に撮影条件を決定するために撮像前に行われるものであり、顔認識後に被写体が動くなどの理由により、顔情報が実際の画像内での顔の位置等を正確に示していないケースがあることに対応するためである。そして、画像データに付帯した顔情報を顔認識時に参照することで、画像処理装置での顔認識の処理時間の短縮および検出精度の向上が図られている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2010−003165号公報(例えば、図2)
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上記した従来技術では、カメラ等での顔認識精度に関係なくその顔認識結果を全て再検証することになるため、顔認識処理が重複して実行され非効率的であるという問題があった。また、例えば画像に多くの顔が含まれている場合、画像処理装置側での顔認識処理に時間がかかることとなっていた。
【0006】
この発明にかかるいくつかの態様は、画像データから人の顔に相当する領域を検出する顔認識処理を行う画像処理方法および装置において、上記課題を解決し、顔認識処理をより効率よく短時間で行うことのできる技術を提供するものである。
【課題を解決するための手段】
【0007】
この発明の一の態様は、上記課題を解決するため、画像データが表す画像内における人の顔に相当する顔領域を特定するための情報として当該画像データに付加された顔情報を取得する顔情報取得工程と、前記顔情報により特定される前記顔領域が肌色であるか否かを判定する判定工程と、前記画像内で所定の適合条件に適合する領域を検索し該領域を顔領域として認識する顔認識処理を実行する顔認識処理工程とを備え、前記顔認識処理工程では、前記判定工程において肌色でないと判定された前記顔領域があるとき、当該顔領域についての前記顔情報に基づいて前記画像内の一部領域を検索対象領域として設定し、該検索対象領域内で前記適合条件に適合する領域を検索することを特徴とする画像処理方法である。
【0008】
また、この発明の他の態様は、上記各工程をコンピューターに実行させることを特徴とする制御プログラムである。
【0009】
これらの発明では、画像データに付加された顔情報により特定される顔領域について、前記した従来技術のように無条件に再度顔認識処理を行うのでなく、まず当該顔領域の色を判定し、肌色でないと判定された、つまり顔でない可能性の高い顔領域があった場合に顔認識処理を行う。そして、この場合の顔認識処理については、画像全体で行うのではなく、画像データに付加された顔情報に基づいて設定した、画像の一部領域である検索対象領域について行う。このため、本発明によれば、画像全体について顔認識を行う従来技術や、上記した特許文献1に記載の従来技術に比して、顔認識処理をより効率よく短時間で行うことが可能となる。
【0010】
ここで、例えば、検索対象領域は、判定工程において肌色でないと判定された顔領域に隣接する隣接領域の少なくとも一部を含むようにしてもよい。このようにすると、顔情報から特定される位置の近傍で新たな顔が検索されることとなる。例えば撮像時において顔認識が終わって撮像されるまでの間にカメラ等の撮像装置または被写体が少し動いた場合を考えると、顔情報で特定される位置から少しずれた位置に顔がある可能性が高い。そこで、顔情報で特定される位置の近傍で顔を検索することで、効率よく顔を検出することが可能となる。
【0011】
また、例えば、顔認識処理工程では、判定工程において肌色であると判定された顔領域については顔情報が正しく顔の位置を特定しているものと考えられることから、当該領域をそのまま顔領域として認識するようにしてもよい。このように、検証により信憑性が高いと認められた顔認識結果をそのまま利用することで、処理に要する時間をさらに短縮することができる。
【0012】
また、例えば、顔認識処理工程において検索される顔領域のサイズが、顔情報により特定される顔領域のサイズに基づいて設定されてもよい。前記したように、顔情報で特定される顔領域が実際には顔でないとされる場合、被写体が動いた可能性がある。この場合、移動した顔のサイズまでもが大きく変わることは考えにくいから、顔情報により特定される顔領域のサイズを基にして検索する顔サイズを定めることで、効率よく顔認識を行うことができる。また、顔の位置ではなくその画像に対する傾きが変わることもあるので、顔情報により特定される顔領域の傾き角度を基にして検索する顔の傾き角度を定めるようにしてもよい。
【0013】
また、判定工程において、顔領域が肌色であるか否かについては、当該領域の画像の色を適当な色表示パラメータを用いて定量的に表現し、そのパラメータの値に基づいて判定することができる。例えば、HSB色空間において色相を指標するパラメータであるH値に対して肌色と見なす適合範囲を予め定め、顔情報により特定される顔領域のH値が適合範囲内にあるときに当該顔領域が肌色であると判定することができる。このように、顔情報で特定される顔領域内の画像を定量的に示すパラメータを用いて判定を行うことにより、実際に顔認識処理を行うのに比べて遥かに演算量の少ない簡単な処理で、しかも一義的に当該領域の判定を行うことができる。
【0014】
また、この発明にかかる他の態様は、上記課題を解決するため、画像データが表す画像内における人の顔に相当する顔領域を特定するための顔情報が付加された画像データを取得する画像データ取得手段と、前記画像データに基づき、前記顔情報により特定される前記顔領域の色相を算出する算出手段と、算出された色相の値に基づいて前記顔領域が肌色であるか否かを判定する判定手段と、前記判定手段において肌色でないと判定された前記顔領域があれば、当該顔領域についての前記顔情報に基づいて前記画像内の一部領域を検索対象領域として設定し、該検索対象領域内で所定の適合条件に適合する領域を検索し該領域を顔領域として認識する顔認識処理を実行する顔認識処理手段とを備えることを特徴とする画像処理装置である。
【0015】
このように構成された発明では、上記した画像処理方法の発明と同様に、画像データに付加された顔情報により特定される顔領域に肌色でないと判定されたものがあるときに、該顔情報に基づいて設定された検索対象領域内で顔認識処理が行われる。そのため、上記した画像処理方法の発明と同様に、顔認識処理を効率よく短時間で行うことが可能である。
【図面の簡単な説明】
【0016】
【図1】本発明にかかる画像処理装置の一実施形態を用いた印刷システムを示す図。
【図2】デジタルカメラで作成される画像ファイルの一例を示す図。
【図3】図2の部分拡大図。
【図4】顔認識処理により認識された顔の一例を示す図。
【図5】この発明にかかる顔認識処理の第1実施形態を示すフローチャート。
【図6】図1の印刷装置で実行される印刷動作を示すフローチャート。
【図7】HSB色空間による色表現の例を模式的に示す図。
【図8】顔領域についての色判定のより具体的な態様を示す図。
【図9】この発明にかかる顔認識処理の第2実施形態を示すフローチャート。
【図10】第2実施形態におけるパラメータ設定処理を示すフローチャート。
【図11】カメラ顔情報とパラメータの設定値との対応関係を説明するための図。
【発明を実施するための形態】
【0017】
図1は、本発明にかかる画像処理装置の一実施形態を用いた印刷システムを示す図である。この印刷システムは、デジタルカメラ200の撮影により取得された画像データを、メモリカードM、USB(Universal Serial Bus)ケーブルや無線LAN(Local Area Network)等によって印刷装置100に転送し、印刷装置100で印刷するものである。すなわち、ここではユーザーがデジタルカメラ200で画像を撮影して画像データを生成し、その画像データをそのまま印刷装置100で読み込んで印刷する、いわゆるダイレクト印刷を想定しているが、本発明を適用可能な印刷システムはこれに限定されるものではない。つまり、デジタルカメラ200で生成した画像データをパーソナルコンピューターや携帯電話などに取り込み、パーソナルコンピューターから印刷装置100に画像データを送信して印刷する印刷システムにも本発明を適用することが可能である。さらに、このような印刷装置100を備えるシステムに限定されず、画像データに対して種々の処理を施す画像処理装置全般に対して、本発明を適用可能である。
【0018】
デジタルカメラ200では、同図に示すように、CPU(Central Processing Unit)201、ROM(Read Only Memory)202、RAM(Random Access Memory)203、CCD(Charge Coupled Device)204、グラフィックプロセッサー(Graphic Processor;GP)205およびインターフェース(Interface;I/F)206がバス207を介して相互に接続され、これらの間で情報の授受が可能となっている。そして、CPU201はROM202に格納されているプログラムに応じて各種演算処理を実行しながらデジタルカメラ200の制御を行う。このとき一時的に必要となるデータはRAM203に格納される。また、CCD204は、光学系208によって集光された被写体からの光学像を電気信号に変換して出力する。この光学系208は、複数のレンズおよびアクチュエータによって構成されており、アクチュエータによってフォーカス等を調整しながら被写体の光学像を複数のレンズによってCCD204の受光面に結像する。さらに、GP205は、CPU201から供給される表示命令に基づいて表示用の画像処理を実行し、得られた表示用画像データを液晶ディスプレイ(Liquid Crystal Display;LCD)209に供給して表示させる。
【0019】
I/F206はデジタルカメラ200の入出力機能を提供するものであり、操作ボタン210、ジャイロセンサー211およびカードI/F回路212の間で情報を授受する際に、データの表現形式を適宜変換する装置である。I/F206に接続される操作ボタン210には、電源、モード切替え、シャッターなどのボタンや、各種機能を設定できる入力手段があり、これらによってユーザーはデジタルカメラ200を任意に制御して動作させることが可能となっている。また、ジャイロセンサー211はデジタルカメラ200によって被写体を撮影した際のカメラ本体の角度(水平面に対する角度)を示す信号を生成して出力する。デジタルカメラ200は、上記したカメラ本体の角度を含め、撮影時における種々の情報(例えば、露光、被写体等に関する情報)を生成する。
【0020】
なお、本実施形態では、デジタルカメラ200は、撮影情報をExif(Exchangeable Image File Format)情報に記載し、画像データに付加した画像ファイルを生成することができる構造となっている。このExif画像ファイルの構造は、基本的には通常のJPEG(Joint Photographic Experts Group)画像形式そのものであり、その中にサムネイル画像や撮影関連データ等のデータをJPEGの規約に準拠した形で埋め込んだものである。
【0021】
また、カードI/F回路212はカードスロット213に挿入されたメモリカードMとの間で情報を読み書きするためのインタフェースである。さらに、I/F206は図示を省略するUSB、無線LANなどの外部機器との接続機能も有しており、有線または無線にて印刷装置100との間で画像ファイルの授受が可能となっている。なお、デジタルカメラ200で作成され、印刷装置100に与えられる画像ファイル(画像データ+Exif情報)については、後で詳述する。
【0022】
印刷装置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に供給して表示させる。
【0023】
I/F106は、操作ボタン109、カードI/F回路110およびプリンターエンジンコントローラー111の間で情報を授受する際に、データの表現形式を適宜変換する装置である。印刷装置100では、操作ボタン109は印刷装置100のメニュー選択等を行う時に押されるように構成されている。また、カードI/F回路110は、カードスロット112と接続されており、このカードスロット112に挿入されたメモリカードMからデジタルカメラ200によって生成された画像ファイルを読み出す。なお、I/F106は、図示を省略するUSB、無線LANなどの外部機器との接続機能も有しており、有線通信または無線通信にてデジタルカメラ200との間で画像ファイルの授受が可能となっている。
【0024】
そして、印刷装置100は、メモリカードMを介して、あるいはデータ通信により画像データを受け取ると、CPU101により種々の処理を行うとともにプリンターエンジンコントローラー111によりプリンターエンジン113を制御し、これによって画像データに対応する画像を印刷する。以下、図2ないし図4に基づき画像ファイルの構成を説明した上で、本実施形態における画像処理動作および印刷動作について詳述する。
【0025】
図2は上記のように構成されたデジタルカメラで作成される画像ファイルの一例を示す図である。また、図3は図2の部分拡大図、図4は顔認識処理により認識された顔の一例を示す図である。この実施形態では、デジタルカメラ200はCCD204で撮像された画像データをRAM203に格納する。また、デジタルカメラ200は、被写体に人物が含まれているときには顔認識処理を行う(なお、顔認識方式については従来より数多く提案されており、それらのうちいずれの方式を採用してもよい)。なお、本実施形態では、顔認識結果は、図4に示すような座標情報が顔位置の情報、つまり顔情報として表現される。すなわち、同図に示すように、画像データは所定の画像幅(Width)と画像高さ(Height)の画素で構成されており、Xが横軸、Yが縦軸を表しており、左上が原点(0,0)である。そして、画像データから顔が検出されると、その顔領域FRを左上(LT)、左下(LB)、右上(RT)、右下(RB)の4点の座標で囲まれる領域で表し、顔領域FRを示す座標、つまり顔座標(顔位置)を、認識した顔の個数(つまり顔個数)NcとともにRAM203に格納する。また、本明細書では、後で説明するように、印刷装置100においてもデジタルカメラ200での顔認識と同様に顔認識を行って顔座標を求めるため、デジタルカメラ200での顔認識により得られる顔座標を「カメラ顔座標」と称し、左上(LTc)、左下(LBc)、右上(RBc)、右下(RBc)で示す。また、顔認識処理により複数個の顔が検出される場合もあるため、図3では、第n番目のカメラ顔座標を左上(LTnc)、左下(LBnc)、右上(RTnc)、右下(RBnc)で示す。
【0026】
また、この実施形態では、上記のように画像データ、顔個数および顔座標などをRAM203に格納しているが、その記録方式としてディジタルスチルカメラ用画像ファイルフォーマット規格Exif Ver.2.2.1を使用している。このExif画像ファイルの構造は、基本的には通常のJPEG(Joint Photographic Experts Group)画像形式そのものであり、その中にサムネイル画像や撮影関連データ等のデータをJPEGの規約に準拠した形で埋め込んだものである。
【0027】
本実施形態で使用する画像ファイルは、図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がある。
【0028】
Length領域302bに続くデータの最初の6バイトの領域302cでは、識別子としてASCII文字の“Exif"が、その次に2バイトの0x00が続く。そこからTIFF(Tagged Image File Format)形式でデータが格納されている。TIFF形式の最初の8バイトはTIFFヘッダー(Header)領域302dである。
【0029】
また、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情報に顔情報が含まれていない場合、顔情報がないと判断される。
【0030】
次に、上記のようなデータ構造(図2)を有する画像ファイルがメモリカードMに保存されており、そのメモリカードMから画像ファイルを読み出し、印刷装置100により画像ファイルに含まれる各種情報に基づき所定の画像処理を実行して印刷する動作の2つの実施形態について順に説明する。
【0031】
<第1実施形態>
図5および図6は図1の印刷装置で実行される画像処理および印刷動作の第1実施形態を示すフローチャートである。ユーザーが印刷装置100のカードスロット112にメモリカードMを挿入し、操作ボタン109を操作して印刷指令を与えると、CPU101がROM102に格納されているプログラムにしたがって装置各部を制御して以下の画像処理および印刷動作を実行する。
【0032】
まず、CPU101は、印刷の対象となる画像ファイルをメモリカードMから取得し、ハフマン解凍処理を実行し、量子化DCT(Discrete Cosine Transform)係数を得る(ステップS10)。より具体的には、CPU101は、メモリカードMから取得した画像ファイルからエントロピー符号化テーブルを取得し、圧縮データに含まれているY(輝度)成分、Cr(色差成分)、および、Cb(色差成分)のそれぞれのブロックのDC係数と、AC係数とを復号する。なお、この際、最小符号化単位であるMCU(Minimum Coded Unit)単位で復号を行う。
【0033】
また、CPU101は、ステップS10において得られた量子化DCT係数を逆量子化する(ステップS11)。具体的には、CPU101は、画像ファイルから量子化テーブルを取得し、ステップS10において得られた量子化DCT係数に乗じることにより(逆量子化することにより)、DCT係数を得る。
【0034】
次に、CPU101は、画像を回転させるために必要な情報(ローテート情報)を、例えばRAM103にキャッシュする(ステップS12)。具体的には、JPEG方式によって圧縮された画像を回転させる場合、MCUのDC成分(直流成分)とAC成分(交流成分)のそれぞれを一度ハフマン展開しなければならない。ここで、DC成分については隣接するDC成分値の差分をハフマン符号化することから、隣接するMCUとの相関関係が問題となる。また、AC成分ではハフマン符号化処理によりそのデータ長が各MCUで一定にならず、JPEGデータのビットストリーム中のどのデータが求めるMCUのAC成分値であるかが不明となることが問題となる。そこで、ステップS12では、各MCUのDC成分値とAC成分のアドレスを求めてキャッシュしておくことにより、ローテート処理を可能とする。
【0035】
そして、CPU101はステップS11で得られたDCT係数に対して逆DCT演算を施すことによりもとの画素値を得る(ステップS13)。また、CPU101は、ステップS13の処理によって得られたYCC空間の画像をRGB(Red Green Blue)空間の画像と、HSB(Hue Saturation Brightness)空間の画像に変換する(ステップS14)。
【0036】
そして、CPU101はステップS13およびステップS14の処理において得られたYCC,RGB,HSBのそれぞれの画像をRAM103に格納して保持する。なお、このとき、データ量を削減するために画素を所定の割合で間引きし画像を縮小した後にRAM103に格納してもよい(ステップS15)。ここでは、元の画像サイズに関わらず、QVGA(Quarter Video Graphics Array)サイズに相当する(320×240)ピクセルの画像に正規化するものとする。
【0037】
また、CPU101は、ステップS15においてRAM103に格納されたYCC,RGB,HSBそれぞれの画像の成分について、ヒストグラムを計算する(ステップS16)。具体的には、RGB画像については、R,G,Bそれぞれの画像についてヒストグラムを計算する。その結果、画像を構成する各成分の分布を得る。
【0038】
上記したように、本実施形態では、ステップS10〜16の処理はMCU単位で行われており、CPU101は、全てのMCUについての処理が終了したことを確認するまで、ステップS10に戻って処理を繰り返して実行する。一方、全てのMCUについての処理が終了した場合には、次のステップS17に進み、顔認識処理の主要部に相当する処理を実行する。
【0039】
ステップS17では、メモリカードMから取得した画像ファイルのExifタグに含まれる顔情報を読み出し、デジタルカメラ200側で実施された顔認識の結果として得られる顔座標(カメラ顔座標)を取得する。画像内での顔位置をQVGAサイズに正規化することにより(ステップS18)、上記のようにして復元された画像内において検出済みの顔位置を求めることができる。
【0040】
続いて、こうしてQVGAサイズに正規化されたカメラ顔座標により特定される顔領域、つまりカメラ顔座標により表される4点を頂点とする矩形領域であってデジタルカメラ200によって顔(カメラ顔)であると認識された領域が、実際に人の顔であるか否かを検証する。このような検証を行う理由は、デジタルカメラ200での顔認識は主としてフォーカスや露出等の撮影条件を決定するために行われるものであり、その結果として得られる顔情報が、撮影の実行により最終的に確定された画像での顔の位置等を正確に反映したものであるとは言えないからである。
【0041】
すなわち、顔認識が行われフォーカス等が決定されてからシャッターが押され画像が確定するまでの間に、被写体またはカメラの位置や向きが変わってしまうことがあり、このような場合、カメラ顔座標で特定される顔領域と、実際の顔の位置とがずれてしまう。この問題に対応するため、この実施形態では、カメラ顔座標により特定される顔領域の色相を画像データに基づいて算出し(ステップS19)、その色相が肌色であるか否かを判定して、肌色であれば当該領域が顔であるとみなす一方、肌色でなければ当該領域が顔ではないと判断して、以後の処理を異ならせる。
【0042】
色を定量的に表す表現方法としては種々のものが知られており、この実施形態における色判定も任意の色表現の下で行うことができるが、ここでは人間の色覚と関連付けて肌色を指定しやすいHSB色空間で判定を行う場合について説明する。
【0043】
図7はHSB色空間による色表現の例を模式的に示す図である。図7(a)に示すように、H(Hue angle;色相)、S(Saturation;彩度)、B(Brightness;明度)の3種のパラメータで表されるHSB色空間では、H値において0°が赤色、60°が黄色に対応している。肌色に対応する色相は赤色と黄色との中間であり、例えば図7(b)に示すように、0°より大きく60°より小さい2つのH値H1およびH2(>H1)を予め定めておき、値H1およびH2をそれぞれ下限および上限とする角度範囲RH内の色相を「肌色」であるとすることができる。図7(b)の例では、HSB色空間において斜線で示す空間領域Z1内に属する色を「肌色」であるとみなす。
【0044】
また、図7(c)に斜線で示す領域Z2のように、H値、S値、B値の三者の組み合わせによって「肌色」を定義してもよい。すなわち、H値、S値、B値の組み合わせが所定の条件を満たす色空間内の領域Z2に属する色を「肌色」とみなすようにしてもよい。「肌色」とされる色相の範囲については適宜に定めてよく、また他の色表現法を用いて肌色を定義することも可能である。
【0045】
図8は顔領域についての色判定のより具体的な態様を示す図である。顔領域内の画像が実際に人の顔であったとしても、例えば目や髪、影の部分を含み得るため、その全体が均一な肌色をしているというわけではない。そこで、図8に示すように、判定の対象となる顔領域FRを多数のブロック、例えば画素単位に細分化し、各ブロックごとにそのHSB値を算出して、全ブロックのうち上記した肌色領域に属するブロックが占める比率が所定の閾値以上である場合に、当該領域を「肌色」であると判定することができる。あるいは、各ブロックのHSB値の平均値が肌色領域に属する場合に当該領域を「肌色」と判定するようにしてもよい。
【0046】
図5に戻って、顔認識処理の説明を続ける。ステップS19におけるカメラ顔の色相算出を上記のようにして行った結果、「肌色」であると判定された顔領域については、当該領域を顔(カメラ顔)であるとみなして、当該顔領域の4つの頂点座標を例えばRAM103に設けた顔登録リストに登録する(ステップS20)。Exifタグ情報に付された全ての顔情報について、同様の判定および登録を行う。
【0047】
続いて、Exifタグ情報に付された顔情報のうち上記処理によって顔登録リストに登録されなかった未登録カメラ顔情報、つまり、カメラ側では顔であると認識したが上記の色判定により顔でないと判定された顔領域に対応する顔情報が残っているか否かを判断する(ステップS21)。ここでの結果がYES、つまり未登録カメラ顔情報がある場合には、以下のステップS22ないしS35を実行して再度顔認識を行う一方、未登録カメラ顔情報がない、つまりExifタグ情報により指定される顔領域が全て顔として登録された場合にはこれらの処理をスキップする。
【0048】
ステップS22以降では、カメラ側で正しく認識できなかった顔が残っている可能性が高いと考えられることから、印刷装置100側で改めて顔認識を行う。ただし、未登録カメラ顔情報の存在は、カメラ側でいったん顔であると認識された領域が画像内にあることを示すものであり、当該顔情報は別なる顔の所在を示唆する情報であるので、この情報を顔認識に利用することで、処理の効率化を図ることができる。この観点に鑑み、この実施形態では次のようにして顔認識を行っている。なお、顔認識処理自体は、例えばテンプレートを用いたマッチング技術のような公知の顔認識技術を適用することができるので、その原理や技術内容については詳しい説明を省略する。
【0049】
まず、画像に対して適用するテンプレートの回転角度Dの初期値を0に設定する(ステップS22)。そして、QVGAサイズに縮小保持された画像データを設定された角度Dだけ回転させる(ステップS23)。ここでは画像データを角度Dだけ回転させた状態でテンプレートを適用しているが、テンプレートを角度Dだけ回転させても技術的には等価である。そして、画像内におけるテンプレートの座標位置(検索X位置,検索Y位置)を画像の原点位置(0,0)に初期設定する(ステップS24、S25)。
【0050】
続いて、現在の検索位置およびその近傍領域に未登録カメラ顔情報があるか否かを判定する。具体的には、未登録カメラ顔情報により特定される顔領域(以下、「未登録顔領域」という)の少なくとも一部が、現在の検索位置からXおよびY方向にドット数で±50ドットの範囲の領域内に存在し、かつ、画像内における当該未登録顔領域の傾き角度が現在のテンプレートの設定角度Dに対して±15度の範囲内にあるとき、ステップS26では結果「YES」を返し、これ以外の場合は「NO」を結果として返す。なお、上記の「±50ドット」および「±15度」の各値は、カメラでの顔認識から撮像までの間に通常生じ得る顔の画像内での上下左右の移動量および傾き角度をそれぞれ考慮して定めた検索範囲の一数値例であって、これに限定されるものではない。
【0051】
ここで、ステップS26の結果がNOとなるケースは2通りある。その第1は、現在の検索位置またはその近傍に、カメラ顔情報によって顔領域とされる領域がそもそも存在しないケースである。つまり、現在の検索位置のみならずその近傍領域にも顔が存在しないことがカメラ側での顔認識により判明しており、現在の検索位置で顔が検出される可能性は低い。そこで、印刷装置100側でも無駄な処理を省くべくステップS27〜S29をスキップする。第2のケースは、現在の検索位置近傍にカメラ顔情報によって顔領域とされる領域があり、しかもその領域が印刷装置側100での処理により肌色と判定されたケースである。この場合、当該領域が顔であることが既に判っておりその情報が登録済みであるため、二重の処理を回避するためにステップS27〜S29をスキップする。
【0052】
一方、該当する未登録カメラ顔情報があるとき(ステップS26においてYES)、現在の検索位置の近傍に新たな顔が見つかる可能性が高い。そこで、続いて現在の検索位置に印刷装置100側で既に認識済みの顔情報があるか否かを判断する(ステップS27)。「認識済みの顔情報がある」との文言は、現在の検索位置が認識済みの顔領域の一部であることを意味している。つまり、顔登録リストに登録された顔情報によって四隅の座標を特定される顔領域の少なくとも1つが現在の検索位置を含むとき、ステップS27における結果が「YES」となる。このとき、現在の検索位置は既に顔の一部であると把握されているので、以下のステップS28、S29を省略する。
【0053】
現在の検索位置に認識済みの顔情報がなければ、当該検索位置が顔の一部であるか否かを決定すべく顔認識を行う。すなわち、検出に適用するテンプレートの顔サイズを、ステップS26の判断において該当したカメラ顔情報により特定される顔領域のサイズ(該当カメラ顔サイズ)の平均値に設定し(ステップS28)、先に角度Dだけ回転させた画像データにテンプレートを適用して顔認識を行う(ステップS29)。マッチングの結果、顔であると認識された場合には、認識された顔領域の四隅の座標を印刷装置側100での顔情報として顔登録リストに新規登録する。顔登録リストでは、デジタルカメラ200側で認識された顔情報(カメラ顔情報)と、印刷装置100側で認識された顔情報(プリンター顔情報)とを識別可能な状態で登録がなされていることが望ましい。
【0054】
テンプレートの顔サイズを、該当カメラ顔サイズの平均値としているのは次の理由による。カメラ側で顔領域と認識された領域が実際の画像では顔でないという現象が生じる理由としてここで想定しているのは、前述のようにカメラでの顔認識から撮像までの間に被写体またはカメラが動いてしまったケースである。このようなケースでは、顔認識時と撮像時とで被写体の顔サイズが大きく変わることは考えにくい。したがって、近傍位置で新たに検出され得る顔のサイズは、カメラ側で認識された顔領域のサイズに近いと考えられる。したがってカメラ側で認識された顔領域のサイズと同じ、またはそれに近いテンプレートの顔サイズとすることが好ましい。また、該当する顔が複数ある場合、それらの顔サイズの平均をテンプレートの顔サイズとすることで、それらを効率よく検出することが可能となる。
【0055】
続いて、テンプレートをX方向に所定量ΔXだけ移動させて(ステップS30)、テンプレートがX方向における画像の端部に到達するまで(ステップS31)、上記したステップS26〜S29の処理を繰り返す。
【0056】
X方向の1ラインの顔認識が完了すると、CPU101はテンプレートをY方向にΔYだけ移動させる(ステップS32)。そして、テンプレートがY方向の端部まで移動するまでの間(ステップS33)、上記したステップS25〜S31の処理を繰り返して行う。これにより、処理対象画像の全体について顔認識処理が実行される。そして、これを画像の回転角度Dを少しずつ(ΔD)変化させながら繰り返すことで(ステップS34、S35)、種々の角度の顔を全て認識することができる。
【0057】
こうして、印刷装置100による顔認識処理が行われると、次のステップS40(図6)では、CPU101は顔登録リストに顔情報が登録されている否かを判別する。そして、顔情報が登録されている場合(ステップS40で「YES」)には、CPU101は、顔登録リストに登録された顔情報に基づいて全ての顔位置を計算し、さらに顔の平均顔色を取得した(ステップS41)後、顔色が最適になるようにエンハンスパラメータを計算する(ステップS42)。なお、エンハンスパラメータ計算の詳細については省略するが、RAM103に記憶したRGBヒストグラムに基づきコントラスト、明度、彩度、シャープネスなどの各画質パラメータの特徴量を抽出し、抽出した特徴量が所定の画質パラメータの特徴量に近づくようエンハンスのパラメータを設定する。
【0058】
この場合において、実際には顔でない領域の色調がエンハンスパラメータの計算に算入されると、エンハンス処理の結果が不自然なものとなってしまうおそれがある。しかしながらこの実施形態において顔登録リストに登録された顔情報により特定される顔領域は、カメラ200側で顔と認識された後、印刷装置100側で肌色であることが確認された領域、もしくは、印刷装置100側で新たに顔認識を行った結果として顔と認識された領域のいずれかである。このため、撮像時の被写体の移動等に起因して実際には顔でない領域の色調がエンハンスパラメータに算入されてしまうことが防止され、良好なエンハンス結果を得ることができる。
【0059】
一方、顔登録リストに顔情報が登録されていない場合(ステップS40で「NO」)、つまり当該画像内で人の顔が検出されなかった場合には、CPU101は画像全体が最適になるようにエンハンスパラメータを計算する(ステップS43)。
【0060】
続いて、CPU101は、印刷対象となる画像ファイルにおいて、解凍処理の対象となる位置を示すファイルポインタをリセットし(ステップS44)、処理位置を画像ファイルの先頭に復元する。そして、CPU101は、以下のステップS45〜S52を繰り返して画像データに基づいて画像を印刷する。
【0061】
CPU101は、RAM103にキャッシュされた1MCUライン分の画像データにハフマン解凍処理を施し、量子化DCT係数を得る(ステップS45)。ここで、1MCUラインとは、画像を回転させる場合には、画像を構成する列方向に1列のMCU群をいい、回転させない場合には、画像を構成する行方向に1列のMCU群をいう。そして、CPU101は、ステップS45の処理において得られた量子化DCT係数を逆量子化し(ステップS46)、さらにステップS45で得られたDCT係数に対して逆DCT演算を施すことによりもとのデータを得る(ステップS47)。
【0062】
こうして得られたYCC空間の画像を、CPU101はRGB空間の画像に変換する(ステップS48)。そして、CPU101は、RGB空間の画像を構成する各画素に対してステップS42またはS43において算出したエンハンスパラメータを適用することにより、印刷される画像を最適な色合いに補正し(ステップS49)、次のステップS50に進む。
【0063】
CPU101は、こうして補正された画像データに対して、リサイズ、回転などのレイアウト処理を施し(ステップS50)、プリンターエンジンコントローラー111の図示せぬバンドバッファに供給する。これを受けたプリンターエンジンコントローラー111は、プリンターエンジン113の各部を制御して画像データに対応する画像を印刷する(ステップS51)。そして、印刷処理が完了すると、CPU101はRAM103のキャッシュ状態を更新する(ステップS52)。そして、全MCUライン分について上記ステップS45〜S52が完了すると、一連の処理を終了する。
【0064】
以上のように、本実施形態によれば、デジタルカメラ200での顔認識処理の結果、顔であると認識された画像内の領域を特定する情報(カメラ顔情報)を画像ファイルのExifタグ情報に記録する。一方、画像ファイルを受け取った印刷装置100は、カメラ顔情報から特定される顔領域をそのまま顔とみなすのではなく、当該領域の色に基づいてカメラ側での認識結果を検証する。すなわち、当該領域が肌色であるときには顔であると判断する一方で、カメラ顔情報では顔であるとされたが実際には肌色でなかった領域がある場合には、当該領域の近傍で改めて顔認識を行う。
【0065】
このようにすることで、カメラ側での顔認識から撮像までの間に被写体が動くなどしてタグ情報に基づく顔位置と実際の顔位置とが一致しなくなった場合でも、実際の顔位置が改めて検索されるので、画像内の顔領域をより確実に認識することができる。その結果、認識された顔領域の色調に対する顔色補正をより良好な品質で行うことができる。
【0066】
また、印刷装置100側での顔認識は、カメラ顔情報を参照して、カメラ側でいったん顔と認識された領域の近傍でのみ行うようにしているため、印刷装置100側で顔認識処理は未登録の顔領域およびそれに隣接する近傍領域のみを検索対象領域として行われる。そのため、カメラ側での認識結果によらず画像全体で顔認識を行う従来技術に比べて遥かに短時間で顔認識処理を実行することが可能である。
【0067】
さらに、カメラ側で認識された顔領域が肌色であればそのまま顔として登録し、肌色でない領域の近傍でのみ顔認識を実施するため、無用な顔認識の重複を回避することができる。ここでの判断は単に領域の色、より具体的にはその色相に基づく単純な判断であるため、前記した特許文献1に記載のように全ての顔領域について再度その近傍で顔認識を行う従来技術に比べて、処理時間を大幅に短縮することが可能である。
【0068】
<第2実施形態>
上記した第1実施形態の顔認識処理では、検索位置を画像の全体で移動させながら、当該検索位置の近傍に未登録カメラ顔情報があるか否かによって当該検索位置で顔認識を行うか否かを決定するという処理フローとなっている。このような処理フローは、カメラ側での認識結果を使わず印刷装置100だけで顔認識を行う場合の処理との整合性が良好である。すなわち、カメラ側で顔認識機能が使用されずに作成された、または当該機能を備えないカメラで作成された画像ファイルのように、カメラ顔情報を利用できない画像ファイルもあり、このような画像ファイルに対しては、印刷装置100側で画像の全域に対する顔認識処理を行う必要がある。上記処理フローは、このような場合の顔認識処理フローと多くの部分を共通化することができるので、効率的な制御プログラムを構成することが可能である。
【0069】
一方、以下に説明する第2実施形態の顔認識処理は、「カメラ顔情報で特定された位置に実際には存在しなかった顔を、当該位置の近傍で検索する」という技術思想をより直截的に具現化したものであり、この点においてより本発明の原理に沿った処理フローであるということができる。
【0070】
図9はこの発明にかかる顔認識処理の第2実施形態を示すフローチャートである。第2実施形態においては、顔認識処理の要部のみが第1実施形態と異なっており、圧縮された画像の復元処理や顔認識後の印刷処理等については第1実施形態と同じである。より具体的には、図5のステップS22〜S35の処理を図9の処理内容に置き換えたものが、第2実施形態における処理フローである。図5のステップS10〜S21、図6のステップS40〜S52については第2実施形態においてもそのまま適用することができるので、これらについては説明を省略する。
【0071】
ステップS21において未登録カメラ顔情報ありと判断したとき、まず未登録のまま残されたカメラ顔の個数をパラメータNとして設定する(ステップS101)。続くステップS102〜S117の処理では、検出すべき顔のうち第N番目の1つについて、当該顔に対応するカメラ顔情報に基づいて顔認識用の各種認識パラメータ、すなわち検索範囲や検索顔サイズなどを設定し(ステップS102)、顔認識を実行する(ステップS103〜S117)。そして、これをN=0、つまり検出すべき顔の残りがなくなるまで繰り返すことにより(ステップS118、S119)、未登録であった顔の全てを検索するという構成となっている。まず認識パラメータを初期設定するためのパラメータ設定処理について、図10および図11を参照して説明する。
【0072】
図10は第2実施形態におけるパラメータ設定処理を示すフローチャートである。また、図11はカメラ顔情報とパラメータの設定値との対応関係を説明するための図である。図11に示すように、未登録カメラ顔情報は顔領域である矩形領域FRの四隅の座標、すなわち(XTL,YTL)、(XTR,YTR)、(XBL,YBL)、(XBR,YBR)を含んでいる。これらの値に基づき、第N番目の未登録カメラ顔情報に対応する「顔矩形情報」を以下の通り算出する。なお、以下の説明において、符号に「N」が含まれるものは、第N番目の未登録カメラ顔情報に対応する数値であることを意味するものとする。
【0073】
第N番目の未登録カメラ顔情報に対応する「第N番目の顔矩形情報」としては、最小X位置XNmin、最大X位置XNmax、最小Y位置YNmin、最大Y位置YNmax、顔角度DN、顔サイズSNを用い、それぞれ以下の計算式:
XNmin=min(min(XTL,XTR),min(XBL,XBR))
YNmin=min(min(YTL,YTR),min(YBL,YBR))
XNmax=max(max(XTL,XTR),max(XBL,XBR))
YNmax=max(max(YTL,YTR),max(YBL,YBR))
DN=tan−1((YTR−YTL)/(XTR−XTL))
SN=(XTR−XTL)/cosDN
により算出する(ステップS121)。上式において、min(A,B)およびmax(A,B)はそれぞれ数値AとBとのうちの最小値および最大値を返す関数である。
【0074】
これらの数値の意味するところを図11を参照して説明する。最小X位置XNmin、最大X位置XNmax、最小Y位置YNmin、最大Y位置YNmaxのそれぞれは、XY座標空間内において顔領域FRが占める範囲を示す数値である。また、顔角度DNはX座標軸に対する顔領域FRの傾き角度を、顔サイズSNは顔領域FRを表す正方形の1辺の長さを表している。
【0075】
次に、こうして算出された顔矩形情報に基づき、現在の検索対象である第N番目のカメラ顔についての認識パラメータの初期値を設定する(ステップS122)。X方向における検索開始位置Xstrは、最小X位置Xminから50(ドット)を減じた値とする。また、検索終了位置Xendは最小X位置Xminに50を加えた値とする。また、Y方向における検索開始位置Ystrは、最小Y位置Yminから50を減じた値とする。また、検索終了位置Yendは最小Y位置Yminに50を加えた値とする。これにより、カメラ側で第N番目の顔が認識された領域を中心にして、上下左右に各50ドットずつ拡張された領域が、第N番目の顔の検索範囲に含まれる領域、すなわち検索対象領域となる。
【0076】
また、検索顔サイズの初期値Sstrを顔サイズSNから5を減じた値、最終値Sendを顔サイズSNに5を加えた値とする。これにより、検索される顔のサイズに、カメラ側で認識された第N番目の顔のサイズに対して±5ドットの幅を持たせることができ、多少の顔サイズの変化にも対応することが可能となる。さらに、検索顔角度の初期値Dstrを顔角度DNから15度を減じた値、最終値Dendを顔角度DNに15度を加えた値とする。これにより、顔角度の変化にも対応することが可能となる。
【0077】
なお、こうして設定された各パラメータによって顔認識用のテンプレートが設定されるが、テンプレートが画像からはみ出すことがないように、以下の丸め処理を行う。すなわち、X方向の検索開始位置Xstrが0より小さくなっているときにはこれを0に丸め(ステップS123、S124)、検索終了位置Xendが320を超えているときにはこれを320に丸める(ステップS125、S126)。同様に、Y方向の検索開始位置Ystrが0より小さくなっているときにはこれを0に丸め(ステップS127、S128)、検索終了位置Yendが240を超えているときにはこれを240に丸める(ステップS129、S130)。さらに、検索顔サイズの初期値Sstrが0より小さくなっているときにはこれを0に丸め(ステップS131、S132)、最終値Sendが240を超えているときにはこれを240に丸める(ステップS133、S134)。以上でパラメータ設定処理が完了する。
【0078】
図9に戻って、こうしてパラメータ設定処理(ステップS102)を行った後、顔認識用の認識パラメータのうちの回転角度D、検索サイズSをそれぞれ初期値Dstr、Sstrに設定する(ステップS103、S104)。そして、マッチング用のテンプレートとして、サイズS、回転角度Dのものを用意する(ステップS105)。
【0079】
次に、検索位置の座標(X,Y)を初期位置(Xstr、Ystr)に設定し(ステップS106、S107)、第1実施形態と同様に、当該検索位置に印刷装置100側で認識・登録済みの顔情報があるか否かを判断する(ステップS108)。登録された顔情報がなければ回転されたテンプレートを適用して当該検索位置で顔認識を行い、顔が検出されれば顔登録リストに登録する(ステップS109)。既に登録された顔があればこの処理はスキップする。
【0080】
これを、X方向に少しずつ位置を変えながら検索終了位置Xendに到達するまで行うことで(ステップS110、S111)、検索範囲内でのX方向の1ライン分の顔認識が終了する。さらに、Y方向にも少しずつ位置を変えながら検索終了位置Yendに到達するまで行うと(ステップS112、S113)、検索対象領域全体での顔認識が終了する。
【0081】
そして、これをテンプレートの検索サイズSおよび回転角度Dを少しずつ変化させながら繰り返し実行することにより(ステップS114〜S117)、第N番目の未登録顔情報に対応する顔の位置が特定される。このような処理を顔の残数が0となるまで繰り返せば、未登録であった顔の全てが元の検出位置の近傍領域を検索対象領域として改めて検索される。前記した通り、顔認識終了後の印刷処理は第1実施形態のものと共通である。
【0082】
以上のように、第2実施形態の顔認識処理では、未登録カメラ顔情報に基づいて、印刷装置100側での顔認識処理における検索範囲や顔サイズ等を設定し、その範囲内で新たな顔を検索するようにしている。これにより、第1実施形態の処理と同様の効果を得ることが可能となっている。
【0083】
<その他>
以上説明したように、上記実施形態の印刷システムにおいては、印刷装置100が本発明の「画像処理装置」として機能しており、CPU101が所定の制御プログラムを実行することにより、本発明の「算出手段」、「判定手段」および「顔認識処理手段」としての機能を果たしている。また、デジタルカメラ200からメモリカードMを介して画像ファイルを受け取るカードI/F回路110およびインターフェース106が、本発明の「画像データ取得手段」として機能している。
【0084】
また、この実施形態の画像処理動作(図5)においては、ステップS17が本発明の「顔情報取得工程」に相当し、ステップS19〜S21が本発明の「判定工程」に相当している。さらに、第1実施形態の処理ではステップS22〜S37が、また第2実施形態の処理ではステップS102〜S119が、それぞれ発明の「顔認識処理工程」に相当している。また、両実施形態において、ステップS49が本発明の「補正工程」に相当している。
【0085】
なお、本発明は上記した実施形態に限定されるものではなく、その趣旨を逸脱しない限りにおいて上述したもの以外に種々の変更を行うことが可能である。例えば、上記実施形態では、画像データに方向座標などを付加した画像ファイルをメモリカードMに記録し、当該メモリカードMを介して印刷装置100に供給して印刷しているが、有線または無線通信により画像ファイルが印刷装置100に供給される場合も、本発明を適用することで上記した実施形態と同様の作用効果が得られる。
【0086】
また、上記実施形態では、顔領域の色を定量的に表し肌色か否かを判定するのにHSB色空間内の座標位置を用いているが、別の色表現法、例えばxy色度図上における座標位置やLab色空間内の座標位置によって色を表現し、それらの平面または空間において肌色を定義し色判定を行うようにしてもよい。
【0087】
また、上記実施形態では、肌色領域の範囲や、顔認識処理における検索範囲・サイズ等に関する認識パラメータの可変範囲を予め定めた固定値としているが、これらの値を必要に応じて変更設定することができるようにしてもよい。
【0088】
また、上記実施形態では、本発明にかかる画像処理装置および方法を印刷装置100に適用しているが、複数の電子機器から構成される印刷システムにも、また印刷装置以外の1つの電子機器(例えば複合機、ファクシミリ装置など)にも適用可能である。
【0089】
またデジタルカメラ200に上記のような画像処理機能を設け、デジタルカメラ200を本発明の「画像処理装置」として機能させるようにしてもよい。
【0090】
また、上記実施形態にかかる画像処理方法を実行する制御プログラムを、CD−ROM、光ディスク、光磁気ディスク、不揮発性メモリカードなどの記憶媒体に記憶させ、この記憶媒体からプログラムをコードとして読み出し、コンピューターにおいて実行してもよい。つまり、上記プログラムを記憶した記憶媒体、制御プログラム自体も本発明の一実施形態に含まれる。例えば、デジタルカメラで撮像された画像をパーソナルコンピューターもしくはワークステーション上で編集処理するためのアプリケーションソフトウェアにも、本発明を適用することが可能である。
【符号の説明】
【0091】
100…印刷装置(画像処理装置)、 101…CPU(算出手段、判定手段、顔認識処理手段)、 102…ROM、 103…RAM、 104…EEPROM、 106…インターフェース(画像データ取得手段)、 200…デジタルカメラ、 M…メモリカード
【技術分野】
【0001】
この発明は、画像処理方法および画像処理装置に関するものであり、特に画像から人の顔に相当する領域を検出する顔認識技術に関する。
【背景技術】
【0002】
被写体を撮影して画像データを生成するデジタルカメラなどの撮像装置や、該画像データを表示または印刷するプリンターなどの出力装置では、画像内に含まれる人の顔に相当する領域を検出する顔認識機能を持つものが実用化されている。例えば、特許文献1に記載の技術においては、デジタルカメラ等での撮像時に生成された撮影情報、より具体的には画像内で検出された顔の数、位置、サイズ等の顔情報が画像データに付加されて画像処理装置である例えばプリンターに受け渡される。
【0003】
一方、プリンター側では、取得した顔情報に基づいて改めて画像内で顔認識を行う。これは、カメラ側での顔認識が主に撮影条件を決定するために撮像前に行われるものであり、顔認識後に被写体が動くなどの理由により、顔情報が実際の画像内での顔の位置等を正確に示していないケースがあることに対応するためである。そして、画像データに付帯した顔情報を顔認識時に参照することで、画像処理装置での顔認識の処理時間の短縮および検出精度の向上が図られている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2010−003165号公報(例えば、図2)
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上記した従来技術では、カメラ等での顔認識精度に関係なくその顔認識結果を全て再検証することになるため、顔認識処理が重複して実行され非効率的であるという問題があった。また、例えば画像に多くの顔が含まれている場合、画像処理装置側での顔認識処理に時間がかかることとなっていた。
【0006】
この発明にかかるいくつかの態様は、画像データから人の顔に相当する領域を検出する顔認識処理を行う画像処理方法および装置において、上記課題を解決し、顔認識処理をより効率よく短時間で行うことのできる技術を提供するものである。
【課題を解決するための手段】
【0007】
この発明の一の態様は、上記課題を解決するため、画像データが表す画像内における人の顔に相当する顔領域を特定するための情報として当該画像データに付加された顔情報を取得する顔情報取得工程と、前記顔情報により特定される前記顔領域が肌色であるか否かを判定する判定工程と、前記画像内で所定の適合条件に適合する領域を検索し該領域を顔領域として認識する顔認識処理を実行する顔認識処理工程とを備え、前記顔認識処理工程では、前記判定工程において肌色でないと判定された前記顔領域があるとき、当該顔領域についての前記顔情報に基づいて前記画像内の一部領域を検索対象領域として設定し、該検索対象領域内で前記適合条件に適合する領域を検索することを特徴とする画像処理方法である。
【0008】
また、この発明の他の態様は、上記各工程をコンピューターに実行させることを特徴とする制御プログラムである。
【0009】
これらの発明では、画像データに付加された顔情報により特定される顔領域について、前記した従来技術のように無条件に再度顔認識処理を行うのでなく、まず当該顔領域の色を判定し、肌色でないと判定された、つまり顔でない可能性の高い顔領域があった場合に顔認識処理を行う。そして、この場合の顔認識処理については、画像全体で行うのではなく、画像データに付加された顔情報に基づいて設定した、画像の一部領域である検索対象領域について行う。このため、本発明によれば、画像全体について顔認識を行う従来技術や、上記した特許文献1に記載の従来技術に比して、顔認識処理をより効率よく短時間で行うことが可能となる。
【0010】
ここで、例えば、検索対象領域は、判定工程において肌色でないと判定された顔領域に隣接する隣接領域の少なくとも一部を含むようにしてもよい。このようにすると、顔情報から特定される位置の近傍で新たな顔が検索されることとなる。例えば撮像時において顔認識が終わって撮像されるまでの間にカメラ等の撮像装置または被写体が少し動いた場合を考えると、顔情報で特定される位置から少しずれた位置に顔がある可能性が高い。そこで、顔情報で特定される位置の近傍で顔を検索することで、効率よく顔を検出することが可能となる。
【0011】
また、例えば、顔認識処理工程では、判定工程において肌色であると判定された顔領域については顔情報が正しく顔の位置を特定しているものと考えられることから、当該領域をそのまま顔領域として認識するようにしてもよい。このように、検証により信憑性が高いと認められた顔認識結果をそのまま利用することで、処理に要する時間をさらに短縮することができる。
【0012】
また、例えば、顔認識処理工程において検索される顔領域のサイズが、顔情報により特定される顔領域のサイズに基づいて設定されてもよい。前記したように、顔情報で特定される顔領域が実際には顔でないとされる場合、被写体が動いた可能性がある。この場合、移動した顔のサイズまでもが大きく変わることは考えにくいから、顔情報により特定される顔領域のサイズを基にして検索する顔サイズを定めることで、効率よく顔認識を行うことができる。また、顔の位置ではなくその画像に対する傾きが変わることもあるので、顔情報により特定される顔領域の傾き角度を基にして検索する顔の傾き角度を定めるようにしてもよい。
【0013】
また、判定工程において、顔領域が肌色であるか否かについては、当該領域の画像の色を適当な色表示パラメータを用いて定量的に表現し、そのパラメータの値に基づいて判定することができる。例えば、HSB色空間において色相を指標するパラメータであるH値に対して肌色と見なす適合範囲を予め定め、顔情報により特定される顔領域のH値が適合範囲内にあるときに当該顔領域が肌色であると判定することができる。このように、顔情報で特定される顔領域内の画像を定量的に示すパラメータを用いて判定を行うことにより、実際に顔認識処理を行うのに比べて遥かに演算量の少ない簡単な処理で、しかも一義的に当該領域の判定を行うことができる。
【0014】
また、この発明にかかる他の態様は、上記課題を解決するため、画像データが表す画像内における人の顔に相当する顔領域を特定するための顔情報が付加された画像データを取得する画像データ取得手段と、前記画像データに基づき、前記顔情報により特定される前記顔領域の色相を算出する算出手段と、算出された色相の値に基づいて前記顔領域が肌色であるか否かを判定する判定手段と、前記判定手段において肌色でないと判定された前記顔領域があれば、当該顔領域についての前記顔情報に基づいて前記画像内の一部領域を検索対象領域として設定し、該検索対象領域内で所定の適合条件に適合する領域を検索し該領域を顔領域として認識する顔認識処理を実行する顔認識処理手段とを備えることを特徴とする画像処理装置である。
【0015】
このように構成された発明では、上記した画像処理方法の発明と同様に、画像データに付加された顔情報により特定される顔領域に肌色でないと判定されたものがあるときに、該顔情報に基づいて設定された検索対象領域内で顔認識処理が行われる。そのため、上記した画像処理方法の発明と同様に、顔認識処理を効率よく短時間で行うことが可能である。
【図面の簡単な説明】
【0016】
【図1】本発明にかかる画像処理装置の一実施形態を用いた印刷システムを示す図。
【図2】デジタルカメラで作成される画像ファイルの一例を示す図。
【図3】図2の部分拡大図。
【図4】顔認識処理により認識された顔の一例を示す図。
【図5】この発明にかかる顔認識処理の第1実施形態を示すフローチャート。
【図6】図1の印刷装置で実行される印刷動作を示すフローチャート。
【図7】HSB色空間による色表現の例を模式的に示す図。
【図8】顔領域についての色判定のより具体的な態様を示す図。
【図9】この発明にかかる顔認識処理の第2実施形態を示すフローチャート。
【図10】第2実施形態におけるパラメータ設定処理を示すフローチャート。
【図11】カメラ顔情報とパラメータの設定値との対応関係を説明するための図。
【発明を実施するための形態】
【0017】
図1は、本発明にかかる画像処理装置の一実施形態を用いた印刷システムを示す図である。この印刷システムは、デジタルカメラ200の撮影により取得された画像データを、メモリカードM、USB(Universal Serial Bus)ケーブルや無線LAN(Local Area Network)等によって印刷装置100に転送し、印刷装置100で印刷するものである。すなわち、ここではユーザーがデジタルカメラ200で画像を撮影して画像データを生成し、その画像データをそのまま印刷装置100で読み込んで印刷する、いわゆるダイレクト印刷を想定しているが、本発明を適用可能な印刷システムはこれに限定されるものではない。つまり、デジタルカメラ200で生成した画像データをパーソナルコンピューターや携帯電話などに取り込み、パーソナルコンピューターから印刷装置100に画像データを送信して印刷する印刷システムにも本発明を適用することが可能である。さらに、このような印刷装置100を備えるシステムに限定されず、画像データに対して種々の処理を施す画像処理装置全般に対して、本発明を適用可能である。
【0018】
デジタルカメラ200では、同図に示すように、CPU(Central Processing Unit)201、ROM(Read Only Memory)202、RAM(Random Access Memory)203、CCD(Charge Coupled Device)204、グラフィックプロセッサー(Graphic Processor;GP)205およびインターフェース(Interface;I/F)206がバス207を介して相互に接続され、これらの間で情報の授受が可能となっている。そして、CPU201はROM202に格納されているプログラムに応じて各種演算処理を実行しながらデジタルカメラ200の制御を行う。このとき一時的に必要となるデータはRAM203に格納される。また、CCD204は、光学系208によって集光された被写体からの光学像を電気信号に変換して出力する。この光学系208は、複数のレンズおよびアクチュエータによって構成されており、アクチュエータによってフォーカス等を調整しながら被写体の光学像を複数のレンズによってCCD204の受光面に結像する。さらに、GP205は、CPU201から供給される表示命令に基づいて表示用の画像処理を実行し、得られた表示用画像データを液晶ディスプレイ(Liquid Crystal Display;LCD)209に供給して表示させる。
【0019】
I/F206はデジタルカメラ200の入出力機能を提供するものであり、操作ボタン210、ジャイロセンサー211およびカードI/F回路212の間で情報を授受する際に、データの表現形式を適宜変換する装置である。I/F206に接続される操作ボタン210には、電源、モード切替え、シャッターなどのボタンや、各種機能を設定できる入力手段があり、これらによってユーザーはデジタルカメラ200を任意に制御して動作させることが可能となっている。また、ジャイロセンサー211はデジタルカメラ200によって被写体を撮影した際のカメラ本体の角度(水平面に対する角度)を示す信号を生成して出力する。デジタルカメラ200は、上記したカメラ本体の角度を含め、撮影時における種々の情報(例えば、露光、被写体等に関する情報)を生成する。
【0020】
なお、本実施形態では、デジタルカメラ200は、撮影情報をExif(Exchangeable Image File Format)情報に記載し、画像データに付加した画像ファイルを生成することができる構造となっている。このExif画像ファイルの構造は、基本的には通常のJPEG(Joint Photographic Experts Group)画像形式そのものであり、その中にサムネイル画像や撮影関連データ等のデータをJPEGの規約に準拠した形で埋め込んだものである。
【0021】
また、カードI/F回路212はカードスロット213に挿入されたメモリカードMとの間で情報を読み書きするためのインタフェースである。さらに、I/F206は図示を省略するUSB、無線LANなどの外部機器との接続機能も有しており、有線または無線にて印刷装置100との間で画像ファイルの授受が可能となっている。なお、デジタルカメラ200で作成され、印刷装置100に与えられる画像ファイル(画像データ+Exif情報)については、後で詳述する。
【0022】
印刷装置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に供給して表示させる。
【0023】
I/F106は、操作ボタン109、カードI/F回路110およびプリンターエンジンコントローラー111の間で情報を授受する際に、データの表現形式を適宜変換する装置である。印刷装置100では、操作ボタン109は印刷装置100のメニュー選択等を行う時に押されるように構成されている。また、カードI/F回路110は、カードスロット112と接続されており、このカードスロット112に挿入されたメモリカードMからデジタルカメラ200によって生成された画像ファイルを読み出す。なお、I/F106は、図示を省略するUSB、無線LANなどの外部機器との接続機能も有しており、有線通信または無線通信にてデジタルカメラ200との間で画像ファイルの授受が可能となっている。
【0024】
そして、印刷装置100は、メモリカードMを介して、あるいはデータ通信により画像データを受け取ると、CPU101により種々の処理を行うとともにプリンターエンジンコントローラー111によりプリンターエンジン113を制御し、これによって画像データに対応する画像を印刷する。以下、図2ないし図4に基づき画像ファイルの構成を説明した上で、本実施形態における画像処理動作および印刷動作について詳述する。
【0025】
図2は上記のように構成されたデジタルカメラで作成される画像ファイルの一例を示す図である。また、図3は図2の部分拡大図、図4は顔認識処理により認識された顔の一例を示す図である。この実施形態では、デジタルカメラ200はCCD204で撮像された画像データをRAM203に格納する。また、デジタルカメラ200は、被写体に人物が含まれているときには顔認識処理を行う(なお、顔認識方式については従来より数多く提案されており、それらのうちいずれの方式を採用してもよい)。なお、本実施形態では、顔認識結果は、図4に示すような座標情報が顔位置の情報、つまり顔情報として表現される。すなわち、同図に示すように、画像データは所定の画像幅(Width)と画像高さ(Height)の画素で構成されており、Xが横軸、Yが縦軸を表しており、左上が原点(0,0)である。そして、画像データから顔が検出されると、その顔領域FRを左上(LT)、左下(LB)、右上(RT)、右下(RB)の4点の座標で囲まれる領域で表し、顔領域FRを示す座標、つまり顔座標(顔位置)を、認識した顔の個数(つまり顔個数)NcとともにRAM203に格納する。また、本明細書では、後で説明するように、印刷装置100においてもデジタルカメラ200での顔認識と同様に顔認識を行って顔座標を求めるため、デジタルカメラ200での顔認識により得られる顔座標を「カメラ顔座標」と称し、左上(LTc)、左下(LBc)、右上(RBc)、右下(RBc)で示す。また、顔認識処理により複数個の顔が検出される場合もあるため、図3では、第n番目のカメラ顔座標を左上(LTnc)、左下(LBnc)、右上(RTnc)、右下(RBnc)で示す。
【0026】
また、この実施形態では、上記のように画像データ、顔個数および顔座標などをRAM203に格納しているが、その記録方式としてディジタルスチルカメラ用画像ファイルフォーマット規格Exif Ver.2.2.1を使用している。このExif画像ファイルの構造は、基本的には通常のJPEG(Joint Photographic Experts Group)画像形式そのものであり、その中にサムネイル画像や撮影関連データ等のデータをJPEGの規約に準拠した形で埋め込んだものである。
【0027】
本実施形態で使用する画像ファイルは、図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がある。
【0028】
Length領域302bに続くデータの最初の6バイトの領域302cでは、識別子としてASCII文字の“Exif"が、その次に2バイトの0x00が続く。そこからTIFF(Tagged Image File Format)形式でデータが格納されている。TIFF形式の最初の8バイトはTIFFヘッダー(Header)領域302dである。
【0029】
また、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情報に顔情報が含まれていない場合、顔情報がないと判断される。
【0030】
次に、上記のようなデータ構造(図2)を有する画像ファイルがメモリカードMに保存されており、そのメモリカードMから画像ファイルを読み出し、印刷装置100により画像ファイルに含まれる各種情報に基づき所定の画像処理を実行して印刷する動作の2つの実施形態について順に説明する。
【0031】
<第1実施形態>
図5および図6は図1の印刷装置で実行される画像処理および印刷動作の第1実施形態を示すフローチャートである。ユーザーが印刷装置100のカードスロット112にメモリカードMを挿入し、操作ボタン109を操作して印刷指令を与えると、CPU101がROM102に格納されているプログラムにしたがって装置各部を制御して以下の画像処理および印刷動作を実行する。
【0032】
まず、CPU101は、印刷の対象となる画像ファイルをメモリカードMから取得し、ハフマン解凍処理を実行し、量子化DCT(Discrete Cosine Transform)係数を得る(ステップS10)。より具体的には、CPU101は、メモリカードMから取得した画像ファイルからエントロピー符号化テーブルを取得し、圧縮データに含まれているY(輝度)成分、Cr(色差成分)、および、Cb(色差成分)のそれぞれのブロックのDC係数と、AC係数とを復号する。なお、この際、最小符号化単位であるMCU(Minimum Coded Unit)単位で復号を行う。
【0033】
また、CPU101は、ステップS10において得られた量子化DCT係数を逆量子化する(ステップS11)。具体的には、CPU101は、画像ファイルから量子化テーブルを取得し、ステップS10において得られた量子化DCT係数に乗じることにより(逆量子化することにより)、DCT係数を得る。
【0034】
次に、CPU101は、画像を回転させるために必要な情報(ローテート情報)を、例えばRAM103にキャッシュする(ステップS12)。具体的には、JPEG方式によって圧縮された画像を回転させる場合、MCUのDC成分(直流成分)とAC成分(交流成分)のそれぞれを一度ハフマン展開しなければならない。ここで、DC成分については隣接するDC成分値の差分をハフマン符号化することから、隣接するMCUとの相関関係が問題となる。また、AC成分ではハフマン符号化処理によりそのデータ長が各MCUで一定にならず、JPEGデータのビットストリーム中のどのデータが求めるMCUのAC成分値であるかが不明となることが問題となる。そこで、ステップS12では、各MCUのDC成分値とAC成分のアドレスを求めてキャッシュしておくことにより、ローテート処理を可能とする。
【0035】
そして、CPU101はステップS11で得られたDCT係数に対して逆DCT演算を施すことによりもとの画素値を得る(ステップS13)。また、CPU101は、ステップS13の処理によって得られたYCC空間の画像をRGB(Red Green Blue)空間の画像と、HSB(Hue Saturation Brightness)空間の画像に変換する(ステップS14)。
【0036】
そして、CPU101はステップS13およびステップS14の処理において得られたYCC,RGB,HSBのそれぞれの画像をRAM103に格納して保持する。なお、このとき、データ量を削減するために画素を所定の割合で間引きし画像を縮小した後にRAM103に格納してもよい(ステップS15)。ここでは、元の画像サイズに関わらず、QVGA(Quarter Video Graphics Array)サイズに相当する(320×240)ピクセルの画像に正規化するものとする。
【0037】
また、CPU101は、ステップS15においてRAM103に格納されたYCC,RGB,HSBそれぞれの画像の成分について、ヒストグラムを計算する(ステップS16)。具体的には、RGB画像については、R,G,Bそれぞれの画像についてヒストグラムを計算する。その結果、画像を構成する各成分の分布を得る。
【0038】
上記したように、本実施形態では、ステップS10〜16の処理はMCU単位で行われており、CPU101は、全てのMCUについての処理が終了したことを確認するまで、ステップS10に戻って処理を繰り返して実行する。一方、全てのMCUについての処理が終了した場合には、次のステップS17に進み、顔認識処理の主要部に相当する処理を実行する。
【0039】
ステップS17では、メモリカードMから取得した画像ファイルのExifタグに含まれる顔情報を読み出し、デジタルカメラ200側で実施された顔認識の結果として得られる顔座標(カメラ顔座標)を取得する。画像内での顔位置をQVGAサイズに正規化することにより(ステップS18)、上記のようにして復元された画像内において検出済みの顔位置を求めることができる。
【0040】
続いて、こうしてQVGAサイズに正規化されたカメラ顔座標により特定される顔領域、つまりカメラ顔座標により表される4点を頂点とする矩形領域であってデジタルカメラ200によって顔(カメラ顔)であると認識された領域が、実際に人の顔であるか否かを検証する。このような検証を行う理由は、デジタルカメラ200での顔認識は主としてフォーカスや露出等の撮影条件を決定するために行われるものであり、その結果として得られる顔情報が、撮影の実行により最終的に確定された画像での顔の位置等を正確に反映したものであるとは言えないからである。
【0041】
すなわち、顔認識が行われフォーカス等が決定されてからシャッターが押され画像が確定するまでの間に、被写体またはカメラの位置や向きが変わってしまうことがあり、このような場合、カメラ顔座標で特定される顔領域と、実際の顔の位置とがずれてしまう。この問題に対応するため、この実施形態では、カメラ顔座標により特定される顔領域の色相を画像データに基づいて算出し(ステップS19)、その色相が肌色であるか否かを判定して、肌色であれば当該領域が顔であるとみなす一方、肌色でなければ当該領域が顔ではないと判断して、以後の処理を異ならせる。
【0042】
色を定量的に表す表現方法としては種々のものが知られており、この実施形態における色判定も任意の色表現の下で行うことができるが、ここでは人間の色覚と関連付けて肌色を指定しやすいHSB色空間で判定を行う場合について説明する。
【0043】
図7はHSB色空間による色表現の例を模式的に示す図である。図7(a)に示すように、H(Hue angle;色相)、S(Saturation;彩度)、B(Brightness;明度)の3種のパラメータで表されるHSB色空間では、H値において0°が赤色、60°が黄色に対応している。肌色に対応する色相は赤色と黄色との中間であり、例えば図7(b)に示すように、0°より大きく60°より小さい2つのH値H1およびH2(>H1)を予め定めておき、値H1およびH2をそれぞれ下限および上限とする角度範囲RH内の色相を「肌色」であるとすることができる。図7(b)の例では、HSB色空間において斜線で示す空間領域Z1内に属する色を「肌色」であるとみなす。
【0044】
また、図7(c)に斜線で示す領域Z2のように、H値、S値、B値の三者の組み合わせによって「肌色」を定義してもよい。すなわち、H値、S値、B値の組み合わせが所定の条件を満たす色空間内の領域Z2に属する色を「肌色」とみなすようにしてもよい。「肌色」とされる色相の範囲については適宜に定めてよく、また他の色表現法を用いて肌色を定義することも可能である。
【0045】
図8は顔領域についての色判定のより具体的な態様を示す図である。顔領域内の画像が実際に人の顔であったとしても、例えば目や髪、影の部分を含み得るため、その全体が均一な肌色をしているというわけではない。そこで、図8に示すように、判定の対象となる顔領域FRを多数のブロック、例えば画素単位に細分化し、各ブロックごとにそのHSB値を算出して、全ブロックのうち上記した肌色領域に属するブロックが占める比率が所定の閾値以上である場合に、当該領域を「肌色」であると判定することができる。あるいは、各ブロックのHSB値の平均値が肌色領域に属する場合に当該領域を「肌色」と判定するようにしてもよい。
【0046】
図5に戻って、顔認識処理の説明を続ける。ステップS19におけるカメラ顔の色相算出を上記のようにして行った結果、「肌色」であると判定された顔領域については、当該領域を顔(カメラ顔)であるとみなして、当該顔領域の4つの頂点座標を例えばRAM103に設けた顔登録リストに登録する(ステップS20)。Exifタグ情報に付された全ての顔情報について、同様の判定および登録を行う。
【0047】
続いて、Exifタグ情報に付された顔情報のうち上記処理によって顔登録リストに登録されなかった未登録カメラ顔情報、つまり、カメラ側では顔であると認識したが上記の色判定により顔でないと判定された顔領域に対応する顔情報が残っているか否かを判断する(ステップS21)。ここでの結果がYES、つまり未登録カメラ顔情報がある場合には、以下のステップS22ないしS35を実行して再度顔認識を行う一方、未登録カメラ顔情報がない、つまりExifタグ情報により指定される顔領域が全て顔として登録された場合にはこれらの処理をスキップする。
【0048】
ステップS22以降では、カメラ側で正しく認識できなかった顔が残っている可能性が高いと考えられることから、印刷装置100側で改めて顔認識を行う。ただし、未登録カメラ顔情報の存在は、カメラ側でいったん顔であると認識された領域が画像内にあることを示すものであり、当該顔情報は別なる顔の所在を示唆する情報であるので、この情報を顔認識に利用することで、処理の効率化を図ることができる。この観点に鑑み、この実施形態では次のようにして顔認識を行っている。なお、顔認識処理自体は、例えばテンプレートを用いたマッチング技術のような公知の顔認識技術を適用することができるので、その原理や技術内容については詳しい説明を省略する。
【0049】
まず、画像に対して適用するテンプレートの回転角度Dの初期値を0に設定する(ステップS22)。そして、QVGAサイズに縮小保持された画像データを設定された角度Dだけ回転させる(ステップS23)。ここでは画像データを角度Dだけ回転させた状態でテンプレートを適用しているが、テンプレートを角度Dだけ回転させても技術的には等価である。そして、画像内におけるテンプレートの座標位置(検索X位置,検索Y位置)を画像の原点位置(0,0)に初期設定する(ステップS24、S25)。
【0050】
続いて、現在の検索位置およびその近傍領域に未登録カメラ顔情報があるか否かを判定する。具体的には、未登録カメラ顔情報により特定される顔領域(以下、「未登録顔領域」という)の少なくとも一部が、現在の検索位置からXおよびY方向にドット数で±50ドットの範囲の領域内に存在し、かつ、画像内における当該未登録顔領域の傾き角度が現在のテンプレートの設定角度Dに対して±15度の範囲内にあるとき、ステップS26では結果「YES」を返し、これ以外の場合は「NO」を結果として返す。なお、上記の「±50ドット」および「±15度」の各値は、カメラでの顔認識から撮像までの間に通常生じ得る顔の画像内での上下左右の移動量および傾き角度をそれぞれ考慮して定めた検索範囲の一数値例であって、これに限定されるものではない。
【0051】
ここで、ステップS26の結果がNOとなるケースは2通りある。その第1は、現在の検索位置またはその近傍に、カメラ顔情報によって顔領域とされる領域がそもそも存在しないケースである。つまり、現在の検索位置のみならずその近傍領域にも顔が存在しないことがカメラ側での顔認識により判明しており、現在の検索位置で顔が検出される可能性は低い。そこで、印刷装置100側でも無駄な処理を省くべくステップS27〜S29をスキップする。第2のケースは、現在の検索位置近傍にカメラ顔情報によって顔領域とされる領域があり、しかもその領域が印刷装置側100での処理により肌色と判定されたケースである。この場合、当該領域が顔であることが既に判っておりその情報が登録済みであるため、二重の処理を回避するためにステップS27〜S29をスキップする。
【0052】
一方、該当する未登録カメラ顔情報があるとき(ステップS26においてYES)、現在の検索位置の近傍に新たな顔が見つかる可能性が高い。そこで、続いて現在の検索位置に印刷装置100側で既に認識済みの顔情報があるか否かを判断する(ステップS27)。「認識済みの顔情報がある」との文言は、現在の検索位置が認識済みの顔領域の一部であることを意味している。つまり、顔登録リストに登録された顔情報によって四隅の座標を特定される顔領域の少なくとも1つが現在の検索位置を含むとき、ステップS27における結果が「YES」となる。このとき、現在の検索位置は既に顔の一部であると把握されているので、以下のステップS28、S29を省略する。
【0053】
現在の検索位置に認識済みの顔情報がなければ、当該検索位置が顔の一部であるか否かを決定すべく顔認識を行う。すなわち、検出に適用するテンプレートの顔サイズを、ステップS26の判断において該当したカメラ顔情報により特定される顔領域のサイズ(該当カメラ顔サイズ)の平均値に設定し(ステップS28)、先に角度Dだけ回転させた画像データにテンプレートを適用して顔認識を行う(ステップS29)。マッチングの結果、顔であると認識された場合には、認識された顔領域の四隅の座標を印刷装置側100での顔情報として顔登録リストに新規登録する。顔登録リストでは、デジタルカメラ200側で認識された顔情報(カメラ顔情報)と、印刷装置100側で認識された顔情報(プリンター顔情報)とを識別可能な状態で登録がなされていることが望ましい。
【0054】
テンプレートの顔サイズを、該当カメラ顔サイズの平均値としているのは次の理由による。カメラ側で顔領域と認識された領域が実際の画像では顔でないという現象が生じる理由としてここで想定しているのは、前述のようにカメラでの顔認識から撮像までの間に被写体またはカメラが動いてしまったケースである。このようなケースでは、顔認識時と撮像時とで被写体の顔サイズが大きく変わることは考えにくい。したがって、近傍位置で新たに検出され得る顔のサイズは、カメラ側で認識された顔領域のサイズに近いと考えられる。したがってカメラ側で認識された顔領域のサイズと同じ、またはそれに近いテンプレートの顔サイズとすることが好ましい。また、該当する顔が複数ある場合、それらの顔サイズの平均をテンプレートの顔サイズとすることで、それらを効率よく検出することが可能となる。
【0055】
続いて、テンプレートをX方向に所定量ΔXだけ移動させて(ステップS30)、テンプレートがX方向における画像の端部に到達するまで(ステップS31)、上記したステップS26〜S29の処理を繰り返す。
【0056】
X方向の1ラインの顔認識が完了すると、CPU101はテンプレートをY方向にΔYだけ移動させる(ステップS32)。そして、テンプレートがY方向の端部まで移動するまでの間(ステップS33)、上記したステップS25〜S31の処理を繰り返して行う。これにより、処理対象画像の全体について顔認識処理が実行される。そして、これを画像の回転角度Dを少しずつ(ΔD)変化させながら繰り返すことで(ステップS34、S35)、種々の角度の顔を全て認識することができる。
【0057】
こうして、印刷装置100による顔認識処理が行われると、次のステップS40(図6)では、CPU101は顔登録リストに顔情報が登録されている否かを判別する。そして、顔情報が登録されている場合(ステップS40で「YES」)には、CPU101は、顔登録リストに登録された顔情報に基づいて全ての顔位置を計算し、さらに顔の平均顔色を取得した(ステップS41)後、顔色が最適になるようにエンハンスパラメータを計算する(ステップS42)。なお、エンハンスパラメータ計算の詳細については省略するが、RAM103に記憶したRGBヒストグラムに基づきコントラスト、明度、彩度、シャープネスなどの各画質パラメータの特徴量を抽出し、抽出した特徴量が所定の画質パラメータの特徴量に近づくようエンハンスのパラメータを設定する。
【0058】
この場合において、実際には顔でない領域の色調がエンハンスパラメータの計算に算入されると、エンハンス処理の結果が不自然なものとなってしまうおそれがある。しかしながらこの実施形態において顔登録リストに登録された顔情報により特定される顔領域は、カメラ200側で顔と認識された後、印刷装置100側で肌色であることが確認された領域、もしくは、印刷装置100側で新たに顔認識を行った結果として顔と認識された領域のいずれかである。このため、撮像時の被写体の移動等に起因して実際には顔でない領域の色調がエンハンスパラメータに算入されてしまうことが防止され、良好なエンハンス結果を得ることができる。
【0059】
一方、顔登録リストに顔情報が登録されていない場合(ステップS40で「NO」)、つまり当該画像内で人の顔が検出されなかった場合には、CPU101は画像全体が最適になるようにエンハンスパラメータを計算する(ステップS43)。
【0060】
続いて、CPU101は、印刷対象となる画像ファイルにおいて、解凍処理の対象となる位置を示すファイルポインタをリセットし(ステップS44)、処理位置を画像ファイルの先頭に復元する。そして、CPU101は、以下のステップS45〜S52を繰り返して画像データに基づいて画像を印刷する。
【0061】
CPU101は、RAM103にキャッシュされた1MCUライン分の画像データにハフマン解凍処理を施し、量子化DCT係数を得る(ステップS45)。ここで、1MCUラインとは、画像を回転させる場合には、画像を構成する列方向に1列のMCU群をいい、回転させない場合には、画像を構成する行方向に1列のMCU群をいう。そして、CPU101は、ステップS45の処理において得られた量子化DCT係数を逆量子化し(ステップS46)、さらにステップS45で得られたDCT係数に対して逆DCT演算を施すことによりもとのデータを得る(ステップS47)。
【0062】
こうして得られたYCC空間の画像を、CPU101はRGB空間の画像に変換する(ステップS48)。そして、CPU101は、RGB空間の画像を構成する各画素に対してステップS42またはS43において算出したエンハンスパラメータを適用することにより、印刷される画像を最適な色合いに補正し(ステップS49)、次のステップS50に進む。
【0063】
CPU101は、こうして補正された画像データに対して、リサイズ、回転などのレイアウト処理を施し(ステップS50)、プリンターエンジンコントローラー111の図示せぬバンドバッファに供給する。これを受けたプリンターエンジンコントローラー111は、プリンターエンジン113の各部を制御して画像データに対応する画像を印刷する(ステップS51)。そして、印刷処理が完了すると、CPU101はRAM103のキャッシュ状態を更新する(ステップS52)。そして、全MCUライン分について上記ステップS45〜S52が完了すると、一連の処理を終了する。
【0064】
以上のように、本実施形態によれば、デジタルカメラ200での顔認識処理の結果、顔であると認識された画像内の領域を特定する情報(カメラ顔情報)を画像ファイルのExifタグ情報に記録する。一方、画像ファイルを受け取った印刷装置100は、カメラ顔情報から特定される顔領域をそのまま顔とみなすのではなく、当該領域の色に基づいてカメラ側での認識結果を検証する。すなわち、当該領域が肌色であるときには顔であると判断する一方で、カメラ顔情報では顔であるとされたが実際には肌色でなかった領域がある場合には、当該領域の近傍で改めて顔認識を行う。
【0065】
このようにすることで、カメラ側での顔認識から撮像までの間に被写体が動くなどしてタグ情報に基づく顔位置と実際の顔位置とが一致しなくなった場合でも、実際の顔位置が改めて検索されるので、画像内の顔領域をより確実に認識することができる。その結果、認識された顔領域の色調に対する顔色補正をより良好な品質で行うことができる。
【0066】
また、印刷装置100側での顔認識は、カメラ顔情報を参照して、カメラ側でいったん顔と認識された領域の近傍でのみ行うようにしているため、印刷装置100側で顔認識処理は未登録の顔領域およびそれに隣接する近傍領域のみを検索対象領域として行われる。そのため、カメラ側での認識結果によらず画像全体で顔認識を行う従来技術に比べて遥かに短時間で顔認識処理を実行することが可能である。
【0067】
さらに、カメラ側で認識された顔領域が肌色であればそのまま顔として登録し、肌色でない領域の近傍でのみ顔認識を実施するため、無用な顔認識の重複を回避することができる。ここでの判断は単に領域の色、より具体的にはその色相に基づく単純な判断であるため、前記した特許文献1に記載のように全ての顔領域について再度その近傍で顔認識を行う従来技術に比べて、処理時間を大幅に短縮することが可能である。
【0068】
<第2実施形態>
上記した第1実施形態の顔認識処理では、検索位置を画像の全体で移動させながら、当該検索位置の近傍に未登録カメラ顔情報があるか否かによって当該検索位置で顔認識を行うか否かを決定するという処理フローとなっている。このような処理フローは、カメラ側での認識結果を使わず印刷装置100だけで顔認識を行う場合の処理との整合性が良好である。すなわち、カメラ側で顔認識機能が使用されずに作成された、または当該機能を備えないカメラで作成された画像ファイルのように、カメラ顔情報を利用できない画像ファイルもあり、このような画像ファイルに対しては、印刷装置100側で画像の全域に対する顔認識処理を行う必要がある。上記処理フローは、このような場合の顔認識処理フローと多くの部分を共通化することができるので、効率的な制御プログラムを構成することが可能である。
【0069】
一方、以下に説明する第2実施形態の顔認識処理は、「カメラ顔情報で特定された位置に実際には存在しなかった顔を、当該位置の近傍で検索する」という技術思想をより直截的に具現化したものであり、この点においてより本発明の原理に沿った処理フローであるということができる。
【0070】
図9はこの発明にかかる顔認識処理の第2実施形態を示すフローチャートである。第2実施形態においては、顔認識処理の要部のみが第1実施形態と異なっており、圧縮された画像の復元処理や顔認識後の印刷処理等については第1実施形態と同じである。より具体的には、図5のステップS22〜S35の処理を図9の処理内容に置き換えたものが、第2実施形態における処理フローである。図5のステップS10〜S21、図6のステップS40〜S52については第2実施形態においてもそのまま適用することができるので、これらについては説明を省略する。
【0071】
ステップS21において未登録カメラ顔情報ありと判断したとき、まず未登録のまま残されたカメラ顔の個数をパラメータNとして設定する(ステップS101)。続くステップS102〜S117の処理では、検出すべき顔のうち第N番目の1つについて、当該顔に対応するカメラ顔情報に基づいて顔認識用の各種認識パラメータ、すなわち検索範囲や検索顔サイズなどを設定し(ステップS102)、顔認識を実行する(ステップS103〜S117)。そして、これをN=0、つまり検出すべき顔の残りがなくなるまで繰り返すことにより(ステップS118、S119)、未登録であった顔の全てを検索するという構成となっている。まず認識パラメータを初期設定するためのパラメータ設定処理について、図10および図11を参照して説明する。
【0072】
図10は第2実施形態におけるパラメータ設定処理を示すフローチャートである。また、図11はカメラ顔情報とパラメータの設定値との対応関係を説明するための図である。図11に示すように、未登録カメラ顔情報は顔領域である矩形領域FRの四隅の座標、すなわち(XTL,YTL)、(XTR,YTR)、(XBL,YBL)、(XBR,YBR)を含んでいる。これらの値に基づき、第N番目の未登録カメラ顔情報に対応する「顔矩形情報」を以下の通り算出する。なお、以下の説明において、符号に「N」が含まれるものは、第N番目の未登録カメラ顔情報に対応する数値であることを意味するものとする。
【0073】
第N番目の未登録カメラ顔情報に対応する「第N番目の顔矩形情報」としては、最小X位置XNmin、最大X位置XNmax、最小Y位置YNmin、最大Y位置YNmax、顔角度DN、顔サイズSNを用い、それぞれ以下の計算式:
XNmin=min(min(XTL,XTR),min(XBL,XBR))
YNmin=min(min(YTL,YTR),min(YBL,YBR))
XNmax=max(max(XTL,XTR),max(XBL,XBR))
YNmax=max(max(YTL,YTR),max(YBL,YBR))
DN=tan−1((YTR−YTL)/(XTR−XTL))
SN=(XTR−XTL)/cosDN
により算出する(ステップS121)。上式において、min(A,B)およびmax(A,B)はそれぞれ数値AとBとのうちの最小値および最大値を返す関数である。
【0074】
これらの数値の意味するところを図11を参照して説明する。最小X位置XNmin、最大X位置XNmax、最小Y位置YNmin、最大Y位置YNmaxのそれぞれは、XY座標空間内において顔領域FRが占める範囲を示す数値である。また、顔角度DNはX座標軸に対する顔領域FRの傾き角度を、顔サイズSNは顔領域FRを表す正方形の1辺の長さを表している。
【0075】
次に、こうして算出された顔矩形情報に基づき、現在の検索対象である第N番目のカメラ顔についての認識パラメータの初期値を設定する(ステップS122)。X方向における検索開始位置Xstrは、最小X位置Xminから50(ドット)を減じた値とする。また、検索終了位置Xendは最小X位置Xminに50を加えた値とする。また、Y方向における検索開始位置Ystrは、最小Y位置Yminから50を減じた値とする。また、検索終了位置Yendは最小Y位置Yminに50を加えた値とする。これにより、カメラ側で第N番目の顔が認識された領域を中心にして、上下左右に各50ドットずつ拡張された領域が、第N番目の顔の検索範囲に含まれる領域、すなわち検索対象領域となる。
【0076】
また、検索顔サイズの初期値Sstrを顔サイズSNから5を減じた値、最終値Sendを顔サイズSNに5を加えた値とする。これにより、検索される顔のサイズに、カメラ側で認識された第N番目の顔のサイズに対して±5ドットの幅を持たせることができ、多少の顔サイズの変化にも対応することが可能となる。さらに、検索顔角度の初期値Dstrを顔角度DNから15度を減じた値、最終値Dendを顔角度DNに15度を加えた値とする。これにより、顔角度の変化にも対応することが可能となる。
【0077】
なお、こうして設定された各パラメータによって顔認識用のテンプレートが設定されるが、テンプレートが画像からはみ出すことがないように、以下の丸め処理を行う。すなわち、X方向の検索開始位置Xstrが0より小さくなっているときにはこれを0に丸め(ステップS123、S124)、検索終了位置Xendが320を超えているときにはこれを320に丸める(ステップS125、S126)。同様に、Y方向の検索開始位置Ystrが0より小さくなっているときにはこれを0に丸め(ステップS127、S128)、検索終了位置Yendが240を超えているときにはこれを240に丸める(ステップS129、S130)。さらに、検索顔サイズの初期値Sstrが0より小さくなっているときにはこれを0に丸め(ステップS131、S132)、最終値Sendが240を超えているときにはこれを240に丸める(ステップS133、S134)。以上でパラメータ設定処理が完了する。
【0078】
図9に戻って、こうしてパラメータ設定処理(ステップS102)を行った後、顔認識用の認識パラメータのうちの回転角度D、検索サイズSをそれぞれ初期値Dstr、Sstrに設定する(ステップS103、S104)。そして、マッチング用のテンプレートとして、サイズS、回転角度Dのものを用意する(ステップS105)。
【0079】
次に、検索位置の座標(X,Y)を初期位置(Xstr、Ystr)に設定し(ステップS106、S107)、第1実施形態と同様に、当該検索位置に印刷装置100側で認識・登録済みの顔情報があるか否かを判断する(ステップS108)。登録された顔情報がなければ回転されたテンプレートを適用して当該検索位置で顔認識を行い、顔が検出されれば顔登録リストに登録する(ステップS109)。既に登録された顔があればこの処理はスキップする。
【0080】
これを、X方向に少しずつ位置を変えながら検索終了位置Xendに到達するまで行うことで(ステップS110、S111)、検索範囲内でのX方向の1ライン分の顔認識が終了する。さらに、Y方向にも少しずつ位置を変えながら検索終了位置Yendに到達するまで行うと(ステップS112、S113)、検索対象領域全体での顔認識が終了する。
【0081】
そして、これをテンプレートの検索サイズSおよび回転角度Dを少しずつ変化させながら繰り返し実行することにより(ステップS114〜S117)、第N番目の未登録顔情報に対応する顔の位置が特定される。このような処理を顔の残数が0となるまで繰り返せば、未登録であった顔の全てが元の検出位置の近傍領域を検索対象領域として改めて検索される。前記した通り、顔認識終了後の印刷処理は第1実施形態のものと共通である。
【0082】
以上のように、第2実施形態の顔認識処理では、未登録カメラ顔情報に基づいて、印刷装置100側での顔認識処理における検索範囲や顔サイズ等を設定し、その範囲内で新たな顔を検索するようにしている。これにより、第1実施形態の処理と同様の効果を得ることが可能となっている。
【0083】
<その他>
以上説明したように、上記実施形態の印刷システムにおいては、印刷装置100が本発明の「画像処理装置」として機能しており、CPU101が所定の制御プログラムを実行することにより、本発明の「算出手段」、「判定手段」および「顔認識処理手段」としての機能を果たしている。また、デジタルカメラ200からメモリカードMを介して画像ファイルを受け取るカードI/F回路110およびインターフェース106が、本発明の「画像データ取得手段」として機能している。
【0084】
また、この実施形態の画像処理動作(図5)においては、ステップS17が本発明の「顔情報取得工程」に相当し、ステップS19〜S21が本発明の「判定工程」に相当している。さらに、第1実施形態の処理ではステップS22〜S37が、また第2実施形態の処理ではステップS102〜S119が、それぞれ発明の「顔認識処理工程」に相当している。また、両実施形態において、ステップS49が本発明の「補正工程」に相当している。
【0085】
なお、本発明は上記した実施形態に限定されるものではなく、その趣旨を逸脱しない限りにおいて上述したもの以外に種々の変更を行うことが可能である。例えば、上記実施形態では、画像データに方向座標などを付加した画像ファイルをメモリカードMに記録し、当該メモリカードMを介して印刷装置100に供給して印刷しているが、有線または無線通信により画像ファイルが印刷装置100に供給される場合も、本発明を適用することで上記した実施形態と同様の作用効果が得られる。
【0086】
また、上記実施形態では、顔領域の色を定量的に表し肌色か否かを判定するのにHSB色空間内の座標位置を用いているが、別の色表現法、例えばxy色度図上における座標位置やLab色空間内の座標位置によって色を表現し、それらの平面または空間において肌色を定義し色判定を行うようにしてもよい。
【0087】
また、上記実施形態では、肌色領域の範囲や、顔認識処理における検索範囲・サイズ等に関する認識パラメータの可変範囲を予め定めた固定値としているが、これらの値を必要に応じて変更設定することができるようにしてもよい。
【0088】
また、上記実施形態では、本発明にかかる画像処理装置および方法を印刷装置100に適用しているが、複数の電子機器から構成される印刷システムにも、また印刷装置以外の1つの電子機器(例えば複合機、ファクシミリ装置など)にも適用可能である。
【0089】
またデジタルカメラ200に上記のような画像処理機能を設け、デジタルカメラ200を本発明の「画像処理装置」として機能させるようにしてもよい。
【0090】
また、上記実施形態にかかる画像処理方法を実行する制御プログラムを、CD−ROM、光ディスク、光磁気ディスク、不揮発性メモリカードなどの記憶媒体に記憶させ、この記憶媒体からプログラムをコードとして読み出し、コンピューターにおいて実行してもよい。つまり、上記プログラムを記憶した記憶媒体、制御プログラム自体も本発明の一実施形態に含まれる。例えば、デジタルカメラで撮像された画像をパーソナルコンピューターもしくはワークステーション上で編集処理するためのアプリケーションソフトウェアにも、本発明を適用することが可能である。
【符号の説明】
【0091】
100…印刷装置(画像処理装置)、 101…CPU(算出手段、判定手段、顔認識処理手段)、 102…ROM、 103…RAM、 104…EEPROM、 106…インターフェース(画像データ取得手段)、 200…デジタルカメラ、 M…メモリカード
【特許請求の範囲】
【請求項1】
画像データが表す画像内における人の顔に相当する顔領域を特定するための情報として当該画像データに付加された顔情報を取得する顔情報取得工程と、
前記顔情報により特定される前記顔領域が肌色であるか否かを判定する判定工程と、
前記画像内で所定の適合条件に適合する領域を検索し該領域を顔領域として認識する顔認識処理を実行する顔認識処理工程と
を備え、
前記顔認識処理工程では、前記判定工程において肌色でないと判定された前記顔領域があるとき、当該顔領域についての前記顔情報に基づいて前記画像内の一部領域を検索対象領域として設定し、該検索対象領域内で前記適合条件に適合する領域を検索する
ことを特徴とする画像処理方法。
【請求項2】
前記検索対象領域は、前記判定工程において肌色でないと判定された前記顔領域に隣接する隣接領域の少なくとも一部を含む請求項1に記載の画像処理方法。
【請求項3】
前記顔認識処理工程では、前記判定工程において肌色であると判定された前記顔領域については当該領域をそのまま顔領域として認識する請求項1または2に記載の画像処理方法。
【請求項4】
前記顔認識処理工程において検索される顔領域のサイズが、前記顔情報により特定される前記顔領域のサイズに基づいて設定される請求項1ないし3のいずれかに記載の画像処理方法。
【請求項5】
前記判定工程では、HSB色空間におけるH値に対して肌色と見なす適合範囲を予め定め、前記顔情報により特定される前記顔領域の前記H値が前記適合範囲内にあるときに当該顔領域が肌色であると判定する請求項1ないし4のいずれかに記載の画像処理方法。
【請求項6】
前記判定工程において肌色と判定された顔領域および前記顔認識処理工程において検出された顔領域のいずれかが少なくとも1つあるとき、当該顔領域に対して顔色補正処理を実行する補正工程を備える請求項1ないし5のいずれかに記載の画像処理方法。
【請求項7】
画像データが表す画像内における人の顔に相当する顔領域を特定するための情報として当該画像データに付加された顔情報を取得する顔情報取得工程と、
前記顔情報により特定される前記顔領域が肌色であるか否かを判定する判定工程と、
前記判定工程において肌色でないと判定された前記顔領域があるとき、当該顔領域についての前記顔情報に基づいて前記画像内の一部領域を検索対象領域として設定し、該検索対象領域内で所定の適合条件に適合する領域を検索し該領域を顔領域として認識する顔認識処理を実行する顔認識処理工程と
をコンピューターに実行させることを特徴とする制御プログラム。
【請求項8】
画像データが表す画像内における人の顔に相当する顔領域を特定するための顔情報が付加された画像データを取得する画像データ取得手段と、
前記画像データに基づき、前記顔情報により特定される前記顔領域の色相を算出する算出手段と、
算出された色相の値に基づいて前記顔領域が肌色であるか否かを判定する判定手段と、
前記判定手段において肌色でないと判定された前記顔領域があれば、当該顔領域についての前記顔情報に基づいて前記画像内の一部領域を検索対象領域として設定し、該検索対象領域内で所定の適合条件に適合する領域を検索し該領域を顔領域として認識する顔認識処理を実行する顔認識処理手段と
を備えることを特徴とする画像処理装置。
【請求項1】
画像データが表す画像内における人の顔に相当する顔領域を特定するための情報として当該画像データに付加された顔情報を取得する顔情報取得工程と、
前記顔情報により特定される前記顔領域が肌色であるか否かを判定する判定工程と、
前記画像内で所定の適合条件に適合する領域を検索し該領域を顔領域として認識する顔認識処理を実行する顔認識処理工程と
を備え、
前記顔認識処理工程では、前記判定工程において肌色でないと判定された前記顔領域があるとき、当該顔領域についての前記顔情報に基づいて前記画像内の一部領域を検索対象領域として設定し、該検索対象領域内で前記適合条件に適合する領域を検索する
ことを特徴とする画像処理方法。
【請求項2】
前記検索対象領域は、前記判定工程において肌色でないと判定された前記顔領域に隣接する隣接領域の少なくとも一部を含む請求項1に記載の画像処理方法。
【請求項3】
前記顔認識処理工程では、前記判定工程において肌色であると判定された前記顔領域については当該領域をそのまま顔領域として認識する請求項1または2に記載の画像処理方法。
【請求項4】
前記顔認識処理工程において検索される顔領域のサイズが、前記顔情報により特定される前記顔領域のサイズに基づいて設定される請求項1ないし3のいずれかに記載の画像処理方法。
【請求項5】
前記判定工程では、HSB色空間におけるH値に対して肌色と見なす適合範囲を予め定め、前記顔情報により特定される前記顔領域の前記H値が前記適合範囲内にあるときに当該顔領域が肌色であると判定する請求項1ないし4のいずれかに記載の画像処理方法。
【請求項6】
前記判定工程において肌色と判定された顔領域および前記顔認識処理工程において検出された顔領域のいずれかが少なくとも1つあるとき、当該顔領域に対して顔色補正処理を実行する補正工程を備える請求項1ないし5のいずれかに記載の画像処理方法。
【請求項7】
画像データが表す画像内における人の顔に相当する顔領域を特定するための情報として当該画像データに付加された顔情報を取得する顔情報取得工程と、
前記顔情報により特定される前記顔領域が肌色であるか否かを判定する判定工程と、
前記判定工程において肌色でないと判定された前記顔領域があるとき、当該顔領域についての前記顔情報に基づいて前記画像内の一部領域を検索対象領域として設定し、該検索対象領域内で所定の適合条件に適合する領域を検索し該領域を顔領域として認識する顔認識処理を実行する顔認識処理工程と
をコンピューターに実行させることを特徴とする制御プログラム。
【請求項8】
画像データが表す画像内における人の顔に相当する顔領域を特定するための顔情報が付加された画像データを取得する画像データ取得手段と、
前記画像データに基づき、前記顔情報により特定される前記顔領域の色相を算出する算出手段と、
算出された色相の値に基づいて前記顔領域が肌色であるか否かを判定する判定手段と、
前記判定手段において肌色でないと判定された前記顔領域があれば、当該顔領域についての前記顔情報に基づいて前記画像内の一部領域を検索対象領域として設定し、該検索対象領域内で所定の適合条件に適合する領域を検索し該領域を顔領域として認識する顔認識処理を実行する顔認識処理手段と
を備えることを特徴とする画像処理装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2012−146164(P2012−146164A)
【公開日】平成24年8月2日(2012.8.2)
【国際特許分類】
【出願番号】特願2011−4595(P2011−4595)
【出願日】平成23年1月13日(2011.1.13)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】
【公開日】平成24年8月2日(2012.8.2)
【国際特許分類】
【出願日】平成23年1月13日(2011.1.13)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】
[ Back to top ]