以下、本発明の一実施の形態による解析装置について説明する。図1は、本解析装置の全体構成図を示している。図1に示す解析装置は、自動車等の車体に搭載され、複数の撮影手段を用いて撮影された画像を用いて車体前方の物体の動きを解析するものであり、ステレオカメラ10、演算部20、及び表示部30を備えている。ステレオカメラ10は、左右一対のカメラ11,12(撮像手段の一例)により構成されている。図2は、ステレオカメラの設置箇所の一例を示した図である。ステレオカメラ10は、図2(a)に示すように自車体のフロントガラスとウインドウとの間のピラーの上方に取り付けても良いし、図2(b)に示すようにルーフのフロントガラス側に取り付けてもよい。いずれにせよ、ステレオカメラ10は、自車体の前方に光軸が向くように取り付けられていればよい。
カメラ11,12は、車体の進行方向に直交し、かつ水平方向に平行な方向である左右方向に所定の間隔を設けて、進行方向を中心に対称となるように同一高さ位置に配設され、所定のフレームレートで自車体の前方を撮影する。ここで、カメラ11,12は、同一時刻においてフレームが撮影されるように撮影タイミングの同期が図られており、自車体の前方を走行する自動車、自動二輪車、及び自転車、並びに自車体の前方を通行する通行人等の物体を撮影する。
演算部20は、例えばCPU、ROM、RAM等を備えるハードウエア装置により構成され、カメラ11,12で同一時刻に撮影された2枚の画像に後述する画像処理を施し、物体の動きを解析する。表示部30は、液晶表示ディスプレイ、有機ELディスプレイといった表示装置から構成され、演算部20による解析結果等の情報を表示する。ここで、表示部30は、自車体がカーナビゲーションシステムを備えている場合は、当該カーナビゲーションシステムの表示部により構成してもよいし、カーナビゲーションシステムとは別の表示部により構成してもよい。
図3は、演算部20の機能ブロック図である。図3に示すように演算部20は、画像取得部21(画像取得手段の一例)、傾斜情報算出部22(傾斜情報算出手段の一例)、3D位置算出部23(3D位置算出手段の一例)、2D動きベクトル算出部24(2D動きベクトル算出手段の一例)、変化量算出部25(変化量算出手段の一例)、3D動きベクトル算出部26(3D動きベクトル算出手段の一例)、及び報知制御部27を備えている。なお、画像取得部21〜報知制御部27は、それぞれ専用のハードウエア回路により構成してもよいし、1チップ化して1つの集積回路により構成してもよいし、CPUに所定のプログラムを実行させることで構成してもよい。
画像取得部21は、カメラ11により撮影された画像を基準画像、カメラ12により撮影された画像を参照画像として取得し、図略のメモリに記憶する。ここで、画像取得部21は、カメラ11及び12により同一時刻で撮影された基準画像及び参照画像を1秒あたり30枚といった所定のフレームレートで順次取得する。基準画像及び参照画像としては、例えば0(黒)〜255(白)の256階調値を有する複数の画素がマトリックス状に配列されたデジタルの画像データを採用することができる。
傾斜情報算出部22は、各フレームの基準画像上において一定間隔で配列された所定の位置に3次元実空間における3次元位置の計測対象となる計測点を設定し、各計測点に隣接する面の傾斜情報を算出する。これにより、各計測点は全フレームを通じて基準画像上の同一座標に位置することになり、形状認識を行うことが可能となる。また、基準画像上に設定される計測点の間隔としては、例えば1枚の基準画像において設定される計測点の個数が、物体の形状を精度良く計測でき、かつ、リアルタイム処理を実現することが可能な個数となるような予め定められた間隔を採用することができる。
また、傾斜情報としては、計測点に隣接する面の法線ベクトルを傾斜情報として採用することができる。計測点に隣接する面の法線ベクトルとしては、計測点と、当該計測点に隣接する他の複数の計測点とによって貼られる平面の法線ベクトルを採用することができる。また、この場合、計測点に隣接する3つ以上の面のそれぞれの法線ベクトルの平均値を求め、この平均値を計測点の傾斜情報として採用することができる。こうすることで、計測点付近の物体の面の情報をより正確に傾斜情報に取り入れることができ、後述する3D動きベクトル算出部26による演算精度を高めることができる。
更に、3つ以上の面のそれぞれの法線ベクトルの平均値に代えて、中央値又は最頻値を傾斜情報として採用することができる。この場合、計測点に隣接する複数の面の一部に途中で大きく折り曲がっているような面が含まれていても、この面の法線ベクトルが除外されて傾斜情報が算出されるため、計測点の傾斜情報が折り曲がった面の法線ベクトルの影響によって本来の向きからずれてしまうことを防止することができる。
3D位置算出部23は、各計測点の対応点を参照画像から探索することで、各計測点の3次元実空間における3次元位置をフレーム毎に算出する。ここで、3D位置算出部23は、1枚の基準画像上の計測点を順次注目点として設定し、POC(位相限定相関法)やSAD等の探索手法を用いて参照画像から当該注目点の対応点を探索し、探索した対応点と注目点とを基に、ステレオ法を用いて計測点の3次元位置を算出する。
2D動きベクトル算出部24は、注目フレーム対して時系列的に隣接する隣接フレームの基準画像において、注目フレームの計測点の移動点をPOCやSADといった探索手法を用いて探索することで計測点の2次元動きベクトルを算出する。ここで、2次元動きベクトルとしては、注目フレームの計測点の基準画像上における座標と当該計測点の移動点の基準画像上における座標との差分ベクトルを採用することができる。
変化量算出部25は、3D位置算出部23により算出された、注目フレームの計測点と隣接フレームの計測点との3次元位置の変化量を算出する。具体的には、変化量算出部25は、注目フレームの基準画像及び隣接フレームの基準画像において、座標を同じとする計測点同士の3次元位置の差分値を3次元位置の変化量として算出する。
3D動きベクトル算出部26は、変化量算出部25により算出された3次元位置の変化量と、傾斜情報算出部22により算出された傾斜情報と、2D動きベクトル算出部24により算出された2次元動きベクトルとに基づいて、各計測点を基準としたときの各計測点に対応する移動点の3次元位置の変化量を推定し、推定した変化量を各計測点の3次元動きベクトルとして算出する。具体的には、3D動きベクトル算出部26は、変化量算出部25により算出された計測点の3次元位置の変化量を、当該計測点の2次元動きベクトルと、当該計測点の傾斜情報とを用いて補正し、補正した3次元位置の変化量と、2次元動きベクトルとのベクトル和を求めることで当該計測点の3次元動きベクトルを算出する。
報知制御部27は、3D位置算出部23により算出された各計測点の3次元位置及び3次元動きベクトルから、ステレオカメラ10により撮影されたシーンに含まれる各物体を特定し、特定した各物体上の各計測点の3次元動きベクトルと自車体とが交差するか否かを判定し、交差する場合は、当該物体を障害物と判定し、障害物が自車体に迫っていることをユーザに報知するための情報を生成し、表示部30に出力する。ここで、ユーザに報知するための情報としては、画像情報及び音声情報の少なくともいずれか一方を採用すればよく、音声情報は表示部30が備える図略のスピーカから出力される。
また、報知制御部27は、各計測点の3次元位置の隣接する3点間に三角形の面を貼ることで、物体の形状を認識する。なお、三角形の面を貼ることに代えて、3次元位置の隣接する4点間又は5点間に四角形又は五角形の面を貼るというように、隣接するk個の3次元位置にk角形の面を貼ることで、物体の形状を認識してもよい。
次に、本解析装置の動作について説明する。本解析装置は、後述する第1〜第3の手法を用いて3次元動きベクトルを算出することができる。まず、第1の手法について説明する。第1の手法は、隣接フレームを、注目フレームより時系列的に1つ後の次フレームとし、3D動きベクトル算出部26が、次フレームの各計測点の3次元動きベクトルを算出することを特徴とする。
図4は、第1の手法を採用した場合の本解析装置の動作を示すフローチャートである。なお、図1のフローチャートはステレオカメラ10により各フレームの基準画像及び参照画像が取得される毎に実行される。
まず、ステップS1において、画像取得部21は、ステレオカメラ10により撮影された自車体前方のシーンをとらえた基準画像と参照画像とを次フレームとして取得し、図略のメモリに記憶する。なお、本実施の形態においては、ステレオカメラ10の収差は良好に補正され、かつ、水平方向に対して平行に設置されているものとするが、ステレオカメラ10がこれらの条件を満たしていない場合は、所定の画像処理により上記条件を満たす画像を取得すればよい。画像取得部21は、Δtの時間間隔で、基準画像及び参照画像を順次取得するものとする。
図5は、ステップS1で取得される基準画像と参照画像との一例を示した図である。図5において上段の2枚の画像は、時刻t−Δtにおける基準画像と参照画像とを示し、下段の2枚の画像は、時刻tにおける基準画像と参照画像とを示している。図5に示すように、各時刻において、前方を走行するトラックを物体としてとらえた基準画像と参照画像とが取得されていることが分かる。以下、時刻t−Δtのフレームが注目フレームを示し、時刻tのフレームが次フレームを示すものとする。
図4に戻り、ステップS2において、3D位置算出部23は、画像取得部21により時刻tにて取得された基準画像の各計測点の3次元位置を時刻tにて取得された参照画像を用いて算出し、図略のメモリに記憶する。図6は、ステップS2の処理の詳細を示したフローチャートである。まず、ステップS21において、3D位置算出部23は、基準画像上の計測点を注目点として順次設定するためのスキャンが終了したか否かを判定し、スキャンが終了した場合は(ステップS21でYES)、処理を図4に示すステップS3に進め、スキャンが終了しない場合は(ステップS21でNO)、基準画像上の計測点のうちいずれか1の計測点が注目点として設定される(ステップS22)。図7は、3D位置算出部23による注目点の設定処理を示した図である。図7(a)に示すように、3D位置算出部23は、基準画像を例えば左上から右下に向けてラスタスキャンするように、基準画像上の計測点を注目点として順次設定する。そして、基準画像上、右下の計測点に対する3次元位置が算出されると、ステップS21でNOと判定し、処理を終了する。
ステップS23において、ステップS22で設定した注目点に対する対応点を参照画像からPOCを用いて探索する対応点探索処理が実行される。図8は、対応点探索処理を示すフローチャートである。まず、ステップS231,S232において、基準画像及び参照画像のそれぞれに参照ウインドウ及び基準ウインドウが設定される。図9は基準ウインドウ及び参照ウインドウの説明図であり、図9(a)は、基準画像に設定される基準ウインドウW1を示した図であり、図9(b)は参照画像に設定される参照ウインドウW2を示した図である。基準ウインドウW1及び参照ウインドウW2はそれぞれ同じサイズを有し、例えば、31×31のサイズのものを採用することができる。図9(a)に示すように基準画像上に設定された注目点CPに中心が位置するように基準ウインドウW1が設定され、図9(b)に示すように参照画像上に参照ウインドウW2が設定され、参照ウインドウW2が参照画像上でラスタスキャンするようにスライドされていることが分かる。
図8に戻り、ステップS233,S234において、基準ウインドウW1内の画像f(n1,n2)及び参照ウインドウW2内の画像g(n1,n2)のそれぞれに離散フーリエ変換が施され、画像F(k1,k2)及び画像G(k1,k2)が生成される。
次に、ステップS235において、画像F(k1,k2)と、画像G(k1,k2)の複素共役とが乗じられ、相関画像R(k1,k2)が算出される。図10は、ステップS235の処理を示した図である。図10の左上のグラフは、画像F(k1,k2)の振幅及び位相成分を示し、左下のグラフは画像G(k1,k2)の振幅及び位相成分を示し、右のグラフは相関画像R(k1,k2)の振幅及び位相成分を示している。図10の右のグラフに示すように画像F(k1,k2)と画像G(k1,k2)との相関が相関画像R(k1,k2)の位相成分の傾きに反映され、位相成分を用いて、画像F(k1,k2)と画像G(k1,k2)との相関を求めることができる。
なお、相関画像R(k1,k2)としては、位相成分の傾きをロバストに推定するために、周波数成分毎に重み付けをして算出してもよい。図11は、周波数成分毎に重み付けが施された相関画像R(k1,k2)の算出処理を示した図である。
まず、図11(a)に示すように、F(k1,k2)とG(k1,k2)の複素共役とが乗じられる。次に、図11(b)に示すように、この乗じた値が規格化され、相関画像R´(k1,k2)が求められる。次に、図11(c)に示すように、R´(k1,k2)に例えばほぼステップ状の重み付け関数H(k1,k2)が乗じられ、相関画像R(k1,k2)が求められる。
図8に戻り、ステップS236において、R(k1,k2)が離散フーリエ逆変換され、POC関数r(n1,n2)が算出される。ここで、離散フーリエ逆変換としては式(1)を採用することができる。
但し、M1は基準ウインドウ及び参照ウインドウの中心点から、水平直方向における端までの距離を示し、M2は基準ウインドウ及び参照ウインドウの中心点から、垂直方向における端までの距離を示す。
図12は、POC関数r(k1,k2)を示したグラフである。このグラフにおいて、n1軸及びn2軸は、基準ウインドウ及び参照ウインドウ内の各座標を表し、z軸はPOC値を示している。図12に示すようにPOC関数は、急峻な相関ピークを有し、画像マッチングにおけるロバスト性と推定精度とが高いことが知られている。そして、この相関ピークの高さは画像f及び画像gの相関が高いほど大きくなる。したがって、画像f及び画像gの類似度として、例えば相関ピークの高さを採用することで、画像f及び画像gがどれだけ近似しているかを示すことが可能となる。
そして、この類似度を参照ウインドウ内の画像の中心点の類似度として採用し、図9(b)に示すように参照ウインドウW2を参照画像上で例えばラスタスキャンするようにスライドしながら、類似度が最も高くなる位置を探索し、探索した位置を基準画像に設定された注目点の対応点として算出する(ステップS237)。
ここで、参照ウインドウは、画素単位で離散的にずらされるため、類似度はピクセルレベルの分解能で算出されることになる。そこで、探索範囲内においてピクセルレベルで算出された類似度に補間処理を施して、ピクセルレベルよりも小さな分解能であるサブピクセルレベルで類似度を求め、サブピクセルレベルで求めた類似度のうち最も高い類似度の位置を注目点の対応点として特定してもよい。このように、サブピクセルレベルで対応点を探索すると対応点の探索精度を上げることが可能となる。
図6に戻り、ステップS24において、3D位置算出部23は、注目点として設定された計測点と対応点との3次元位置を基に、ステレオ法による測距方法を用いて計測点の3次元位置を求める。図13は、ステレオ法による測距方法の説明図である。
図13において、fは、カメラ11,12の焦点距離を示し、カメラ11,12の撮影面(CCD)の画素数及び1画素の大きさ(μ)は等しいものとする。また、カメラ11,12は、所定の基線長Lだけ左右方向に離間され、かつ、光軸が平行となるように配置されている。この場合、撮影面上の視差(ずれ画素数)をd(=d1+d2)とすると、点Pの3次元位置P(X,Y,Z)は、Z=(L×f)/(μ×d)、X=x・(Z/f)、Y=y・(Z/f)により求めることができる。但し、x,yは基準画像上の注目点の座標を示している。
図4に戻り、ステップS3において、変化量算出部25は、時刻tにおける計測点Anの3次元位置(Xt n,Yt n,Zt n)から、時刻t−Δtにおける計測点Anの3次元位置Pn(Xt−Δt n,Yt−Δt n,Zt−Δt n)を減じて、計測点Anの3次元位置の変化量ΔZを算出する。ただし、nは計測点の番号(1〜N(正の整数))を示す。
ステップS4において、傾斜情報算出部22は、3D位置算出部23で算出された各計測点の3次元位置を用いて各計測点の傾斜情報を求める。図14は、傾斜情報の算出処理の説明図である。図14に示すように、傾斜情報算出部22は、計測点Ai,jの3次元位置Pi,jと、計測点Ai,jの上下左右に隣接する4個の計測点の3次元位置Pi,j−1、Pi,j+1、Pi−1,j、Pi+1,jとによって貼られる4つの三角形Tr1〜Tr4のそれぞれの法線ベクトルN1〜N4を求め、法線ベクトルN1〜N4の平均値N(=(N1+N2+N3+N4)/4)を、計測点Ai,jの傾斜情報として算出する。ここで、i及びjは水平及び垂直方向の座標を示す。また、法線ベクトルN1〜N4は、N1=(Pi,j−1−Pi,j)×(Pi+1,j−Pi,j)、N2=(Pi+1,j−Pi,j)×(Pi,j+1−Pi,j)、N3=(Pi,j+1−Pi,j)×(Pi−1,j−Pi,j)、N4=(Pi−1,j−Pi,j)×(Pi,j−1−Pi,j)により求められる。これにより、計測点An付近の面の傾きを精度良く取り入れた傾斜情報を得ることができる。
図15は、傾斜情報の算出手法の他の一例を示した図である。図15の場合、傾斜情報算出部22は、計測点Anの8近傍の計測点によって貼られる8個の三角形Tr1〜Tr8のそれぞれの法線ベクトルN1〜N8を求め、法線ベクトルN1〜N8の平均値を計測点Anの傾斜情報として算出している。
ここで、傾斜情報算出部22は、法線ベクトルN1〜N8の平均値に代えて中央値N=median(N1,N2,N3,N4,N5,N6,N7,N8)、又は最頻値N=最頻値(N1,N2,N3,N4,N5,N6,N7,N8)を計測点Anの傾斜情報として採用してもよい。
これにより、図15に示すように計測点Anに隣接する一部の三角形Tr1〜Tr3が点線で示す位置で大きく折れ曲がっている場合であっても、法線ベクトルN1〜N3が除外されて傾斜情報が算出されるため、計測点Anの傾斜情報が法線ベクトルN1〜N3の影響によって本来の向きからずれてしまうことを防止することができる。
また、傾斜情報算出部22は、計測点Anに隣接する面のみならず、計測点Anの周囲の複数の面の法線ベクトルの平均値、中央値、又は最頻値を計測点Anの傾斜情報として採用してもよい。また、傾斜情報算出部22は、計測点Anが道路面に該当するような場合は、大局的な平面近似を行うことで傾斜情報を算出してもよい。
図4に戻り、ステップS5において、2D動きベクトル算出部24は、2次元動きベクトルを算出する。図16、図17は、2次元動きベクトルの算出処理の説明図である。図16に示すように、2D動きベクトル算出部24は、時刻t−Δtの基準画像上の計測点An(xn t−Δt,yn t−Δt)を注目点として設定し、ステップS2と同様にして、POCを用いて時刻tの基準画像から計測点An(xn t−Δt,yn t−Δt)に対応する点である移動点A´n(x´n t,y´n t)を探索し、A´n(x´n t,y´n t)−An(xn t−Δt,yn t−Δt)により、2次元動きベクトルΔXを算出する。ただし、ΔXをΔX(Δx,Δy)とすると、Δx=x´n t−xn t−Δt、Δy=y´n t−yn t−Δtである。
そして、2D動きベクトル算出部24は、他の計測点についても同様にして2次元動きベクトルを算出する。図17に示すように、各計測点において矢印で示す2次元動きベクトルが算出されていることが分かる。
図4に戻り、ステップS6において、3D動きベクトル算出部26は、ステップS3で算出された各計測点の3次元位置の変化量ΔZを下記に示す式(2)に従って補正する。
ΔZ´=ΔZ+(ΔZ/|ΔZ|)・N・ΔX (2)
ここで、Nは、各計測点の傾斜情報を示し、ΔXは2次元動きベクトル示す。また、傾斜情報Nとしては、時刻t−Δtのフレームで算出されたものが採用される。ステップS7において、3D動きベクトル算出部26は、補正した変化量ΔZ´に2次元動きベクトルΔXを加えることで、時刻t、すなわち次フレームにおける計測点Aの3次元動きベクトルを算出する。
図18は、第1の手法の説明図である。図18において、境界線L1は時刻t−Δtにおける物体の上面視からの表面を示し、境界線L2は時刻tにおける物体の上面視からの表面を示す。また、αはステレオカメラ10の光軸方向を示し、βは光軸方向に直交する平面上であって水平方向に平行な方向を示している。
図18に示すように、計測点Aの時刻t−Δtにおける3次元位置をPA t−Δtとし、計測点Aの時刻tでの移動点の3次元位置をP´A tとし、境界線L1及びL2を平行とすると、計測点Aの時刻tにおける3次元動きベクトルV1は、V1=ΔX+ΔZ´で表される。したがって、3D動きベクトル算出部26は、ΔXと式(2)に示すΔZ´とのベクトル和を求めることで、移動点の3次元位置であるP´A tを実際に求めることなく、計測点Aの時刻tにおける3次元動きベクトルV1を算出することが可能となる。
すなわち、従来の手法では、P´A tを対応点探索処理により算出して計測点Aの3次元動きベクトルが算出されていたため、処理コストが大きくなっていたが、本解析装置では、時刻t−Δtの計測点Aを基準としたときの計測点Aに対応する移動点A´の3次元位置の変化量を推定し、推定した変化量を計測点Aの3次元動きベクトルV1として算出しているため、処理コストを大幅に低減させることができる。
図4に戻り、ステップS8において、報知制御部27は、各計測点における3次元位置からステレオカメラ10により撮影されたシーンに含まれる物体を検出し、各計測点における3次元動きベクトルを用いて物体の動きを解析する。ここで、報知制御部27は、ある物体上の計測点の3次元動きベクトルを延長し、延長した3次元動きベクトルが予め定められた3次元実空間に対応する仮想3次元空間上に設定された自車体の前面を示す領域に交差する場合、当該物体を障害物と判定する。
なお、ある物体上に複数の計測点が存在する場合、少なくとも1つの3次元動きベクトルが自車体の前面の領域に交差するとき、当該物体を障害物と判定してもよい。ここで、報知制御部27は、計測点の3つの成分のうち、ステレオカメラ10の光軸方向と平行な成分を奥行き成分とすると、例えば奥行き成分が近似し、かつ、動きベクトルがほぼ同一方向を向く連続する計測点を1つの物体の計測点として判定すればよい。
図19は、報知制御部27の処理の説明図である。図19に示すように、報知制御部27は、物体OB1上の計測点A,Bの3次元動きベクトルV1を延長し、延長した3次元動きベクトルV1が自車体領域DS1の前面DS11に交差する場合、物体OB1を障害物として判定し、交差しない場合は障害物と判定しない。したがって、図19に示すガードレールG1や、道路面SF1などは、3次元動きベクトルV1が自車体領域DS1の左右側面に向かっており、自車体領域DS1の前面DS11と交差しないため、障害物として判定されない。
また、物体OB1が前進しているとすると、3次元動きベクトルは小さくなるが、物体OB1が自車体より遅い速度で走行している場合は、3次元動きベクトルが自車体に向かうため、障害物と判定される。逆に、物体OB1が、自車体よりも速く走行している場合は、動きベクトルは自車体とは逆方向を向くので、障害物と判定されない。更に、異なる車線を走行している物体も障害物と判定されない。
図4に戻り、ステップS9において、報知制御部27は、各物体上の計測点の3次元位置の隣接する3点に三角形の面を貼り付け、各物体の形状を認識する。
ステップS10において、報知制御部27は、障害物が自車体に迫っていることを示す情報を生成し、表示部30に表示し、ユーザに報知する。ここで、報知制御部27は、例えば、障害物までの距離が一定の範囲以下である場合に障害物が自車体に迫っていることを報知してもよい。また、3次元動きベクトルV1が前面DS11の左、中、右のいずれの位置に交差するかを判定し、交差する位置応じて、自車体のどの部分に障害物が迫っているかを報知してもよい。また、複数の障害物が存在する場合は、各障害物が自車体に迫っていることを報知すればよいし、障害物毎に自車体のどの部分に障害物が迫っているかを報知してもよい。
また、この報知において先に求めた(認識した)物体の形状を用いてもよい。その場合、報知するかの決定に形状情報を利用しても良いし、報知する際に例えば、障害物が人であるとか車である等の形状情報を付加情報としてもよい。
次に、第2の手法を採用した場合の本解析装置の動作について説明する。図20は、第2の手法を採用した場合の本解析装置の動作を示すフローチャートである。第2の手法は、隣接フレームを注目フレームよりも時系列的に1つ前の前フレームとし、3D動きベクトル算出部26が、注目フレームの各計測点の3次元動きベクトルを算出することを特徴とするものである。
まず、ステップS101において、画像取得部21は、ステレオカメラ10により撮影された自車体前方のシーンをとらえた基準画像と参照画像とを注目フレームとして取得し、図略のメモリに記憶する。
ステップS102〜S104の処理は、時刻t−Δtのフレームを前フレームとし、時刻tのフレームを注目フレームとする以外は、図4のステップS2〜S4と同一であるため、説明を省略する。
ステップS105において、2D動きベクトル算出部24は、2次元動きベクトルを算出する。図21は、第2の手法の説明図である。図4に示すステップS5との相違点は、図21の点線の丸に示すように、計測点Aの移動点を次フレームではなく、注目フレームの前フレーム、すなわち、時刻t−Δtの基準画像から探索する点にある。したがって、2D動きベクトル算出部24は、時刻tの基準画像上の計測点A(xt,yt)を注目点として設定し、POCを用いて時刻t−Δtの基準画像から計測点A(xt,yt)に対応する点である移動点A´(x´t−Δt,y´t−Δt)を探索し、A(xt,yt)−A´(x´t−Δt,y´t−Δt)により、2次元動きベクトルΔXを算出する。
図20に戻り、ステップS106において、3D動きベクトル算出部26は、ステップS6と同様にして、式(2)を用いて、各計測点の3次元位置の変化量ΔZを補正する。ステップS107において、3D動きベクトル算出部26は、補正した変化量ΔZ´に2次元動きベクトルΔXを加えることで、時刻t、すなわち注目フレームにおける計測点Aの3次元動きベクトルを算出する。
図21に示すように、計測点Aの時刻tにおける3次元位置をPA tとし、計測点Aの時刻t−Δtでの移動点の3次元位置をP´A t−Δtとすると、境界線L1及びL2が平行である場合、計測点Aの時刻tにおける3次元動きベクトルV1は、V1=ΔX+ΔZ´で表される。したがって、3D動きベクトル算出部26は、ΔXと式(2)に示すΔZ´とのベクトル和を求めることで、移動点の3次元位置であるP´A t−Δtを実際に求めることなく、計測点Aの時刻tにおける3次元動きベクトルを算出することが可能となり、処理コストを従来の手法に比べて大幅に低減することができる。
また、第2の手法では、既に取得済みの前フレームを用いて3次元動きベクトルが算出されているため、次フレームの取得を待たずに、注目フレームの3次元動きベクトルを算出することができる。ステップS108〜S110はステップS8〜S10と同一であるため、説明を省略する。
次に、第3の手法を採用した場合の本解析装置の動作について説明する。図22は、第3の手法を採用した場合の本解析装置の動作を示すフローチャートである。また、図23は、第3の手法の説明図である。第3の手法は、第2の手法において、更に傾斜情報を補正する点を特徴としている。
ステップS201〜205の処理は、図20のステップS101〜S105と同一であるため、説明を省略する。
ステップS206において、3D動きベクトル算出部26は、図23に示すように時刻t−Δtにおける計測点Aの傾斜情報Nt−Δtを、時刻tにおける計測点Aの傾斜情報Ntを用いて補正する。傾斜情報Nt−Δtの補正値としては、Nt−ΔtとNtとの平均値である(Nt−Δt+Nt)/2を採用することができる。このように、傾斜情報を補正することで、時刻t−Δtから時刻tにおいて計測点Aに隣接する面の向きが変化した場合であっても、3次元動きベクトルを精度良く算出することができ、回転するような物体の3次元動きベクトルを精度良く算出することができる。
ステップS207において、3D動きベクトル算出部26は、ステップS203で算出された各計測点の3次元位置の変化量ΔZを下記に示す式(3)に従って補正する。
ΔZ´=ΔZ+(ΔZ/|ΔZ|)・((Nt−Δt+Nt)/2)・ΔX (3)
ステップS208において、3D動きベクトル算出部26は、注目フレームの3D動きベクトルを算出する。図23に示すように、ΔZ´がΔZと(ΔZ/|ΔZ|)・((Nt−Δt+Nt)/2)・ΔXとのベクトル和が求められ、更に、このベクトル和とΔXとのベクトル和とが求められ、時刻tの計測点Aにおける3次元動きベクトルV1が算出されていることが分かる。ステップS209〜S211の処理は図20のステップS108〜110と同一であるため、説明を省略する。なお、図22に示すフローチャートは第2の手法に傾斜情報を補正する処理を加えているが、第1の手法に傾斜情報を補正する処理を加えても良い。
このように、本解析装置によれば、基準画像上において一定間隔で配列された所定の位置に計測点が設定され、各計測点の対応点が参照画像から探索され、各計測点の3次元実空間上の3次元位置が算出されている。したがって、全フレームを通じて基準画像上において一定間隔に配列された同一点での3次元実空間上の位置情報を得ることが可能となり、物体の形状認識を行うことができる。
また、時系列的に前後する注目フレーム及び隣接フレーム間での計測点の3次元位置の変化量と、各計測点における面の傾斜情報と、2次元動きベクトルとに基づいて、注目フレームの計測点から、各計測点を基準としたときの各計測点に対応する移動点の3次元位置の変化量が推定され、推定された変化量が各計測点の3次元動きベクトルとして算出されている。
そのため、従来の手法のように計測点の隣接フレームにおける対応点の3次元位置を実際に算出しなくても、計測点の3次元動きベクトルを算出することが可能となり、処理コストを増大させることなく、3次元動きベクトルと物体の形状計測とを精度良く行うことができる。
なお、上記説明では解析装置を車両に搭載した場合を例に挙げて説明したが、本発明の解析装置は、これに限定されず、人間のジェスチャを認識するジェスチャ解析装置に適用してもよい。図24は、ジェスチャ解析装置の説明図である。図24に示す白丸及び黒丸は計測点WA及びBAを示している。黒丸の計測点BAは、白丸の計測点WAに比べて3次元位置がジェスチャ解析装置に近い。そのため、ジェスチャ解析装置は、計測点BAは人間上の計測点を表すものと判定する。そして、計測点BAの3次元動きベクトルを解析し、ジェスチャを認識する。図24の場合、左腕に相当する部位上の計測点BAの3次元動きベクトルが右斜め上方を向いているため、この人間は、右腕を上げている動作を行っていると認識される。また、頭、胴体、及び右腕に相当する部位上の計測点BAの動きベクトルは0であるため、これらの部位は静止していると認識される。
上記説明では、参照画像を1枚としたが、これに限定されず、ステレオカメラ10を3台以上のカメラにより構成し、複数枚の参照画像を用いて3次元動きベクトルを算出してもよい。この場合、3D位置算出部23は、基準画像上に設定した各計測点の対応点を複数の参照画像のそれぞれから探索する。そして、ある計測点と当該計測点に対する複数の対応点との各ペアの視差を求め、これらの視差の平均視差を用いて計測点の3次元位置を算出してもよい。これにより、3次元位置の算出精度を高めることが可能となる。