以下、本発明に係る実施の形態について図面を用いて説明する。
実施の形態1.
図1は、実施の形態1の動き検出処理装置を含む画像処理装置21の構成を概略的に示す機能ブロック図である。なお、動き検出処理装置は、以下、動き検出処理部23として説明する。図1に示されるように、画像処理装置21は、動き検出処理部23の他に、パラメータ演算処理部22及び歪補正処理部24を備える。座標位置情報PIは、画像処理装置21に入力される。画像処理装置21に入力された座標位置情報PIは、パラメータ演算処理部22及び歪補正処理部24に入力される。また、画像入力Isは、画像処理装置21に入力される。入力画像Isは、動き検出処理部23及び歪補正処理部24に入力される。パラメータ演算処理部22は、入力画像Isを構成する画素の座標位置情報PIに基づいて動き検出パラメータRm及びベクトル(s,t)を出力する。動き検出パラメータRm及びベクトル(s,t)は、動き検出処理部23及び歪補正処理部24に入力される。動き検出処理部23は、動き検出情報Mvを出力する。歪補正処理部24は、画像出力信号Osを出力する。「入力画像」とは、画像処理装置21に入力される画像のことである。
図2は、実施の形態1の動き検出処理部23の基本構成を概略的に示す機能ブロック図である。動き検出処理部23は、フィルタリング制御部29及び動き検出部30を備える。動き検出部30は、フレームメモリ38、差分器32、ローパスフィルタ31、絶対値処理部35、ロークリップ処理部33及びハイクリップ処理部34を有する。動き検出処理部23に関する詳細な説明は後述する。動き検出処理部23は、パラメータ演算処理部22から供給された動き検出パラメータRm及びベクトル(s,t)を用いる。動き検出処理部23は、入力画像Isと入力画像Isを1フレーム遅延した遅延画像Ifdとの差分画像に対して時空間フィルタリング処理を実施する。1フレーム遅延は、フレームメモリ36によりおこなわれる。差分画像の抽出は、差分器32によりおこなわれる。「差分画像」とは、一方の画像の値をもう一方の画像の値から引いた値又は、その絶対値を対応した画素の値とする画像のことを言う。時空間フィルタリング処理は、たとえばローパスフィルタ31を用いた高周波除去などである。動き検出処理部23は、フィルタリング処理を実施した後、絶対値処理、非線形変換であるロークリップ処理及びハイクリップ処理を実行することにより入力画像Is中の動き検出情報Mvを導出する機能を有する。絶対値処理は、絶対値処理部35によりおこなわれる。ロークリップ処理は、ロークリップ処理部33によりおこなわれる。ハイクリップ処理は、ハイクリップ処理部34によりおこなわれる。
<歪補正処理部24の動作説明>
本発明の動き検出処理装置は、歪曲歪みの量に応じて設定を変更するものである。本発明の動き検出処理装置を含む画像処理装置21において、歪曲歪みの補正をおこなう歪補正処理部24の動作について説明する。
歪補正処理部24は、入力画像Isを受信する。歪補正処理部24は、入力画像Isの歪曲歪みを補正する機能を有する。歪補正処理部24は、入力画像Isの局所的な歪曲歪み量FAに応じた倍率Rdを用いて入力画像Isを局所的に変形(拡大または縮小)する。倍率Rdは、動き検出パラメータRmの1つである。後述するように、s,tは、倍率Rdの適用方向を示すベクトル(s,t)の成分である。
本実施の形態1では、入力画像Isは、撮像装置の撮像光学系により結像された光学像を固体撮像素子が光電変換することで得られたデジタル画像である。歪曲歪み量FAは、撮像光学系の歪曲収差に起因して発生する歪曲歪みの大きさを示す。歪曲歪み量FAは、撮像光学系の画角中心からの像高及び撮影条件に応じて予め計算されたものである。例えば、歪曲歪み量FAは、均一な升目上のチャート等に投影した画像などを測定して算出することで得られる。歪曲歪み量FAのデータは、歪補正処理部24の内部または外部の不揮発性メモリ(図示せず)に格納されている。歪補正処理部24は、この不揮発性メモリのデータを参照して歪曲歪み量FAを取得する。歪曲歪み量FAは、注目画素の座標位置に対応する。つまり、画像の各画素は個別に歪曲歪み量FAを有している。
歪補正処理部24は、注目画素と画角の中心に対応する画像の中心との間の距離Lを算出する。「注目画素」とは、出力画像Osを処理した際に対象とした画素である。つまり、画像処理装置21で処理をする際の対象画素である。出力画像Osは、歪曲歪みが補正された画像である。
図3は、注目画素と画像中心との間の関係を示す図である。図3は、出力画像Osを表している。図3では、例えば、出力画像Osの横方向をX軸で表し、縦方向をY軸で表している。図3の横軸はX軸で、縦軸はY軸である。図3中、X軸の右方向は+X軸方向で、Y軸の下方向は+Y軸方向である。画像中心は、画角中心に対応している。距離Lは、撮像光学系の画角中心からの理想的な像高に対応する量である。「理想的な像高」とは、歪曲収差が無い場合の像高である。図3において、出力画像Os中の任意の画素の座標は、原点座標(0,0)に対するX座標とY座標との組で与えられる。図3中で、原点座標(0,0)は左上の端の位置としている。注目画素の座標を(x,y)とし、画像中心の座標を(XC,YC)とするとき、距離Lは、次式(1)に従って算出される。
次に、歪補正処理部24は、算出された距離Lに対応する歪曲歪み量を注目画素の歪曲歪み量FAとして取得する。図4は、歪曲歪み量FAと画像中心からの距離Lとの間の関係の一例を示す図である。図4の縦軸は、歪曲歪み量FAであり、図4の横軸は画像中心からの距離Lである。図4において、縦軸の上方向は歪曲歪み量FAが大きくなる方向である。つまり、歪曲歪み量FA5が最も小さい値であり、歪曲歪み量FA0が最も大きい値である。横軸の右方向は距離Lが大きくなる方向である。つまり、距離L1が最も小さい値であり、距離L5が最も大きい値である。図4は、一例として、画角中心から離れる程、歪曲歪み量FAが小さくなる場合を示している。図4に示されるように、歪曲歪み量FAは、離散的な点(座標)の距離Lkに対応する離散的な値FAkとして与えられている。距離Lkは、単位距離nの間隔の離散的な点(座標)として与えられる。つまり、歪曲歪み量FAは、単位距離nの間隔の離散的な点(座標)の距離L0(=0),L1,L2,L3,・・・にそれぞれ対応する離散的な歪曲歪み量FA0,FA1,FA2,FA3,…として与えられている。なお、距離及び歪曲歪み量等で使用する「・・・」は、距離及び歪曲歪み量等が整数単位で続くことを示している。離散的な点と点との間の任意の点に対応する歪曲歪み量FAは、補間により算出することができる。たとえば線形補間法を使用する場合には、距離Lk及びLk+1の間の内分点の距離Lに対応する歪曲歪み量FA=FA(k,k+1,Δ)は、次式(2)で与えられる。
上式(2)において、Δは、距離Lの点と距離Lkの点との間の距離である。また式(2)において、n−Δは、距離Lの点と距離Lk+1の点との間の距離である。なお、上記方法に代えて、N次の補間多項式(Nは2以上の整数)を用いて任意の点に対応する歪曲歪み量FAを算出することも可能である。
次に、歪補正処理部24は、注目画素の画素値を算出するために入力画像Is内の参照すべき画素の参照座標(x0,y0)を算出する。「参照座標」とは、参照する画素の座標であり、歪曲収差がない場合、参照座標は注目画素の座標と一致する。歪曲歪みが補正された出力画像Osの座標(x,y)と、実際に撮像された入力画像Isの参照座標(x0,y0)との間には歪曲収差に起因するズレが生じている。本実施の形態1では、歪曲収差は、撮像光学系の画角中心からの距離(像高)のみに依存するものと想定されている。参照座標(x0,y0)は、座標(x,y)に対応する歪曲歪み量FAを用いて次式(3)により算出される。
参照座標の値x0,y0は、入力画像Is内に実存する画素の座標値と一致するとは限らない。言い換えれば、参照座標の値x0,y0は、必ずしも整数値にならない。このため、歪補正処理部24は、参照すべき画素又はその周辺画素の画素値をサンプリングする。歪補正処理部24は、サンプリングした画素値を用いた補間処理を行う。歪補正処理部24は、この補間処理により出力画像Osの注目画素の画素値G(x,y)を算出することができる。
図5は、線形補間法により参照座標(x0,y0)の画素値を加重平均で補間する方法の説明図である。図5は、入力画像Isを表している。図5では、例えば、入力画像Isの横方向をX軸で表し、縦方向をY軸で表している。図5の横軸はX軸で、縦軸はY軸である。図5中、X軸の右方向は+X軸方向で、Y軸の下方向は+Y軸方向である。
図5に示されるように、参照座標(x0,y0)に対する周辺画素の座標(i,j)の画素値、座標(i+1,j)の画素値、座標(i,j+1)の画素値及び座標(i+1,j+1)の画素値を用いて参照座標(x0,y0)の画素値を補間することができる。参照座標(x0,y0)の画素値は、注目画素の画素値である。参照座標(x0,y0)は、左上の座標(i,j)から水平方向に距離Dxだけ離れて位置している。また、参照座標(x0,y0)は、左上の座標(i,j)から垂直方向に距離Dyだけ離れて位置している。入力画像Isにおける任意座標(p,q)の画素値をg(p,q)と表す。出力画像Osにおける注目画素の画素値をG(x,y)と表す。このとき、注目画素の画素値G(x,y)は、次式(4)を用いて算出される。
以上に説明したように、歪補正処理部24は、歪曲歪み量FAに応じた倍率Rdで入力画像Isを局所的に変形(拡大または縮小)する。これにより、歪補正処理部24は、入力画像Isの歪曲歪みを補正することができる。
次に、倍率Rdの求め方について説明する。入力画像Isにおける注目画素の画像中心からの距離をHで表す。このとき距離Hは、実像高に対応する量である。「実像高」とは、レンズ歪み(収差)の影響を含め、実際に結像している像の像高である。距離Hは、理想的な像高に対応する距離Lとこれに対応する歪曲歪み量FAとの積となる。すなわち、距離Hは、H=FA×Lで表される。上述のように、「理想的な像高」とは、歪曲収差が無い場合の像高である。
前述の通り、本実施の形態1では、歪曲収差は、撮像光学系の画角中心からの距離(像高)のみに依存するものと想定されている。よって、距離Hは、距離Lを独立変数とする関数H=f(L)と表現することができる。歪曲歪みを補正するための撮像画像の局所的な変形(拡大または縮小)倍率をRdで表すとする。このとき倍率Rdは、Lに関するHの1次微分の逆数として表現することができる。倍率Rdは、次式(5)で与えられる。
ここで、倍率Rd=1の場合は等倍を意味する。すなわち、撮像画像の拡大または縮小を行わない場合を意味する。倍率Rdの値が1より大きい場合には、歪み補正処理によって注目画素を中心とする画素領域の部分が拡大されることを意味する。また、倍率Rdの値が1より小さい場合には、歪み補正処理によって注目画素を中心とする局所的な画素領域の部分が縮小されることを意味する。
<パラメータ演算処理部22の動作説明>
次に、パラメータ演算処理部22の動作について説明する。
図6は、入力画像Is中の注目画素と画像中心との間の関係を示す図である。図6は、入力画像Isを表している。図6では、例えば、入力画像Isの横方向をX軸で表し、縦方向をY軸で表している。図6の横軸はX軸で、縦軸はY軸である。図6中、X軸の右方向は+X軸方向で、Y軸の下方向は+Y軸方向である。図6中、左上の端は、原点(0,0)である。
まず、パラメータ演算処理部22は、図6に示されるように、入力画像Is中の注目画素と画像中心との間の距離Liを算出する。注目画素の座標を(xi,yi)とする。画像中心の座標を(XC,YC)とする。このとき、次式(6)に従って距離Liを算出することができる。
次に、パラメータ演算処理部22は、式(6)によって算出された距離Liに基づいて倍率Rdを算出する。また、パラメータ演算処理部22は、倍率Rdの適用方向(撮像画像の拡大または縮小が発生する方向)を示すベクトル(s,t)のベクトルの成分s,tを算出する。倍率Rdは、上式(5)と同様の次式(7)で表現することができる。
よって、距離Liを、関数Li=f(L)として与えることができれば、その一次微分関数を用いて倍率Rdを算出することができる。関数Li=f(L)は、距離Lを独立変数とする多項式関数である。あるいは、上式(7)の近似式を用いて倍率Rdを算出することも可能である。図4に例示されるように、歪曲歪み量FAが離散的な値FAk(FA0,FA1,FA2,・・・)として与えられている場合には、L=Lk(=n×k)のとき、上式(7)から以下の近似式(7a)を導出することができる。近似式(7a)は、単位距離nが微小であることにより近似している。
よって、次の近似式(7b)を導出することができる。
図7は、近似式(7b)を用いて倍率Rdを算出する手順を示すフローチャートである。図7に示されるように、パラメータ演算処理部22は、まず、変数kを「1」に設定する(ステップS11)。次に、パラメータ演算処理部22は、距離Liが距離FAk・Lk未満であるか否かを判定する(ステップS12)。距離FAk・Lkは、距離Lkに対応する歪み補正前の画角中心から注目画素までの距離である。距離Liが距離FAk・Lk未満ではない場合(ステップS12のN)には、パラメータ演算処理部22は、変数kに1を加算して(ステップS13)、その後、ステップS12に処理を戻す。距離Liが距離FAk・Lk未満となった場合(ステップS12のY)には、最初にLi<FAk・Lkの式を満たす距離Lkが検出される。このとき、上式(7b)に従って倍率Rdが算出される(ステップS14)。なお、「Y」は分岐条件が真、「N」は分岐条件が偽の場合を示す。
一方、パラメータ演算処理部22は、次式(8)に従って、ベクトル(s,t)の成分s,tを算出することができる。ベクトル(s,t)は、倍率Rdの適用方向(撮像画像の拡大または縮小が発生する方向)を示すベクトルである。
なお、倍率Rdとベクトルの成分s,tとを算出する順序は逆であってもよい。パラメータ演算処理部22は、算出された倍率Rdとベクトル(s,t)とを動き検出処理部23に供給する。
<動き検出処理部23の動作説明>
次に、動き検出処理部23の動作について説明する。
図2は、前記の通り、動き検出処理部23の基本構成を概略的に示す機能ブロック図である。図2に示されるように、動き検出処理部23は、フィルタリング制御部29と動き検出部30とを有する。
動き検出部30は、フレームメモリ38と、差分器32と、ローパスフィルタ31と、絶対値処理部35と、ロークリップ処理部33と、ハイクリップ処理部34とを含む。ローパスフィルタ31は、時空間フィルタリング処理を行う。
フレームメモリ38は、入力画像Isを1フレーム期間遅延し、1フレーム遅延画像Ifdを出力する。つまり、1フレーム遅延画像Ifdは、フレームメモリ38を介して得られる。差分器32は、入力画像Isおよび1フレーム遅延画像Ifdを入力して、差分画像Diを生成する。そして、差分器32は、この差分画像Diをローパスフィルタ31に供給する。上述のように、「差分画像」とは、一方の画像の値をもう一方の画像の値から引いた値又は、その絶対値を対応した画素の値とする画像のことを言う。
ローパスフィルタ31は、差分画像Diに対して、時空間フィルタリング処理をおこなう。「時空間フィルタリング処理」とは、画像などを時間方向にフィルタリング処理をおこなうことである。この時空間フィルタリング処理は、入力画像Isの注目画素の位置を含む参照範囲SA(サンプリング範囲)内の複数の画素に対しておこなわれる。「参照範囲」とは、フィルタリング対象範囲であり、注目画素を中心とする局所的な領域である。「参照範囲」は「サンプリング範囲」とも呼ばれる。ローパスフィルタ31は、フィルタリング制御部29から重み係数Kwを受ける。ローパスフィルタ31は、重み係数Kwに応じて参照範囲を設定し、時空間フィルタリング処理をおこなう。ローパスフィルタ31は、時空間フィルタリング処理を実行した画像DLPFを絶対値処理部35へ出力する。ローパスフィルタ31は、基準設定範囲を有する。「基準設定範囲」とは、レンズ歪みの影響を受けない画像位置での参照範囲である。フィルタリング制御部29は基準設定範囲を基準として参照範囲を可変に設定することができる。
本実施の形態1では、時空間フィルタリング処理として平滑化(ローパスフィルタリング)が実行される。差分画像Diにおける入力画像Isの注目画素の位置の画素と、注目画素の周辺の画素との画素値の差が大きい場合には、注目画素と注目画素の周辺の画素とを平滑化の対象としないフィルタリング処理にしてもよい。
図8(A)及び図8(B)は、基準参照範囲SAを説明する図である。図8(A)は、入力画像Isを表している。図8(B)は、入力画像Isの中の基準参照範囲SAを拡大して表している。図8(A)及び図8(B)では、例えば、入力画像Isの横方向をX軸で表し、縦方向をY軸で表している。図8(A)の横軸はX軸で、縦軸はY軸である。図8(A)中、X軸の右方向は+X軸方向で、Y軸の下方向は+Y軸方向である。図8(B)は、図8(A)中の基準参照範囲SAを拡大した図である。
基準参照範囲SAは、座標(x,y)での注目画素Pc(x,y)を中心とするマトリクス状配列からなる。「マトリクス状配列」とは、例えば横方向及び縦方向に値を配した状態を指す。また、この配列は、(2M+1)×(2N+1)画素の配列である。ここで、N,Mは、1以上の整数である。ローパスフィルタ31は、まず基準参照範囲SA2内の画素値g(x−i,y−j)に重み係数(フィルタ係数)Kw(i,j)を乗算する。ローパスフィルタ31は、次にその乗算結果g(x−i,y−j)×Kw(i,j)を基準参照範囲SA2内の全ての画素について加算する。この動作によりローパスフィルタ31は、フィルタ画像の画素値DLPF(x,y)を算出する。具体的には、次式(9)に従って注目画素Pc(x,y)に対応するフィルタ画像DLPFの画素値DLPF(x,y)を算出することができる。入力画像Isのノイズ量が多く、ノイズ抑圧量を大きくする場合には、重み係数Kw(i,j)は各々が均一となるように設定される。また、ノイズ抑圧量を大きくする必要がなければ、注目画素に対する重み係数Kw(0,0)は他の重み係数Kwよりも大きく設定される。
ここで、重み係数Kw(i,j)の値は、全て正の値である。重み係数Kw(i,j)の総和は、1である。また、注目画素Pc(x,y)の画素値g(x,y)に乗ずるべき重み係数Kw(0,0)は、他の重み係数Kwよりも大きな値を有するように設定される。
フィルタリング制御部29は、重み係数Kw(i,j)の設定値を変えることでローパスフィルタ31の参照範囲SAを変更することが可能である。たとえば、重み係数Kw(i,j)の全ての値が零でないときには、参照範囲は基準参照範囲SA2と一致する。参照範囲が基準参照範囲SA2と一致したときには、参照範囲の広さは最大となる。重み係数Kw(i,j)のいくつかの値を零とすることで参照範囲の広さを基準参照範囲SA2よりも狭くすることができる。
絶対値処理部35は、フィルタ画像の画素値DLPFの絶対値を取る。そして、絶対値処理部35は、差分絶対値画像DABSを生成する。生成された差分絶対値画像DABSは、ロークリップ処理部33に供給される。
ロークリップ処理部33は、クリップ処理機能を有する。このクリップ処理は、ロークリップ閾値THlo以下の振幅範囲内の入力信号レベルを一定の振幅の出力信号レベルに変換するものである。具体的には、ロークリップ処理部33は、差分絶対値画像DABSのうち振幅の小さい信号成分をカットすることにより信号レベルを変換する。差分絶対値画像DABSは、差分器32、ローパスフィルタ31及び絶対値処理部35により変換された画像である。ロークリップ処理部33は、ローパスフィルタ31による低域成分の抽出により画像のノイズ成分の抑圧を行う。ロークリップ処理部33は、ノイズ成分の影響による動きの誤検出を抑制する。ロークリップ処理部33の出力信号は、ハイクリップ処理部34に入力される。
図9は、ロークリップ処理部33の入出力特性の一例を示す図である。図9の縦軸は、出力信号レベルを表し、横軸は入力信号レベルを表す。図9において、縦軸の上方向の方が高い出力信号レベルを示している。また、横軸の右方向の方が高い入力信号レベルを示している。図9に示されるように、ロークリップ処理部33では入力信号振幅がロークリップ閾値THlo以下となる低振幅範囲内の入力信号レベルの信号を零に変換している。「ロークリップ閾値THlo以下」とは、ロークリップ閾値が−THloから+THloまでのことである。このような変換によりノイズ成分の抑圧が行われている。
ハイクリップ処理部34は、ロークリップ処理部33の出力を入力とする。ハイクリップ処理部34は、クリップ処理機能を有する。このクリップ処理機能は、ハイクリップ閾値THhi以上の振幅範囲内の入力信号レベルを一定の振幅の出力信号レベルに変換するものである。ハイクリップ閾値THhiは、ロークリップ閾値THloよりも大きな値である。このように一定の振幅以上の信号をクリップすることにより、常に一定以上の動きが見られる被写体において、被写体の動きが停止した際の動きの変化が検出される。
図10は、ハイクリップ処理部34の入出力特性の一例を示す図である。図10の縦軸は、出力信号レベルを表し、横軸は入力信号レベルを表す。図10において、縦軸の上方向の方が高い出力信号レベルを示している。また、横軸の右方向の方が高い入力信号レベルを示している。図10に示されるように、ハイクリップ処理部34は、入力信号の振幅がハイクリップ閾値THhi以上となる高振幅範囲内の入力信号のレベルをそれぞれ一定の出力信号のレベルに変換する。すなわち、ハイクリップ処理部34では、+THhi以上の入力信号レベルの信号が一定の出力信号レベル(+Ms)に変換される。また、ハイクリップ処理部34では、−THhi以下の入力信号レベルの信号が一定の出力信号レベル(−Ms)に変換される。
フィルタリング制御部29は、倍率Rdが大きい程、ローパスフィルタ31の参照範囲SA(サンプリング範囲)を狭くする機能を有する。例えば、フィルタリング制御部29は、倍率Rdが大きい程、倍率Rdのベクトル(s,t)と平行な方向の参照範囲SAを狭くする機能を有する。そのため、フィルタリング制御部29は、ローパスフィルタ31に対して重み係数Kwを出力する。ベクトル(s,t)は、倍率Rdの適用方向を示す。フィルタリング制御部29は、ローパスフィルタ31の出力が、注目画素の位置に関わらず、その変形後の画素範囲の広さが基準参照範囲SA2の広さと等しくなるように参照範囲を定める。なお、ここでの「広さが等しい」とは、画素範囲の水平方向及び垂直方向の画素数が完全に一致するものでなく、前後一画素分の差を許容するものである。画素数が完全に一致しない場合に、一番近い値の広さとするものである。例えば、演算結果の値が小数点以下となり隣の画素に画素範囲が広がることなどが起こりうる。上記のように、画素範囲の広さを定めることにより、光学歪みによる画像中の被写体のサイズを均一化することができる。
また、フィルタリング制御部29は、ルックアップテーブルを有している。このルックアップテーブルは、動き検出パラメータR及びベクトル(s,t)の値の組み合わせとローパスフィルタ31の候補参照範囲SA21〜29との対応関係を示している。フィルタリング制御部29は、このルックアップテーブルを参照して、複数の候補参照範囲SA21〜29の中から動き検出パラメータR及びベクトル(s,t)の現在値に応じて参照範囲SAを選択することができる。
図11は、ローパスフィルタに適用される5×5画素の候補参照範囲SA21〜29を示す図である。図11(A)〜図11(I)の候補参照範囲SA21〜29は、一例として、それぞれ5×5画素のマトリクスで表されている。図11(A)〜図11(I)において、中央の太線で示した画素は、注目画素Pc(x,y)である。図11(A)の候補参照範囲SA21は、ローパスフィルタ31の基準参照範囲SA2である。候補参照範囲SA21は、歪曲歪みが零である場合に選択される参照範囲SAである。図11(A)〜図11(I)において、灰色に塗られた画素は、参照範囲SAから除かれた画素であることを意味する。例えば、図11(B)は、左端の一列及び右端の一列の画素が灰色で示されている。図11(B)においては、左端の一列及び右端の一列の画素が参照範囲SAから除かれた画素の領域である。
同様に、図11(C)は、左端の二列及び右端の二列の画素が灰色で示されている。図11(D)は、上端の一行及び下端の一行の画素が灰色で示されている。図11(E)は、上端の二行及び下端の二行の画素が灰色で示されている。図11(F)は、右上部の3画素及び左下部の3画素が灰色で示されている。図11(G)は、右上部の6画素及び左下部の6画素が灰色で示されている。図11(H)は、左上部の3画素及び右下部の3画素が灰色で示されている。図11(I)は、左上部の6画素及び右下部の6画素が灰色で示されている。
図12(A)、図12(C)及び図12(E)は、候補参照範囲SA21,SA23,SA25に適用されるべき重み係数(フィルタ係数)Kwの例を示す図である。図12(A)、図12(C)及び図12(E)は、それぞれ図11(A)、図11(C)及び図11(E)に対応している。図12(A)、図12(C)及び図12(E)における重み係数Kwは、5×5画素のそれぞれの画素に対応した重み係数Kwとなる。
例えば、図12(A)の候補参照範囲SA21の左上の端の画素の重み係数Kwは、1/256である。また、図12(A)の候補参照範囲SA21の注目画素Pc(x,y)の重み係数Kwは、35/256である。同様に、図12(C)の候補参照範囲SA23の注目画素Pc(x,y)の重み係数Kwは、6/16である。また、図12(E)の候補参照範囲SA25の注目画素Pc(x,y)の重み係数Kwは、6/16である。
図13は、図2のローパスフィルタ31に適用される参照範囲SAを選択するために予め用意されたルックアップテーブルの一例を示す図である。図13は、角度Aと倍率Rdとの関係を示す。
図14は、方向パラメータs,tと角度Aとの関係を示す図である。図14は、ベクトル(s,t)の成分s,tをXY直交座標系にプロットした図である。X軸は成分sを表している。Y軸は成分tを表している。X軸は、図14中の右側に行く程大きな値となる。Y軸は、図14中の下側に行く程大きな値となる。X軸とY軸との交点はベクトル(0,0)となる。
図13にしめす角度Aは、図14に示されるように、原点に対する座標(s,t)の角度を−180°から180°の範囲で表した値である。図14は、ベクトル(s,t)の成分s,tをXY直交座標系にプロットした図である。角度Aは、X軸の正方向(図14中右側)を0度とし、半時計周りの角度を正とする。図13のルックアップテーブルには、図11(A)〜図11(I)における候補参照範囲SAが記載されている。図13の角度Aは、45度の範囲で区切られている。例えば、−22.5度より大きく+22.5度以下の範囲を1つの範囲としている。図13の倍率Rは、「Rd≦2.0」、「2.0<Rd≦3.0」及び「3.0<Rd」の3つの区分に区切って示している。
図2に示すフィルタリング制御部29は、図13に示すルックアップテーブルを参照して、動き検出パラメータRm及びベクトル(s,t)の組み合わせに対応する参照範囲SAを複数の候補参照範囲SA21〜29の中から選択することができる。
また、図13に示すルックアップテーブルに示されるように、倍率Rdが大きくなる程、ローパスフィルタ31の参照範囲SA(サンプリング範囲)は段階的に狭くなることが分かる。たとえば、図13に示されるように、−180度<A<−157.5度の範囲では、ローパスフィルタ31の適用範囲は、Rd≦2.0のときに範囲SA21が選択される。また、ローパスフィルタ31の適用範囲は、2.0<Rd≦3.0のときに範囲SA21よりも狭い範囲SA22が選択される。さらに、ローパスフィルタ31の適用範囲は、Rd>3.0のときに範囲SA22よりも狭い範囲SA23が選択される。
また、倍率Rdが大きくなると、ローパスフィルタ31の参照範囲は、主に、ベクトル(s,t)と平行な方向に段階的に狭くなることも分かる。ベクトル(s,t)の方向は、倍率Rdの適用方向である。たとえば、図13に示されるように、A=0度を中心とする−22.5度<A≦+22.5度の範囲内では、以下のようになる。ローパスフィルタ312の参照範囲SAは、倍率Rdが大きくなる程、基準参照範囲SA21から候補参照範囲SA22に切り換えられる。また、ローパスフィルタ312の参照範囲SAは、倍率Rdが大きくなる程、候補参照範囲SA22から候補参照範囲SA23に切り換えられる。つまり、ローパスフィルタ312の参照範囲SAは、倍率Rdが大きくなる程、角度A=0度の角度方向(X軸方向)に段階的に狭くなる。
<動き検出処理装置23の効果>
次に、実施の形態1の効果について説明する。
上記のように本実施の形態1の動き検出処理装置23は、ローパスフィルタ31などの時空間フィルタリング処理を行う。上記の時空間フィルタリング処理は、画像に重畳されているノイズ成分の影響を低減することができる。このため、本実施の形態1の動き検出処理装置23は、動きの誤検出を低減できる効果がある。
上記のように本実施の形態1の動き検出処理装置23におけるフィルタリング制御部29は、入力画像Isの局所的な歪曲歪み量FAに応じた倍率Rdに応じてローパスフィルタ31の参照範囲SA(サンプリング範囲)の広さを動的に変更する。よって、フィルタリング制御部29は、倍率Rdが大きい程、参照範囲SAを狭くする。倍率Rdの大きい部分は、光学歪みの影響を大きく受ける部分である。このため、一般に、倍率Rdの大きい部分においては、被写体は小さくなる。被写体が小さくなれば、被写体の動きが検出されにくくなる。本実施の形態1の動き検出処理装置23におけるフィルタリング制御部29は、倍率Rdが大きい程、参照範囲SAを狭くすることにより、光学歪みの影響を大きく受ける倍率Rdの大きい部分においても、被写体の動きが検出されなくなることを防ぐ。
歪曲歪みを有する入力画像Is内の被写体が歪み補正処理により引き伸ばされた場合には、目視で確認できるにも関わらず、動きが検出されないことが起こりうる。図1の歪補正処理部24の歪み補正処理は、フィルタリング制御部29の上記の動作により、目視で確認できるにも関わらず、動きが検出されない現象を抑制することができる。
また、フィルタリング制御部29は、歪んだ画像内を移動する被写体に対する動き検出精度の均一性を向上することができる。これは、フィルタリング制御部29が、ベクトル(s,t)の方向と平行な方向に参照範囲SAを狭くすることによる。ベクトル(s,t)の方向は、倍率Rdの適用方向である。ベクトル(s,t)の方向と平行な方向に参照範囲SAを狭くすることは、参照範囲SAが、常に基準参照範囲SA2の広さと等しくなるからである。基準参照範囲SA2は、倍率Rdが1.0のときの参照範囲SAである。
また、フィルタリング制御部29は、倍率Rdに応じて参照範囲SAの広さを変更する際の演算負荷を低減することができる。上記の演算負荷の低減は、フィルタリング制御部29において、ルックアップテーブルを参照してローパスフィルタ31の参照範囲SAを動的に決定することとしたことによる。
上記のように本実施の形態1の動き検出処理装置23の出力は、動き検出情報Mvとして出力される。動き検出情報Mvは例えば、画像信号を演算処理する場合に、動き検出情報の結果により演算処理を制御することで動きぼけのない演算をする場合に用いられる。
実施の形態2.
次に、本発明に係る実施の形態2について説明する。本実施の形態2の動き検出処理装置の構成は、図2のフィルタリング制御部29の一部の動作を除いて、実施の形態1の動き検出処理装置23の構成と同じである。このため、図1及び図2を参照しつつ実施の形態2について説明する。上記実施の形態1では、フィルタリング制御部29は、ルックアップテーブルを参照してローパスフィルタ31の参照範囲SAを動的に決定していた。しかし、本実施の形態2のフィルタリング制御部29は、倍率Rdとベクトル(s,t)の成分s,tとを入力として、ローパスフィルタ31の参照範囲SAを定める画素位置を演算処理により算出する。
実施の形態1と同一の構成要素には同一の符号を付しその説明を省略する。実施の形態1と同一の構成要素は、パラメータ制御部22、歪補正制御部24及び動き検出部30である。なお、フィルタリング制御部は、実施の形態1のフィルタリング制御部29と上述の相違点を有するが、同一の符号「29」を用いて説明する。なお、実施の形態1と同じ構成要素の構成、機能又は動作等は、実施の形態2で説明を省いた場合でも、実施の形態1の記載を代用する。また、実施の形態2の中で説明した、実施の形態1に関する記載は、実施の形態1の説明として用いる。
図15は、本実施の形態の基準参照範囲SA2の一例を概略的に示す図である。図15において、整数Nは行を示す。また、図15において、整数Mは列を示す。図15では、N=4であり、M=4である。この基準参照範囲SA2は、注目画素Pcを中心とする(2M+1)×(2N+1)画素のマトリクス状の配列からなる。ここで、整数M,Nは、1以上の整数である。実施の形態1の場合と同様に、ローパスフィルタ31は、参照範囲の広さと等しい広さの基準参照範囲を有する。また、図15には、各画素に局所的な座標が示されている。注目画素Pcの座標は(0,0)である。
フィルタリング制御部29は、ローパスフィルタ31における基準参照範囲SA2内の全ての画素の座標(a,b)を次の変換式(10)に従って座標(p,q)に変換する。なお、整数aは、−M〜+Mの範囲内の整数である。また、整数bは、−N〜+Nの範囲内の整数である。
式(10)において、行列Rx(A)は、入力画像Isの局所的な変形における拡大の方向または縮小の方向がX軸と一致するように座標の回転を行う回転行列である。式(10)において、行列S(1/Rd)は、X軸方向に倍率Rdの逆倍率1/Rdで座標位置を変化させる行列である。式(10)において、行列Rx(−A)は、Rx(A)の逆行列である。
上式(10)を整理すると、次式(10a)が得られる。
フィルタリング制御部29は、上式(10a)を用いて算出された座標の集合{(p,q)}で特定される範囲を参照範囲SAとして指定する。なお、「集合{}」は、{}内の条件を満たす要素の集まりのことである。これにより、フィルタリング制御部29は、倍率Rdとベクトル(s,t)の成分s,tとに応じてローパスフィルタ31の参照範囲SA(サンプリング範囲)の広さを変更する。フィルタリング制御部29は、倍率Rdが大きい程、参照範囲SAを狭くすることができる。
また、フィルタリング制御部29は、歪補正処理部24で行われる入力画像Isを変形する方向に垂直な方向については参照範囲SAを変形しない。フィルタリング制御部29は、倍率Rdの適用方向であるベクトル(s,t)の方向と平行な方向に参照範囲SAを狭くすることができる。
さらには、図1の歪補正処理部24は、入力画像Isに対する参照範囲を変形(拡大または縮小)することで画素範囲の歪曲歪みを補正する。一方、フィルタリング制御部29は、ローパスフィルタ31について、注目画素の位置に関わらず、変形後の画素範囲の広さが基準参照範囲SA21の広さと等しくなるように参照範囲SAを定めることができる。なお、変形後の画素範囲の広さは、基準参照範囲SA21の広さに対して前後一画素分の差を許容する。これは、演算結果の値が小数点以下となり隣の画素に画素範囲が広がることなどが起こりうるからである。
したがって、実施の形態2に係る動き検出処理装置23は、実施の形態1の場合と同様に、歪曲歪みを有する画像において、被写体が画角のいずれにあっても同じ精度で被写体の動きを検出することができる。つまり、実施の形態2に係る動き検出処理装置23は、被写体が入力画像Is内のどの位置にあっても同じ精度で被写体の動きを検出することができる。
また、実施の形態2に係る動き検出処理装置23は、変換式(10a)を使用して参照範囲SAが動的に決定するので、実施の形態1の場合のようにルックアップテーブルのデータを予め用意し保持する必要がない。さらに実施の形態2に係る動き検出処理装置23は、倍率Rd及び倍率Rdの適用方向について高い分解能で参照範囲SAの変更を行うことができる。
実施の形態3.
次に、本発明に係る実施の形態3について説明する。図16は、実施の形態3の動き検出処理部23Bの構成を概略的に示す図である。本実施の形態3の動き検出処理装置23Bの構成は、動き検出パラメータ算出処理部37、ロークリップ処理部33A及びハイリップ処理部33Bの構成を除いて、上記実施の形態1の動き検出処理部23の構成と同じである。
実施の形態1と同一の構成要素には同一の符号を付しその説明を省略する。実施の形態1と同一の構成要素は、パラメータ演算処理部22、歪補正処理部24、フィルタリング制御部29、フレームメモリ38、差分器32、ローパスフィルタ31及び絶対値処理部35である。なお、実施の形態1と同じ構成要素の構成、機能又は動作等は、実施の形態3で説明を省いた場合でも、実施の形態1の記載を代用する。また、実施の形態3の中で説明した、実施の形態1に関する記載は、実施の形態1の説明として用いる。また、実施の形態3に実施の形態2で説明したフィルタリング制御部29を適用することもできる。実施の形態2のフィルタリング制御部29は、倍率Rdとベクトル(s,t)の成分s,tとを入力として、ローパスフィルタ31の参照範囲SAを定める画素位置を演算処理により算出する。
図16に示されるように、動き検出処理部23Bは、上記実施の形態1の動き検出処理部23と同様にフィルタリング制御部29と動き検出部30Aとを有する。動き検出処理部23Bは、さらに動き検出パラメータ算出処理部37を有する。
動き検出パラメータ算出処理部37は、パラメータ演算処理部22が出力する倍率Rdを入力する。倍率Rdは動き検出パラメータRmの1つのパラメータ値である。動き検出パラメータ算出処理部37は、ロークリップ処理部33Aに対してロークリップ閾値THloを出力する。同様に、動き検出パラメータ算出処理部37は、ハイリップ処理部33Bに対してハイクリップ閾値THhiを出力する。これにより、動き検出パラメータ算出処理部37は、倍率Rdに応じて、ロークリップ処理部33Aのロークリップ閾値THlo及びハイクリップ処理部34Aのハイクリップ閾値THhiを動的に変更する機能を有する。例えば、倍率Rdが大きいとき、動き検出パラメータ算出処理部37はロークリップ処理部33Aにおけるロークリップ閾値THloを大きい値に変更する。また、倍率Rdが大きいとき、動き検出パラメータ算出処理部37はハイクリップ処理部34Aにおけるハイクリップ閾値THhiを小さい値に変更する。
ロークリップ処理部33Aは、差分絶対値画像DABS及びロークリップ閾値THloを入力する。そして、ロークリップ処理部33Aはロークリップ信号DLCを出力する。また、ハイクリップ処理部33Bは、ロークリップ信号DLC及びハイクリップ閾値THhiを入力する。そして、ハイクリップ処理部33Bはハイクリップ信号DHCを出力する。
図17は、倍率Rdとロークリップ閾値THloとの関係を示すルックアップテーブルを表す図である。また、図17は、倍率Rdとハイクリップ閾値THhiとの関係を示すルックアップテーブルを表す図である。
図17には、ロークリップ処理部33Aのクリップ値及びハイクリップ処理部34Aのクリップ値が示されている。動き検出パラメータ算出処理部37は、図17のルックアップテーブルを参照して、倍率Rdの現在値に対応するロークリップ閾値THlo及びハイクリップ閾値THhiを得ることができる。図17において、例えば、倍率Rdの値が0.0のときは、ロークリップ閾値THloは0であり、ハイクリップ閾値THhiは40である。また、倍率Rdの値が1.0のときは、ロークリップ閾値THloは8であり、ハイクリップ閾値THhiは40である。
図17によれば、ロークリップ処理部33Aに対するロークリップ閾値THloは、倍率Rdが大きくなる程、段階的に高くなる。また、ハイクリップ処理部33Aに対するハイクリップ閾値THhiは、倍率Rdが大きくなる程、段階的に低くなる。
上記のように実施の形態3では、倍率Rdの現在値に応じて動き検出処理のパラメータを変動させる。パラメータを変動させることにより、実施の形態3では、倍率Rdの大きい部分に対して局所的に動き検出の判定条件を細かく調整する。倍率Rdの大きい部分は、画像の歪みの影響が大きい部分である。また、パラメータを変更することにより、実施の形態3では、歪んだ画像内を同一の被写体が移動する際の、動き検出精度の均一性をより高めることができる。
実施の形態4.
次に、本発明に係る実施の形態4について説明する。実施の形態4は、実施の形態1〜3の動き検出処理装置のいずれか1つを有する撮像装置1の構成について説明するものである。
図18は、実施の形態4の撮像装置1の概略構成を示すブロック図である。図18に示されるように、撮像装置1は、撮像光学系(レンズ機構)11、CCD画像センサ12、フロントエンド部13、A/D変換器(ADC)14、駆動回路15、タイミングジェネレータ16及び制御回路2を有している。
制御回路2は、信号処理部20、画像処理部21B、制御部40、メモリ41及び外部インタフェース部(外部I/F部)42を有する。これら構成要素20,21B,40,41,42は、バス43を介して相互に接続されている。制御部40は、制御回路2の全体動作を制御するMPU(Micro Processing Unit)である。画像処理部21Bは、上記実施の形態1〜3の動き検出処理装置を含む画像処理装置のいずれか1つと同じ構成を有する。メモリ41は、ROM41A及びRAM41Bを有する。
撮像光学系(レンズ機構)11は、前側レンズ110、開口絞り111及び後側レンズ112を有する。CCD画像センサ12は、例えば、単板式の固体撮像素子であり、単一の色フィルタアレイ121と単一のCCD素子122とを有する。色フィルタアレイ121は、互いに異なるN個の波長域の色の光をそれぞれ透過させるN種類の色フィルタ(Nは2以上の正整数)を周期的に且つ面状に配列したものであればよい。本実施の形態4では、色フィルタアレイ121の色フィルタ配列として原色系のベイヤ配列を使用することができる。しかし、これに限定されるものではなく、補色系のベイヤ配列を使用してもよい。なお、CCD画像センサに代えて、CMOS画像センサなどの他の固体撮像素子を使用してもよい。
タイミングジェネレータ16は、駆動タイミング信号を発生して駆動回路15に供給する。駆動回路15は、タイミングジェネレータ16から出力された駆動タイミング信号に応じてCCD画像センサ12を駆動するための駆動信号を生成する。CCD画像センサ12は、この駆動信号に基づいて、光電変換及び電荷転送を行う。
撮像光学系11は、前側レンズ110、開口絞り111及び後側レンズ112を経て、被写体の光学像をCCD画像センサ12に送る。CCD画像センサ12は、単一の色フィルタアレイ121を経て、単一のCCD素子122の撮像面上に被写体の光学像を合焦する。「合焦」とは、カメラを用いた撮影においてピントが合うことを言う。CCD画像センサ12で光電変換して得られた撮像信号は、フロントエンド部13に転送される。フロントエンド部13は、撮像信号に対して、相関二重サンプリング(CDS:Correllated Double Sampling)処理及びプログラマブル利得増幅(PGA:Programmable Gain Amplifier)を実行する。そして、フロントエンド部13は、上記の実行をした結果得られたアナログ信号をADC14に出力する。ここで、CDS処理は、CCD画像センサ12から出力される撮像信号からノイズなどの不要な成分を除去する処理である。ADC14は、フロントエンド部13の出力信号をデジタル信号に変換する。そしてADC14は、このデジタル信号を制御回路2の信号処理部20に供給する。
信号処理部20は、ADC14の出力信号に、色同時化処理、階調補正処理、ノイズ低減処理、輪郭補正処理、白バランス調整処理、信号振幅調整処理及び色補正処理などを施して得られる映像信号をバス43に出力する。バス43は、制御部40による制御を受けて、映像信号をメモリ41のRAM(Random Access Memory)41Bに転送する。画像処理部21Bは、RAM41Bから映像信号を読み出して、上記の時空間フィルタリングとクリップ処理と動き検出ノイズ抑圧強度調整処理とを実行することができる。
なお、上記画像処理部21Bの機能の全部または一部は、ハードウェア構成で実現されてもよいし、あるいは、マイクロプロセッサにより実行されるコンピュータプログラムで実現されてもよい。たとえば、不揮発性メモリであるROM(Read Only Memory)41Aからコンピュータプログラムをロードし実行することによって画像処理部21Bの機能を実現することができる。画像処理部21Bは、上記実施の形態1〜3の動き検出処理装置を含む画像処理装置のいずれかと同じ構成を有し、生成された画像が、外部I/F部42から出力される。
以上、図面を参照して本発明に係る種々の実施の形態について述べたが、これらは本発明の例示であり、上記以外の様々な形態を採用することもできる。たとえば、ロークリップ処理部33及びハイクリップ処理部34に代えて、ルックアップテーブル回路を用いてもよい。
また、歪補正処理部24を搭載せずに、例えば入力された魚眼画像をそのまま出力画像とする構成としてもよい。
また、上記実施の形態1〜3では、歪曲歪み量FAは、図4に例示したように距離Lに対応する値として与えられるものであった。しかし、これに代えて、X座標値とY座標値との組に対応する値として与えられてもよい。
なお、上述の各実施の形態においては、「平行」や「垂直」などの部品間の位置関係もしくは部品の形状を示す用語を用いている場合がある。これらは、製造上の公差や組立て上のばらつきなどを考慮した範囲を含むことを表している。このため、請求の範囲に部品間の位置関係もしくは部品の形状を示す記載をした場合には、製造上の公差又は組立て上のばらつき等を考慮した範囲を含むことを示している。
また、以上のように本発明の実施の形態について説明したが、本発明はこれらの実施の形態に限るものではない。