画像処理装置および画像処理プログラム
【課題】人物の画像で跳ねた髪などを目立たなくすること。
【解決手段】画像処理装置は、画像から人物の顔を検出する顔検出処理を行う顔検出処理部13と、顔検出処理の結果に基づいて、画像内における、顔部分を含む所定のエリアを顔エリアとして決定する顔エリア決定部13と、顔エリアの外周を含む所定のエリアを髪エリアとして決定する髪エリア決定部13と、髪エリア内の画像に基づいて、頭部の輪郭を示す頭部ラインを決定する頭部ライン決定部13と、髪エリア内の画像において、頭部ラインに対して顔エリアの反対側に存在する髪の毛部を補正する補正処理を行う補正処理部12、13と、を備えることを特徴とする。
【解決手段】画像処理装置は、画像から人物の顔を検出する顔検出処理を行う顔検出処理部13と、顔検出処理の結果に基づいて、画像内における、顔部分を含む所定のエリアを顔エリアとして決定する顔エリア決定部13と、顔エリアの外周を含む所定のエリアを髪エリアとして決定する髪エリア決定部13と、髪エリア内の画像に基づいて、頭部の輪郭を示す頭部ラインを決定する頭部ライン決定部13と、髪エリア内の画像において、頭部ラインに対して顔エリアの反対側に存在する髪の毛部を補正する補正処理を行う補正処理部12、13と、を備えることを特徴とする。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置および画像処理プログラムに関する。
【背景技術】
【0002】
人物画像の髪領域を検出する技術が知られている(特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2005−339522号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ポートレート写真のように人物をアップで撮影した場合に、まとめた髪から跳ねて目立つ短い髪が気になる場合がある。上述した技術では、まとめた髪から跳ねた髪を目立たなくすることへの適用が困難であった。
【課題を解決するための手段】
【0005】
(1)請求項1に記載の発明による画像処理装置は、画像から人物の顔を検出する顔検出処理を行う顔検出処理部と、顔検出処理の結果に基づいて、画像内における、顔部分を含む所定のエリアを顔エリアとして決定する顔エリア決定部と、顔エリアの外周を含む所定のエリアを髪エリアとして決定する髪エリア決定部と、髪エリア内の画像に基づいて、頭部の輪郭を示す頭部ラインを決定する頭部ライン決定部と、髪エリア内の画像において、頭部ラインに対して顔エリアの反対側に存在する髪の毛部を補正する補正処理を行う補正処理部と、を備えることを特徴とする。
(2)請求項11に記載の発明による画像処理プログラムは、画像から人物の顔を検出する顔検出処理と、顔検出処理の結果に基づいて、画像内における、顔部分を含む所定のエリアを顔エリアとして決定する顔エリア決定処理と、顔エリアの外周を含む所定のエリアを髪エリアとして決定する髪エリア決定処理と、髪エリア内の画像に基づいて、頭部の輪郭を示す頭部ラインを決定する頭部ライン決定処理と、髪エリア内の画像において、頭部ラインに対して顔エリアの反対側に存在する髪の毛部を補正する補正処理と、をコンピュータに実行させることを特徴とする。
【発明の効果】
【0006】
本発明によれば、人物の画像で跳ねた髪などを目立たなくすることができる。
【図面の簡単な説明】
【0007】
【図1】本発明の一実施の形態による撮像装置の構成例を説明するブロック図である。
【図2】CPUが実行する処理の流れを説明するフローチャートである。
【図3】人物の画像を例示する図である。
【図4】顔エリアを説明する図である。
【図5】髪エリアを説明する図である。
【図6】ブロック群を説明する図である。
【図7】髪の毛色の取得に関して説明する図である。
【図8】髪の毛補正エリアを説明する図である。
【図9】頭部ラインの決定に関して説明する図である。
【図10】補正対象画素の決定に関して説明する図である。
【図11】補正対象画素の置換処理に関して説明する図である。
【図12】髪の毛補正処理の結果を例示する図である。
【図13】コンピュータを例示する図である。
【発明を実施するための形態】
【0008】
以下、図面を参照して本発明を実施するための形態について説明する。図1は、本発明の一実施の形態による撮像装置1の構成例を説明するブロック図である。図1において、撮像装置1は、撮像部11と、画像処理部12と、CPU部13と、モニタ部14と、操作部15と、アクセス部16と、ROM17と、内蔵メモリ18とを備える。
【0009】
撮像部11は、撮影光学系11Aと、撮像素子11Bとを含む。撮影光学系11Aは、ズームレンズやフォーカシングレンズを含む複数のレンズ群で構成され、被写体像を撮像素子11Bの受光面に結像させる。なお、図1を簡単にするため、撮影光学系11Aを単レンズとして図示している。
【0010】
撮像素子11Bは、画素を構成する受光素子のフォトダイオードが受光面に二次元配列されたCMOSイメージセンサなどによって構成される。撮像素子11Bは、撮影光学系11Aを通過した光束による像を光電変換し、デジタル画像データを生成する。なお、撮像素子11Bで取得される画像から色情報が得られるように、撮像素子11Bの受光面には画素位置に対応させてR色、G色およびB色のカラーフィルタ(不図示)が設けられている。
【0011】
撮像素子11Bにより生成されたデジタル画像データは、画像処理部12に入力される。画像処理部12は、デジタル画像データに対して各種の画像処理(色補間処理、階調変換処理、輪郭強調処理、ホワイトバランス調整処理など)を施す。
【0012】
モニタ部14は液晶パネルなどによって構成される。モニタ部14は、CPU部13からの指示に応じて画像や操作アイコン、メニュー画面などを表示する。内蔵メモリ18は、画像処理部12による画像処理の前工程や後工程でのデジタル画像データを一時的に記憶する他、CPU部13によるプログラム実行時に用いられる。ROM17は、CPU部13が実行するプログラムなどを記憶する。
【0013】
CPU部13は、ROM17が記憶するプログラムを実行することにより、撮像装置1が行う動作を制御する。アクセス部16はコネクタ(不図示)を有し、該コネクタに外部メモリ30が接続される。アクセス部16は、接続された外部メモリ30に対するデータの書き込みや、外部メモリ30からのデータの読み込みを行う。外部メモリ30は、半導体メモリを内蔵したメモリカードなどで構成される。
【0014】
操作部15は、レリーズボタンやメニュースイッチなどを含む。操作部15は、撮影操作、モード切替え操作やアイコン選択操作など、各操作に応じた操作信号をCPU部13へ送出する。
【0015】
CPU部13は、顔検出処理を実行する顔検出部13Aと、髪の毛補正処理を実行する髪の毛補正部13Bとを有する。顔検出とは、画像に含まれる人物の顔領域を検出することをいう。髪の毛補正とは、たとえば、まとめた髪から跳ねている毛を目立たなくすることをいう。本発明は髪の毛補正部13Bが行う髪の毛補正処理に特徴を有するので、以降は髪の毛補正処理を中心に説明する。
【0016】
図2は、CPU部13が実行する髪の毛補正処理の流れを説明するフローチャートである。CPU部13は、たとえば、髪の毛補正処理を行う旨の設定がなされている状態で、撮影操作が行われると、図2の処理を行うプログラムを起動する。図2による髪の毛補正処理の概要は以下の通りである。なお、各ステップの詳細については後述する。
【0017】
ステップS1において、CPU部13は、撮像部11により撮像された画像を取得して、ステップS2へ進む。ステップS2において、CPU部13は、撮像された画像に対して顔検出処理を実行して、ステップS3へ進む。
【0018】
ステップS3において、CPU部13は、顔検出処理の結果に基づいて、画像に含まれる人物の顔部分を含む所定の領域(顔エリア)を取得し、ステップS4へ進む。ステップS4において、CPU部13は、取得した顔エリアのサイズに基づいて、人物の髪の毛およびその背景を含む領域(髪エリア)のサイズを決定し、ステップS5へ進む。
【0019】
ステップS5において、CPU部13は、決定した髪エリアのサイズに基づいて髪エリアを決定し、ステップS6へ進む。ステップS6において、CPU部13は、ステップS3で取得した顔エリアから髪の毛色を取得して、ステップS7へ進む。
【0020】
ステップS7において、CPU部13は、ステップS5で決定した髪エリア内において、髪の毛色と背景色(髪の毛色および肌色以外の色)とを含むエリアを髪の毛補正エリアとして決定して、ステップS8へ進む。
【0021】
ステップS8において、CPU部13は、決定した髪の毛補正エリアに対し、髪の毛色に対するエッジ検出処理を施してステップS9へ進む。ステップS9において、CPU部13は、髪の毛補正エリアに対し、髪の毛色と他の色とで2値化処理を施して、ステップS10へ進む。
【0022】
ステップS10において、CPU部13は、エッジ検出処理および2値化処理の結果に基づいて、人物の頭部の輪郭を示すライン(頭部ライン)を決定し、ステップS11へ進む。ステップS11において、CPU部13は、髪の毛補正エリア内において、頭部ラインの外側に位置し、且つ色相が髪の毛色である画素を補正対象画素として検出して、ステップS12へ進む。
【0023】
ステップS12において、CPU部13は画像処理部12に指示を送り、補正対象画素を背景色に置換する画像処理を行わせ、髪の毛補正処理を終了する。
【0024】
次に上述した髪の毛補正処理の詳細について具体的に説明する。ここでは一例として、図3に示す画像に対して髪の毛補正処理を行う場合を説明する。CPU部13の顔検出部13Aは、髪の毛補正処理の開始後の上記ステップS2において、画像に対して顔検出処理を実行する。なお、顔検出処理は公知の技術を用いるため、詳細な説明は省略する。
【0025】
上記顔エリアの取得(S3)の詳細について、図4を参照して説明する。CPU部13は、たとえば顔検出処理によって検出した顔部分と色相が共通する領域、すなわち肌色を構成する領域の横方向および縦方向の最大サイズのエリアを顔エリア51とし、この顔エリア51のサイズを顔エリアサイズとして取得する。なお、肌色は、RGBデータのR/G、B/Gの値に基づいて判定する。またCPU部13は、顔エリア51内における、目、鼻、口などの各パーツの位置情報を取得する。さらにCPU部13は、人物の性別および年齢を判別して、性別情報および年齢情報を取得する。
【0026】
CPU部13は、顔エリアサイズに基づいて、図5に示すように髪エリア52を決定する。具体的にCPU部13は、上記顔エリアサイズを所定の比率(たとえば横方向が1.5倍、縦方向が2倍)で拡大したサイズを髪エリアサイズとする(S4)。CPU部13は、顔エリア51を中心とした髪エリアサイズの矩形により囲まれるエリアから顔エリア51を除外したエリアを、髪エリア52として決定する。なお、撮像した画像からはみだす範囲は、髪エリア52から除かれる。
【0027】
CPU部13は、図6に示すように、決定した髪エリア52を複数のブロック群53に分割する。具体的にCPU部13は、顔エリアサイズを所定の比率(たとえば、横方向が4分の1倍、縦方向が6分の1倍)で縮小したサイズをブロックサイズとして、髪エリア52を複数のブロック群53に分割する。CPU部13は、このブロック群53を構成する各ブロック単位で、上述したエッジ検出処理(S8)、2値化処理(S9)、頭部ライン決定処理(S10)、補正対象画素の決定処理(S11)などを行う。
【0028】
CPU部13は、髪の毛色の取得(S6)を以下のように行う。すなわちCPU部13は、顔検出処理の結果に基づいて、図7に示すように顔エリア51内における左右の目の上部を結ぶ横方向のライン54を検出する。CPU部13は、ライン54から上方向に画素ごとの色相を検出し、色相が肌色から異なる色へ変化する画素を検出する。CPU部13は、検出した画素の色相を髪の毛色として取得する。
【0029】
CPU部13は、髪の毛補正エリアの決定(S7)を以下のように行う。すなわちCPU部13は、髪エリア52において、1つのブロック内に色相が髪の毛色である画素と色相が背景色である画素とを有するエリアを髪の毛補正エリア55として決定する。図8に、髪の毛補正エリア55を例示する。
【0030】
CPU部13は、画像に対し、髪の毛補正エリア55内の各ブロック単位で、エッジ検出処理を行う(S8)。図9(a)は、あるブロックを拡大した画像を示す図であり、図9(b)は、図9(a)のブロック画像に対してエッジ検出処理を行って得られた画像を示す図である。エッジ検出処理では、髪の毛色から他の色へ変化するエッジを検出する。これによりCPU部13は、画像から、髪の毛色が連続するラインを抽出する。
【0031】
またCPU部13は、画像に対し、髪の毛補正エリア55内の各ブロック単位で、2値化処理を行う(S9)。図9(c)は、図9(a)のブロック画像に対して2値化処理を行って得られた画像を示す図である。2値化処理では、髪の毛色および他の色で2値化を行う。これによりCPU部13は、画像から、髪の毛部分を抽出する。
【0032】
CPU部13は、頭部ラインの決定(S10)を以下のように行う。すなわち、CPU部13は、2値化処理(S9)の結果に基づいて、図9(d)に示すように、顔エリア51の中心51oから補正エリア55の外周部へ向かう方向56において、色相が髪の毛色から他の色へ変化する画素を検出する。これにより、髪の毛部分のうち、髪の毛が頭部でまとまっている部分の境界が抽出される。
【0033】
そしてCPU部13は、ここで検出した画素が形成するラインであって、且つエッジ検出処理(S8)により抽出したラインと一致するラインを取得する。CPU部13は、この取得したラインを頭部ラインとして決定する。図9(e)に、頭部ライン57を例示する。なお、CPU部13は、各ブロック単位で頭部ライン57の決定を行う。
【0034】
CPU部13は、補正対象画素の決定(S11)を以下のように行う。CPU部13は、図10に示すように、髪の毛補正エリア55内で顔エリア51を内側とした際の頭部ライン57よりも外側のエリアを外部エリア58とする。CPU部13は、外部エリア58内に位置し、且つ髪の毛色と色相が一致する画素を抽出する。これにより、まとめた髪から跳ねた髪を構成している画素が抽出される。CPU部13は、このように抽出した画素を、補正対象画素として決定する。なお、CPU部13は、各ブロック単位で補正対象画素の決定を行う。
【0035】
CPU部13は、補正対象画素を決定すると、画像処理部12に指示を送り、補正対象画素を背景色に置換する処理を以下のように行わせる(S12)。図11(a)は、補正対象画素を含むブロック画像を例示する図である。図11(b)は、図11(a)に示すブロック画像を拡大した図である。
【0036】
画像処理部12は、図11(c)に示すように、補正対象画素(注目画素)g0の周囲に位置する画素(たとえば8画素分)を取得する。画像処理部12は、取得した画素のうち、髪の毛色と色相が異なる画素g1〜g4を検出する。画像処理部12は、検出した画素g1〜g4の画素値の平均値を算出し、算出した平均値を補正色とする。画像処理部12は、補正対象画素g0の画素値を、算出した平均値に置換する。これにより、補正対象画素g0が補正色により塗りつぶされる。
【0037】
CPU部13は、画像処理部12に、このように補正対象画素(注目画素)を補正色で置換する補正処理を、注目画素を順にずらしながら実行させ、ステップS11で決定した全ての補正対象画素に対する該補正処理の実行が完了したら、髪の毛補正処理を終了する。
【0038】
この結果、図12に示すように、頭部ラインよりも外側にあった髪の毛が背景色に塗りつぶされ、図3と比較してまとめた髪から跳ねた髪が目立たなくなる。
【0039】
以上説明した実施形態によれば、次の作用効果が得られる。
(1)撮像装置1は、画像から人物の顔を検出する顔検出処理を行うCPU部13と、顔検出処理の結果に基づいて、画像内における、顔部分を含む所定のエリアを顔エリア51として決定するCPU部13と、顔エリア51の外周を含む所定のエリアを髪エリア52として決定するCPU部13と、髪エリア52内の画像に基づいて、頭部の輪郭を示す頭部ライン57を決定するCPU部13と、髪エリア52内の画像において、頭部ライン57に対して顔エリア51の反対側に存在する髪の毛部(すなわち、顔エリア51を内側とした際の頭部ライン57の外側に存在する髪の毛部)を補正する補正処理を行うCPU部13、画像処理部12と、を備えるので、人物の画像で跳ねた髪などを目立たなくすることができる。
【0040】
(2)上記(1)の撮像装置1において、CPU部13は、顔エリア51を所定の比率で拡大したエリアから顔エリア51を除外したエリアを髪エリア52として決定するように構成したので、簡易な処理で、髪エリア52を適切に決定できる。
【0041】
(3)上記(1)または(2)の撮像装置1において、CPU部13は、髪エリア52内の画像に対して、髪の毛部に対するエッジ検出処理と髪の毛部に関する2値化処理とを施し、該エッジ検出処理および該2値化処理の結果に基づいて、頭部ライン57を決定するように構成したので、簡易な処理で、頭部ライン57を適切に決定できる。
【0042】
(4)上記(3)の撮像装置1において、CPU部13は、顔エリア51の略中心51oから外周部へ向かう方向において髪の毛部の色から他の色へ変化する境界のラインであって、エッジ検出処理により抽出されたラインと一致するラインを、頭部ライン57として決定するように構成したので、頭部ライン57を適切に決定できる。
【0043】
(5)上記(1)〜(4)の撮像装置1において、CPU部13、画像処理部12は、髪の毛部を構成する各画素を注目画素とし、該注目画素を中心とする所定の画素領域に含まれる髪の毛部の色と異なる色を示す画素のデータの平均値で該注目画素のデータを置換するように構成したので、適切に、人物の画像で跳ねた髪などを目立たなくすることができる。
【0044】
(6)上記(1)〜(5)の撮像装置1において、顔エリア51内から上方向に向かって顔の色から異なる他の色へ変化した箇所の色を髪の毛部の色として取得するCPU部13をさらに備えるように構成したので、髪の毛部の色を適切に取得できる。
【0045】
(変形例1)
画像全体のサイズに対する顔エリアサイズが、まとめた髪から跳ねた髪を識別するのが困難なほど小さい場合には、髪の毛の補正を行わないようにしてもよい。変形例1のCPU部13は、ステップS3において顔エリアサイズを取得すると、画像全体のサイズに対する顔エリアサイズの比率を算出し、該比率が所定値(たとえば、8分の1)以上か否かを判別する。該比率が所定値未満の場合は、まとめた髪から跳ねた髪を識別するのが困難であることが多い。そのためCPU部13は、該比率が所定値未満の場合は、その後の処理(S5〜S12)をスキップし、髪の毛補正処理を終了する。
【0046】
(変形例2)
頭部ライン57が、あらかじめ登録された髪型パターンと合致するブロックについては、頭部ライン57から外側に存在する髪の毛を補正しないようにしてもよい。この場合、たとえば意図して前髪を立てる髪型やいわゆるモヒカン刈りなどの髪型において、特徴的な部分の輪郭のラインを髪型パターンとしてあらかじめ登録し、登録した髪型パターンのデータを、たとえばROM17などに格納しておく。
【0047】
変形例2のCPU部13は、ステップS10において各ブロック単位で頭部ライン57を決定すると、ROM17から登録された髪型パターンのデータを読み出す。CPU部13は、該データに基づいて、公知のパターンマッチング技術を用いて、各ブロックの頭部ライン57が、あらかじめ登録された髪型パターンと合致するか否かを判定する。CPU部13は、頭部ライン57が、あらかじめ登録された髪型パターンと合致すると判定したブロックについては、ステップS11およびS12を行わないようにする。
【0048】
変形例2によれば、たとえば、意図して立てた前髪やいわゆるモヒカン刈りなどのように、まとまった髪から一部分のみを飛び出させる髪型である場合に、その飛び出した一部分を補正してしまうことを防止することができる。
【0049】
(変形例3)
顔認識処理で特定の人物であると認識した場合に、認識した人物に対応付られている髪型パターンと頭部ライン57が合致するブロックについては、頭部ライン57から外側に存在する髪の毛を補正しないようにしてもよい。
【0050】
この場合、あらかじめ、特定の人物について該人物の顔の特徴量と髪型パターンとを対応付けて登録し、これらのデータをたとえばROM17などに格納しておく。変形例3のCPU部13は、ステップS2において顔検出処理を実行すると、公知の顔認識処理技術を用いて検出した顔の特徴量データと、あらかじめ登録された顔の特徴量データとに基づいて、検出した顔が、あらかじめ登録された人物の顔であるか否かを認識する。
【0051】
上記認識の結果、検出した顔があらかじめ登録された人物の顔であると認識すると、CPU部13は、ステップS10において各ブロック単位で頭部ライン57を決定したのち、該認識した顔に対応付けられている髪型パターンのデータを、ROM17から読み出す。CPU部13は、該データに基づいて、公知のパターンマッチング技術を用いて、各ブロックの頭部ライン57が、該髪型パターンと合致するか否かを判定する。CPU部13は、頭部ライン57が該髪型パターンと合致すると判定したブロックについては、ステップS11およびS12を行わないようにする。
【0052】
変形例3によれば、特定の人物が、たとえば、意図して立てた前髪やモヒカン刈りなどのように、まとまった髪から一部分のみを飛び出させる髪型である場合に、その飛び出した一部分を補正してしまうことを防止することができる。
【0053】
(変形例4)
撮影時の動き検出処理によって動きが検出された画像に対しては、髪の毛の補正を行わないようにしてもよい。一般に、撮影した画像にはExif情報が付加され、動きが検出された画像には上記Exif情報に撮影時に動きがあったことを示す情報が書き込まれる。変形例4のCPU部13は、ステップS2において画像を取得した際、該画像に付加されたExif情報から、撮影時に動きがあったことを示すデータを取得した場合には、その後の処理(S3〜S12)をスキップし、髪の毛補正処理を終了する。変形例4によれば、画像において、撮影時の動き方向に流れている髪の毛が補正されず、動きの自然さを残すことができる。
【0054】
(変形例5)
上述した実施の形態では、1つの顔に対して髪の毛補正処理を行う場合について説明したが、CPU部13は、顔検出処理において複数の顔を検出した場合には、それぞれに対して髪の毛補正処理を行うようにしてもよい。
【0055】
(変形例6)
また、上述した実施の形態では、髪の毛を背景色に補正するエリアを自動で決定する場合について説明したが、操作部15を介してユーザに選択させるようにしてもよい。変形例5のCPU部13は、ステップS10において頭部ライン57を決定すると、モニタ部14に表示させた人物の画像上に頭部ライン57を点滅表示させる。合わせてCPU部13は、髪の毛補正エリア55内のブロックを示すラインを、該画像上に表示させる。
【0056】
ユーザは、操作部15(ボタン、またはタッチパネルの場合にはタッチペンなど)を操作して、髪の毛を補正したくないブロックを選択する。するとCPU部13は、ユーザにより選択操作されたブロック内については、ステップS11およびS12を行わないようにする。これにより、ユーザが所望するエリアの髪の毛のみを、簡易な操作で補正することができる。
【0057】
また、このように髪の毛を補正するエリアをユーザが選択するか、または上述した実施の形態のように自動で決定するかの設定を、髪の毛補正処理を実行する前に、操作部15を介してユーザに行わせるようにしてもよい。
【0058】
(変形例7)
髪の毛補正処理を実行する前に、ユーザが操作部15を介して、髪の毛補正処理における補正強度や補正パターンを設定し得るように構成してもよい。ここで補正強度とは、たとえば、エッジ検出処理(S8)や2値化処理(S9)の際の強度のことを意味し、具体的にはエッジを検出するレベルや2値化のレベルのことをいう。これらのレベルの大小、すなわち補正強度をユーザに指定させる。また、補正パターンとは、画像に対して髪の毛補正処理を実行する領域のことをいう。たとえば、画像全体に対して髪の毛補正処理を実行する「全パターン」と、画像の上半分の領域に対してのみ髪の毛補正処理を実行する「上パターン」とのいずれかをユーザに選択させる。
【0059】
(変形例8)
髪の毛補正処理に適した画像が得られるように、撮影時の露出やホワイトバランスなどの画像処理方法を変化させるようにしてもよい。たとえば、撮影時の露出がオーバー気味の場合には、アンダー補正を行ってから髪の毛補正処理を行うとよい。
【0060】
(変形例9)
顔検出処理によって取得した性別や年齢から、髪の毛補正処理における補正強度や補正範囲を変化させるようにしてもよい。たとえば、一般的に、男性は髪が短く女性は髪が長い場合が多いことが想定されるので、CPU部13は、性別が男性であると判別した場合には、顔エリア51よりも上側部分のみを補正範囲とし、性別が女性であると判別した場合には、画像全体を補正範囲とするようにしてもよい。
【0061】
また、一般的に、大人は子供よりも髪の毛を補正したいと考える場合が多いことが想定されるので、CPU部13は、年齢が大人であると判別した場合には補正強度を高くし、年齢が子供であると判別した場合には補正強度を低くするようにしてもよい。
【0062】
(変形例10)
上述したステップS6において髪の毛色を取得できなかった場合には、髪の毛がなかったり帽子を被っていたりするなどの可能性があるため、CPU部13は、その後の処理(S7〜S12)をスキップし、髪の毛補正処理を終了するようにしてもよい。
【0063】
(変形例11)
髪の毛色を取得する際、ヘアアクセサリなどを装着している場合を考慮するようにしてもよい。変形例11のCPU部13は、ステップS6において、ライン54から上方向に画素ごとの色相を検出し、色相が肌色から異なる色へ変化する画素を検出すると、検出した画素の色相が、顔エリア51の上部まで連続するか否かを判定する。
【0064】
ここで肯定判定した場合のCPU部13は、検出した画素の色相が髪の毛色であると決定する。一方、否定判定した場合のCPU部13は、検出した画素の色相が髪の毛色ではないと決定する。
【0065】
このときCPU部13は、検出した画素からさらに上方向に画素ごとの色相を検出していき、色相が再度変化する画素を検出する。そして、ここで検出した画素の色相が顔エリア51の上部まで連続している場合には、この色相を髪の毛色として決定する。変形例11によれば、たとえばヘアバンドなどのヘアアクセサリを装着している場合であっても、髪の毛色を正確に取得することができる。
【0066】
(変形例12)
髪の毛が、まとめた髪から跳ねる髪が発生しないほどの短さである場合(たとえば、丸刈りやスポーツカットなどの髪型である場合)には、髪の毛の補正を行わないようにしてもよい。
【0067】
変形例12のCPU部13は、ステップS8において髪の毛補正エリア55に対するエッジ検出処理を実行すると、該エッジ検出処理により抽出されたエッジごとに、エッジを構成するライン(エッジライン)の長さを検出し、エッジラインの長さの平均値を算出する。該平均値が所定値未満である場合は、短い髪の毛全体が立ち上がったような髪型(たとえば、丸刈りやスポーツカットなど)であることが多いので、このような短い髪の毛をまとめた髪から跳ねた髪であると認識するのは適切ではない。そのため、CPU部13は、該平均値が所定値未満である場合には、その後の処理(S9〜S12)をスキップし、髪の毛補正処理を終了する。変形例12によれば、長さが短い髪の毛を、まとめた髪から跳ねた髪であると誤認識して補正してしまうのを防止することができる。
【0068】
(変形例13)
顔検出処理によって年齢が高齢であると判別された場合、ステップS11においてCPU部13は、ステップS6において取得した髪の毛色に加え、白髪色(白またはグレー)である画素も、補正対象画素として検出して、背景色で補正するようにしてもよい。
【0069】
(変形例14)
画像の解像度が、跳ねた髪を識別するのが困難なほど小さい場合には、髪の毛の補正を行わないようにしてもよい。変形例14のCPU部13は、ステップS2において画像を取得した際、該画像に付加されたExif情報に基づいて該画像の解像度を取得する。該解像度が所定値未満の場合、跳ねた髪を識別するのが困難であることが多い。そのためCPU部13は、該解像度が所定値未満である場合には、その後の処理(S3〜S12)をスキップし、髪の毛補正処理を終了する。
【0070】
(変形例15)
上述した実施の形態では、画像の撮影時に髪の毛補正処理を行うようにしたが、外部メモリ30から画像を読み出して再生表示する際に、再生表示する画像に対して髪の毛補正処理を行うようにしてもよい。
【0071】
(変形例16)
上述した実施形態では、撮像装置1のCPU部13が髪の毛補正処理を行う例を説明したが、髪の毛補正処理をコンピュータに行わせるように構成するようにしてもよい。図2に例示したフローチャートに基づく処理を行うプログラムを図13に示すコンピュータ100に実行させることにより、髪の毛補正処理を行う画像処理装置を構成する。プログラムをコンピュータ100に取込んで使用する場合には、コンピュータ100のデータストレージ装置にプログラムをローディングした上で、当該プログラムを実行させる。
【0072】
コンピュータ100に対するプログラムのローディングは、プログラムを格納したCD−ROMなどの記憶媒体104をコンピュータ100にセットして行ってもよいし、ネットワークなどの通信回線101を経由する方法でコンピュータ100へローディングしてもよい。通信回線101を経由する場合は、通信回線101に接続されたサーバー(コンピュータ)102のストレージ装置103などにプログラムを格納しておく。プログラムは、記憶媒体や通信回線を介する提供など、種々の形態のコンピュータプログラム製品として供給することができる。
【0073】
なお、コンピュータ100で画像処理装置を構成する場合は、ステップS1に代えて、人物を撮影した画像が記録された記録媒体から、該画像を読みだす。そしてコンピュータ100は、ステップS2以降の処理を行う。
【0074】
以上説明した変形例16によれば、上記実施形態と同様の作用効果が得られる。なお、パーソナルコンピュータによって構成する他にも、デジタルフォトフレームやプロジェクタ等にも上述した髪の毛補正処理をさせるように構成して構わない。
【0075】
以上の説明はあくまで一例であり、上記の実施形態の構成に何ら限定されるものではない。また、上記実施形態に各変形例の構成を適宜組み合わせてもかまわない。
【符号の説明】
【0076】
1…撮像装置
12…画像処理部
13…CPU部
14…モニタ部
15…操作部
17…ROM
100…コンピュータ
【技術分野】
【0001】
本発明は、画像処理装置および画像処理プログラムに関する。
【背景技術】
【0002】
人物画像の髪領域を検出する技術が知られている(特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2005−339522号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ポートレート写真のように人物をアップで撮影した場合に、まとめた髪から跳ねて目立つ短い髪が気になる場合がある。上述した技術では、まとめた髪から跳ねた髪を目立たなくすることへの適用が困難であった。
【課題を解決するための手段】
【0005】
(1)請求項1に記載の発明による画像処理装置は、画像から人物の顔を検出する顔検出処理を行う顔検出処理部と、顔検出処理の結果に基づいて、画像内における、顔部分を含む所定のエリアを顔エリアとして決定する顔エリア決定部と、顔エリアの外周を含む所定のエリアを髪エリアとして決定する髪エリア決定部と、髪エリア内の画像に基づいて、頭部の輪郭を示す頭部ラインを決定する頭部ライン決定部と、髪エリア内の画像において、頭部ラインに対して顔エリアの反対側に存在する髪の毛部を補正する補正処理を行う補正処理部と、を備えることを特徴とする。
(2)請求項11に記載の発明による画像処理プログラムは、画像から人物の顔を検出する顔検出処理と、顔検出処理の結果に基づいて、画像内における、顔部分を含む所定のエリアを顔エリアとして決定する顔エリア決定処理と、顔エリアの外周を含む所定のエリアを髪エリアとして決定する髪エリア決定処理と、髪エリア内の画像に基づいて、頭部の輪郭を示す頭部ラインを決定する頭部ライン決定処理と、髪エリア内の画像において、頭部ラインに対して顔エリアの反対側に存在する髪の毛部を補正する補正処理と、をコンピュータに実行させることを特徴とする。
【発明の効果】
【0006】
本発明によれば、人物の画像で跳ねた髪などを目立たなくすることができる。
【図面の簡単な説明】
【0007】
【図1】本発明の一実施の形態による撮像装置の構成例を説明するブロック図である。
【図2】CPUが実行する処理の流れを説明するフローチャートである。
【図3】人物の画像を例示する図である。
【図4】顔エリアを説明する図である。
【図5】髪エリアを説明する図である。
【図6】ブロック群を説明する図である。
【図7】髪の毛色の取得に関して説明する図である。
【図8】髪の毛補正エリアを説明する図である。
【図9】頭部ラインの決定に関して説明する図である。
【図10】補正対象画素の決定に関して説明する図である。
【図11】補正対象画素の置換処理に関して説明する図である。
【図12】髪の毛補正処理の結果を例示する図である。
【図13】コンピュータを例示する図である。
【発明を実施するための形態】
【0008】
以下、図面を参照して本発明を実施するための形態について説明する。図1は、本発明の一実施の形態による撮像装置1の構成例を説明するブロック図である。図1において、撮像装置1は、撮像部11と、画像処理部12と、CPU部13と、モニタ部14と、操作部15と、アクセス部16と、ROM17と、内蔵メモリ18とを備える。
【0009】
撮像部11は、撮影光学系11Aと、撮像素子11Bとを含む。撮影光学系11Aは、ズームレンズやフォーカシングレンズを含む複数のレンズ群で構成され、被写体像を撮像素子11Bの受光面に結像させる。なお、図1を簡単にするため、撮影光学系11Aを単レンズとして図示している。
【0010】
撮像素子11Bは、画素を構成する受光素子のフォトダイオードが受光面に二次元配列されたCMOSイメージセンサなどによって構成される。撮像素子11Bは、撮影光学系11Aを通過した光束による像を光電変換し、デジタル画像データを生成する。なお、撮像素子11Bで取得される画像から色情報が得られるように、撮像素子11Bの受光面には画素位置に対応させてR色、G色およびB色のカラーフィルタ(不図示)が設けられている。
【0011】
撮像素子11Bにより生成されたデジタル画像データは、画像処理部12に入力される。画像処理部12は、デジタル画像データに対して各種の画像処理(色補間処理、階調変換処理、輪郭強調処理、ホワイトバランス調整処理など)を施す。
【0012】
モニタ部14は液晶パネルなどによって構成される。モニタ部14は、CPU部13からの指示に応じて画像や操作アイコン、メニュー画面などを表示する。内蔵メモリ18は、画像処理部12による画像処理の前工程や後工程でのデジタル画像データを一時的に記憶する他、CPU部13によるプログラム実行時に用いられる。ROM17は、CPU部13が実行するプログラムなどを記憶する。
【0013】
CPU部13は、ROM17が記憶するプログラムを実行することにより、撮像装置1が行う動作を制御する。アクセス部16はコネクタ(不図示)を有し、該コネクタに外部メモリ30が接続される。アクセス部16は、接続された外部メモリ30に対するデータの書き込みや、外部メモリ30からのデータの読み込みを行う。外部メモリ30は、半導体メモリを内蔵したメモリカードなどで構成される。
【0014】
操作部15は、レリーズボタンやメニュースイッチなどを含む。操作部15は、撮影操作、モード切替え操作やアイコン選択操作など、各操作に応じた操作信号をCPU部13へ送出する。
【0015】
CPU部13は、顔検出処理を実行する顔検出部13Aと、髪の毛補正処理を実行する髪の毛補正部13Bとを有する。顔検出とは、画像に含まれる人物の顔領域を検出することをいう。髪の毛補正とは、たとえば、まとめた髪から跳ねている毛を目立たなくすることをいう。本発明は髪の毛補正部13Bが行う髪の毛補正処理に特徴を有するので、以降は髪の毛補正処理を中心に説明する。
【0016】
図2は、CPU部13が実行する髪の毛補正処理の流れを説明するフローチャートである。CPU部13は、たとえば、髪の毛補正処理を行う旨の設定がなされている状態で、撮影操作が行われると、図2の処理を行うプログラムを起動する。図2による髪の毛補正処理の概要は以下の通りである。なお、各ステップの詳細については後述する。
【0017】
ステップS1において、CPU部13は、撮像部11により撮像された画像を取得して、ステップS2へ進む。ステップS2において、CPU部13は、撮像された画像に対して顔検出処理を実行して、ステップS3へ進む。
【0018】
ステップS3において、CPU部13は、顔検出処理の結果に基づいて、画像に含まれる人物の顔部分を含む所定の領域(顔エリア)を取得し、ステップS4へ進む。ステップS4において、CPU部13は、取得した顔エリアのサイズに基づいて、人物の髪の毛およびその背景を含む領域(髪エリア)のサイズを決定し、ステップS5へ進む。
【0019】
ステップS5において、CPU部13は、決定した髪エリアのサイズに基づいて髪エリアを決定し、ステップS6へ進む。ステップS6において、CPU部13は、ステップS3で取得した顔エリアから髪の毛色を取得して、ステップS7へ進む。
【0020】
ステップS7において、CPU部13は、ステップS5で決定した髪エリア内において、髪の毛色と背景色(髪の毛色および肌色以外の色)とを含むエリアを髪の毛補正エリアとして決定して、ステップS8へ進む。
【0021】
ステップS8において、CPU部13は、決定した髪の毛補正エリアに対し、髪の毛色に対するエッジ検出処理を施してステップS9へ進む。ステップS9において、CPU部13は、髪の毛補正エリアに対し、髪の毛色と他の色とで2値化処理を施して、ステップS10へ進む。
【0022】
ステップS10において、CPU部13は、エッジ検出処理および2値化処理の結果に基づいて、人物の頭部の輪郭を示すライン(頭部ライン)を決定し、ステップS11へ進む。ステップS11において、CPU部13は、髪の毛補正エリア内において、頭部ラインの外側に位置し、且つ色相が髪の毛色である画素を補正対象画素として検出して、ステップS12へ進む。
【0023】
ステップS12において、CPU部13は画像処理部12に指示を送り、補正対象画素を背景色に置換する画像処理を行わせ、髪の毛補正処理を終了する。
【0024】
次に上述した髪の毛補正処理の詳細について具体的に説明する。ここでは一例として、図3に示す画像に対して髪の毛補正処理を行う場合を説明する。CPU部13の顔検出部13Aは、髪の毛補正処理の開始後の上記ステップS2において、画像に対して顔検出処理を実行する。なお、顔検出処理は公知の技術を用いるため、詳細な説明は省略する。
【0025】
上記顔エリアの取得(S3)の詳細について、図4を参照して説明する。CPU部13は、たとえば顔検出処理によって検出した顔部分と色相が共通する領域、すなわち肌色を構成する領域の横方向および縦方向の最大サイズのエリアを顔エリア51とし、この顔エリア51のサイズを顔エリアサイズとして取得する。なお、肌色は、RGBデータのR/G、B/Gの値に基づいて判定する。またCPU部13は、顔エリア51内における、目、鼻、口などの各パーツの位置情報を取得する。さらにCPU部13は、人物の性別および年齢を判別して、性別情報および年齢情報を取得する。
【0026】
CPU部13は、顔エリアサイズに基づいて、図5に示すように髪エリア52を決定する。具体的にCPU部13は、上記顔エリアサイズを所定の比率(たとえば横方向が1.5倍、縦方向が2倍)で拡大したサイズを髪エリアサイズとする(S4)。CPU部13は、顔エリア51を中心とした髪エリアサイズの矩形により囲まれるエリアから顔エリア51を除外したエリアを、髪エリア52として決定する。なお、撮像した画像からはみだす範囲は、髪エリア52から除かれる。
【0027】
CPU部13は、図6に示すように、決定した髪エリア52を複数のブロック群53に分割する。具体的にCPU部13は、顔エリアサイズを所定の比率(たとえば、横方向が4分の1倍、縦方向が6分の1倍)で縮小したサイズをブロックサイズとして、髪エリア52を複数のブロック群53に分割する。CPU部13は、このブロック群53を構成する各ブロック単位で、上述したエッジ検出処理(S8)、2値化処理(S9)、頭部ライン決定処理(S10)、補正対象画素の決定処理(S11)などを行う。
【0028】
CPU部13は、髪の毛色の取得(S6)を以下のように行う。すなわちCPU部13は、顔検出処理の結果に基づいて、図7に示すように顔エリア51内における左右の目の上部を結ぶ横方向のライン54を検出する。CPU部13は、ライン54から上方向に画素ごとの色相を検出し、色相が肌色から異なる色へ変化する画素を検出する。CPU部13は、検出した画素の色相を髪の毛色として取得する。
【0029】
CPU部13は、髪の毛補正エリアの決定(S7)を以下のように行う。すなわちCPU部13は、髪エリア52において、1つのブロック内に色相が髪の毛色である画素と色相が背景色である画素とを有するエリアを髪の毛補正エリア55として決定する。図8に、髪の毛補正エリア55を例示する。
【0030】
CPU部13は、画像に対し、髪の毛補正エリア55内の各ブロック単位で、エッジ検出処理を行う(S8)。図9(a)は、あるブロックを拡大した画像を示す図であり、図9(b)は、図9(a)のブロック画像に対してエッジ検出処理を行って得られた画像を示す図である。エッジ検出処理では、髪の毛色から他の色へ変化するエッジを検出する。これによりCPU部13は、画像から、髪の毛色が連続するラインを抽出する。
【0031】
またCPU部13は、画像に対し、髪の毛補正エリア55内の各ブロック単位で、2値化処理を行う(S9)。図9(c)は、図9(a)のブロック画像に対して2値化処理を行って得られた画像を示す図である。2値化処理では、髪の毛色および他の色で2値化を行う。これによりCPU部13は、画像から、髪の毛部分を抽出する。
【0032】
CPU部13は、頭部ラインの決定(S10)を以下のように行う。すなわち、CPU部13は、2値化処理(S9)の結果に基づいて、図9(d)に示すように、顔エリア51の中心51oから補正エリア55の外周部へ向かう方向56において、色相が髪の毛色から他の色へ変化する画素を検出する。これにより、髪の毛部分のうち、髪の毛が頭部でまとまっている部分の境界が抽出される。
【0033】
そしてCPU部13は、ここで検出した画素が形成するラインであって、且つエッジ検出処理(S8)により抽出したラインと一致するラインを取得する。CPU部13は、この取得したラインを頭部ラインとして決定する。図9(e)に、頭部ライン57を例示する。なお、CPU部13は、各ブロック単位で頭部ライン57の決定を行う。
【0034】
CPU部13は、補正対象画素の決定(S11)を以下のように行う。CPU部13は、図10に示すように、髪の毛補正エリア55内で顔エリア51を内側とした際の頭部ライン57よりも外側のエリアを外部エリア58とする。CPU部13は、外部エリア58内に位置し、且つ髪の毛色と色相が一致する画素を抽出する。これにより、まとめた髪から跳ねた髪を構成している画素が抽出される。CPU部13は、このように抽出した画素を、補正対象画素として決定する。なお、CPU部13は、各ブロック単位で補正対象画素の決定を行う。
【0035】
CPU部13は、補正対象画素を決定すると、画像処理部12に指示を送り、補正対象画素を背景色に置換する処理を以下のように行わせる(S12)。図11(a)は、補正対象画素を含むブロック画像を例示する図である。図11(b)は、図11(a)に示すブロック画像を拡大した図である。
【0036】
画像処理部12は、図11(c)に示すように、補正対象画素(注目画素)g0の周囲に位置する画素(たとえば8画素分)を取得する。画像処理部12は、取得した画素のうち、髪の毛色と色相が異なる画素g1〜g4を検出する。画像処理部12は、検出した画素g1〜g4の画素値の平均値を算出し、算出した平均値を補正色とする。画像処理部12は、補正対象画素g0の画素値を、算出した平均値に置換する。これにより、補正対象画素g0が補正色により塗りつぶされる。
【0037】
CPU部13は、画像処理部12に、このように補正対象画素(注目画素)を補正色で置換する補正処理を、注目画素を順にずらしながら実行させ、ステップS11で決定した全ての補正対象画素に対する該補正処理の実行が完了したら、髪の毛補正処理を終了する。
【0038】
この結果、図12に示すように、頭部ラインよりも外側にあった髪の毛が背景色に塗りつぶされ、図3と比較してまとめた髪から跳ねた髪が目立たなくなる。
【0039】
以上説明した実施形態によれば、次の作用効果が得られる。
(1)撮像装置1は、画像から人物の顔を検出する顔検出処理を行うCPU部13と、顔検出処理の結果に基づいて、画像内における、顔部分を含む所定のエリアを顔エリア51として決定するCPU部13と、顔エリア51の外周を含む所定のエリアを髪エリア52として決定するCPU部13と、髪エリア52内の画像に基づいて、頭部の輪郭を示す頭部ライン57を決定するCPU部13と、髪エリア52内の画像において、頭部ライン57に対して顔エリア51の反対側に存在する髪の毛部(すなわち、顔エリア51を内側とした際の頭部ライン57の外側に存在する髪の毛部)を補正する補正処理を行うCPU部13、画像処理部12と、を備えるので、人物の画像で跳ねた髪などを目立たなくすることができる。
【0040】
(2)上記(1)の撮像装置1において、CPU部13は、顔エリア51を所定の比率で拡大したエリアから顔エリア51を除外したエリアを髪エリア52として決定するように構成したので、簡易な処理で、髪エリア52を適切に決定できる。
【0041】
(3)上記(1)または(2)の撮像装置1において、CPU部13は、髪エリア52内の画像に対して、髪の毛部に対するエッジ検出処理と髪の毛部に関する2値化処理とを施し、該エッジ検出処理および該2値化処理の結果に基づいて、頭部ライン57を決定するように構成したので、簡易な処理で、頭部ライン57を適切に決定できる。
【0042】
(4)上記(3)の撮像装置1において、CPU部13は、顔エリア51の略中心51oから外周部へ向かう方向において髪の毛部の色から他の色へ変化する境界のラインであって、エッジ検出処理により抽出されたラインと一致するラインを、頭部ライン57として決定するように構成したので、頭部ライン57を適切に決定できる。
【0043】
(5)上記(1)〜(4)の撮像装置1において、CPU部13、画像処理部12は、髪の毛部を構成する各画素を注目画素とし、該注目画素を中心とする所定の画素領域に含まれる髪の毛部の色と異なる色を示す画素のデータの平均値で該注目画素のデータを置換するように構成したので、適切に、人物の画像で跳ねた髪などを目立たなくすることができる。
【0044】
(6)上記(1)〜(5)の撮像装置1において、顔エリア51内から上方向に向かって顔の色から異なる他の色へ変化した箇所の色を髪の毛部の色として取得するCPU部13をさらに備えるように構成したので、髪の毛部の色を適切に取得できる。
【0045】
(変形例1)
画像全体のサイズに対する顔エリアサイズが、まとめた髪から跳ねた髪を識別するのが困難なほど小さい場合には、髪の毛の補正を行わないようにしてもよい。変形例1のCPU部13は、ステップS3において顔エリアサイズを取得すると、画像全体のサイズに対する顔エリアサイズの比率を算出し、該比率が所定値(たとえば、8分の1)以上か否かを判別する。該比率が所定値未満の場合は、まとめた髪から跳ねた髪を識別するのが困難であることが多い。そのためCPU部13は、該比率が所定値未満の場合は、その後の処理(S5〜S12)をスキップし、髪の毛補正処理を終了する。
【0046】
(変形例2)
頭部ライン57が、あらかじめ登録された髪型パターンと合致するブロックについては、頭部ライン57から外側に存在する髪の毛を補正しないようにしてもよい。この場合、たとえば意図して前髪を立てる髪型やいわゆるモヒカン刈りなどの髪型において、特徴的な部分の輪郭のラインを髪型パターンとしてあらかじめ登録し、登録した髪型パターンのデータを、たとえばROM17などに格納しておく。
【0047】
変形例2のCPU部13は、ステップS10において各ブロック単位で頭部ライン57を決定すると、ROM17から登録された髪型パターンのデータを読み出す。CPU部13は、該データに基づいて、公知のパターンマッチング技術を用いて、各ブロックの頭部ライン57が、あらかじめ登録された髪型パターンと合致するか否かを判定する。CPU部13は、頭部ライン57が、あらかじめ登録された髪型パターンと合致すると判定したブロックについては、ステップS11およびS12を行わないようにする。
【0048】
変形例2によれば、たとえば、意図して立てた前髪やいわゆるモヒカン刈りなどのように、まとまった髪から一部分のみを飛び出させる髪型である場合に、その飛び出した一部分を補正してしまうことを防止することができる。
【0049】
(変形例3)
顔認識処理で特定の人物であると認識した場合に、認識した人物に対応付られている髪型パターンと頭部ライン57が合致するブロックについては、頭部ライン57から外側に存在する髪の毛を補正しないようにしてもよい。
【0050】
この場合、あらかじめ、特定の人物について該人物の顔の特徴量と髪型パターンとを対応付けて登録し、これらのデータをたとえばROM17などに格納しておく。変形例3のCPU部13は、ステップS2において顔検出処理を実行すると、公知の顔認識処理技術を用いて検出した顔の特徴量データと、あらかじめ登録された顔の特徴量データとに基づいて、検出した顔が、あらかじめ登録された人物の顔であるか否かを認識する。
【0051】
上記認識の結果、検出した顔があらかじめ登録された人物の顔であると認識すると、CPU部13は、ステップS10において各ブロック単位で頭部ライン57を決定したのち、該認識した顔に対応付けられている髪型パターンのデータを、ROM17から読み出す。CPU部13は、該データに基づいて、公知のパターンマッチング技術を用いて、各ブロックの頭部ライン57が、該髪型パターンと合致するか否かを判定する。CPU部13は、頭部ライン57が該髪型パターンと合致すると判定したブロックについては、ステップS11およびS12を行わないようにする。
【0052】
変形例3によれば、特定の人物が、たとえば、意図して立てた前髪やモヒカン刈りなどのように、まとまった髪から一部分のみを飛び出させる髪型である場合に、その飛び出した一部分を補正してしまうことを防止することができる。
【0053】
(変形例4)
撮影時の動き検出処理によって動きが検出された画像に対しては、髪の毛の補正を行わないようにしてもよい。一般に、撮影した画像にはExif情報が付加され、動きが検出された画像には上記Exif情報に撮影時に動きがあったことを示す情報が書き込まれる。変形例4のCPU部13は、ステップS2において画像を取得した際、該画像に付加されたExif情報から、撮影時に動きがあったことを示すデータを取得した場合には、その後の処理(S3〜S12)をスキップし、髪の毛補正処理を終了する。変形例4によれば、画像において、撮影時の動き方向に流れている髪の毛が補正されず、動きの自然さを残すことができる。
【0054】
(変形例5)
上述した実施の形態では、1つの顔に対して髪の毛補正処理を行う場合について説明したが、CPU部13は、顔検出処理において複数の顔を検出した場合には、それぞれに対して髪の毛補正処理を行うようにしてもよい。
【0055】
(変形例6)
また、上述した実施の形態では、髪の毛を背景色に補正するエリアを自動で決定する場合について説明したが、操作部15を介してユーザに選択させるようにしてもよい。変形例5のCPU部13は、ステップS10において頭部ライン57を決定すると、モニタ部14に表示させた人物の画像上に頭部ライン57を点滅表示させる。合わせてCPU部13は、髪の毛補正エリア55内のブロックを示すラインを、該画像上に表示させる。
【0056】
ユーザは、操作部15(ボタン、またはタッチパネルの場合にはタッチペンなど)を操作して、髪の毛を補正したくないブロックを選択する。するとCPU部13は、ユーザにより選択操作されたブロック内については、ステップS11およびS12を行わないようにする。これにより、ユーザが所望するエリアの髪の毛のみを、簡易な操作で補正することができる。
【0057】
また、このように髪の毛を補正するエリアをユーザが選択するか、または上述した実施の形態のように自動で決定するかの設定を、髪の毛補正処理を実行する前に、操作部15を介してユーザに行わせるようにしてもよい。
【0058】
(変形例7)
髪の毛補正処理を実行する前に、ユーザが操作部15を介して、髪の毛補正処理における補正強度や補正パターンを設定し得るように構成してもよい。ここで補正強度とは、たとえば、エッジ検出処理(S8)や2値化処理(S9)の際の強度のことを意味し、具体的にはエッジを検出するレベルや2値化のレベルのことをいう。これらのレベルの大小、すなわち補正強度をユーザに指定させる。また、補正パターンとは、画像に対して髪の毛補正処理を実行する領域のことをいう。たとえば、画像全体に対して髪の毛補正処理を実行する「全パターン」と、画像の上半分の領域に対してのみ髪の毛補正処理を実行する「上パターン」とのいずれかをユーザに選択させる。
【0059】
(変形例8)
髪の毛補正処理に適した画像が得られるように、撮影時の露出やホワイトバランスなどの画像処理方法を変化させるようにしてもよい。たとえば、撮影時の露出がオーバー気味の場合には、アンダー補正を行ってから髪の毛補正処理を行うとよい。
【0060】
(変形例9)
顔検出処理によって取得した性別や年齢から、髪の毛補正処理における補正強度や補正範囲を変化させるようにしてもよい。たとえば、一般的に、男性は髪が短く女性は髪が長い場合が多いことが想定されるので、CPU部13は、性別が男性であると判別した場合には、顔エリア51よりも上側部分のみを補正範囲とし、性別が女性であると判別した場合には、画像全体を補正範囲とするようにしてもよい。
【0061】
また、一般的に、大人は子供よりも髪の毛を補正したいと考える場合が多いことが想定されるので、CPU部13は、年齢が大人であると判別した場合には補正強度を高くし、年齢が子供であると判別した場合には補正強度を低くするようにしてもよい。
【0062】
(変形例10)
上述したステップS6において髪の毛色を取得できなかった場合には、髪の毛がなかったり帽子を被っていたりするなどの可能性があるため、CPU部13は、その後の処理(S7〜S12)をスキップし、髪の毛補正処理を終了するようにしてもよい。
【0063】
(変形例11)
髪の毛色を取得する際、ヘアアクセサリなどを装着している場合を考慮するようにしてもよい。変形例11のCPU部13は、ステップS6において、ライン54から上方向に画素ごとの色相を検出し、色相が肌色から異なる色へ変化する画素を検出すると、検出した画素の色相が、顔エリア51の上部まで連続するか否かを判定する。
【0064】
ここで肯定判定した場合のCPU部13は、検出した画素の色相が髪の毛色であると決定する。一方、否定判定した場合のCPU部13は、検出した画素の色相が髪の毛色ではないと決定する。
【0065】
このときCPU部13は、検出した画素からさらに上方向に画素ごとの色相を検出していき、色相が再度変化する画素を検出する。そして、ここで検出した画素の色相が顔エリア51の上部まで連続している場合には、この色相を髪の毛色として決定する。変形例11によれば、たとえばヘアバンドなどのヘアアクセサリを装着している場合であっても、髪の毛色を正確に取得することができる。
【0066】
(変形例12)
髪の毛が、まとめた髪から跳ねる髪が発生しないほどの短さである場合(たとえば、丸刈りやスポーツカットなどの髪型である場合)には、髪の毛の補正を行わないようにしてもよい。
【0067】
変形例12のCPU部13は、ステップS8において髪の毛補正エリア55に対するエッジ検出処理を実行すると、該エッジ検出処理により抽出されたエッジごとに、エッジを構成するライン(エッジライン)の長さを検出し、エッジラインの長さの平均値を算出する。該平均値が所定値未満である場合は、短い髪の毛全体が立ち上がったような髪型(たとえば、丸刈りやスポーツカットなど)であることが多いので、このような短い髪の毛をまとめた髪から跳ねた髪であると認識するのは適切ではない。そのため、CPU部13は、該平均値が所定値未満である場合には、その後の処理(S9〜S12)をスキップし、髪の毛補正処理を終了する。変形例12によれば、長さが短い髪の毛を、まとめた髪から跳ねた髪であると誤認識して補正してしまうのを防止することができる。
【0068】
(変形例13)
顔検出処理によって年齢が高齢であると判別された場合、ステップS11においてCPU部13は、ステップS6において取得した髪の毛色に加え、白髪色(白またはグレー)である画素も、補正対象画素として検出して、背景色で補正するようにしてもよい。
【0069】
(変形例14)
画像の解像度が、跳ねた髪を識別するのが困難なほど小さい場合には、髪の毛の補正を行わないようにしてもよい。変形例14のCPU部13は、ステップS2において画像を取得した際、該画像に付加されたExif情報に基づいて該画像の解像度を取得する。該解像度が所定値未満の場合、跳ねた髪を識別するのが困難であることが多い。そのためCPU部13は、該解像度が所定値未満である場合には、その後の処理(S3〜S12)をスキップし、髪の毛補正処理を終了する。
【0070】
(変形例15)
上述した実施の形態では、画像の撮影時に髪の毛補正処理を行うようにしたが、外部メモリ30から画像を読み出して再生表示する際に、再生表示する画像に対して髪の毛補正処理を行うようにしてもよい。
【0071】
(変形例16)
上述した実施形態では、撮像装置1のCPU部13が髪の毛補正処理を行う例を説明したが、髪の毛補正処理をコンピュータに行わせるように構成するようにしてもよい。図2に例示したフローチャートに基づく処理を行うプログラムを図13に示すコンピュータ100に実行させることにより、髪の毛補正処理を行う画像処理装置を構成する。プログラムをコンピュータ100に取込んで使用する場合には、コンピュータ100のデータストレージ装置にプログラムをローディングした上で、当該プログラムを実行させる。
【0072】
コンピュータ100に対するプログラムのローディングは、プログラムを格納したCD−ROMなどの記憶媒体104をコンピュータ100にセットして行ってもよいし、ネットワークなどの通信回線101を経由する方法でコンピュータ100へローディングしてもよい。通信回線101を経由する場合は、通信回線101に接続されたサーバー(コンピュータ)102のストレージ装置103などにプログラムを格納しておく。プログラムは、記憶媒体や通信回線を介する提供など、種々の形態のコンピュータプログラム製品として供給することができる。
【0073】
なお、コンピュータ100で画像処理装置を構成する場合は、ステップS1に代えて、人物を撮影した画像が記録された記録媒体から、該画像を読みだす。そしてコンピュータ100は、ステップS2以降の処理を行う。
【0074】
以上説明した変形例16によれば、上記実施形態と同様の作用効果が得られる。なお、パーソナルコンピュータによって構成する他にも、デジタルフォトフレームやプロジェクタ等にも上述した髪の毛補正処理をさせるように構成して構わない。
【0075】
以上の説明はあくまで一例であり、上記の実施形態の構成に何ら限定されるものではない。また、上記実施形態に各変形例の構成を適宜組み合わせてもかまわない。
【符号の説明】
【0076】
1…撮像装置
12…画像処理部
13…CPU部
14…モニタ部
15…操作部
17…ROM
100…コンピュータ
【特許請求の範囲】
【請求項1】
画像から人物の顔を検出する顔検出処理を行う顔検出処理部と、
前記顔検出処理の結果に基づいて、前記画像内における、前記顔部分を含む所定のエリアを顔エリアとして決定する顔エリア決定部と、
前記顔エリアの外周を含む所定のエリアを髪エリアとして決定する髪エリア決定部と、
前記髪エリア内の画像に基づいて、頭部の輪郭を示す頭部ラインを決定する頭部ライン決定部と、
前記髪エリア内の画像において、前記頭部ラインに対して前記顔エリアの反対側に存在する髪の毛部を補正する補正処理を行う補正処理部と、
を備えることを特徴とする画像処理装置。
【請求項2】
請求項1に記載の画像処理装置において、
前記髪エリア決定部は、前記顔エリアを所定の比率で拡大したエリアから前記顔エリアを除外したエリアを前記髪エリアとして決定することを特徴とする画像処理装置。
【請求項3】
請求項1または2に記載の画像処理装置において、
前記頭部ライン決定部は、前記髪エリア内の画像に対して、前記髪の毛部に対するエッジ検出処理と前記髪の毛部に関する2値化処理とを施し、該エッジ検出処理および該2値化処理の結果に基づいて、前記頭部ラインを決定することを特徴とする画像処理装置。
【請求項4】
請求項3に記載の画像処理装置において、
前記頭部ライン決定部は、前記顔エリアの略中心から外周部へ向かう方向において前記髪の毛部の色から他の色へ変化する境界のラインであって、前記エッジ検出処理により抽出されたラインと一致するラインを、前記頭部ラインとして決定することを特徴とする画像処理装置。
【請求項5】
請求項1〜4のいずれか一項に記載の画像処理装置において、
前記補正処理部は、前記髪の毛部を構成する各画素を注目画素とし、該注目画素を中心とする所定の画素領域に含まれる前記髪の毛部の色と異なる色を示す画素のデータの平均値で該注目画素のデータを置換することを特徴とする画像処理装置。
【請求項6】
請求項1〜5のいずれか一項に記載の画像処理装置において、
前記顔エリア内から上方向に向かって前記顔の色から異なる他の色へ変化した箇所の色を前記髪の毛部の色として取得する髪の毛色取得部をさらに備えることを特徴とする画像処理装置。
【請求項7】
請求項1〜6のいずれか一項に記載の画像処理装置において、
前記補正処理部は、前記画像全体に対する前記顔エリアの比率が所定値未満の場合は前記補正処理を禁止することを特徴とする画像処理装置。
【請求項8】
請求項1〜6のいずれか一項に記載の画像処理装置において、
前記頭部ラインにおいて、あらかじめ登録されたパターンと合致する範囲を検出する第1検出部をさらに備え、
前記補正処理部は、前記第1検出部によって検出された範囲に対して前記顔エリアの反対側に存在する髪の毛部に対しては、前記補正処理を禁止することを特徴とする画像処理装置。
【請求項9】
請求項1〜6のいずれか一項に記載の画像処理装置において、
前記顔検出処理により検出された顔が、あらかじめ登録された人物の顔であるかを認識する顔認識部と、
前記頭部ラインにおいて、前記顔認識部により認識された顔にあらかじめ対応付けられているパターンと合致する範囲を検出する第2検出部と、
をさらに備え、
前記補正処理部は、前記第2検出部によって検出された範囲に対して前記顔エリアの反対側に存在する髪の毛部に対しては、前記補正処理を禁止することを特徴とする画像処理装置。
【請求項10】
請求項1〜6のいずれか一項に記載の画像処理装置において、
前記補正処理部は、前記画像のデータに前記画像の撮影時に動きがあったことを示す情報が対応付けられている場合は、前記補正処理を禁止することを特徴とする画像処理装置。
【請求項11】
画像から人物の顔を検出する顔検出処理と、
前記顔検出処理の結果に基づいて、前記画像内における、前記顔部分を含む所定のエリアを顔エリアとして決定する顔エリア決定処理と、
前記顔エリアの外周を含む所定のエリアを髪エリアとして決定する髪エリア決定処理と、
前記髪エリア内の画像に基づいて、頭部の輪郭を示す頭部ラインを決定する頭部ライン決定処理と、
前記髪エリア内の画像において、前記頭部ラインに対して前記顔エリアの反対側に存在する髪の毛部を補正する補正処理と、
をコンピュータに実行させるための画像処理プログラム。
【請求項1】
画像から人物の顔を検出する顔検出処理を行う顔検出処理部と、
前記顔検出処理の結果に基づいて、前記画像内における、前記顔部分を含む所定のエリアを顔エリアとして決定する顔エリア決定部と、
前記顔エリアの外周を含む所定のエリアを髪エリアとして決定する髪エリア決定部と、
前記髪エリア内の画像に基づいて、頭部の輪郭を示す頭部ラインを決定する頭部ライン決定部と、
前記髪エリア内の画像において、前記頭部ラインに対して前記顔エリアの反対側に存在する髪の毛部を補正する補正処理を行う補正処理部と、
を備えることを特徴とする画像処理装置。
【請求項2】
請求項1に記載の画像処理装置において、
前記髪エリア決定部は、前記顔エリアを所定の比率で拡大したエリアから前記顔エリアを除外したエリアを前記髪エリアとして決定することを特徴とする画像処理装置。
【請求項3】
請求項1または2に記載の画像処理装置において、
前記頭部ライン決定部は、前記髪エリア内の画像に対して、前記髪の毛部に対するエッジ検出処理と前記髪の毛部に関する2値化処理とを施し、該エッジ検出処理および該2値化処理の結果に基づいて、前記頭部ラインを決定することを特徴とする画像処理装置。
【請求項4】
請求項3に記載の画像処理装置において、
前記頭部ライン決定部は、前記顔エリアの略中心から外周部へ向かう方向において前記髪の毛部の色から他の色へ変化する境界のラインであって、前記エッジ検出処理により抽出されたラインと一致するラインを、前記頭部ラインとして決定することを特徴とする画像処理装置。
【請求項5】
請求項1〜4のいずれか一項に記載の画像処理装置において、
前記補正処理部は、前記髪の毛部を構成する各画素を注目画素とし、該注目画素を中心とする所定の画素領域に含まれる前記髪の毛部の色と異なる色を示す画素のデータの平均値で該注目画素のデータを置換することを特徴とする画像処理装置。
【請求項6】
請求項1〜5のいずれか一項に記載の画像処理装置において、
前記顔エリア内から上方向に向かって前記顔の色から異なる他の色へ変化した箇所の色を前記髪の毛部の色として取得する髪の毛色取得部をさらに備えることを特徴とする画像処理装置。
【請求項7】
請求項1〜6のいずれか一項に記載の画像処理装置において、
前記補正処理部は、前記画像全体に対する前記顔エリアの比率が所定値未満の場合は前記補正処理を禁止することを特徴とする画像処理装置。
【請求項8】
請求項1〜6のいずれか一項に記載の画像処理装置において、
前記頭部ラインにおいて、あらかじめ登録されたパターンと合致する範囲を検出する第1検出部をさらに備え、
前記補正処理部は、前記第1検出部によって検出された範囲に対して前記顔エリアの反対側に存在する髪の毛部に対しては、前記補正処理を禁止することを特徴とする画像処理装置。
【請求項9】
請求項1〜6のいずれか一項に記載の画像処理装置において、
前記顔検出処理により検出された顔が、あらかじめ登録された人物の顔であるかを認識する顔認識部と、
前記頭部ラインにおいて、前記顔認識部により認識された顔にあらかじめ対応付けられているパターンと合致する範囲を検出する第2検出部と、
をさらに備え、
前記補正処理部は、前記第2検出部によって検出された範囲に対して前記顔エリアの反対側に存在する髪の毛部に対しては、前記補正処理を禁止することを特徴とする画像処理装置。
【請求項10】
請求項1〜6のいずれか一項に記載の画像処理装置において、
前記補正処理部は、前記画像のデータに前記画像の撮影時に動きがあったことを示す情報が対応付けられている場合は、前記補正処理を禁止することを特徴とする画像処理装置。
【請求項11】
画像から人物の顔を検出する顔検出処理と、
前記顔検出処理の結果に基づいて、前記画像内における、前記顔部分を含む所定のエリアを顔エリアとして決定する顔エリア決定処理と、
前記顔エリアの外周を含む所定のエリアを髪エリアとして決定する髪エリア決定処理と、
前記髪エリア内の画像に基づいて、頭部の輪郭を示す頭部ラインを決定する頭部ライン決定処理と、
前記髪エリア内の画像において、前記頭部ラインに対して前記顔エリアの反対側に存在する髪の毛部を補正する補正処理と、
をコンピュータに実行させるための画像処理プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2013−25470(P2013−25470A)
【公開日】平成25年2月4日(2013.2.4)
【国際特許分類】
【出願番号】特願2011−158019(P2011−158019)
【出願日】平成23年7月19日(2011.7.19)
【出願人】(000004112)株式会社ニコン (12,601)
【Fターム(参考)】
【公開日】平成25年2月4日(2013.2.4)
【国際特許分類】
【出願日】平成23年7月19日(2011.7.19)
【出願人】(000004112)株式会社ニコン (12,601)
【Fターム(参考)】
[ Back to top ]