(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0018】
(第1実施形態)
以下、図面を用いて本発明の第1実施形態について説明する。
図1は、第1実施形態における撮像装置10の構成を示すブロック図である。
図1に示すように、撮像装置10は、撮像レンズ11、撮像素子12、A/D変換部13、バッファメモリ14、表示部15、フラッシュRAM16、記録I/F部17、記録媒体18、操作部19、CPU20、バス21を備える。
【0019】
撮像レンズ11は、撮像素子12の結像面に被写体像を結像する。撮像素子12は、撮像レンズ11を通過した被写体光を光電変換し、R、G、Bの各色に対応するアナログ画像信号を出力する。撮像素子12から出力される画像信号は、A/D変換部13に入力される。A/D変換部13は、撮像素子12から出力されるアナログの画像信号をデジタルの画像信号に変換する。なお、このデジタルの画像信号は、1コマにまとめられ、画像データとしてバッファメモリ14に記録される。バッファメモリ14は、後述する画像処理部32による画像処理の前工程や後工程で画像データを一時的に記録する。
【0020】
表示部15は、各種の画像を表示する。表示部15に表示される各種の画像は、撮像により取得された画像、メニュー画像、後述する記録媒体18に記録された画像等である。フラッシュRAM16は、ファームウェアなどを記憶している。記録I/F部17は、記録媒体18を接続するためのコネクタを備えている。この記録I/F部17と記録媒体18とが接続されることにより、記録媒体18に対してデータの書き込み/読み出しが実行される。
【0021】
操作部19は、レリーズ釦24、十字キー25等を有する。レリーズ釦24は、撮像時にユーザにより操作される。十字キー25は、上記のメニュー画像等で操作される。なお、レリーズ釦24、十字キー25の状態はCPU20により検知され、検知された釦やキーの状態に基づいたシーケンスが実行される。
【0022】
CPU20は、所定のシーケンスプログラムにしたがって、撮像装置10の統括的な制御を行うとともに、撮像時に必要となる各種演算(AF、AE等)を実行する。また、CPU20は、抽出部29、概略領域特定部30、詳細領域特定部31、画像処理部32を備える。
図2(a)は、処理対象となる画像(符号40)の一例を示す図である。なお、画像40としては、撮像により取得した画像でも良いし、記録媒体18に記録された画像でも良い。
【0023】
抽出部29は、画像から、特開2001−16573号公報などに記載された特徴点抽出処理によって、例えば、眉、目、鼻、唇の各端点、顔の輪郭点、頭頂点や顎の下端点などを抽出する。
図2(a)の太線で囲まれた領域は、顔領域Fを示す。
【0024】
概略領域特定部30は、抽出部29によって抽出された目、唇の各端点に基づいて、概略領域Rを特定する。この概略領域Rとは、顔領域Fの一部であり、確実に顔領域Fに含まれていると判断できる領域である。
図2(a)の点線で囲まれた領域は、概略領域Rを示す。
図2(a)に示すように、概略領域特定部30は、両目のそれぞれの中心を頂点とし、口の中心を底辺に含む矩形の領域を概略領域Rとして特定する。なお、
図2(b)に示すように、概略領域特定部30は、両目のそれぞれの中心と、口の中心とを結んだ三角形の領域を概略領域R
2として特定しても良い。また、
図2(c)に示すように、概略領域特定部30は、片目の中心と、口の中心とを結んだ線上に位置する画素を概略領域R
3として特定しても良い。
【0025】
詳細領域特定部31は、肌色候補領域S、及び詳細領域Dを特定する。まず、肌色候補領域Sについて説明する。肌色候補領域Sは、概略領域Rから、肌色が存在するとみなすことができない色座標の画素を除外した領域である。除外対象としては、例えば、目、口、顔に被っているオブジェクト、眼鏡、頬のペインティングなどが想定される。詳細領域特定部31は、RGB色空間の画像データをHSV色空間の画像データに変換する。そして、詳細領域特定部31は、HSV色空間にて、Hueが20〜50°の範囲から外れた画素を除外することにより、肌色候補領域Sを特定する。概略領域Rが矩形の領域である場合、肌色候補領域Sは、
図2(a)の斜線の領域で示される。
【0026】
次に、詳細領域Dについて説明する。詳細領域Dは、肌色候補領域Sを拡大及び縮小させることにより特定される、顔領域Fにおける肌領域である。以下、肌色候補領域Sを初期領域とし、初期領域から詳細領域Dに至る途中の領域を領域Iとする。詳細領域特定部31は、領域Iの状態を示す値を算出し、この値が最も好ましい値となったときの領域Iを詳細領域Dとして特定する。
図3の点で塗られた領域は、詳細領域Dを示す。詳細領域Dの特定については、後述する。
【0027】
第1実施形態では、最適解を求める方法として、シュミレーテッドアニーリング(Simulated Annealing)法を用いる。シュミレーテッドアニーリングは、高温で加熱した金属の温度を除々に下げていくことで、欠陥の少ない優れた結晶構造を作る物理プロセス(焼きなまし)を模したもので、逐次的な解の改善操作を繰り返す最適化手法である。この方法では、現在の状態よりエネルギーの低い状態への変化を繰り返すことで、最もエネルギーの低い状態(最適解)に近づけていく。その際、単にエネルギーの低い状態のみ選択し続けると局所解に陥る可能性があるが、ある確率でエネルギーの増加を認めるところに、この方法の特徴がある。
【0028】
次に、現在の領域Iの状態を示すエネルギーEを以下の(1)式で示す。なお、画像40の各画素には、肌色又は背景のラベルが割り当てられる。
【0030】
(1)式において、Vは注目画素、Paは注目画素の4隣接(又は8隣接)画素ペア集団を示す。また、u、vはこの画素ペア集団のうち、いずれか2つの画素(以下、隣接画素と称する)であり、δ、γは係数を示す。
【0031】
また、Xは、各画素に割り当てられるラベルであり、
X=肌 if 肌である
背景 otherwise.となる。
【0032】
まず、(1)式の右辺第1項について説明する。(1)式の右辺第1項は、肌らしさと、肌と背景との割合から求められるエネルギーとを表す。すなわち、(1)式の右辺第1項は、肌色のラベルが割り当てられた画素から構成される領域と、実際の肌領域とが一致するほど、また、顔領域Fと背景領域との割合が想定した比率に近づくほど、低い値となる。
【0033】
(1)式の右辺第1項のg
V(X
V)を以下の(2)式で示す。
【0035】
(2)式において、Aは肌色候補領域Sを構成する画素の色(肌色)、Bは注目画素の色、A−Bは、肌色候補領域Sを構成する画素の色と、注目画素の色との差(色差)、Xは注目画素のラベルを示す。例えば、R
A、G
A、B
Aは、それぞれ肌色候補領域Sを構成する画素のRの平均値、Gの平均値、Bの平均値とする。また、αは画像40に対する肌領域の割合を予め決める係数であり、βは肌ラベル画素から求められる肌らしさの度合いを決める係数である。
【0036】
(2)式の右辺第1項は、画素のラベルが肌であった場合のみ、値β||A−B||
2が与えられることを表す。また、(2)式の右辺第2項は、画素のラベルが肌であった場合にαが、背景であった場合に(1−α)が与えられることを表す。
【0037】
次に、(1)式の右辺第2項について説明する。(1)式の右辺第2項は、隣接画素間の明るさが同じであるかの度合いを表す。(1)式の右辺第2項のh
uv(X
u,X
V)を以下の(3)式で示す。
【数3】
(3)式において、詳細領域特定部31は、隣接画素u、vのラベルX
u、X
vが異なる場合に、κの値を与える。κの値は、隣接画素間の明るさが違うほど小さな値となる。
【0038】
詳細領域特定部31は、エネルギーEを最小に近づけていくように動作する。そして、エネルギーEが最小となるとき、肌色のラベルが割り当てられた画素から構成される領域が詳細領域Dとなる。
【0039】
画像処理部32は、バッファメモリ14に記録された画像データに対して画像処理を施す。なお、この画像処理としては、周知のホワイトバランス調整、色補間、階調変換処理、輪郭強調処理等が挙げられる。また、画像処理部32は、JPEG(Joint Photographic Experts Group)形式等で圧縮する処理や、圧縮された上記のデータを伸長復元する処理をも実行する。
【0040】
また、画像処理部32は、詳細領域特定部31が特定した詳細領域Dに対して、美肌処理を行う。例えば、画像処理部32は、詳細領域Dの露出をオーバー側に補正する露出補正を行う。これにより、被写体の肌が白く表現される。また、画像処理部32は、ソフトフォーカス処理を行う。これにより、被写体が女性である場合、女性らしさが強調され、柔らかみが生じるとともに、しわや肌荒れ等が目立ちにくくなる。また、画像処理部32は、彩度や明度のパラメータを補正することにより、肌を白く表現し、くすみ等を軽減する。
【0041】
バス21は、バッファメモリ14、表示部15、フラッシュRAM16、記録I/F部17、CPU20を相互に接続することにより、データや信号の出入力を実行する。
次に、
図4のフローチャートを用いて、第1実施形態における詳細領域Dの特定処理の流れを説明する。なお、
図4のフローチャートは、レリーズ釦24が全押しされたことを契機に実行される。また、以下、便宜上、1人の人物を撮像した画像40から詳細領域Dを特定する例を示す。
ステップS101は、概略領域Rを特定する処理である。抽出部29は、撮像により取得した画像40から目、唇の各端点などを抽出する。そして、概略領域特定部30は、目、唇の端点に基づいて、概略領域Rを特定する。
【0042】
ステップS102は、肌色候補領域Sを特定する処理である。詳細領域特定部31は、RGB色空間の画像データをHSV色空間の画像データに変換する。そして、詳細領域特定部31は、概略領域Rから、Hueが20〜50°の範囲から外れた画素を除外し、肌色候補領域Sを特定する。
【0043】
ステップS103は、初期エネルギーE
0を算出する処理である。まず、詳細領域特定部31は、画像40に含まれる画素について、肌色候補領域Sを構成する画素に肌色のラベルを、残りの画素に背景のラベルを割り当てる。そして、詳細領域特定部31は、肌色候補領域Sを初期領域とし、上述した(1)式〜(3)式を用いて、領域Iと初期領域とを同じ領域として初期エネルギーE
0を算出する。
【0044】
ステップS104は、領域を拡大する処理である。詳細領域設定部31は、現在の領域Iに、領域Iの外側に隣接する画素PO
1〜PO
nを追加した領域を想定する。以下、画素PO
1から順番に1画素ずつ追加した領域を想定する例を示す。
図5(A)の白色の領域は、現在の領域Iを示し、斜線が引かれた領域は、領域Iの外側に隣接する画素PO
1〜PO
nを示す。
【0045】
ステップS105は、受理判定を行う処理である。まず、詳細領域特定部31は、画素PO
1に肌色のラベルを割り当てた状態のエネルギーを算出し、このエネルギーと、画素PO
1に肌色のラベルを割り当てる前の状態のエネルギーとの差ΔEiを算出する。そして、詳細領域特定部31は、ΔEi<0である場合は、P=1の確率で、画素PO
1に肌色のラベルを割り当てる。一方、ΔEi>0である場合は、P=exp(−ΔEi/kT
c)の確率で、画素PO
1に肌色のラベルを割り当てる。なお、kはボルツマン定数、T
cは温度である。画素PO
1に肌色のラベルを割り当てることにより、領域Iは、画素PO
1の分が拡大される。
【0046】
CPU20は、次の状態が受け入れられる場合(ステップS105の判定がYESとなる場合)には、ステップS106に進む。一方、CPU20は、次の状態が受け入れられない場合(ステップS105の判定がNOとなる場合)には、後述するステップS113に進む。
【0047】
ステップS106は、領域Iの外側に隣接する全ての画素PO
1〜PO
nに対してステップS104、ステップS105の処理を行ったか否かを判定する処理である。CPU20は、全ての画素に対して処理を行った場合(ステップS106の判定がYESとなる場合)には、ステップS107に進む。一方、CPU20は、全ての画素に対して処理を行っていない場合(ステップS106の判定がNOとなる場合)には、ステップS104に戻り、拡大した領域を想定する。このように、詳細領域特定部31は、ステップS104、ステップS105の処理を繰り返し、画素PO
1〜PO
nについて、次の状態が受け入れられる場合は、肌色のラベルを割り当てる。拡大後の領域I’の例を
図5(B)に示す。
【0048】
ステップS107は、領域を縮小する処理である。詳細領域設定部31は、拡大後の領域I’から、領域I’の外周部に位置する画素PI
1〜PI
nを除いた領域を想定する。以下、画素PI
1から順番に1画素ずつ除いた領域を想定する例を示す。
図5(B)の点で塗られた領域は、領域I’の外周部に位置する画素PI
1〜PI
nを示す。
【0049】
ステップS108は、受理判定を行う処理である。まず、詳細領域特定部31は、画素PI
1に背景のラベルを割り当てた状態のエネルギーを算出し、このエネルギーと、画素PI
1に背景のラベルを割り当てる前の状態のエネルギーとの差ΔEjを算出する。そして、詳細領域特定部31は、ΔEj<0である場合は、P=1の確率で、画素PI
1に背景のラベルを割り当てる。一方、ΔEj>0である場合は、P=exp(−ΔEj/kT
c)の確率で、画素PI
1に背景のラベルを割り当てる。画素PI
1に背景のラベルを割り当てることにより、領域I’は、画素PI
1の分が縮小される。
【0050】
CPU20は、次の状態が受け入れられる場合(ステップS108の判定がYESとなる場合)には、ステップS109に進む。一方、CPU20は、次の状態が受け入れられない場合(ステップS108の判定がNOとなる場合)には、後述するステップS113に進む。
【0051】
ステップS109は、領域I’の外周部に位置する画素PI
1〜PI
nに対してステップS107、ステップS108の処理を行ったか否かを判定する処理である。CPU20は、全ての画素に対して処理を行った場合(ステップS109の判定がYESとなる場合)には、ステップS110に進む。一方、CPU20は、全ての画素に対して処理を行っていない場合(ステップS109の判定がNOとなる場合)には、ステップS107に戻る。このように、詳細領域特定部31は、ステップS107、ステップS108の処理を繰り返し、画素PI
1〜PI
mについて、次の状態が受け入れられる場合は、背景のラベルを割り当てる。縮小後の領域I’’の例を
図5(C)に示す。
【0052】
ステップS110は、状態を変更する処理である。詳細領域特定部31は、ステップS107で縮小した領域I’’を次の状態の領域I+1とする。
【0053】
ステップS111は、状態変更カウントに1を加算する処理である。
【0054】
ステップS112は、状態変更カウントが閾値に達したか否かを判定する処理である。例えば、CPU20は、状態変更カウントが100より大きいか否かを判定する。そして、CPU20は、状態変更カウントが100より大きい場合(ステップS112の判定がYESとなる場合)には、ステップS113に進む。一方、CPU20は、状態変更カウントが100以下である場合(ステップS112の判定がNO)となる場合には、ステップS104に戻り、拡大した領域を想定する。
【0055】
ステップS113は、終了判定を行う処理である。CPU20は、領域I+l(0≦l≦100)が変化しなくなったか否かを判定する。領域I+lが変化しなくなった状態とは、温度T
cが十分に低く、領域I+lのエネルギーが最も低い状態である。また、この状態は、エネルギーが最も低く安定しているため、領域I+lの外側に隣接する画素に肌色のラベルを割り当てても、常にΔEi>0となり、領域I+lの外周部に位置する画素に背景のラベルを割り当てても、常にΔEj>0となる。
【0056】
CPU20は、領域I+lが変化しなくなったと判定した場合(ステップS113の判定がYESとなる場合)には、領域I+lを詳細領域Dとする。これにより、顔領域Fにおける肌領域が詳細領域Dとなる。そして、CPU20は、ステップS114に進む。一方、CPU20は、領域I+lが変化すると判定した場合(ステップS113の判定がNOとなる場合)には、ステップS115に進む。
【0057】
ステップS114は、美肌処理を行う処理である。画像処理部32は、詳細領域Dに対して美肌処理を施す。そして、画像処理部32は、美肌処理後の画像40’を記録媒体18に記録し、一連の処理を終了する。
【0058】
ステップS115は、ステップS113の判定がNOとなる場合のクーリング処理である。詳細領域特定部31は、温度T
cを下げる。温度Tcの下げ方は、以下の式で規定される。例えば、γ=0.9の定数とする。
T
c+1=γT
c
【0059】
ステップS116は、状態変更カウントをリセットする処理である。詳細領域特定部31は、状態変更カウントをリセットし、ステップS104に戻り、拡大した領域を想定する。
図6は、エネルギーの差ΔEiと、確率Pとの関係を示す図である。なお、横軸はΔEiを示し、縦軸は確率Pを示す。
図6に示すように、ΔEi<0のとき、P=1となり、ΔEi>0のとき、0<P<1となる。また、ΔEi>0における確率Pは、温度T
cに依存する。すなわち、温度T
c+1、温度T
c+2と、温度を下げていくことにより、確率Pが0に近づいていき、最適解を算出する方向にしか進まなくなる。
【0060】
以上説明したように、第1実施形態の撮像装置10は、領域Iの状態を示す値を算出し、その値が最も好ましい値となるような最適解を見つけることにより、詳細領域Dを特定する。したがって、第1実施形態の撮像装置10によれば、詳細領域Dを精度良く特定することができる。また、第1実施形態の撮像装置10によれば、詳細領域Dを精度良く特定できるため、適確に詳細領域Dに美肌処理などの画像処理を施すことができる。
【0061】
(第2実施形態)
以下、第2実施形態について説明する。第1実施形態では、シュミレーテッドアニーリング法を用いて、詳細領域Dを特定する例を示した。第2実施形態では、温度T
c=0の一定とし、初期領域を拡大することにより、詳細領域Dを特定する例を示す。ここで、第2実施形態における撮像装置の構成は、
図1に示す第1実施形態の撮像装置10と共通するので重複説明は省略する。
【0062】
次に、
図7のフローチャートを用いて、第2実施形態における詳細領域Dの特定処理の流れを説明する。なお、
図7のフローチャートは、レリーズ釦24が全押しされたことを契機に実行される。また、以下、便宜上、1人の人物を撮像した画像40から詳細領域Dを特定する例を示す。
【0063】
ステップS201からステップS204は、
図4のフローチャートのステップS101からステップS104と同様の処理である。
【0064】
ステップS205は、受理判定を行う処理である。詳細領域特定部31は、画素PO
1に肌色のラベルを割り当てた状態のエネルギーと、肌色のラベルを割り当てる前の状態のエネルギーの差ΔEiを算出する。そして、詳細領域特定部31は、ΔEi<0である場合は、P=1の確率で、画素PO
1に肌色のラベルを割り当てる。一方、ΔEi>0である場合は、後述するステップS208に進む。すなわち、第2実施形態では、詳細領域特定部31は、ΔEi<0である場合のみ、次の状態を受け入れる。
【0065】
CPU20は、次の状態が受け入れられる場合(ステップS205の判定がYESとなる場合)には、ステップS206に進む。一方、CPU20は、次の状態が受け入れられない場合(ステップS205の判定がNOとなる場合)には、後述するステップS207に進む。
【0066】
ステップS206は、状態を変更する処理である。詳細領域特定部31は、ステップS205で拡大した領域I’を次の状態の領域I+1とする。
【0067】
ステップS207は、領域Iの外側に隣接する全ての画素PO
1〜PO
nに対してステップS204〜ステップS206の処理を行ったか否かを判定する処理である。CPU20は、全ての画素に対して処理を行った場合(ステップS207の判定がYESとなる場合)には、ステップS208に進む。一方、CPU20は、全ての画素に対して処理を行っていない場合(ステップS207の判定がNOとなる場合)には、ステップS204に戻り、拡大した領域を想定する。
【0068】
ステップS208は、終了判定を行う処理である。CPU20は、ステップS113と同様の処理を行い、領域I+qが変化しなくなったか否かを判定する。CPU20は、領域I+qが変化しなくなったと判定した場合(ステップS208の判定がYESとなる場合)には、領域I+qを詳細領域Dとする。これにより、顔領域Fにおける肌領域が詳細領域Dとなる。そして、CPU20は、ステップS209に進む。一方、CPU20は、領域I+qが変化すると判定した場合(ステップS208の判定がNOとなる場合)には、ステップS204に戻り、拡大した領域を想定する。
【0069】
ステップS209は、ステップS114と同様の処理である。
【0070】
以上説明したように、第2実施形態の撮像装置10は、領域Iの状態を示す値を算出し、その値が最も好ましい値となるような最適解を見つけることにより、詳細領域Dを特定する。したがって、第2実施形態の撮像装置10によれば、第1実施形態と同様の効果を得ることができる。
【0071】
なお、第1実施形態では、同一温度T
Cで、ステップS104からステップS109の処理を100回繰り返す例を示したが、これに限らない。例えば、厳密解を求めたい場合は、クーリングにより温度Tを下げていくほど、ステップS104からステップS109を繰り返す回数を多くすることが好ましい。
【0072】
また、第1実施形態では、ステップS112で温度T
Cを下げる際に、γ=0.9の定数とする例を示したが、γの値は一例であり、限定されない。
【0073】
また、第1実施形態では、ステップS114で詳細領域Dに対して美肌処理を行う例を示したが、詳細領域Dに対する処理は、これに限らない。また、第2実施形態においても同様とする。
【0074】
また、第1実施家形態のステップS104では、1画素ずつ領域Iの外側に隣接する画素を追加する例を示したが、複数の画素ずつ追加しても良い。例えば、領域Iの外側に隣接する画素から、ランダムに抽出した5%の画素を追加しても良い。また、追加する画素数は、領域Iに応じて変化させても良い。例えば、初期領域に近い状態では、追加する画素数を大きくし、領域Iが拡大するに従い、追加する画素数を小さくする。これにより、領域Iが小さい状態では、演算回数を削減できる。また、最適解に近づいた状態では、細かい変化となるため、正確に詳細領域Dを特定することができる。なお、ステップS107においても同様とする。また、第2実施形態においても同様とする。
【0075】
また、第1実施形態では、クーリングの回数を規定していないが、クーリングの回数を規定しても良い。この場合、CPU20は、ステップS116の後で、クーリングの回数が所定の回数Sに達したか否かを判定する。そして、CPU20は、クーリングが所定の回数Sに達したと判定した場合、温度T
c+S+1=0に設定し、ステップS104からステップS113の処理を実行する。これにより、詳細領域特定部31は、温度T
c+S+1=0の状態における局所解(ローカルミニマム)を得ることができる。
【0076】
また、第1実施形態及び第2実施形態では、概略領域を特定する際に、目の中心と口の中心とを結ぶ例を示したが、これに限らない。例えば、目の任意の端点と、口の任意の端点とを結んでも良い。
【0077】
また、第1実施形態及び第2実施形態では、エネルギーEを算出する際に、RGB色空間を用いる例を示したが、これに限らない。例えば、HSV、Yuv等の色空間を用いても良い。
【0078】
また、第1実施形態及び第2実施形態では、1人の人物を撮像した画像40から詳細領域Dを特定する例を示したが、複数の人物を撮像した画像40から詳細領域Dを特定することも可能である。
【0079】
また、第1実施形態及び第2実施形態では、撮像装置10を例に挙げて説明したが、これに限らない。例えば、
図1に示した以外の構成を有する撮像装置にも本発明を同様に適用することができる。また、パソコン、デジタルフォトフレームなどの画像処理装置にも本発明を同様に適用することができる。さらに、
図1に示す機能や、
図4、7に示すフローチャートの流れをプログラムとしてコンピュータ読み取り可能な記録媒体に記録し、該プログラムをコンピュータにて実行するようにしても良い。