(57)【特許請求の範囲】
【請求項１】
特徴点の移動を検出する装置であって、
入力されたデータから特徴点を検出する特徴点検出部と、
前記特徴点検出部にて検出された特徴点を通り、かつ、その特徴点を検出したタイミングに基づいて決定される傾きを有する直線を求める直線算出部と、
異なるタイミングに検出された特徴点について、前記直線算出部にて算出した直線を記憶しておくメモリと、
前記直線算出部にて算出した直線を前記メモリに書き込む書込制御部と、
前記メモリに記憶された複数の直線の交差状態に基づいて、異なるタイミングに検出された複数の前記特徴点の対応を求め、前記特徴点の移動を検出する移動検出部と、
を備える特徴点移動検出装置。
【請求項２】
前記メモリは、前記直線を規定する所定の座標系の各座標に対応するカウンタを準備しておき、
前記書込制御部は、前記直線算出部にて算出された直線を構成する各点の座標に対応するカウンタをカウントアップし、
前記移動検出部は、前記メモリの各座標に対応するカウンタの値に基づいて直線の交差状態を求める、
請求項１に記載の特徴点移動検出装置。
【請求項３】
前記メモリは、複数の領域を有し、
前記書込制御部は、複数の領域のそれぞれに対して、異なるタイミングからデータの書込みを開始し、
前記移動検出部は、複数の領域のうち、データの書込み回数が所定数に達した領域を参照して、前記特徴点の移動を検出する請求項１または２に記載の特徴点移動検出装置。
【請求項４】
前記書込制御部は、前記移動検出部が前記特徴点の移動の検出に用いた領域のデータを消去する請求項３に記載の特徴点移動検出装置。
【請求項５】
前記直線算出部は、直線の傾きθを、ｔａｎθの変化が特徴点の検出タイミングの間隔に比例するように設定する請求項１に記載の特徴点移動検出装置。
【請求項６】
特徴点の移動を検出する方法であって、
入力されたデータから特徴点を検出する特徴点検出ステップと、
前記特徴点検出ステップにて検出された特徴点を通り、かつ、その特徴点を検出したタイミングに基づいて決定される傾きを有する直線を求める直線算出ステップと、
異なるタイミングに検出された特徴点について、前記直線算出ステップにて算出した直線を記憶しておくメモリを準備するステップと、
前記直線算出ステップにて算出した直線を前記メモリに書き込む書込制御ステップと、
前記メモリに記憶された複数の直線の交差状態に基づいて、異なるタイミングに検出された複数の前記特徴点の対応を求め、前記特徴点の移動を検出する移動検出ステップと、
を備える特徴点移動検出方法。
【請求項７】
特徴点の移動を検出するためのプログラムであって、コンピュータに、
入力されたデータから特徴点を検出する特徴点検出ステップと、
前記特徴点検出ステップにて検出された特徴点を通り、かつ、その特徴点を検出したタイミングに基づいて決定される傾きを有する直線を求める直線算出ステップと、
異なるタイミングに検出された特徴点について、前記直線算出ステップにて算出した直線を記憶しておくメモリ領域を生成するステップと、
前記直線算出ステップにて算出した直線を前記メモリ領域に書き込む書込制御ステップと、
前記メモリ領域に記憶された複数の直線の交差状態に基づいて、異なるタイミングに検出された複数の前記特徴点の対応を求め、前記特徴点の移動を検出する移動検出ステップと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、連続して撮影された複数枚の画像等のデータから、そのデータ内に存在する特徴点の移動量を検出する装置および方法に関する。
【背景技術】
【０００２】
時間的にずれがある２枚の画像から、画面内の物体の動きを検出する手法として、複数の画像における対応点を求めてその動きを検出する手法や、「オプティカルフロー」と呼ばれる手法が用いられている。対応点から特徴点の動きを検出する手法は、対応点を求めるための計算処理が複雑である。オプティカルフローは、対応点を求める手法に比べて計算処理が容易であるとともに、物体の速度の情報を得られるという利点がある。
【０００３】
しかし、オプティカルフローは、点と点の対応を求めることができないために、領域と領域の一致性を見ることで、点と点の対応とみなさなくてはならないという本質的な問題を有する。
【０００４】
また、上記以外に、時系列の画像から画面内の物体の動きを検出する手法として、特許文献１に記載された動き検出装置が知られている。特許文献１の動き検出装置は、画像からエッジを検出し、エッジが存在する画素についてカウント値をカウントアップする。これにより、カウント値がエッジの移動状態を示すことになるため、各画素のカウント値に基づいて、エッジの移動方向および移動速度を求めることができる。この方法は、時間的にずれのある画像で検出されたエッジ間に、複数の点を挿入することによって連続性を持たせ、点と点の対応関係を追跡することができる。
【特許文献１】特開２００６−９２４２７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、上記した特許文献１の動き検出装置では、エッジが検出される限りカウント値をカウントアップするため、物体の移動速度が遅い場合には、同じ画素が繰り返しカウントアップされ、メモリがオーバーフローしてしまう。特許文献１では、この問題を解決するために、「消失点」という概念を導入し、消失点を基準に画像内を複数の領域に分割し、領域に応じてサンプリングレートを変えている。
【０００６】
画像を複数の領域に分割する上記の方法は、領域に応じて異なるサンプリングレートで処理を行う必要があるので、計算処理が複雑となる。また、この方法は、物体の動きが遅い領域では、サンプリングレートを減らしてメモリのオーバーフローを起こりにくくするものであるが、画像中のすべての物体の動きが消失点に向かって段階的に遅くなるわけではないので、根本的な解決にはなっていない。
【０００７】
そこで、本発明は、上記背景に鑑み、簡単な処理で入力されたデータに含まれる特徴点の移動を検出することができる特徴点移動検出装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の特徴点移動検出装置は、特徴点の移動を検出する装置であって、入力されたデータから特徴点を検出する特徴点検出部と、前記特徴点検出部にて検出された特徴点を通り、かつ、その特徴点を検出したタイミングに基づいて決定される傾きを有する直線を求める直線算出部と、異なるタイミングに検出された特徴点について、前記直線算出部にて算出した直線を記憶しておくメモリと、前記直線算出部にて算出した直線を前記メモリに書き込む書込制御部と、前記メモリに記憶された複数の直線の交差状態に基づいて、異なるタイミングに検出された複数の前記特徴点の対応を求め、前記特徴点の移動を検出する移動検出部とを備える。
【０００９】
このように時間の経過に伴って移動する特徴点を所定のタイミングで検出し、異なるタイミングで検出された複数の特徴点に対して、その検出タイミングに基づいて決定される傾きを持つ直線を引くと、特徴点の移動速度が一定であると仮定した場合、その直線群はある点で交差する。本発明では、特徴点を通る直線の交差状態に基づいて、異なる検出タイミングで得られた特徴点の対応を求めるという簡単な処理により、特徴点の移動を検出することができる。また、特徴点の移動速度が大きくなるに従って、特徴点から直線の交点までの距離が大きくなるので、特徴点から交点までの距離によって特徴点の移動速度を表すことができる。
【００１０】
上記特徴点移動検出装置において、前記メモリは、前記直線を規定する所定の座標系の各座標に対応するカウンタを準備しておき、前記書込制御部は、前記直線算出部にて算出された直線を構成する各点の座標に対応するカウンタをカウントアップし、前記移動検出部は、前記メモリの各座標に対応するカウンタの値に基づいて直線の交差状態を求めてもよい。
【００１１】
このように、各直線を構成する点に対応するカウンタをカウントアップすることにより、直線の交差する場所では、カウンタの値が大きくなり、かつ交差する場所の周囲では１以上の値を持つカウンタの密度が高くなる。従って、カウンタの値に基づいて直線の交差状態を容易に把握することができる。また、カウンタの値のピークの座標がそのまま特徴点の移動に関する情報となるので、複雑な計算を要せずに、特徴点の移動を検出できる。
【００１２】
上記特徴点移動検出装置において、前記メモリは、複数の領域を有し、前記書込制御部は、複数の領域のそれぞれに対して、異なるタイミングからデータの書込みを開始し、前記移動検出部は、複数の領域のうち、データの書込み回数が所定数に達した領域を参照して、前記特徴点の移動を検出してもよい。
【００１３】
このようにメモリが有する複数の領域のそれぞれに、異なるタイミングからデータを書き込むことにより、いずれかの領域のデータに基づいて特徴点の移動を検出できる。
【００１４】
上記特徴点移動検出装置において、前記書込制御部は、前記移動検出部が前記特徴点の移動の検出に用いた領域のデータを消去してもよい。
【００１５】
このように特徴点の移動の検出に用いた領域のデータを消去することにより、その領域を利用して新たに検出を開始した特徴点を書き込むことができる。
【００１６】
上記特徴点移動検出装置において、前記直線算出部は、直線の傾きθを、ｔａｎθの変化が特徴点の検出タイミングの間隔に比例するように設定してもよい。
【００１７】
このように、ｔａｎθの変化が特徴点の検出時刻の間隔に比例するようにすることで、一定の移動速度で移動する特徴点を通る各直線が所定の点で交差する。
【００１８】
本発明の特徴点移動検出方法は、特徴点の移動を検出する方法であって、入力されたデータから特徴点を検出する特徴点検出ステップと、前記特徴点検出ステップにて検出された特徴点を通り、かつ、その特徴点を検出したタイミングに基づいて決定される傾きを有する直線を求める直線算出ステップと、異なるタイミングに検出された特徴点について、前記直線算出ステップにて算出した直線を記憶しておくメモリを準備するステップと、前記直線算出ステップにて算出した直線を前記メモリに書き込む書込制御ステップと、前記メモリに記憶された複数の直線の交差状態に基づいて、異なるタイミングに検出された複数の前記特徴点の対応を求め、前記特徴点の移動を検出する移動検出ステップとを備える。
【００１９】
この構成により、本発明の特徴点移動検出装置と同様に、データから検出された特徴点に対して、その検出タイミングに基づいて決定される傾きの直線を求めるという簡単な処理により、複雑な計算処理をせずに特徴点の移動を検出することができる。また、本発明の特徴点移動検出装置の各種の構成を、本発明の特徴点移動検出方法に適用することも可能である。
【００２０】
本発明のプログラムは、特徴点の移動を検出するためのプログラムであって、コンピュータに、入力されたデータから特徴点を検出する特徴点検出ステップと、前記特徴点検出ステップにて検出された特徴点を通り、かつ、その特徴点を検出したタイミングに基づいて決定される傾きを有する直線を求める直線算出ステップと、異なるタイミングに検出された特徴点について、前記直線算出ステップにて算出した直線を記憶しておくメモリ領域を生成するステップと、前記直線算出ステップにて算出した直線を前記メモリ領域に書き込む書込制御ステップと、前記メモリ領域に記憶された複数の直線の交差状態に基づいて、異なるタイミングに検出された複数の前記特徴点の対応を求め、前記特徴点の移動を検出する移動検出ステップとを実行させる。
【００２１】
この構成により、本発明の特徴点移動検出装置と同様に、データから検出された特徴点に対して、その検出タイミングに基づいて決定される傾きの直線を求めるという簡単な処理により、複雑な計算処理をせずに特徴点の移動を検出することができる。また、本発明の特徴点移動検出装置の各種の構成を、本発明のプログラムに適用することも可能である。
【発明の効果】
【００２２】
本発明によれば、データから検出された特徴点に対して、その検出タイミングに基づいて決定される傾きの直線を求めるという簡単な処理により、特徴点の移動を検出することができる効果を有する。
【発明を実施するための最良の形態】
【００２３】
以下、本発明の実施の形態の特徴点移動検出装置について説明する。以下では、画像に映った自動車の移動を検出する装置を例として説明する。しかし、本発明の特徴点移動検出装置は、画像に含まれる特徴点の移動を検出する装置に限定されない。例えば、特徴点移動検出装置は、赤外線センサ等によって得られたデータから、検出された特徴点の移動を検出することも可能である。
【００２４】
図１は、本実施の形態の特徴点移動検出装置１の構成を示す図である。特徴点移動検出装置１は、画像を入力する画像入力部１０と、入力された画像から縦エッジを抽出し、縦エッジ画像を生成するエッジ画像生成部１２と、生成された縦エッジ画像から特徴点を検出する特徴点検出部１４とを備えている。
【００２５】
図２は、エッジ画像生成部１２にて生成された縦エッジ画像の例を示す図である。本実施の形態では、自動車の水平方向の移動を検出する。特徴点検出部１４は、エッジ画像生成部１２にて生成された縦エッジ画像から、水平方向に１ラインの画素データを読み出して、読み出した画素データから特徴点を検出する。本実施の形態では、縦エッジ画像を用いているので、特徴点が水平方向に移動した場合に、特徴点の移動を精度良く検出することができる。なお、特徴点の縦方向への移動を検出する場合には、横エッジ画像を生成し、垂直方向に画素データを読み出す構成とする。
【００２６】
特徴点移動検出装置１は、検出された複数の特徴点を対応付けるための構成として、特徴点検出部１４にて検出された特徴点の座標を算出する特徴点座標算出部１６と、特徴点座標算出部１６にて算出された位置座標を用いて、その点を通る直線を求める直線算出部１８と、求めた直線を記憶するメモリ２４とを備えている。直線算出部１８は、傾きテーブル２０から、直線の傾きに対応するオフセット値を読み出して直線のデータを生成する。
【００２７】
特徴点座標算出部１６は、特徴点検出部１４にて検出された特徴点の所定の座標系における座標を算出する。ここでは、特徴点の水平方向の動きを検出しているので、特徴点の座標は、（ｘ、０）の形式で求められる。
【００２８】
ここで、図２に示す例を用いて、本実施の形態の特徴点移動検出の原理について説明する。図２に示す例では、特徴点検出部１４によって特徴点ａ、特徴点ｂが検出される。
【００２９】
図３は、特徴点の移動を示す図である。図２に示すように自動車は右方向に進行しているので、特徴点ａ、特徴点ｂは、時間の経過と共に右方向へ移動していく。図３では、時刻ｔ１で検出された特徴点を点ｃ１、ｃ２、時刻ｔ２で検出された特徴点を点ｃ３、ｃ４、以下同様に時刻ｔ３〜ｔ５で検出された特徴点を点ｃ５〜ｃ１０と記載している。
【００３０】
特徴点検出部１４にて特徴点を画像から検出した段階では、それぞれの検出時刻において検出された点ｃ１〜ｃ１０の対応関係は分かっていない。例えば、時刻ｔ１の特徴点ｃ１が時刻ｔ２に特徴点ｃ４の位置に移動し、時刻ｔ２の特徴点ｃ２が新たに現れた特徴点であることもあり得るし、時刻ｔ１の点ｃ１が左方向へ移動し、所定の座標系から消え、時刻ｔ１の点ｃ２が時刻ｔ２の点ｃ３に対応していることもあり得る。本実施の形態の特徴点移動検出装置１は、各時刻において検出された点ｃ１〜ｃ１０を簡単な処理によって対応付ける。
【００３１】
図４は、特徴点移動検出装置１が行う処理を説明するための図である。本実施の形態においては、特徴点の移動速度は一定であり、特徴点移動検出装置１は一定の時間間隔で特徴点を検出する。従って、特徴点移動検出装置１にて検出される特徴点は、等間隔となる。なお、十分微小な時間間隔で特徴点の検出を行うと、特徴点の移動速度をほぼ一定とみなすことができるので、上記のように特徴点の移動速度が一定という前提をおくことができる。
【００３２】
特徴点移動検出装置１は、検出された点ｃ１〜ｃ１０を通る直線を引く。このとき、直線の傾きは、各点ｃ１〜ｃ１０を検出したタイミングに応じて決定する。時刻ｔ１に検出された点ｃ１、ｃ２には、傾きθ１の直線ｌ１、ｌ２を引く。時刻ｔ２に検出された点ｃ３、ｃ４には、傾きθ２の直線ｌ３、ｌ４を引く。以下同様に、点ｃ５、ｃ６に直線ｌ５、ｌ６、点ｃ７、ｃ８に直線ｌ７、ｌ８、点ｃ９、ｃ１０に直線ｌ９、ｌ１０を引く。
【００３３】
ここで、直線の傾きθは、ｔａｎθの変化が一定となるように決定する。図４に示す例では、ｔａｎ（θ１）−ｔａｎ（θ２）＝ｔａｎ（θ２）−ｔａｎ（０）＝ｔａｎ（０）−ｔａｎ（−θ２）＝ｔａｎ（−θ２）−ｔａｎ（−θ１）という関係が成立する。上記のような直線を引くと、同じ時間間隔で複数の時刻に取得した特徴点を通る直線は、所定の点で交差することになる。本実施の形態は、所定の点で交差した直線群のそれぞれに含まれる特徴点は、異なる時刻に検出された同じ特徴点であると判定し、特徴点の移動を検出する。
【００３４】
図１を再び参照して、本実施の形態の特徴点移動検出装置１の構成について説明する。直線算出部１８は、特徴点を検出した時刻に対応するオフセット値を傾きテーブル２０から読み出し、読み出したオフセット値を用いて、検出された特徴点を通る直線を求める。
【００３５】
図５は、傾きテーブル２０に記憶されたデータの例を示す図である。図６は、傾きテーブル２０に記憶されたデータについて説明するための図である。図６に示すように、傾きテーブル２０には、ｙ値に対するオフセット値が記憶されている。
【００３６】
図５に示すように、傾きテーブル２０には、傾きの異なる５つの直線を構成するためのｙ値に対するオフセット値が記憶されている。例えば、Ｐ＝１の列のオフセット値により、傾きθ１の直線が構成され、Ｐ＝２の列のオフセット値により傾きθ２の直線が構成される。この傾きテーブル２０に記憶されたオフセット値を読み出して、特徴点の座標（ｘ、０）に加算することにより、直線を構成する各点の座標を求めることができる。
【００３７】
図７は、メモリ２４の構成を示す図である。メモリ２４は、座標系の各点に対応するカウンタを有している。書込制御部２２は、傾きテーブル２０から読み出されたオフセット値を加えた位置にある座標のカウンタをカウントアップする。図７では、点ｃ１、ｃ３、ｃ５、ｃ７、ｃ９に対応する座標に斜線を付して示している。なお、図７に示す各座標に対応するカウンタに一つの物理アドレスを割り当てる構成を採用してもよい。
【００３８】
例えば、点ｃ１を通る直線の場合には、図５に示す傾きテーブル２０の「Ｐ=１」の列からオフセット値を読み出す。具体的には、ｙ＝１のときにオフセット値は「０」なので、点ｃ１の真上にある座標のカウンタがカウントアップされ、「１」となる。なお、図７では、１以上の値を有するカウンタを太枠で囲んで示している。ｙ＝２のときにはオフセット値は「１」なので点ｃ１から右に一つずれた座標のカウンタをカウントアップする。同様に、オフセット値を加えて求められた座標に対応するカウンタをカウントアップする。また、点ｃ３を通る直線の場合には、図５に示す傾きテーブル２０の「Ｐ＝２」の列からオフセット値を読み出して、座標に対応するカウンタをカウントアップしていく。以下同様に、検出された各点ｃ１、ｃ３、ｃ５、ｃ７、ｃ９について、検出タイミングに応じて決まるオフセット値を加えてカウントアップする。以上により、図７に示すように、各座標に対応するカウンタに値が入力される。このように、傾きテーブル２０から読み出したオフセット値に応じてカウンタの値をカウントアップすることにより、メモリ２４に直線のデータが記憶される。
【００３９】
また、メモリ２４は、第１領域２４１、第２領域２４２、・・・第５領域２４５（以下、これらの領域を総称して「領域」という）を有する。領域２４１〜２４５のそれぞれは、図７に示すような、座標に対応するカウンタを有する。各領域には、異なる時刻に検出を開始した直線のデータが書き込まれる。
【００４０】
図８は、各領域への直線の書き込みタイミングの例を示す図である。図８に示すように、第１領域２４１には、時刻ｔ１に検出された点ｃ１、ｃ２を通る直線が書き込まれる。第１領域２４１への書込みは、時刻ｔ１に開始される。このとき、第２領域２４２、第３領域２４３には書き込まれない。
【００４１】
次に、時刻ｔ２に検出された点ｃ３、ｃ４は、第１領域２４１、第２領域２４２に書き込まれ、第３領域２４３には書き込まれない。第２領域２４２への書込みは、時刻ｔ２に開始される。このとき、第１領域２４１において、点ｃ３、ｃ４を通る直線は、すでに書き込まれている点ｃ１、ｃ２を通る直線とは傾きの異なる直線である。具体的には、点ｃ１、ｃ２に対しては、傾きテーブル２０のＰ＝１の列から読み出したオフセット値を用い、点ｃ３、ｃ４に対しては、傾きテーブル２０のＰ＝２の列から読み出したオフセット値を用いて第１領域２４１のカウンタをカウントアップする。第２領域２４２において点ｃ３、ｃ４を通る直線は、第１領域２４１における点ｃ１、ｃ２を通る直線と同じ傾きの直線が書き込まれる。すなわち、傾きテーブル２０のＰ＝１の列から読み出したオフセット値を用いて第２領域２４２のカウンタをカウントアップする。
【００４２】
時刻ｔ３は、図示していないが、第３領域２４３に、点ｃ５、ｃ６が書き込まれる。第３領域２４３への書込みは、時刻ｔ３に開始される。
【００４３】
時刻ｔ５には、第１領域２４１、第２領域２４２、第３領域２４３のそれぞれに、点ｃ９、ｃ１０が書き込まれる。なお、図８には示していないが、第４領域２４４、第５領域２４５にも点ｃ９、ｃ１０が書き込まれる。この時点で、第１領域２４１には、時刻ｔ１〜ｔ５の５回の検出タイミングにおいて検出された点に対する直線が書き込まれたので、この直線群の交差状態から点ｃ１〜ｃ１０の対応を求める。この例では、点ｃ１、ｃ３、ｃ５、ｃ７、ｃ９が同じ特徴点、点ｃ２、ｃ４、ｃ６、ｃ８、ｃ１０が同じ特徴点であることが分かる。
【００４４】
時刻ｔ６には、第１領域２４１では、時刻ｔ５までのデータを消去して、新たに点ｃ１１、ｃ１２を書き込む。また、第２領域２４２では、点ｃ１１、ｃ１２のデータを書き込む。この時点で、第２領域２４２には、時刻ｔ２〜ｔ６の５回の検出タイミングにおいて検出された点に対する直線が書き込まれたので、この直線群の交差状態から点ｃ３〜ｃ１２の対応を求める。
【００４５】
時刻ｔ７には、第２領域２４２では、時刻ｔ６までのデータを消去して、新たに点ｃ１３、ｃ１４を書き込む。また、第３領域２４３では、点ｃ１３、ｃ１４のデータを書き込む。この時点で、第３領域２４３には、時刻ｔ３〜ｔ７の５回の検出タイミングにおいて検出された点に対する直線が書き込まれたので、この直線群の交差状態から点ｃ５〜ｃ１４の対応を求める。
【００４６】
このようにメモリ２４が有する複数の領域に、異なるタイミングから検出を開始した特徴点を書き込んでいくことにより、それぞれの領域において、別々のタイミングで特徴点の移動を検出できる。一つの領域しか使用しない場合には、時刻ｔ１〜ｔ５までに検出したデータから特徴点の移動を検出した後は、時刻ｔ１〜ｔ５と同じ時間だけ待たなければ次の結果が得られない。本実施の形態のようにメモリ２４に複数の領域２４１〜２４５を準備し、複数の領域を利用することにより、時刻ｔ５に続いて、時刻ｔ６、ｔ７等にも特徴点の移動を検出できる。本実施の形態では、５つの検出タイミングにて検出された特徴点からその対応を求めるが、特徴点の移動検出に必要な検出回数と同数の５つの領域を利用しているので、第１領域２４１〜第５領域２４５のいずれかの領域において、特徴点の移動を検出できる。
【００４７】
また、特徴点の移動を検出した後は、その領域のデータをクリアするので、各座標に対応するカウンタの値がオーバーフローすることもない。
【００４８】
移動検出部２６は、各メモリ２４に書き込まれたデータから直線群の交差状態に基づいて、特徴点の移動を検出する。移動検出部２６は、交差する点が集中する箇所を求めることによって、直線が交差しているか否かを判断する。
【００４９】
図９（ａ）および図９（ｂ）は、移動検出部２６による集中点の検出について説明するための図である。図９（ａ）は、書込制御部２２によってメモリ２４に書き込まれたデータの例を示す図である。移動検出部２６は、カウンタ値の度数分布をヒストグラムによって求め、直線の交差状態を判断する。ここで、図９（ａ）に示す枠で囲まれた部分のヒストグラムを求める例について説明する。
【００５０】
図９（ｂ）は、図９（ａ）の枠ｆで囲んだ部分を９０°回転して、ヒストグラムｈを求めた例を示す図である。図９（ｂ）に示す各直線を構成する各点に対応する座標は、カウンタの値を有している（図７参照）。このカウンタの値を合計することにより、ヒストグラムｈを求める。このヒストグラムｈの値が最大となる部分が直線群の交差点の集中する点と判断する。
【００５１】
結果表示部２８は、移動検出部２６にて求めた特徴点の移動の検出結果を表示する。このとき、特徴点と交差点との距離は、特徴点の移動速度を表すので、結果表示部２８は、特徴点と交点との距離を特徴点の移動速度として表示してもよい。これにより、交差点を検出した結果をそのまま特徴点の速度とすることができるので、特徴点の移動速度を容易に求めることができる。
【００５２】
次に、本実施の形態の特徴点移動検出装置１の動作について説明する。図１０は本実施の形態の特徴点移動検出装置１の動作を示す図である。特徴点移動検出装置１は、画像入力部１０にて画像の入力を受け付ける（Ｓ１０）。画像入力部１０は、入力された画像をエッジ画像生成部１２に入力する。エッジ画像生成部１２は、入力された画像から縦エッジ画像を生成し（Ｓ１２）、生成した縦エッジ画像を特徴点検出部１４に入力する。特徴点検出部１４は、入力された縦エッジ画像から、水平方向に画素データを読み出し、読み出した画素データから特徴点を抽出する（Ｓ１４）。特徴点検出部１４は、特徴点が検出された縦エッジ画像を特徴点座標算出部１６に入力する。特徴点座標算出部１６は、縦エッジ画像に所定の座標系を設定し、その所定の座標系における特徴点の座標を算出する（Ｓ１６）。特徴点座標算出部１６は、算出した特徴点の座標を直線算出部１８に入力する。
【００５３】
直線算出部１８は、直線の傾きを決定する（Ｓ１８）。直線の傾きは、特徴点を検出したタイミングに基づいて、データを書き込むメモリ２４の領域ごとに決定する。図８において、時刻ｔ５におけるデータを例として説明する。領域２４１には、時刻ｔ１に検出された点ｃ１、ｃ２、時刻ｔ２に検出された点ｃ３、ｃ４、時刻ｔ３に検出された点ｃ５、ｃ６、時刻ｔ４に検出された点ｃ７、ｃ８、時刻ｔ５に検出された点ｃ９、ｃ１０が記載されている。それぞれの点ｃ１〜ｃ１０を通る直線は、検出したタイミングに応じて決定される傾きを有していることが分かる。また、第２領域２４２を参照しても、点ｃ３〜ｃ１０を通る直線は、検出したタイミングに応じて決定される傾きを有していることが分かる。
【００５４】
直線算出部１８は、決定された傾きに従って、傾きテーブル２０からオフセット値を読み出し、直線を構成する各点の座標を求める（Ｓ２０）。直線算出部１８は、直線を構成する各点の座標値を書込制御部２２に入力する。その後、書込制御部２２は、直線算出部１８より入力された各座標に対応するカウンタの値をカウントアップし、各領域２４１〜２４５に直線を書き込む（Ｓ２２）。
【００５５】
移動検出部２６は、メモリ２４の各領域２４１〜２４５のうち、検出回数５回分の特徴点が書き込まれた領域を選択する。移動検出部２６は、選択した領域に書き込まれた直線の交差状態に基づいて複数の特徴点の対応を求め、特徴点の移動を検出する（Ｓ２４）。書込制御部２２は、移動検出部２６にて特徴点の移動検出に用いられた領域のデータを消去する（Ｓ２６）。結果表示部２８は、移動検出部２６にて検出された特徴点の移動を表示する（Ｓ２８）。
以上、本実施の形態の特徴点移動検出装置１および特徴点移動検出方法について説明した。
【００５６】
本実施の形態の特徴点移動検出装置１は、異なる時刻に検出された複数の特徴点に対して、検出したタイミングに基づいて決定される傾きを持つ直線を引き、この直線の交差状態に基づいて特徴点の対応を求める。これにより、同じタイミングに複数の異なる特徴点が含まれている場合であっても、複雑な計算処理を行わずに特徴点の移動を検出することができる。
【００５７】
また、本実施の形態の特徴点移動検出装置１は、メモリ２４が第１領域２４１〜第５領域２４５を含み、それぞれの領域で異なる時刻から検出を開始した特徴点のデータを記憶する。これにより、第１領域２４１〜第５領域２４５では、順次、特徴点を求めるために必要な５回分の特徴点の検出結果が蓄積されるので、いずれかの領域で特徴点の移動を検出することができる。
【００５８】
また、本実施の形態の特徴点移動検出装置１は、直線のデータを座標に対応するカウンタをカウントアップする形式で記憶し、カウンタ値の度数分布を求めることによって、直線の交差点が集中する箇所を求めるので、直線の式から交差する点を計算によって求める必要がなく、容易に直線の交差状態を求めることができる。
【００５９】
また、本実施の形態の特徴点移動検出装置１は、特徴点の移動を検出した後は、特徴点の移動を検出するために用いたデータを記憶した領域のデータを消去するので、カウンタ値のオーバーフローを防止できる。
【００６０】
以上、本発明の特徴点移動検出装置１について、実施の形態を挙げて詳細に説明したが、本発明の特徴点移動検出装置１は上記した実施の形態に限定されるものではない。
【００６１】
上記した実施の形態では、直線のデータを記憶するメモリ２４には、座標に対応するカウンタを準備し、カウンタ値を記憶することによって直線のデータを記憶したが、直線の式を記憶することとしてもよい。この場合、直線のデータを記憶するためのメモリ２４の容量を低減することができる。
【００６２】
上記した実施の形態では、特徴点を５回の検出タイミングで検出し、検出された特徴点に５種類の直線を引くことによって、異なる検出タイミングで得られた特徴点の対応を求めたが、特徴点の対応を求めるために必要な検出回数は５回に限られない。例えば、７回の検出タイミングで検出した特徴点に７種類の直線を引くことによって、特徴点の移動を検出してもよい。検出回数が多くなれば、特徴点の移動を検出できる精度が高くなる。少ない検出回数で特徴点の移動を検出すれば、少ないデータで迅速に特徴点の移動を検出できる。なお、特徴点の移動検出に用いる検出回数と同数の領域をメモリに準備しておくことが好ましい。これにより、各領域に異なるタイミングで書き込みを開始した場合に、各領域で順次特徴点の移動を検出することが可能となる。
【００６３】
上記した実施の形態では、特徴点の検出タイミングの間隔を一定とし、傾きテーブル２０から読み出したオフセット値によって直線を算出したが、特徴点の検出タイミングの間隔が一定でない場合にも、本発明を適用することができる。この場合には、検出タイミングの間隔に基づいて傾きを決定する構成とする。例えば、検出タイミングの間隔が途中から２倍に変わったときには、直線の傾きθを、ｔａｎθの変化がそれまでの２倍になるように設定する。
【００６４】
上記した実施の形態では、水平方向に移動する特徴点の移動を検出する例について説明したが、検出可能な特徴点の移動方向は水平方向に限られず、垂直方向の移動も検出可能である。また、水平方向および垂直方向の特徴点の移動に基づいて、任意の方向への特徴点の移動を求めることも可能である。
【００６５】
上記した実施の形態では、特徴点移動検出装置１およびその動作について説明したが、本発明は、上記した特徴点移動検出装置１の機能を実現するプログラムも含まれる。
【産業上の利用可能性】
【００６６】
本発明によれば、データから検出された特徴点に対して、その検出タイミングに基づいて決定される傾きの直線を求めるという簡単な処理により、特徴点の移動を検出することができる効果を有し、例えば、高速カメラ等で撮影された映像中の動き情報をリアルタイムに獲得する移動物体の検出装置等として有用である。また、例えば、自動車等において、他の車や子供等の飛び出しの検出等にも有用である。
【図面の簡単な説明】
【００６７】
【図１】本実施の形態の特徴点移動検出装置の構成を示す図である。
【図２】縦エッジ画像の例を示す図である。
【図３】特徴点の移動する様子を示す図である。
【図４】異なる時刻に検出された特徴点の対応を求める原理を示す図である。
【図５】傾きテーブルに記憶されたデータの例を示す図である。
【図６】傾きテーブルに記憶されたデータについて説明するための図である。
【図７】メモリの構成を示す図である。
【図８】各領域への直線の書き込みタイミングの例を示す図である。
【図９】（ａ）書込制御部によってメモリに書き込まれたデータの例を示す図である。  （ｂ）カウンタ値のヒストグラムを求めた例を示す図である。
【図１０】本実施の形態の特徴点移動検出装置の動作を示す図である。
【符号の説明】
【００６８】
１  特徴点検出装置
１０  画像入力部
１２  エッジ画像生成部
１４  特徴点検出部
１６  特徴点座標算出部
１８  直線算出部
２０  傾きテーブル
２２  書込制御部
２４  メモリ
２６  移動検出部
２８  結果表示部
【図１】
0004621171.tif 000002
【図２】
0004621171.tif 000003
【図３】
0004621171.tif 000004
【図４】
0004621171.tif 000005
【図５】
0004621171.tif 000006
【図６】
0004621171.tif 000007
【図７】
0004621171.tif 000008
【図８】
0004621171.tif 000009
【図９】
0004621171.tif 000010
【図１０】
0004621171.tif 000011