(57)【要約】      （修正有）【課題】複数フレームに跨る画像ブロックの動き検出する場合に、その動き検出の算出を速めて、画像処理を高速化できる画像処理装置を提供する。【解決手段】特徴点マップ１５をラスタ方向に検索し、そこに特徴点が存在している場合には、その特徴点の識別番号を利用し、動き情報テーブル１７の識別番号に該当するテーブルブロックを見いだす。このテーブルブロックには、次追跡ブロックＩＤ（即ち次に処理すべきテーブルブロックを示す番号）が記憶されているので、次に、次追跡ブロックＩＤが示すテーブルブロックのデータ（特徴点座標や次追跡座標）を利用して、更に次追跡座標や動きベクトルを算出することができる。【選択図】図１
2010211398.tif 000002
【特許請求の範囲】
【請求項１】
過去の画像上の特徴となる画素である特徴点を抽出して、その特徴点を含む所定の大きさを持つテンプレート画像が、複数のフレーム間に渡って、現在の画像上のどこに移動したかを示す移動情報を算出する画像処理装置であって、
前記画像処理装置に取り込まれた画像上の特徴点が、動き検出する画像単位である画像ブロック単位でどこに存在するかを、識別番号で区分して示す特徴点マップと、
前記移動情報を算出する際に用いるデータを格納するテーブルブロックを、前記特徴点マップの識別番号順に設定した動き情報テーブルと、
を備え、
前記動き情報テーブルには、各テーブルブロック毎に、前記画素単位で抽出された特徴点の位置のデータと、前記特徴点の移動後の位置のデータである次追跡点の位置のデータと、次に処理するデータを格納したテーブルブロックを示す次追跡ブロック識別番号と、を記憶しており、
前記特徴点マップに記憶された画像ブロックの識別番号を索引として、前記動き情報テーブルにおいて処理すべきテーブルブロックを決定し、更に、該テーブルブロックに記憶された次追跡ブロック識別番号を索引として、次に処理すべきテーブルブロックを決定することを特徴とする画像処理装置。
【請求項２】
前記動き情報テーブルにおいて処理すべきテーブルブロックを決定した場合には、
該テーブルブロックに格納された次追跡点の位置のデータと、次追跡点決定以降の移動前後の画像データとを用いて、前記移動情報を算出することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記画像の１フレーム目は、過去の画像上の特徴点を含むテンプレート画像が現在の画像上でどこに移動したかを示す移動情報を算出し、その算出結果を、過去の画像の特徴点座標を格納した第１の動き情報テーブルに格納する第１の処理を実施し、
前記画像の２フレーム目以降は、特徴点マップに記憶された画像ブロックの識別番号を索引として、前記動き情報テーブルから次追跡点の位置のデータと次追跡ブロック識別番号を抽出し、その次追跡座標を基に移動情報を算出し、その算出結果を、過去の画像の特徴点座標を格納した第２の動き情報テーブルに格納する第２の処理を実施することを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
次追跡ブロック識別番号が０を示す値になるまで、前記第２の処理を繰り返すことを特徴とする請求項３に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像の特徴点の移動状態に基づいて画像を処理する画像処理装置に関する。
【背景技術】
【０００２】
従来より、車両の周囲の画像を撮影して処理する画像処理装置として、動画の動きベクトルを利用する装置が知られている。この動きベクトルを検出する方法としては、動きベクトルの誤検出を減らすため、一度画像メモリに格納した画像から特徴点を決定し、その特徴点を取り囲むテンプレート画像が、１フレーム後の画像上のどこに移動したかを示す動きベクトルを算出する方法が提案されている（例えば、特許文献１、２、３参照）。
【０００３】
これらの従来技術は、各画像ブロック（動き検出する画像の単位）上で特徴点を抽出し、その特徴点を利用して動きベクトルを算出するものである。
また、近年では、本発明者によって、動きベクトルの算出を速めて、画像処理を高速化するための技術が提案されている（特許文献４参照）。
【０００４】
この技術は、画像取り込み時に生成する特徴点マップに基づいて、ラスタ方向に画像ブロックのデータ転送を最適化することで、高速処理を実現するものである。詳しくは、特徴点マップ上の特徴点間の距離に応じてデータの転送方法を切り替えるものである。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平８−２４２４５３号公報
【特許文献２】特開平９−５５９４３号公報
【特許文献３】特開平９−５５９４４号公報
【特許文献４】特開２００８−１９２０６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
前記引用文献４の技術では、２フレーム間の動きについて述べているので、この技術を複数フレームに跨る特徴点を含む画像ブロックの動き検出する場合を考えると、動き情報テーブル（特徴点座標と動きベクトルの算出結果が格納されているテーブル）に、次追跡の開始点を記憶しておくことが考えられる。
【０００７】
しかし、動き情報テーブルには、ラスタ方向の順番に次追跡の開始点が格納されていないので、ラスタ方向にデータ転送できるように、次追跡の座標を探索する必要があり、この探索時間が高速化のボトルネックになることが考えられる。
【０００８】
本発明は、上記問題点を解決するためになされたものであり、複数フレームに跨る画像ブロックの動き検出する場合に、その動き検出の算出を速めて、画像処理を高速化できる画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
（１）上記課題を解決するためになされた請求項１の画像処理装置は、過去の画像上の特徴となる画素である特徴点を抽出して、その特徴点を含む所定の大きさを持つテンプレート画像が、複数のフレーム間に渡って、現在の画像上のどこに移動したかを示す移動情報（次追跡座標、動きベクトル）を算出する画像処理装置であって、前記画像処理装置に取り込まれた画像上の特徴点が、動き検出する画像単位である画像ブロック単位でどこに存在するかを、識別番号で区分して示す特徴点マップと、前記移動情報を算出する際に用いるデータ（特徴点、又は、次追跡座標と次追跡ブロックＩＤ）を格納するテーブルブロック（動き情報テーブルの要素）を、前記特徴点マップの識別番号順に設定した動き情報テーブルと、を備え、前記動き情報テーブルには、各テーブルブロック毎に、前記画素単位で抽出された特徴点の位置のデータ（特徴点座標Ｘ）と、前記特徴点の移動後の位置のデータである次追跡点の位置のデータ（次追跡座標Ｙ）と、次に処理するデータを格納したテーブルブロックを示す次追跡ブロック識別番号と、を記憶しており、前記特徴点マップに記憶された画像ブロックの識別番号を索引として、前記動き情報テーブルにおいて処理すべきテーブルブロックを決定し、更に、該テーブルブロックに記憶された次追跡ブロック識別番号を索引として、次に処理すべきテーブルブロックを決定することを特徴とする。
【００１０】
本発明では、特徴点マップに記憶された画像ブロックの識別番号を索引として、動き情報テーブルにおいて処理すべきテーブルブロックを決定し、更に、そのテーブルブロックに記憶された次追跡ブロック識別番号を索引として、次に処理すべきテーブルブロックを決定することができる。
【００１１】
つまり、本発明では、動き検出を行うべき順番を、特徴点マップに記憶された画像ブロックの識別番号や、動き情報テーブルに記憶された次追跡ブロック識別番号を索引として、順次決定することができるので、次追跡点の位置のデータがラスタ方向の順番で格納されていなくても、複数のフレーム間に渡る移動情報を算出する際に、その演算処理を高速化することができる。
【００１２】
なお、ここで画像ブロックの特徴点とは、画像上の特徴となる画素（即ち該当する画像ブロックを他の画像ブロックと区別可能とする画素のデータ）である。
（２）請求項２の発明は、前記動き情報テーブルにおいて処理すべきテーブルブロックを決定した場合には、該テーブルブロックに格納された次追跡点の位置のデータと、次追跡点決定以降の移動前後の画像データとを用いて、前記移動情報（例えば（Ｔ−１の）次追跡座標の移動後の（Ｔの）次追跡座標）を算出することを特徴とする。
【００１３】
本発明は、動き情報テーブルにおいて処理すべきテーブルブロックを決定した場合の後の処理を示したものである。これにより、速やかに移動情報を算出することができる。
（３）請求項３の発明は、前記画像の１フレーム目は、過去の画像上の特徴点を含むテンプレート画像が現在の画像上でどこに移動したかを示す移動情報を算出し、その算出結果を、過去の画像の特徴点座標を格納した第１の動き情報テーブルに格納する第１の処理を実施し、前記画像の２フレーム目以降は、特徴点マップに記憶された画像ブロックの識別番号を索引として、前記動き情報テーブルから次追跡点の位置のデータ（次追跡座標）と次追跡ブロック識別番号（次追跡ブロック識別番号ＩＤ）を抽出し、その次追跡座標を基に移動情報を算出し、その算出結果を、過去の画像の特徴点座標を格納した第２の動き情報テーブルに格納する第２の処理を実施することを特徴とする。
【００１４】
本発明は、処理の手順を時系列に沿って、示したものである。
つまり、複数の動き情報テーブルを用いて、順次データを書き込むことにより、順次そのデータを用いて、容易に移動情報の演算を行うことができる。
【００１５】
（４）請求項４の発明は、次追跡ブロック識別番号が０を示す値（例えばＮＵＬＬ）になるまで、前記第２の処理を繰り返すことを特徴とする。
本発明は、処理の終了を示したものである。これにより、必要な演算のみを行うことができる。
【００１６】
・なお、特徴点マップとして、現在画像（最新の画像）における特徴点マップ及び過去画像（最新の画像より例えば１フレーム前の画像）における特徴点マップが挙げられるが、それより多くの特徴点マップを使用してもよい。
【００１７】
・前記特徴点マップには、１フレーム目と２フレーム目の移動情報を算出する際には、画像ブロック単位の特徴点の存在有無（画像においてどの部分に画像ブロックが存在するかを示すデータ）を記憶できる（図２参照）。また、２フレーム目以降（例えば２フレーム目と３フレーム目の移動）の移動情報を算出する際には、特徴点の移動前の画像ブロック単位の識別番号を、特徴点の移動後の位置に記憶することができる（図５〜図８参照）。なお、画像ブロックは複数の画素により構成される。
【００１８】
・なお、前記請求項１〜４の発明は、本発明者が提案した特開２００８−１９２０６０号公報に記載の請求項１〜２０の発明に適用することができる。
具体的には、例えば、画像処理装置に取り込まれた画像データを記憶する画像記憶部と、画像データ上の特徴点を抽出するため、及び動きベクトルを算出するために、必要な画像データを作成する前処理部と、画像データ上の特徴点が、動き検出する画像単位である画像ブロック単位で、どこに存在するかを示す特徴点マップと、画素単位で抽出された特徴点の位置のデータと動きベクトルのデータとを記憶する動き情報テーブルと、前処理部から得られる画像データから画像ブロック単位で特徴点を抽出し、特徴点が抽出できた場合には、画像ブロックに特徴点が存在することを示すフラグを特徴点マップに立て、かつ、特徴点の位置を動き情報テーブルに格納する特徴点抽出部と、画像記憶部に記憶された画像データと、特徴点マップに記憶された画像ブロック単位の特徴点のデータと、動き情報テーブルに記憶された画素単位の特徴点の位置のデータとに基づいて、動きベクトルを算出する動き検出部と、を備えた画像処理装置に適用することができる。
【００１９】
なお、前記動き検出部としては、動き検出するのに必要な過去の画像データと現在の画像データを記憶する動き検出用画像記憶部と、画像記憶部に格納された画像データを、動き検出用画像記憶部に転送する画像データ転送部と、動き検出用画像記憶部を使用して、過去の画像上の特徴点を含むテンプレート画像が現在の画像上でどこに移動したかを示す動きベクトルを算出し、その算出結果を過去の画像が入力されたときに特徴点座標を格納した過去の動き情報テーブルに格納する動き検出演算部と、過去の画像が入力されたときにフラグを立てた過去の特徴点マップを参照して、特徴点が存在する全ての画像ブロックをラスタ方向に処理するために、現時点で動きベクトルの算出を終えた画像ブロックとその画像ブロックライン上の特徴点が存在する次の画像ブロックまでの距離を計算し、その距離の値から、既に動き検出用画像記憶部に転送している画像データが、特徴点が存在する次の画像ブロックにおいて、動きベクトルの算出に使用できるかを判定し、不足している画像データのみを転送するように画像データ転送部に命令する動き検出制御部と、を備えた構成を採用できる。
【図面の簡単な説明】
【００２０】
【図１】実施例１の画像処理装置を示すブロック図である。
【図２】特徴点マップを示す説明図（ＳＴＥＰ０の処理結果）である。
【図３】動き情報テーブルを示す説明図である。
【図４】３フレーム間の追跡の全体の流れを示す説明図である。
【図５】ＳＴＥＰ１における処理の手順を示す説明図である。
【図６】ＳＴＥＰ２における処理の手順を示す説明図である。
【図７】ＳＴＥＰ３における処理の手順を示す説明図である。
【図８】ＳＴＥＰ４における処理の手順を示す説明図である。
【図９】実施例１における１〜２フレーム間の追跡に関する処理等を説明するフローチャートである。
【図１０】実施例１における２フレーム以降の追跡に関する処理等を説明するフローチャートである。
【発明を実施するための形態】
【００２１】
以下に本発明の実施例を図面と共に説明する。
【実施例１】
【００２２】
ａ）まず、本実施例の画像処理装置の構成を説明する。
図１に示すように、画像処理装置１は、カメラ３によって撮影された動画の動きベクトルを検出する装置である。
【００２３】
この画像処理装置１は、画像を取り込む画像入力Ｉ／Ｆ部５と、入力画素を平滑化する平滑化処理部７と、平滑化処理された入力画素をＸ微分するＹ微分処理部９と、同様に平滑化処理された入力画素をＹ微分するＹ微分処理部１１と、Ｘ微分された入力画素とＹ微分された入力画素から画像上の特徴となる画素である特徴点を抽出する特徴点抽出部１３と、動き検出する画像単位である画像ブロック単位で特徴点がどこにあるかを示す特徴点マップ１５と、画素単位の特徴点の座標位置や後に詳述する次追跡座標などを記憶する動き情報テーブル１７と、画像データを記憶する画像記憶部１９と、次追跡座標及び動きベクトルを算出する動き検出部２１などによって構成される。
【００２４】
このうち、前記動き検出部２１は、次追跡座標や動きベクトルの算出に必要な画像記憶部１９に格納された画像データを転送する画像データ転送部２１ａと、転送した画像データを記憶しておく動き検出用画像記憶部２１ｂと、動き検出用画像記憶部２１ｂを使用して、次追跡座標や動きベクトル（１フレーム前の画像上の特徴点を含むテンプレート画像が現在の画像上でどこに移動したかを示すベクトル）を算出し、算出結果を動き情報テーブル１７に格納する動き検出演算部２１ｃと、画像上の特徴点の次追跡座標や動きベクトルを算出するために、画像データ転送部２１ａと動き検出演算部２１ｃを制御する動き検出制御部２１ｄによって構成される。
【００２５】
なお、この画像処理装置１のうち、画像記憶部１９、動き検出用画像記憶部２１ｂ、特徴点マップ１５、動き情報テーブル１７が、各種のデータを記憶するメモリ部分であり、それ以外の、平滑化処理部７、Ｘ微分処理部９、Ｙ微分処理部１１、特徴点抽出部１３、動き検出演算部２１ｃが、各種データによる演算処理を行う演算処理部分である。なお、平滑化処理部７とＹ微分処理部９とＹ微分処理部１１とにより前処理部２２が構成されている。
【００２６】
ここで、画像ブロック単位の特徴点とは、画像上の特徴となる画素（例えば、Ｘ微分画像とＹ微分画像のエッジの交点）を示すものであり、後述する様に、特徴点マップとは、画像が複数の画像ブロックで区分された場合に、画像ブロック単位で特徴点の有無等が示してあるマップである。
【００２７】
なお、カメラ３によって取り込まれた画像データや演算結果等は、特徴点マップ１５や動き情報テーブル１７や画像記憶部１９等のメモリに記憶され、前記各部７〜１３、２１による画像データを処理する際などの各種の演算はコンピュータにより実行される。
【００２８】
ｂ）次に、図１における各ブロックの動作を説明する。
カメラ３は、モノクロ画像データを出力し、ここでは画像サイズを６４０×４８０画素のＶＧＡサイズとする。ただし、画像サイズはこの限りではない。また、カラー画像でも問題はなく、その場合には、輝度画像を変換する機能を画像入力Ｉ／Ｆ部５に追加する必要がある。
【００２９】
画像入力Ｉ／Ｆ部５は、カメラ３からの出力信号から、各画素の輝度値、ｘ座標、ｙ座標を取り出し、平滑化処理部７に出力する。また、ここで画像データを１画素ずつ間引いて処理画像サイズを縮小してもよい。
【００３０】
平滑化処理部７は、内部に４ライン分のバッファを保持しており、座標値（ｘ，ｙ）の画素データが入力されたとき、５×５の平滑フィルタ係数に基づく畳み込み演算により、座標値（ｘ−２，ｙ−２）の平滑画素データを、Ｘ微分処理部９とＹ微分処理部１１、画像記憶部１９に出力する。
【００３１】
Ｘ微分処理部９は、平滑化処理部７と同様に、内部に４ライン分のバッファを保持しており、座標値（ｘ，ｙ）の画素データが入力されたとき、５×５のＸ微分フィルタ係数に基づく畳み込み演算により、座標値（ｘ−２，ｙ−２）のＸ微分画素データを、特徴点抽出部３、画像記録部１９に出力する。
【００３２】
Ｙ微分処理部１１は、平滑化処理部７と同様に、内部に４ライン分のバッファを保持しており、座標値（ｘ，ｙ）の画素データが入力されたとき、５×５のＹ微分フィルタ係数に基づく畳み込み演算により、座標値（ｘ−２，ｙ−２）のＹ微分画素データを、特徴点抽出部１３、画像記録部１９に出力する。
【００３３】
なお、平滑化、Ｘ微分、Ｙ微分のフィルタサイズの大きさは、これに限る必要は無いことは言うまでもない。
特徴点抽出部１３は、動き検出する画像単位である画像ブロックの大きさを８×８画素とした場合には、８ライン分のＸ微分画像とＹ微分画像のラインバッファを２つ備えている。そして、一方のＸ微分画像とＹ微分画像のラインバッファに画像データを書き込んでいる間、他方のＸ微分画像とＹ微分画像のラインバッファを使用して、８×８画素の画像ブロックの中で最もコーナーらしい画素を抽出する。
【００３４】
具体的には、Ｈａｒｒｉｓコーナー検出と呼ばれる周知の手法により、各画素のコーナーらしさを示す指標を計算し、その画像ブロックの中で、任意のしきい値より大きく、かつ最も高い値の画素を特徴点とする。
【００３５】
特徴点マップ１５は、図２（Ｂ）に示す様に、どこの画像ブロックに特徴点が存在するかを示す表である。特徴点が検出できた場合には、例えば、フラグとして１を立て、検出できなかった場合にはフラグとして０を立てることができる記憶手段である。なお、特徴点マップ１５は、Ｔ−１フレームの過去の画像用とＴフレームの現在の画像用に２バンクの構成となっているが、それ以上のバンク構成としてもよい。
【００３６】
ここでの処理画像の画像ブロックは、図２（Ａ）に示すように（図２では一部の画像ブロックのみを記載してある）、横８０個×縦６０個であり、外周部分の１列分の画像ブロックは、特徴点抽出に使用しない。従って、処理領域の画像ブロックは、縦７８個×横５８個である。なお、各画像ブロックを区別するために、ラスタ方向に沿って、１〜４５２４までの識別番号が順次設定してある。
【００３７】
動き情報テーブル１７は、図３に示す様に、各画像ブロックに割り当てられた識別番号（１〜４５２４）を索引として、画像ブロック上の特徴点の位置や移動に関する情報などが参照できるようになっている。なお、ここでは、特徴点マップの各識別番号に対応した動き情報テーブル１７の各メモリの内容をテーブルブロックと称する。なお、動き情報テーブル１７は、Ｔ−１フレームの過去の画像用とＴフレームの現在の画像用に２バンクの構成となっているが、それ以上のバンク構成としてもよい。
【００３８】
詳しくは、動き情報テーブル１７には、特徴点のデータとして、特徴点の座標データ（特徴点座標：画素のｘ、ｙの座標のデータ）が記憶されている。
また、次追跡座標（即ち１フレーム前の移動ベクトルの終点：例えば連続する１、２フレーム間で特徴点が移動した座標）が記憶されている。
【００３９】
更に、次追跡ブロックＩＤが記憶されている。この次追跡ブロックＩＤとは、動き情報テーブル１７をリスト構造とするための次オブジェクト（テーブルブロック）を指すものである。つまり、後述する様に（図６参照）、例えば識別番号３に対応したテーブルブロックに、次追跡ブロックＩＤとして２が記憶されていると、次に、識別番号２に対応したテーブルブロックに進み、識別番号２に対応した特徴点について、必要な演算（例えば次追跡座標や動きベクトルを算出する演算）が行われる。
【００４０】
画像記憶部１９には、画像ブロック単位で画像データが格納される。例えば、１画素８ビット、１ワード３２ビットのメモリを使用した場合には、４画素単位でデータが格納され、８×８画素の画像ブロックの場合、１６ワード単位で格納される。
【００４１】
動き検出部２１は、後に詳述するが、平滑化処理部７、Ｘ微分処理部９、Ｙ微分処理部１１の出力画素を、画像ブロック単位で画像データを記憶する画像記憶部（画像メモリ）１９と、画像記憶部１９に格納された１フレーム前の画像データ（平滑画像、Ｘ微分画像、Ｙ微分画像）、現在の画像データ（平滑画像、Ｘ微分画像、Ｙ微分画像）、特徴点マップ１５、動き情報テーブル１７を用いて、次追跡座標や動きベクトルを算出する処理を行う。
【００４２】
ｃ）次に、本実施例の画像処理装置１にて行われる主要な処理の手順について説明する。
本実施例では、複数フレームに跨る特徴点の動きを検出するものである。
【００４３】
(1)ここでは、図４に示す様に、３フレーム（１〜３フレーム、３〜５フレーム・・）間における特徴点の追跡を例に挙げて説明する。なお、以下では複数の特徴点マップや動き情報テーブルを使用して説明するので、それらを、Ａ、Ｂ、Ｃ、Ｄに分けて説明した。
【００４４】
＜１〜３フレーム＞
・まず、１フレーム目の画像から、その特徴点を抽出する（ＳＴＥＰ０）。
そして、その１フレーム目の特徴点が存在する画像ブロックを特徴点マップＡに記憶する。つまり、該当する画像ブロックのフラグを１に設定する。
【００４５】
また、１フレーム目の特徴点の座標を、動き情報テーブルＡに記憶する。なお、この時には、この動き情報テーブルＡには、特徴点の座標しか記憶されていない。
・次に、１、２フレームの画像データを用い、１、２フレーム間の動き検出（特徴点の動きを検出する処理）を行う（ＳＴＥＰ１、２）。
【００４６】
具体的には、１、２フレームの画像データと、特徴点マップＡ及び動き情報テーブルＡのデータ（ここでは１フレーム目の特徴点の座標データ）を用いて、１、２フレーム間で移動した特徴点の座標（次追跡座標）を求める処理を行う。つまり、１フレーム目の特徴点を有する画像ブロックが、２フレーム目のどこに移動したかを、公知の画像処理の技術によって求め、これにより、移動後の特徴点の座標である次追跡座標を求める。なお、同時に移動ベクトルを求める処理を行ってもよい。
【００４７】
なお、この動き検出処理については、例えば特開２００８−１９２０６０号公報に記載の様な公知の手法、即ち、勾配法の一種であるＫａｎａｄｅ−Ｌｕｃａｓ−Ｔｏｍａｓｉ法（ＫＬＴ法）やブロックマッチング等を利用することができる。
【００４８】
・次に、２フレーム目の次追跡座標が存在する画像ブロックを特徴点マップＢに記憶する。
また、（１フレーム目の）特徴点座標と（前記動き検出によって求めた）次追跡座標を、動き情報テーブルＢに記憶する。なお、この（１フレーム目の）特徴点座標は、動き情報テーブルＡからコピーする。
【００４９】
・次に、２、３フレームの画像データを用い、２、３フレーム間の動き検出を行う（ＳＴＥＰ３、４）。
具体的には、２、３フレームの画像データと、特徴点マップＢ及び動き情報テーブルＢのデータ（ここでは２フレーム目の次追跡座標のデータ）を用いて、２、３フレーム間で移動した次追跡座標を求める処理を行う。
【００５０】
・次に、３フレーム目の次追跡座標が存在する画像ブロックを特徴点マップＡに記憶する。なお、このとき、以前の特徴点マップＡや動き情報テーブルＡのデータはクリアされる。
【００５１】
また、（１フレーム目の）特徴点座標と（前記動き検出によって求めた）次追跡座標を、動き情報テーブルＡに記憶する。なお、この（１フレーム目の）特徴点座標は、動き情報テーブルＢからコピーする。
【００５２】
・そして、２フレーム目と３フレーム目の動き検出が終了した後、１〜３フレーム間における動きベクトルの算出結果（即ち、動き情報テーブルＡの各テーブルブロックの次追跡座標と特徴点座標の間のベクトル）を出力する。
【００５３】
＜３〜５フレーム＞
・まず、３フレーム目の画像から、その特徴点を抽出する。
そして、その３フレーム目の特徴点が存在する画像ブロックを特徴点マップＣに記憶する。
【００５４】
また、３フレーム目の特徴点の座標を、動き情報テーブルＣに記憶する。
・次に、３、４フレームの画像データを用い、３、４フレーム間の動き検出を行う。
具体的には、３、４フレームの画像データと、特徴点マップＣ及び動き情報テーブルＣのデータを用いて、３、４フレーム間で移動した次追跡座標を求める処理を行う。
【００５５】
・次に、４フレーム目の次追跡座標が存在する画像ブロックを特徴点マップＤに記憶する。
また、（３フレーム目の）特徴点座標と（前記動き検出によって求めた）次追跡座標を、動き情報テーブルＤに記憶する。なお、この（３フレーム目の）特徴点座標は、動き情報テーブルＣからコピーする。
【００５６】
・次に、４、５フレームの画像データを用い、４、５フレーム間の動き検出を行う。
具体的には、４、５フレームの画像データと、特徴点マップＤ及び動き情報テーブルＤのデータを用いて、４、５フレーム間で移動した次追跡座標を求める処理を行う。なお、同時に移動ベクトルを求める処理を行ってもよい。
【００５７】
・次に、５フレーム目の次追跡座標が存在する画像ブロックを特徴点マップＣに記憶する。
また、（３フレーム目の）特徴点座標と（前記動き検出によって求めた）次追跡座標を、動き情報テーブルＣに記憶する。なお、この（３フレーム目の）特徴点座標は、動き情報テーブルＤからコピーする。
【００５８】
・そして、３〜５フレーム間における動きベクトルの算出結果（即ち、動き情報テーブルＣの各テーブルブロックの次追跡座標と特徴点座標の間のベクトル）を出力する。
(2)次に、前記＜１〜３フレーム＞の処理について、時系列に沿って更に詳細に説明する。
【００５９】
＜ＳＴＥＰ１＞
本処理は、１フレームと２フレーム間の処理である。
図５（左図）に示す様に、例えば画像ブロック２の特徴点が画像ブロック８０に移動した場合を考える。
【００６０】
ここで、画像ブロック２の特徴点から画像ブロック８０の特徴点への動きベクトルは、１、２フレームの画像データと、特徴点マップＡと動き情報テーブルＡのデータ（１フレーム目の特徴点座標）を用いて算出することができる。また、次追跡点とは、画像ブロック８０に移動した特徴点である。
【００６１】
図５（右図）に示す様に、次特徴点の存在有無は特徴点マップＢに記憶される。即ち、（１フレーム目における特徴点の存在する画像ブロックを示す）画像ブロックの識別番号２が、特徴点が移動した画像ブロック８０の位置に記憶される。
【００６２】
また、動き情報テーブルＢのうち、（１フレーム目における特徴点の存在する画像ブロックを示す）画像ブロックの識別番号２に対応するテーブルブロック２には、特徴点座標Ｘ、次追跡座標Ｙ、次追跡ブロックＩＤ  Ｚが記憶される。
【００６３】
つまり、特徴点座標（即ち１フレーム目の特徴点座標）は、動き情報テーブルＡからコピーされて記憶される。また、次追跡座標は、動き検出処理によって算出された値（２フレーム目に移動した特徴点の座標）が記憶される。更に、次追跡ブロックＩＤは、上述した様に、動き情報テーブル１７をリスト構造とするための次オブジェクトを指すもの、即ち、特徴点マップＢから得られた特徴点の識別番号２に対応するテーブルブロック２の次に進むテーブルブロックを指すものであり、ここで、特徴点マップＢに記憶するブロックが０であれば、データの終了を示すＮＵＬＬとする。
【００６４】
＜ＳＴＥＰ２＞
本処理も、１フレームと２フレーム間の処理である。
図６（左図）に示す様に、例えば画像ブロック３の特徴点がＳＴＥＰ１と同じ画像ブロック８０に移動した場合を考える。
【００６５】
図６（右図）に示す様に、次特徴点は特徴点マップＢに記憶される。即ち、（１フレーム目における別の特徴点の存在する）画像ブロックの識別番号３が、特徴点が移動した画像ブロック８０の位置に記憶される。
【００６６】
また、動き情報テーブルＢのうち、画像ブロックの識別番号３に対応するテーブルブロック３には、特徴点座標Ｘ、次追跡座標Ｙ、次追跡ブロックＩＤ  Ｚが記憶される。
つまり、特徴点座標は、動き情報テーブルＡからコピーされて記憶され、次追跡座標は、動き検出処理によって算出された値が記憶される。また、次追跡ブロックＩＤは、特徴点マップＢに記憶するブロックが既に２であったので、２とする。
【００６７】
＜ＳＴＥＰ３＞
本処理は、２フレームと３フレーム間の処理である。
図７（左図）に示す様に、例えば画像ブロック８０の特徴点が更に移動した場合を考える。なお、ここでは、次追跡点は、画像ブロック２の特徴点と画像ブロック３の特徴点の２つある。
【００６８】
特徴点マップＢ（図６  右図）を見ると、ラスタ方向に検索した場合に３と記載してあるので、３を索引番号として動き情報テーブルＢからテーブルブロック３を取り出し、そのデータを用いて動き検出処理を行って、次追跡座標や動きベクトルを算出する。
【００６９】
図７（右図）に示す様に、次特徴点は（クリア後の）特徴点マップＡに記憶される。即ち、（１フレーム目における別の特徴点の存在する画像ブロックを示す）画像ブロックの識別番号３が、特徴点が移動した画像ブロック１５８の位置に記憶される。
【００７０】
また、（クリア後の）動き情報テーブルＡのうち、画像ブロックの識別番号３に対応するテーブルブロック３には、特徴点座標Ｘ、次追跡座標Ｙ、次追跡ブロックＩＤ  Ｚが記憶される。
【００７１】
つまり、特徴点座標は、動き情報テーブルＢからコピーされて記憶され、次追跡座標は、動き検出処理によって算出された値が記憶される。また、次追跡ブロックＩＤは、特徴点マップＡに記憶するブロックが０であれば、データの終了を示すＮＵＬＬとする。
【００７２】
＜ＳＴＥＰ４＞
本処理も、２フレームと３フレーム間の処理である。
図８（左図）に示す様に、動き情報テーブルＢのテーブルブロック３の次追跡ブロックＩＤは２である。従って、この２を索引番号としてデータを取り出し、そのデータを用いて動き検出処理を行って、次追跡座標や動きベクトルを算出する。
【００７３】
図８（右図）に示す様に、次特徴点は（クリア後の）特徴点マップＡに記憶される。即ち、（１フレーム目における特徴点の存在する画像ブロックを示す）画像ブロックの識別番号２が、特徴点が移動した画像ブロック１５７の位置に記憶される。
【００７４】
また、（クリア後の）動き情報テーブルＡのうち、画像ブロックの識別番号２に対応するテーブルブロック２には、特徴点座標Ｘ、次追跡座標Ｙ、次追跡ブロックＩＤＺが記憶される。
【００７５】
つまり、特徴点座標は、動き情報テーブルＢからコピーされて記憶され、次追跡座標は、動き検出処理によって算出された値が記憶される。また、次追跡ブロックＩＤは、特徴点マップＡに記憶するブロックが０であれば、データの終了を示すＮＵＬＬとする。
【００７６】
この様に、本実施例では、特徴点マップ１５をラスタ方向に検索し、そこに特徴点が存在している場合には、その特徴点の識別番号を利用し、動き情報テーブル１７の識別番号に該当するテーブルブロックを見出す。このテーブルブロックには、次追跡ブロックＩＤ（即ち次に処理すべきテーブルブロックを示す番号）が記憶されているので、次に、次追跡ブロックＩＤが示すテーブルブロックのデータ（特徴点座標や次追跡座標）を利用して、更に次追跡座標や動きベクトルを算出することができる。
【００７７】
従って、動き情報テーブルの検索が不要になり、複数フレームに跨る画像ブロックの動き検出する場合に、その動き検出の算出を速めて画像処理を高速化するという課題を解決できる。
【００７８】
次に、前記ステップ１〜４の処理を含む全体の画像処理について、図９及び図１０に基づいて説明する。
この処理は、過去の画像上の特徴となる画素である特徴点を抽出して、その特徴点を含む所定の大きさを持つテンプレート画像が、現在の画像上のどこに移動したかを示す次追跡座標や動きベクトルを算出するための処理などである。
【００７９】
なお、図９及び図１０では、処理の流れを実線で示すとともに、データの流れを破線で示している。
(1)まず、図９に基づいて、１、２フレーム間の特徴点の追跡に関する処理等について説明する。なお、本処理は、画像データが入力される毎に実施される。
【００８０】
図９に示すように、ステップ（Ｓ）１００では、カメラ３で撮影した画像データを取り込む（画像入力Ｉ／Ｆ処理）。
続くステップ１１０では、取り込んだ画像データの前処理を行う。具体的には、上述した平滑化処理、Ｘ微分処理、Ｙ微分処理を行う。
【００８１】
続くステップ１２０では、特徴点を抽出する処理を行う（特徴点抽出処理）。この特徴点抽出処理とは、前処理から得られる画像から画像ブロック単位で特徴点を抽出し、かつ、特徴点が抽出できた場合には、画像ブロックに特徴点が存在するフラグを特徴点マップに立て、特徴点の位置を動き情報テーブルに格納する処理である。
【００８２】
また、この特徴点抽出処理とは別に（並列に）、平滑化した画像データを画像記憶部１９に記憶する処理を行う。
続くステップ１３０では、特徴点が存在する全ての画像ブロックの次追跡座標や動きベクトルの算出を終了したかを判断する（終了判定処理）。ここで肯定判断されると本処理を終了し、否定判断されるとステップ１４０に進む。
【００８３】
ステップ１４０では、画像データ転送量判断処理を行う。この画像データ転送量判断処理とは、過去の画像が入力されたときにフラグを立てた他方（過去）の特徴点マップ（ここでは（Ｔ−２フレーム）の特徴点マップ）を参照して、特徴点が存在する全ての画像ブロックをラスタ方向に処理するために、現時点で動きベクトルの算出を終えた画像ブロックとその画像ブロックライン上の特徴点が存在する次の画像ブロックまでの距離を計算し、距離の値から、既に動き検出用画像記憶部２１ｂに転送している画像データが、特徴点が存在する次の画像ブロックにおいて、動きベクトルの算出に使用できるか判定し、不足している画像データ量を明らかにする処理である。
【００８４】
なお、ここでは、（Ｔ−２フレーム目）の特徴点マップと（Ｔ−２フレーム目）の動き情報テーブルが、前記図４の特徴点マップＡと動き情報テーブルＡに相当し、（Ｔ−１フレーム目）の特徴点マップと（Ｔ−１フレーム目）の動き情報テーブルが、前記図４の特徴点マップＢと動き情報テーブルＢに相当する（なお、ここでは、Ｔ＝３フレームとしたときの例を挙げる）。
【００８５】
続くステップ１５０では、上記画像データ量分だけ、画像記憶部１９から動き検出用画像記憶部２１に転送する（画像データ転送処理）。
続くステップ１６０では、動き検出演算処理を行う。この動き検出演算処理とは、動き検出用画像記憶部２１ｂを使用して、過去の画像上の特徴点を含むテンプレート画像が現在の画像上でどこに移動したかを示す次追跡座標や動きベクトルを算出し、算出結果を動き情報テーブルに格納する処理である。なお、上述した説明では次追跡座標を格納する例について説明した。
【００８６】
ここで、前記ステップ１３０〜１６０の処理が、動き検出部２１にて行われる動き検出処理（次追跡座標や動きベクトルを算出する処理）であり、この動き検出処理が、前記図４のＳＴＥＰ１、２に相当する。
【００８７】
なお、前記ステップ１００〜１２０の処理と、ステップ１３０〜１６０の処理は、並列して処理される。
従って、上述した処理によって、特徴点を含む所定の大きさを持つテンプレート画像が、現在の画像上のどこに移動したかを示す次追跡座標や動きベクトルを算出することができる。
【００８８】
(2)次に、図１０に基づいて、２フレーム以降の特徴点の追跡に関する処理等について説明する。
図１０に示すように、ステップ２００では、特徴点が存在する全ての画像ブロックの次追跡座標や動きベクトルの算出を終了したかを判断する（終了判定処理）。ここで肯定判断されると本処理を終了し、否定判断されるとステップ２１０に進む。
【００８９】
ステップ２１０では、画像データ転送量判断処理を行う。この画像データ転送量判断処理は、（Ｔ−２フレーム）の特徴点マップを参照して、特徴点が存在する全ての画像ブロックをラスタ方向に処理するために、現時点で動きベクトルの算出を終えた画像ブロックとその画像ブロックライン上の特徴点が存在する次の画像ブロックまでの距離を計算し、距離の値から、既に動き検出用画像記憶部２１ｂに転送している画像データが、特徴点が存在する次の画像ブロックにおいて、動きベクトルの算出に使用できるか判定し、不足している画像データ量を明らかにする処理である。
【００９０】
なお、ここでは、（Ｔ−２フレーム目）の特徴点マップと（Ｔ−２フレーム目）の動き情報テーブルが、前記図４の特徴点マップＢと動き情報テーブルＢに相当し、（Ｔ−１フレーム目）の特徴点マップと（Ｔ−１フレーム目）の動き情報テーブルが、前記図４の特徴点マップＡと動き情報テーブルＡに相当する（なお、ここでは、Ｔ＝４フレームとしたときの例を挙げる）。
【００９１】
続くステップ２２０では、上記画像データ量分だけ、画像記憶部１９から動き検出用画像記憶部２１ｂに転送する（画像データ転送処理）。
続くステップ２３０では、動き検出演算処理を行う。この動き検出演算処理とは、動き検出用画像記憶部２１ｂを使用して、過去の画像上の特徴点を含むテンプレート画像が現在の画像上でどこに移動したかを示す次追跡座標や動きベクトルを算出し、算出結果を動き情報テーブルに格納する処理である。
【００９２】
続くステップ２４０では、継続判定処理を行う。即ち、他に次追跡点があるか否かを判定する。ここで肯定判断されると前記ステップ２３０に戻り、一方否定判断されると前記ステップ２００に戻る。
【００９３】
つまり、次追跡ブロックＩＤを確認し、それがＮＵＬＬでない場合には、他に次追跡点があるとみなされるので、次追跡ブロックＩＤの示すテーブルブロックのデータを利用して、再度ステップ２００に進んで、動き検出演算処理を行うのである。
【００９４】
ここで、前記ステップ２００〜２４０の処理が、動き検出部２１にて行われる動き検出処理（次追跡座標や動きベクトルを算出する処理）であり、この動き検出処理が、前記図４のＳＴＥＰ３、４に相当する。
【００９５】
従って、上述した処理によって、特徴点を含む所定の大きさを持つテンプレート画像が、現在の画像上のどこに移動したかを示す次追跡座標や動きベクトルを算出することができる。
【００９６】
なお、上述した処理のうち、各画像ブロックラインの処理については、特開平２００８−１９２０６０号公報の図１４のステップ２００〜３２０の処理と同様な内容であり、現在の処理ブロックと次の特徴点が存在する画像ブロックまでの距離を特徴点マップから求め、その値から、既に転送している画像データが次の動き検出演算に使用できるかどうか判定し、不足しているデータのみを転送するようにデータ転送を最小とするように制御する。
【００９７】
具体的には、現在処理を終えた画像ブロックと次の特徴点が存在する画像ブロックまでの距離（単位：画像ブロック）を求める。そして、例えば距離値が３画像ブロック以下であれば、隣り合う画像ブロックのデータを利用できるので、動き検出処理するのに不足している画像データ（３個×６枚の画像データ）のみを転送（バースト転送）し、４画像ブロック以上であれば９個×６枚の画像データを転送（スキップ転送）する。なお、画像データの個数とは画像ブロックの個数であり、６枚の画像データとは、Ｔ−１，Ｔの、平滑化画像、Ｘ微分画像、Ｙ微分画像である。
【００９８】
同様の処理を、同じ画像ブロックライン上の特徴点が存在する画像ブロックについて、全て処理するまで繰り返す。さらに、これらの処理を全画像ブロックラインに対して適用する。
【００９９】
以上の構成により、特徴点が存在する画像ブロックを処理するために必要な画像データのみを転送し、高速に動きベクトルを検出することができる。
尚、本発明は上記実施例に限定されるものではなく、様々な態様にて実施することが可能である。
【０１００】
例えば動き情報テーブルには、次追跡座標だけでなく、動きベクトルを記憶してもよい。また、動きベクトルは、次追跡座標の算出とは（画像処理の際の必要に応じて）別のタイミングで行ってもよい。なお、移動前後の次追跡座標などから、動きベクトルを算出することができる。
【符号の説明】
【０１０１】
１…画像処理装置
３…カメラ
５…画像入力Ｉ／Ｆ部
７…平滑化処理部
９…Ｘ微分処理部
１１…Ｙ微分処理部
１３…特徴点抽出部
１５…特徴点マップ
１７…動き情報テーブル
１９…画像記憶部
２１…動き検出部
【図１】
2010211398.tif 000003
【図９】
2010211398.tif 000004
【図１０】
2010211398.tif 000005
【図２】
2010211398.tif 000006
【図３】
2010211398.tif 000007
【図４】
2010211398.tif 000008
【図５】
2010211398.tif 000009
【図６】
2010211398.tif 000010
【図７】
2010211398.tif 000011
【図８】
2010211398.tif 000012