撮像装置、ぶれ補正方法、制御プログラム、及び制御プログラムを記録する記録媒体
【課題】撮像装置の回転成分方向の動きを考慮した最適なぶれ補正が可能な撮像装置、像振れ補正方法、及びプログラム及びプログラムを記録する記録媒体を提供する。
【解決手段】時間的に連続するフレームを処理する撮像装置1において、ベクトル算出処理においては、それぞれのフレームに対して、フレームを所定の画素数からなる小領域に分割した各ブロックについて、動きベクトルを算出する。設定処理においては、フレームごとの回転抽出結果に基づいて、動きベクトルの回転成分を除去後、ベクトル算出領域のグループ化を行う。決定処理においては、グループ化されたグループ領域の中から、被写体のない背景のグループ領域を決定する。
【解決手段】時間的に連続するフレームを処理する撮像装置1において、ベクトル算出処理においては、それぞれのフレームに対して、フレームを所定の画素数からなる小領域に分割した各ブロックについて、動きベクトルを算出する。設定処理においては、フレームごとの回転抽出結果に基づいて、動きベクトルの回転成分を除去後、ベクトル算出領域のグループ化を行う。決定処理においては、グループ化されたグループ領域の中から、被写体のない背景のグループ領域を決定する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、動画像のぶれを画像処理により補正する技術に関し、特に、ぶれにより生じる動きベクトルと、被写体の移動による動きベクトルとを識別する撮像装置、ぶれ補正方法、制御プログラム、及び制御プログラムを記録する記録媒体に関する。
【背景技術】
【0002】
近年は、ビデオカメラやデジタルカメラ等においては、動画像を撮像するときに、動きのある被写体を追尾する機能や手ぶれによるぶれを補正する機能が求められるようになってきている。これらの機能を実現する撮像装置では、連続して撮影されたフレーム画像から、動きベクトル等のフレーム間の差異を検出する技術が知られている(例えば、特許文献1)。
【0003】
特許文献1の技術においては、時間的に連続してフレーム画像を撮影し、それぞれのフレームに対して複数のベクトル検出領域で動きベクトルを検出する。検出した動きベクトルに基づき動きベクトル検出領域をグループ化し、異なるフレーム間でグループ領域同士を比較することで、フレーム間で対応するグループ領域を判定する。これにより、ぶれによる動きベクトルと移動物の移動による動きベクトルとを識別した上で、背景と被写体の分離を行っている。
【0004】
これにより、特許文献1の技術では、動画像のフレームごとに撮像装置のぶれにより生じる動きベクトルと、移動物の移動による動きベクトルとの識別を行っている。そして、特許文献1の技術では、例えば、フレーム内で背景と移動物の離散度合いの大きさが同程度であるときや、移動物が徐々に大きくなる場合等には、ぶれ補正をする領域を誤判定したり、ぶれ補正の対象となるグループが切り替わってしまう、という課題を解決している。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2010−79655号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献1の技術では、撮像装置のぶれにより生じる動きベクトルが回転成分を含む。このぶれによる動きベクトルの回転成分は、撮像装置の回転中心を原点とした座標平面の象限により、方向が異なる。したがって、特許文献1の技術では、ぶれにより生じる回転成分を含む動きベクトルにおいて、正しく動きベクトルのグループ化を行うことができない。
【0007】
本発明は、撮像装置の回転成分方向の動きを考慮した最適なぶれ補正が可能な撮像装置、ぶれ補正方法、制御プログラム、及び制御プログラムを記録する記録媒体の提供を目的とする。
【課題を解決するための手段】
【0008】
前述した目的を達成するために、本発明の態様のひとつである撮像装置は、時間的に連続するフレームを処理する撮像装置であって、それぞれのフレームに対して、所定の画素数からなる小領域に分割されたフレーム内の全てのブロックについて動きベクトルを算出するベクトル算出部と、フレームごとの回転抽出結果に基づいて、動きベクトルの回転成分を除去後、ブロックのグループ化を行う設定部と、グループ化されたグループ領域の中から、被写体のない背景のグループ領域を決定する決定部とを備えることを特徴とする。
【0009】
また、本発明の別の態様のひとつであるぶれ補正方法は、時間的に連続するフレームを処理するぶれ補正方法であって、それぞれのフレームに対して、所定の画素数からなる小領域に分割されたフレーム内の全てのブロックについて動きベクトルを算出するベクトル算出段階と、フレームごとの回転抽出結果に基づいて、動きベクトルの回転成分を除去後、ブロックのグループ化を行う設定段階と、グループ化されたグループ領域の中から、被写体のない背景のグループ領域を決定する決定段階とを有することを特徴とする。
【0010】
また、本発明の別の態様のひとつである制御プログラムは、時間的に連続するフレームのぶれ補正を演算処理装置に行わせるための制御プログラムであって、それぞれのフレームに対して、所定の画素数からなる小領域に分割されたフレーム内の全てのブロックについて動きベクトルを算出するベクトル算出処理と、フレームごとの回転抽出結果に基づいて、動きベクトルの回転成分を除去後、ブロックのグループ化を行う設定処理と、グループ化されたグループ領域の中から、被写体のない背景のグループ領域を決定する決定処理とを演算処理装置に行わせることを特徴とする。
【0011】
更に、本発明の別の態様のひとつである記録媒体は、前述した制御プログラムを記録する記録媒体であることを特徴とする。
【発明の効果】
【0012】
本発明によれば、撮像装置の回転成分方向の動きを考慮した最適なぶれ補正が可能な撮像装置、ぶれ補正方法、及び制御プログラム、及び制御プログラムを記録する記録媒体を提供できる。
【図面の簡単な説明】
【0013】
【図1】実施形態に係る撮像装置の構成図である。
【図2】撮像装置の回転中心と撮像部の中心との位置関係を説明する図である。
【図3】実施形態に係る撮像装置による動きベクトル処理を示したフローチャートである。
【図4】現フレーム及び参照フレームについて説明する図である。
【図5】参照フレームにおけるブロックの位置座標及び(k)フレームにおけるブロックの位置座標を撮像装置の回転中心を原点とする座標系で表した図である。
【図6】ステップS2の動きベクトル極座標変換処理の詳細を示したフローチャートである。
【図7】回転成分を検出する領域について説明する図である。
【図8】ステップS3のフレーム回転成分抽出処理の詳細を示したフローチャートである。
【図9】ステップS1で算出する動きベクトル、ステップS3で抽出する回転成分、及びステップS4で求める回転成分除去後の動きベクトルの関係を示す図である。
【図10】グループの中心ブロックの選出方法を説明する図である。
【図11】同一グループに属するブロックがフレーム内で分散する場合におけるグループの動きベクトルの決定方法を説明する図である。
【図12】実施形態に係る撮像装置による効果を説明する図である。
【発明を実施するための形態】
【0014】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
図1は、本実施形態に係る撮像装置の構成図である。図1に示す撮像装置1は、光学要素部2、撮像部3、制御部4、動きベクトル処理部5、記憶部6、及び記録媒体7を含む。図1においては、本実施形態に係るぶれ補正処理に係わる構成を中心に記載している。
【0015】
制御部4は、撮像部3、動きベクトル処理部5、及び記憶部6の制御を行う。
光学要素部2は、複数のレンズ等を含み、撮像部3上に被写体像を結像させる。撮像部3は、光学要素部2により結像された被写体像を光電変換し、得られた信号についてA/D変換を行う。A/D変換により得られたデジタルデータは、図1においては不図示の信号処理部において色分離やγ補正等の処理が施され、制御部4は、得られた輝度色差信号のYCbCr信号を記憶部6に記憶させる。
【0016】
動きベクトル処理部5は、例えば制御部4の演算処理装置により実行される、ぶれ補正に利用するために求める動きベクトルに係わる各種処理を行う電子回路、あるいは、制御部4の演算処理装置により実行される制御プログラムとする。
【0017】
記憶部6は、図1においては不図示の信号処理部から出力される輝度色差信号を記憶するとともに、記録媒体7に対して、画像等のデータの保存、及び制御プログラムを記憶する。
【0018】
記録媒体7は、たとえば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、DVD−ROM、磁気テープ、不揮発性のメモリカード、ROM等であり、画像等のデータを保存する。
【0019】
撮像装置1は、例えば、録画ボタン(RECボタン)が押下されることにより、所定のフレームレートでの動画像の撮像を開始し、RECボタンの再度の押下、あるいは、ストップボタンの押下等により、動画像の撮像を終了する。動画像の撮像中は、撮像部3から時間的に連続するフレーム(あるいはフィールド)画像が出力されることとなる。制御部4は、記録媒体7から読み出した制御プログラムを実行することにより、あるいは、制御部4の演算処理装置により実行される電子回路により、時間的に連続するフレーム(あるいはフィールド)画像に対し、動きベクトル処理部5による動きベクトル処理を施す。
【0020】
本実施形態に係る撮像装置1では、動きベクトル処理部5による動きベクトル処理により、撮像装置1の回転方向成分を除去した動きベクトルを用いて、フレーム画像やフィールド画像内の移動物と背景とを識別し、ぶれ補正を行う。
【0021】
図2は、撮像装置1の回転中心と撮像部3の中心との位置関係を説明する図である。
点O´は、撮像部3の光学中心である。これに対し、撮像装置1の回転中心は、撮像装置1の形状や重心位置等により決まるため、図2に例示するように、原点位置Oを予め定めておく。したがって、撮像部3の光学中心O´の位置と撮像装置1の回転中心Oの位置とは、必ずしも一致するとは限らない。
【0022】
ここで、手ぶれ等による動きベクトルには、撮像装置1の回転中心O周りの回転方向の動きも含まれる。図2に示すとおり、撮像装置1の回転中心O周りの回転方向成分は、象限によりその方向が異なる。このため、本実施形態に係る撮像装置1では、制御部4は、前述のとおり、動きベクトル処理部5により撮像装置1の回転方向成分を除去した動きベクトルを用いて、フレーム画像やフィールド画像内の移動物と背景とを識別し、ぶれ補正を行っている。以降の説明においては、動きベクトル処理部5は、制御部4の演算処理装置により実行される制御プログラムで構成した場合とする。
【0023】
動きベクトル処理部5による処理は、具体的には、動きベクトル算出処理、グループ設定処理、及び背景グループ決定処理から構成される。
動きベクトル算出処理では、時間的に連続するそれぞれのフレームに対して、フレーム内の全てのブロック(フレームを所定の画素数からなる小領域に分割したもの)について動きベクトルを算出する。具体的には、動きベクトル算出処理においては、制御部4は、記憶部6を介して記録媒体7から、現フレームの輝度色差信号YCbCrを読み出す。そして、制御部4は、同様に記録媒体7から読み出した過去のフレームを参照して、現フレームのブロックごとに動きベクトルを算出する。
【0024】
グループ設定処理は、動きベクトル極座標変換処理、フレーム回転成分抽出処理、及び動きベクトル回転成分除去処理を行った上で、グループ領域を設定する。具体的には、グループ設定処理においては、制御部4は、フレームごとの回転抽出結果に基づいて、動きベクトルの回転成分を除去後、ブロックのグループ化を行う。
【0025】
動きベクトル極座標変換処理は、動きベクトル算出処理において求めた動きベクトルを、図2の撮像装置1の回転中心Oを原点とする極座標表示に変換する。
フレーム回転成分抽出処理は、動きベクトル極座標変換処理において求めた極座標表示を利用して、現フレームの回転成分を抽出する。具体的には、制御部4は、フレーム回転成分抽出処理においては、動きベクトルの極座標表示を用いて、1フレーム間隔当たりの撮像装置1の回転中心回りの回転角を算出することにより、現フレームの過去のフレームに対する回転成分を求める。
【0026】
動きベクトル回転成分除去処理は、動きベクトル算出処理で求めた動きベクトルから、フレーム回転成分抽出処理で求めた現フレームの回転成分を除去する。
グループ設定処理は、現フレーム内のブロックのグループ化を行う。グループ設定処理においては、制御部4は、回転成分を除去した、各ブロックの動きベクトルの水平方向成分及び垂直方向成分の差分が所定の範囲内にあるか否かに基づき、当該ブロックが同一のグループであるか否かを判定する。
【0027】
背景グループ決定処理は、現フレーム内のグループ化されたグループ領域の中から、被写体のない背景のグループ領域を決定する。
以下に、動きベクトル処理部5における動きベクトル処理について、更に詳しく説明する。
【0028】
図3は、本実施形態に係る撮像装置1による動きベクトル処理を示したフローチャートである。前述したように、本フローチャートでは、撮像装置1の制御部4が記録媒体7から動きベクトル処理部5における制御プログラムを読み出して実行する場合とする。
【0029】
以下の説明においては、現フレームを「(k)フレーム」あるいは「当該(k)フレーム」とする。また、(k)フレームより1つ前のフレームを(k−1)フレーム、更に1つ前のフレームを(k−2)フレーム、m(mは1以上の整数)個前のフレームを(k−m)フレーム等のように表す。
【0030】
まず、制御部4は、ステップS1において、ブロックの動きベクトルを算出する。ブロックの大きさは、例えば16×16画素である。動きベクトルは、(k)フレームと、参照フレームである(k−1)フレーム、(k−2)フレーム、…(k−m)フレームのうちいずれかのフレームとを比較することにより求める。具体的には、制御部4は、(k)フレームを複数のブロックに細分化して、過去のフレームである参照フレームから補間データを作成し、ブロックマッチング法により、ブロックごとの動きベクトルを算出する。
【0031】
図4は、現フレーム及び参照フレームについて説明する図である。制御部4は、記憶部6を介して、記録媒体7に所定数の過去フレームを記憶させておく。図4に示すとおり、実施例では、制御部4は、少なくともm個の過去フレームを記憶させておくこととする。
【0032】
制御部4は、現フレーム内の各ブロックに対して、所定数の参照フレームにおける、最もマッチするブロックを選択する。図4においては、制御部4は、(k)フレーム内の斜線ブロックにマッチするブロックが(k−m)フレーム内に存在する場合を例示する。(k)フレームにおいて、動きベクトルを求めようとするブロックの位置、及び対応する参照フレーム内のブロックの位置を求め、その差より、動きベクトルMVを算出する。
【0033】
次に、制御部4は、ステップS2において、ブロックごとに求めた動きベクトルを、極座標に変換する。ステップS1で求めた動きベクトルMV=(MVx、MVy)を、極座標(r・cosθ、r・sinθ)に変換する。
【0034】
動きベクトルの極座標変換処理について、図5〜図7を参照して更に詳しく説明する。
図5は、参照フレームにおけるブロックの位置座標P1及び(k)フレームにおけるブロックの位置座標P2を撮像装置1の回転中心Oを原点とする座標系で表した図である。図5に示すとおり、制御部4は、参照フレームにおける対応するブロックの位置P1と、(k)フレームにおけるブロックの位置P2とで内積・外積を計算することにより、極座標を求めている。
【0035】
図6は、ステップS2の動きベクトル極座標変換処理の詳細を示したフローチャートである。図6に示す処理は、制御部4が記録媒体7から読み出して実行する動きベクトル処理部5の制御プログラムに記述されている。
【0036】
まず、制御部4は、ステップS21において、撮像装置1の回転中心O(図2参照)を原点とする座標系において、参照フレームにおけるブロックの位置座標P1(P1x、P1y)と、(k)フレームにおけるブロックの位置座標P2(P2x、P2y)とを求める。
【0037】
次に、制御部4は、ステップS22において、参照フレームにおけるブロックの位置P1及び(k)フレームにおけるブロックの位置P2それぞれの原点Oからの距離|P1|及び|P2|を求める。それぞれの原点Oからの距離は、|P1|=(P1x2+P1y2)1/2、|P2|=(P2x2+P2y2)1/2より求められる。
【0038】
最後に、制御部4は、ステップS23において、OP1とOP2の内積及び外積を計算することにより、極座標(r・cosθ、r・sinθ)を求める。ここで、r=(MVx2+MVy2)1/2である。また、r・cosθ及びr・sinθは、以下の内積及び外積の式より求めている。
r・cosθ=|P2|−(P1x・P2x+P1y・P2y)/|P2|
r・sinθ=(P1x・P2y−P2x・P1y)/|P2|
【0039】
なお、ステップS2の処理においては、全てのブロックについて極座標変換を行う必要はない。(k)フレームのうち、画像の周辺領域に含まれるブロックのみを対象とすればよい。
【0040】
図7は、極座標変換の対象となる、回転成分を検出する領域について説明する図である。図7に示すとおり、実施例では、ステップS2の動きベクトル極座標変換処理においては、(k)フレームの全ての領域を対象とはせず、フレーム画像の周辺に位置するN個の回転成分を検出する領域に含まれる複数個のブロックを対象として、動きベクトルの極座標変換を行っている。これにより、制御部4は、撮像装置1の回転中心Oからある程度離れた領域を選択して、回転成分を算出することにより、一定の精度を保ちつつ、[k]フレームの回転成分を抽出することができる。
【0041】
また、実施例では、図7に例示するように、ステップS2の極座標変換処理を施すN個の回転成分を検出する領域の大きさは、9個のブロックからなる構成としている。詳しくは以下に説明するが、図7に示すN個の領域は、ステップS3の回転成分を検出するために使用する。このため、図7に示すN個の領域を、以下においては、「回転成分検出領域」とする。
【0042】
図3のステップS2において、N個の回転成分検出領域内に含まれるブロックのそれぞれについて動きベクトルの極座標変換を行った後、制御部4は、ステップS3において、フレームの回転成分θROTを抽出する。具体的には、制御部4は、当該(k)フレームの番号である(k)、ステップS2で求めた極座標(r・cosθ、r・sinθ)、図4に示す参照フレームの番号(k−m)、及び動きベクトルの長さrから、図7に示すN個の回転成分検出領域内での回転成分を抽出する。図8を参照して更に詳しく説明する。
【0043】
図8は、ステップS3のフレーム回転成分抽出処理の詳細を示したフローチャートである。図8に示す処理は、制御部4が記録媒体7から読み出して実行する動きベクトル処理部5の制御プログラムに記述されている。
【0044】
まず、制御部4は、ステップS31において、回転成分検出領域に含まれるブロックのそれぞれについて、ステップS2において求めた動きベクトルの極座標(r・cosθ、r・sinθ)から、θ´を算出する。θ´は、以下の式で定義される。
【数1】
【0045】
(1)式においては、当該(k)フレームのフレーム番号・kと参照フレームのフレーム番号・k−mとの差分{k−(k−m)}で除算している。これは、フレーム間隔は例えば1/30秒(フィールド間隔では1/60秒)という短い時間間隔であるので、1フレーム間隔における回転ぶれの回転成分の大きさは、(k)フレーム及び(k−m)フレームの時間間隔に比例する、と推測されることに基づく。
【0046】
次に、制御部4は、ステップS32において、ステップS31で(k)フレーム内のN個の回転成分検出領域ごとに、ステップS31で求めたθ´の平均値AVE[θ´]を求める。図7に示すとおり、実施例では、1つの回転成分検出領域は9個のブロックを含む構成であるので、N個の回転成分検出領域のそれぞれについて、各回転成分検出領域に含まれる9個のブロックごとに求めたθ´の平均値AVE[θ´]を算出する。ここで回転成分検出領域ごとに求めるθ´の平均値AVE[θ´]の信頼性を確保するために、各回転成分検出領域には所定数のブロックが含まれる構成としており、実施例では、1つの回転成分検出領域には9個のブロックを含むこととしている。
【0047】
そして、制御部4は、ステップS33において、ステップS32でN個の回転成分検出領域ごとに求めた平均値AVE[θ´]の中で最小となるMIN{AVE[θ´]}を、当該(k)フレームの回転成分θROTとする。
【0048】
最後に、制御部4は、ステップS34において、過去のフレームについて求めた回転成分θROTとステップS33で求めた当該(k)フレームの回転成分θROTとの差分が所定の閾値の範囲内であるか否かを判定する。差分が所定の閾値の範囲外であれば、当該(k)フレーム1つ前のフレームである、(k−1)フレームの回転成分θROT(k−1)を(k)フレームの回転成分θROTに置き換える。これは、現フレームである(k)フレームの回転成分が過去フレームのそれと大幅にずれている場合は、被写体が現フレームの画像の大半を占めている場合が考えられ、この場合は、(k)フレームにおいて算出した回転成分は、フレーム全体のぶれの回転方向成分ではないと推測できるためである。
【0049】
ステップS34の比較に用いる過去フレームの回転成分は、複数の過去フレームについて記憶しておき、少なくとも、それぞれ1フレーム前及び2フレーム前の(k−1)フレーム及び(k−2)フレームの回転成分は記憶しておくこととする。これら過去のフレームと現フレームとの間では、回転成分の大きさは比較的小さいと推定できる。このことから、前述のとおり、過去フレームと現フレームとで回転成分の差分が所定の閾値の範囲内にあるか否かを判定することにより、ステップS33において求めた現フレームについての回転成分θROTの妥当性を検証している。差分が所定の閾値の範囲外にある場合には、ステップS33において求めた回転成分θROTは以降の処理で使用せず、過去に妥当性を検証済みの1フレーム前の回転成分θROT(k−1)を使用する。
【0050】
図3のステップS3において、フレーム回転成分θROTを抽出した後、制御部4は、ステップS4において、フレーム内の全てのブロックの動きベクトルのそれぞれから、ステップS3において抽出した回転成分θROTを除去する。具体的には、制御部4は、まず、以下の(2)式により、当該(k)フレームの回転成分のXY成分(cosθROT、sinθROT)を求める。
【数2】
【0051】
そして、制御部4は、当該(k)フレーム内の全てのブロックについてステップS1において算出した動きベクトルMVから、式(2)より求まる回転成分のXY成分(cosθROT、sinθROT)を減算することにより、回転成分θROTの除去を行う。
【0052】
図9は、ステップS1で算出する動きベクトル、ステップS3で抽出する回転成分、及びステップS4で求める回転成分除去後の動きベクトルの関係を示す図である。図9においては、撮像装置1の回転中心Oからブロックまでの距離をR(=(Px2+Py2)1/2)とする。ここでは、Pの座標は、(Px、Py)とする。
【0053】
次に、制御部4は、ステップS5において、ブロックのグループ化を行う。具体的には、制御部4は、ステップS4で、ブロックごとに求めた回転成分を除去した動きベクトル(MVxp、MVyp)(pはブロックを識別するブロック番号)同士を比較して、水平方向成分の差分及び垂直方向成分の差分がそれぞれ所定の閾値未満であるか否かを判定する。制御部4は、水平方向成分及び垂直方向成分の差分がいずれも閾値未満であれば、2つのブロックは同じグループに属すると判定する。2つのブロックp1、p2の回転成分を除去した動きベクトルをそれぞれ(MVxp1、MVyp1)、(MVxp1、MVyp2)とすると、2つのブロックp1、p2が同じグループに属する場合の条件は、以下の(3)式で表される。
|MVxp1−MVxp2|<THx、|MVyp1−MVyp2|<THy・・・(3)
ここでは、水平方向成分及び垂直方向成分の差分の閾値は、それぞれTHx及びTHyとする。フレーム内の全てのブロックについて(3)式の比較を行っていくことにより、当該(k)フレーム内のすべてのブロックがグループごとに分類される。
【0054】
更に、制御部4は、1つのグループに属すると判定された複数のブロックのうち、中心に位置するブロックの動きベクトルを、「グループ動きベクトル」とし、全てのグループについて、グループ動きベクトルを設定する。グループ動きベクトルについては、以下においては、(GMVxi、GMVyi)(iはグループを識別するグループ番号)とする。また、制御部4は、各グループの中心ブロックを選出する。
【0055】
図10は、グループの中心ブロックの選出方法を説明する図である。実施例では、1つのグループに属すると判定されたブロックのうち、他のグループとの境界に位置するブロックについては、中心ブロックの選出対象から除いている。
【0056】
図10に示す例では、1つのブロックを矩形で表し、あるグループには、21個のブロックが含まれることを示している。21個のブロックのうち、他のグループに属するブロックと隣接するブロックについては中心ブロックの選出対象から除外する。中心ブロックの選出対象から除外するブロックを灰色で示す。中心ブロックの選出対象となる6個のブロックの中から、中点の座標に位置するブロックを、中心ブロックとして選出する。図10に示す例では、5番のブロックが中心ブロックであり、図10に示すグループのグループ動きベクトルには、5番のブロックの動きベクトルが設定される。
【0057】
但し、同一グループに属すると判定されたブロックが、(k)フレーム内に分散する場合も考えられる。このような場合におけるグループ動きベクトルの決定方法について、図11を参照して説明する。
【0058】
図11は、同一グループに属するブロックがフレーム内で分散する場合におけるグループの動きベクトルの決定方法を説明する図である。
(k)フレーム内で分散しているブロックのまとまりごとに「小グループ」とする。図11に示す例では、グループ2については(k)フレーム内で分散していないが、グループ1については2つの小グループに分散している。グループ1については、まず、図10に示す方法により、小グループごとに中心ブロックを決定する。そして、1つのグループに属する全ての小グループの中心ブロックの動きベクトルの平均を求め、求めた平均を、グループのグループ動きベクトル(GMVxi、GMVyi)とする。図11に示す例では、小グループ1の中心ブロックの動きベクトルと、小グループ2の中心ブロックの動きベクトルとで平均を求め、求めた平均をグループ1のグループ動きベクトル(GMVx1、GMVy1)とする。
【0059】
図3のステップ5において、グループ動きベクトルを決定すると、制御部4は、ステップS6において、被写体のない背景グループを決定する。具体的には、制御部4は、ステップS5で決定したグループ動きベクトルのそれぞれについて、以下の(4)式を計算し、最小値をとるグループを、被写体のない背景のグループと決定する。
|GMVxi|+|GMVyi|・・・(4)
【0060】
(4)式に示すとおり、水平方向成分及び垂直方向成分のグループ動きベクトルの大きさの絶対値の和をとり、和が最小値となるグループ動きベクトルを持つグループを、被写体のない背景のグループと決定する。これは、映像において、背景は被写体に対して動きが少ないことに基づく。
【0061】
なお、制御部4は、ステップS6の被写体のない背景のグループを決定する処理において、顔検出機能や色情報、測距による被写体判別等の情報を利用して、被写体のない背景のグループをより正確に決定することも可能である。
【0062】
図12は、本実施形態に係る撮像装置1による効果を説明する図である。
前述のとおり、撮像装置1は、手ぶれ等において、その形状や重心位置等により、撮像部3の光学中心とは異なる位置を中心として回転する。手ぶれ等により生じる動きベクトルと、移動物の移動による動きベクトルを識別するために、フレーム内の背景領域を判断している。本実施形態に係る撮像装置1によれば、背景領域の判断を、フレーム自体の回転成分を除去した上で行っている。図12に示すとおり、フレームの回転成分は、撮像装置1の回転中心Oを原点とする光軸と垂直な平面内においてはその象限により方向が異なる。象限により方向の異なるフレーム回転成分を各ブロックの動きベクトルから除去し、回転成分除去後の動きベクトルを基にブロックをグループ化し、背景領域を決定し、これによりぶれ補正を行うことで、最適なぶれ補正が可能となる。
【0063】
この他にも、本発明は、本発明の要旨を逸脱しない範囲内で、種々の改良及び変更が可能である。例えば、前述の各実施形態に示された全体構成からいくつかの構成要素を削除してもよく、更には各実施形態の異なる構成要素を適宜組み合わせてもよい。
【符号の説明】
【0064】
1 撮像装置
2 光学要素部
3 撮像部
4 制御部
5 動きベクトル処理部
6 記憶部
7 記録媒体
【技術分野】
【0001】
本発明は、動画像のぶれを画像処理により補正する技術に関し、特に、ぶれにより生じる動きベクトルと、被写体の移動による動きベクトルとを識別する撮像装置、ぶれ補正方法、制御プログラム、及び制御プログラムを記録する記録媒体に関する。
【背景技術】
【0002】
近年は、ビデオカメラやデジタルカメラ等においては、動画像を撮像するときに、動きのある被写体を追尾する機能や手ぶれによるぶれを補正する機能が求められるようになってきている。これらの機能を実現する撮像装置では、連続して撮影されたフレーム画像から、動きベクトル等のフレーム間の差異を検出する技術が知られている(例えば、特許文献1)。
【0003】
特許文献1の技術においては、時間的に連続してフレーム画像を撮影し、それぞれのフレームに対して複数のベクトル検出領域で動きベクトルを検出する。検出した動きベクトルに基づき動きベクトル検出領域をグループ化し、異なるフレーム間でグループ領域同士を比較することで、フレーム間で対応するグループ領域を判定する。これにより、ぶれによる動きベクトルと移動物の移動による動きベクトルとを識別した上で、背景と被写体の分離を行っている。
【0004】
これにより、特許文献1の技術では、動画像のフレームごとに撮像装置のぶれにより生じる動きベクトルと、移動物の移動による動きベクトルとの識別を行っている。そして、特許文献1の技術では、例えば、フレーム内で背景と移動物の離散度合いの大きさが同程度であるときや、移動物が徐々に大きくなる場合等には、ぶれ補正をする領域を誤判定したり、ぶれ補正の対象となるグループが切り替わってしまう、という課題を解決している。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2010−79655号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献1の技術では、撮像装置のぶれにより生じる動きベクトルが回転成分を含む。このぶれによる動きベクトルの回転成分は、撮像装置の回転中心を原点とした座標平面の象限により、方向が異なる。したがって、特許文献1の技術では、ぶれにより生じる回転成分を含む動きベクトルにおいて、正しく動きベクトルのグループ化を行うことができない。
【0007】
本発明は、撮像装置の回転成分方向の動きを考慮した最適なぶれ補正が可能な撮像装置、ぶれ補正方法、制御プログラム、及び制御プログラムを記録する記録媒体の提供を目的とする。
【課題を解決するための手段】
【0008】
前述した目的を達成するために、本発明の態様のひとつである撮像装置は、時間的に連続するフレームを処理する撮像装置であって、それぞれのフレームに対して、所定の画素数からなる小領域に分割されたフレーム内の全てのブロックについて動きベクトルを算出するベクトル算出部と、フレームごとの回転抽出結果に基づいて、動きベクトルの回転成分を除去後、ブロックのグループ化を行う設定部と、グループ化されたグループ領域の中から、被写体のない背景のグループ領域を決定する決定部とを備えることを特徴とする。
【0009】
また、本発明の別の態様のひとつであるぶれ補正方法は、時間的に連続するフレームを処理するぶれ補正方法であって、それぞれのフレームに対して、所定の画素数からなる小領域に分割されたフレーム内の全てのブロックについて動きベクトルを算出するベクトル算出段階と、フレームごとの回転抽出結果に基づいて、動きベクトルの回転成分を除去後、ブロックのグループ化を行う設定段階と、グループ化されたグループ領域の中から、被写体のない背景のグループ領域を決定する決定段階とを有することを特徴とする。
【0010】
また、本発明の別の態様のひとつである制御プログラムは、時間的に連続するフレームのぶれ補正を演算処理装置に行わせるための制御プログラムであって、それぞれのフレームに対して、所定の画素数からなる小領域に分割されたフレーム内の全てのブロックについて動きベクトルを算出するベクトル算出処理と、フレームごとの回転抽出結果に基づいて、動きベクトルの回転成分を除去後、ブロックのグループ化を行う設定処理と、グループ化されたグループ領域の中から、被写体のない背景のグループ領域を決定する決定処理とを演算処理装置に行わせることを特徴とする。
【0011】
更に、本発明の別の態様のひとつである記録媒体は、前述した制御プログラムを記録する記録媒体であることを特徴とする。
【発明の効果】
【0012】
本発明によれば、撮像装置の回転成分方向の動きを考慮した最適なぶれ補正が可能な撮像装置、ぶれ補正方法、及び制御プログラム、及び制御プログラムを記録する記録媒体を提供できる。
【図面の簡単な説明】
【0013】
【図1】実施形態に係る撮像装置の構成図である。
【図2】撮像装置の回転中心と撮像部の中心との位置関係を説明する図である。
【図3】実施形態に係る撮像装置による動きベクトル処理を示したフローチャートである。
【図4】現フレーム及び参照フレームについて説明する図である。
【図5】参照フレームにおけるブロックの位置座標及び(k)フレームにおけるブロックの位置座標を撮像装置の回転中心を原点とする座標系で表した図である。
【図6】ステップS2の動きベクトル極座標変換処理の詳細を示したフローチャートである。
【図7】回転成分を検出する領域について説明する図である。
【図8】ステップS3のフレーム回転成分抽出処理の詳細を示したフローチャートである。
【図9】ステップS1で算出する動きベクトル、ステップS3で抽出する回転成分、及びステップS4で求める回転成分除去後の動きベクトルの関係を示す図である。
【図10】グループの中心ブロックの選出方法を説明する図である。
【図11】同一グループに属するブロックがフレーム内で分散する場合におけるグループの動きベクトルの決定方法を説明する図である。
【図12】実施形態に係る撮像装置による効果を説明する図である。
【発明を実施するための形態】
【0014】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
図1は、本実施形態に係る撮像装置の構成図である。図1に示す撮像装置1は、光学要素部2、撮像部3、制御部4、動きベクトル処理部5、記憶部6、及び記録媒体7を含む。図1においては、本実施形態に係るぶれ補正処理に係わる構成を中心に記載している。
【0015】
制御部4は、撮像部3、動きベクトル処理部5、及び記憶部6の制御を行う。
光学要素部2は、複数のレンズ等を含み、撮像部3上に被写体像を結像させる。撮像部3は、光学要素部2により結像された被写体像を光電変換し、得られた信号についてA/D変換を行う。A/D変換により得られたデジタルデータは、図1においては不図示の信号処理部において色分離やγ補正等の処理が施され、制御部4は、得られた輝度色差信号のYCbCr信号を記憶部6に記憶させる。
【0016】
動きベクトル処理部5は、例えば制御部4の演算処理装置により実行される、ぶれ補正に利用するために求める動きベクトルに係わる各種処理を行う電子回路、あるいは、制御部4の演算処理装置により実行される制御プログラムとする。
【0017】
記憶部6は、図1においては不図示の信号処理部から出力される輝度色差信号を記憶するとともに、記録媒体7に対して、画像等のデータの保存、及び制御プログラムを記憶する。
【0018】
記録媒体7は、たとえば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、DVD−ROM、磁気テープ、不揮発性のメモリカード、ROM等であり、画像等のデータを保存する。
【0019】
撮像装置1は、例えば、録画ボタン(RECボタン)が押下されることにより、所定のフレームレートでの動画像の撮像を開始し、RECボタンの再度の押下、あるいは、ストップボタンの押下等により、動画像の撮像を終了する。動画像の撮像中は、撮像部3から時間的に連続するフレーム(あるいはフィールド)画像が出力されることとなる。制御部4は、記録媒体7から読み出した制御プログラムを実行することにより、あるいは、制御部4の演算処理装置により実行される電子回路により、時間的に連続するフレーム(あるいはフィールド)画像に対し、動きベクトル処理部5による動きベクトル処理を施す。
【0020】
本実施形態に係る撮像装置1では、動きベクトル処理部5による動きベクトル処理により、撮像装置1の回転方向成分を除去した動きベクトルを用いて、フレーム画像やフィールド画像内の移動物と背景とを識別し、ぶれ補正を行う。
【0021】
図2は、撮像装置1の回転中心と撮像部3の中心との位置関係を説明する図である。
点O´は、撮像部3の光学中心である。これに対し、撮像装置1の回転中心は、撮像装置1の形状や重心位置等により決まるため、図2に例示するように、原点位置Oを予め定めておく。したがって、撮像部3の光学中心O´の位置と撮像装置1の回転中心Oの位置とは、必ずしも一致するとは限らない。
【0022】
ここで、手ぶれ等による動きベクトルには、撮像装置1の回転中心O周りの回転方向の動きも含まれる。図2に示すとおり、撮像装置1の回転中心O周りの回転方向成分は、象限によりその方向が異なる。このため、本実施形態に係る撮像装置1では、制御部4は、前述のとおり、動きベクトル処理部5により撮像装置1の回転方向成分を除去した動きベクトルを用いて、フレーム画像やフィールド画像内の移動物と背景とを識別し、ぶれ補正を行っている。以降の説明においては、動きベクトル処理部5は、制御部4の演算処理装置により実行される制御プログラムで構成した場合とする。
【0023】
動きベクトル処理部5による処理は、具体的には、動きベクトル算出処理、グループ設定処理、及び背景グループ決定処理から構成される。
動きベクトル算出処理では、時間的に連続するそれぞれのフレームに対して、フレーム内の全てのブロック(フレームを所定の画素数からなる小領域に分割したもの)について動きベクトルを算出する。具体的には、動きベクトル算出処理においては、制御部4は、記憶部6を介して記録媒体7から、現フレームの輝度色差信号YCbCrを読み出す。そして、制御部4は、同様に記録媒体7から読み出した過去のフレームを参照して、現フレームのブロックごとに動きベクトルを算出する。
【0024】
グループ設定処理は、動きベクトル極座標変換処理、フレーム回転成分抽出処理、及び動きベクトル回転成分除去処理を行った上で、グループ領域を設定する。具体的には、グループ設定処理においては、制御部4は、フレームごとの回転抽出結果に基づいて、動きベクトルの回転成分を除去後、ブロックのグループ化を行う。
【0025】
動きベクトル極座標変換処理は、動きベクトル算出処理において求めた動きベクトルを、図2の撮像装置1の回転中心Oを原点とする極座標表示に変換する。
フレーム回転成分抽出処理は、動きベクトル極座標変換処理において求めた極座標表示を利用して、現フレームの回転成分を抽出する。具体的には、制御部4は、フレーム回転成分抽出処理においては、動きベクトルの極座標表示を用いて、1フレーム間隔当たりの撮像装置1の回転中心回りの回転角を算出することにより、現フレームの過去のフレームに対する回転成分を求める。
【0026】
動きベクトル回転成分除去処理は、動きベクトル算出処理で求めた動きベクトルから、フレーム回転成分抽出処理で求めた現フレームの回転成分を除去する。
グループ設定処理は、現フレーム内のブロックのグループ化を行う。グループ設定処理においては、制御部4は、回転成分を除去した、各ブロックの動きベクトルの水平方向成分及び垂直方向成分の差分が所定の範囲内にあるか否かに基づき、当該ブロックが同一のグループであるか否かを判定する。
【0027】
背景グループ決定処理は、現フレーム内のグループ化されたグループ領域の中から、被写体のない背景のグループ領域を決定する。
以下に、動きベクトル処理部5における動きベクトル処理について、更に詳しく説明する。
【0028】
図3は、本実施形態に係る撮像装置1による動きベクトル処理を示したフローチャートである。前述したように、本フローチャートでは、撮像装置1の制御部4が記録媒体7から動きベクトル処理部5における制御プログラムを読み出して実行する場合とする。
【0029】
以下の説明においては、現フレームを「(k)フレーム」あるいは「当該(k)フレーム」とする。また、(k)フレームより1つ前のフレームを(k−1)フレーム、更に1つ前のフレームを(k−2)フレーム、m(mは1以上の整数)個前のフレームを(k−m)フレーム等のように表す。
【0030】
まず、制御部4は、ステップS1において、ブロックの動きベクトルを算出する。ブロックの大きさは、例えば16×16画素である。動きベクトルは、(k)フレームと、参照フレームである(k−1)フレーム、(k−2)フレーム、…(k−m)フレームのうちいずれかのフレームとを比較することにより求める。具体的には、制御部4は、(k)フレームを複数のブロックに細分化して、過去のフレームである参照フレームから補間データを作成し、ブロックマッチング法により、ブロックごとの動きベクトルを算出する。
【0031】
図4は、現フレーム及び参照フレームについて説明する図である。制御部4は、記憶部6を介して、記録媒体7に所定数の過去フレームを記憶させておく。図4に示すとおり、実施例では、制御部4は、少なくともm個の過去フレームを記憶させておくこととする。
【0032】
制御部4は、現フレーム内の各ブロックに対して、所定数の参照フレームにおける、最もマッチするブロックを選択する。図4においては、制御部4は、(k)フレーム内の斜線ブロックにマッチするブロックが(k−m)フレーム内に存在する場合を例示する。(k)フレームにおいて、動きベクトルを求めようとするブロックの位置、及び対応する参照フレーム内のブロックの位置を求め、その差より、動きベクトルMVを算出する。
【0033】
次に、制御部4は、ステップS2において、ブロックごとに求めた動きベクトルを、極座標に変換する。ステップS1で求めた動きベクトルMV=(MVx、MVy)を、極座標(r・cosθ、r・sinθ)に変換する。
【0034】
動きベクトルの極座標変換処理について、図5〜図7を参照して更に詳しく説明する。
図5は、参照フレームにおけるブロックの位置座標P1及び(k)フレームにおけるブロックの位置座標P2を撮像装置1の回転中心Oを原点とする座標系で表した図である。図5に示すとおり、制御部4は、参照フレームにおける対応するブロックの位置P1と、(k)フレームにおけるブロックの位置P2とで内積・外積を計算することにより、極座標を求めている。
【0035】
図6は、ステップS2の動きベクトル極座標変換処理の詳細を示したフローチャートである。図6に示す処理は、制御部4が記録媒体7から読み出して実行する動きベクトル処理部5の制御プログラムに記述されている。
【0036】
まず、制御部4は、ステップS21において、撮像装置1の回転中心O(図2参照)を原点とする座標系において、参照フレームにおけるブロックの位置座標P1(P1x、P1y)と、(k)フレームにおけるブロックの位置座標P2(P2x、P2y)とを求める。
【0037】
次に、制御部4は、ステップS22において、参照フレームにおけるブロックの位置P1及び(k)フレームにおけるブロックの位置P2それぞれの原点Oからの距離|P1|及び|P2|を求める。それぞれの原点Oからの距離は、|P1|=(P1x2+P1y2)1/2、|P2|=(P2x2+P2y2)1/2より求められる。
【0038】
最後に、制御部4は、ステップS23において、OP1とOP2の内積及び外積を計算することにより、極座標(r・cosθ、r・sinθ)を求める。ここで、r=(MVx2+MVy2)1/2である。また、r・cosθ及びr・sinθは、以下の内積及び外積の式より求めている。
r・cosθ=|P2|−(P1x・P2x+P1y・P2y)/|P2|
r・sinθ=(P1x・P2y−P2x・P1y)/|P2|
【0039】
なお、ステップS2の処理においては、全てのブロックについて極座標変換を行う必要はない。(k)フレームのうち、画像の周辺領域に含まれるブロックのみを対象とすればよい。
【0040】
図7は、極座標変換の対象となる、回転成分を検出する領域について説明する図である。図7に示すとおり、実施例では、ステップS2の動きベクトル極座標変換処理においては、(k)フレームの全ての領域を対象とはせず、フレーム画像の周辺に位置するN個の回転成分を検出する領域に含まれる複数個のブロックを対象として、動きベクトルの極座標変換を行っている。これにより、制御部4は、撮像装置1の回転中心Oからある程度離れた領域を選択して、回転成分を算出することにより、一定の精度を保ちつつ、[k]フレームの回転成分を抽出することができる。
【0041】
また、実施例では、図7に例示するように、ステップS2の極座標変換処理を施すN個の回転成分を検出する領域の大きさは、9個のブロックからなる構成としている。詳しくは以下に説明するが、図7に示すN個の領域は、ステップS3の回転成分を検出するために使用する。このため、図7に示すN個の領域を、以下においては、「回転成分検出領域」とする。
【0042】
図3のステップS2において、N個の回転成分検出領域内に含まれるブロックのそれぞれについて動きベクトルの極座標変換を行った後、制御部4は、ステップS3において、フレームの回転成分θROTを抽出する。具体的には、制御部4は、当該(k)フレームの番号である(k)、ステップS2で求めた極座標(r・cosθ、r・sinθ)、図4に示す参照フレームの番号(k−m)、及び動きベクトルの長さrから、図7に示すN個の回転成分検出領域内での回転成分を抽出する。図8を参照して更に詳しく説明する。
【0043】
図8は、ステップS3のフレーム回転成分抽出処理の詳細を示したフローチャートである。図8に示す処理は、制御部4が記録媒体7から読み出して実行する動きベクトル処理部5の制御プログラムに記述されている。
【0044】
まず、制御部4は、ステップS31において、回転成分検出領域に含まれるブロックのそれぞれについて、ステップS2において求めた動きベクトルの極座標(r・cosθ、r・sinθ)から、θ´を算出する。θ´は、以下の式で定義される。
【数1】
【0045】
(1)式においては、当該(k)フレームのフレーム番号・kと参照フレームのフレーム番号・k−mとの差分{k−(k−m)}で除算している。これは、フレーム間隔は例えば1/30秒(フィールド間隔では1/60秒)という短い時間間隔であるので、1フレーム間隔における回転ぶれの回転成分の大きさは、(k)フレーム及び(k−m)フレームの時間間隔に比例する、と推測されることに基づく。
【0046】
次に、制御部4は、ステップS32において、ステップS31で(k)フレーム内のN個の回転成分検出領域ごとに、ステップS31で求めたθ´の平均値AVE[θ´]を求める。図7に示すとおり、実施例では、1つの回転成分検出領域は9個のブロックを含む構成であるので、N個の回転成分検出領域のそれぞれについて、各回転成分検出領域に含まれる9個のブロックごとに求めたθ´の平均値AVE[θ´]を算出する。ここで回転成分検出領域ごとに求めるθ´の平均値AVE[θ´]の信頼性を確保するために、各回転成分検出領域には所定数のブロックが含まれる構成としており、実施例では、1つの回転成分検出領域には9個のブロックを含むこととしている。
【0047】
そして、制御部4は、ステップS33において、ステップS32でN個の回転成分検出領域ごとに求めた平均値AVE[θ´]の中で最小となるMIN{AVE[θ´]}を、当該(k)フレームの回転成分θROTとする。
【0048】
最後に、制御部4は、ステップS34において、過去のフレームについて求めた回転成分θROTとステップS33で求めた当該(k)フレームの回転成分θROTとの差分が所定の閾値の範囲内であるか否かを判定する。差分が所定の閾値の範囲外であれば、当該(k)フレーム1つ前のフレームである、(k−1)フレームの回転成分θROT(k−1)を(k)フレームの回転成分θROTに置き換える。これは、現フレームである(k)フレームの回転成分が過去フレームのそれと大幅にずれている場合は、被写体が現フレームの画像の大半を占めている場合が考えられ、この場合は、(k)フレームにおいて算出した回転成分は、フレーム全体のぶれの回転方向成分ではないと推測できるためである。
【0049】
ステップS34の比較に用いる過去フレームの回転成分は、複数の過去フレームについて記憶しておき、少なくとも、それぞれ1フレーム前及び2フレーム前の(k−1)フレーム及び(k−2)フレームの回転成分は記憶しておくこととする。これら過去のフレームと現フレームとの間では、回転成分の大きさは比較的小さいと推定できる。このことから、前述のとおり、過去フレームと現フレームとで回転成分の差分が所定の閾値の範囲内にあるか否かを判定することにより、ステップS33において求めた現フレームについての回転成分θROTの妥当性を検証している。差分が所定の閾値の範囲外にある場合には、ステップS33において求めた回転成分θROTは以降の処理で使用せず、過去に妥当性を検証済みの1フレーム前の回転成分θROT(k−1)を使用する。
【0050】
図3のステップS3において、フレーム回転成分θROTを抽出した後、制御部4は、ステップS4において、フレーム内の全てのブロックの動きベクトルのそれぞれから、ステップS3において抽出した回転成分θROTを除去する。具体的には、制御部4は、まず、以下の(2)式により、当該(k)フレームの回転成分のXY成分(cosθROT、sinθROT)を求める。
【数2】
【0051】
そして、制御部4は、当該(k)フレーム内の全てのブロックについてステップS1において算出した動きベクトルMVから、式(2)より求まる回転成分のXY成分(cosθROT、sinθROT)を減算することにより、回転成分θROTの除去を行う。
【0052】
図9は、ステップS1で算出する動きベクトル、ステップS3で抽出する回転成分、及びステップS4で求める回転成分除去後の動きベクトルの関係を示す図である。図9においては、撮像装置1の回転中心Oからブロックまでの距離をR(=(Px2+Py2)1/2)とする。ここでは、Pの座標は、(Px、Py)とする。
【0053】
次に、制御部4は、ステップS5において、ブロックのグループ化を行う。具体的には、制御部4は、ステップS4で、ブロックごとに求めた回転成分を除去した動きベクトル(MVxp、MVyp)(pはブロックを識別するブロック番号)同士を比較して、水平方向成分の差分及び垂直方向成分の差分がそれぞれ所定の閾値未満であるか否かを判定する。制御部4は、水平方向成分及び垂直方向成分の差分がいずれも閾値未満であれば、2つのブロックは同じグループに属すると判定する。2つのブロックp1、p2の回転成分を除去した動きベクトルをそれぞれ(MVxp1、MVyp1)、(MVxp1、MVyp2)とすると、2つのブロックp1、p2が同じグループに属する場合の条件は、以下の(3)式で表される。
|MVxp1−MVxp2|<THx、|MVyp1−MVyp2|<THy・・・(3)
ここでは、水平方向成分及び垂直方向成分の差分の閾値は、それぞれTHx及びTHyとする。フレーム内の全てのブロックについて(3)式の比較を行っていくことにより、当該(k)フレーム内のすべてのブロックがグループごとに分類される。
【0054】
更に、制御部4は、1つのグループに属すると判定された複数のブロックのうち、中心に位置するブロックの動きベクトルを、「グループ動きベクトル」とし、全てのグループについて、グループ動きベクトルを設定する。グループ動きベクトルについては、以下においては、(GMVxi、GMVyi)(iはグループを識別するグループ番号)とする。また、制御部4は、各グループの中心ブロックを選出する。
【0055】
図10は、グループの中心ブロックの選出方法を説明する図である。実施例では、1つのグループに属すると判定されたブロックのうち、他のグループとの境界に位置するブロックについては、中心ブロックの選出対象から除いている。
【0056】
図10に示す例では、1つのブロックを矩形で表し、あるグループには、21個のブロックが含まれることを示している。21個のブロックのうち、他のグループに属するブロックと隣接するブロックについては中心ブロックの選出対象から除外する。中心ブロックの選出対象から除外するブロックを灰色で示す。中心ブロックの選出対象となる6個のブロックの中から、中点の座標に位置するブロックを、中心ブロックとして選出する。図10に示す例では、5番のブロックが中心ブロックであり、図10に示すグループのグループ動きベクトルには、5番のブロックの動きベクトルが設定される。
【0057】
但し、同一グループに属すると判定されたブロックが、(k)フレーム内に分散する場合も考えられる。このような場合におけるグループ動きベクトルの決定方法について、図11を参照して説明する。
【0058】
図11は、同一グループに属するブロックがフレーム内で分散する場合におけるグループの動きベクトルの決定方法を説明する図である。
(k)フレーム内で分散しているブロックのまとまりごとに「小グループ」とする。図11に示す例では、グループ2については(k)フレーム内で分散していないが、グループ1については2つの小グループに分散している。グループ1については、まず、図10に示す方法により、小グループごとに中心ブロックを決定する。そして、1つのグループに属する全ての小グループの中心ブロックの動きベクトルの平均を求め、求めた平均を、グループのグループ動きベクトル(GMVxi、GMVyi)とする。図11に示す例では、小グループ1の中心ブロックの動きベクトルと、小グループ2の中心ブロックの動きベクトルとで平均を求め、求めた平均をグループ1のグループ動きベクトル(GMVx1、GMVy1)とする。
【0059】
図3のステップ5において、グループ動きベクトルを決定すると、制御部4は、ステップS6において、被写体のない背景グループを決定する。具体的には、制御部4は、ステップS5で決定したグループ動きベクトルのそれぞれについて、以下の(4)式を計算し、最小値をとるグループを、被写体のない背景のグループと決定する。
|GMVxi|+|GMVyi|・・・(4)
【0060】
(4)式に示すとおり、水平方向成分及び垂直方向成分のグループ動きベクトルの大きさの絶対値の和をとり、和が最小値となるグループ動きベクトルを持つグループを、被写体のない背景のグループと決定する。これは、映像において、背景は被写体に対して動きが少ないことに基づく。
【0061】
なお、制御部4は、ステップS6の被写体のない背景のグループを決定する処理において、顔検出機能や色情報、測距による被写体判別等の情報を利用して、被写体のない背景のグループをより正確に決定することも可能である。
【0062】
図12は、本実施形態に係る撮像装置1による効果を説明する図である。
前述のとおり、撮像装置1は、手ぶれ等において、その形状や重心位置等により、撮像部3の光学中心とは異なる位置を中心として回転する。手ぶれ等により生じる動きベクトルと、移動物の移動による動きベクトルを識別するために、フレーム内の背景領域を判断している。本実施形態に係る撮像装置1によれば、背景領域の判断を、フレーム自体の回転成分を除去した上で行っている。図12に示すとおり、フレームの回転成分は、撮像装置1の回転中心Oを原点とする光軸と垂直な平面内においてはその象限により方向が異なる。象限により方向の異なるフレーム回転成分を各ブロックの動きベクトルから除去し、回転成分除去後の動きベクトルを基にブロックをグループ化し、背景領域を決定し、これによりぶれ補正を行うことで、最適なぶれ補正が可能となる。
【0063】
この他にも、本発明は、本発明の要旨を逸脱しない範囲内で、種々の改良及び変更が可能である。例えば、前述の各実施形態に示された全体構成からいくつかの構成要素を削除してもよく、更には各実施形態の異なる構成要素を適宜組み合わせてもよい。
【符号の説明】
【0064】
1 撮像装置
2 光学要素部
3 撮像部
4 制御部
5 動きベクトル処理部
6 記憶部
7 記録媒体
【特許請求の範囲】
【請求項1】
時間的に連続するフレームを処理する撮像装置であって、
それぞれの前記フレームに対して、所定の画素数からなる小領域に分割された前記フレーム内の全てのブロックについて動きベクトルを算出するベクトル算出部と、
前記フレームごとの回転抽出結果に基づいて、前記動きベクトルの回転成分を除去後、前記ブロックのグループ化を行う設定部と、
前記グループ化されたグループ領域の中から、被写体のない背景のグループ領域を決定する決定部と
を備えることを特徴とする撮像装置。
【請求項2】
前記設定部は、前記動きベクトルの極座標変換を行うことにより、前記動きベクトルの回転成分を抽出する
ことを特徴とする請求項1記載の撮像装置。
【請求項3】
前記ベクトル算出部は、過去のフレームのうちの所定のフレームと現フレームとの間で前記動きベクトルを算出し、
前記設定部は、前記動きベクトルの極座標を用いて、1フレーム間隔当たりの前記撮像装置の回転中心周りの回転角を算出することにより、前記ベクトル算出領域ごとに動きベクトルの回転成分を求める
ことを特徴とする請求項2記載の撮像装置。
【請求項4】
前記設定部は、前記複数のベクトル算出領域のうち、現フレームの周辺に位置する領域について前記動きベクトルの回転成分を求める
ことを特徴とする請求項3記載の撮像装置。
【請求項5】
前記設定部は、前記現フレームの周辺に位置する領域ごとに求めた前記動きベクトルの回転成分の平均の中の最小値と、過去の所定数のフレームにおける前記動きベクトルの回転成分とを比較した結果が所定の閾値を超えた場合、当該閾値を超える過去のフレームの中で最新フレームについての動きベクトルの回転成分を、現フレームの動きベクトルの回転成分に設定する
ことを特徴とする請求項4記載の撮像装置。
【請求項6】
前記設定部は、前記現フレームの動きベクトルの回転成分を、前記複数のベクトル算出領域の動きベクトルからそれぞれ除去し、ベクトル算出領域間で該回転成分を除去した動きベクトルの水平方向成分及び垂直方向成分の差分が所定の範囲内にある場合には、当該ベクトル算出領域を同一のグループと判定する
ことを特徴とする請求項5記載の撮像装置。
【請求項7】
前記決定部は、前記グループ化されたグループ化領域の中で、前記動きベクトルの水平方向成分及び垂直方向成分の絶対値の和が最小となるグループ化領域を、被写体のない背景のグループ領域と判定する
ことを特徴とする請求項6記載の撮像装置。
【請求項8】
前記設定部は、同一のグループと判定されたベクトル算出領域がフレーム内で分散している場合は、分散しているベクトル算出領域ごとに中心となるベクトル算出領域を求め、求めた中心となるベクトル算出領域の動きベクトルを平均することにより、該同一のグループの動きベクトルを決定する
ことを特徴とする請求項6記載の撮像装置。
【請求項9】
時間的に連続するフレームを処理するぶれ補正方法であって、
それぞれの前記フレームに対して、所定の画素数からなる小領域に分割された前記フレーム内の全てのブロックについて動きベクトルを算出するベクトル算出段階と、
前記フレームごとの回転抽出結果に基づいて、前記動きベクトルの回転成分を除去後、前記ブロックのグループ化を行う設定段階と、
前記グループ化されたグループ領域の中から、被写体のない背景のグループ領域を決定する決定段階と
を有することを特徴とするぶれ補正方法。
【請求項10】
前記設定段階においては、前記動きベクトルの極座標変換を行うことにより、前記動きベクトルの回転成分を求める
ことを特徴とする請求項9記載のぶれ補正方法。
【請求項11】
前記ベクトル算出段階においては、過去のフレームのうちの所定のフレームと現フレームとの間で前記動きベクトルを算出し、
前記設定段階においては、前記動きベクトルの極座標を用いて、1フレーム間隔当たりの前記撮像装置の回転中心周りの回転角を算出することにより、前記ベクトル算出領域における動きベクトルの回転成分を求める
ことを特徴とする請求項10記載のぶれ補正方法。
【請求項12】
時間的に連続するフレームのぶれ補正を演算処理装置に行わせるための制御プログラムであって、
それぞれの前記フレームに対して、所定の画素数からなる小領域に分割された前記フレーム内の全てのブロックについて動きベクトルを算出するベクトル算出処理と、
前記フレームごとの回転抽出結果に基づいて、前記動きベクトルの回転成分を除去後、前記ブロックのグループ化を行う設定処理と、
前記グループ化されたグループ領域の中から、被写体のない背景のグループ領域を決定する決定処理と
を前記演算処理装置に行わせることを特徴とする制御プログラム。
【請求項13】
前記設定処理においては、前記動きベクトルの極座標変換を行うことにより、前記動きベクトルの回転成分を求める
ことを特徴とする請求項12記載の制御プログラム。
【請求項14】
前記ベクトル算出処理においては、過去のフレームのうちの所定のフレームと現フレームとの間で前記動きベクトルを算出し、
前記設定処理においては、前記動きベクトルの極座標を用いて、1フレーム間隔当たりの前記撮像装置の回転中心周りの回転角を算出することにより、前記ベクトル算出領域における動きベクトルの回転成分を求める
ことを特徴とする請求項13記載の制御プログラム。
【請求項15】
請求項12の制御プログラムを記録したコンピュータが読み取り可能な記録媒体。
【請求項1】
時間的に連続するフレームを処理する撮像装置であって、
それぞれの前記フレームに対して、所定の画素数からなる小領域に分割された前記フレーム内の全てのブロックについて動きベクトルを算出するベクトル算出部と、
前記フレームごとの回転抽出結果に基づいて、前記動きベクトルの回転成分を除去後、前記ブロックのグループ化を行う設定部と、
前記グループ化されたグループ領域の中から、被写体のない背景のグループ領域を決定する決定部と
を備えることを特徴とする撮像装置。
【請求項2】
前記設定部は、前記動きベクトルの極座標変換を行うことにより、前記動きベクトルの回転成分を抽出する
ことを特徴とする請求項1記載の撮像装置。
【請求項3】
前記ベクトル算出部は、過去のフレームのうちの所定のフレームと現フレームとの間で前記動きベクトルを算出し、
前記設定部は、前記動きベクトルの極座標を用いて、1フレーム間隔当たりの前記撮像装置の回転中心周りの回転角を算出することにより、前記ベクトル算出領域ごとに動きベクトルの回転成分を求める
ことを特徴とする請求項2記載の撮像装置。
【請求項4】
前記設定部は、前記複数のベクトル算出領域のうち、現フレームの周辺に位置する領域について前記動きベクトルの回転成分を求める
ことを特徴とする請求項3記載の撮像装置。
【請求項5】
前記設定部は、前記現フレームの周辺に位置する領域ごとに求めた前記動きベクトルの回転成分の平均の中の最小値と、過去の所定数のフレームにおける前記動きベクトルの回転成分とを比較した結果が所定の閾値を超えた場合、当該閾値を超える過去のフレームの中で最新フレームについての動きベクトルの回転成分を、現フレームの動きベクトルの回転成分に設定する
ことを特徴とする請求項4記載の撮像装置。
【請求項6】
前記設定部は、前記現フレームの動きベクトルの回転成分を、前記複数のベクトル算出領域の動きベクトルからそれぞれ除去し、ベクトル算出領域間で該回転成分を除去した動きベクトルの水平方向成分及び垂直方向成分の差分が所定の範囲内にある場合には、当該ベクトル算出領域を同一のグループと判定する
ことを特徴とする請求項5記載の撮像装置。
【請求項7】
前記決定部は、前記グループ化されたグループ化領域の中で、前記動きベクトルの水平方向成分及び垂直方向成分の絶対値の和が最小となるグループ化領域を、被写体のない背景のグループ領域と判定する
ことを特徴とする請求項6記載の撮像装置。
【請求項8】
前記設定部は、同一のグループと判定されたベクトル算出領域がフレーム内で分散している場合は、分散しているベクトル算出領域ごとに中心となるベクトル算出領域を求め、求めた中心となるベクトル算出領域の動きベクトルを平均することにより、該同一のグループの動きベクトルを決定する
ことを特徴とする請求項6記載の撮像装置。
【請求項9】
時間的に連続するフレームを処理するぶれ補正方法であって、
それぞれの前記フレームに対して、所定の画素数からなる小領域に分割された前記フレーム内の全てのブロックについて動きベクトルを算出するベクトル算出段階と、
前記フレームごとの回転抽出結果に基づいて、前記動きベクトルの回転成分を除去後、前記ブロックのグループ化を行う設定段階と、
前記グループ化されたグループ領域の中から、被写体のない背景のグループ領域を決定する決定段階と
を有することを特徴とするぶれ補正方法。
【請求項10】
前記設定段階においては、前記動きベクトルの極座標変換を行うことにより、前記動きベクトルの回転成分を求める
ことを特徴とする請求項9記載のぶれ補正方法。
【請求項11】
前記ベクトル算出段階においては、過去のフレームのうちの所定のフレームと現フレームとの間で前記動きベクトルを算出し、
前記設定段階においては、前記動きベクトルの極座標を用いて、1フレーム間隔当たりの前記撮像装置の回転中心周りの回転角を算出することにより、前記ベクトル算出領域における動きベクトルの回転成分を求める
ことを特徴とする請求項10記載のぶれ補正方法。
【請求項12】
時間的に連続するフレームのぶれ補正を演算処理装置に行わせるための制御プログラムであって、
それぞれの前記フレームに対して、所定の画素数からなる小領域に分割された前記フレーム内の全てのブロックについて動きベクトルを算出するベクトル算出処理と、
前記フレームごとの回転抽出結果に基づいて、前記動きベクトルの回転成分を除去後、前記ブロックのグループ化を行う設定処理と、
前記グループ化されたグループ領域の中から、被写体のない背景のグループ領域を決定する決定処理と
を前記演算処理装置に行わせることを特徴とする制御プログラム。
【請求項13】
前記設定処理においては、前記動きベクトルの極座標変換を行うことにより、前記動きベクトルの回転成分を求める
ことを特徴とする請求項12記載の制御プログラム。
【請求項14】
前記ベクトル算出処理においては、過去のフレームのうちの所定のフレームと現フレームとの間で前記動きベクトルを算出し、
前記設定処理においては、前記動きベクトルの極座標を用いて、1フレーム間隔当たりの前記撮像装置の回転中心周りの回転角を算出することにより、前記ベクトル算出領域における動きベクトルの回転成分を求める
ことを特徴とする請求項13記載の制御プログラム。
【請求項15】
請求項12の制御プログラムを記録したコンピュータが読み取り可能な記録媒体。
【図1】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図2】
【図10】
【図11】
【図12】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図2】
【図10】
【図11】
【図12】
【公開番号】特開2012−199814(P2012−199814A)
【公開日】平成24年10月18日(2012.10.18)
【国際特許分類】
【出願番号】特願2011−63096(P2011−63096)
【出願日】平成23年3月22日(2011.3.22)
【出願人】(000000376)オリンパス株式会社 (11,466)
【Fターム(参考)】
【公開日】平成24年10月18日(2012.10.18)
【国際特許分類】
【出願日】平成23年3月22日(2011.3.22)
【出願人】(000000376)オリンパス株式会社 (11,466)
【Fターム(参考)】
[ Back to top ]