以下、本発明の実施形態について添付図面を参照しながら詳細に説明する。以下に説明される各実施形態は、本発明を実現可能な構成の一例に過ぎない。以下の各実施形態は、本発明が適用される装置の構成や各種の条件に応じて適宜に修正または変更することが可能である。また、以下の各実施形態に含まれる要素の組合せの全てが本発明を実現するのに必須であるとは限られず、要素の一部を適宜に省略することが可能である。したがって、本発明の範囲は、以下の各実施形態に記載される構成によって限定されるものではない。また、相互に矛盾のない限りにおいて実施形態内に記載された複数の構成を組み合わせた構成も採用可能である。
以下の実施形態においては撮像装置としてデジタルカメラが例示されるが、本実施形態の構成は撮影機能を有さない電子機器(画像処理装置)に対しても適用可能である。例えば、そのような電子機器として、スマートフォンを含む携帯電話機、タブレット端末、ゲーム機、パーソナルコンピュータ、ナビゲーションシステム、家電製品、ロボットが非限定的に例示される。
(撮像装置の構成)
図1は、本発明の実施形態に係る撮像装置の一例であるデジタルカメラ100の全体的な機能構成を示すブロック図である。
概略的には、デジタルカメラ100は、動画および静止画を撮影して記録することができる。図示の通り、デジタルカメラ100が有する要素は、バス160を介して互いに通信可能であるように接続されている。デジタルカメラ100の動作は、主制御部151によって統合的に制御される。
デジタルカメラ100は、デジタルカメラ100から撮影した被写体までの距離に関する距離情報を取得することができる。以上の距離情報は、例えば、各画素値が、その画素値に対応する被写体までの距離を示す距離画像であってよい。本実施形態の距離情報は、視差画像に基づいて取得されるが、他の手法によって距離情報が取得されてよい。本実施形態の視差画像は、1つのマイクロレンズを共有する複数の光電変換素子の組を有する撮像素子141を用いて取得されるが、他の手法によって視差画像が取得されてよい。例えば、デジタルカメラ100がステレオカメラのような多眼カメラとして機能して視差画像を取得してもよいし、任意の手法によって取得され記憶されている視差画像のデータを読み込んでその視差画像を取得してもよい。
デジタルカメラ100は、指定された特定の被写体領域と類似する領域の探索を継続的に実行することによって被写体追跡機能を実現する追跡部(追跡手段)161を有する。追跡部161は、視差画像から生成した距離情報を用いて以上の被写体領域の探索を実行する。追跡部161の構成および動作の詳細については後述される。
撮影レンズ101(レンズユニット)は、固定1群レンズ102、ズームレンズ111、絞り103、固定3群レンズ121、フォーカスレンズ131、ズームモータ112、絞りモータ104、およびフォーカスモータ132を含む撮像光学系である。固定1群レンズ102、ズームレンズ111、絞り103、固定3群レンズ121、およびフォーカスレンズ131が、撮像光学系を主として構成する。なお、便宜上、レンズ102、111、121、131は、それぞれ1枚のレンズとして図示されているが、それぞれ複数のレンズで構成されてもよい。また、撮影レンズ101は、デジタルカメラ100と一体的に構成されてもよく、デジタルカメラ100の本体に着脱可能な交換レンズとして構成されてもよい。
絞り制御部105は、絞り103を駆動する絞りモータ104の動作を制御して絞り103の開口径を変更する。
ズーム制御部113は、ズームレンズ111を駆動するズームモータ112の動作を制御して撮影レンズ101の焦点距離(画角)を変更する。
フォーカス制御部133は、撮像素子141から得られる1対の焦点検出用信号(A像およびB像)の位相差に基づいて、撮影レンズ101(フォーカスレンズ131)のデフォーカス量およびデフォーカス方向を算出する。そして、フォーカス制御部133は、デフォーカス量およびデフォーカス方向をフォーカスモータ132の駆動量および駆動方向に変換する。以上の変換によって取得した駆動量および駆動方向に基づいて、フォーカス制御部133は、フォーカスモータ132の動作を制御してフォーカスレンズ131を駆動することにより、撮影レンズ101の焦点状態を制御する。このようにして、フォーカス制御部133は位相差検出方式の自動焦点検出(AF)を実施する。なお、フォーカス制御部133は、撮像素子141から得られる画像信号から得られるコントラスト評価値に基づくコントラスト検出方式のAFを実行してもよい。
撮影レンズ101によって撮像素子141の結像面に形成される被写体像は、撮像素子141に2次元的に配置された複数の画素がそれぞれ有する光電変換素子により電気信号(画像信号)に変換される。本実施形態では、撮像素子141に、水平方向にm行、垂直方向にn列(m,nは2以上の整数)の画素が行列状に配置されており、各画素には2つの光電変換素子(光電変換領域)が設けられている。撮像素子141からの信号読み出しは、主制御部151からの指示に従ってセンサ制御部143が制御する。
(撮像素子の画素配列)
図2を参照して、本実施形態に係る撮像素子141の画素配列について説明する。図2は、本実施形態に係る撮像素子141における画素200の配置例を模式的に示す図であり、水平方向(行方向)に4画素、垂直方向(列方向)に4画素の合計16画素からなる領域を代表的に示している。撮像素子141の各画素200には、1つのマイクロレンズ210と、マイクロレンズ210を介して受光する2つの光電変換素子201、202とが設けられている。図2の例では、水平方向に2つの光電変換素子201、202が配置されているため、各画素200は撮影レンズ101の瞳領域を水平方向に分割する機能を有する。なお、光電変換素子は、垂直方向に分割配置されてもよいし、光電変換素子の分割方向が異なる画素200が撮像素子141内に混在していてもよい。また、光電変換素子は、垂直および水平の両方向に分割されていてもよい。光電変換素子が、同一方向において3つ以上に分割されていてもよい。
撮像素子141には、水平方向2画素×垂直方向2画素の4画素を繰り返し単位とする原色ベイヤー配列のカラーフィルタが設けられている。カラーフィルタは、R(赤)およびG(緑)が水平方向に繰り返し配置される行と、GおよびB(青)が水平方向に繰り返し配置される行とが交互に配置された構成を有する。以下の説明では、赤フィルタが設けられた画素200Rを赤画素、G(緑)フィルタが設けられた画素200Gを緑画素、B(青)フィルタが設けられた画素200Bを青画素と呼ぶことがある。
以下の説明では、1つの画素200にそれぞれ含まれる第1の光電変換素子201をA画素、第2の光電変換素子202をB画素と呼び、A画素から読み出される画像信号をA信号、B画素から読み出される画像信号をB信号と呼ぶことがある。ある領域に含まれる複数の画素200から得られるA信号で構成される画像(A像)と、B信号で構成される画像(B像)とが、1組の視差画像を構成する。したがって、デジタルカメラ100は、1回の撮影によって2つの視差画像を生成することができる。また、画素ごとにA信号とB信号とを加算すると、瞳分割機能を持たない一般的な画素と同様の信号を得ることができる。以下の説明では、このA信号とB信号とを加算した加算信号をA+B信号と呼び、A+B信号から構成される画像を撮像画像と呼ぶことがある。
以上のように、1つの画素200から、第1の光電変換素子201の出力(A信号)、第2の光電変換素子202の出力(B信号)、および第1の光電変換素子201と第2の光電変換素子202の加算出力(A+B信号)という3種類の信号を読み出せる。なお、A信号は、第1の光電変換素子201からの読出しに代えて、A+B信号からB信号を減ずることによっても求められる。B信号についても同様である。
図1に戻って、引き続き、デジタルカメラ100の全体的な構成について説明する。撮像素子141から読み出された画像信号は、信号処理部142に供給される。撮像手段としての信号処理部142は、ノイズ低減処理、A/D変換処理、自動利得制御処理などの信号処理を画像信号に対して適用し、適用後の画像信号をセンサ制御部143に出力する。センサ制御部143は、信号処理部142から受信した画像信号を揮発性の記憶媒体であるRAM(Random Access Memory)154に蓄積する。
画像処理部152は、RAM154に蓄積された画像データに対して所定の画像処理を適用(実行)する。画像処理部152が適用する画像処理には、ホワイトバランス調整処理、色補間(デモザイク)処理、ガンマ補正処理といった所謂現像処理の他、信号形式変換処理、スケーリング処理、被写体検出処理、被写体認識処理などの処理が非限定的に含まれる。また、画像処理部152は、自動露出制御(AE)に用いられる被写体輝度に関する情報を生成することができる。画像処理部152は、被写体検出処理や被写体認識処理の結果を他の画像処理(例えば、ホワイトバランス調整処理)に利用してもよい。なお、デジタルカメラ100がコントラスト検出方式のAFを行う場合、画像処理部152がAF評価値を生成してもよい。画像処理部152は、画像処理を適用した画像データ(視差画像、撮像画像)をRAM154に保存する。
加えて、画像処理部152は、トリミング手段として機能することができ、被写体検出時に用いる評価用画像のトリミングを実行する。トリミングの詳細については後述される。
主制御部151は、記憶部155等に記憶されたプログラムをRAM154に展開し実行することでデジタルカメラ100の各要素を統合的に制御して、デジタルカメラ100の各機能を実現する。主制御部151は、以上のプログラムを実行する1つ以上のCPU(Central Processing Unit)やMPU(Micro Processing Unit)等のプログラマブルプロセッサを有する。
また、主制御部151は、被写体輝度の情報に基づいて露出条件(シャッタースピード、蓄積時間、絞り値、感度等)を自動的に決定するAE(Automatic Exposure)処理を実行する。被写体輝度の情報は、例えば、画像処理部152から取得することができる。主制御部151は、例えば、人物の顔など、特定被写体を含む領域を基準として露出条件を決定することもできる。主制御部151は、動画撮影時には絞り値を固定し、電子シャッタスピード(蓄積時間)とゲインの大きさとで露出を制御する。主制御部151は、決定した蓄積時間とゲインの大きさとをセンサ制御部143に通知する。センサ制御部143は、通知された露出条件に従った撮影が行われるように撮像素子141の動作を制御する。
本実施形態では、1回の撮影によって、1組(2枚)の視差画像と、撮像画像との計3つの画像が取得可能である。画像処理部152は、1回の撮影によって取得された各画像に対して画像処理を適用し、RAM154に書き込む。追跡部161は、1組の視差画像から被写体の距離情報を取得して、撮像画像を対象とした被写体追跡処理に利用する。被写体追跡に成功した場合、追跡部161は、撮像画像内の被写体領域の位置についての情報と、その位置の信頼度に関する情報を出力する。
被写体追跡の結果は、例えば、焦点検出領域の自動設定に用いることができる。結果として、特定の被写体領域に対する追跡AF機能を実現できる。また、焦点検出領域の輝度情報に基づいてAE処理を行ったり、焦点検出領域の画素値に基づいて画像処理(例えば、ガンマ補正処理やホワイトバランス調整処理など)を行ったりすることもできる。なお、主制御部151は、現在の被写体領域の位置を表す指標(例えば、領域を囲む矩形枠)を、表示部150に表示される表示画像に重畳的に表示させてもよい。
記憶部155は、主制御部151が実行するプログラム、プログラムの実行に必要な設定値、GUIデータ、ユーザ設定値などのデータを記憶する。操作部156の操作によって電源OFF状態から電源ON状態への移行がユーザから指示されると、記憶部155に格納されたプログラムがRAM154の一部に読み込まれ、主制御部151がプログラムを実行する。
表示部150は、RAM154に格納された画像データや露出条件、トリミング倍率等の設定情報を表示装置に表示させる要素である。表示装置として、例えば、液晶ディスプレイや有機ELディスプレイが用いられる。画像データを表示する際に、主制御部151は、表示部150による表示サイズに適合するように画像処理部152に画像データをスケーリングさせ、スケーリング後の画像データをRAM154内のビデオメモリ領域(VRAM領域)に書き込ませる。表示部150は、RAM154のVRAM領域に格納された表示用の画像データを読み出して表示装置に表示させる。
表示部150は、デジタルカメラ100による動画撮影時(撮影スタンバイ状態または動画記録状態)に、撮影された動画を表示装置に即時に表示することによって、表示装置を電子ビューファインダー(EVF)として機能させることができる。表示部150がEVFを実現している際に表示される動画像およびそのフレーム画像は、ライブビュー画像またはスルー画像と呼ばれる。表示部150は、デジタルカメラ100による静止画撮影時、直前に撮影された静止画を表示装置に一定時間に亘って表示することによって、ユーザが撮影結果を確認できるようにする。以上の動画および静止画の表示動作は、主制御部151が表示部150を制御することによって実現される。
操作部156は、ユーザがデジタルカメラ100に対して指示を入力するための要素であって、例えば、スイッチ、ボタン、キー、タッチパネル等を含む。操作部156に対して入力された指示はバス160を介して主制御部151に供給され、主制御部151は入力された指示に応じた動作を実現するために各要素を制御する。
記録媒体157は、画像データ等のデータを記録する記録媒体であって、例えば、デジタルカメラ100に着脱可能なメモリカードである。主制御部151は、RAM154に保存されている画像データを記録媒体157に記録するに際して、所定のデータを画像データに付する等の処理を実行して、JPEG等の記録形式に応じたデータファイルを生成する。以上のデータファイル生成において、主制御部151は、圧縮解凍部153に画像データを符号化させて情報量を圧縮してもよい。
バッテリ159は、電源管理部158により管理される電源であって、デジタルカメラ100の全体に電力を供給する。
(追跡部の構成および動作)
図3は、本実施形態に係る追跡部161の機能構成の例を示すブロック図である。追跡部161は、機能ブロックとして、照合部1610と、特徴抽出部1620と、距離マップ生成部1630とを有する。概略的には、追跡部161は、指定された位置から追跡を行う画像領域(被写体領域)を特定し、特定された被写体領域から特徴量を抽出する。追跡部161は、画像処理部152から供給される個々の撮像画像に対して、先に抽出した特徴量と類似度の高い領域を被写体領域として探索する。また、追跡部161は、1対の視差画像から距離情報(評価用画像)を取得し、被写体領域の特定に利用する。以下、追跡部161(照合部1610、距離マップ生成部1630、特徴抽出部1620)が実行する処理について詳細に説明する。
(照合部)
照合部1610は、特徴抽出部1620から供給される被写体領域の特徴量を用いて、画像処理部152から供給される画像内の被写体領域を探索する。照合部1610は、任意の手法によって画像の特徴量による領域探索を実行できるが、例えば、テンプレートマッチングおよびヒストグラムマッチングの少なくとも一方が領域探索手法として用いられると好適である。テンプレートマッチングおよびヒストグラムマッチングについて、以下に説明する。
テンプレートマッチングは、画素パターンをテンプレートとして設定し、設定されたテンプレートとの類似度が最も高い領域を画像内で探索する技術である。テンプレートと画像領域との類似度としては、対応画素間の差分絶対値和のような相関量を用いることができる。
図4は、本発明の実施形態におけるテンプレートマッチングの説明図である。図4(a)は、テンプレート301とその詳細構成302を模式的に例示する説明図である。テンプレートマッチングを行う場合、特徴抽出部1620は、テンプレートとして用いる画素パターンを特徴量として照合部1610に供給する。本例では、照合部1610が、水平画素数W、垂直画素数Hの大きさを有するテンプレート301に含まれる画素の輝度値を特徴量Tとして用いてパターンマッチングを行う。照合部1610は、必要に応じて画素データをRGB形式からYUV形式に変換してよい。パターンマッチングに用いるテンプレート301の特徴量T(i,j)は、テンプレート301内の座標を図4(a)に示すような座標系で表した場合、以下の式(1)で表現される。
T(i,j) = {T(0,0), T(1,0), ..., T(W-1,H-1)} (1)
図4(b)は、被写体領域に含まれる探索領域303とその詳細構成305を模式的に例示する説明図である。探索領域303は、画像内でパターンマッチングを実行する対象となる範囲であって、画像の全体または一部であってよい。以下、探索領域303内の座標を、(x,y)のように表記する。比較領域304は、テンプレート301と同じ大きさ(水平画素数W、垂直画素数H)を有する領域であって、テンプレート301との類似度を算出する対象となる画像内の領域である。照合部1610は、比較領域304に含まれる画素の輝度値と、テンプレート301に含まれる輝度値とを比較して類似度を算出する。パターンマッチングに用いる比較領域304の特徴量S(i,j)は、比較領域304内の座標を図4(b)に示すような座標系で表した場合、以下の式(2)で表現される。
S(i,j) = {S(0,0), S(1,0), ..., S(W-1,H-1)} (2)
照合部1610は、テンプレート301と比較領域304との類似性を表す評価値V(x,y)として、以下の式(3)に示す差分絶対値和(Sum of Absolute Difference, SAD)を算出する。2組のデータにおいて、差分絶対値和が低いほど類似度が高い。V(x,y)は、探索領域303内を移動する比較領域304の左上頂点座標(x,y)における評価値として扱われる。
照合部1610は、比較領域304を1画素ずつ移動させながら、探索領域303内の各位置において評価値V(x,y)を取得する。より具体的には、照合部1610は、比較領域304を、探索領域303の左上座標(0,0)から開始して右方向に1画素ずつ移動させながら評価値V(x,y)を取得する。比較領域304の右端が探索領域303の右端x=(X-1)-(W-1)に到達すると、照合部1610は、比較領域304を左端に戻すと共に下方向に1画素だけ移動させる。そして、照合部1610は、再び左端から開始して右方向に1画素ずつ比較領域304を移動させながら評価値V(x,y)を取得する。
評価値Vが小さいほど類似度が高いので、評価値V(x,y)が最小値を示す座標(x,y)が、テンプレート301と最も類似した画素パターンを有する探索領域303内の比較領域304の位置を示す。照合部1610は、評価値V(x,y)が最小値を示す位置の比較領域304を、探索領域303内に存在する被写体領域として検出する。なお、照合部1610は、以上の探索結果の信頼性が低い場合(例えば、評価値V(x,y)の最小値が所定の閾値を上回る場合)には、被写体領域が未検出であると判定してもよい。
本例では、特徴量として輝度値を用いてパターンマッチングを実行しているが、複数の値(例えば、明度、色相、および彩度)を特徴量として用いてもよい。また、本例では、パターンマッチングにおける類似度の評価値として差分絶対値和を用いているが、他の評価値、例えば、正規化相互相関(Normalized Cross-Correlation, NCC)やZNCCを用いてもよい。
次いで、他のマッチング手法であるヒストグラムマッチングについて説明する。図5は、本発明の実施形態におけるヒストグラムマッチングの説明図である。
図5(a)は、基準領域401とそのヒストグラム402を模式的に例示する説明図である。ヒストグラムマッチングを行う場合、特徴抽出部1620は、基準領域401の輝度ヒストグラムを特徴量として照合部1610に供給する。本例の基準領域401のヒストグラムp(m)402は、階級の数を示すビン数がM(Mは2以上の整数)であって、以下の式(4)で表現される。なお、本実施形態において、ヒストグラムp(m)は正規化された正規化ヒストグラムである。
p(m) = {p(0), p(1), ..., p(M-1)} (4)
図5(b)は、被写体領域に含まれる探索領域403とその特徴量(輝度ヒストグラム405)を模式的に例示する説明図である。図4の例では、探索領域303内を比較領域304が移動しながらパターンマッチングが実行されるが、図5の例では、探索領域403内を比較領域404が移動しながらヒストグラムマッチングが実行される。図4の例では、比較領域304に含まれる画素の輝度値とテンプレート301に含まれる輝度値とが比較される。図5の例では、照合部1610が、比較領域404の輝度ヒストグラムq(m)405と、基準領域401の輝度ヒストグラムp(m)402とを比較して類似度を算出する。他の動作については、図4の例と図5の例とで同様である。本例の比較領域404のヒストグラムq(m)405は、階級の数を示すビン数がM(Mは2以上の整数)であって、以下の式(5)で表現される。なお、本実施形態において、ヒストグラムq(m)は正規化された正規化ヒストグラムである。
q(m) = {q(0), q(1), ..., q(M-1)} (5)
照合部1610は、基準領域401のヒストグラムp(m)と比較領域404のヒストグラムq(m)との類似性を表す評価値D(x,y)として、以下の式(6)に示すBhattacharyya係数を算出する。2つのヒストグラムにおいて、Bhattacharyya係数が高いほど類似度が高い。D(x,y)は、探索領域403内を移動する比較領域404の左上頂点座標(x,y)における評価値として扱われる。
照合部1610は、図4のテンプレートマッチングと同様に、比較領域404を1画素ずつ移動させながら、探索領域403内の各位置において評価値V(x,y)を取得する。
評価値Dが大きいほど類似度が高いので、評価値D(x,y)が最大値を示す座標(x,y)が、基準領域401と最も類似した画素パターンを有する探索領域403内の比較領域404の位置を示す。照合部1610は、評価値D(x,y)が最大値を示す位置の比較領域404を、探索領域403内に存在する被写体領域として検出する。
本例では、特徴量として輝度値を用いてヒストグラムマッチングを実行しているが、複数の値(例えば、明度、色相、および彩度)を特徴量として用いてもよい。また、本例では、ヒストグラムマッチングにおける類似度の評価値としてBhattacharyya係数を用いているが、他の評価値、例えば、ヒストグラムインタセクションを用いてもよい。
(距離マップ生成部)
距離マップ生成部1630は、1組の視差画像から被写体距離を算出して距離マップ(評価用画像)を生成する。距離マップは、複数の画素の各々における被写体距離を示す距離情報の一種であって、他に、デプスマップ、奥行き画像、距離画像と称されることのある情報である。なお、距離マップ生成部1630は、視差画像を用いずに、複数の画素の各々についてコントラスト評価値が極大となるフォーカスレンズ131の位置を求めることで被写体距離を算出して距離マップを生成してもよい。被写体距離の算出について、図6を参照して以下に説明する。
図6は、本発明の実施形態における被写体距離の取得手法に関する説明図である。図6において、まず、前述した1組の視差画像であるA像1151aとB像1151bとが取得されていると想定する。撮影レンズ101の焦点距離、および、フォーカスレンズ131と撮像素子141との距離情報を用いると、図6の実線に示されるように光束が屈折することを求めることができる。以上のように光束を求めた結果、ピントの合った被写体が位置1152aに位置していることを求めることができる。同様にして、1組の視差画像であるA像1151aとB像1151cとが取得されている場合には、ピントの合った被写体が位置1152bに位置していることを求めることができる。また、1組の視差画像であるA像1151aとB像1151dとが取得されている場合には、ピントの合った被写体が位置1152cに位置していることを求めることができる。上記したように、各画素において、その画素のA像と、そのA像に対応するB像との相対的な位置関係に基づいて、その画素の位置における被写体距離を求めることができる。
以上の原理に基づいて、距離マップ生成部1630が、各画素についての1組の視差画像(A像およびB像)から被写体距離を求めて距離マップを生成する。距離マップ生成部1630は、1組の視差画像であるA像1151aとB像1151dとが取得されている場合、AB像間の像ずれ量の半分に相当する中間点の画素1154から被写体位置1152cまでの距離1153を、画素1154の画素値として取得する。距離マップ生成部1630は、以上のような処理を各画素について実行することによって距離マップを生成して、特徴抽出部1620に供給する。距離マップ生成部1630は、画像全体に亘って距離マップを生成してもよいし、特徴量を抽出するために指定された部分領域のみに亘って距離マップを生成してもよい。なお、距離マップ生成部1630は、画素1154から被写体位置1152cまでの距離1153に代えて、距離1153に相当するデフォーカス量を画素1154の画素値として取得してもよい。
距離マップ生成部1630は、距離マップの生成対象領域を分割した微小領域ごとにデフォーカス量を算出して距離マップを生成してもよい。より具体的には、距離マップ生成部1630は、各微小領域に含まれる複数の画素からA像およびB像を生成し、AB像間の位相差(像ずれ量)を相関演算によって求めてデフォーカス量に変換する。以上のように距離マップを生成する場合、同じ微小領域に含まれる複数の画素は、それぞれ同じ被写体距離を示すこととなる。
(特徴抽出部)
特徴抽出部1620は、被写体領域を追跡(探索)するのに用いる特徴量を被写体領域から抽出する。テンプレートマッチングを用いて追跡が実行される場合、特徴抽出部1620は、テンプレートとして用いる画像領域(テンプレート画像)を特徴量として抽出する。また、ヒストグラムマッチングを用いて追跡が実行される場合、特徴抽出部1620は、基準領域に対応するヒストグラムを特徴量として抽出する。なお、特徴抽出部1620は、追跡手法に対応する任意の特徴量を抽出することができる。
一般に、被写体追跡を実行する場合、実行に先立って、追跡対象とすべき被写体の画像内での位置をユーザが指定する。本実施形態のデジタルカメラ100では、撮影スタンバイ状態において、表示部150が表示装置に表示させている画像内での対象被写体の位置を、ユーザが操作部156を操作して指定する。主制御部151は、ユーザが指定した指定位置の座標を取得して、特徴抽出部1620に供給する。以上の指定位置の座標は、例えば、タッチパネルとしての操作部156においてタップされた位置の座標や、操作部156の操作に従って画像上を移動するカーソルによって指定された位置の座標である。
図7を参照して、特徴量を抽出すべき被写体領域を特定する手法について説明する。概略的には、本実施形態の特徴抽出部1620は、色情報と距離情報とに基づいて被写体領域を特定する。
図7(a)は、画像処理部152から入力される撮像画像の例を示す。図7(a)の撮像画像には、人物の顔501と背景502とが含まれている。指定位置503は、人物の顔501の範囲内の点の座標を示す値であって、例えば、操作部156を用いたユーザの操作によって指定される位置である。本例において、背景502の色情報と人物の顔501の色情報とが類似していると想定する。
特徴抽出部1620は、まず、指定位置503を含む指定領域(例えば、指定位置503を中心とする所定サイズの矩形領域)を仮被写体領域として設定し、仮被写体領域についての色ヒストグラムHinを生成する。加えて、特徴抽出部1620は、仮被写体領域の周辺領域において、仮被写体領域と同じ大きさを有する参照領域についての色ヒストグラムHoutを生成する。色ヒストグラムは、生成対象領域における色の頻度を表すグラフであって、本例の色ヒストグラムは、RGB色空間からHSV色空間に変換された生成対象領域の画素値のうち色相(Hue)の頻度を表すグラフである。なお、他の手法によって色ヒストグラムが取得されてもよい。
次いで、特徴抽出部1620は、以下の式(7)に従って情報量I(a)を取得する。
I(a) = -log2(Hin(a)/Hout(a)) (7)
ここで、式(7)中のaは、色ヒストグラムに含まれるビンの項番を示す整数である。情報量I(a)の絶対値は、仮被写体領域に含まれる画素の色頻度と参照領域に含まれる画素の色頻度との差が大きいほど大きい。特徴抽出部1620は、色ヒストグラムに含まれる全てのビンについて情報量I(a)を算出する。特徴抽出部1620は、参照領域の位置を変更しながら周辺領域の全体について色ヒストグラムHoutの生成および情報量I(a)の算出を実行する。なお、仮被写体領域自体については、特徴抽出部1620は、全てのビンの情報量I(a)を0とする。
特徴抽出部1620は、周辺領域の全体について算出した情報量I(a)の各々を、特定範囲(例えば、8ビット値(0~255)の範囲)内の値にマッピングする。以上のマッピングにおいて、特徴抽出部1620は、情報量I(a)の絶対値が小さいほどマッピング後の値(マッピング値)が大きくなるように処理を実行する。次いで、特徴抽出部1620は、周辺領域に含まれる各画素を、当該画素を含む参照領域の色ヒストグラムにおいて当該画素を含むビンHout(a)に対応する情報量I(a)のマッピング値を輝度値とする画素に置換する。特徴抽出部1620は、仮被写体領域に含まれる各画素を、情報量I(a)=0のマッピング値(本例では、255)を輝度値とする画素に置換する。
以上の処理によって、特徴抽出部1620が、色情報に基づく被写体マップ(色マップ)を生成する。図7(b)は、以上のように生成された色情報に基づく被写体マップ(色マップ)の例である。図7(b)の被写体マップは、画素の示す色が白に近い(値が大きい)ほど被写体に対応する画素である確からしさが高く、画素の示す色が黒に近いほど(値が小さい)ほど被写体に対応する画素である確からしさが低いことを示す。説明の簡単のため、図7(b)では被写体マップが2値画像として示されているが、実際の色情報に基づく被写体マップは多値で表現される多階調画像である。
本例では、撮像画像の背景502の一部の色が人物の顔501の色と類似しているので、以上の色情報に基づく被写体マップ(色マップ)においては人物の顔501が背景502と十分に識別されていない。図7(c)に示される矩形領域504は、色情報に基づく被写体マップに基づいて特定された被写体領域を示している。以上の矩形領域504は、例えば、色マップにおいてマッピング後の画素値(マッピング値)が所定閾値以上である領域に基づいて設定される(更新される)。
図7(c)に示すように、本例において、色情報に基づく被写体マップのみに従って設定された被写体領域(矩形領域504)は人物の顔501でない不要な領域を含んでいる。以上のような被写体領域から抽出した特徴量を用いて被写体領域を追跡しても、対象物である人物の顔501を精度よく追跡することは困難である。したがって、本実施形態では、色情報に基づく被写体マップ(色マップ)に加えて、距離マップ生成部1630が生成した距離マップも使用して被写体領域の特定精度を向上させる。
図7(d)は、図7(a)の撮像画像について距離マップ生成部1630が生成した距離マップ内の各被写体距離を、指定位置503に相当する被写体距離を基準として特徴抽出部1620が変換した後の距離マップを示す。図7(d)においては、基準となる被写体距離(指定位置503の被写体距離)との差が小さい被写体距離ほどより白く、差が大きい被写体距離ほどより黒く表示されるように変換されている。説明の簡単のため、図7(d)では距離マップが2値画像として示されているが、実際の変換後の距離マップは多値で表現される多階調画像である。
特徴抽出部1620は、色情報に距離情報を加味した被写体マップを、例えば、色情報に基づく被写体マップ(色マップ)の画素値(図7(b))と距離マップの画素値(図7(d))とをそれぞれ乗算することによって生成する。図7(e)は、色情報に距離情報を加味した被写体マップ(すなわち、色情報と距離情報との双方に基づく被写体マップ)の例である。図7(e)に示すように、色情報および距離情報に基づく被写体マップでは、人物の顔501と背景502とが精度良く区別されている。図7(f)に示される矩形領域505は、色情報および距離情報に基づく被写体マップに基づいて特定された被写体領域を示している。以上の矩形領域505は、例えば、図7(e)の被写体マップにおける画素値が所定閾値以上である領域に基づいて設定され、より具体的には、画素値によって特定された対象物(本例では人物の顔501)の領域に外接するように設定される。
図7(f)に示すように、色情報および距離情報に基づく被写体マップに従って設定された被写体領域(矩形領域505)においては、人物の顔501以外の画素(背景502の画素)が矩形領域504と比較して少ない。したがって、以上のような被写体領域から抽出した特徴量を用いて被写体領域を追跡すると、対象物である人物の顔501を精度よく追跡することができる。
上記したように、指定位置を含む所定の範囲に関する色情報と距離情報との双方を参照することによって、被写体領域をより精度良く特定することができ、ひいては高精度の被写体追跡を実現するのに適した特徴量を抽出することができる。
なお、ユーザによって追跡対象とすべき被写体の位置が指定された時点において、指定位置およびその近傍領域の有効な距離情報(参照するに足りる信頼性を有する距離情報)が取得されていないケースも想定される。例えば、距離マップの生成が特定領域(例えば、焦点検出領域)のみについて実行されており指定位置がその特定領域に含まれていないケースや、指定位置においてピントが合っておらず距離情報の信頼性が低いケース等が想定され得る。
以上のようなケースに対応するため、指定位置近傍(仮被写体領域)について参照するに足りる信頼性を有する距離情報が取得されている場合、特徴抽出部1620は、前述のように、色情報に加えて距離情報を参照して被写体領域を特定する。他方、指定位置近傍(仮被写体領域)について参照するに足りる信頼性を有する距離情報が取得されていない場合、特徴抽出部1620は、距離情報を参照せずに色情報に基づいて被写体領域を特定する。「参照するに足りる信頼性を有する距離情報」とは、例えば、仮被写体領域が合焦状態または合焦に近い状態(すなわち、デフォーカス量が所定閾値以下である状態)において取得された距離情報である。なお、他の条件に従って「参照するに足りる信頼性を有する距離情報」が取得されてもよい。
(フローチャート)
図8から図16を参照して、本発明の実施形態に係るデジタルカメラ100によって実行される撮像画像(動画)における被写体検出および被写体追跡の詳細な流れについて説明する。図8は、本実施形態のメイン処理(メインルーチン)を示すメインフローチャートである。図9から図11および図13から図15は、それぞれ、メイン処理または他のサブ処理(サブルーチン)に含まれるサブ処理を示すサブフローチャートである。
図8を参照して、本実施形態の被写体検出および被写体追跡のメイン処理について説明する。以下のメイン処理は、典型的には主制御部151によって実行されるが、一部または全部の処理が画像処理部152によって実行されてもよい。
ステップS801において、主制御部151は、ユーザによって焦点検出領域の位置指定が行われるか否かを判定する。ユーザが指定位置を指定しない場合(S801:NO)、主制御部151は、ステップS802をスキップして処理をステップS803に進める。他方、ユーザが指定位置を指定する場合、主制御部151は、処理をステップS802に進める。
ユーザが指定位置を指定しない(検出対象の被写体を指定しない)場合、主制御部151は、所定の手法に従って自動的に対象被写体および焦点検出位置を特定してもよい。例えば、主制御部151は、瞳認識によって認識された瞳を含む人間の顔を対象被写体として特定してもよいし、連続する画像内で動いている物体を対象被写体として特定してもよい。以上の特定処理は、ステップS801でNOと判定された後から実行されてもよいし、後述するステップS803で焦点検出が指示されてから実行されてもよい。
ステップS802において、主制御部151は、ユーザによって指定された位置を焦点検出位置として設定する。ユーザによって指定された位置とは、例えば、ユーザがタッチパネルとしての操作部156においてタップされた位置の座標や、操作部156の操作に従って画像上を移動するカーソルによって指定された位置の座標である。
ステップS803において、主制御部151は、焦点検出が指示されているか否かを判定する。ユーザは、例えば、操作部156のシャッターボタンの半押し操作や、操作部156のタッチパネルのタッチ操作によって、焦点検出を指示することができる。焦点検出が指示されている場合(S803:YES)、主制御部151は処理をステップS804に進める。他方、焦点検出が指示されていない場合(S803:NO)、主制御部151は本処理を終了する。
ステップS804において、主制御部151は、画像処理部152やフォーカス制御部133等の要素を制御して、後述される焦点検出処理を実行する。
ステップS805において、主制御部151は、追跡対象とすべき被写体が検出されているか否かを判定する。
被写体が検出されていない場合(S805:NO)、主制御部151は、処理をステップS806に進め、後述される被写体検出処理を実行する。ステップS806の後、主制御部151は処理をステップS807に進める。
被写体が検出されている場合(S805:YES)、主制御部151は、ステップS806をスキップして処理をステップS807に進め、後述される被写体追跡処理を実行する。
ステップS807の被写体追跡処理が終了すると、主制御部151は、処理をステップS803に戻し、焦点検出指示がなされている間に亘ってステップS803からステップS807までの処理を繰り返す。
図9を参照して、本実施形態のサブ処理であるステップS804の焦点検出処理について説明する。
ステップS901において、フォーカス制御部133は、ステップS802でユーザが指定した位置(または、自動的に特定された位置)に対応する焦点検出領域におけるデフォーカス量を算出する。なお、ステップS801の判定がNOであった場合(位置指定がされない場合)、フォーカス制御部133は、複数の焦点検出領域について算出されたデフォーカス量に基づいて、1つまたは同一深度に相当する複数の焦点検出領域を特定する。
ステップS902において、フォーカス制御部133は、ステップS901で算出したデフォーカス量に基づいてフォーカスレンズ131の駆動量を算出する。算出した駆動量に基づいて、フォーカス制御部133がフォーカスレンズ131を駆動することで、撮影レンズ101の焦点合わせを実行する。
ステップS902が終了すると、本サブ処理がメイン処理に戻される。
図10を参照して、本実施形態のサブ処理であるステップS806の被写体検出処理について説明する。
ステップS1001において、主制御部151は、被写体検出に用いられる評価用画像に対するトリミング処理(第1トリミング処理)を実行するように画像処理部152(トリミング手段)を制御する。本処理の詳細については、図11および図12を参照して後述される。
ステップS1002において、主制御部151は、図13を参照して後述される被写体領域の特定処理を実行するように追跡部161を制御する。
ステップS1002が終了すると、本サブ処理がメイン処理に戻される。
図11および図12を参照して、本実施形態のサブ処理であるステップS1001の被写体検出時のトリミング処理(第1トリミング処理)について説明する。図11は以上のトリミング処理のフローチャートであり、図12は以上のトリミング処理におけるトリミング倍率(トリミングサイズ)と撮影倍率との関係を示すグラフである。以下のトリミング処理において、前述したように、画像処理部152はトリミング手段として動作する。
ステップS1101において、画像処理部152は、フォーカス制御部133を制御して撮影レンズ101に関するレンズ情報(光学情報)を取得する。以上のレンズ情報は、フォーカスレンズ131の位置に対応する距離、焦点距離、および焦点検出領域のデフォーカス量を含む。
ステップS1102において、画像処理部152は、撮像読出しモードに関するモード情報を取得する。デジタルカメラ100は、複数の撮像読出しモードのうちユーザによってまたは自動的に選択されている1つのモードに従って動作する。通常の撮像読出しモードでは、画像処理に用いられる撮像素子141の有効画素範囲と撮像画像の範囲とが一致する。他方、動画モードや静止画クロップモードでは、通常の撮像読出しモードと比較して撮像素子141の有効画素範囲がより狭くなる。画像処理部152は、取得したモード情報に基づいて、現在のモードにおいて取得される画像の通常画像に対する拡大率(クロップ倍率)を取得して、以降の撮影倍率の算出に用いる。
ステップS1103において、画像処理部152は撮影倍率を算出する。本例における撮影倍率は、撮影レンズ101を介した被写体像の大きさ(撮像面上における像の大きさ)を示す値である。画像処理部152は、ステップS1101にて取得したレンズ情報に含まれる焦点距離とフォーカスレンズ131の位置とに対応する距離比に基づいて撮影倍率を概算する。画像処理部152は、概算した撮影倍率をステップS1102にて取得したクロップ倍率によって除算することで、修正後の撮影倍率を取得する。なお、画像処理部152は、焦点検出領域においてデフォーカス量が発生している場合には、そのデフォーカス量に基づいて以上の撮影倍率を修正してもよい。
ステップS1104において、画像処理部152は、撮影倍率の逆数(1/撮影倍率)αが第1の閾値Th1(例えば、100)以上であるか否かを判定する。撮影倍率の逆数αが第1の閾値Th1以上である場合(S1104:YES)、画像処理部152は、処理をステップS1105に進める。他方、撮影倍率の逆数αが第1の閾値Th1未満である場合(S1104:NO)、画像処理部152は、処理をステップS1108に進める。
ステップS1105において、画像処理部152は、ユーザによって焦点検出領域の位置指定が行われたか否かを判定する。ユーザが指定位置を指定した場合(S1105:YES)、画像処理部152は処理をステップS1106に進める。他方、ユーザが指定位置を指定していなかった場合(S1105:NO)、画像処理部152は、ステップS1106,S1107をスキップして処理をステップS1108に進める。本ステップの処理分岐によって、焦点検出領域の位置指定がされた場合には評価用画像のトリミング処理(第1トリミング処理)が実行され、位置指定がされない場合にはトリミング処理が実行されない、という動作が実現される。なお、ステップS1105の判定に応じてトリミング倍率が変更されてもよい。
ステップS1106において、画像処理部152は、被写体検出に用いられる評価用画像に適用すべき第1トリミング倍率T1(トリミングサイズ)を算定する。第1トリミング倍率T1は、撮影倍率の逆数(1/撮影倍率)α、第1の閾値Th1、および第1の閾値Th1より大きい第2の閾値Th2におけるトリミング倍率Tmaxを用いた以下の式(8)に従って算定される。
T1 = α/Th1 (8)
ただし、算出された第1トリミング倍率T1は、T1>Tmaxである場合にT1=Tmaxに設定され、T1<1である場合にT1=1に設定される。図12は、撮影倍率の逆数(1/撮影倍率)αを横軸に、以上の式(8)に従って算定された第1トリミング倍率T1を縦軸に示すグラフである。
撮影倍率の逆数(1/撮影倍率)αが相対的に大きい場合、すなわち撮影倍率が相対的に小さい場合には、評価用画像において被写体が相対的に小さく撮像される。したがって、評価用画像をトリミングしてからリサイズ(後述)を実行することによって、評価用画像における被写体の解像度を増大させることができる。他方、撮影倍率の逆数(1/撮影倍率)αが相対的に小さい場合、すなわち撮影倍率が相対的に大きい場合には、評価用画像において被写体が相対的に大きく撮像される。したがって、評価用画像をトリミングせずとも(すなわち、第1トリミング倍率T1=1と設定しても)、評価用画像における被写体の解像度は十分であると理解できる。
ステップS1107において、画像処理部152は、ステップS1106にて算出した第1トリミング倍率T1を用いて評価用画像に対するトリミングを実行する。
ステップS1108において、画像処理部152は評価用画像のリサイズを実行して、本サブ処理を終了する。
図13を参照して、本実施形態のサブ処理であるステップS1002の被写体領域の特定処理について説明する。
ステップS1301において、追跡部161の特徴抽出部1620は、画像処理部152から入力される撮像画像を評価用画像として読み込む。
ステップS1302において、特徴抽出部1620は、焦点検出領域にて指定された指定位置に相当する被写体を含む評価用画像内の領域に基づいて、仮テンプレートを作成する。
ステップS1303において、特徴抽出部1620は、焦点検出領域にて指定された指定位置に相当する被写体を含む評価用画像内の領域の情報と、上記した被写体を含まない評価用画像内の領域の情報と、からそれぞれ特徴量を抽出する。
ステップS1304において、照合部1610は、ステップS1303にて抽出した特徴量に基づいて被写体領域を特定する。より具体的には、照合部1610は、特徴量の一致度が高い(例えば、所定閾値以上である)領域を被写体領域として特定して、特定した被写体領域の形状を整形する。被写体領域のサイズは任意に設定され得る。例えば、被写体領域の最小サイズが撮影倍率に応じて変更されてもよい。
ステップS1305において、照合部1610は、ステップS1304にて特定された被写体領域に基づいて被写体領域のテンプレートを作成して、本サブ処理を終了する。
図14を参照して、本実施形態のサブ処理であるステップS807の被写体追跡処理について説明する。
ステップS1401において、主制御部151は、被写体検出に用いられる被写体追跡時のトリミング処理(第2トリミング処理)を実行するように画像処理部152(トリミング手段)を制御する。本処理の詳細については、図15および図16を参照して後述される。
ステップS1402において、画像処理部152は、被写体検出時の撮影倍率(ステップS1103)の逆数αが第1の閾値Th1以上であるか否かを判定する。撮影倍率の逆数αが第1の閾値Th1以上である場合(S1402:YES)、画像処理部152は、処理をステップS1403に進める。他方、撮影倍率の逆数αが第1の閾値Th1未満である場合(S1402:NO)、画像処理部152は、処理をステップS1405に進める。
ステップS1403において、画像処理部152は、被写体追跡中の現在のフレームの撮影倍率の逆数βが第1の閾値Th1以下であるか否かを判定する。撮影倍率の逆数βが第1の閾値Th1以下である場合(S1403:YES)、画像処理部152は、処理をステップS1404に進める。他方、撮影倍率の逆数βが第1の閾値Th1を上回る場合(S1403:NO)、画像処理部152は、処理をステップS1405に進める。
ステップS1404において、前述した被写体検出処理(ステップS807、図10)が実行される。ここで被写体検出を再び実行するのは、被写体検出時の撮影倍率が低く(S1402:YES)かつ現在の撮影倍率が高い(S1403:YES)ので、検出時よりも現在の方が画像における被写体像が拡大していることが多いからである。
ステップS1405において、追跡部161の特徴抽出部1620は、前述のように、ユーザが追跡対象として指定した被写体の指定位置およびその近傍領域の有効な(すなわち、参照するに足りる信頼性を有する)距離情報が取得されているか否かを判定する。有効な距離情報が取得されていない場合(S1405:NO)、特徴抽出部1620は処理をステップS1406に進める一方、有効な距離情報が取得されている場合(S1405:YES)、特徴抽出部1620は処理をステップS1407に進める。
ステップS1406において、特徴抽出部1620は、図7を参照して前述したように、距離情報を参照せずに色情報のみに基づいて被写体領域を特定し、被写体領域の特徴量(例えば、テンプレート画像、ヒストグラム)を抽出する。
ステップS1407において、特徴抽出部1620は、図7を参照して前述したように、色情報と距離情報との双方に基づいて被写体領域を特定し、被写体領域の特徴量(例えば、テンプレート画像、ヒストグラム)を抽出する。
ステップS1408において、照合部1610は、図5を参照して前述したように、ステップS1406またはステップS1407にて抽出された特徴量を用いて、撮像画像の探索領域(追跡領域)に対してマッチング処理を実行する。以上のマッチング処理によって、照合部1610(追跡部161)は、特徴量の類似度が最も高い領域(被写体領域)を検出する。
ステップS1409において、照合部1610は、検出された被写体領域の形状を整形した後、整形後の被写体領域の位置および大きさに関する情報を主制御部151に供給する。なお、本ステップの被写体領域の形状の整形はスキップされてもよい。
図15および図16を参照して、本実施形態のサブ処理であるステップS1401の被写体追跡時のトリミング処理(第2トリミング処理)について説明する。図15は以上のトリミング処理のフローチャートであり、図16は以上のトリミング処理におけるトリミング倍率と被写体領域の水平サイズとの関係を示すグラフである。以下のトリミング処理において、前述したように、画像処理部152はトリミング手段として動作する。
ステップS1501において、画像処理部152は、被写体領域の水平方向および垂直方向のサイズ(例えば、画素数)を取得する。
ステップS1502において、画像処理部152は、被写体追跡に用いられる評価用画像に適用すべき第2トリミング倍率T2(トリミングサイズ)を算定する。第2トリミング倍率T2は、被写体領域の水平方向におけるサイズH(水平サイズ)、第3の閾値Th3、および上述した第2の閾値Th2におけるトリミング倍率Tmaxを用いた以下の式(9)に従って算定される。
T2 = Tmax×Th3/H (9)
ただし、算出された第2トリミング倍率T2は、T2>Tmaxである場合にT2=Tmaxに設定され、T2<1である場合にT2=1に設定される。図16は、被写体領域の水平サイズを横軸に、以上の式(9)に従って算定された第2トリミング倍率T2を縦軸に示すグラフである。
ステップS1503において、画像処理部152は、ステップS1502にて算出した第2トリミング倍率T2を用いて評価用画像に対するトリミングを実行する。
ステップS1504において、画像処理部152は評価用画像のリサイズを実行して、本サブ処理を終了する。
上記したように、本実施形態の構成では、評価用画像を用いて被写体追跡の対象である被写体領域が特定され、特定された被写体領域から抽出された特徴量を用いて被写体追跡が実行される。以上の被写体追跡において、種々の条件(位置指定、撮影倍率等)に従ってトリミング倍率が変更され、トリミングされた評価用画像に基づいて被写体追跡が実行される。すなわち、被写体追跡において適切なトリミングが実行されるので、より精度の高い被写体追跡を実現することができる。
(その他の実施形態)
以上の実施形態は多様に変形される。具体的な変形の態様を以下に例示する。以上の実施形態および以下の例示から任意に選択された2以上の態様は、相互に矛盾しない限り適宜に併合され得る。
上記した実施形態においては、種々の条件に従ってトリミングサイズの一種であるトリミング倍率が変更され、トリミングが実行される。しかしながら、上述した種々の条件に従って変更されるのは、トリミング倍率に限定されず、トリミングサイズに関する任意の設定が変更され得る。
上記した実施形態においては、動画撮影における被写体検出および被写体追跡の処理について説明されている。しかしながら、上記した実施形態による構成を、連写やインターバル撮影等の時系列的に複数の画像を撮影する際または再生する際に適用してもよい。
以上、本発明の好ましい実施の形態について説明したが、本発明は上述した実施の形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。例えば、本発明は、上述の実施の形態の1以上の機能を実現するプログラムを、ネットワークや記憶媒体を介してシステムや装置に供給し、そのシステム又は装置のコンピュータの1つ以上のプロセッサがプログラムを読み出して実行する処理でも実現可能である。また、本発明は、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。