以下、本発明を実施するための形態について図面を用いて詳細に説明する。図1は、実施例1〜3の映像補間装置が処理する映像の撮像時の照明及びカメラの配置の一例を示す図である。
被写体30を照らす照明装置31−1,31−2が複数台(図1の例では2台)設けられており、カメラ32は、これら照明装置31−1,31−2の一部または全てによって照明された被写体30を撮影するものとする。いずれの照明装置31−1,31−2が点灯または消灯するかは、図示しない制御装置により、時分割的に制御されるものとする。
図2は、複数の照明の点灯パターンの一例を示す図である。図示しない制御装置は、偶数のフレーム番号(0,2,4,・・・)の映像フレームにおいて、照明装置31−1が点灯すると共に照明装置31−2が消灯するように、照明装置31−1,31−2を制御する。また、制御装置は、奇数のフレーム番号(1,3,5,・・・)の映像フレームにおいて、照明装置31−1が消灯すると共に照明装置31−2が点灯するように、照明装置31−1,31−2を制御する。
偶数のフレーム番号の映像フレームにおいて、照明装置31−1,31−2の点灯パターンの状態を照明状態Aとし、奇数のフレーム番号の映像フレームにおいて、照明装置31−1,31−2の点灯パターンの状態を照明状態Bとする。
尚、図1及び図2の例では、2台の照明装置31−1,31−2を交互に点灯させる場合を示したがこれは一例であり、他の例を用いるようにしてもよい。例えば、3台の照明装置を用いて、偶数のフレーム番号の映像フレームでは、第1及び第2の照明装置が点灯し、奇数のフレーム番号のフレーム映像では、第2及び第3の照明装置が点灯するようにしてもよい。要するに、制御装置は、複数の照明装置のうち点灯させる照明装置の組み合わせを、時分割的に制御できればよい。
図3は、入力映像の一例を示す図であり、図2に示した点灯パターンで被写体30が撮影された場合に、実施例1〜3の映像補間装置が入力する映像フレームI(t)を示している。tはフレーム番号または時刻を示す。
この例では、被写体30は右上方向へ移動している。映像フレームI(0),I(2)は、照明状態Aにおいて撮影された被写体30の映像を示しており、被写体30の右斜め下部分に陰影が見られる。また、映像フレームI(1),I(3)は、照明状態Bにおいて撮影された被写体30の映像を示しており、被写体30の下部分に陰影が見られる。
照明状態Aの映像フレームI(0),I(2)において、被写体30の陰影位置は類似している。また、照明状態Bの映像フレームI(1),I(3)において、被写体30の陰影位置は類似している。これに対し、照明状態Aの映像フレームI(0),I(2)と照明状態Bの映像フレームI(1),I(3)との間では、被写体30の陰影位置は異なっている。
図4は、実施例1〜3の映像補間装置による補間映像フレーム(補間画像)の生成処理について、模式的に説明する図である。図4(a)は、照明状態Aにおける補間映像フレームJ(1)を生成する例を示し、図4(b)は、照明状態Bにおける補間映像フレームJ(2)を生成する例を示し、図4(c)は、一般的な例において補間映像フレームJ(t)を生成する処理を示す。
図4(a)に示すように、映像補間装置は、同一の照明状態Aにおいて撮影されたフレーム番号0(時刻0)の映像フレームI(0)と、フレーム番号2(時刻2)の映像フレームI(2)とを合成し、補間映像フレームJ(1)を生成する。補間映像フレームJ(1)は、照明状態Aでは実際に撮像されなかった(照明状態Aを模擬した状況の(照明状態Aにて模擬的に撮影された))フレーム番号1(時刻1)における映像フレームである。
また、図4(b)に示すように、映像補間装置は、同一の照明状態Bにおいて撮影されたフレーム番号1(時刻1)の映像フレームI(1)と、フレーム番号3(時刻3)の映像フレームI(3)とを合成し、補間映像フレームJ(2)を生成する。補間映像フレームJ(2)は、照明状態Bでは実際に撮像されなかった(照明状態Bを模擬した状況の(照明状態Bにて模擬的に撮影された))フレーム番号2(時刻2)における映像フレームである。
より一般的には、図4(c)に示すとおりとなる。映像補間装置は、同一の照明状態で撮像された時刻t+αの映像フレームI(t+α)と、時刻t+βの映像フレームI(t+β)とを合成し、補間映像フレームJ(t)を生成する。補間映像フレームJ(t)は、前記照明状態では撮影されなかった(前記照明状態を模擬した状況の(前記照明状態にて模擬的に撮影された))時刻tにおける映像フレームである。
好ましくは、α及びβは、α<0<βの条件を満たす整数とする。例えば、図2に示したように、2種類の照明状態A,Bがフレーム番号の偶数または奇数によって切り替わる場合には、α=−1,β=+1とする。
図4(a)(b)に示したとおり、フレーム番号1において、照明状態Aにて補間処理により生成された補間映像フレームJ(1)、及び照明状態Bにて実際に撮影された映像フレームI(1)が得られることとなる。また、フレーム番号2において、照明状態Aにて実際に撮影された映像フレームI(2)、及び照明状態Bにて補間処理により生成された補間映像フレームJ(2)が得られることとなる。
つまり、映像補間装置は、フレーム番号1の時刻において、照明状態Aの補間映像フレームJ(1)及び照明状態Bの映像フレームI(1)を得ることができる。また、フレーム番号2の時刻において、照明状態Aの映像フレームI(2)及び照明状態Bの補間映像フレームJ(2)を得ることができる。これらの補間映像フレームJ(1)及び映像フレームI(1)は、静止している被写体30に対し、異なる照明状態A,Bにおいて得られた画像であると言える。映像フレームI(2)及び補間映像フレームJ(2)についても同様である。
前述の特許文献1の技術では、照明装置31−1,31−2を所定の規則により点灯させることで、照度差ステレオ法に基づいて、静止している被写体30の画像の陰影情報からその形状を推定することができる。
したがって、映像補間装置は、図4(c)において、同一の照明状態で撮像された映像フレームI(t+α),I(t+β)を合成し、補間映像フレームJ(t)を生成することにより、動いている被写体30の形状を推定することができる。
以下に説明する実施例1〜3の映像補間装置は、同一の照明状態(例えば照明状態A)で撮像された複数の映像フレームI(t+α),I(t+β)と、他の照明状態(例えば照明状態B)で撮像された映像フレームI(t)とを用いる。映像補間装置は、これらの映像フレームI(t+α),I(t),I(t+β)に基づいて、照明状態Aでは撮像されていない(照明状態Aにて模擬撮影された)時刻tの補間映像フレームJ(t)を生成する。
これにより、照明状態Aで模擬撮影された時刻tの補間映像フレームJ(t)、及び照明状態Bで実際に撮影された時刻tの映像フレームI(t)を用いて、照度差ステレオ法に基づき、動いている被写体30の形状を推定することができる。
〔実施例1〕
まず、実施例1について説明する。図5は、実施例1の映像補間装置の構成例を示すブロック図であり、図6は、実施例1の映像補間装置の処理例を示すフローチャートである。
この映像補間装置1は、映像遅延部11,14、動き推定部12,16、エッジ抽出部13及び動き補償部18を備えている。映像補間装置1は、同一の照明状態における時刻t+α,t+βの映像フレームI(t+α),I(t+β)を入力し、異なる照明状態における時刻tの映像フレームI(t)を入力する。そして、映像補間装置1は、これらの3つの映像フレームI(t+α),I(t),I(t+β)を用いて、時刻t+βの映像フレームI(t+β)を基準として、時刻t+βの照明状態を模擬した状況における時刻tの補間映像フレームJ(t)を生成する。
これにより、同一の照明状態における時刻t+α,t,t+βの映像フレームI(t+α)、補間映像フレームJ(t)及び映像フレームI(t+β)が得られる。
図5及び図6を参照して、映像補間装置1は、同一の照明状態における時刻t+α,t+βの映像フレームI(t+α),I(t+β)を入力すると共に、異なる照明状態における時刻tの映像フレームI(t)を入力する(ステップS601)。
映像補間装置1の映像遅延部11は、映像フレームIを入力し、映像フレームIを所定数のフレーム分遅延させる。そして、映像遅延部11は、所定数のフレーム分遅延させた映像フレームIを動き推定部12に出力する。本例では、映像遅延部11は、映像フレームI(t+β)を入力し、映像フレームI(t+β)を(β−α)フレーム分遅延させ、映像フレームI(t+α)を動き推定部12に出力する。
動き推定部12は、映像フレームI(t+β)を入力すると共に、映像遅延部11から映像フレームI(t+α)を入力し、2つの映像フレームI(t+α),I(t+β)から、時刻tの動きベクトル場V(t)を推定する(ステップS602)。動きベクトル場V(t)は、時間1フレームあたりの動きベクトルを画素単位で並べたマップとする。
ここで、時刻t、画像座標(x,y)の動きベクトルをV(t,x,y)=[u(t,x,y),v(t,x,y)]Tとする(右上付きのTは転置)。動き推定部12は、例えばブロックマッチング法を用いて、以下の式にて、動きベクトルV(t,x,y)を演算する。
前記式(1)において、D(a,b)は、aとbの誤差を評価する関数であり、例えば、以下に示す絶対値誤差が用いられる。
また、D(a,b)として、以下に示す二乗誤差が用いられる。
また、前記式(1)において、Rはブロック形状を表す領域であり、例えば、以下に示す矩形領域が用いられる。
rx,ryは非負の実数とし、[・,・]は閉区間を表す。例えば、rx=ry=7とすると、動き推定部12は、15×15画素の矩形ブロックでブロックマッチングを実行することとなる。
また、前記式(1)において、Sは探索領域(探索範囲)であり、例えば、以下に示す矩形領域が用いられる。
sx,syは非負の実数とする。例えば、sx=sy=10とすると、動き推定部12は、水平方向±10画素及び垂直方向±10画素の範囲で、ブロックマッチングの探索を実行することとなる。
図7は、動きベクトルV(t,x,y)の例を模式的に示す図である。図7において、左側は参照画像(時刻t+αにおける映像フレームI(t+α))を示し、中央は時間tの補間映像フレームJ(t)を示し、右側は、参照画像(時刻t+βにおける映像フレームI(t+β))を示す。P1は、動きベクトルを求めたい座標x,yを示し、B1は、映像フレームI(t+α)上のブロックを示し、B2は、映像フレームI(t+β)上のブロックを示す。
時刻tにおける画像座標P1(x,y)の動きベクトルV(t,x,y)は、ベクトル[u,v]Tを時刻差(ここではα及びβ)倍したそれぞれの位置を中心とするブロックB1,B2を参照し、両ブロックB1,B2の差異が最も小さくなるベクトル[u,v]Tを探索することにより得られる。この場合のブロックB1の中心は(x+αu,y+αv)であり、ブロックB2の中心は(x+βu,y+βv)である。
尚、動き推定部12は、動きベクトル場V(t)を推定する際に、全画素位置に関して個々の動きベクトルを算出しないで、間引いた画素位置のみについて動きベクトルを算出するようにしてもよい。この場合、動きベクトルが算出されなかった画素位置については、動きベクトルが算出されている最近傍(例えば、ユークリッド距離による)の画素位置の動きベクトルを以て、当該画素の動きベクトルと見なしてもよい(最近傍補間)。また、動きベクトルが算出されなかった画素位置については、その周囲の複数の動きベクトルが算出されている画素位置の動きベクトルを用いて、補間処理を行い、当該画素の動きベクトルを合成するようにしてもよい(例えば、双一次補間や双三次補間による)。
また、動き推定部12は、前記数式(1)〜(3)に示した誤差の最小化によるブロックマッチング法を用いる代わりに、例えば、相互相関値の最大化によるブロックマッチング法を用いるようにしてもよい。さらに、動き推定部12は、ブロックマッチング法の代わりに、勾配法を用いるようにしてもよい。
図5及び図6に戻って、エッジ抽出部13は、映像フレームIを入力し、エッジ情報を抽出し、エッジ情報が反映されたエッジ映像フレーム(情報映像フレーム)Eを生成して映像遅延部14及び動き推定部16に出力する。エッジ情報は、テクスチャ情報に比べて照明状態の変化に対する見た目の変化が少ないため、後段の動き推定部16を、異なる照明状態下で正常に動作させることができ、精度の高い動きベクトル場W(t)を推定することができる。
本例では、エッジ抽出部13は、後段の動き推定部16の動作に対応させるため、映像フレームI(t),I(t+β)からエッジを抽出し、エッジ映像フレームE(t),E(t+β)を生成する(ステップS603)。
エッジ抽出部13は、例えば、Laplacian(ラプラシアン)フィルタ、Sobel(ソーベル)フィルタ、Prewitt(プレヴィット)フィルタ等を用いてエッジ抽出を行う。
エッジ抽出部13は、ラプラシアンフィルタを用いる場合、以下の式にて、エッジ映像フレームE(t+β)を演算する。
また、エッジ抽出部13は、ソーベルフィルタを用いる場合、以下の式にて、エッジ映像フレームE(t+β)を演算する。
また、エッジ抽出部13は、プレヴィットフィルタを用いる場合、以下の式にて、エッジ映像フレームE(t+β)を演算する。
尚、エッジ抽出部13は、エッジ情報を抽出した後または抽出する前に、低域通過型フィルタを適用してもよい。低域通過型フィルタとしては、例えば、移動平均による平滑化、Gaussian(ガウシアン)フィルタを用いることができる。例えば、エッジ抽出部13は、前記式(6)のラプラシアンフィルタ及びガウシアンを組み合わせたLOG(Laplacian of Gaussian)フィルタを適用するようにしてもよい。
また、エッジ抽出部13は、高域通過型フィルタ、帯域通過型フィルタ等の線形フィルタ、またはCanny(キャニー)エッジ検出器等の非線形フィルタを用いて、エッジ映像フレームE(t+β)を演算するようにしてもよい。
映像遅延部14は、エッジ映像フレームEを入力し、エッジ映像フレームEを所定数のフレーム分遅延させる。そして、映像遅延部14は、所定数のフレーム分遅延させたエッジ映像フレームEを動き推定部16に出力する。本例では、映像遅延部14は、エッジ映像フレームE(t+β)を入力し、エッジ映像フレームE(t+β)をβフレーム分遅延させ、エッジ映像フレームE(t)を動き推定部16に出力する。
動き推定部16は、映像遅延部14からエッジ映像フレームE(t)を入力すると共に、エッジ抽出部13からエッジ映像フレームE(t+β)を入力し、さらに、動き推定部12から動きベクトル場V(t)を入力する。そして、動き推定部16は、動きベクトル場V(t)に基づいて、当該動きベクトル場V(t)を反映した探索範囲を限定して定義(設定)する。動き推定部16は、エッジ映像フレームE(t),E(t+β)に基づき、その探索範囲内において時刻tの動きベクトル場W(t)を推定する(ステップS604)。動きベクトル場W(t)は、時間1フレームあたりの動きベクトルを画素単位で並べたマップとする。
ここで、時刻t、画像座標(x,y)の動きベクトルをW(t,x,y)=[z(t,x,y),w(t,x,y)]Tとする。動き推定部16は、例えばブロックマッチング法を用いて、以下の式にて、動きベクトルW(t,x,y)を演算する。この場合、動き推定部16は、動き推定部12により演算された同画像座標(x,y)の動きベクトルV(t,x,y)=[u(t,x,y),v(t,x,y)]Tに基づき定義される探索範囲内において、動きベクトルW(t,x,y)を演算する。
前記式(9)において、R’はブロック形状を表す領域であり、例えば、以下に示す矩形領域が用いられる。
r’x,r’yは非負の実数とする。r’x ,r’yは、例えば前記rx,ryとそれぞれ同一の値としてもよい。例えば、r’x=r’y=7とすると、動き推定部16は、15×15画素の矩形ブロックでブロックマッチングを実行することとなる。
また、前記式(9)において、S’は探索領域(探索範囲)である。S’=Sでもよいが、好ましくはS’⊂Sとする。つまり、探索範囲S’は、探索範囲Sよりも狭いことが望ましい。これにより、同一の照明状態下で撮像された映像フレームI(t+α),I(t+β)間の照合は、動き推定部12によってテクスチャを用いて頑健に実行し、その結果によって探索範囲S’を狭めつつ、異なる照明状態下で撮影された映像フレームI(t)のエッジ情報に基づき、動き推定部16において動きベクトルW(t,x,y)の精度を向上させることができる。
S’は、例えば、以下に示す矩形領域が用いられる。
s’x,s’yは非負の実数とする。例えば、s’x=s’y=3とすると、動き推定部16は、水平方向±3画素及び垂直方向±3画素の範囲で、ブロックマッチングの探索を実行することとなる。
動き補償部18は、映像フレームI(t+β)を入力すると共に、動き推定部12から動きベクトル場V(t)を入力し、さらに、動き推定部16から動きベクトル場W(t)を入力する。そして、動き補償部18は、映像フレームI(t+β)に対し、動きベクトル場V(t),W(t)に基づく動き補償を実行することで、同一の照明状態で撮影されていない時刻tの補間映像フレームJ(t)を生成する(ステップS605)。動き補償部18は、補間映像フレームJ(t)を出力する(ステップS606)。
具体的には、動き補償部18は、以下の式により、時刻t+βにおける映像フレームI(t+β)に対し、動きベクトル場V(t)=[u(t),v(t)]T,W(t)=[z(t),w(t)]Tに基づく動き補償を実行することで、時刻tの補間映像フレームJ(t)を演算する。
すなわち、動き補償部18は、時刻tにおける補間映像フレームJ(t)のx値を求める際に、動きベクトルV(t,x,y)=[u(t,x,y),v(t,x,y)]Tのu(t,x,y)値に動きベクトルW(t,x,y)=[z(t,x,y),w(t,x,y)]Tのz(t,x,y)値を加算し、加算結果にβを乗算し、乗算結果に映像フレームI(t+β)のx値を加算する。また、動き補償部18は、時刻tにおける補間映像フレームJ(t)のy値を求める際に、動きベクトルV(t,x,y)=[u(t,x,y),v(t,x,y)]Tのv(t,x,y)値に動きベクトルW(t,x,y)=[z(t,x,y),w(t,x,y)]Tのw(t,x,y)値を加算し、加算結果にβを乗算し、乗算結果に映像フレームI(t+β)のy値を加算する。
以上のように、実施例1の映像補間装置1によれば、動き推定部12は、同一の照明状態で撮影された映像フレームI(t+α),I(t+β)から、当該照明状態では撮影されていない時刻tの動きベクトル場V(t)を推定する。
動き推定部16は、映像フレームI(t)から生成されたエッジ映像フレームE(t)及び映像フレームI(t+β)から生成されたエッジ映像フレームE(t+β)に基づいて、動きベクトル場V(t)に基づき定義される探索範囲内において、当該照明状態で撮影されていない時刻tの動きベクトル場W(t)を推定する。
動き補償部18は、映像フレームI(t+β)及び動きベクトル場V(t),W(t)に基づく動き補償により、当該照明状態で撮影されていない時刻tの補間映像フレームJ(t)を生成する。
これにより、映像フレームI(t+β)(すなわち、映像フレームI(t+α))と同じ照明状態で撮影した状況を模擬した補間映像フレームJ(t)が前方予測にて生成される。そして、当該照明状態とは異なる照明状態で撮影された時刻tの映像フレームI(t)、及び当該照明状態で撮影した状況を模擬した時刻tの補間映像フレームJ(t)に基づき、例えば照度差ステレオ法を用いることで、動いている物体の形状を推定することができる。
したがって、実施例1の映像補間装置1により、照明状態が時分割的に変化する環境下で撮影した映像フレームI(t+α),I(t),I(t+β)を用いて、動いている物体の形状を推定するための補間映像フレームJ(t)を前方予測にて生成することができる。つまり、照明状態が時分割的に変化する環境下で撮影した映像を用いて、物体の実際の動きを捉えた追跡を行うことができ、これにより生成した映像を、例えば照度差ステレオ法に適用することで、動いている物体の形状を精度高く推定することができる。
また、エッジ映像フレームE(t),E(t+β)は、照明状態の違いの影響を受け難い画像であるから、動き推定部16において、精度の高い動きベクトル場W(t)を推定することができる。その結果、動き補償部18において、動き補償の精度及び頑健性を向上させることができ、補間映像フレームJ(t)の画質を向上させることができる。
〔実施例2〕
次に、実施例2について説明する。図8は、実施例2の映像補間装置の構成例を示すブロック図であり、図9は、実施例2の映像補間装置の処理例を示すフローチャートである。
この映像補間装置2は、映像遅延部11,14,15、動き推定部12,17、エッジ抽出部13及び動き補償部19を備えている。映像補間装置2は、同一の照明状態における時刻t+α,t+βの映像フレームI(t+α),I(t+β)を入力し、異なる照明状態における時刻tの映像フレームI(t)を入力する。そして、映像補間装置2は、これらの3つの映像フレームI(t+α),I(t),I(t+β)を用いて、時刻t+αの映像フレームI(t+α)を基準として、これと同一の照明状態で撮影した状況を模擬した時刻tの補間映像フレームJ(t)を生成する。
これにより、同一の照明状態における時刻t+α,t,t+βの映像フレームI(t+α)、補間映像フレームJ(t)及び映像フレームI(t+β)が得られる。
以下、映像遅延部11、動き推定部12、エッジ抽出部13及び映像遅延部14は、図5に示した実施例1と同一であるから、ここでは説明を省略する。また、図9のステップS901〜S903は、図6に示した実施例1のステップS601〜S603と同一であるから、ここでは説明を省略する。
映像遅延部15は、映像遅延部14からエッジ映像フレームEを入力し、エッジ映像フレームEを所定数のフレーム分遅延させる。そして、映像遅延部15は、所定数のフレーム分遅延させたエッジ映像フレームEを動き推定部17に出力する。本例では、映像遅延部15は、映像遅延部14からエッジ映像フレームE(t)を入力し、映像フレームI(t)をαフレーム分遅延させ、エッジ映像フレームE(t+α)を動き推定部17に出力する。
動き推定部17は、映像遅延部15からエッジ映像フレームE(t+α)を入力すると共に、映像遅延部14からエッジ映像フレームE(t)を入力し、さらに、動き推定部12から動きベクトル場V(t)を入力する。そして、動き推定部17は、動きベクトル場V(t)に基づいて、当該動きベクトル場V(t)を反映した探索範囲を限定して定義(設定)する。動き推定部17は、エッジ映像フレームE(t+α),E(t)に基づいて、その探索範囲内において、時刻tの動きベクトル場WB(t)を推定する(ステップS904)。動きベクトル場WB(t)は、時間1フレームあたりの動きベクトルを画素単位で並べたマップとする。
ここで、時刻t、画像座標(x,y)の動きベクトルをWB(t,x,y)=[zB(t,x,y),wB(t,x,y)]Tとする。動き推定部17は、例えばブロックマッチング法を用いて、以下の式にて、動きベクトルWB(t,x,y)を演算する。この場合、動き推定部17は、動き推定部12により演算された同画像座標(x,y)の動きベクトルV(t,x,y)=[u(t,x,y),v(t,x,y)]Tに基づき定義される探索範囲内において、動きベクトルWB(t,x,y)を演算する。
前記式(13)において、RB’はブロック形状を表す領域であり、例えば、以下に示す矩形領域が用いられる。
r”x,r”yは非負の実数とする。r”x,r”yは、例えば前記rx,ryとそれぞれ同一の値としてもよい。例えば、r”x=r”y=7とすると、動き推定部17は、15×15画素の矩形ブロックでブロックマッチングを実行することとなる。
また、前記式(13)において、SB’は探索領域(探索範囲)である。好ましくはS’⊂Sとする。これにより、同一の照明状態下で撮像された映像フレームI(t+α),I(t+β)間の照合は、動き推定部12によってテクスチャを用いて頑健に実行し、その結果によって探索範囲S’を狭めつつ、異なる照明状態下で撮影された映像フレームI(t)のエッジ情報に基づき、動き推定部17において動きベクトルWB(t,x,y)の精度を向上させることができる。
SB’は、例えば、以下に示す矩形領域が用いられる。
s”x,s”yは非負の実数とする。例えば、s”x=s”y=3とすると、動き推定部17は、水平方向±3画素及び垂直方向±3画素の範囲で、ブロックマッチングの探索を実行することとなる。
動き補償部19は、映像遅延部11から映像フレームI(t+α)を入力すると共に、動き推定部12から動きベクトル場V(t)を入力し、さらに、動き推定部17から動きベクトル場WB(t)を入力する。そして、動き補償部19は、映像フレームI(t+α)及び動きベクトル場V(t),WB(t)に基づく動き補償により、同一の照明状態で撮影されていない時刻tの補間映像フレームJ(t)を生成する(ステップS905)。動き補償部19は、補間映像フレームJ(t)を出力する(ステップS906)。
具体的には、動き補償部19は、以下の式により、時刻t+αにおける映像フレームI(t+α)に対し、動きベクトル場V(t)=[u(t),v(t)]T,WB(t)=[zB(t),wB(t)]Tに基づく動き補償を実行することで、時刻tの補間映像フレームJ(t)を演算する。
以上のように、実施例2の映像補間装置2によれば、動き推定部12は、同一の照明状態で撮影された映像フレームI(t+α),I(t+β)から、当該照明状態では撮影されていない時刻tの動きベクトル場V(t)を推定する。
動き推定部17は、映像フレームI(t+α)から生成されたエッジ映像フレームE(t+α)及び映像フレームI(t)から生成されたエッジ映像フレームE(t)に基づいて、動きベクトル場V(t)に基づき定義される探索範囲内において、当該照明状態で撮影されていない時刻tの動きベクトル場WB(t)を生成する。
動き補償部19は、映像フレームI(t+α)及び動きベクトル場V(t),WB(t)に基づく動き補償により、当該照明状態で撮影されていない時刻tの補間映像フレームJ(t)を生成する。
これにより、映像フレームI(t+α)(すなわち、映像フレームI(t+β))と同じ照明状態で撮影した状況を模擬した補間映像フレームJ(t)が後方予測にて生成される。そして、実施例1と同様に、当該照明状態とは異なる照明状態で撮影された時刻tの映像フレームI(t)、及び当該照明状態で撮影した状況を模擬した時刻tの補間映像フレームJ(t)に基づき、例えば照度差ステレオ法を用いることで、動いている物体の形状を推定することができる。
したがって、実施例2の映像補間装置2により、照明状態が時分割的に変化する環境下で撮影した映像フレームI(t+α),I(t),I(t+β)を用いて、動いている物体の形状を推定するための補間映像フレームJ(t)を後方予測にて生成することができる。つまり、実施例1と同様に、照明状態が時分割的に変化する環境下で撮影した映像を用いて、物体の実際の動きを捉えた追跡を行うことができ、これにより生成した映像を、例えば照度差ステレオ法に適用することで、動いている物体の形状を精度高く推定することができる。
また、エッジ映像フレームE(t+α),E(t)は、照明状態の違いの影響を受け難い画像であるから、動き推定部17において、精度の高い動きベクトル場WB(t)を推定することができる。その結果、動き補償部19において、動き補償の精度及び頑健性を向上させることができ、補間映像フレームJ(t)の画質を向上させることができる。
〔実施例3〕
次に、実施例3について説明する。図10は、実施例3の映像補間装置の構成例を示すブロック図であり、図11は、実施例3の映像補間装置の処理例を示すフローチャートである。
この映像補間装置3は、映像遅延部11,14,15、動き推定部12,16,17、エッジ抽出部13、動き補償部18,19及び画像合成部20を備えている。映像補間装置3は、同一の照明状態における時刻t+α,t+βの映像フレームI(t+α),I(t+β)を入力し、異なる照明状態における時刻tの映像フレームI(t)を入力する。そして、映像補間装置3は、実施例1と同じ処理にて前方予測補間映像フレームJF(t)を生成し、実施例2と同じ処理にて後方予測補間映像フレームJB(t)を生成し、これらを合成して時刻tの補間映像フレームJ(t)を生成する。つまり、映像補間装置3は、3つの映像フレームI(t+α),I(t),I(t+β)を用いて、時刻t+α,t+βの映像フレームI(t+α),I(t+β)を基準として、これらと同一の照明状態で撮影した状況を模擬した時刻tの補間映像フレームJ(t)を生成する。
これにより、同一の照明状態における時刻t+α,t,t+βの映像フレームI(t+α)、補間映像フレームJ(t)及び映像フレームI(t+β)が得られる。
以下、映像遅延部11,14、動き推定部12,16、エッジ抽出部13及び動き補償部18は、図5に示した実施例1と同一であるから、ここでは説明を省略する。また、映像遅延部15、動き推定部17及び動き補償部19は、図8に示した実施例2と同一であるから、ここでは説明を省略する。さらに、図11のステップS1101,S1102,S1104,S1106は、図6に示した実施例1のステップS601,S602,S604,S605と同一であり、図11のステップS1105,S1107は、図9に示した実施例2のステップS904,S905と同一であり、図11のステップS1103は、図6に示した実施例1のステップS603及び図9に示した実施例2のステップS903を結合したものであるから、ここでは説明を省略する。
尚、動き推定部16が出力する動きベクトル場をWF(t)とし、動き補償部18が出力する補間映像フレームを前方予測補間映像フレームJF(t)とし、動き補償部19が出力する補間映像フレームを後方予測補間映像フレームJB(t)とする。
画像合成部20は、動き補償部18から前方予測補間映像フレームJF(t)を入力すると共に、動き補償部19から後方予測補間映像フレームJB(t)を入力する。そして、画像合成部20は、前方予測補間映像フレームJF(t)及び後方予測補間映像フレームJB(t)を画素位置毎に合成し、その合成結果を補間映像フレームJ(t)として生成する(ステップS1108)。そして、画像合成部20は、補間映像フレームJ(t)を出力する(ステップS1109)。
画像合成部20は、例えば、以下の式にて、前方予測補間映像フレームJF(t)及び後方予測補間映像フレームJB(t)における画素位置毎の画素値の相加平均を演算し、補間映像フレームJ(t)を求める。
また、画像合成部20は、前方予測補間映像フレームJF(t)及び後方予測補間映像フレームJB(t)における画素位置毎の画素値の重み付き平均を演算し、補間映像フレームJ(t)を求めるようにしてもよい。
重み付けの方法としては、例えば、動き補償部18,19における動き補償時の参照フレームまでの時間的な距離に対し、広義単調減少の関数を適用した値に基づく重み付けとすることができる。例えば、以下の式のとおり、動き補償部18,19における動き補償時の参照フレームまでの時間的な距離に反比例した重み付けとすることができる。
また、別の重み付けの方法としては、例えば、以下の式(19)にて演算した動き推定部16における最小誤差と、以下の式(20)にて演算した動き推定部17における最小誤差とに基づく重み付けとすることができる。最小誤差が相対的に小さくなるほど、重み付けは大きくなり、最小誤差が相対的に大きくなるほど、重み付けは小さくなる。
この場合、画像合成部20は、前記式(19)(20)の演算結果を用いて、以下の式にて、補間映像フレームJ(t)を求める。
ここで、関数γ(e)は、eに対して広義単調減少の任意の関数とする。
さらに、別の重み付けの方法としては、動き補償部18,19における動き補償時の参照フレームまでの時間的な距離、及び最小誤差εF(t,x,y),εB(t,x,y)に基づく重み付けとすることができる。
この場合、画像合成部20は、前記式(19)(20)の演算結果を用いて、以下の式にて、補間映像フレームJ(t)を求める。
ここで、関数λ(τ,e)は、τに対して広義単調減少かつeに対して広義単調減少の任意の関数とする。
以上のように、実施例3の映像補間装置3によれば、画像合成部20は、実施例1と同じ処理にて生成された前方予測補間映像フレームJF(t)、及び実施例2と同じ処理にて生成された後方予測補間映像フレームJB(t)を画素位置毎に合成し、補間映像フレームJ(t)を生成する。
これにより、映像フレームI(t+α),I(t+β)と同じ照明状態で撮影した状況を模擬した補間映像フレームJ(t)が、後方予測及び前方予測の結果を利用して生成される。そして、実施例1,2と同様に、当該照明状態とは異なる照明状態で撮影された時刻tの映像フレームI(t)、及び当該照明状態で撮影した状況を模擬した時刻tの補間映像フレームJ(t)に基づき、例えば照度差ステレオ法を用いることで、動いている物体の形状を推定することができる。
したがって、実施例3の映像補間装置3により、照明状態が時分割的に変化する環境下で撮影した映像フレームI(t+α),I(t),I(t+β)を用いて、動いている物体の形状を推定するための補間映像フレームJ(t)を、前方予測及び後方予測の結果を利用して生成することができる。つまり、実施例1,2と同様に、照明状態が時分割的に変化する環境下で撮影した映像を用いて、物体の実際の動きを捉えた追跡を行うことができ、これにより生成した映像を、例えば照度差ステレオ法に適用することで、動いている物体の形状を精度高く推定することができる。
また、実施例1,2と同様に、エッジ映像フレームE(t+α),E(t),E(t+β)は、照明状態の違いの影響を受け難い画像であるから、動き推定部16,17において、精度の高い動きベクトル場WF(t),WB(t)を推定することができる。その結果、動き補償部18,19において、動き補償の精度及び頑健性を向上させることができ、画像合成部20において、補間映像フレームJ(t)の画質を向上させることができる。
また、異なる参照元の映像フレームI(t+α),I(t+β)に基づいた複数の動き補償の結果を合成するようにしたから、物体間の遮蔽による動き補償の誤りの影響を平均化することができる。また、物体の運動によって照明のあたり具合が変化することによる陰影の変化を平均化することができる。したがって、実施例1,2に比べ、より妥当な(精度の高い)補間映像フレームJ(t)を生成することができる。
以上、実施例1〜3を挙げて本発明を説明したが、本発明は前記実施例1〜3に限定されるものではなく、その技術思想を逸脱しない範囲で種々変形可能である。例えば、前記実施例1〜3の映像補間装置1〜3に備えたエッジ抽出部13は、映像フレームIからエッジ情報を抽出し、エッジ映像フレームEを生成するようにした。これに対し、エッジ抽出部13に代わる高周波抽出部は、映像フレームIから高周波情報を抽出し、エッジ映像フレームEに代えて、高周波情報が反映された高周波映像フレーム(情報映像フレーム)を生成するようにしてもよい。この場合、動き推定部16,17は、高周波映像フレームを用いて動きベクトル場W(t)(WF(t)),WB(t)を推定する。
高周波情報は、エッジ情報と同様に、テクスチャ情報に比べて照明状態の変化に対する見た目の変化が少ないため、後段の動き推定部16,17を、異なる照明状態下で正常に動作させることができ、精度の高い動きベクトル場W(t)(WF(t)),WB(t)を推定することができる。
この場合、高周波抽出部は、エッジ抽出部13と同様に、ラプラシアンフィルタ等を用いるようにしてもよいし、高周波情報を抽出した後または抽出する前に、低域通過型フィルタ等を適用してもよい。尚、映像補間装置1〜3は、エッジ抽出部13または高周波抽出部に代えて、他の抽出部を備えるようにしてもよい。要するに、エッジ抽出部13等の抽出部は、テクスチャ情報に比べて照明状態の変化に対する見た目の変化が少ない情報を映像フレームIから抽出し、動きベクトル場W(t)(WF(t)),WB(t)を推定するための情報映像フレームを生成できればよい。
また、前記実施例1〜3の映像補間装置1〜3は、エッジ抽出部13を備えるようにしたが、エッジ抽出部13を備えていなくてもよい。この場合、映像遅延部14は、エッジ映像フレームEを入力する代わりに映像フレームIを入力し、所定数のフレーム分遅延させたエッジ映像フレームEを出力する代わりに、所定数のフレーム分遅延させた映像フレームIを出力する。映像遅延部15も映像遅延部14と同様である。そして、動き推定部16は、エッジ映像フレームE(t),E(t+β)の代わりに映像フレームI(t),I(t+β)を入力する。動き推定部17は、エッジ映像フレームE(t+α),E(t)の代わりに映像フレームI(t+α),I(t)を入力する。
また、前記実施例1〜3では、2つの照明状態が時分割的に切り替わる場合を例にて説明した。本発明は、2つの照明状態だけでなく、3つ以上の照明状態が時分割的に切り替わる場合にも適用がある。
また、前記実施例3の映像補間装置3は、時刻t+βを基準として処理を行う動き推定部16及び時刻t+αを基準として処理を行う動き推定部17を備えるようにした。本発明は、2つの動き推定部16,17だけでなく、3以上の動き推定部16,17等を備える場合にも適用がある。3以上の動き推定部16,17等のそれぞれは、異なる時刻を基準として処理を行う。つまり、3以上の動き推定部16,17等のそれぞれは、他の動き推定部16,17等とは異なる時刻のエッジ映像フレームE、及び時刻tのエッジ映像フレームE(t)を用いて処理を行う。例えば、3以上の動き推定部16,17等のそれぞれは、他の動き推定部16,17等が照明状態A,Bの時刻のエッジ映像フレームEを用いた場合、照明状態A以外の状態及び照明状態Bの時刻のエッジ映像フレームEを用いて処理を行う。
尚、本発明の実施例1〜3による映像補間装置1〜3のハードウェア構成としては、通常のコンピュータを使用することができる。映像補間装置1〜3は、CPU、RAM等の揮発性の記憶媒体、ROM等の不揮発性の記憶媒体、及びインターフェース等を備えたコンピュータによって構成される。
映像補間装置1に備えた映像遅延部11,14、動き推定部12,16、エッジ抽出部13及び動き補償部18の各機能は、これらの機能を記述したプログラムをCPUに実行させることによりそれぞれ実現される。また、映像補間装置2に備えた映像遅延部11,14,15、動き推定部12,17、エッジ抽出部13及び動き補償部19の各機能も、これらの機能を記述したプログラムをCPUに実行させることによりそれぞれ実現される。また、映像補間装置3に備えた映像遅延部11,14,15、動き推定部12,16,17、エッジ抽出部13、動き補償部18,19及び画像合成部20の各機能も、これらの機能を記述したプログラムをCPUに実行させることによりそれぞれ実現される。
また、これらのプログラムは、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスク等)、光ディスク(CD−ROM、DVD等)、半導体メモリ等の記憶媒体に格納して頒布することもでき、ネットワークを介して送受信することもできる。