動き検出方法および動き検出装置
【課題】少ないデータ量で、かつ比較的簡単な処理手順を用いることで、移動速度の検出および特徴位置の検出を、高速に処理可能かつ検出精度を向上可能な動き検出装置を提供すること。
【解決手段】コントロールユニットCUが、画像情報において速度算出を行う領域を特徴領域として抽出する抽出処理と、前記特徴領域を複数の画素に跨る範囲に規格化する領域規格化処理と、前記範囲に含まれる画像上の位置に対応するメモリアドレスの値をカウント値としてカウントアップするとともに、前記範囲外の画像上の位置に対応するメモリアドレスの値をリセットする投票処理と、蓄積された前記カウント値の差に基づいて、前記範囲の移動方向および移動速度を検出する移動速度検出処理と、前記範囲に含まれる画像上の位置と前記カウント値とに基づいて算出される前記範囲の重心位置を特徴位置として算出する位置算出処理と、を実行する。
【解決手段】コントロールユニットCUが、画像情報において速度算出を行う領域を特徴領域として抽出する抽出処理と、前記特徴領域を複数の画素に跨る範囲に規格化する領域規格化処理と、前記範囲に含まれる画像上の位置に対応するメモリアドレスの値をカウント値としてカウントアップするとともに、前記範囲外の画像上の位置に対応するメモリアドレスの値をリセットする投票処理と、蓄積された前記カウント値の差に基づいて、前記範囲の移動方向および移動速度を検出する移動速度検出処理と、前記範囲に含まれる画像上の位置と前記カウント値とに基づいて算出される前記範囲の重心位置を特徴位置として算出する位置算出処理と、を実行する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、連続する画像に含まれる対象物を検出して、この対象物の移動速度、移動方向および位置を検出する動き検出方法および動き検出装置に関する。
【背景技術】
【0002】
近年、カメラなどの撮像手段により撮像した画像中の対象物の速度や移動方向などを検出する動き検出装置が提案されている。
【0003】
また、このような動き検出装置として、車両に搭載されて車両前方の先行車両や道路の白線などの周辺画像を認識する装置が知られている(例えば、特許文献1参照)。
【0004】
この従来技術は、撮像された画像情報から、先行車両の外郭や白線の外側縁のように輝度が変化するエッジを抽出し、連続するフレームにおけるエッジの位置の変化に基づいてオプティカルフローを算出し、対象物の速度を算出するようにしている。
【0005】
このオプティカルフローの検出方法としては、フレーム間で対応点を決定して動きベクトルを求める相関法や、各点の明るさの空間的および時間的な勾配の関係を求める勾配法などの手法が一般に利用される。
【特許文献1】特開2003−67752号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかしながら、上述の従来技術では、エッジのオプティカルフローを求めるにあたり以下に述べる問題があった。
【0007】
まず、相関法を用いた場合は、処理手順は比較的簡単であるが、注目する領域の周りに相関値を算出する領域を設け、フレーム間で、領域内輝度の相関値を計算するため、ブロックマッチング処理が必要となる。このため、計算量が膨大となって処理時間が長くなるという問題がある。
【0008】
すなわち、ブロックマッチングを用いた手法では、1ピクセル単位よりも小さなサブピクセル以下の画素群を使用してエッジの詳細な位置情報を算出するには、登録したテンプレートである画素群データを、注目位置を中心に、その周囲に所定量だけずらしながら算出した複数の相関値を高次曲線で補完し、その極値を与える位置を算出することによって動きを推定する。このため、計算量が膨大となってしまう。よって、単純な計算で正確にエッジの位置を検出することが難しかった。
【0009】
また、勾配法を用いた場合には、画像の輝度変化に弱く、処理手順が複雑であるという問題点がある。
【0010】
そこで、本発明は、より少ないデータ量で、かつ比較的簡単な処理手順を用いることで、画像中からの移動速度成分の検出およびエッジなどの特徴量を表す画像情報の画像上の座標位置(以下、特徴位置と呼ぶ)の検出を、高速に処理可能であるとともに検出精度を向上可能な動き検出方法および動き検出装置を提供することを目的とする。
【課題を解決するための手段】
【0011】
本発明は、上述の事情に鑑みなされたもので、 撮像手段で得られた画像情報において速度算出を行う領域を特徴領域として抽出する抽出ステップと、前記特徴領域の面積を変更する領域規格化ステップと、前記範囲に含まれる画像上の位置に対応するメモリアドレスの値をカウント値としてカウントアップするとともに、前記範囲外の画像上の位置に対応するメモリアドレスの値をリセットする投票ステップと、蓄積された隣り合うメモリアドレスの前記カウント値の差に基づいて、前記範囲の移動方向および移動速度を検出する移動速度検出ステップと、前記範囲に含まれる画像上の位置と前記カウント値とに基づいて前記範囲の重心位置を特徴位置として算出する位置算出ステップと、を実行することを特徴とする動き検出方法である。
【発明の効果】
【0012】
本発明では、算出する領域を抽出して面積を変更した範囲で行ったカウントアップによるカウント値に基づいて移動方向、速度、位置を算出するため、より少ないデータ量かつ比較的簡単な手順で処理が可能で、高速で処理が可能であり、しかも、サブピクセルレートの高い精度で特徴位置を算出することもできる。
【発明を実施するための最良の形態】
【0013】
以下、本発明の実施の形態を図面に基づいて説明する。
この実施の形態の物体検出装置は、画像を撮像する撮像手段(1)と、この撮像手段(1)から入力した画像情報中に含まれる領域の移動方向および移動速度を検出する速度検出手段(CU)と、を備えた動き検出装置であって、前記速度検出手段(CU)は、前記撮像手段から画像情報を連続するフレームとして入力する入力処理と、前記画像情報において速度算出を行う領域を特徴領域として抽出する抽出処理と、前記特徴領域の面積を変更する領域規格化処理と、前記範囲に含まれる画像上の位置に対応するメモリアドレスの値をカウント値としてカウントアップするとともに、前記範囲外の画像上の位置に対応するメモリアドレスの値をリセットする投票処理と、蓄積された隣り合うメモリアドレスのカウント値の差に基づいて、前記範囲の移動方向および移動速度を検出する移動速度検出処理と、前記範囲に含まれる画像上の位置と前記カウント値とに基づいて算出される前記範囲の重心位置を特徴位置として算出する位置算出処理と、を実行することを特徴とする動き検出装置である。
【実施例1】
【0014】
図1〜図10に基づいて本発明の最良の実施の形態の実施例1の物体検出装置について説明する。
【0015】
実施例1の物体検出装置は、図1に示すように、車両MBに搭載されており、撮像手段1を備えている。
【0016】
撮像手段1は、例えば、車室内の図示を省略したルームミラーの近傍位置に搭載されている。この撮像手段1としては、CCD(Charge Coupled Devices)やCMOS(Complementary Metal Oxide Semiconductor)などの撮像素子を用いた輝度画像を撮像するカメラを用いることができ、画像を撮像し、この画像を一定間隔ごとにフレームとして取り出す連続処理を行う。
【0017】
撮像手段1で得られた情報は、コントロールユニットCUに入力される。なお、コントロールユニットCUは、RAM(Random Access Memory),ROM(Read Only Memory),CPU(Central Processing Unit)などを備えた周知のものである。
【0018】
コントロールユニットCUは、撮像手段1で得られた画像の中から特徴領域としてのエッジを抽出し、このエッジの移動方向、速度、位置を算出する処理を行う。そこで、以下説明するにあたり、特徴領域のことをエッジと称する。
【0019】
図2は、コントロールユニットCUにおける上記処理機能を概念的に表すブロック図であって、エッジ抽出手段11、エッジ幅規格化手段12、投票手段13、移動速度検出手段14、位置算出手段15を備えている。
【0020】
エッジ抽出手段11は、撮像手段1により撮像された画像から、SobelフィルタやPrewittフィルタなどによって、エッジとして認識された画素と、エッジとして認識されない画素とからなるエッジ画像を作成する抽出処理を実行する。
【0021】
エッジ幅規格化手段12は、エッジ抽出手段11により得られたエッジ画像中のエッジ幅を所定の画素数に規格化する領域規格化処理を実行する。
【0022】
投票手段13は、エッジ幅規格化手段12により規格化されたエッジが何フレーム連続して観測されたかの情報をストアする投票処理を実行する。すなわち、規格化されたエッジが観測された画像上の位置に対応するメモリアドレスの値をカウントアップする一方、現フレームにおいてエッジが観測されなかった位置に対応するメモリアドレスの値をリセットする。
【0023】
移動速度検出手段14は、投票手段13にストアされた値と、各値の差が示す勾配とに基づき、抽出されたエッジの画像上移動方向・移動速度・位置を算出する移動速度検出処理および位置算出処理を実行する。
【0024】
次に、上述したエッジ抽出手段11、エッジ幅規格化手段12、投票手段13、移動速度検出手段14が行う各処理について、さらに詳細に説明する。
【0025】
まず、エッジ抽出手段11が実行する抽出処理とは、撮像手段1から得られた図3に示すようなエッジの濃度情報の中から閾値Thlowよりも濃度値が高い特徴領域(速度を算出する領域)R0を抽出する処理である。ここで、閾値Thlowは、従来用いられていた閾値Thorgよりも充分に低い値に設定されている。
【0026】
一般に、速度が計測できる領域を多くするためになるべく多くのエッジを抽出しようとすると、領域規格化処理において、エッジ幅を膨張させた際に隣接するエッジどうしが重なり合ってしまい、正確な速度が算出できなくなる。そこで、隣接するエッジが重なり合う現象を回避するためには、エッジの密度を抑える必要があり、このため、エッジと判定するための閾値Thorgを比較的高く設定する必要がある。
【0027】
これに対し、本実施例では、後述する領域規格化処理において、重心位置をエッジピーク(後述)とするようにしたため、エッジ抽出用の閾値Thlowは、常に、複数の幅のエッジを抽出できることができるように従来と比較して低い値に設定している。
【0028】
次に、図4によりエッジ幅規格化手段12における領域規格化処理を説明する。
この領域規格化処理は、エッジ抽出手段11から出力されるエッジ画像(特徴領域R0)の特徴位置を検出し、その特徴位置を中心に所定幅(本実施例1では、3画素)の幅を持たせた2値画像を生成する処理である。なお、本実施例では、特徴位置とは、検出された複数のエッジの重心位置であり、これを以下エッジピークと称する。
【0029】
図3に示すように、エッジ抽出手段11から出力されるエッジは複数存在し、ある幅を有しているとともにその濃度値が異なっている。そこで、領域規格化処理では、この複数のエッジにおけるエッジピーク(図においてx=x0の位置)を検出し、このエッジピークx0において、図4(b)に示すように、1画素の幅に細線化する細線化処理と、このエッジピークx0を中心に、3画素の幅に拡げる膨張処理とを実行する。
【0030】
すなわち、細線化処理では、まず、図3に示すようにエッジ抽出手段11で抽出された特徴領域R0の画像情報を、図4(a)に示すように2値化する。
【0031】
さらに、特徴領域R0に含まれる位置(座標)xにおけるエッジ濃度値I(x)を用い、下記(1)の重心計算を行うことで、エッジピークx0を規定し、この規定したエッジピークx0の位置で1画素のエッジを形成する。
x0=[ΣI(x)・x]/ΣI(x)・・・(1)
ここで、Σはx∈R0の範囲の総和を示す。
【0032】
なお、上記(1)式で得られたエッジピークx0において、小数点以下は四捨五入、切り上げ、切り捨てのいずれでもよいが、本実施例では、切り捨てとする。
【0033】
次に、膨張処理を説明する。
膨張処理は、図4(b)に示しように細線化された1画素の幅のエッジを、図4(c)に示すように、エッジピークx0を中心とした所定の幅±nに拡げる処理であり、本実施例では、n=1として3画素に拡げる。すなわち、エッジピークx0の両側の位置x0−1および位置x0+1の画素をアクティブにする。
【0034】
このようにエッジ幅規格化手段12では、エッジ抽出手段11から出力されるエッジ画像から、画素数すなわち面積を変更してエッジ幅が所定幅(3画素幅)に統一された2値のエッジ画像が生成される。
【0035】
次に、投票手段13における投票処理について図5により説明する。なお、説明の簡略化を図るために、エッジは、x軸1次元方向に移動するものとする。また、エッジ位置に対応するメモリアドレスの値のカウントアップは+1ずつされるものとし、メモリアドレスは、1画素を1単位として設定されているものとして説明する。
【0036】
この投票処理は、エッジ幅規格化手段12により所定の幅(3画素幅)に形成したエッジに基づいて、エッジが観測された位置(図ではx0−1,x0,x0+1)で、その位置に対応するメモリアドレスの値のカウントアップを行い、エッジが観測されない位置は、メモリアドレスの値を「0」にリセットする。
【0037】
これについて順を追って説明すると、まず、図5(a)に示す時刻tにおいて、エッジ幅規格化手段12から3画素に広げられたエッジが取得される。このエッジは、図示のように、x=x0を中心として配置されている。そこで、この時刻tでは、エッジが観測されるそれぞれの位置(座標)x0−1,x0,x0+1においてメモリアドレスの値のカウントアップを行う。
【0038】
この図5(a)の例では、位置x0−1のメモリアドレスのカウント値は「5」となり、位置x0のメモリアドレスのカウント値が「3」となり、位置x0+1のメモリアドレスのカウント値が「1」となる。
【0039】
次に、図5(b)に示す時刻t+1では、エッジが移動していないため、再び、位置(座標)x0−1,x0,x0+1においてメモリアドレスの値のカウントアップを行う。そこで、図5(b)に示す時刻t+1では、位置x0−1のメモリアドレスのカウント値は「6」となり、位置x0のメモリアドレスのカウント値が「4」となり、位置x0+1のメモリアドレスのカウント値が「2」となる。
【0040】
次に、図5(c)に示す時刻t+2では、エッジがx軸の正方向に1画素シフトしている。この場合、エッジが検出された位置x0,x0+1,x0+2のメモリアドレスの値をカウントアップし、エッジが観測された以外の位置のメモリアドレスの値を「0」にリセットする。そこで、この時刻t+2では、この例では、位置x0−1のメモリアドレスのカウント値は「0」となり、位置x0のメモリアドレスのカウント値が「5」となり、位置x0+1のメモリアドレスのカウント値が「3」となり、位置x0+2のメモリアドレスのカウント値が「1」となる。一方、それ以外の位置x0−1を含む位置のメモリアドレスのカウント値は「0」にリセットされる。
【0041】
次に、移動速度検出手段14における移動速度検出処理について説明する。
この移動速度検出手段14では、投票手段13において、図5(c)に示すようにカウントアップした3画素分のカウント値を用いて移動方向におけるカウント値の傾きを算出し、この傾きがエッジの移動速度の逆数となることに基づいて移動速度を求める。
【0042】
すなわち、特徴領域(エッジ)が移動する速度に比べ、フレームレートが十分高い場合には、連続するフレーム間で観測されるエッジは、必ず重複する領域を有する。例えば、図5に示しているケースでは、時刻t+1と時刻t+2とで2画素幅で重複している。ちなみに、本実施例1では、検出対象のダイナミクスを100Hz程度と想定し、フレームレートを1000fpsとしている。
【0043】
このようにエッジが観測されたx座標の位置に対応するメモリアドレスのカウント値をカウントアップしていくことで、カウント値は、エッジが同じ位置に観測されている時間と等価となる。また、エッジが移動した場合は、新たにエッジが観測された位置のカウント値が1となり、観測されたエッジの中では最も小さな値となる。つまり、エッジが移動する方向のカウント値は小さく、一方、エッジが移動する方向と反対方向のエッジのカウント値は大きくなる。
【0044】
したがって、このカウント値の差、言い換えると、カウント値の勾配は、エッジが移動するまでに、何フレーム連続して同じ位置にエッジが観測されていたかを計数した値であり、このカウント値勾配より、エッジの移動速度を算出することができる。
【0045】
すなわち、図5に示す例では、図5(b)では、位置(座標)x0−1,x0,x0+1のメモリアドレスのカウント値がそれぞれ6,4,2であり、エッジは、位置(座標)x0−1,x0,x0+1で観測される前に、6−2=4フレーム連続して位置(座標)x0−2,x0−1,x0で観測されていたことを示す。この結果から、注目しているエッジは4フレームで1画素を移動していると判断することができる。また、位置(座標)x0+1のカウント値=2より、位置(座標)x0−1,x0,x0+1で2フレーム連続して観測されていることが示されている。
【0046】
そこで、図5(a)〜(c)の例では、エッジは、4フレームで1画素ずつ移動し、時刻t+1の時点では、2フレーム連続して観測されていることより、時刻t+1では、2フレーム/{4フレーム/1画素}=0.5画素だけ位置x0からシフトしていると算出することができる。
【0047】
このように、移動速度検出手段14では、入力画像内の対象物のエッジのカウント値の勾配から、画像上における対象物の移動速度を求めることができる。また、この移動速度の変化から、画像上における対象物の加速度を求めることもできる。
【0048】
次に、位置算出手段15におけるエッジ位置の位置算出処理を説明する。
この位置算出処理は、図5で説明したエッジが観測された位置(x0−1,x0,x0+1,x0+2など)を処理領域Sとし、この処理領域Sにおける各位置におけるカウント値C(x)を荷重として、カウント値C(x)と位置の積の総和を、各位置におけるカウント値C(x)の総和で除算して得られた重心位置(平均値)からエッジピークの位置(特徴位置)xedgeを算出する処理である。すなわち、エッジピークの位置xedgeを、下記(2)式により算出する。
xedge-=(ΣC(x)・x)/ΣC(x)・・・(2)
なお、この(2)式において、Σはx∈Sの範囲の総和である。
【0049】
この位置算出処理の具体例を、図6により説明する。すなわち、図6に示す例では、時刻tでエッジが観測される処理領域Sにおける3画素の位置xt−1,xt,xt+1において、それぞれ、カウント値C(xt−1)=15,C(xt)=9,C(xt+1)=3がカウントされている。
【0050】
そこで、この例では、
ΣC(x)・x=15(xt−1)+9(xt)+3(xt+1)
ΣC(x)=15+9+3=27
また、xt−1=xt−1、xt+1=xt+1
であるから、xedge=xt−(12/27)となる。
【0051】
こうして得られたエッジピークの位置xedgeの小数点以下は、四捨五入、切り上げ、切り捨てのいずれでもよいが、本実施例では、切り捨てとしている。したがって、この例の場合には、エッジピークの位置xedge=xtとなる。
【0052】
移動速度検出手段14および位置算出手段15は、上記のようにして得られたエッジの移動方向、移動速度、およびエッジピークの位置xedgeを、運転支援装置などに出力する。
【0053】
次に、以上説明したコントロールユニットCUにおける移動速度検出処理および位置算出処理に至る処理の流れを図7のフローチャートにより簡単に説明する。
【0054】
ステップS1では、エッジ抽出処理を行う。すなわち、エッジ抽出手段11において図3に示すようにエッジ画像から濃度値が閾値Thlow以上のエッジを抽出する。
【0055】
ステップS2では、領域規格化処理を実行する。すなわち、ステップS1において抽出したエッジに対し、まず、エッジ幅規格化手段12により細線化処理を行う。この細線化処理では、エッジ濃度値l(x)を用いた重心計算を行うことで、図4(b)に示すように、エッジピークの位置x0の1画素の幅に細線化する。さらに、エッジ幅規格化手段12により膨張処理を行うことで、図4(c)に示すように、エッジピークの位置x0を中心とした所定幅(本実施例では3画素幅)のエッジを規定する。
【0056】
ステップS3では、投票処理を実行する。すなわち、投票手段13では、ステップS2で規定された処理領域Sの各位置(x座標)に対応する各メモリアドレスの値に対し、図5で示したように「+1」を投票(カウントアップ)し、一方、処理領域Sの外の位置(x座標)に対応するメモリアドレスの値は、「0」にリセットする。
【0057】
ステップS4では、移動速度算出処理を実行する。すなわち、移動速度検出手段14では、投票手段13において、図5に示すようにカウントアップした3画素分のカウント値の差(勾配)に基づいてエッジの移動方向および移動速度を求める。
【0058】
ステップS5では、エッジピークの位置(特徴位置)xedgeを求める算出処理を実行する。すなわち、位置算出手段15において、図6に示す処理領域Sにおける各位置のカウント値C(x)を荷重として、処理領域Sに含まれる各位置とその位置におけるカウント値C(x)との積の総和を、各位置におけるカウント値C(x)の総和で除算して得られた重心位置をエッジピークの位置xedgeとして算出する。
【0059】
次に、実施例の作用を説明する。
前述したように、従来は、エッジと判定するための閾値Thorgを比較的高く設定していた。このように閾値Thorgが比較的に高く設定されている場合、エッジ位置がふらつくことがある。すなわち、従来、有意なエッジか否かの判定をするための閾値Thorgは、一般的には画像に重畳されるノイズレベルによって決定される。ノイズレベルよりも十分に閾値Thorgを高くすることによって、エッジを比較的安定的に検出することが可能となる。
【0060】
しかしながら、このように閾値Thorgをノイズレベルよりも十分に高くすると、コントラストが低い部分のエッジが検出できなくなるという問題や、エッジがふらつくという問題が生じる。
【0061】
このエッジのふらつきの原因について説明する。すなわち、図8に示すように、閾値Thorgが比較的高い場合、エッジが画素間を遷移する際に、同図(b)に示すように、濃度値Iが閾値Thorg未満となると、エッジが消失する。
【0062】
あるいは、撮像手段1からコントロールユニットCUへ画像データが転送される過程において、スイッチングノイズや熱雑音などのノイズが重畳された場合に、濃度値(強度)Iが閾値Thorgを超えると、その部位にエッジが観測されることになる。ノイズは基本的にランダムに発生するため、エッジが画素間をx座標正の方向に遷移している場合に、図9に示すように、エッジが検出されている位置x0と、位置x0に隣接する位置x0+1とにこのようなノイズが重畳されると、位置x0と位置x0+1においてフレームごとにランダムにエッジが観測されることがある。
【0063】
このようなエッジの消失やランダムなエッジの観測により、エッジのふらつきという現象が生じる。
【0064】
このようにエッジがふらついた場合、一度エッジが消失すると、それまで蓄積されていたカウント値はリセットされ、再びエッジが検出された時点から再度投票処理が行われ、カウント値が所定値以上計測された後に速度が計測される。
【0065】
このため、エッジの有意性を判断する閾値Thorg付近の強度を有するエッジは、その速度を計測できないか、もしくは正確な速度が計測できなくなる場合がある。また、このように速度を計測できない部位が生じることで、速度を検出できる領域が減少する。
【0066】
それに対して、本実施例では、エッジ抽出手段11において、従来の閾値Thorgよりも充分に低い閾値Thlowを設定して、広い特徴領域R0のエッジを抽出するようにしたため、前述したようなエッジの消失やランダムなエッジの観測が無くなり、エッジのふらつきを防止することができる。
【0067】
しかも、エッジ幅規格化手段12において、エッジ幅を細分化するにあたり、特徴領域R0のエッジの重心位置を算出するようにしているため、エッジにノイズが重畳されていても特徴領域R0のエッジピークを高い精度で算出できる。
【0068】
これにより、正確な移動速度の算出が可能となるとともに、速度を検出する領域の増加を図ることができる。
【0069】
さらに、本実施例では、位置算出手段15において投票手段13で投票したカウント値を用いてエッジピークの位置xedgeを算出するようにしているため、エッジ幅規格化手段12において±n(本実施例ではn=1)の幅のエッジを形成していても、高い精度でエッジピークの位置xedgeを算出することができる。
【0070】
この効果を説明するにあたり、まず、カウント値が持つ意味について説明する。
a) 滞留時間
カウント値は、エッジが観測された位置で、エッジが観測されるごとに所定値(本実施例では+1で説明)だけ増加され、一方、エッジが観測されなかった位置のカウント値を「0」にリセットされる。一定間隔の時間でこの処理が行われる場合、カウント値の差(勾配)は、エッジが当該画素位置に存在していた時間的な長さを表すことになる。さらに、カウント値の勾配の符号は、エッジが移動する方向を表している。
【0071】
b)エッジの確からしさ(信頼性)
連続するフレームで定常的に観測されるエッジの位置に相当するメモリアドレスのカウント値は、時間経過に比例して大きくなり、逆にノイズのように一時的にしか観測されないエッジの位置に相当するメモリアドレスのカウント値は、時間経過に比例して大きくはならない。例えば、ショットノイズのように、時間的に連続して取得されるフレーム中のあるフレームにだけ出現するようなエッジは、そのエッジの観測されたメモリアドレスのカウント値の変化は離散的となる。このように、カウント値は、ある所定期間におけるエッジ存在の確からしさを意味している。
【0072】
エッジが移動する速度が異なる場合、例えば、エッジ移動速度が遅い場合と、エッジ移動速度が速い場合とでは、メモリアドレスのカウント値のプロファイル(傾きの大きさ)が異なる。しかし、どちらの場合も、メモリアドレスのカウント値が持つ意味は、上述の確からしさに変わりなく、つまり、一時的なノイズによりエッジが検出された位置のメモリアドレスのカウント値は小さく、逆に有意なエッジが検出された位置のメモリアドレスのカウント値は大きくなる。
【0073】
具体的には、前述した図6に示すように、位置xt−1のメモリアドレスのカウント値C(xt−1)が大きい場合、位置xt−1にエッジが存在している可能性が高い。つまり、統一されたエッジ幅の範囲において、エッジ位置はカウント値が高い位置ほど信頼性が高く、カウント値が低いところはノイズなどによって一時的に観測されたエッジである可能性もある。逆にいうと、カウント値が大きい位置は、当該エッジが存在している可能性が高く、またカウント値が小さい位置は、当該エッジが存在している可能性が低いことになる。このように、カウント値はエッジが存在しているか否かの信頼性を表していることとなる。
【0074】
よって、このカウント値を荷重として、エッジを規格化する幅における各位置とカウント値との積の総和を算出し、各カウント値の総和で除算して重心位置(平均値)を求めることにより、エッジが存在する確からしさを含んだエッジ位置を算出することができる。
【0075】
このように、カウント値を荷重とする総和から算出したエッジ位置は、誤差が生じたとしても、所定画素幅(本実施例では3画素幅)の処理領域S内に存在しているため、エッジ幅/2の誤差しか持たない。つまり、誤差の最大値Errmaxはエッジ幅/2である。例えば、本実施例のように、エッジ幅を3画素幅に規格化した場合、Errmax=1.5画素となり、エッジ位置の誤差を極めて小さくすることが可能となる。
【0076】
以上説明したように、本実施例1では、エッジ(特徴領域)を抽出して規格化した範囲で行ったメモリアドレスのカウントアップによるカウント値に基づいて移動方向、速度、位置を算出するため、より少ないデータ量かつ比較的簡単な手順で処理が可能であり、高速で処理が可能である。しかも、1ピクセルレート未満のサブピクセルレートの高い精度でエッジピークの位置(特徴位置)を算出することもできる。
【0077】
図10は、従来と本実施例との比較例であり、(a)は従来の閾値Thorgを用いて得られたエッジを示し、(b)は本実施例の閾値Thlowを用いて得られたエッジを示している。この図に示すように、本実施例では、エッジの検出部位が増えているのが分かる。特に、図においてE1,E2の矢印で示す部分などにおいて、本実施例の効果が顕著である。
【実施例2】
【0078】
次に、図11に基づいて本発明の実施例2の動き検出装置について説明する。なお、この実施例2を説明するにあたり、前記実施例1と同一ないし均等な部分については、説明を省略し、相違する部分を中心として説明する。
【0079】
この実施例2の動き検出装置では、エッジ幅規格手段212は、移動速度検出手段14で算出した移動速度を入力し、この速度に応じて、膨張処理において幅を拡げるnの値を変更するようにしている。
【0080】
すなわち、膨張処理では、細線化された1画素の幅のエッジを、エッジピークx0を中心とした所定の幅±nに拡げる処理を実行するが、このnの値を、検出した移動速度が高いときには、nを2以上に大きくする。
【0081】
したがって、実施例2の動き検出装置によれば、検出対象の移動速度が相対的に高い場合には、膨張させるエッジの幅が広がるので、連続するフレーム間で、対象となるエッジが常に重なりを有するようにできる。
【0082】
すなわち、同一の位置において確実に複数回のカウントが成されるようにして、カウント値が有するエッジの確からしさを得ることができ、移動速度の検出精度を高く保持できる。
【0083】
これにより、移動速度が高くなっても、検出精度が高くなり、移動速度を算出できるレンジが拡がるという効果が得られる。
【0084】
以上、図面を参照して、本発明の実施の形態および実施例1および実施例2を詳述してきたが、具体的な構成は、この実施の形態および実施例1および実施例2に限らず、本発明の要旨を逸脱しない程度の設計的変更は、本発明に含まれる。
【0085】
例えば、実施例1,2では、車両に搭載した例を示したが、車両以外にも、船舶、航空機、ロボット、観測装置などの他の機器に適用することができる。
【0086】
また、実施例1,2では、検出対象のダイナミクスを100Hzと想定して、フレームレートを1000fpsとした例を示したが、フレームレートは、これに限定されるものではなく、検出対象のダイナミクスに対して、十分速いフレームレートを有することが好ましい。
【0087】
また、実施例1,2では、エッジが水平方向へ移動する例を示したが、このエッジの移動方向は水平方向へ限定されるものではなく、例えば、上下方向およびその複合方向へ移動する場合も同様にして移動速度を算出することができる。
【0088】
また、実施例1,2では、特徴位置として、エッジのピークを示したが、これに限定されるものではない。要するに、特徴位置とは、画像情報が示すある値のピーク値であり、例えば、画像情報として赤外カメラからの情報が入力される場合、その温度を示すピーク値を特徴位置とすることもできる。あるいは、所定の色を示す値のピーク値を特徴位置とすることも可能である。
【図面の簡単な説明】
【0089】
【図1】本発明の実施の形態の実施例1の動き検出装置を示す全体図である。
【図2】本発明の実施の形態の実施例1の物体検出装置の要部を示すブロック図である。
【図3】本発明の実施の形態の実施例1の物体検出装置のエッジ抽出手段11におけるエッジ抽出を説明する説明図である。
【図4】本発明の実施の形態の実施例1の動き検出装置のエッジ幅規格化手段12における領域規格化処理を説明する説明図であり、(a)は2値化処理を行った特徴領域、(b)は細線化処理を行った特徴領域、(c)は膨張処理を行った特徴領域を示している。
【図5】本発明の実施の形態の実施例1の動き検出装置の投票手段13における投票処理および移動速度検出手段における移動速度算出処理を説明する説明図であり、(a)は時刻tのフレーム、(b)は時刻t+1のフレーム、(c)は時刻t+2のフレームを示している。
【図6】本発明の実施の形態の実施例1の動き検出装置の位置算出手段15におけるエッジピークの位置(重心位置)の求め方を説明する説明図であり、(a)はエッジ抽出手段11で得られる画像情報を示し、(b)はその画像情報に対する投票手段13で投票したカウント値を示している。
【図7】本発明の実施の形態の実施例1の動き検出装置における処理の流れを示すフローチャートである。
【図8】本発明の実施の形態の実施例1の動き検出装置と比較対象となる従来技術におけるエッジの消失を説明する説明図である。
【図9】本発明の実施の形態の実施例1の動き検出装置と比較対象となる従来技術におけるエッジのふらつきを説明する説明図である。
【図10】本発明の実施の形態の実施例1の動き検出装置と従来技術との算出結果を比較する説明図であり、(a)は従来技術の算出結果、(b)は実施例1の算出結果を示している。
【図11】本発明の実施の形態の実施例2の動き検出装置の要部を示すブロック図である。
【符号の説明】
【0090】
1 撮像手段
11 エッジ抽出手段
12 エッジ幅規格化手段
13 投票手段
14 移動速度検出手段
15 位置算出手段
CU コントロールユニット(速度算出手段)
MB 車両
【技術分野】
【0001】
本発明は、連続する画像に含まれる対象物を検出して、この対象物の移動速度、移動方向および位置を検出する動き検出方法および動き検出装置に関する。
【背景技術】
【0002】
近年、カメラなどの撮像手段により撮像した画像中の対象物の速度や移動方向などを検出する動き検出装置が提案されている。
【0003】
また、このような動き検出装置として、車両に搭載されて車両前方の先行車両や道路の白線などの周辺画像を認識する装置が知られている(例えば、特許文献1参照)。
【0004】
この従来技術は、撮像された画像情報から、先行車両の外郭や白線の外側縁のように輝度が変化するエッジを抽出し、連続するフレームにおけるエッジの位置の変化に基づいてオプティカルフローを算出し、対象物の速度を算出するようにしている。
【0005】
このオプティカルフローの検出方法としては、フレーム間で対応点を決定して動きベクトルを求める相関法や、各点の明るさの空間的および時間的な勾配の関係を求める勾配法などの手法が一般に利用される。
【特許文献1】特開2003−67752号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかしながら、上述の従来技術では、エッジのオプティカルフローを求めるにあたり以下に述べる問題があった。
【0007】
まず、相関法を用いた場合は、処理手順は比較的簡単であるが、注目する領域の周りに相関値を算出する領域を設け、フレーム間で、領域内輝度の相関値を計算するため、ブロックマッチング処理が必要となる。このため、計算量が膨大となって処理時間が長くなるという問題がある。
【0008】
すなわち、ブロックマッチングを用いた手法では、1ピクセル単位よりも小さなサブピクセル以下の画素群を使用してエッジの詳細な位置情報を算出するには、登録したテンプレートである画素群データを、注目位置を中心に、その周囲に所定量だけずらしながら算出した複数の相関値を高次曲線で補完し、その極値を与える位置を算出することによって動きを推定する。このため、計算量が膨大となってしまう。よって、単純な計算で正確にエッジの位置を検出することが難しかった。
【0009】
また、勾配法を用いた場合には、画像の輝度変化に弱く、処理手順が複雑であるという問題点がある。
【0010】
そこで、本発明は、より少ないデータ量で、かつ比較的簡単な処理手順を用いることで、画像中からの移動速度成分の検出およびエッジなどの特徴量を表す画像情報の画像上の座標位置(以下、特徴位置と呼ぶ)の検出を、高速に処理可能であるとともに検出精度を向上可能な動き検出方法および動き検出装置を提供することを目的とする。
【課題を解決するための手段】
【0011】
本発明は、上述の事情に鑑みなされたもので、 撮像手段で得られた画像情報において速度算出を行う領域を特徴領域として抽出する抽出ステップと、前記特徴領域の面積を変更する領域規格化ステップと、前記範囲に含まれる画像上の位置に対応するメモリアドレスの値をカウント値としてカウントアップするとともに、前記範囲外の画像上の位置に対応するメモリアドレスの値をリセットする投票ステップと、蓄積された隣り合うメモリアドレスの前記カウント値の差に基づいて、前記範囲の移動方向および移動速度を検出する移動速度検出ステップと、前記範囲に含まれる画像上の位置と前記カウント値とに基づいて前記範囲の重心位置を特徴位置として算出する位置算出ステップと、を実行することを特徴とする動き検出方法である。
【発明の効果】
【0012】
本発明では、算出する領域を抽出して面積を変更した範囲で行ったカウントアップによるカウント値に基づいて移動方向、速度、位置を算出するため、より少ないデータ量かつ比較的簡単な手順で処理が可能で、高速で処理が可能であり、しかも、サブピクセルレートの高い精度で特徴位置を算出することもできる。
【発明を実施するための最良の形態】
【0013】
以下、本発明の実施の形態を図面に基づいて説明する。
この実施の形態の物体検出装置は、画像を撮像する撮像手段(1)と、この撮像手段(1)から入力した画像情報中に含まれる領域の移動方向および移動速度を検出する速度検出手段(CU)と、を備えた動き検出装置であって、前記速度検出手段(CU)は、前記撮像手段から画像情報を連続するフレームとして入力する入力処理と、前記画像情報において速度算出を行う領域を特徴領域として抽出する抽出処理と、前記特徴領域の面積を変更する領域規格化処理と、前記範囲に含まれる画像上の位置に対応するメモリアドレスの値をカウント値としてカウントアップするとともに、前記範囲外の画像上の位置に対応するメモリアドレスの値をリセットする投票処理と、蓄積された隣り合うメモリアドレスのカウント値の差に基づいて、前記範囲の移動方向および移動速度を検出する移動速度検出処理と、前記範囲に含まれる画像上の位置と前記カウント値とに基づいて算出される前記範囲の重心位置を特徴位置として算出する位置算出処理と、を実行することを特徴とする動き検出装置である。
【実施例1】
【0014】
図1〜図10に基づいて本発明の最良の実施の形態の実施例1の物体検出装置について説明する。
【0015】
実施例1の物体検出装置は、図1に示すように、車両MBに搭載されており、撮像手段1を備えている。
【0016】
撮像手段1は、例えば、車室内の図示を省略したルームミラーの近傍位置に搭載されている。この撮像手段1としては、CCD(Charge Coupled Devices)やCMOS(Complementary Metal Oxide Semiconductor)などの撮像素子を用いた輝度画像を撮像するカメラを用いることができ、画像を撮像し、この画像を一定間隔ごとにフレームとして取り出す連続処理を行う。
【0017】
撮像手段1で得られた情報は、コントロールユニットCUに入力される。なお、コントロールユニットCUは、RAM(Random Access Memory),ROM(Read Only Memory),CPU(Central Processing Unit)などを備えた周知のものである。
【0018】
コントロールユニットCUは、撮像手段1で得られた画像の中から特徴領域としてのエッジを抽出し、このエッジの移動方向、速度、位置を算出する処理を行う。そこで、以下説明するにあたり、特徴領域のことをエッジと称する。
【0019】
図2は、コントロールユニットCUにおける上記処理機能を概念的に表すブロック図であって、エッジ抽出手段11、エッジ幅規格化手段12、投票手段13、移動速度検出手段14、位置算出手段15を備えている。
【0020】
エッジ抽出手段11は、撮像手段1により撮像された画像から、SobelフィルタやPrewittフィルタなどによって、エッジとして認識された画素と、エッジとして認識されない画素とからなるエッジ画像を作成する抽出処理を実行する。
【0021】
エッジ幅規格化手段12は、エッジ抽出手段11により得られたエッジ画像中のエッジ幅を所定の画素数に規格化する領域規格化処理を実行する。
【0022】
投票手段13は、エッジ幅規格化手段12により規格化されたエッジが何フレーム連続して観測されたかの情報をストアする投票処理を実行する。すなわち、規格化されたエッジが観測された画像上の位置に対応するメモリアドレスの値をカウントアップする一方、現フレームにおいてエッジが観測されなかった位置に対応するメモリアドレスの値をリセットする。
【0023】
移動速度検出手段14は、投票手段13にストアされた値と、各値の差が示す勾配とに基づき、抽出されたエッジの画像上移動方向・移動速度・位置を算出する移動速度検出処理および位置算出処理を実行する。
【0024】
次に、上述したエッジ抽出手段11、エッジ幅規格化手段12、投票手段13、移動速度検出手段14が行う各処理について、さらに詳細に説明する。
【0025】
まず、エッジ抽出手段11が実行する抽出処理とは、撮像手段1から得られた図3に示すようなエッジの濃度情報の中から閾値Thlowよりも濃度値が高い特徴領域(速度を算出する領域)R0を抽出する処理である。ここで、閾値Thlowは、従来用いられていた閾値Thorgよりも充分に低い値に設定されている。
【0026】
一般に、速度が計測できる領域を多くするためになるべく多くのエッジを抽出しようとすると、領域規格化処理において、エッジ幅を膨張させた際に隣接するエッジどうしが重なり合ってしまい、正確な速度が算出できなくなる。そこで、隣接するエッジが重なり合う現象を回避するためには、エッジの密度を抑える必要があり、このため、エッジと判定するための閾値Thorgを比較的高く設定する必要がある。
【0027】
これに対し、本実施例では、後述する領域規格化処理において、重心位置をエッジピーク(後述)とするようにしたため、エッジ抽出用の閾値Thlowは、常に、複数の幅のエッジを抽出できることができるように従来と比較して低い値に設定している。
【0028】
次に、図4によりエッジ幅規格化手段12における領域規格化処理を説明する。
この領域規格化処理は、エッジ抽出手段11から出力されるエッジ画像(特徴領域R0)の特徴位置を検出し、その特徴位置を中心に所定幅(本実施例1では、3画素)の幅を持たせた2値画像を生成する処理である。なお、本実施例では、特徴位置とは、検出された複数のエッジの重心位置であり、これを以下エッジピークと称する。
【0029】
図3に示すように、エッジ抽出手段11から出力されるエッジは複数存在し、ある幅を有しているとともにその濃度値が異なっている。そこで、領域規格化処理では、この複数のエッジにおけるエッジピーク(図においてx=x0の位置)を検出し、このエッジピークx0において、図4(b)に示すように、1画素の幅に細線化する細線化処理と、このエッジピークx0を中心に、3画素の幅に拡げる膨張処理とを実行する。
【0030】
すなわち、細線化処理では、まず、図3に示すようにエッジ抽出手段11で抽出された特徴領域R0の画像情報を、図4(a)に示すように2値化する。
【0031】
さらに、特徴領域R0に含まれる位置(座標)xにおけるエッジ濃度値I(x)を用い、下記(1)の重心計算を行うことで、エッジピークx0を規定し、この規定したエッジピークx0の位置で1画素のエッジを形成する。
x0=[ΣI(x)・x]/ΣI(x)・・・(1)
ここで、Σはx∈R0の範囲の総和を示す。
【0032】
なお、上記(1)式で得られたエッジピークx0において、小数点以下は四捨五入、切り上げ、切り捨てのいずれでもよいが、本実施例では、切り捨てとする。
【0033】
次に、膨張処理を説明する。
膨張処理は、図4(b)に示しように細線化された1画素の幅のエッジを、図4(c)に示すように、エッジピークx0を中心とした所定の幅±nに拡げる処理であり、本実施例では、n=1として3画素に拡げる。すなわち、エッジピークx0の両側の位置x0−1および位置x0+1の画素をアクティブにする。
【0034】
このようにエッジ幅規格化手段12では、エッジ抽出手段11から出力されるエッジ画像から、画素数すなわち面積を変更してエッジ幅が所定幅(3画素幅)に統一された2値のエッジ画像が生成される。
【0035】
次に、投票手段13における投票処理について図5により説明する。なお、説明の簡略化を図るために、エッジは、x軸1次元方向に移動するものとする。また、エッジ位置に対応するメモリアドレスの値のカウントアップは+1ずつされるものとし、メモリアドレスは、1画素を1単位として設定されているものとして説明する。
【0036】
この投票処理は、エッジ幅規格化手段12により所定の幅(3画素幅)に形成したエッジに基づいて、エッジが観測された位置(図ではx0−1,x0,x0+1)で、その位置に対応するメモリアドレスの値のカウントアップを行い、エッジが観測されない位置は、メモリアドレスの値を「0」にリセットする。
【0037】
これについて順を追って説明すると、まず、図5(a)に示す時刻tにおいて、エッジ幅規格化手段12から3画素に広げられたエッジが取得される。このエッジは、図示のように、x=x0を中心として配置されている。そこで、この時刻tでは、エッジが観測されるそれぞれの位置(座標)x0−1,x0,x0+1においてメモリアドレスの値のカウントアップを行う。
【0038】
この図5(a)の例では、位置x0−1のメモリアドレスのカウント値は「5」となり、位置x0のメモリアドレスのカウント値が「3」となり、位置x0+1のメモリアドレスのカウント値が「1」となる。
【0039】
次に、図5(b)に示す時刻t+1では、エッジが移動していないため、再び、位置(座標)x0−1,x0,x0+1においてメモリアドレスの値のカウントアップを行う。そこで、図5(b)に示す時刻t+1では、位置x0−1のメモリアドレスのカウント値は「6」となり、位置x0のメモリアドレスのカウント値が「4」となり、位置x0+1のメモリアドレスのカウント値が「2」となる。
【0040】
次に、図5(c)に示す時刻t+2では、エッジがx軸の正方向に1画素シフトしている。この場合、エッジが検出された位置x0,x0+1,x0+2のメモリアドレスの値をカウントアップし、エッジが観測された以外の位置のメモリアドレスの値を「0」にリセットする。そこで、この時刻t+2では、この例では、位置x0−1のメモリアドレスのカウント値は「0」となり、位置x0のメモリアドレスのカウント値が「5」となり、位置x0+1のメモリアドレスのカウント値が「3」となり、位置x0+2のメモリアドレスのカウント値が「1」となる。一方、それ以外の位置x0−1を含む位置のメモリアドレスのカウント値は「0」にリセットされる。
【0041】
次に、移動速度検出手段14における移動速度検出処理について説明する。
この移動速度検出手段14では、投票手段13において、図5(c)に示すようにカウントアップした3画素分のカウント値を用いて移動方向におけるカウント値の傾きを算出し、この傾きがエッジの移動速度の逆数となることに基づいて移動速度を求める。
【0042】
すなわち、特徴領域(エッジ)が移動する速度に比べ、フレームレートが十分高い場合には、連続するフレーム間で観測されるエッジは、必ず重複する領域を有する。例えば、図5に示しているケースでは、時刻t+1と時刻t+2とで2画素幅で重複している。ちなみに、本実施例1では、検出対象のダイナミクスを100Hz程度と想定し、フレームレートを1000fpsとしている。
【0043】
このようにエッジが観測されたx座標の位置に対応するメモリアドレスのカウント値をカウントアップしていくことで、カウント値は、エッジが同じ位置に観測されている時間と等価となる。また、エッジが移動した場合は、新たにエッジが観測された位置のカウント値が1となり、観測されたエッジの中では最も小さな値となる。つまり、エッジが移動する方向のカウント値は小さく、一方、エッジが移動する方向と反対方向のエッジのカウント値は大きくなる。
【0044】
したがって、このカウント値の差、言い換えると、カウント値の勾配は、エッジが移動するまでに、何フレーム連続して同じ位置にエッジが観測されていたかを計数した値であり、このカウント値勾配より、エッジの移動速度を算出することができる。
【0045】
すなわち、図5に示す例では、図5(b)では、位置(座標)x0−1,x0,x0+1のメモリアドレスのカウント値がそれぞれ6,4,2であり、エッジは、位置(座標)x0−1,x0,x0+1で観測される前に、6−2=4フレーム連続して位置(座標)x0−2,x0−1,x0で観測されていたことを示す。この結果から、注目しているエッジは4フレームで1画素を移動していると判断することができる。また、位置(座標)x0+1のカウント値=2より、位置(座標)x0−1,x0,x0+1で2フレーム連続して観測されていることが示されている。
【0046】
そこで、図5(a)〜(c)の例では、エッジは、4フレームで1画素ずつ移動し、時刻t+1の時点では、2フレーム連続して観測されていることより、時刻t+1では、2フレーム/{4フレーム/1画素}=0.5画素だけ位置x0からシフトしていると算出することができる。
【0047】
このように、移動速度検出手段14では、入力画像内の対象物のエッジのカウント値の勾配から、画像上における対象物の移動速度を求めることができる。また、この移動速度の変化から、画像上における対象物の加速度を求めることもできる。
【0048】
次に、位置算出手段15におけるエッジ位置の位置算出処理を説明する。
この位置算出処理は、図5で説明したエッジが観測された位置(x0−1,x0,x0+1,x0+2など)を処理領域Sとし、この処理領域Sにおける各位置におけるカウント値C(x)を荷重として、カウント値C(x)と位置の積の総和を、各位置におけるカウント値C(x)の総和で除算して得られた重心位置(平均値)からエッジピークの位置(特徴位置)xedgeを算出する処理である。すなわち、エッジピークの位置xedgeを、下記(2)式により算出する。
xedge-=(ΣC(x)・x)/ΣC(x)・・・(2)
なお、この(2)式において、Σはx∈Sの範囲の総和である。
【0049】
この位置算出処理の具体例を、図6により説明する。すなわち、図6に示す例では、時刻tでエッジが観測される処理領域Sにおける3画素の位置xt−1,xt,xt+1において、それぞれ、カウント値C(xt−1)=15,C(xt)=9,C(xt+1)=3がカウントされている。
【0050】
そこで、この例では、
ΣC(x)・x=15(xt−1)+9(xt)+3(xt+1)
ΣC(x)=15+9+3=27
また、xt−1=xt−1、xt+1=xt+1
であるから、xedge=xt−(12/27)となる。
【0051】
こうして得られたエッジピークの位置xedgeの小数点以下は、四捨五入、切り上げ、切り捨てのいずれでもよいが、本実施例では、切り捨てとしている。したがって、この例の場合には、エッジピークの位置xedge=xtとなる。
【0052】
移動速度検出手段14および位置算出手段15は、上記のようにして得られたエッジの移動方向、移動速度、およびエッジピークの位置xedgeを、運転支援装置などに出力する。
【0053】
次に、以上説明したコントロールユニットCUにおける移動速度検出処理および位置算出処理に至る処理の流れを図7のフローチャートにより簡単に説明する。
【0054】
ステップS1では、エッジ抽出処理を行う。すなわち、エッジ抽出手段11において図3に示すようにエッジ画像から濃度値が閾値Thlow以上のエッジを抽出する。
【0055】
ステップS2では、領域規格化処理を実行する。すなわち、ステップS1において抽出したエッジに対し、まず、エッジ幅規格化手段12により細線化処理を行う。この細線化処理では、エッジ濃度値l(x)を用いた重心計算を行うことで、図4(b)に示すように、エッジピークの位置x0の1画素の幅に細線化する。さらに、エッジ幅規格化手段12により膨張処理を行うことで、図4(c)に示すように、エッジピークの位置x0を中心とした所定幅(本実施例では3画素幅)のエッジを規定する。
【0056】
ステップS3では、投票処理を実行する。すなわち、投票手段13では、ステップS2で規定された処理領域Sの各位置(x座標)に対応する各メモリアドレスの値に対し、図5で示したように「+1」を投票(カウントアップ)し、一方、処理領域Sの外の位置(x座標)に対応するメモリアドレスの値は、「0」にリセットする。
【0057】
ステップS4では、移動速度算出処理を実行する。すなわち、移動速度検出手段14では、投票手段13において、図5に示すようにカウントアップした3画素分のカウント値の差(勾配)に基づいてエッジの移動方向および移動速度を求める。
【0058】
ステップS5では、エッジピークの位置(特徴位置)xedgeを求める算出処理を実行する。すなわち、位置算出手段15において、図6に示す処理領域Sにおける各位置のカウント値C(x)を荷重として、処理領域Sに含まれる各位置とその位置におけるカウント値C(x)との積の総和を、各位置におけるカウント値C(x)の総和で除算して得られた重心位置をエッジピークの位置xedgeとして算出する。
【0059】
次に、実施例の作用を説明する。
前述したように、従来は、エッジと判定するための閾値Thorgを比較的高く設定していた。このように閾値Thorgが比較的に高く設定されている場合、エッジ位置がふらつくことがある。すなわち、従来、有意なエッジか否かの判定をするための閾値Thorgは、一般的には画像に重畳されるノイズレベルによって決定される。ノイズレベルよりも十分に閾値Thorgを高くすることによって、エッジを比較的安定的に検出することが可能となる。
【0060】
しかしながら、このように閾値Thorgをノイズレベルよりも十分に高くすると、コントラストが低い部分のエッジが検出できなくなるという問題や、エッジがふらつくという問題が生じる。
【0061】
このエッジのふらつきの原因について説明する。すなわち、図8に示すように、閾値Thorgが比較的高い場合、エッジが画素間を遷移する際に、同図(b)に示すように、濃度値Iが閾値Thorg未満となると、エッジが消失する。
【0062】
あるいは、撮像手段1からコントロールユニットCUへ画像データが転送される過程において、スイッチングノイズや熱雑音などのノイズが重畳された場合に、濃度値(強度)Iが閾値Thorgを超えると、その部位にエッジが観測されることになる。ノイズは基本的にランダムに発生するため、エッジが画素間をx座標正の方向に遷移している場合に、図9に示すように、エッジが検出されている位置x0と、位置x0に隣接する位置x0+1とにこのようなノイズが重畳されると、位置x0と位置x0+1においてフレームごとにランダムにエッジが観測されることがある。
【0063】
このようなエッジの消失やランダムなエッジの観測により、エッジのふらつきという現象が生じる。
【0064】
このようにエッジがふらついた場合、一度エッジが消失すると、それまで蓄積されていたカウント値はリセットされ、再びエッジが検出された時点から再度投票処理が行われ、カウント値が所定値以上計測された後に速度が計測される。
【0065】
このため、エッジの有意性を判断する閾値Thorg付近の強度を有するエッジは、その速度を計測できないか、もしくは正確な速度が計測できなくなる場合がある。また、このように速度を計測できない部位が生じることで、速度を検出できる領域が減少する。
【0066】
それに対して、本実施例では、エッジ抽出手段11において、従来の閾値Thorgよりも充分に低い閾値Thlowを設定して、広い特徴領域R0のエッジを抽出するようにしたため、前述したようなエッジの消失やランダムなエッジの観測が無くなり、エッジのふらつきを防止することができる。
【0067】
しかも、エッジ幅規格化手段12において、エッジ幅を細分化するにあたり、特徴領域R0のエッジの重心位置を算出するようにしているため、エッジにノイズが重畳されていても特徴領域R0のエッジピークを高い精度で算出できる。
【0068】
これにより、正確な移動速度の算出が可能となるとともに、速度を検出する領域の増加を図ることができる。
【0069】
さらに、本実施例では、位置算出手段15において投票手段13で投票したカウント値を用いてエッジピークの位置xedgeを算出するようにしているため、エッジ幅規格化手段12において±n(本実施例ではn=1)の幅のエッジを形成していても、高い精度でエッジピークの位置xedgeを算出することができる。
【0070】
この効果を説明するにあたり、まず、カウント値が持つ意味について説明する。
a) 滞留時間
カウント値は、エッジが観測された位置で、エッジが観測されるごとに所定値(本実施例では+1で説明)だけ増加され、一方、エッジが観測されなかった位置のカウント値を「0」にリセットされる。一定間隔の時間でこの処理が行われる場合、カウント値の差(勾配)は、エッジが当該画素位置に存在していた時間的な長さを表すことになる。さらに、カウント値の勾配の符号は、エッジが移動する方向を表している。
【0071】
b)エッジの確からしさ(信頼性)
連続するフレームで定常的に観測されるエッジの位置に相当するメモリアドレスのカウント値は、時間経過に比例して大きくなり、逆にノイズのように一時的にしか観測されないエッジの位置に相当するメモリアドレスのカウント値は、時間経過に比例して大きくはならない。例えば、ショットノイズのように、時間的に連続して取得されるフレーム中のあるフレームにだけ出現するようなエッジは、そのエッジの観測されたメモリアドレスのカウント値の変化は離散的となる。このように、カウント値は、ある所定期間におけるエッジ存在の確からしさを意味している。
【0072】
エッジが移動する速度が異なる場合、例えば、エッジ移動速度が遅い場合と、エッジ移動速度が速い場合とでは、メモリアドレスのカウント値のプロファイル(傾きの大きさ)が異なる。しかし、どちらの場合も、メモリアドレスのカウント値が持つ意味は、上述の確からしさに変わりなく、つまり、一時的なノイズによりエッジが検出された位置のメモリアドレスのカウント値は小さく、逆に有意なエッジが検出された位置のメモリアドレスのカウント値は大きくなる。
【0073】
具体的には、前述した図6に示すように、位置xt−1のメモリアドレスのカウント値C(xt−1)が大きい場合、位置xt−1にエッジが存在している可能性が高い。つまり、統一されたエッジ幅の範囲において、エッジ位置はカウント値が高い位置ほど信頼性が高く、カウント値が低いところはノイズなどによって一時的に観測されたエッジである可能性もある。逆にいうと、カウント値が大きい位置は、当該エッジが存在している可能性が高く、またカウント値が小さい位置は、当該エッジが存在している可能性が低いことになる。このように、カウント値はエッジが存在しているか否かの信頼性を表していることとなる。
【0074】
よって、このカウント値を荷重として、エッジを規格化する幅における各位置とカウント値との積の総和を算出し、各カウント値の総和で除算して重心位置(平均値)を求めることにより、エッジが存在する確からしさを含んだエッジ位置を算出することができる。
【0075】
このように、カウント値を荷重とする総和から算出したエッジ位置は、誤差が生じたとしても、所定画素幅(本実施例では3画素幅)の処理領域S内に存在しているため、エッジ幅/2の誤差しか持たない。つまり、誤差の最大値Errmaxはエッジ幅/2である。例えば、本実施例のように、エッジ幅を3画素幅に規格化した場合、Errmax=1.5画素となり、エッジ位置の誤差を極めて小さくすることが可能となる。
【0076】
以上説明したように、本実施例1では、エッジ(特徴領域)を抽出して規格化した範囲で行ったメモリアドレスのカウントアップによるカウント値に基づいて移動方向、速度、位置を算出するため、より少ないデータ量かつ比較的簡単な手順で処理が可能であり、高速で処理が可能である。しかも、1ピクセルレート未満のサブピクセルレートの高い精度でエッジピークの位置(特徴位置)を算出することもできる。
【0077】
図10は、従来と本実施例との比較例であり、(a)は従来の閾値Thorgを用いて得られたエッジを示し、(b)は本実施例の閾値Thlowを用いて得られたエッジを示している。この図に示すように、本実施例では、エッジの検出部位が増えているのが分かる。特に、図においてE1,E2の矢印で示す部分などにおいて、本実施例の効果が顕著である。
【実施例2】
【0078】
次に、図11に基づいて本発明の実施例2の動き検出装置について説明する。なお、この実施例2を説明するにあたり、前記実施例1と同一ないし均等な部分については、説明を省略し、相違する部分を中心として説明する。
【0079】
この実施例2の動き検出装置では、エッジ幅規格手段212は、移動速度検出手段14で算出した移動速度を入力し、この速度に応じて、膨張処理において幅を拡げるnの値を変更するようにしている。
【0080】
すなわち、膨張処理では、細線化された1画素の幅のエッジを、エッジピークx0を中心とした所定の幅±nに拡げる処理を実行するが、このnの値を、検出した移動速度が高いときには、nを2以上に大きくする。
【0081】
したがって、実施例2の動き検出装置によれば、検出対象の移動速度が相対的に高い場合には、膨張させるエッジの幅が広がるので、連続するフレーム間で、対象となるエッジが常に重なりを有するようにできる。
【0082】
すなわち、同一の位置において確実に複数回のカウントが成されるようにして、カウント値が有するエッジの確からしさを得ることができ、移動速度の検出精度を高く保持できる。
【0083】
これにより、移動速度が高くなっても、検出精度が高くなり、移動速度を算出できるレンジが拡がるという効果が得られる。
【0084】
以上、図面を参照して、本発明の実施の形態および実施例1および実施例2を詳述してきたが、具体的な構成は、この実施の形態および実施例1および実施例2に限らず、本発明の要旨を逸脱しない程度の設計的変更は、本発明に含まれる。
【0085】
例えば、実施例1,2では、車両に搭載した例を示したが、車両以外にも、船舶、航空機、ロボット、観測装置などの他の機器に適用することができる。
【0086】
また、実施例1,2では、検出対象のダイナミクスを100Hzと想定して、フレームレートを1000fpsとした例を示したが、フレームレートは、これに限定されるものではなく、検出対象のダイナミクスに対して、十分速いフレームレートを有することが好ましい。
【0087】
また、実施例1,2では、エッジが水平方向へ移動する例を示したが、このエッジの移動方向は水平方向へ限定されるものではなく、例えば、上下方向およびその複合方向へ移動する場合も同様にして移動速度を算出することができる。
【0088】
また、実施例1,2では、特徴位置として、エッジのピークを示したが、これに限定されるものではない。要するに、特徴位置とは、画像情報が示すある値のピーク値であり、例えば、画像情報として赤外カメラからの情報が入力される場合、その温度を示すピーク値を特徴位置とすることもできる。あるいは、所定の色を示す値のピーク値を特徴位置とすることも可能である。
【図面の簡単な説明】
【0089】
【図1】本発明の実施の形態の実施例1の動き検出装置を示す全体図である。
【図2】本発明の実施の形態の実施例1の物体検出装置の要部を示すブロック図である。
【図3】本発明の実施の形態の実施例1の物体検出装置のエッジ抽出手段11におけるエッジ抽出を説明する説明図である。
【図4】本発明の実施の形態の実施例1の動き検出装置のエッジ幅規格化手段12における領域規格化処理を説明する説明図であり、(a)は2値化処理を行った特徴領域、(b)は細線化処理を行った特徴領域、(c)は膨張処理を行った特徴領域を示している。
【図5】本発明の実施の形態の実施例1の動き検出装置の投票手段13における投票処理および移動速度検出手段における移動速度算出処理を説明する説明図であり、(a)は時刻tのフレーム、(b)は時刻t+1のフレーム、(c)は時刻t+2のフレームを示している。
【図6】本発明の実施の形態の実施例1の動き検出装置の位置算出手段15におけるエッジピークの位置(重心位置)の求め方を説明する説明図であり、(a)はエッジ抽出手段11で得られる画像情報を示し、(b)はその画像情報に対する投票手段13で投票したカウント値を示している。
【図7】本発明の実施の形態の実施例1の動き検出装置における処理の流れを示すフローチャートである。
【図8】本発明の実施の形態の実施例1の動き検出装置と比較対象となる従来技術におけるエッジの消失を説明する説明図である。
【図9】本発明の実施の形態の実施例1の動き検出装置と比較対象となる従来技術におけるエッジのふらつきを説明する説明図である。
【図10】本発明の実施の形態の実施例1の動き検出装置と従来技術との算出結果を比較する説明図であり、(a)は従来技術の算出結果、(b)は実施例1の算出結果を示している。
【図11】本発明の実施の形態の実施例2の動き検出装置の要部を示すブロック図である。
【符号の説明】
【0090】
1 撮像手段
11 エッジ抽出手段
12 エッジ幅規格化手段
13 投票手段
14 移動速度検出手段
15 位置算出手段
CU コントロールユニット(速度算出手段)
MB 車両
【特許請求の範囲】
【請求項1】
撮像手段で得られた画像情報を連続して入力する入力ステップと、
前記画像情報において速度算出を行う領域を特徴領域として抽出する抽出ステップと、
前記特徴領域の面積を変更する領域規格化ステップと、
前記範囲に含まれる画像上の位置に対応するメモリアドレスの値をカウント値としてカウントアップするとともに、前記範囲外の画像上の位置に対応するメモリアドレスの値をリセットする投票ステップと、
蓄積された隣り合うメモリアドレスの前記カウント値の差に基づいて、前記範囲の移動方向および移動速度を検出する移動速度検出ステップと、
前記範囲に含まれる画像上の位置と前記カウント値とに基づいて前記範囲の重心位置を特徴位置として算出する位置算出ステップと、
を実行することを特徴とする動き検出方法。
【請求項2】
画像を撮像する撮像手段と、
この撮像手段から入力した画像情報中に含まれる領域の移動方向および移動速度を検出する速度検出手段と、
を備えた動き検出装置であって、
前記速度検出手段は、
前記撮像手段から画像情報を連続するフレームとして入力する入力処理と、
前記画像情報において速度算出を行う領域を特徴領域として抽出する抽出処理と、
前記特徴領域を複数の画素に跨る範囲に規格化する領域規格化処理と、
前記範囲に含まれる画像上の位置に対応するメモリアドレスの値をカウント値としてカウントアップするとともに、前記範囲外の画像上の位置に対応するメモリアドレスの値をリセットする投票処理と、
蓄積された前記カウント値の差に基づいて、前記範囲の移動方向および移動速度を検出する移動速度検出処理と、
前記範囲に含まれる画像上の位置と前記カウント値とに基づいて算出される前記範囲の重心位置を特徴位置として算出する位置算出処理と、
を実行することを特徴とする動き検出装置。
【請求項3】
前記抽出処理は、あらかじめ設定した閾値を超える画像濃度値を有する領域を前記特徴領域として抽出することを特徴とする請求項2に記載の動き検出装置。
【請求項4】
前記閾値は、複数画素に跨るように設定されていることを特徴とする請求項3に記載の動き検出装置。
【請求項5】
前記領域規格化処理は、前記抽出処理において抽出された前記特徴領域の重心位置を求め、該重心位置を中心として複数の画素に跨る範囲に該領域を規格化することを特徴とする請求項2〜4のいずれか1項に記載の動き検出装置。
【請求項6】
前記位置算出処理は、前記範囲に含まれる画像上の位置と各位置における前記カウント値との積の総和を各位置における前記カウント値の総和で除算した値を前記範囲の前記重心位置として算出することを特徴とする請求項2〜5のいずれか1項に記載の動き検出装置。
【請求項7】
前記領域規格化処理において、規格化する前記範囲は、速度検出対象の速度に応じて可変処理されることを特徴とする請求項2〜6のいずれか1項に記載の動き検出装置。
【請求項8】
前記連続するフレームのレートが、前記画像上における検出対象の想定される移動速度に基づいて設定されることを特徴とする請求項2〜7のいずれか1項に記載の動き検出装置。
【請求項1】
撮像手段で得られた画像情報を連続して入力する入力ステップと、
前記画像情報において速度算出を行う領域を特徴領域として抽出する抽出ステップと、
前記特徴領域の面積を変更する領域規格化ステップと、
前記範囲に含まれる画像上の位置に対応するメモリアドレスの値をカウント値としてカウントアップするとともに、前記範囲外の画像上の位置に対応するメモリアドレスの値をリセットする投票ステップと、
蓄積された隣り合うメモリアドレスの前記カウント値の差に基づいて、前記範囲の移動方向および移動速度を検出する移動速度検出ステップと、
前記範囲に含まれる画像上の位置と前記カウント値とに基づいて前記範囲の重心位置を特徴位置として算出する位置算出ステップと、
を実行することを特徴とする動き検出方法。
【請求項2】
画像を撮像する撮像手段と、
この撮像手段から入力した画像情報中に含まれる領域の移動方向および移動速度を検出する速度検出手段と、
を備えた動き検出装置であって、
前記速度検出手段は、
前記撮像手段から画像情報を連続するフレームとして入力する入力処理と、
前記画像情報において速度算出を行う領域を特徴領域として抽出する抽出処理と、
前記特徴領域を複数の画素に跨る範囲に規格化する領域規格化処理と、
前記範囲に含まれる画像上の位置に対応するメモリアドレスの値をカウント値としてカウントアップするとともに、前記範囲外の画像上の位置に対応するメモリアドレスの値をリセットする投票処理と、
蓄積された前記カウント値の差に基づいて、前記範囲の移動方向および移動速度を検出する移動速度検出処理と、
前記範囲に含まれる画像上の位置と前記カウント値とに基づいて算出される前記範囲の重心位置を特徴位置として算出する位置算出処理と、
を実行することを特徴とする動き検出装置。
【請求項3】
前記抽出処理は、あらかじめ設定した閾値を超える画像濃度値を有する領域を前記特徴領域として抽出することを特徴とする請求項2に記載の動き検出装置。
【請求項4】
前記閾値は、複数画素に跨るように設定されていることを特徴とする請求項3に記載の動き検出装置。
【請求項5】
前記領域規格化処理は、前記抽出処理において抽出された前記特徴領域の重心位置を求め、該重心位置を中心として複数の画素に跨る範囲に該領域を規格化することを特徴とする請求項2〜4のいずれか1項に記載の動き検出装置。
【請求項6】
前記位置算出処理は、前記範囲に含まれる画像上の位置と各位置における前記カウント値との積の総和を各位置における前記カウント値の総和で除算した値を前記範囲の前記重心位置として算出することを特徴とする請求項2〜5のいずれか1項に記載の動き検出装置。
【請求項7】
前記領域規格化処理において、規格化する前記範囲は、速度検出対象の速度に応じて可変処理されることを特徴とする請求項2〜6のいずれか1項に記載の動き検出装置。
【請求項8】
前記連続するフレームのレートが、前記画像上における検出対象の想定される移動速度に基づいて設定されることを特徴とする請求項2〜7のいずれか1項に記載の動き検出装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2007−257132(P2007−257132A)
【公開日】平成19年10月4日(2007.10.4)
【国際特許分類】
【出願番号】特願2006−78482(P2006−78482)
【出願日】平成18年3月22日(2006.3.22)
【出願人】(000003997)日産自動車株式会社 (16,386)
【Fターム(参考)】
【公開日】平成19年10月4日(2007.10.4)
【国際特許分類】
【出願日】平成18年3月22日(2006.3.22)
【出願人】(000003997)日産自動車株式会社 (16,386)
【Fターム(参考)】
[ Back to top ]