以下、図面を用いて実施形態を説明する。
図1は、画像処理装置および画像処理方法の一実施形態を示す。
図1に示した画像処理装置100は、例えば、CPU(Central Processing Unit)等の演算処理装置である。画像処理装置100は、携帯通信端末あるいはデジタルカメラ等に搭載されてもよい。画像処理装置100は、検出部10、演算部20、選択部30および評価部40を有する。検出部10、演算部20、選択部30および評価部40の機能は、CPUが実行するプログラムにより実現されてもよく、ハードウェアにより実現されてもよい。また、図1に示した括弧内は、画像処理装置100の処理対象である画像の一例を示す。
検出部10は、被写体を含む画像50から、被写体である人物60の顔を検出する。被写体を含む画像50は、画像処理装置100の外部から検出部10に供給されてもよく、画像処理装置100が有する記憶装置に格納されてもよい。
演算部20は、例えば、検出部10により検出された被写体の顔を示す顔領域70から人物60の体方向に向かう直線である第1線LNを求める。演算部20は、求めた第1線LNが、画像50の中心を含む第1領域AR1を通る場合に、第1領域AR1内の第1線LN上に中心が位置する第2領域AR2のコントラストを示すAF評価値と、顔領域70のコントラストを示すAF評価値とをそれぞれ算出する。
なお、コントラストは、顔領域70または第2領域AR2内における画素が有する輝度の分布幅を示す。AF評価値は、輝度のうちの高周波成分を顔領域70または第2領域AR2内に含まれる画素で積算した値である。また、画像50に設定される第1領域AR1は、例えば、画像処理装置100が搭載されるカメラによるAF処理性能が所定の精度以上を満たす解像度を有する範囲である。また、第2領域AR2は、第1領域AR1内に含まれる第1線LN上に複数設定されてもよい。複数の第2領域AR2が第1線LN上に設定される場合、演算部20は、複数の第2領域AR2それぞれにおけるAF評価値を求めてもよい。
選択部30は、顔領域70のAF評価値と第2領域AR2のAF評価値とを比較し、顔領域70および第2領域AR2のうち、算出されたAF評価値が大きい領域を選択する。
評価部40は、人物60を撮影する際に、選択部30により選択された顔領域70または第2領域AR2のいずれかを用いて、人物60に合焦したか否かを評価する。すなわち、評価部40は、コントラスト検出法に基づくAF処理を、選択部30により選択された顔領域70または第2領域AR2で実行する。画像処理装置100が搭載されるスマートフォン等の携帯通信端末のカメラあるいはデジタルカメラは、評価部40によるAF処理の結果に基づいて、人物60に合焦する。
なお、画像処理装置100の動作は、搭載される携帯通信端末あるいはデジタルカメラが有するシャッタ釦がユーザにより押される度に、繰り返し実行されるのが好ましい。
以上、図1に示した実施形態では、顔領域70および第1領域AR1内の第1線LN上に中心が位置する第2領域AR2のうち、算出されたAF評価値が大きい領域を選択する。これにより、画像処理装置100は、合焦用に撮影された画像50の中心の位置から被写体が外れている場合でも、被写体においてコントラストが他よりも高い領域を検出することができる。この結果、画像処理装置100は、画像50上での被写体の位置に依らず、被写体への合焦の精度を向上させることができる。これにより、画像処理装置100が搭載されるデジタルカメラあるいはスマートフォン等の携帯通信端末は、従来と比べて精度良く合焦させて被写体を撮影することができる。
図2は、画像処理装置および画像処理方法の別の実施形態を示す。図1で説明した要素と同一または同様の機能を有する要素については、同一または同様の符号を付し、これらについては、詳細な説明を省略する。
図2に示した画像処理装置100aは、例えば、CPU等の演算処理装置である。画像処理装置100aは、携帯通信端末あるいはデジタルカメラ等に搭載されてもよい。画像処理装置100aは、検出部10、演算部20a、選択部30aおよび評価部40を有する。検出部10、演算部20a、選択部30aおよび評価部40の機能は、CPUが実行するプログラムにより実現されてもよく、ハードウェアにより実現されてもよい。また、図2に示した括弧内は、画像処理装置100aの処理対象である画像の一例を示す。
演算部20aは、例えば、検出部10により検出された被写体の顔を示す顔領域70から人物60の体方向に向かう直線である第1線LNを求める。演算部20aは、求めた第1線LNと画像50の中心との距離が最小となる第1線LN上の画素を含む第1領域AR3のコントラストを示すAF評価値と、顔領域70内のAF評価値とをそれぞれ算出する。
選択部30aは、顔領域70のAF評価値と第1領域AR3のAF評価値とを比較し、顔領域70および第1領域AR3のうち、算出されたAF評価値が大きい領域を選択する。
なお、画像処理装置100の動作は、搭載される携帯通信端末あるいはデジタルカメラが有するシャッタ釦がユーザにより押される度に、繰り返し実行されるのが好ましい。
以上、図2に示した実施形態では、顔領域70および画像50の中心からの距離が最小となる第1線LN上の画素を含む第1領域AR3のうち、算出されたAF評価値が大きい領域を選択する。これにより、画像処理装置100aは、合焦用に撮影された画像50の中心の位置から被写体が外れている場合でも、被写体においてコントラストが他よりも高い領域を検出することができる。この結果、画像処理装置100aは、画像50上での被写体の位置に依らず、被写体への合焦の精度を向上させることができる。これにより、画像処理装置100aが搭載されるデジタルカメラあるいはスマートフォン等の携帯通信端末は、従来と比べて精度良く合焦させて被写体を撮影することができる。
図3は、画像処理装置および画像処理方法の別の実施形態を示す。図3に示した画像処理装置100bは、例えば、デジタルカメラ200に搭載される。デジタルカメラ200は、画像処理装置100bとして動作する制御部240、レンズ210、撮像素子220、AD(Analog-to-Digital)変換部230、レンズ駆動部250、撮像駆動部260、記憶部270およびセンサ部280を有する。なお、画像処理装置100bは、スマートフォン等の携帯通信端末に搭載されてもよい。
レンズ210は、例えば、ズームレンズおよびフォーカシングレンズを含む複数のレンズ群である。なお、図3に示したレンズ210はレンズ群を1枚のレンズとして示す。
撮像素子220は、例えば、レンズ210を透過した光束で結像される被写体を撮像するCCD(Charge Coupled Device)またはCMOS(Complementary metal-oxide-semiconductor)等である。撮像素子220の受光面には、複数のフォトダイオードがマトリックス状に配列される。撮像素子220の各フォトダイオードには、赤色(R:Red)、緑色(G:Green)および青色(B:Blue)成分のカラーフィルタがベイヤ配列等に従って配置される。これにより、撮像素子220の各フォトダイオードは、カラーフィルタでの色分解によってそれぞれの色成分に対応するアナログ信号をAD変換部230に出力する。例えば、デジタルカメラ200に含まれるCPU等の制御部240がデジタルカメラ200に含まれるシャッタ釦等の操作部材から撮像の指示を示す信号を受ける場合、撮像素子220は、被写体を撮影しRGB成分のアナログ信号を出力する。
AD変換部230は、例えば、撮像素子220から出力されたRGB成分のアナログ信号を、12ビット等のデジタル信号に変換する。AD変換部230は、変換したデジタル信号を制御部240に出力する。
制御部240は、CPU等の演算処理装置である。制御部240は、記憶部270に格納されたプログラムを実行することで、デジタルカメラ200の各要素の動作を制御する。また、制御部240は、記憶部270に格納された画像処理プログラムを実行することで、画像処理装置100bとして動作する。
レンズ駆動部250は、モータあるいはアクチュエータ等である。レンズ駆動部250は、制御部240からの制御信号に基づいて、レンズ210の位置を光軸方向に移動させる。
撮像駆動部260は、タイミングジェネレータ等である。撮像駆動部260は、制御部240からの制御信号に基づいて、撮像素子220による被写体の撮影および撮像素子220のフォトダイオードからアナログ信号を出力させるタイミングを制御する。また、撮像駆動部260は、AD変換部230による撮像素子220から出力されたアナログ信号をデジタル信号に変換するタイミングも制御する。
記憶部270は、制御部240が実行する画像処理プログラム等のプログラム、および制御部240が画像処理プログラム等を実行することで参照される判定テーブル160等のデータを格納する。判定テーブル160については、図5および図6で説明する。また、記憶部270は、デジタルカメラ200により撮影された画像のファイルを格納する領域を有する。さらに、記憶部270は、撮像素子220により撮影された画像において、解像度が所定値以上の画像領域を示す情報を格納する。解像度が所定値以上の画像領域を示す情報については、図4で説明する。
センサ部280は、電子ジャイロ等であり、重力の方向(すなわちデジタルカメラ200の姿勢)を検出する。
画像処理装置100bは、検出部110、演算部120、判定部130、選択部140および評価部150を有する。検出部110、演算部120、判定部130、選択部140および評価部150の機能は、制御部240が画像処理プログラムを実行することで実現される。
検出部110は、デジタルカメラ200により撮影された画像(以下、撮影画像とも称される)から、被写体である人物の顔を検出する。例えば、検出部110は、撮影画像において、輝度の不連続な変化を示すエッジ等の特徴点を抽出し、抽出した特徴点の分布に基づいて目および鼻等の各端点を特定する。そして、検出部110は、特定した各端点の位置に基づいて顔領域を検出する。あるいは、記憶部270が顔画像のテンプレートを予め格納するとき、検出部110は、顔画像のテンプレートと、撮影画像との相関を求める。検出部110は、求めた相関係数が所定の値以上となる画像領域を顔領域として検出してもよい。なお、撮影画像は、例えば、デジタルカメラ200に含まれるシャッタ釦がユーザに押された時のレンズ210の位置で、撮像素子220により撮影された画像である。
演算部120は、検出部110により検出された被写体の顔を示す顔領域から人物の体方向に向かう直線である第1線を求める。演算部120は、求めた第1線が、撮影画像の中心を含む第1領域を通る場合に、第1領域内の第1線上に中心が位置する第2領域のコントラストを示すAF評価値と、顔領域のコントラストを示すAF評価値とをそれぞれ算出する。演算部120の動作については、図4で説明する。
判定部130は、顔領域の位置と第1線の向きとに基づいて、人物の体が撮影画像に含まれるか否かを判定する。なお、顔領域の位置と第1線の向きとの関係を示す情報は、判定テーブル160として記憶部270に予め格納される。判定テーブル160および判定部130の動作については、図5および図6で説明する。
選択部140は、顔領域のAF評価値と第2領域のAF評価値とを比較し、比較結果と判定部130による判定結果とに基づいて、顔領域および第2領域のうち、AF評価値が大きい領域を選択する。
評価部150は、人物を撮影する際に、選択部140により選択された顔領域または第2領域のいずれかを用いて、人物に合焦したか否かを評価する。すなわち、評価部150は、レンズ駆動部250および撮像駆動部260を駆動させて、コントラスト検出法に基づくAF処理を、選択部140により選択された顔領域または第2領域で実行する。制御部240は、評価部150によるAF処理の結果に基づいて、レンズ210を人物60に合焦させる。
図4は、図3に示したデジタルカメラ200により撮影された撮影画像の一例を示す。図4では、例えば、レンズ210の光軸の中心、すなわち撮影画像50(または撮像素子220)の中心を原点とし、撮影画像50の水平走査方向をX軸、および撮影画像50の垂直走査方向をY軸とする。また、一点破線で示す半径Rの円の第1領域AR1は、例えば、デジタルカメラ200によるAF処理性能が所定の精度以上を満たす解像度を有する範囲である。第1領域AR1の半径Rの値は、記憶部270に予め格納される。なお、第1領域AR1は、円形としたが、撮影画像50の中心を含む矩形等の領域でもよい。また、半径Rは、レンズ210に含まれるレンズ枚数およびレンズ210を含むレンズユニットの薄さ等に基づいて決定される。
また、デジタルカメラ200による解像度は、デジタルカメラ200に含まれる有機EL(Electro-Luminescence)パネル等のディスプレイで、水平方向における画像の表示性能を示す。解像度には、例えばTV本と呼ばれる単位が用いられ、水平方向に垂直方向と同じ幅を有する範囲に、ディスプレイに表示される黒白の垂直線の見分けられる本数(TV本)に基づいて、解像度が決定される。
図4に示した撮影画像50は、被写体である人物60が、撮影画像50の中心から外れた位置に立ち、デジタルカメラ200を斜めに傾けた構図で撮影されたものである。
検出部110は、撮影画像50から人物60の顔の顔領域70を検出する。図4では、顔領域70を点線の矩形の領域で示す。
演算部120は、検出部110により検出された顔領域70の中心Aを通り、人物60の体の方向に平行な直線LN1を求める。例えば、演算部120は、センサ部280により検出された重力の方向を示す情報を取得する。演算部120は、取得した情報から、図4に示すように、重力の方向としてY軸の負の側から時計回りに測定される傾き角αを求める。演算部120は、重力の方向を人物60の体の方向として、求めた傾き角αと式(1)とを用い直線LN1を求める。直線LN1は、第1線の一例である。
y=x/(tan(α))+Ay−Ax/(tan(α)) …(1)
ここで、(Ax,Ay)は、顔領域70の中心Aの座標を示す。なお、傾き角αは、Y軸の負の側から時計回りに測定されたが、Y軸の正の側から時計回りに測定された角度でもよい。
また、演算部120は、センサ部280から取得した重力の方向を示す情報の代わりに、検出部110による顔の検出結果を用いて傾き角αおよび直線LN1を求めてもよい。例えば、演算部120は、検出部110により検出された人物60における左右の目の位置を取得する。演算部120は、取得した左右の目を結ぶ線分に対して垂直の方向で、かつ検出部110により検出された鼻がある側の方向を人物60の体の方向とし、体の方向を示す傾き角αを求める。そして、演算部120は、求めた傾き角αと式(1)とを用い直線LN1を求める。このように、検出部110による顔の検出結果を用いることで、演算部120は、人物60が寝転がっている場合等でも、傾き角αおよび直線LN1を求めることができる。
演算部120は、直線LN1と第1領域AR1との交点B1、B2を求める。演算部120は、求めた交点B1と交点B2と結ぶ線分上に、例えば、N個の点C(C(1)−C(N))および各点Cを中心とするN個の第2領域AR2(AR2(1)−AR2(N))を設定する。図4では、点Cおよび第2領域AR2の一例として、k番目の点C(k)および第2領域AR2(k)を点線の矩形で示す(kは1以上でN以下の整数)。なお、交点B1、B2は、点C(1)、C(N)としてもよい。また、第2領域AR2は、例えば、顔領域70と同一または同様の大きさを有してもよく、顔領域70と異なる大きさを有してもよい。そして、演算部120は、顔領域70と各第2領域AR2とにおける撮影画像50のAF評価値を算出する。例えば、演算部120は、複数の第2領域AR2(1)−AR2(N)のAF評価値のうち、最大のAF評価値を有する第2領域AR2(k)のAF評価値を、顔領域70のAF評価値とともに判定部130および選択部140に出力する。
図5は、図3に示した判定テーブル160の一例を示す。判定テーブル160は、例えば、傾き角および顔領域の中心位置の格納領域を有する。傾き角の格納領域には、重力の方向を示す傾き角αの範囲が格納される。顔領域の中心位置の格納領域には、傾き角αが傾き角の格納領域に格納されるいずれかの角度の範囲に含まれる場合に、人物60の体が撮影画像50に含まれるための顔領域の中心Aの位置の条件が格納される。
図6は、傾き角αと顔領域70の中心Aの位置との関係を模式的に示す。図4で説明した要素と同一または同様の要素については、同一または同様の符号を付し、これらについては、詳細な説明を省略する。
図6(a)は、デジタルカメラ200を横位置(例えば、傾き角αが0度)にして人物60が撮影された撮影画像50を示す。図6(b)は、デジタルカメラ200を、例えば反時計回りに90度傾けた縦位置(傾き角αが90度)にして人物60が撮影された撮影画像50を示す。図6(c)は、デジタルカメラ200を、例えば逆さの横位置(傾き角αが180度)にして人物60が撮影された撮影画像50を示す。図6(d)は、デジタルカメラ200を、例えば時計回りに90度傾けた縦位置(傾き角αが270度)にして人物60が撮影された撮影画像50を示す。
例えば、図6(a)に示すように、演算部120により求められた傾き角αが45度以下あるいは315度より大きく、人物60の顔領域70の中心AがY座標の正の側に含まれる場合、人物60の体は撮影画像50に写っている可能性がある。換言すれば、求められた傾き角αが45度以下あるいは315度より大きい角度でも、顔領域70の中心AがY座標の負の側に含まれる場合、人物60の体が写っている可能性が、顔領域70の中心AがY座標の正の側の場合より低い。すなわち、演算部120により求められた傾き角αが45度以下あるいは315度より大きく、顔領域70の中心AのY座標が正の値の場合、判定部130は、人物60の体が撮影画像50に含まれると判定する。そして、判定部130は、演算部120により受信した最大のAF評価値を有する第2領域AR2(k)が人物60の体上に位置すると判定する。また、演算部120により求められた傾き角αが45度以下あるいは315度より大きく、人物60の顔領域70の中心AがY座標の負の値の場合、判定部130は、人物60の体が撮影画像50に含まれていないと判定する。すなわち、判定部130は、演算部120により受信した最大のAF評価値を有する第2領域AR2(k)が人物60の体上に位置しないと判定する。
また、図6(b)に示すように、演算部120により求められた傾き角αが45度より大きく135度以下の角度で、人物60の顔領域70の中心AがX座標の正の側に含まれる場合、人物60の体は撮影画像50に写っている可能性がある。換言すれば、求められた傾き角αが45度より大きく135度以下の角度でも、顔領域70の中心AがX座標の負の側に含まれる場合、人物60の体が写っている可能性が、顔領域70の中心AがX座標の正の側の場合より低い。すなわち、演算部120により求められた傾き角αが45度より大きく135度以下の角度で、人物60の顔領域70の中心AのX座標が正の値の場合、判定部130は、人物60の体が撮影画像50に含まれると判定する。そして、判定部130は、演算部120により受信した最大のAF評価値を有する第2領域AR2(k)が人物60の体上に位置すると判定する。また、求められた傾き角αが45度より大きく135度以下の角度で、顔領域70の中心AのX座標が負の値の場合、判定部130は、人物60の体が撮影画像50に含まれていないと判定する。すなわち、判定部130は、演算部120により受信した最大のAF評価値を有する第2領域AR2(k)が人物60の体上に位置しないと判定する。
また、図6(c)に示すように、演算部120により求められた傾き角αが135度より大きく225度以下の角度で、人物60の顔領域70の中心AがY座標の負の側に含まれる場合、人物60の体は撮影画像50に写っている可能性がある。換言すれば、求められた傾き角αが135度より大きく225度以下の角度でも、顔領域70の中心AがY座標の正の側に含まれる場合、人物60の体が写っている可能性が、顔領域70の中心AがY座標の負の側の場合より低い。すなわち、演算部120により求められた傾き角αが135度より大きく225度以下の角度で、人物60の顔領域70の中心AのY座標が負の値の場合、判定部130は、人物60の体が撮影画像50に含まれると判定する。そして、判定部130は、演算部120により受信した最大のAF評価値を有する第2領域AR2(k)が人物60の体上に位置すると判定する。また、求められた傾き角αが135度より大きく225度以下の角度で、顔領域70の中心AのY座標が正の値の場合、判定部130は、人物60の体が撮影画像50に含まれていないと判定する。すなわち、判定部130は、演算部120により受信した最大のAF評価値を有する第2領域AR2(k)が人物60の体上に位置しないと判定する。
また、図6(d)に示すように、演算部120により求められた傾き角αが225度より大きく315度以下の角度で、人物60の顔領域70の中心AがX座標の負の側に含まれる場合、人物60の体は撮影画像50に写っている可能性がある。換言すれば、求められた傾き角αが225度より大きく315度以下の角度でも、顔領域70の中心AがX座標の正の側に含まれる場合、人物60の体が写っている可能性が、顔領域70の中心AがX座標の負の側の場合より低い。すなわち、演算部120により求められた傾き角αが225度より大きく315度以下の角度で、人物60の顔領域70の中心AのX座標が負の値の場合、判定部130は、人物60の体が撮影画像50に含まれると判定する。そして、判定部130は、演算部120により受信した最大のAF評価値を有する第2領域AR2(k)が人物60の体上に位置すると判定する。また、求められた傾き角αが225度より大きく315度以下の角度で、顔領域70の中心AのX座標が正の値の場合、判定部130は、人物60の体が撮影画像50に含まれていないと判定する。すなわち、判定部130は、演算部120により受信した最大のAF評価値を有する第2領域AR2(k)が人物60の体上に位置しないと判定する。
選択部140は、判定部130により最大のAF評価値を有する第2領域AR2(k)が人物60の体上に位置すると判定された場合、顔領域70のAF評価値と第2領域AR2(k)のAF評価値とのうち、最も大きなAF評価値を示す領域を選択する。例えば、選択部140は、最大のAF評価値を有する第2領域AR2(k)のAF評価値から閾値Thを減算した差分値と、顔領域70のAF評価値とを比較する。すなわち、選択部140は、第2領域AR2(k)のAF評価値に対して閾値Thを減算することで、顔領域70を優先的に選択するようにする。そして、第2領域AR2(k)のAF評価値と閾値Thとの差分値が顔領域70のAF評価値以下の場合、選択部140は、顔領域70を選択する。一方、第2領域AR2(k)のAF評価値と閾値Thとの差分値が顔領域70のAF評価値より大きい場合、選択部140は、第2領域AR2(k)を選択する。
なお、判定部130により最大のAF評価値を有する第2領域AR2(k)が人物60の体上に位置しないと判定された場合、選択部140は、顔領域70を選択する。また、選択部140は、検出部110により顔領域70が検出されなかった場合、撮影画像50の中心を含む領域を選択する。
また、選択部140は、最も大きなAF評価値を示す領域を選択するために、最大のAF評価値を有する第2領域AR2(k)のAF評価値と、顔領域70のAF評価値とを直接比較してもよい。あるいは、選択部140は、例えば、顔領域70を優先的に選択するために、顔領域70のAF評価値に1より大きな値を乗算する重み付け処理を実行し、第2領域AR2(k)のAF評価値と重み付けした顔領域70のAF評価値とを比較してもよい。なお、選択部140は、第2領域AR2(k)のAF評価値に1より小さな値を乗算する重み付け処理を実行し、顔領域70のAF評価値と重み付けした第2領域AR2(k)のAF評価値とを比較してもよい。
図7および図8は、図3に示した画像処理装置100bにおける画像処理の一例を示す。図7および図8に示したステップS100からステップS230の処理は、制御部240が画像処理プログラムを実行することにより実現される。すなわち、図7および図8は、画像処理方法の別の実施形態を示す。なお、図7および図8に示す処理は、デジタルカメラ200に搭載されるハードウェアにより実行されてもよい。この場合、図3に示した検出部110、演算部120、判定部130、選択部140および評価部150は、デジタルカメラ200内に配置される回路により実現される。
ステップS100では、検出部110は、図3で説明したように、撮影画像50から被写体である人物60の顔を検出する。
ステップS110では、検出部110は、撮影画像50に人物60の顔が含まれるか否かを判定する。検出部110は、人物60の顔を検出した場合、撮影画像50に人物60の顔が含まれると判定する。この場合、画像処理装置100bの処理は、ステップS120に移る。一方、検出部110は、人物60の顔を検出できなかった場合、撮影画像50に人物60の顔が含まれないと判定する。この場合、画像処理装置100bの処理は、図8に示したステップS200に移る。
ステップS120では、演算部120は、図4で説明したように、センサ部280により検出された重力の方向を示す情報を用いて、ステップS100で検出部110により検出された顔領域70を通り、かつ人物60の体方向に向かう直線LN1を求める。
ステップS130では、演算部120は、ステップS120で求めた直線LN1が第1領域AR1を通るか否かを判定する。例えば、演算部120は、撮影画像50の中心から直線LN1までの距離が最小となる直線LN1上の画素の位置を求める。演算部120は、求めた距離が最小となる直線LN1上の画素の位置が第1領域AR1に含まれるか否かを判定する。すなわち、距離が最小となる直線LN1上の画素の位置が第1領域AR1に含まれる場合、演算部120は、直線LN1が第1領域AR1を通ると判定する。この場合、画像処理装置100bの処理は、ステップS140に移る。一方、距離が最小となる直線LN1上の画素の位置が第1領域AR1に含まれない場合、演算部120は、直線LN1が第1領域AR1を通らないと判定する。この場合、画像処理装置100bの処理は、図8に示したステップS220に移る。
ステップS140では、演算部120は、図4で説明したように、直線LN1と第1領域AR1との交点B1、B2を求める。例えば、演算部120は、直線LN1の式(1)と、XY座標を原点とする半径Rの円の式との連立方程式から、交点B1、B2を求める。
ステップS150では、演算部120は、図4で説明したように、ステップS140で求めた交点B1と交点B2との間の直線LN1上に、例えば、C(1)−C(N)および各点Cを中心とするN個の第2領域AR2(1)−AR2(N)を設定する。
ステップS160では、演算部120は、図4で説明したように、顔領域70のAF評価値と、複数の第2領域AR2(1)−AR2(N)のAF評価値とをそれぞれ算出する。
ステップS170では、演算部120は、図4で説明したように、複数の第2領域AR2のAF評価値のうち、最大のAF評価値を有する第2領域AR2(k)のAF評価値を、顔領域70のAF評価値とともに判定部130および選択部140に出力する。
ステップS180では、判定部130は、図5および図6で説明したように、顔領域70の中心Aの位置と判定テーブル160とに基づいて、ステップS170で演算部120から受信した第2領域AR2(k)が人物60の体上に位置するか否かを判定する。最大のAF評価値を有する第2領域AR2(k)が人物60の体上に位置すると判定部130が判定した場合、画像処理装置100bの処理は、ステップS190に移る。一方、最大のAF評価値を有する第2領域AR2(k)が人物60の体上に位置しないと判定部130が判定した場合、画像処理装置100bの処理は、図8に示したステップS220に移る。
ステップS190では、選択部140は、ステップS170で演算部120から受信した第2領域AR2(k)のAF評価値が、顔領域70のAF評価値より大きいか否かを判定する。例えば、選択部140は、受信した第2領域AR2(k)のAF評価値から閾値Thを減算した差分値と、顔領域70のAF評価値とを比較する。第2領域AR2(k)のAF評価値と閾値Thとの差分値が顔領域70のAF評価値より大きいと選択部140が判定した場合、画像処理装置100bの処理は、図8に示したステップS210に移る。一方、第2領域AR2(k)のAF評価値と閾値Thとの差分値が顔領域70のAF評価値以下と選択部140が判定した場合、画像処理装置100bの処理は、図8に示したステップS220に移る。
ステップS200では、選択部140は、ステップS100で顔領域70が検出されなかったため、撮影画像50の中心を含む領域を選択する。そして、画像処理装置100bの処理は、ステップS230に移る。
ステップS210では、選択部140は、最大のAF評価値を有する第2領域AR2(k)のAF評価値と閾値Thとの差分値が、顔領域70のAF評価値より大きいと、ステップS190で判定されたため、第2領域AR2(k)を選択する。そして、画像処理装置100bの処理は、ステップS230に移る。
ステップS220では、選択部140は、顔領域70を選択し、画像処理装置100bの処理は、ステップS230に移る。
ステップS230では、評価部150は、図3で説明したように、選択部140により選択された領域(ステップS200からステップS220のいずれかで選択された領域)を用いて、被写体に合焦したか否かを評価する。
そして、画像処理装置100bは、処理を終了する。デジタルカメラ200は、評価部150によるAF処理の結果に基づいてレンズ210を被写体に合焦し、被写体を撮影する。なお、図7および図8に示した処理は、デジタルカメラ200が有するシャッタ釦がユーザにより押される度に、繰り返し実行されることが好ましい。
以上、図3から図8に示した実施形態では、顔領域70および第1領域AR1内の直線LN1上に中心が位置する複数の第2領域AR2のうち、算出されたAF評価値が大きい領域を選択する。これにより、画像処理装置100bは、合焦用に撮影された撮影画像50の中心の位置から被写体が外れている場合でも、被写体においてコントラストが他よりも高い領域を検出することができる。この結果、画像処理装置100bは、撮影画像50上での被写体の位置に依らず、被写体への合焦の精度を向上させることができる。これにより、デジタルカメラ200は、従来と比べて精度良く被写体に合焦させて被写体を撮影することができる。
図9は、画像処理装置および画像処理方法の別の実施形態を示す。図3で説明した要素と同一または同様の機能を有する要素については、同一または同様の符号を付し、これらについては、詳細な説明を省略する。図9に示した画像処理装置100cは、例えば、デジタルカメラ200に搭載される。なお、画像処理装置100cは、スマートフォン等の携帯通信端末等に搭載されてもよい。
画像処理装置100cは、検出部110、演算部120a、判定部130a、選択部140aおよび評価部150を有する。検出部110、演算部120a、判定部130a、選択部140aおよび評価部150の機能は、制御部240が画像処理プログラムを実行することで実現される。
演算部120aは、例えば、検出部110により検出された被写体の顔を示す顔領域から人物の体方向に向かう直線である第1線を求める。演算部120aは、求めた第1線と撮影画像の中心との距離が最小となる第1線上の画素を含む第1領域のコントラストを示すAF評価値と、顔領域のコントラストを示すAF評価値とをそれぞれ算出する。演算部120aの動作については、図10で説明する。
判定部130aは、顔領域の位置と第1線の向きとに基づいて、人物の体が撮影画像に含まれるか否かを判定する。なお、顔領域の位置と第1線の向きとの関係を示す情報は、判定テーブル160aとして記憶部270に予め格納される。判定テーブル160aおよび判定部130aの動作については、図11で説明する。
選択部140aは、顔領域のAF評価値と第1領域のAF評価値とを比較し、比較結果と判定部130による判定結果とに基づいて、顔領域および第1領域のうち、AF評価値が大きい領域を選択する。
図10は、図9に示したデジタルカメラ200により撮影された撮影画像の一例を示す。図4で説明した要素と同一または同様の要素については、同一または同様の符号を付し、これらについては、詳細な説明を省略する。
演算部120aは、検出部110により検出された顔領域70の中心Aを通り、かつ人物60の体の方向に平行な直線LN2を求める。例えば、演算部120aは、センサ部280により検出された重力の方向を示す情報を取得する。演算部120aは、取得した情報から、図10に示すように、重力の方向としてY軸の正の側から時計回りに測定される傾き角βを求める。演算部120aは、重力の方向を人物60の体の方向として、求めた傾き角βと式(2)とを用い直線LN2を求める。直線LN2は、第1線の一例である。
y=x/(tan(β))+Ay−Ax/(tan(β)) …(2)
なお、傾き角βは、Y軸の正の側から時計回りに測定されたが、Y軸の負の側から時計回りに測定された角度でもよい。
また、演算部120aは、センサ部280から取得した重力の方向を示す情報の代わりに、検出部110による顔の検出結果を用いて傾き角βおよび直線LN2を求めてもよい。例えば、演算部120aは、検出部110により検出された人物60における左右の目を取得する。演算部120aは、取得した左右の目を結ぶ線分に対して垂直の方向で、かつ検出部110により検出された鼻がある側の方向を人物60の体の方向とし、体の方向を示す傾き角βを求める。そして、演算部120aは、求めた傾き角βと式(2)とを用い直線LN2を求める。このように、検出部110による顔の検出結果を用いることで、演算部120aは、人物60が寝転がっている場合等でも、傾き角βおよび直線LN2を求めることができる。
演算部120aは、求めた直線LN2と撮影画像50の中心との距離が最小となる直線LN2上の画素Dの位置を求める。例えば、演算部120aは、直線LN2の傾きに対して垂直な傾き“−tanβ”で、XY座標の原点(撮影画像50の中心)を通る直線LN3を示す式と、直線LN2の式(2)との連立方程式から、画素Dの座標を求める。演算部120aは、求めた画素Dを中心とする第1領域AR3を設定する。なお、第1領域AR3は、例えば、顔領域70と同一または同様の大きさを有してもよく、顔領域70と異なる大きさを有してもよい。そして、演算部120aは、顔領域70と第1領域AR3とにおける撮影画像50のAF評価値を算出する。
図11は、図9に示した判定テーブル160aの一例を示す。判定テーブル160aは、図5に示した判定テーブル160の傾き角αの代わりに、傾き角βにしたものである。したがって、判定テーブル160aの詳細な説明は省略する。
図12は、図9に示した画像処理装置100cにおける画像処理の一例を示す。図12に示したステップS300からステップS410の処理は、制御部240が画像処理プログラムを実行することにより実現される。すなわち、図12は、画像処理方法の別の実施形態を示す。なお、図12に示す処理は、デジタルカメラ200に搭載されるハードウェアにより実行されてもよい。この場合、図9に示した検出部110、演算部120a、判定部130a、選択部140aおよび評価部150は、デジタルカメラ200内に配置される回路により実現される。
ステップS300では、検出部110は、図3で説明したように、撮影画像50から被写体である人物60の顔を検出する。
ステップS310では、検出部110は、撮影画像50に人物60の顔が含まれるか否かを判定する。検出部110は、人物60の顔を検出した場合、撮影画像50に人物60の顔が含まれると判定する。この場合、画像処理装置100cの処理は、ステップS320に移る。一方、検出部110は、人物60の顔を検出できなかった場合、撮影画像50に人物60の顔が含まれないと判定する。この場合、画像処理装置100cの処理は、ステップS380に移る。
ステップS320では、演算部120aは、図10で説明したように、センサ部280により検出された重力の方向を示す情報を用いて、ステップS300で検出部110により検出された顔領域70を通り、かつ人物60の体方向に向かう直線LN2を求める。
ステップS330では、演算部120aは、図10で説明したように、撮影画像50の中心からの距離が最小となる直線LN2上の画素Dの位置を求める。
ステップS340では、演算部120aは、図10で説明したように、ステップS330で求めた画素Dの位置を中心とする第1領域AR3を設定する。
ステップS350では、判定部130aは、図5、図6、図9および図11で説明したように、顔領域70の中心Aの位置と判定テーブル160aとに基づいて、ステップS340で設定された第1領域AR3が人物60の体上に位置するか否かを判定する。第1領域AR3が人物60の体上に位置すると判定部130aが判定した場合、画像処理装置100cの処理は、ステップS360に移る。一方、第1領域AR3が人物60の体上に位置しないと判定部130aが判定した場合、画像処理装置100cの処理は、ステップS400に移る。
ステップS360では、演算部120aは、図9で説明したように、顔領域70のAF評価値と、第1領域AR3のAF評価値とをそれぞれ算出する。
ステップS370では、選択部140aは、図9で説明したように、ステップS360で算出された第1領域AR3のAF評価値が、顔領域70のAF評価値より大きいか否かを判定する。例えば、選択部140aは、第1領域AR3のAF評価値から閾値Thを減算した差分値と、顔領域70のAF評価値とを比較する。すなわち、選択部140aは、第1領域AR3のAF評価値に対して閾値Thを減算することで、顔領域70を優先的に選択するようにする。そして、第1領域AR3のAF評価値と閾値Thとの差分値が顔領域70のAF評価値より大きいと選択部140aが判定した場合、画像処理装置100cの処理は、ステップS390に移る。
一方、第1領域AR3のAF評価値と閾値Thとの差分値が顔領域70のAF評価値以下と選択部140aが判定した場合、画像処理装置100cの処理は、ステップS400に移る。
ステップS380では、選択部140aは、ステップS300で顔領域70が検出されなかったため、撮影画像50の中心を含む領域を選択する。そして、画像処理装置100cの処理は、ステップS410に移る。
ステップS390では、選択部140aは、第1領域AR3のAF評価値と閾値Thとの差分値が、顔領域70のAF評価値より大きいと、ステップS370で判定されたため、第1領域AR3を選択する。そして、画像処理装置100cの処理は、ステップS410に移る。
ステップS400では、選択部140aは、顔領域70を選択し、画像処理装置100cの処理は、ステップS410に移る。
ステップS410では、評価部150は、図3で説明したように、選択部140aにより選択された領域(ステップS380からステップS400のいずれかで選択された領域)を用いて、被写体に合焦したか否かを評価する。
そして、画像処理装置100cは、処理を終了する。デジタルカメラ200は、評価部150によるAF処理の結果に基づいてレンズ210を被写体に合焦し、被写体を撮影する。なお、図12に示した処理は、デジタルカメラ200が有するシャッタ釦がユーザにより押される度に、繰り返し実行されることが好ましい。
以上、図9から図12に示した実施形態では、顔領域70および撮影画像50の中心からの距離が最小となる直線LN2上の画素Dを含む第1領域AR3のうち、算出されたAF評価値が大きい領域を選択する。これにより、画像処理装置100cは、合焦用に撮影された撮影画像50の中心の位置から被写体が外れている場合でも、被写体においてコントラストが他よりも高い領域を検出することができる。この結果、画像処理装置100cは、撮影画像50上での被写体の位置に依らず、被写体への合焦の精度を向上させることができる。これにより、デジタルカメラ200は、従来と比べて精度良く被写体に合焦させて被写体を撮影することができる。
図13は、図1、図2、図3および図9に示した画像処理装置100(100a、100b、100c)のハードウェアの一例を示す。図1から図9で説明した要素と同一または同様の機能を有する要素については、同一または同様の符号を付し、これらについては、詳細な説明を省略する。
デジタルカメラ200は、レンズ210、撮像素子220、AD変換部230、センサ部280、レンズ駆動部250、撮像駆動部260、CPU300、メモリ310、入力装置320および出力装置330を有する。CPU300、メモリ310、入力装置320および出力装置330は、バスを介し互いに接続される。
CPU300は、例えば、撮像された画像の信号を、撮像素子220からAD変換部230を介して受信する。
メモリ310は、デジタルカメラ200のオペレーティングシステムとともに、CPU300が画像処理を実行するためのアプリケーションプログラムを格納する。また、メモリ310は、図5に示した判定テーブル160あるいは図11に示した判定テーブル160aを予め格納する。
入力装置320は、例えば、シャッタ釦あるいはタッチパネル等である。デジタルカメラ200を使用するユーザは、入力装置320を操作し、例えば、撮影の実行の指示とともに、画像処理の設定等を行う。
出力装置330は、有機EL等のディスプレイである。出力装置330は、画像処理装置100により画像処理された画像を表示する。また、出力装置330は、デジタルカメラ200の設定を行う画面等を表示する。
なお、画像処理を実行するためのアプリケーションプログラムは、例えば、CD(Compact Disc)あるいはDVD(Digital Versatile Disc)等のリムーバブルディスクに記録して頒布することができる。また、デジタルカメラ200は、画像処理を実行するためのアプリケーションプログラムを、デジタルカメラ200に含まれるネットワークインタフェースを介してネットワークからダウンロードし、メモリ310に格納してもよい。
また、CPU300は、画像処理のアプリケーションプログラムを実行することで、図1に示した検出部10、演算部20、選択部30および評価部40として機能する。また、CPU300は、画像処理のアプリケーションプログラムを実行することで、図2に示した検出部10、演算部20a、選択部30aおよび評価部40として機能する。また、CPU300は、画像処理のアプリケーションプログラムを実行することで、図3に示した検出部110、演算部120、判定部130、選択部140および評価部150として機能する。また、CPU300は、画像処理のアプリケーションプログラムを実行することで、図9に示した検出部110、演算部120a、判定部130a、選択部140aおよび評価部150として機能する。
すなわち、画像処理装置100は、CPU300およびメモリ310の協働によって実現する。
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
以上の実施形態に関し、さらに以下の付記を開示する。
(付記1)
画像から被写体の顔を検出する検出部と、
検出された前記被写体の顔を示す顔領域から前記被写体の体を通る第1線が、前記画像の中心を含む第1領域を通る場合に、前記第1領域内の前記第1線上に中心が位置する第2領域のコントラストと前記顔領域のコントラストとをそれぞれ算出する演算部と、
前記顔領域および前記第2領域のうち、前記コントラストが大きい領域を選択する選択部と、
前記被写体を撮影する際に、前記選択部により選択された前記顔領域または前記第2領域のいずれかを用いて、前記被写体に合焦したか否かを評価する評価部と
を備えることを特徴とする画像処理装置。
(付記2)
画像から被写体の顔を検出する検出部と、
検出された前記被写体の顔を示す顔領域から前記被写体の体を通る第1線と前記画像の中心との距離が最小となる前記第1線上の画素を含む第1領域のコントラストと前記顔領域のコントラストとをそれぞれ算出する演算部と、
前記顔領域および前記第1領域のうち、前記コントラストが大きい領域を選択する選択部と、
前記被写体を撮影する際に、前記選択部により選択された前記顔領域または前記第1領域のいずれかを用いて、前記被写体に合焦したか否かを評価する評価部と
を備えることを特徴とする画像処理装置。
(付記3)
付記1または付記2に記載の画像処理装置において、
前記演算部は、前記第1線の向きを、外部のセンサ部により検出された重力の方向とする
ことを特徴とする画像処理装置。
(付記4)
付記3に記載の画像処理装置において、
前記被写体の体が前記画像に含まれるか否かを前記顔領域の位置と前記重力の方向とに基づいて判定する判定部を備え、
前記選択部は、前記判定部により前記被写体の体が前記画像に含まれないと判定された場合、前記顔領域を選択する
ことを特徴とする画像処理装置。
(付記5)
画像から被写体の顔を検出し、
検出された前記被写体の顔を示す顔領域から前記被写体の体を通る第1線が、前記画像の中心を含む第1領域を通る場合に、前記第1領域内の前記第1線上に中心が位置する第2領域のコントラストと前記顔領域のコントラストとをそれぞれ算出し、
前記顔領域および前記第2領域のうち、前記コントラストが大きい領域を選択し、
前記被写体を撮影する際に、前記コントラストが大きい領域として選択された前記顔領域または前記第2領域のいずれかを用いて、前記被写体に合焦したか否かを評価する
ことを特徴とする画像処理方法。
(付記6)
画像から被写体の顔を検出し、
検出された前記被写体の顔を示す顔領域から前記被写体の体を通る第1線と前記画像の中心との距離が最小となる前記第1線上の画素を含む第1領域のコントラストと前記顔領域のコントラストとをそれぞれ算出し、
前記顔領域および前記第1領域のうち、前記コントラストが大きい領域を選択し、
前記被写体を撮影する際に、前記コントラストが大きい領域として選択された前記顔領域または前記第1領域のいずれかを用いて、前記被写体に合焦したか否かを評価する
ことを特徴とする画像処理方法。
(付記7)
付記5または付記6に記載の画像処理方法において、
前記演算の処理は、前記第1線の向きを、外部のセンサ部により検出された重力の方向とする
ことを特徴とする画像処理方法。
(付記8)
付記7に記載の画像処理方法において、
前記被写体の体が前記画像に含まれるか否かを前記顔領域の位置と前記重力の方向とに基づいて判定し、
前記選択の処理は、前記判定の処理により前記被写体の体が前記画像に含まれないと判定された場合、前記顔領域を選択する
ことを特徴とする画像処理方法。