(57)【特許請求の範囲】
【請求項１】
撮像手段で得られた画像情報を連続して入力する入力ステップと、
前記画像情報において速度算出を行う領域を特徴領域として抽出する抽出ステップと、
前記特徴領域を複数の画素に跨る範囲に規格化する領域規格化ステップと、
前記範囲に含まれる画像上の画素の位置に対応するメモリアドレスの値をカウント値としてカウントアップするとともに、前記範囲外の画像上の画素の位置に対応するメモリアドレスの値をリセットする投票ステップと、
前記範囲内の各メモリアドレスに蓄積された各カウント値の大小関係により前記特徴領域の移動方向を検出するとともに、各カウント値の差に基づくカウント値勾配から前記特徴領域の移動速度を検出する移動速度検出ステップと、
前記範囲に含まれる画像上の画素の位置と前記カウント値とに基づいて前記範囲の重心位置を特徴位置として算出する位置算出ステップと、
を実行することを特徴とする動き検出方法。
【請求項２】
画像を撮像する撮像手段と、
この撮像手段から入力した画像情報中に含まれる領域の移動方向および移動速度を検出する速度検出手段と、
を備えた動き検出装置であって、
前記速度検出手段は、
前記撮像手段から画像情報を連続するフレームとして入力する入力処理と、
前記画像情報において速度算出を行う領域を特徴領域として抽出する抽出処理と、
前記特徴領域を複数の画素に跨る範囲に規格化する領域規格化処理と、
前記範囲に含まれる画像上の画素の位置に対応するメモリアドレスの値をカウント値としてカウントアップするとともに、前記範囲外の画像上の画素の位置に対応するメモリアドレスの値をリセットする投票処理と、
前記範囲内の各メモリアドレスに蓄積された各カウント値の大小関係により前記特徴領域の移動方向を検出するとともに、各カウント値の差に基づくカウント値勾配から前記特徴領域の移動速度を検出する移動速度検出処理と、
前記範囲に含まれる画像上の画素の位置と前記カウント値とに基づいて算出される前記範囲の重心位置を特徴位置として算出する位置算出処理と、
を実行することを特徴とする動き検出装置。
【請求項３】
前記抽出処理は、あらかじめ設定した閾値を超える画像濃度値を有する領域を前記特徴領域として抽出することを特徴とする請求項２に記載の動き検出装置。
【請求項４】
前記閾値は、複数画素に跨るように設定されていることを特徴とする請求項３に記載の動き検出装置。
【請求項５】
前記領域規格化処理は、前記抽出処理において抽出された前記特徴領域の重心位置を求め、該重心位置を中心として複数の画素に跨る範囲に該領域を規格化することを特徴とする請求項２〜４のいずれか１項に記載の動き検出装置。
【請求項６】
前記位置算出処理は、前記範囲に含まれる画像上の位置と各位置における前記カウント値との積の総和を各位置における前記カウント値の総和で除算した値を前記範囲の前記重心位置として算出することを特徴とする請求項２〜５のいずれか１項に記載の動き検出装置。
【請求項７】
前記領域規格化処理において、規格化する前記範囲は、速度検出対象の速度に応じて可変処理されることを特徴とする請求項２〜６のいずれか１項に記載の動き検出装置。
【請求項８】
前記連続するフレームのレートが、前記画像上における検出対象の想定される移動速度に基づいて設定されることを特徴とする請求項２〜７のいずれか１項に記載の動き検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、連続する画像に含まれる対象物を検出して、この対象物の移動速度、移動方向および位置を検出する動き検出方法および動き検出装置に関する。
【背景技術】
【０００２】
近年、カメラなどの撮像手段により撮像した画像中の対象物の速度や移動方向などを検出する動き検出装置が提案されている。
【０００３】
また、このような動き検出装置として、車両に搭載されて車両前方の先行車両や道路の白線などの周辺画像を認識する装置が知られている（例えば、特許文献１参照）。
【０００４】
この従来技術は、撮像された画像情報から、先行車両の外郭や白線の外側縁のように輝度が変化するエッジを抽出し、連続するフレームにおけるエッジの位置の変化に基づいてオプティカルフローを算出し、対象物の速度を算出するようにしている。
【０００５】
このオプティカルフローの検出方法としては、フレーム間で対応点を決定して動きベクトルを求める相関法や、各点の明るさの空間的および時間的な勾配の関係を求める勾配法などの手法が一般に利用される。
【特許文献１】特開２００３−６７７５２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述の従来技術では、エッジのオプティカルフローを求めるにあたり以下に述べる問題があった。
【０００７】
まず、相関法を用いた場合は、処理手順は比較的簡単であるが、注目する領域の周りに相関値を算出する領域を設け、フレーム間で、領域内輝度の相関値を計算するため、ブロックマッチング処理が必要となる。このため、計算量が膨大となって処理時間が長くなるという問題がある。
【０００８】
すなわち、ブロックマッチングを用いた手法では、１ピクセル単位よりも小さなサブピクセル以下の画素群を使用してエッジの詳細な位置情報を算出するには、登録したテンプレートである画素群データを、注目位置を中心に、その周囲に所定量だけずらしながら算出した複数の相関値を高次曲線で補完し、その極値を与える位置を算出することによって動きを推定する。このため、計算量が膨大となってしまう。よって、単純な計算で正確にエッジの位置を検出することが難しかった。
【０００９】
また、勾配法を用いた場合には、画像の輝度変化に弱く、処理手順が複雑であるという問題点がある。
【００１０】
そこで、本発明は、より少ないデータ量で、かつ比較的簡単な処理手順を用いることで、画像中からの移動速度成分の検出およびエッジなどの特徴量を表す画像情報の画像上の座標位置（以下、特徴位置と呼ぶ）の検出を、高速に処理可能であるとともに検出精度を向上可能な動き検出方法および動き検出装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明は、上述の事情に鑑みなされたもので、撮像手段で得られた前記画像情報において速度算出を行う領域を特徴領域として抽出する抽出ステップと、前記特徴領域を複数の画素に跨る範囲に規格化する領域規格化ステップと、前記範囲に含まれる画像上の画素の位置に対応するメモリアドレスの値をカウント値としてカウントアップするとともに、前記範囲外の画像上の画素の位置に対応するメモリアドレスの値をリセットする投票ステップと、前記範囲内の各メモリアドレスに蓄積された各カウント値の大小関係により前記特徴領域の移動方向を検出するとともに、各カウント値の差に基づくカウント値勾配から前記特徴領域の移動速度を検出する移動速度検出ステップと、前記範囲に含まれる画像上の画素の位置と前記カウント値とに基づいて前記範囲の重心位置を特徴位置として算出する位置算出ステップと、を実行することを特徴とする動き検出方法である。
【発明の効果】
【００１２】
本発明では、算出する領域を抽出して面積を変更した範囲で行ったカウントアップによるカウント値に基づいて移動方向、速度、位置を算出するため、より少ないデータ量かつ比較的簡単な手順で処理が可能で、高速で処理が可能であり、しかも、サブピクセルレートの高い精度で特徴位置を算出することもできる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施の形態を図面に基づいて説明する。
この実施の形態の物体検出装置は、画像を撮像する撮像手段（１）と、この撮像手段（１）から入力した画像情報中に含まれる領域の移動方向および移動速度を検出する速度検出手段（ＣＵ）と、を備えた動き検出装置であって、前記速度検出手段（ＣＵ）は、前記撮像手段から画像情報を連続するフレームとして入力する入力処理と、前記画像情報において速度算出を行う領域を特徴領域として抽出する抽出処理と、前記特徴領域を複数の画素に跨る範囲に規格化する領域規格化処理と、前記範囲に含まれる画像上の画素の位置に対応するメモリアドレスの値をカウント値としてカウントアップするとともに、前記範囲外の画像上の画素の位置に対応するメモリアドレスの値をリセットする投票処理と、前記範囲内の各メモリアドレスに蓄積された各カウント値の大小関係により前記特徴領域の移動方向を検出するとともに、各カウント値の差に基づくカウント値勾配から前記特徴領域の移動速度を検出する移動速度検出処理と、前記範囲に含まれる画像上の画素の位置と前記カウント値とに基づいて算出される前記範囲の重心位置を特徴位置として算出する位置算出処理と、を実行することを特徴とする動き検出装置である。
【実施例１】
【００１４】
図１〜図１０に基づいて本発明の最良の実施の形態の実施例１の物体検出装置について説明する。
【００１５】
実施例１の物体検出装置は、図１に示すように、車両ＭＢに搭載されており、撮像手段１を備えている。
【００１６】
撮像手段１は、例えば、車室内の図示を省略したルームミラーの近傍位置に搭載されている。この撮像手段１としては、ＣＣＤ（Charge Coupled Devices）やＣＭＯＳ（Complementary Metal Oxide Semiconductor）などの撮像素子を用いた輝度画像を撮像するカメラを用いることができ、画像を撮像し、この画像を一定間隔ごとにフレームとして取り出す連続処理を行う。
【００１７】
撮像手段１で得られた情報は、コントロールユニットＣＵに入力される。なお、コントロールユニットＣＵは、ＲＡＭ（Random Access Memory），ＲＯＭ（Read Only Memory），ＣＰＵ（Central Processing Unit）などを備えた周知のものである。
【００１８】
コントロールユニットＣＵは、撮像手段１で得られた画像の中から特徴領域としてのエッジを抽出し、このエッジの移動方向、速度、位置を算出する処理を行う。そこで、以下説明するにあたり、特徴領域のことをエッジと称する。
【００１９】
図２は、コントロールユニットＣＵにおける上記処理機能を概念的に表すブロック図であって、エッジ抽出手段１１、エッジ幅規格化手段１２、投票手段１３、移動速度検出手段１４、位置算出手段１５を備えている。
【００２０】
エッジ抽出手段１１は、撮像手段１により撮像された画像から、ＳｏｂｅｌフィルタやＰｒｅｗｉｔｔフィルタなどによって、エッジとして認識された画素と、エッジとして認識されない画素とからなるエッジ画像を作成する抽出処理を実行する。
【００２１】
エッジ幅規格化手段１２は、エッジ抽出手段１１により得られたエッジ画像中のエッジ幅を所定の画素数に規格化する領域規格化処理を実行する。
【００２２】
投票手段１３は、エッジ幅規格化手段１２により規格化されたエッジが何フレーム連続して観測されたかの情報をストアする投票処理を実行する。すなわち、規格化されたエッジが観測された画像上の位置に対応するメモリアドレスの値をカウントアップする一方、現フレームにおいてエッジが観測されなかった位置に対応するメモリアドレスの値をリセットする。
【００２３】
移動速度検出手段１４は、投票手段１３にストアされた値と、各値の差が示す勾配とに基づき、抽出されたエッジの画像上移動方向・移動速度・位置を算出する移動速度検出処理および位置算出処理を実行する。
【００２４】
次に、上述したエッジ抽出手段１１、エッジ幅規格化手段１２、投票手段１３、移動速度検出手段１４が行う各処理について、さらに詳細に説明する。
【００２５】
まず、エッジ抽出手段１１が実行する抽出処理とは、撮像手段１から得られた図３に示すようなエッジの濃度情報の中から閾値Ｔｈｌｏｗよりも濃度値が高い特徴領域（速度を算出する領域）Ｒ０を抽出する処理である。ここで、閾値Ｔｈｌｏｗは、従来用いられていた閾値Ｔｈｏｒｇよりも充分に低い値に設定されている。
【００２６】
一般に、速度が計測できる領域を多くするためになるべく多くのエッジを抽出しようとすると、領域規格化処理において、エッジ幅を膨張させた際に隣接するエッジどうしが重なり合ってしまい、正確な速度が算出できなくなる。そこで、隣接するエッジが重なり合う現象を回避するためには、エッジの密度を抑える必要があり、このため、エッジと判定するための閾値Ｔｈｏｒｇを比較的高く設定する必要がある。
【００２７】
これに対し、本実施例では、後述する領域規格化処理において、重心位置をエッジピーク（後述）とするようにしたため、エッジ抽出用の閾値Ｔｈｌｏｗは、常に、複数の幅のエッジを抽出できることができるように従来と比較して低い値に設定している。
【００２８】
次に、図４によりエッジ幅規格化手段１２における領域規格化処理を説明する。
この領域規格化処理は、エッジ抽出手段１１から出力されるエッジ画像（特徴領域Ｒ０）の特徴位置を検出し、その特徴位置を中心に所定幅（本実施例１では、３画素）の幅を持たせた２値画像を生成する処理である。なお、本実施例では、特徴位置とは、検出された複数のエッジの重心位置であり、これを以下エッジピークと称する。
【００２９】
図３に示すように、エッジ抽出手段１１から出力されるエッジは複数存在し、ある幅を有しているとともにその濃度値が異なっている。そこで、領域規格化処理では、この複数のエッジにおけるエッジピーク（図においてｘ＝ｘ０の位置）を検出し、このエッジピークｘ０において、図４（ｂ）に示すように、１画素の幅に細線化する細線化処理と、このエッジピークｘ０を中心に、３画素の幅に拡げる膨張処理とを実行する。
【００３０】
すなわち、細線化処理では、まず、図３に示すようにエッジ抽出手段１１で抽出された特徴領域Ｒ０の画像情報を、図４（ａ）に示すように２値化する。
【００３１】
さらに、特徴領域Ｒ０に含まれる位置（座標）ｘにおけるエッジ濃度値Ｉ（ｘ）を用い、下記（１）の重心計算を行うことで、エッジピークｘ０を規定し、この規定したエッジピークｘ０の位置で１画素のエッジを形成する。
ｘ０＝［ΣＩ（ｘ）・ｘ］／ΣＩ（ｘ）・・・（１）
ここで、Σはｘ∈Ｒ０の範囲の総和を示す。
【００３２】
なお、上記（１）式で得られたエッジピークｘ０において、小数点以下は四捨五入、切り上げ、切り捨てのいずれでもよいが、本実施例では、切り捨てとする。
【００３３】
次に、膨張処理を説明する。
膨張処理は、図４（ｂ）に示しように細線化された１画素の幅のエッジを、図４（ｃ）に示すように、エッジピークｘ０を中心とした所定の幅±ｎに拡げる処理であり、本実施例では、ｎ＝１として３画素に拡げる。すなわち、エッジピークｘ０の両側の位置ｘ０−１および位置ｘ０＋１の画素をアクティブにする。
【００３４】
このようにエッジ幅規格化手段１２では、エッジ抽出手段１１から出力されるエッジ画像から、画素数すなわち面積を変更してエッジ幅が所定幅（３画素幅）に統一された２値のエッジ画像が生成される。
【００３５】
次に、投票手段１３における投票処理について図５により説明する。なお、説明の簡略化を図るために、エッジは、ｘ軸１次元方向に移動するものとする。また、エッジ位置に対応するメモリアドレスの値のカウントアップは＋１ずつされるものとし、メモリアドレスは、１画素を１単位として設定されているものとして説明する。
【００３６】
この投票処理は、エッジ幅規格化手段１２により所定の幅（３画素幅）に形成したエッジに基づいて、エッジが観測された位置（図ではｘ０−１，ｘ０，ｘ０＋１）で、その位置に対応するメモリアドレスの値のカウントアップを行い、エッジが観測されない位置は、メモリアドレスの値を「０」にリセットする。
【００３７】
これについて順を追って説明すると、まず、図５（ａ）に示す時刻ｔにおいて、エッジ幅規格化手段１２から３画素に広げられたエッジが取得される。このエッジは、図示のように、ｘ＝ｘ０を中心として配置されている。そこで、この時刻ｔでは、エッジが観測されるそれぞれの位置（座標）ｘ０−１，ｘ０，ｘ０＋１においてメモリアドレスの値のカウントアップを行う。
【００３８】
この図５（ａ）の例では、位置ｘ０−１のメモリアドレスのカウント値は「５」となり、位置ｘ０のメモリアドレスのカウント値が「３」となり、位置ｘ０＋１のメモリアドレスのカウント値が「１」となる。
【００３９】
次に、図５（ｂ）に示す時刻ｔ＋１では、エッジが移動していないため、再び、位置（座標）ｘ０−１，ｘ０，ｘ０＋１においてメモリアドレスの値のカウントアップを行う。そこで、図５（ｂ）に示す時刻ｔ＋１では、位置ｘ０−１のメモリアドレスのカウント値は「６」となり、位置ｘ０のメモリアドレスのカウント値が「４」となり、位置ｘ０＋１のメモリアドレスのカウント値が「２」となる。
【００４０】
次に、図５（ｃ）に示す時刻ｔ＋２では、エッジがｘ軸の正方向に１画素シフトしている。この場合、エッジが検出された位置ｘ０，ｘ０＋１，ｘ０＋２のメモリアドレスの値をカウントアップし、エッジが観測された以外の位置のメモリアドレスの値を「０」にリセットする。そこで、この時刻ｔ＋２では、この例では、位置ｘ０−１のメモリアドレスのカウント値は「０」となり、位置ｘ０のメモリアドレスのカウント値が「５」となり、位置ｘ０＋１のメモリアドレスのカウント値が「３」となり、位置ｘ０＋２のメモリアドレスのカウント値が「１」となる。一方、それ以外の位置ｘ０−１を含む位置のメモリアドレスのカウント値は「０」にリセットされる。
【００４１】
次に、移動速度検出手段１４における移動速度検出処理について説明する。
この移動速度検出手段１４では、投票手段１３において、図５（ｃ）に示すようにカウントアップした３画素分のカウント値を用いて移動方向におけるカウント値の傾きを算出し、この傾きがエッジの移動速度の逆数となることに基づいて移動速度を求める。
【００４２】
すなわち、特徴領域（エッジ）が移動する速度に比べ、フレームレートが十分高い場合には、連続するフレーム間で観測されるエッジは、必ず重複する領域を有する。例えば、図５に示しているケースでは、時刻ｔ＋１と時刻ｔ＋２とで２画素幅で重複している。ちなみに、本実施例１では、検出対象のダイナミクスを１００Ｈｚ程度と想定し、フレームレートを１０００ｆｐｓとしている。
【００４３】
このようにエッジが観測されたｘ座標の位置に対応するメモリアドレスのカウント値をカウントアップしていくことで、カウント値は、エッジが同じ位置に観測されている時間と等価となる。また、エッジが移動した場合は、新たにエッジが観測された位置のカウント値が１となり、観測されたエッジの中では最も小さな値となる。つまり、エッジが移動する方向のカウント値は小さく、一方、エッジが移動する方向と反対方向のエッジのカウント値は大きくなる。
【００４４】
したがって、このカウント値の差、言い換えると、カウント値の勾配は、エッジが移動するまでに、何フレーム連続して同じ位置にエッジが観測されていたかを計数した値であり、このカウント値勾配より、エッジの移動速度を算出することができる。
【００４５】
すなわち、図５に示す例では、図５（ｂ）では、位置（座標）ｘ０−１，ｘ０，ｘ０＋１のメモリアドレスのカウント値がそれぞれ６，４，２であり、エッジは、位置（座標）ｘ０−１，ｘ０，ｘ０＋１で観測される前に、６−２＝４フレーム連続して位置（座標）ｘ０−２，ｘ０−１，ｘ０で観測されていたことを示す。この結果から、注目しているエッジは４フレームで１画素を移動していると判断することができる。また、位置（座標）ｘ０＋１のカウント値＝２より、位置（座標）ｘ０−１，ｘ０，ｘ０＋１で２フレーム連続して観測されていることが示されている。
【００４６】
そこで、図５（ａ）〜（ｃ）の例では、エッジは、４フレームで１画素ずつ移動し、時刻ｔ＋１の時点では、２フレーム連続して観測されていることより、時刻ｔ＋１では、２フレーム／｛４フレーム／１画素｝＝０．５画素だけ位置ｘ０からシフトしていると算出することができる。
【００４７】
このように、移動速度検出手段１４では、入力画像内の対象物のエッジのカウント値の勾配から、画像上における対象物の移動速度を求めることができる。また、この移動速度の変化から、画像上における対象物の加速度を求めることもできる。
【００４８】
次に、位置算出手段１５におけるエッジ位置の位置算出処理を説明する。
この位置算出処理は、図５で説明したエッジが観測された位置（ｘ０−１，ｘ０，ｘ０＋１，ｘ０＋２など）を処理領域Ｓとし、この処理領域Ｓにおける各位置におけるカウント値Ｃ（ｘ）を荷重として、カウント値Ｃ（ｘ）と位置の積の総和を、各位置におけるカウント値Ｃ（ｘ）の総和で除算して得られた重心位置（平均値）からエッジピークの位置（特徴位置）ｘｅｄｇｅを算出する処理である。すなわち、エッジピークの位置ｘｅｄｇｅを、下記（２）式により算出する。
ｘｅｄｇｅ-＝（ΣＣ（ｘ）・ｘ）／ΣＣ（ｘ）・・・（２）
なお、この（２）式において、Σはｘ∈Ｓの範囲の総和である。
【００４９】
この位置算出処理の具体例を、図６により説明する。すなわち、図６に示す例では、時刻ｔでエッジが観測される処理領域Ｓにおける３画素の位置ｘｔ−１，ｘｔ，ｘｔ＋１において、それぞれ、カウント値Ｃ（ｘｔ−１）＝１５，Ｃ（ｘｔ）＝９，Ｃ（ｘｔ＋１）＝３がカウントされている。
【００５０】
そこで、この例では、
ΣＣ（ｘ）・ｘ＝１５（ｘｔ−１）＋９（ｘｔ）＋３（ｘｔ＋１）
ΣＣ（ｘ）＝１５＋９＋３＝２７
また、ｘｔ−１＝ｘｔ−１、ｘｔ＋１＝ｘｔ＋１
であるから、ｘｅｄｇｅ＝ｘｔ−（１２／２７）となる。
【００５１】
こうして得られたエッジピークの位置ｘｅｄｇｅの小数点以下は、四捨五入、切り上げ、切り捨てのいずれでもよいが、本実施例では、切り捨てとしている。したがって、この例の場合には、エッジピークの位置ｘｅｄｇｅ＝ｘｔとなる。
【００５２】
移動速度検出手段１４および位置算出手段１５は、上記のようにして得られたエッジの移動方向、移動速度、およびエッジピークの位置ｘｅｄｇｅを、運転支援装置などに出力する。
【００５３】
次に、以上説明したコントロールユニットＣＵにおける移動速度検出処理および位置算出処理に至る処理の流れを図７のフローチャートにより簡単に説明する。
【００５４】
ステップＳ１では、エッジ抽出処理を行う。すなわち、エッジ抽出手段１１において図３に示すようにエッジ画像から濃度値が閾値Ｔｈｌｏｗ以上のエッジを抽出する。
【００５５】
ステップＳ２では、領域規格化処理を実行する。すなわち、ステップＳ１において抽出したエッジに対し、まず、エッジ幅規格化手段１２により細線化処理を行う。この細線化処理では、エッジ濃度値ｌ（ｘ）を用いた重心計算を行うことで、図４（ｂ）に示すように、エッジピークの位置ｘ０の１画素の幅に細線化する。さらに、エッジ幅規格化手段１２により膨張処理を行うことで、図４（ｃ）に示すように、エッジピークの位置ｘ０を中心とした所定幅（本実施例では３画素幅）のエッジを規定する。
【００５６】
ステップＳ３では、投票処理を実行する。すなわち、投票手段１３では、ステップＳ２で規定された処理領域Ｓの各位置（ｘ座標）に対応する各メモリアドレスの値に対し、図５で示したように「＋１」を投票（カウントアップ）し、一方、処理領域Ｓの外の位置（ｘ座標）に対応するメモリアドレスの値は、「０」にリセットする。
【００５７】
ステップＳ４では、移動速度算出処理を実行する。すなわち、移動速度検出手段１４では、投票手段１３において、図５に示すようにカウントアップした３画素分のカウント値の差（勾配）に基づいてエッジの移動方向および移動速度を求める。
【００５８】
ステップＳ５では、エッジピークの位置（特徴位置）ｘｅｄｇｅを求める算出処理を実行する。すなわち、位置算出手段１５において、図６に示す処理領域Ｓにおける各位置のカウント値Ｃ（ｘ）を荷重として、処理領域Ｓに含まれる各位置とその位置におけるカウント値Ｃ（ｘ）との積の総和を、各位置におけるカウント値Ｃ（ｘ）の総和で除算して得られた重心位置をエッジピークの位置ｘｅｄｇｅとして算出する。
【００５９】
次に、実施例の作用を説明する。
前述したように、従来は、エッジと判定するための閾値Ｔｈｏｒｇを比較的高く設定していた。このように閾値Ｔｈｏｒｇが比較的に高く設定されている場合、エッジ位置がふらつくことがある。すなわち、従来、有意なエッジか否かの判定をするための閾値Ｔｈｏｒｇは、一般的には画像に重畳されるノイズレベルによって決定される。ノイズレベルよりも十分に閾値Ｔｈｏｒｇを高くすることによって、エッジを比較的安定的に検出することが可能となる。
【００６０】
しかしながら、このように閾値Ｔｈｏｒｇをノイズレベルよりも十分に高くすると、コントラストが低い部分のエッジが検出できなくなるという問題や、エッジがふらつくという問題が生じる。
【００６１】
このエッジのふらつきの原因について説明する。すなわち、図８に示すように、閾値Ｔｈｏｒｇが比較的高い場合、エッジが画素間を遷移する際に、同図（ｂ）に示すように、濃度値Ｉが閾値Ｔｈｏｒｇ未満となると、エッジが消失する。
【００６２】
あるいは、撮像手段１からコントロールユニットＣＵへ画像データが転送される過程において、スイッチングノイズや熱雑音などのノイズが重畳された場合に、濃度値（強度）Ｉが閾値Ｔｈｏｒｇを超えると、その部位にエッジが観測されることになる。ノイズは基本的にランダムに発生するため、エッジが画素間をｘ座標正の方向に遷移している場合に、図９に示すように、エッジが検出されている位置ｘ０と、位置ｘ０に隣接する位置ｘ０＋１とにこのようなノイズが重畳されると、位置ｘ０と位置ｘ０＋１においてフレームごとにランダムにエッジが観測されることがある。
【００６３】
このようなエッジの消失やランダムなエッジの観測により、エッジのふらつきという現象が生じる。
【００６４】
このようにエッジがふらついた場合、一度エッジが消失すると、それまで蓄積されていたカウント値はリセットされ、再びエッジが検出された時点から再度投票処理が行われ、カウント値が所定値以上計測された後に速度が計測される。
【００６５】
このため、エッジの有意性を判断する閾値Ｔｈｏｒｇ付近の強度を有するエッジは、その速度を計測できないか、もしくは正確な速度が計測できなくなる場合がある。また、このように速度を計測できない部位が生じることで、速度を検出できる領域が減少する。
【００６６】
それに対して、本実施例では、エッジ抽出手段１１において、従来の閾値Ｔｈｏｒｇよりも充分に低い閾値Ｔｈｌｏｗを設定して、広い特徴領域Ｒ０のエッジを抽出するようにしたため、前述したようなエッジの消失やランダムなエッジの観測が無くなり、エッジのふらつきを防止することができる。
【００６７】
しかも、エッジ幅規格化手段１２において、エッジ幅を細分化するにあたり、特徴領域Ｒ０のエッジの重心位置を算出するようにしているため、エッジにノイズが重畳されていても特徴領域Ｒ０のエッジピークを高い精度で算出できる。
【００６８】
これにより、正確な移動速度の算出が可能となるとともに、速度を検出する領域の増加を図ることができる。
【００６９】
さらに、本実施例では、位置算出手段１５において投票手段１３で投票したカウント値を用いてエッジピークの位置ｘｅｄｇｅを算出するようにしているため、エッジ幅規格化手段１２において±ｎ（本実施例ではｎ＝１）の幅のエッジを形成していても、高い精度でエッジピークの位置ｘｅｄｇｅを算出することができる。
【００７０】
この効果を説明するにあたり、まず、カウント値が持つ意味について説明する。
ａ） 滞留時間
カウント値は、エッジが観測された位置で、エッジが観測されるごとに所定値（本実施例では＋１で説明）だけ増加され、一方、エッジが観測されなかった位置のカウント値を「０」にリセットされる。一定間隔の時間でこの処理が行われる場合、カウント値の差（勾配）は、エッジが当該画素位置に存在していた時間的な長さを表すことになる。さらに、カウント値の勾配の符号は、エッジが移動する方向を表している。
【００７１】
ｂ）エッジの確からしさ（信頼性）
連続するフレームで定常的に観測されるエッジの位置に相当するメモリアドレスのカウント値は、時間経過に比例して大きくなり、逆にノイズのように一時的にしか観測されないエッジの位置に相当するメモリアドレスのカウント値は、時間経過に比例して大きくはならない。例えば、ショットノイズのように、時間的に連続して取得されるフレーム中のあるフレームにだけ出現するようなエッジは、そのエッジの観測されたメモリアドレスのカウント値の変化は離散的となる。このように、カウント値は、ある所定期間におけるエッジ存在の確からしさを意味している。
【００７２】
エッジが移動する速度が異なる場合、例えば、エッジ移動速度が遅い場合と、エッジ移動速度が速い場合とでは、メモリアドレスのカウント値のプロファイル（傾きの大きさ）が異なる。しかし、どちらの場合も、メモリアドレスのカウント値が持つ意味は、上述の確からしさに変わりなく、つまり、一時的なノイズによりエッジが検出された位置のメモリアドレスのカウント値は小さく、逆に有意なエッジが検出された位置のメモリアドレスのカウント値は大きくなる。
【００７３】
具体的には、前述した図６に示すように、位置ｘｔ−１のメモリアドレスのカウント値Ｃ（ｘｔ−１）が大きい場合、位置ｘｔ−１にエッジが存在している可能性が高い。つまり、統一されたエッジ幅の範囲において、エッジ位置はカウント値が高い位置ほど信頼性が高く、カウント値が低いところはノイズなどによって一時的に観測されたエッジである可能性もある。逆にいうと、カウント値が大きい位置は、当該エッジが存在している可能性が高く、またカウント値が小さい位置は、当該エッジが存在している可能性が低いことになる。このように、カウント値はエッジが存在しているか否かの信頼性を表していることとなる。
【００７４】
よって、このカウント値を荷重として、エッジを規格化する幅における各位置とカウント値との積の総和を算出し、各カウント値の総和で除算して重心位置（平均値）を求めることにより、エッジが存在する確からしさを含んだエッジ位置を算出することができる。
【００７５】
このように、カウント値を荷重とする総和から算出したエッジ位置は、誤差が生じたとしても、所定画素幅（本実施例では３画素幅）の処理領域Ｓ内に存在しているため、エッジ幅／２の誤差しか持たない。つまり、誤差の最大値Ｅｒｒｍａｘはエッジ幅／２である。例えば、本実施例のように、エッジ幅を３画素幅に規格化した場合、Ｅｒｒｍａｘ＝１．５画素となり、エッジ位置の誤差を極めて小さくすることが可能となる。
【００７６】
以上説明したように、本実施例１では、エッジ（特徴領域）を抽出して規格化した範囲で行ったメモリアドレスのカウントアップによるカウント値に基づいて移動方向、速度、位置を算出するため、より少ないデータ量かつ比較的簡単な手順で処理が可能であり、高速で処理が可能である。しかも、１ピクセルレート未満のサブピクセルレートの高い精度でエッジピークの位置（特徴位置）を算出することもできる。
【００７７】
図１０は、従来と本実施例との比較例であり、（ａ）は従来の閾値Ｔｈｏｒｇを用いて得られたエッジを示し、（ｂ）は本実施例の閾値Ｔｈｌｏｗを用いて得られたエッジを示している。この図に示すように、本実施例では、エッジの検出部位が増えているのが分かる。特に、図においてＥ１，Ｅ２の矢印で示す部分などにおいて、本実施例の効果が顕著である。
【実施例２】
【００７８】
次に、図１１に基づいて本発明の実施例２の動き検出装置について説明する。なお、この実施例２を説明するにあたり、前記実施例１と同一ないし均等な部分については、説明を省略し、相違する部分を中心として説明する。
【００７９】
この実施例２の動き検出装置では、エッジ幅規格手段２１２は、移動速度検出手段１４で算出した移動速度を入力し、この速度に応じて、膨張処理において幅を拡げるｎの値を変更するようにしている。
【００８０】
すなわち、膨張処理では、細線化された１画素の幅のエッジを、エッジピークｘ０を中心とした所定の幅±ｎに拡げる処理を実行するが、このｎの値を、検出した移動速度が高いときには、ｎを２以上に大きくする。
【００８１】
したがって、実施例２の動き検出装置によれば、検出対象の移動速度が相対的に高い場合には、膨張させるエッジの幅が広がるので、連続するフレーム間で、対象となるエッジが常に重なりを有するようにできる。
【００８２】
すなわち、同一の位置において確実に複数回のカウントが成されるようにして、カウント値が有するエッジの確からしさを得ることができ、移動速度の検出精度を高く保持できる。
【００８３】
これにより、移動速度が高くなっても、検出精度が高くなり、移動速度を算出できるレンジが拡がるという効果が得られる。
【００８４】
以上、図面を参照して、本発明の実施の形態および実施例１および実施例２を詳述してきたが、具体的な構成は、この実施の形態および実施例１および実施例２に限らず、本発明の要旨を逸脱しない程度の設計的変更は、本発明に含まれる。
【００８５】
例えば、実施例１，２では、車両に搭載した例を示したが、車両以外にも、船舶、航空機、ロボット、観測装置などの他の機器に適用することができる。
【００８６】
また、実施例１，２では、検出対象のダイナミクスを１００Ｈｚと想定して、フレームレートを１０００ｆｐｓとした例を示したが、フレームレートは、これに限定されるものではなく、検出対象のダイナミクスに対して、十分速いフレームレートを有することが好ましい。
【００８７】
また、実施例１，２では、エッジが水平方向へ移動する例を示したが、このエッジの移動方向は水平方向へ限定されるものではなく、例えば、上下方向およびその複合方向へ移動する場合も同様にして移動速度を算出することができる。
【００８８】
また、実施例１，２では、特徴位置として、エッジのピークを示したが、これに限定されるものではない。要するに、特徴位置とは、画像情報が示すある値のピーク値であり、例えば、画像情報として赤外カメラからの情報が入力される場合、その温度を示すピーク値を特徴位置とすることもできる。あるいは、所定の色を示す値のピーク値を特徴位置とすることも可能である。
【図面の簡単な説明】
【００８９】
【図１】本発明の実施の形態の実施例１の動き検出装置を示す全体図である。
【図２】本発明の実施の形態の実施例１の物体検出装置の要部を示すブロック図である。
【図３】本発明の実施の形態の実施例１の物体検出装置のエッジ抽出手段１１におけるエッジ抽出を説明する説明図である。
【図４】本発明の実施の形態の実施例１の動き検出装置のエッジ幅規格化手段１２における領域規格化処理を説明する説明図であり、（ａ）は２値化処理を行った特徴領域、（ｂ）は細線化処理を行った特徴領域、（ｃ）は膨張処理を行った特徴領域を示している。
【図５】本発明の実施の形態の実施例１の動き検出装置の投票手段１３における投票処理および移動速度検出手段における移動速度算出処理を説明する説明図であり、（ａ）は時刻ｔのフレーム、（ｂ）は時刻ｔ＋１のフレーム、（ｃ）は時刻ｔ＋２のフレームを示している。
【図６】本発明の実施の形態の実施例１の動き検出装置の位置算出手段１５におけるエッジピークの位置（重心位置）の求め方を説明する説明図であり、（ａ）はエッジ抽出手段１１で得られる画像情報を示し、（ｂ）はその画像情報に対する投票手段１３で投票したカウント値を示している。
【図７】本発明の実施の形態の実施例１の動き検出装置における処理の流れを示すフローチャートである。
【図８】本発明の実施の形態の実施例１の動き検出装置と比較対象となる従来技術におけるエッジの消失を説明する説明図である。
【図９】本発明の実施の形態の実施例１の動き検出装置と比較対象となる従来技術におけるエッジのふらつきを説明する説明図である。
【図１０】本発明の実施の形態の実施例１の動き検出装置と従来技術との算出結果を比較する説明図であり、（ａ）は従来技術の算出結果、（ｂ）は実施例１の算出結果を示している。
【図１１】本発明の実施の形態の実施例２の動き検出装置の要部を示すブロック図である。
【符号の説明】
【００９０】
１     撮像手段
１１   エッジ抽出手段
１２   エッジ幅規格化手段
１３   投票手段
１４   移動速度検出手段
１５   位置算出手段
ＣＵ   コントロールユニット（速度算出手段）
ＭＢ   車両
【図１】
0004696991.tif 000002
【図２】
0004696991.tif 000003
【図３】
0004696991.tif 000004
【図４】
0004696991.tif 000005
【図５】
0004696991.tif 000006
【図６】
0004696991.tif 000007
【図７】
0004696991.tif 000008
【図８】
0004696991.tif 000009
【図９】
0004696991.tif 000010
【図１０】
0004696991.tif 000011
【図１１】
0004696991.tif 000012