以下、図面を参照しながら本発明の動きベクトル検出装置、および動きベクトル検出方法、並びにコンピュータ・プログラムの詳細について説明する。なお、説明は、以下の項目順に行なう。
1.本発明の概要
2.動きベクトル検出装置全体構成および動きベクトル検出処理手順概要
3.評価値テーブル形成処理の詳細
4.評価値テーブル形成処理における代表点選別処理
5.評価値テーブルの具体例
6.候補ベクトル抽出処理の詳細
7.動きベクトル決定処理の詳細
[1.本発明の概要]
以下、説明する動きベクトル検出処理においては、代表点マッチング法を適用する。代表点マッチング法については、本特許出願人が先に出願し、特許取得済みである特許2083999号公報に開示されている。すなわち、以下、説明する動きベクトル検出処理は、前述の背景技術の欄で説明した候補ベクトル方式(特開2001−61152号公報に開示)を適用するとともに、代表点マッチング法を利用した処理例である。
なお、以下の説明においては、動画像データを構成する1フレームを1画面として、各画面(フレーム)間の相互検証処理によってフレームにおける動きベクトル検出処理を行う例について説明するが、本発明は、このような処理例に限らず、例えば、1フレームを細分化とした1フィールドを1画面として扱い、1フィールド単位の動きベクトル検出処理を行なう場合などにも適用可能である。
また、以下に説明する処理例は、主にテレビジョン信号に基づく動画像データに対する処理例として説明するが、本発明は、テレビジョン信号以外の様々な動画像データに対しても適用可能である。また、映像信号を処理対象とする場合においてもインターレース信号およびノンインターレース信号の何れでもよい。
本発明の動きベクトル検出装置、および動きベクトル検出方法における動きベクトル検出処理の特徴は、大きく分けて以下の3つとなる。
1.代表点マッチング法により、1画面における評価値テーブルを形成する際、代表点と参照画素とのフレーム差の絶対値を可変閾値で代表点毎に適応判定した判定結果を積算する度数分布型の評価値テーブルとして構成する。本構成により、評価値の取り得る値を8ビットより少ないビット長(例えば1ビット)とすることが可能となり、メモリ容量の削減が可能となる。
2.度数分布型の評価値テーブルを形成する際、無意味なデータが評価値テーブルに積算されないように、代表点の選別判定を行う。本構成により、評価値テーブルの信憑性が高め、候補ベクトルを正しく抽出することが可能となる。
3.各画素に対応する動きベクトル割付けの際、画素マッチングとブロックマッチングの併用を行う。本構成により、画素マッチングにおいて、ブロックマッチングが不要と判定された場合は、ブロックマッチング処理を省略可能となり、演算回数の低減が可能となる。
まず、図2〜図4を参照して、本実施例の動きベクトル検出処理において適用する代表点マッチング法による評価値テーブルの作成処理、評価値テーブルに基づく候補ベクトルの抽出処理、抽出した候補ベクトルに基づく各画素に対応する動きベクトル設定処理の概要について説明する。
動画像を構成する時間的に連続するフレーム画像、例えば図に示す時間(t)の現フレーム[Ft]80と、時間(t−1)の前フレーム[Ft−1]70を抽出する。
例えば、現フレーム[Ft]80を参照フレームとし、前フレーム[Ft−1]70を、m画素×nラインの複数のブロックに分割し、各ブロックを代表する代表点Ryを設定する。各ブロックの代表点は、例えば、
a.ブロックの中心位置の画素値、
b.ブロック内のすべての画素の画素値の平均値、
c.ブロック内のすべての画素の画素値の中間値、
等の、ブロックを代表する画素値が対応付けられる。
代表点マッチング法では、前フレーム[Ft−1]70に設定したブロックの代表点Ry71に対応させて、現フレーム[Ft]80に所定のサーチエリア81を設定し、設定したサーチエリア81内に含まれる各画素の画素値と代表点Ry71の画素値との比較を行なう。サーチエリア81は例えば、p画素×qラインの画素領域として設定される。
すなわち、上記a〜cのいずれかの代表点画素値と、サーチエリア81内の各画素の画素値を比較検証して、評価値(例えば、フレーム差や判定結果)を算出する。評価値は、サーチエリア81の各偏移毎(各画素位置毎)に算出される。前フレーム[Ft−1]70に設定したブロックの代表点各々に対応して、現フレーム[Ft]80にサーチエリアが設定され、代表点画素値と、対応するサーチエリア内の各画素の画素値を比較に基づく評価値を取得し、1画面内の全ての代表点について積算する。従って、サーチエリアと同一の大きさの評価値テーブルが形成される。
なお、各代表点に対応するサーチエリアは、図3(a)に示すように隣接するサーチエリアと一部が重なり合うように設定しても良い。図3(a)に示す例では、サーチエリアをp×q(画素またはライン)の領域に設定した例であり、例えば、前フレーム[Ft−1]70に設定したブロックの代表点71aに対応するサーチエリア81aと、前フレーム[Ft−1]70に設定したブロックの代表点71bに対応するサーチエリア81bとが重なりを持つ領域として設定される。
このように、サーチエリアは、各代表点に対応付けられて設定され、各代表点と、その代表点に対応して設定されたサーチエリア内の画素との比較が実行されて、比較値に基づいて、例えば相関の度合いが高いほど(画素値の一致度合いが高いほど)高い評価値が設定され、各サーチエリアの構成画素に対応する評価値が設定される。
各サーチエリアにおける評価値は、図3(B)に示すように積算され、その結果として、図3(C)に示すような評価値テーブル90が生成される。評価値テーブルは、前フレーム[Ft−1]70に設定した例えばn個のブロックに設定された各ブロックの代表点Ry1〜nと、参照フレームである現フレーム[Ft]80に設定した各代表点Ry1〜nに対応するサーチエリア内の各画素との比較に基づく評価値、例えば差分絶対値の積算値として算出され、サーチエリアと同一の大きさの評価値テーブルとして形成される。
なお、従来技術においては、画素値(例えば0〜255の8ビット)の差分値としての8ビットデータを積算していたが、本発明においては、後述するように、差分データに基づく例えば1ビットの評価値を算出して、1ビットデータの評価値の積算を行なう構成としてある。この処理の詳細については、後述する。
評価値テーブル90においては、サーチエリアの各偏移位置(i,j)における画素値と代表点との相関が高い場合に、ピーク(極値)が発生する。評価値テーブルに出現するピークは、動画像データの画面の表示物体の移動に対応する。
例えば、画面(フレーム)全体が同一の動きをした場合は、サーチエリア(p×q)と同一の大きさの評価値テーブルにおいて、その動き方向、距離を持つベクトルの終点に対応する位置に1つのピークが出現する。また、画面(フレーム)内に2つの異なる動きをした物体があった場合は、サーチエリア(p×q)と同一の大きさの評価値テーブルにおいて、その異なる動き方向、距離を持つ2つのベクトルの終点に対応する2つの位置に2つのピークが出現する。なお、静止部分がある場合は、静止部分に対応するピークも出現する。
このような評価値テーブルに出現するピークに基づいて、前フレーム[Ft−1]70と、参照フレームである現フレーム[Ft]80とにおける動きベクトルの候補(候補ベクトル)を求める。
評価値テーブルに出現したピークに基づいて、複数の候補ベクトルを抽出した後、フレームの各画素について、抽出した候補ベクトルから最も適応する候補ベクトルをそれぞれ選択して、各画素に対応する動きベクトルとして設定する。
抽出候補ベクトルに基づいて実行する各画素に対応する動きベクトルの設定処理について図4を参照して説明する。
図4において、中央の画素91が前フレーム[Ft−1]の1つの画素を示している。この画素は例えば輝度値(α)を有している。また、前述の評価値テーブルに出現したピークに基づいて、複数の候補ベクトルが抽出済みであり、これらの候補ベクトルを図に示す候補ベクトルA,B,Cであるとする。前フレーム[Ft−1]の1つの画素91は、これらの候補ベクトルのいずれかに従って移動して、現フレーム[Ft]の画素に対応する位置に表示されると判定される。
図4において、画素a95、画素b96、画素c97は、前フレーム[Ft−1]の1つの画素91から候補ベクトルA,B,Cに基づいて移動先として推定される各画素位置の現フレーム[Ft]の画素を示している。これらの3画素を含むブロックの画素値と、画素91を含むブロックの画素値との相関がブロックマッチング処理によって判定され、最も高い対応にある組が選択され、その選択した組に設定された候補ベクトルを画素91の動きベクトルとする。
1つの画面(フレーム)に含まれるすべての画素について、同様の処理、すなわち候補ベクトルから最適なベクトルの選択処理を行い、各画素に対応する動きベクトルを設定する。
上述したように、代表点マッチングは、各ブロックを代表する代表点を設定し、設定した代表点のみについての評価値算出を行なって候補ベクトルを設定することが可能であり、限られた数の代表点のみの評価値算出を行なうことで、評価値算出に要する演算量を減少させることができ、高速処理が可能となる。
以下、説明する本発明の動きベクトル検出装置および動きベクトル検出方法の実施例においては、上述の代表点マッチングを適用した候補ベクトル抽出処理を伴う動きベクトル検出構成を説明する。
[2.動きベクトル検出装置全体構成および動きベクトル検出処理手順概要]
動きベクトル検出処理を実行する本発明の動きベクトル検出装置の一実施例構成を図5に示し、動きベクトル検出処理の処理シーケンスを図6のフローチャートに示す。
動きベクトル検出装置は、図5に示すように、評価値テーブル形成部101、候補ベクトル抽出部102、動きベクトル検出部103、制御部(コントローラ)104を有する。評価値テーブル形成部101は、動きベクトル検出処理対象となる画像データを入力端子を介して入力し、評価値テーブルを生成する。入力画像は、例えば、ラスタスキャンにより得られる画像データである。画像データは、例えば、ディジタルカラー映像信号のコンポーネント信号中の輝度信号を含む。
入力画像データは、評価値テーブル形成部101に供給され、前述した代表点マッチング法をベースとして、サーチエリアと同一の大きさの評価値テーブルを形成する。図6のフローにおけるステップS101の処理である。
候補ベクトル抽出部102は、評価値テーブル形成部101において生成した評価値テーブルから、1画面内の候補ベクトルとして、複数の動きベクトルを抽出する。すなわち、前述したように、評価値テーブルに出現したピークに基づいて、複数の候補ベクトルを抽出する。図6のフローにおけるステップS102の処理である。
動きベクトル決定部103では、候補ベクトル抽出部102において抽出した複数の候補ベクトルを対象として、全フレームの各画素毎に、候補ベクトルによって対応付けられるフレーム間の画素間の相関をブロックマッチング等により判定し、最も相関の高い対応となったブロックを結ぶ候補ベクトルを、その画素に対応する動きベクトルとして設定する。図6のフローにおけるステップS103の処理である。この処理は、先に図4を参照して説明した処理である。
動きベクトル決定部103では、1つの画面(フレーム)に含まれるすべての画素について、候補ベクトルから最適なベクトルの選択処理を行い、各画素に対応する動きベクトルを決定し、決定した動きベクトルを出力する。
制御部104は、評価値テーブル形成部101、候補ベクトル抽出部102、動きベクトル検出部103における処理タイミングの制御、中間データのメモリに対する格納、出力処理制御などを行なう。
以上が、本発明の動きベクトル検出装置において実行する代表点マッチングをベースとした評価値テーブルの生成と、候補ベクトル方式を適用した動きベクトル検出処理の流れである。
[3.評価値テーブル形成処理の詳細]
次に、本発明の動きベクトル検出装置における評価値テーブル形成部の詳細について説明する。評価値テーブル形成部の詳細構成を図7(A)に示す。なお、図7(B)には、比較のため、従来型(特開2001−61152号公報において開示)の装置に設定されている評価値テーブル形成部の構成を示している。
図7(A)に示すように、本発明の動きベクトル検出装置における評価値テーブル形成部200は、相関演算部210、可変閾値生成部220、相関判定部230、評価値テーブル算出部250を有する。
相関演算部210は、代表点メモリ211、画素値の差分データを算出する減算回路212、絶対値算出部213を有する。可変閾値生成部220は、特徴量抽出部221、特徴量メモリ222、閾値生成部223を有する。相関判定部230は、相関演算部210からの出力値であるフレーム差絶対値データと、可変閾値生成部220からの出力である閾値データとの比較処理を行なう比較部230を有し、各代表点と各画素の1つの評価値として、例えば1ビットデータの評価値を算出し、評価値テーブル算出部250に出力する。評価値テーブル算出部250は、例えば1ビットデータからなる評価値を評価値積算部251において積算し、評価値テーブルを生成して評価値テーブルメモリ252に格納する。
図7(B)に示す従来型(特開2001−61152号公報において開示)の評価値テーブル形成部は、相関演算部を有し、相関演算部の出力(8ビット)データを集積して、評価値テーブルを生成して評価値テーブルメモリに格納する構成である。
はじめに、図7(A),(B)の評価値テーブル形成部の共通構成部分である相関演算部の処理について説明をする。
入力端子を介して画像データが、例えばフレーム単位で、相関演算部210に入力される。相関演算部210に入力された画像データは、減算回路212及び代表点メモリ211に供給される。
代表点メモリ211に記憶される画像データは、例えばフレーム単位で入力される画像データから生成される予め決められた代表点データである。例えば、先に図2、図3を参照して説明した画面を分割して設定されたブロック、例えばm×n画素のブロックにおいて代表点が1つ設定される。なお、代表点は、
a.ブロックの中心位置の画素値、
b.ブロック内のすべての画素の画素値の平均値、
c.ブロック内のすべての画素の画素値の中間値、
等の、ブロックを代表する画素値データが対応付けられる。
具体的には、例えば、入力フレーム画像から、空間的に均等に間引かれた画素位置の画像データ(画素値データ)が、制御部(コントローラ)104(図5参照)からの信号によるタイミング制御によって選択されて、代表点データとして代表点メモリ211に記憶される。
代表点メモリ211から読み出された前フレームの代表点データと、現フレームの画像データが、減算回路212に供給される。
減算回路211は、前フレームの代表点の画素値と、現フレームの画像データに設定される各代表点に対応するサーチエリア内の画素との画素値差分、例えばフレーム差(相関演算結果)を算出し、絶対値算出部213に出力する。
絶対値算出部213では、減算回路211から入力する前フレームの代表点データと、現フレームの画像データに基づくフレーム差(相関演算結果)を入力し、フレーム差絶対値を算出する。
図7(B)に示す従来型の評価値テーブル形成部は、相関演算部の出力値であるフレーム差絶対値(8bit)に基づいて評価値テーブルを生成する構成であり、各サーチエリアにおいて各画素毎に設定されるフレーム差絶対値(8bit)の積算処理を実行し、評価値テーブルを生成していた。画素値は、例えば輝度値として0〜255からなる256階調の輝度レベルを有しており、この256階調を示す画素値データとして8ビットが適用されている。
従って、従来型の評価値テーブル形成部の相関演算部では、8ビットの代表点画素値データとサーチエリアにおける各画素の画素値8ビットの減算によって8ビットの評価値を算出し、この8ビットデータを積算処理に適用していた。
前述したように、1画面内の全ての代表点に対する相関演算結果を積算することで、評価値テーブルが生成され、生成した評価値テーブルに出現するピーク(極値)によって、候補ベクトルの抽出が実行される。
従って、候補ベクトルの抽出を行なうためには、評価値テーブルに出現するピーク(極値)が識別されればよい。従来型の評価値テーブル形成部では、上述したように、8ビットの評価値を算出し、これをこのまま積算処理に適用していた。評価値テーブルに求められる情報は、ピーク情報であり、ピーク(極値)の識別のために8ビットの評価値を積算することは必ずしも必要ではなく、8ビットデータの積算を行なうことは、評価値積算部251における演算量を過大にし、また必要となるメモリ容量を増大させているという問題がある。
そこで、本実施例における図7(A)に示す評価値テーブル形成部200は、相関演算部210からの出力として得られる8ビットのフレーム差絶対値を相関判定部230に入力して、相関判定部230で例えば1ビットデータに縮退し、この1ビットデータを評価値として、評価値テーブル算出部250の評価値積算部251に出力し、評価値積算部251では1ビットデータの積算処理を行なって評価値テーブルの生成を行なう構成としている。この構成により、評価値積算部251における積算のための演算処理量が大幅に削減され、効率的かつ高速な評価値テーブルの生成が可能となる。また評価値データ、および評価値テーブルの記憶領域としてのメモリ容量も小さくすることが可能となる。この結果として、性能を低下させることなく、ハードウェア規模の低減が可能となる。
図7(A)に示す本発明の評価値テーブル形成部200の相関判定部230には、相関演算部210からのフレーム差絶対値が供給される。これは、従来の評価値テーブル形成部200の相関判定部と同様、代表点の画素値データ8ビットと、サーチエリアの比較対照となる画素値8ビットの差分データであり8ビットデータとして入力される。なお、本例では、画素は、0〜255の256の画素値レベルを持つものとして説明する。相関判定部230は、この入力8ビットデータを、比較部231において、可変閾値生成部220から入力する可変閾値との比較を実行し、1ビット[0]または[1]の評価値出力を行なう。
この1ビット評価値は、例えば、
ビット値[1]は、代表点の画素値と、サーチエリアの比較対照となる画素値との相関あり
ビット値[0]は、代表点の画素値と、サーチエリアの比較対照となる画素値との相関なし
のいずれかを示すことになる。
この出力に基づいて、評価値テーブル算出部250の評価値積算部は、ビット値[1]の数を積算する処理を行なう。この結果として、相関ありの結果が多いか否かを示す度数分布型の評価値テーブルが生成される。度数分布型の評価値テーブルは、サーチエリア内の各偏移(i,j)において、代表点と参照点に相関がある場合に、その偏移の度数をインクリメントし、1画面の全ての代表点の相関判定結果が積算されたものとなる。つまり、評価値テーブルの各偏移(i,j)の度数f(i,j)は、代表点と参照点の相関条件が成立した回数を示すものであり、形成された評価値テーブルには、動画像データの画面の表示物体の移動に対応したピーク(極値)が出現する。
従って、代表点の画素値データ8ビットと、サーチエリアの比較対照となる画素値8ビットの差分データである8ビットデータの積算処理を行なうことなく、相関の有無のみを示す1ビットデータの積算によって生成した評価値テーブルにおいても、動画像データの画面の表示物体の移動に対応したピーク(極値)が出現し、候補ベクトルの選定が可能となる。
図7(A)に示す本発明の評価値テーブル算出部250における相関判定部230では、可変閾値を可変閾値生成部220から入力して、相関演算部210から入力する差分データとしてのフレーム差絶対値との比較処理を行なう。
固定閾値を用いず、可変閾値を適用する理由は、実際の動きの程度に対応した、より正確な動き検出を行うことを可能とするためである。
空間内に於けるレベル変動の大きい画像、つまり、ある注目画素の近傍で大きなレベル変化(画素値変動)のある画像、例えば、縦方向の複数本のストライプ状のパターン画像など、エッジ部分の多い画像の場合には、次のフレームで画像に僅かの動きがあってもフレーム差が非常に大きくなる。従って、相関演算部210から出力されるフレーム差分は大きな値になる。一方、空間内に於けるレベル変動の小さい画像、例えば人の顔の頬の部分、あるいは緑一色の草原や、空に雲が浮かんでいるような全体的に平坦な輝度分布を持つ画像の場合には、次のフレームで画像に動きがあってもフレーム差が小さくなる。従って、相関演算部210から出力されるフレーム差分は小さな値となる。
固定閾値を用いて、相関演算部210から出力されるフレーム差分データを一律に「相関有り」、または「相関無し」のいずれかに区別してしまうと、全体的に平坦な輝度分布を持つ画像の場合には、動きがあった場合にも相関なしと判定され、動きのない画像データであると判定されてしまう恐れがある。
そこで、本発明の装置においては、注目画素の時間方向変動を空間内変動で正規化し、この正規化出力に基づいて動きの有無を判断する。この処理のために、可変閾値生成部220において、注目画素の時間方向変動を空間内変動で正規化したデータを用いて可変閾値を生成して、可変閾値を適用して、相関演算部210から出力されるフレーム差分データとの比較を行う。
すなわち、画像データに応じた異なる閾値を適用して、相関判定部230の比較部231において相関演算部210から入力する差分データとしてのフレーム差絶対値との比較処理を行なって相関あり[1]、相関なし[0]の評価値を生成して、度数分布評価値テーブルの度数としての評価値出力を得る。
可変閾値に基づく相関判定を行なうことで、時間方向変動のみに基づいてなされる動きの有無の判断(固定閾値を適用した判定に対応する)と比較して、実際の動きの程度に対応した、より正確な動き検出を行うことができる。
つまり、可変閾値を用いた相関の判定を行なうことで、時間方向変動が大きい場合であっても、フレーム内に於けるレベル変動、即ち、空間内変動が比較的大きい場合には動き検出感度が低下する。また、時間方向変動が小さい場合であっても、フレーム内に於けるレベル変動、即ち、空間内変動が比較的小さい場合には、動き検出感度が向上し、画像データに応じた正確な動き判定、すなわち、相関判定処理が可能となる。
可変閾値生成部220の処理について説明する。可変閾値生成部220は、空間内変動を表す特徴量を抽出し、特徴量に対応して異なる閾値を設定する。空間内変動を表す特徴量の抽出は、特徴量抽出部221において実行する。
特徴量抽出部221は、相関演算部210の減算回路212の出力値、すなわち、フレム差分データを入力し、空間内変動を表す特徴量として、代表点の近傍領域(3×3)のダイナミックレンジ(DR)を算出する。
なお、ここでは、空間内変動を表す特徴量として、代表点の近傍領域(3×3)のダイナミックレンジ(DR)を適用する例を説明するが、空間内変動を表す特徴量としては、例えば、代表点の両隣3画素のダイナミックレンジや、差分和、近傍領域の平均偏差和等を用いることが可能である。
代表点近傍領域(3×3)のダイナミックレンジ(DR)は、代表点マッチングの相関演算結果を利用することで算出可能である。代表点マッチングの相関演算結果を利用した代表点近傍領域(3×3)のダイナミックレンジ(DR)算出処理について、図8を参照して説明する。
図8(A)には、現フレーム[Ft]、現フレーム[Ft]の1つ前の前フレーム[Ft−1]、現フレーム[Ft]の2つ前のフレーム[Ft−2]の3つの連続フレームを示している。
現フレーム[Ft]の1つ前の前フレーム[Ft−1]のある代表点Ryの近傍領域(3×3)は、例えば、代表点Ryの画素を中心画素(i,j)とすると、図8(B)に示す9点の画素(i−1,j−1)〜(i+1,j+1)によって構成される。代表点Ry近傍領域(3×3)のダイナミックレンジ(DR)は、これらの9画素(i−1,j−1)〜(i+1,j+1)の各画素値の最大値と最小値の差で表される値である。
可変閾値生成部220の特徴量抽出部221は、この前フレーム[Ft−1]のある代表点Ryの近傍領域(3×3)のダイナミックレンジを、2フレーム前[Ft−2]の代表点Pyにおける相関演算のフレーム差に基づいて算出する。この処理を実行する特徴量抽出部221の構成例を図9に示す。
特徴量抽出部221には、連続するフレームの代表点とサーチエリアにおける画素値の差分データがフレーム差として入力される。図8に示す2フレーム前[Ft−2]の代表点Pyと、前フレーム[Ft−1]のある代表点Ryの近傍領域(3×3)の差分データがそれぞれ入力されたと仮定する。
差分データは、代表点Pyと、9画素(i−1,j−1)〜(i+1,j+1)各々の差分データは、順次入力され、最大値検出部301、最小値検出部303において、代表点Pyと、9画素(i−1,j−1)〜(i+1,j+1)各々の差分データの最大値と最小値が求められる。まず最初の入力差分データは、最大値検出部301、最小値検出部303を通過して、レジスタ302,304に格納され、次に入力する差分データと、最大値検出部301、最小値検出部303において比較され、それぞれ最大差分値がレジスタ302に格納され、最小差分値がレジスタ304に格納される。これを繰り返し実行することで、代表点Pyと、9画素(i−1,j−1)〜(i+1,j+1)各々の差分データの最大値と最小値が求められる。
この結果求められた代表点Pyと、9画素(i−1,j−1)〜(i+1,j+1)各々の差分データの最大値と最小値は、減算回路305において減算され、この結果が代表点Ryの近傍領域(3×3)、すなわち、9画素(i−1,j−1)〜(i+1,j+1)のダイナミックレンジ(DR)としてラッチ306を介して出力される。
前述したように、代表点Ryの近傍領域(3×3)のダイナミックレンジとは、図8(B)に示す9点の画素の画素値の最大値と最小値の差で表される値である。2フレーム前[Ft−2]の代表点Pyと、この9点とのフレーム差は、9点のDC成分が変化しただけなので、この9点のフレーム差の最大値と最小値の差も、上記のダイナミックレンジと同値となる。
具体的な画素値を設定した例で説明する。前フレーム[Ft−1]の9点の画素値が、10、11、7、9、9、12、15、11、8の各画素値(輝度レベル)を有するとする。2フレーム前の[Ft−2]の代表点Ryの画素値が、[11]であったとする。この場合、代表点Ryと、前フレーム[Ft−1]の9点の画素値のフレーム差は、其々、
10−11=−1
11−11=0
7−11=−4
9−11=−2
9−11=−2
12−11=+1
15−11=+4
11−11=0
8−11=−3
となり、これら9個の差分データに基づいて、図9に示す特徴量抽出部221において求められる値(DR)は、上記9式の結果の最大値[+4]から最小値[−4]を減算した値であり、[8]となる。一方、前フレーム[Ft−1]の9点の画素値{10、11、7、9、9、12、15、11、8}から直接求めたダイナミックレンジは、15(MAX)−7(MIN)=8であり、いずれの値も[8]となって、いずれも同値となる。
このように、2フレーム前[Ft−2]と前フレーム[Ft−1]とを対象として相関演算部210において実行する代表点マッチング処理における相関結果、すなわち、フレーム差分データを用いて、前フレーム[Ft−1]の代表点近傍のダイナミックレンジを算出可能であり、このダイナミックレンジ(DR)を空間内変動の特徴量として適用する。
可変閾値生成部221において実行する可変閾値生成処理手順について、図10に示すフローを参照して説明する。
まず、ステップS151では、相関演算部210において実行する代表点マッチング処理により算出されるフレーム差分データを取り込む。ステップS152では、特徴量抽出部221が、上述した処理に従ってフレーム差分データに基づいて代表点近傍のダイナミックレンジ(DR)を算出する。
ステップS153において、算出したダイナミックレンジ(DR)を、代表点に対応させて特徴量メモリ222に記憶する。ステップS154において、特徴量メモリ222から、代表点に対応するダイナミックレンジ(DR)データを読み出す。ステップS155において、読み出したダイナミックレンジ(DR)を閾値生成部223で閾値に変換し、ステップS156において、変換した可変閾値を、相関判定部230に出力する。
このように、図7(A)における可変閾値生成部220の特徴量抽出部221では、上述した処理によって、相関演算部210から入力するフレーム差分データに基づいて、特徴点近傍のダイナミックレンジを算出し、これを空間内変動を表す特徴量として特徴量メモリ222に格納し、閾値生成部223は、この特徴量を閾値として設定し、相関判定部230に出力する。
閾値生成部223における閾値生成処理、すなわち、空間内変動の特徴量としての代表点近傍のダイナミックレンジデータに基づく閾値生成処理について、図11を参照して説明する。
閾値生成部223には、特徴量抽出部221において、フレーム差分データに基づいて算出されたダイナミックレンジ(DR)データが入力される。このデータは、8ビット画素値の差分データであり8ビットデータである。
閾値生成部223のビット分解部351では、入力された8ビットのダイナミックレンジ(DR)をMSBから1ビット単位で分解し、上位6ビットのみを抽出する。上位ビットから、それぞれ、D7、D6、D5、D4、D3、D2とする。
OR回路352には、MSBから3ビットD7、D6、D5が入力され、OR演算が実行され、1ビットの出力がなされる。3ビットD7、D6、D5のいずれかにビット値[1]が含まれれば[1]が出力される。
さらに、OR回路352の出力と、ビット分解部351の出力D4が、OR回路353に入力され、OR演算の結果が出力値とされる。さらに、OR回路353の出力と、ビット分解部351の出力D3が、OR回路354に入力され、OR演算の結果が出力値とされる。さらに、OR回路354の出力と、ビット分解部351の出力D2が、OR回路355に入力され、OR演算の結果が出力値とされる。
OR回路353の出力と、OR回路354の出力と、OR回路355の出力の計3ビットd2,d1,d0が、ビット合成部356に入力され、ビット合成部356では、上位から、d2、d1、d0の3ビットデータ[000]〜[111]を10進数に変換し、値0〜7を、閾値として出力する。このように、閾値生成部223は、注目画素近傍の空間内変動の特徴量としての代表点近傍のダイナミックレンジデータの構成ビットのビット情報圧縮処理により閾値を算出する。
図12は、この閾値生成部223の入出力関係をプロットしたグラフであり、閾値の上限リミッターを設けた可変閾値が生成される。図12は、横軸が、可変閾値生成部に入力されるフレーム差分に基づいて算出されるダイナミックレンジ(DR)であり、縦軸がダイナミックレンジ(DR)に基づいて算出し、相関判定部230に出力する可変閾値を示す。
例えば、ダイナミックレンジ(DR)が0〜3では、相関判定部230に出力する可変閾値は0となる。ダイナミックレンジ(DR)が4〜7では、相関判定部230に出力する可変閾値は1となる。以下、同様であり、ダイナミックレンジ(DR)が28以上においては、相関判定部230に出力する可変閾値は7となり、閾値の上限リミッターを設けた可変閾値が生成される。
ダイナミックレンジ(DR)が小さい、すなわち平坦な画像であっても、閾値は比較的小さく設定されるので、相関判定部230における相関判定では、相関ありなしの判定が比較的正確に行なわれることになる。
相関判定部230は、相関演算部210からの出力値であるフレーム差絶対値データを入力し、さらに、可変閾値生成部220から、上述の可変閾値を入力して比較部231において比較処理を実行する。フレーム差絶対値データが、可変閾値より小であれば、1ビットデータとして、相関あり[1]を評価値テーブル算出部250に出力し、可変閾値より大であれば、相関なし[0]を評価値テーブル算出部250に出力する。
評価値テーブル算出部250は、入力する1ビットデータを評価値積算部251において積算し評価値テーブルを生成して、評価値テーブルメモリ252に格納する。
評価値積算部251は、相関判定部230からの評価値としてのビット値[1]の数(度数)を積算する処理を行なう。この結果として、相関ありの結果が多いか否かを示す度数分布型の評価値テーブルが生成される。度数分布型の評価値テーブルは、サーチエリア内の各偏移(i,j)において、代表点と参照点に相関がある場合に、その偏移の度数をインクリメントし、1画面の全ての代表点の相関判定結果が積算されたものとなる。つまり、評価値テーブルの各偏移(i,j)の度数f(i,j)は、代表点と参照点の相関条件が成立した回数を示すものであり、形成された評価値テーブルには、動画像データの画面の表示物体の移動に対応したピーク(極値)が出現する。
従って、代表点の画素値データ8ビットと、サーチエリアの比較対照となる画素値8ビットの差分データである8ビットデータの積算処理を行なうことなく、相関の有無のみを示す1ビットデータの積算によって生成した評価値テーブル、すなわち度数分布型の評価値テーブルが生成される。
図13に、本実施例における評価値テーブル形成部の処理シーケンスを説明するフローチャートを示す。フローチャートの各ステップについて説明する。
まず、ステップS201において、入力画像データに基づいて代表点マッチング処理を実行し、差分データを算出し、ステップS202において、差分データの絶対値を算出する。これらの処理は、図7(A)の評価値テーブル形成部200の相関演算部210において実行する処理である。
ステップS203では、相関演算部210がステップS201において生成したフレーム差分データに基づいて可変閾値を生成する。この処理は、図7(A)の評価値テーブル形成部200の可変閾値生成部220において実行する処理である。
ステップS204では、相関演算部210がステップS202において生成した差分データの絶対値と、可変閾値生成部220が、ステップS203において生成した可変閾値との比較により、「相関あり」または「相関なし」を示す評価値としての1ビットデータを生成する。この処理は、図7(A)の評価値テーブル形成部200の相関判定部230において実行する処理である。
次に、ステップS205において、相関判定部230の生成した相関ありまたは相関なしを示す評価値としての1ビットデータを積算し、度数分布型評価値テーブルを生成する。この処理は、図7(A)の評価値テーブル形成部200の評価値テーブル算出部250において実行する処理である。
このように、本実施例の評価値テーブル形成部は、相関演算部において算出されるフレーム差分データから取得可能なダイナミックレンジを、空間内変動を示す特徴量として取得し、取得した特徴量に基づいて可変閾値を生成し、可変閾値による相関判定部によって相関の有無を判定する構成としたので、平坦な画像においても正確な動き検出が可能となる。また、相関判定部から出力する評価値を1ビットデータに削減したことにより、評価値積算部における積算演算量が大幅に削減される。これらの構成によって、ハードウェアの規模の低減を図りつつ、実際の動きの程度に対応したより正確な動き相関判定が可能となり、評価値テーブルにおける極値の信憑性を飛躍的に高めることが可能となる。
[4.評価値テーブル形成処理における代表点選別処理]
以上、本発明の動きベクトル検出装置における評価値テーブル形成部101(図5参照)の基本構成を説明した。評価値テーブル形成部101の生成する評価値テーブルは、候補ベクトルを抽出するための評価値テーブルである。前述したように、候補ベクトルは、評価値テーブルに出現するピーク(極値)に基づいて決定される。
評価値テーブルにおけるピーク(極値)の信憑性を高めることが、有効な候補ベクトルの抽出のためには重要となる。上述した評価値テーブル形成部は、可変閾値方式を採用し、代表点の時間方向変動を空間内変動で正規化し、この正規化出力に基づいて動きの有無を判断することで、より正確な動きに対応した度数分布型評価値テーブルの形成を可能とした。
しかしながら、実際の代表点マッチングでは、点(1画素)と点(1画素)の相関判定を行なうことになるので、判定が難しい場合も存在する。以下では、判定が難しい代表点の相関判定を除外するための処理として代表点選別処理を行なう構成例について説明する。この代表点選別処理を行なうことで、さらに、評価値テーブルの信憑性を高めることが可能となる。以下、代表点選別処理を行なう構成例について3つの実施例を説明する。
(4.1.代表点選別処理例1)
まず、代表点選別処理例1として、代表点近傍領域の空間内変動が微小、すなわち代表点近傍領域のダイナミックレンジが小さい部分(以下これを定常部と呼ぶ)の代表点を除外する構成例について、図14を参照して説明する。
代表点近傍領域の空間内変動が微小(ダイナミックレンジが小さい)な定常部に存在する代表点の場合は、動きがあっても時間変動(フレーム差)も微小なため、静止している場合のノイズ成分による微小な時間変動との区別が難しい。従って、代表点近傍領域の空間内変動の特徴量によって代表点を選別する。
代表点近傍領域の空間内変動の特徴量によって代表点を選別する処理を実行する構成を持つ評価値テーブル形成部の構成を図14に示す。
図14に示す評価値テーブル形成部200において、相関演算部210、可変閾値生成部220、相関判定部230、評価値テーブル算出部250は、前述した実施例と同様の構成であり説明を省略する。
図14に示す評価値テーブル形成部200は、代表点選別部240を有する。代表点選別部240は、基準値メモリ241、比較部242、ゲート243を有する。代表点選別部240は、相関判定部230からの出力(1ビット評価値)を受領して、評価値の選別を実行して、代表点近傍領域の空間内変動が微小(ダイナミックレンジが小さい)な定常部に存在する代表点に対応する評価値を、評価値テーブルの積算対象から除外する処理を実行する。代表点選別部240は、代表点近傍領域の空間内変動が微小(ダイナミックレンジが小さい)な定常部に存在する代表点以外の代表点に対応する有効評価値のみを選択して出力する。
可変閾値生成部220で生成される代表点近傍領域の空間内変動を表す特徴量、例えばダイナミックレンジを、代表点選別部240における比較部242に供給し、基準値メモリ241に格納された予め定められた基準値より小さい場合は、代表点近傍領域の空間内変動が微小(ダイナミックレンジが小さい)な定常部に存在する代表点に対応する評価値であると判定し、相関判定結果の信頼性が低いと見なし、比較部242からゲート243に対して[L]信号を出力してゲート243をオフ[OFF]に設定することで、評価値の出力、すなわち、相関判定部230において相関ありと判定された場合であっても評価値[1]を出力せず、度数分布型評価値テーブルにおける積算度数としてカウントしない。
逆に、可変閾値生成部220で生成される代表点近傍領域の空間内変動を表す特徴量、例えばダイナミックレンジが、基準値メモリ241に格納された予め定められた基準値より大きい場合は、相関判定結果の信頼性は高いと見なし、比較部242からゲート243対して[H]信号を出力してゲート243をオン[ON]に設定することで、評価値の出力、すなわち、相関判定部230において相関ありと判定された場合に評価値[1]を出力して、度数分布型評価値テーブルにおいて積算される度数としてカウントする。
このように、可変閾値生成部220で生成される代表点近傍領域の空間内変動を表す特徴量、例えばダイナミックレンジが小さい定常部では、相関判定部230における可変閾値との比較に基づく相関判定結果の信頼性を低いと見なし、このような領域における相関判定処理結果を評価値積算テーブルにカウントする度数としてカウントしない構成とすることにより、信頼性の低い相関判定結果を評価値積算テーブルに影響させることが防止され、評価値テーブルの信憑性を高めることが可能となる。
なお、代表点近傍領域の空間内変動を表す特徴量として、ダイナミックレンジの他に、標準偏差、高周波成分、直交変換高次成分、平均値との差分等を適用する構成としてもよい。
(4.2.代表点選別処理例2)
次に、代表点選別処理例2として、静止領域に存在する代表点を除外する構成例について、図15を参照して説明する。
評価値テーブルのピークは、候補ベクトルの選定のために利用されるが、静止領域については、評価値テーブルのピークとして検出する必要がない。動画像データの場合、多くの場合、静止領域が存在することが前提であり、候補ベクトルの1つとして静止ベクトルがデフォルトの候補ベクトルとして設定される。従って、評価値テーブルのピークとして静止ベクトルに対応するピークを出現させる必要がない。
評価値テーブルに静止領域に対応するピークを発生させると、他の動きのあることを示す候補ベクトルに対応するピークを目立たなくしてしまう可能性がある。従って、静止領域に存在する代表点の相関判定結果は評価値テーブルの信頼性低下を発生させる度数となる。
本実施例の評価値テーブル形成部200の構成を図15に示す。本実施例の評価値テーブル形成部200は、静止領域に存在する代表点の相関判定結果を相関判定部230から出力させない構成とするための代表点選別部260を設けてある。相関演算部210、可変閾値生成部220、相関判定部230、評価値テーブル算出部250は、前述した実施例と同様の構成であり説明を省略する。
代表点選別部260は、静止領域に存在する代表点の相関判定結果を除外するために、相関演算部210において実行される代表点マッチング処理の結果を利用して、代表点の静止判定を行う。代表点選別部260は、基準値メモリ261、比較部262、フラグメモリ263、ゲート264を有する。
比較部262が、相関演算部210において実行される代表点マッチング処理の結果を入力し、基準値メモリ261に格納された予め設定された基準値との比較を行い、代表点が静止領域にあるか否かを判定する。
比較部262が実行する静止判定処理の具体例について、図8を参照して説明する。前フレーム[Ft−1]の代表点Ryの静止判定を、図8(A)を用いて説明する。前フレーム[Ft−1]の代表点Ryの静止判定は、前フレーム[Ft−1]の代表点Ryと、現フレーム[Ft−1]の点Qyとのフレーム差で判定するのではなく、前フレーム[Ft−1]の代表点Ryと、その前のフレーム[Ft−2]の点Pyのフレーム差で判定を行う。何故ならば、RyとQyとのフレーム差を利用する場合、現フレームのQyのデータが供給された時点でしか、代表点Ryの静止判定が出来ないが、RyとPyとのフレーム差を利用する場合、前フレーム[Ft−1]のデータが全て供給された時点で、前フレーム[Ft−1]に存在する代表点の静止判定結果が取得されるからである。
また、前フレーム[Ft−1]の代表点Ryと、その前のフレーム[Ft−2]の点Pyとのフレーム差絶対値は、フレーム[Ft−2]の代表点Pyにおける相関演算部210で算出されているので、これを利用することが可能となる。
比較部262は、相関演算部210で算出された前フレーム[Ft−1]の代表点Ryと、その前のフレーム[Ft−2]の点Pyとのフレーム差絶対値を入力し、このフレーム差絶対値が、基準値メモリ261に格納された予め設定された基準値より小さい場合は、前フレーム[Ft−1]の代表点Ryが静止領域にあるとみなし、静止フラグ(0)をフラグメモリ263に格納する。
一方、相関演算部210で算出された前フレーム[Ft−1]の代表点Ryと、その前のフレーム[Ft−2]の点Pyとのフレーム差絶対値が、基準値メモリ261に格納された予め設定された基準値以上である場合は、前フレーム[Ft−1]の代表点Ryが静止領域にないとみなし、動きフラグ(1)をフラグメモリ263に格納する。なお、これらのフラグは、コントローラ(図5のコントローラ104)によるタイミング制御によって、フラグメモリ243に格納される。
さらに、コントローラによる適切なタイミングで、フラグメモリ263から代表点静止判定フラグを読み出し、読み出したデータが(0)の場合は、ゲート264に[L]信号を出力してゲート264をオフ[OFF]に設定することで、評価値の出力、すなわち、相関判定部230において相関ありと判定された場合であっても評価値[1]を出力せず、度数分布型評価値テーブルにおける積算度数としてカウントしない。
逆に、フラグメモリ263から読み出したデータが(1)の場合は、ゲート264に[H]信号を出力してゲート264をオン[ON]に設定することで、評価値の出力、すなわち、相関判定部230において相関ありと判定された場合に評価値[1]を出力して、度数分布型評価値テーブルにおいて積算される度数としてカウントする。
このように、相関演算部210において実行される代表点マッチング処理の結果としてのフレーム差分絶対値に基づいて、代表点が静止領域に存在するか否かを判定し、代表点が静止領域に存在する場合の相関判定結果を相関判定部230から出力させない構成とすることで、静止領域の相関ありの評価値[1]は、度数分布型評価値テーブルにおける度数としてカウントされることなく、静止領域以外の代表点に関する相関ありの評価値[1]が有効評価値として選択されて出力され、度数分布型評価値テーブルにおける度数としてカウントされる。この結果、動きに対応したピークを高めた信頼性の高い評価値テーブルを生成することが可能となる。
(4.3.代表点選別処理例3)
次に、代表点選別処理例3として、候補数が多い代表点を除外する構成例について、図16を参照して説明する。
ある代表点における相関演算は、代表点に対応したサーチエリア内の画素に対して行うが、サーチエリア内に代表点と相関があると判定された画素(候補数)が、例えば、サーチエリア内に多数存在する場合、例えば、相関があると判定された画素(候補数)がサーチエリア内の全画素数の1/2以上ある場合は、その代表点における相関判定結果は信頼性が低いと言える。従って、代表点選別処理例3では、これらの候補数が多い代表点に対する相関判定結果を評価値テーブルの生成データから除外する。
本実施例の評価値テーブル形成部200の構成を図16に示す。本実施例の評価値テーブル形成部200は、候補数が多い代表点に対する相関判定結果を相関判定部230から出力させない構成とするための代表点選別部270を設けてある。相関演算部210、可変閾値生成部220、相関判定部230、評価値テーブル算出部250は、前述した実施例と同様の構成であり説明を省略する。
代表点選別部270に構成される候補数判定部271の詳細構成を図17に示す。候補数判定部271は、相関判定部230の出力である判定結果としての1ビットデータを各代表点に対応させて、バッファメモリ381に格納すると同時に、カウンタ382において、[1]と判定された個数、つまり相関ありとされた候補数を計数する。1つの代表点に対応するカウンタ382の計数が終了すると、総数が比較部384に入力され、基準値メモリ383に格納された予め設定された基準値と比較される。
カウンタ382の計数した代表点に対する[1]と判定された個数、つまり相関ありとされた候補数が基準値より大きい場合は、その代表点における相関判定結果は信頼性が低いと判定し、ゲート385に[L]信号を出力してゲート385をオフ[OFF]に設定することで、評価値の出力、すなわち、相関判定部230において相関ありと判定された場合であっても、評価値[1]を出力せず、度数分布型評価値テーブルにおける積算度数としてカウントしない。
一方、カウンタ382の計数した代表点に対する[1]と判定された個数、つまり相関ありとされた候補数が基準値以下の場合は、その代表点における相関判定結果は信頼性がある有効評価値であると判定し、ゲート385に[H]信号を出力してゲート385をオン[ON]に設定することで、評価値の出力、すなわち、相関判定部230において相関ありと判定された場合に評価値[1]を出力して、度数分布型評価値テーブルにおいて積算される度数としてカウントする。
以上、本発明の動きベクトル検出装置の動きベクトル検出処理構成における評価値テーブル形成部の構成について、その基本構成、および3つの代表点選別処理構成例を説明した。なお、3つの代表点選別処理構成例は、個別に説明したが、実際の処理においては、3つすべての代表点選別処理を併用して実行することが可能であり、併用して実行することにより、
a.代表点近傍領域の空間内変動が微小な定常部にある代表点
b.静止領域にある代表点
c.候補数が多い代表点
これらの信頼性の低いと判定される代表点に対応する相関判定結果を度数分布型評価値テーブルに積算する度数から排除することが可能となり、信頼性の高い相関判定結果からなる評価結果のみを積算した信頼性の高い度数分布型評価値テーブルを形成することが可能となる。
[5.評価値テーブルの具体例]
上述した評価値テーブル形成部構成を持つ動きベクトル検出装置を適用し、実際の動画像データに対する処理を実行した場合に生成される度数分布型評価値テーブルの例を説明する。
具体的な、動画像データとして、図18に示すような、静止背景400の前景に移動物体(A)401と、移動物体(B)402とが存在するデータを適用した。
移動物体(A)401は水平右方向に移動する物体であり、この物体の表示領域の画素に対応する正しい動きベクトルは(Vx,Vy)=(9,0)である。つまり水平右方向の動きベクトルが設定されるべき画素領域である。移動物体(B)402は、水平左方向に移動する物体あり、この物体の表示領域の画素に対応する正しい動きベクトルとしては、(Vx,Vy)=(−9,0)である。つまり、水平左方向の動きベクトルが設定されるべき画素領域である。
この動画像データに対して、従来手法、例えば特開2001−61152号公報に開示されている評価値テーブル生成処理、すなわち、図7(B)に示すように、相関演算部から出力される8ビット差分フレームデータを、そのまま適用して積算し生成した評価値テーブルを図19に示す。
一方、図7(A)、および図14、図15、図16を参照して説明した、本発明に係る評価値テーブル形成部の処理に従って生成した度数分布型評価値テーブルを図20に示す。図20に示すテーブルは、可変閾値と代表点選別を併用して形成した度数分布型の評価値テーブルである。
図20に示す度数分布型評価値テーブルは、図7(A)に示すように、相関演算部210が代表点マッチング処理によって生成した8ビット差分フレームデータを相関判定部230において、1ビットデータとして、これを積算した結果に基づくテーブルであり、また、図14、図15、図16を参照して説明したように、
a.代表点近傍領域の空間内変動が微小な定常部にある代表点
b.静止領域にある代表点
c.候補数が多い代表点
これらの信頼性の低いと判定される代表点に対応する相関判定結果を度数分布型評価値テーブルに積算する度数から排除する処理を行なって生成したテーブルである。
図19においては、移動物体(A)に対応する動きベクトル(9,0)に対応するピーク(極値)411と、移動物体(B)に対応する動きベクトル(−9,0)に対応するピーク(極値)412と、背景の静止領域に対応する静止を示す動きベトクル(0,0)に対応するピーク(極値)413の3つのピーク(極値)が出現している。画面上では、背景の静止領域が最も多い部分を占めるため、背景の静止領域に対応する静止を示す動きベトクル(0,0)に対応するピーク(極値)413が最も大きなピークを示し、移動物体(A)に対応する動きベクトル(9,0)に対応するピーク(極値)411と、移動物体(B)に対応する動きベクトル(−9,0)に対応するピーク(極値)412とが目立ちにくいピーク(極値)を示す結果となっている。
一方、本発明の構成を適用して生成したテーブルである図20に示すテーブルでは、移動物体(A)に対応する動きベクトル(9,0)に対応するピーク421と、移動物体(B)に対応する動きベクトル(−9,0)に対応するピーク422が、図19のテーブルに比較して、大きなピーク(極値)を示し、背景の静止領域に対応する静止を示す動きベトクル(0,0)を示すピーク(極値)423は、目立たない結果となっている。これは、図14、図15、図16を参照して説明したように、
a.代表点近傍領域の空間内変動が微小な定常部にある代表点
b.静止領域にある代表点
c.候補数が多い代表点
これらの信頼性の低いと判定される代表点に対応する相関判定結果を度数分布型評価値テーブルに積算する度数から排除する処理を行なって生成した結果に基づくものである。
ピークを分かりやすくするために、図21および図22に、2次元的に表現した評価値テーブルを示す。図21は、図19に示した従来型の8ビット差分データを積算した結果として得られた評価値テーブルの2次元データである。図22は、図20に示した本発明の構成に従って生成した度数分布型の評価値テーブルの2次元データである。
図21においては、移動物体(A)に対応する動きベクトル(9,0)に対応するピーク(極値)411と、移動物体(B)に対応する動きベクトル(−9,0)に対応するピーク(極値)412と、背景の静止領域に対応する静止を示す動きベトクル(0,0)に対応するピーク(極値)413の3つのピーク(極値)が出現し、静止を示す動きベトクル(0,0)に対応するピーク(極値)413が最も大きなピークを示し、移動物体に対応する動きベクトル(9,0)または(−9,0)のピーク(極値)411,412の急峻度が小さく、誤検出しやすい評価値テーブルとなっている。
一方、図22においては、移動物体(A)に対応する動きベクトル(9,0)に対応するピーク421と、移動物体(B)に対応する動きベクトル(−9,0)に対応するピーク422が、大きなピーク(極値)であり急峻度が大きく確実な検出が可能なテーブルとなっている。背景の静止領域に対応する静止を示す動きベトクル(0,0)を示すピーク(極値)423が小さいものとなっているが、これは、代表点の静止判定による選別を行ったため必然の現象であり、代表点の静止判定による選別を行った場合は、候補ベクトルの中に、必須として静止ベクトルを必ず含めるようにすることで、評価値テーブルから検出する必要はなく、問題はない。
[6.候補ベクトル抽出処理の詳細]
前述したように、評価値テーブルにおいて出現するピーク(極値)の位置が、1画面に存在する動きに対応し、この評価値テーブルにおいて出現するピーク(極値)の位置に基づいて候補ベクトルが取得される。例えば図20、図22に示した度数分布型評価値テーブルでは、動きベクトル(9,0)と、動きベクトル(−9,0)が候補ベクトルとして抽出可能である。
評価値テーブルにおけるピーク(極値)の急峻度が大きい方が信憑性が高く、度数が多い方も信憑性が高いと言える。以下、これらを考慮した評価値テーブルからの候補ベクトル抽出方法を説明する。
評価値テーブルからの候補ベクトル抽出処理を実行するのは、図5に示す動きベクトル検出装置における候補ベクトル抽出部102である。候補ベクトル抽出部102は、評価値テーブル形成部101が、前述した手法で生成した度数分布型評価値テーブルを受領し、受領した度数分布型評価値テーブルからピーク(極値)検出を実行して、検出したピーク(極値)の座標に基づいて、候補ベクトルを抽出する。
前述したように、評価値テーブルはサーチエリアに対応した大きさを持つ。サーチエリアの範囲が、水平方向が−H〜(H−1)、垂直方向が−V〜(V−1)に設定したとすると、評価値テーブルの大きさは、水平が2H、垂直が2Vの大きさとなる。この場合の評価値テーブルの概念図を、図23に示す。図23は、評価値テーブルの平面図を示しており、水平:2H、垂直:2Vはサーチエリアの大きさに対応する。
図5に示す候補ベクトル抽出部102は、評価値テーブル形成部101が生成した評価値テーブルを受領し、受領した評価値テーブルからピーク(極値)を調べるために、図23に示す評価値テーブル500における注目点501の近傍を参照する。注目点501は、座標(i,j)を有する。
例えば、サーチエリアの中心位置にピークがある場合は、静止ベクトル(0,0)に対応する。候補ベクトル抽出部102は、各座標(i,j)地点にピークがあるか否かを判定する処理を行い、ピークがあると判定された座標(i,j)に対応する候補ベクトルを抽出する。
サーチエリアの中央、例えば座標(0,0)にピークがある場合は、静止ベクトル(0,0)が候補ベクトルとして抽出される。ただし、本発明の度数分布型評価値テーブルでは、静止ベクトル(0,0)に対応する候補ベクトルは、評価値テーブルからに求める対象ではないので静止ベクトル(0,0)に対応するピーク(極値)を検出することは必須ではない。
候補ベクトル抽出部102は、評価値テーブル500におけるピークを検出する処理を実行するが、この場合、評価値テーブル情報を格納するメモリの情報領域をサーチエリアと同一の大きさに設定すると、ピーク位置が、評価値テーブルの上下左右の端に位置する場合に、正確なピーク位置の検出が困難となる場合がある。従って、評価値テーブルメモリの大きさは、サーチエリアより少し広めに設定しておくことが好ましい。
候補ベクトル抽出部102の構成を示すブロック図を、図24に示す。候補ベクトル抽出部102は、データ変換部511、変換データメモリ512、頻度順ソート処理部513を有する。まず、データ変換部511において、評価値テーブルのデータf(i,j)を、極値データを加味した変換を行い、変換データg(i,j)を作成する。データf(i,j)は、座標(i,j)の度数を示す。変換データg(i,j)は、度数を示すデータf(i,j)に対して、極値位置あるいは、極値位置と極値の急峻度を考慮して、データf(i,j)に基づく演算を実行した結果である。これらの処理の詳細については後述する。変換データg(i,j)は、変換データメモリ512に格納される。
変換データメモリ512に格納された変換データは、その後、頻度順ソート処理部513で、変換データg(i,j)の大きい値から、順番に、予め設定された候補ベクトル数に対応するデータを順に取り出し、これらを候補ベクトルとする。
データ変換部511において実行する評価値テーブルから取得される極値の度数を示すデータf(i,j)に基づく変換処理の詳細について説明する。極値の度数を示すデータf(i,j)に基づいて変換データg(i,j)を算出する2つの手法について説明する。
(6.1.ピーク(極値)位置検出方式)
これは、ピーク(極値)の急峻度は加味しないで、ピーク(極値)の位置のみを重視する方法である。処理フローを、図25に示す。このピーク(極値)位置検出方式の概要は、注目点の水平方向両隣の傾きの変化が凸になっている(2次微分成分が0を越える値)、且つ、注目点の垂直方向両隣の傾きの変化が凸になっている場合は、その注目点はピーク(極値)であるので、その度数f(i,j)をそのままg(i,j)として設定し、それ以外は、ピーク(極値)ではないので、度数をリセットし、g(i,j)=0とするデータ変換処理を行なう方式である。この変換データ、すなわちピークとして識別され、0以外の値が設定された変換データg(i,j)の値の大きい方から、予め設定された有限個を候補ベクトルとして抽出する。
フローの各ステップについて説明する。ステップS401において、初期設定として、i=0,j=0、すなわち図23に示すサーチエリアに対応する評価値テーブル内の1つの座標点の位置に処理対象を設定する。
ステップS402においてj<2V、ステップS403において、i<2Hすなわち処理対象が評価値テーブルの内部座標であるかを判定し、評価値テーブルの内部座標である場合には、ステップS404において、
A=f(i,j)×2−f(i+1,j)−f(i−1,j)
B=f(i,j)×2−f(i,j+1)−f(i,j−1)
を算出する。
Aは、注目点(i,j)における評価値テーブルの度数f(i,j)が水平方向でピークを形成している。すなわち、水平方向両隣の傾きの変化が凸になっているか否かの指標値であり、Bは、注目点(i,j)における評価値テーブルの度数f(i,j)が垂直方向でピークを形成している。すなわち、注目点の垂直方向両隣の傾きの変化が凸になっているか否かの指標値である。
ステップS405において、Aが、予め設定された閾値(TH)より大であるか否かが判定される。大であると判定されると注目点f(i,j)の水平方向両隣の傾きの変化が凸になっている、すなわち注目点(i,j)における評価値テーブルの度数f(i,j)が水平方向でピークを形成していると判定する。
ステップS406において、Bが、予め設定された閾値(TH)より大であるか否かが判定される。大であると判定されると注目点f(i,j)の垂直方向両隣の傾きの変化が凸になっている、すなわち注目点(i,j)における評価値テーブルの度数f(i,j)が垂直方向でピークを形成していると判定する。
ステップS405、S406の両判定がYesと判定されると、注目点(i,j)における評価値テーブルの度数f(i,j)は水平方向、垂直方向双方においてピーク(極値)を形成しているものと判定し、この場合は、ステップS407において、
g(i,j)=f(i,j)
すなわち、注目点(i,j)における評価値テーブルの度数f(i,j)を変換データとして設定する。
ステップS405、S406の両判定のいずれかがNoと判定された場合は、注目点(i,j)における評価値テーブルの度数f(i,j)は水平方向、垂直方向双方においてピーク(極値)を形成しているものではないと判定し、この場合は、ステップS408において、
g(i,j)=0
すなわち、変換データ=0として設定する。
ステップS409で値(i)の更新処理を実行し、ステップS411で、値(j)の更新処理を実行することで、評価値テーブルを構成する全座標の度数データf(i,j)についての検証を行ない、評価値テーブルの度数f(i,j)が、水平方向、垂直方向双方においてピーク(極値)を形成しているもののみを抽出する。
変換データg=0として設定されたデータは、ピーク(極値)とは認められず、頻度順ソート処理部513では、0以外の値が設定された変換データg(i,j)の値の大きい方から並べて、予め設定された有限個を候補ベクトルとして抽出する。
(6.2.フィルタ処理方式)
次に、データ変換部511において実行する度数データf(i,j)から変換データg(i,j)を算出するもう1つの方式として、フィルタ処理方式について説明する。
これは、ピーク(極値)の急峻度も加味する方式であり、フィルタ処理によって、評価値テーブルのデータを変換する方法である。本方式において適用するフィルタ係数の一例を、図26に示す。
図26(A)が一般形、(B)が処理単位をフレームとした場合、(C)が処理単位をフィールドとした場合のフィルタ係数設定例を示している。注目点の頻度に2次微分成分を加算した形になっている。本フィルタ処理方式によるデータ変換処理フローを、図27に示す。
フローの各ステップについて説明する。ステップS501において、初期設定として、i=0,j=0、すなわち図23に示すサーチエリアに対応する評価値テーブルの左上端座標の位置に処理対象を設定する。
ステップS502においてj<2V、ステップS503において、i<2Hすなわち処理対象が評価値テーブルの内部座標であるかを判定し、評価値テーブルの内部座標である場合には、ステップS504において、
g(i,j)=
f(i,j−1)×Coef[1]+f(i−1,j)×Coef[3]
+f(i,j)×Coef[4]+f(i+1,j)×Coef[5]
+f(i,j+1)×Coef[7]
を算出する。
このように、注目点(i,j)の度数データf(i,j)と、水平方向の2つの隣接位置と、垂直方向の2つの隣接位置の度数データにフィルタ係数をそれぞれ乗算し、その積算結果を、注目座標(i,j)の変換データg(i,j)とする。
この処理によって、ピーク(極値)の急峻度が増幅された結果を、注目座標(i,j)の変換データg(i,j)として設定することが可能となる。
ステップS505で値(i)の更新処理を実行し、ステップS511で、値(j)の更新処理を実行することで、評価値テーブルを構成する全座標の度数データf(i,j)についての検証を行ない、フィルタ係数を適用した式によって、各座標の変換データg(i,j)を算出する。
頻度順ソート処理部513では、フィルタ係数を適用した式によって算出された各座標の変換データg(i,j)の値の大きい方から並べて、予め設定された有限個を候補ベクトルとして抽出する。
[7.動きベクトル決定処理の詳細]
図5に示す動きベクトル検出部103は、候補ベクトル抽出部102が、上述のいずれかの手法によって評価値テーブルから抽出した複数の候補ベクトルから、各画素毎に最適なベクトルを選択して対応付ける処理を行い、各画素毎の動きベクトルを決定する処理を実行する。
本発明の動きベクトル検出装置における動きベクトル検出部103の構成を図28(A)に示す。比較のため、従来手法の動きベクトル検出処理構成を示すブロック図を図28(B)に示す。また、本発明の動きベクトル検出装置における動きベクトル検出部103の処理概要を説明する図を図29に示す。
動きベクトル検出部においては、複数の候補ベクトルから、各画素毎に最適なベクトルを選択して対応付けて、各画素毎の動きベクトルを決定する。この処理においては、基本的に、各候補ベクトルに基づく移動位置とのブロックマッチングによる評価を行い、最も相関の高い画素データを指す候補ベクトルを選択する。すなわち、複数の候補ベクトルに対するマッチング評価に基づいて、各画素に対応付ける動きベクトルを決定する。
なお、前述したように、候補ベクトルの1つとして静止ベクトル(0,0)がデフォルトの候補ベクトルとして設定される。静止ベクトル(0,0)は、前述の度数分布型の評価値テーブルのピーク検出に基づいて選択される候補ベクトルとは異なり、予めデフォルトの候補ベクトルとして設定されている。動きベクトル検出部103では、度数分布型の評価値テーブルのピーク検出に基づいて選択される候補ベクトルとデフォルトの候補ベクトルとして設定されている静止ベクトル(0,0)の中から、各画素対応の動きベクトルを対応付ける処理を実行する。
例えば、予め設定された候補ベクトル数を3として、前フレーム[Ft−1]と現フレーム[Ft]との間で、上述した度数分布型の評価値テーブル形成した後、評価値テーブルに基づいて候補ベクトルの抽出を行った結果、図29に図示するような3つの候補ベクトルV1,V2,V3が得られたものと仮定する。
静止ベクトル(0,0)も本来考慮すべきであるが、一例として、ここでは、3つの候補ベクトルV1,V2,V3から動きベクトルが選択される場合の処理例を説明する。
前フレーム[Ft−1]のある注目画素をP(0)として、この注目画素に3つの候補ベクトルの中から最良な動きベクトルを決定する処理について説明する。前フレーム[Ft−1]の注目画素P(0)が、候補ベクトル分移動した先の、現フレーム[Ft]の画素を、其々、A(0),B(0),C(0)とする。
また、注目画素P(0)の周辺の隣接画素は、図示するように、P(1),・・・,P(8)の8画素からなるブロックがあるものとする。3つの候補ベクトルV1,V2,V3によって指定される現フレーム[Ft]の画素位置、A(0),B(0),C(0)の周辺にも、図示しないが、それぞれ同様に、A(1),・・・,A(8)、B(1),・・・,B(8)、C(1),・・・,C(8)の画素からなるブロックが存在する。
動きベクトル検出部におけるブロックマッチングは、注目画素の周辺画素を含むブロック領域を設定して、前フレーム[Ft−1]のある注目画素をP(0)含むブロックと、候補ベクトル(V1,V2,V3)によって指定される現フレーム[Ft]の画素位置、A(0),B(0),C(0)を含むブロックの画素値の相関を判別する処理である。ここでは、ブロックマッチングサイズは、説明を分かりやすくするために、一例として、3画素×3画素としている。
図28(B)に示す従来の動きベクトル検出手法では、現フレームメモリ631に、現フレーム[Ft]の画素値データを格納し、前フレームメモリ632に、前フレーム[Ft−1]の画素値データを格納して、これらの各メモリから、現フレーム[Ft]の画素値データと、前フレーム[Ft−1]の画素値データを読み出して、ブロックマッチング処理部633において、予め取得済みの候補ベクトルデータに基づいて、各画素を含むブロックを設定して、ブロックマッチング処理を実行し、最も相関の高いブロックに対応する候補ベクトルをその画素の動きベクトルとして設定する処理を実行する。
ブロックマッチング処理部633では、候補ベクトルV1,V2,V3がある場合、各画素に対するブロックマッチング処理における評価値として、以下の(式1)、(式2)、(式3)を算出する。
上記式中、(式1)は、前フレーム[Ft−1]のある注目画素をP(0)含むブロックと、候補ベクトルV1によって指定される現フレーム[Ft]の画素位置、A(0)を含むブロックのブロックマッチング評価値であり、(式2)は、前フレーム[Ft−1]のある注目画素をP(0)含むブロックと、候補ベクトルV2によって指定される現フレーム[Ft]の画素位置、B(0)を含むブロックのブロックマッチング評価値であり、(式3)は、前フレーム[Ft−1]のある注目画素をP(0)含むブロックと、候補ベクトルV3によって指定される現フレーム[Ft]の画素位置、C(0)を含むブロックのブロックマッチング評価値である。
これらの評価値の最小値となるものを選択し、最小値を出力した式に対応する候補ベクトルを、その画素P(0)の動きベクトルとする処理である。
図28(A)に示す本発明に係る動きベクトル検出部103は、現フレームメモリ611に、現フレーム[Ft]の画素値データを格納し、前フレームメモリ612に、前フレーム[Ft−1]の画素値データを格納して、これらの各メモリから、現フレーム[Ft]の画素値データと、前フレーム[Ft−1]の画素値データを読み出して、ブロックマッチング処理部615において、候補ベクトルデータに基づいて、各画素を含むブロックを設定して、ブロックマッチング処理を実行するが、ブロックマッチング処理部615におけるブロックマッチング処理の実行前に、マッチング処理を行なう必要のない候補ベクトルの排除を仮判定部614において実行し、マッチング処理を行なう必要のある候補ベクトルのみを選択した後、その選択候補ベクトルを候補ベクトル情報を格納した候補ベクトル情報格納部613からブロックマッチング処理部615に出力し、選択された候補ベクトルについてのみブロックマッチング処理を実行して、最も相関の高いブロックに対応する候補ベクトルをその画素の動きベクトルとして設定する処理を実行する。
本発明の手法では、代表点マッチングによって形成した評価値テーブルから候補ベクトルの抽出処理を実行しているものであり、仮判定部614では、前フレーム[Ft−1]の注目画素P(0)と、候補ベクトル(V1,V2,V3)によって指定される現フレーム[Ft]の画素位置、A(0),B(0),C(0)の差分を算出し、この差分が予め定めた閾値より大である場合は、その画素に対応する動きベクトルとしては不適切であると判定し、周囲画素を含めたブロックに基づくブロックマッチング判定を行なう必要がないと判断する。
すなわち、以下の各式において算出する画素値差分が閾値より大となる場合は、その式に対応する候補ベクトルに基づくブロックマッチングを実行しない設定とした。
仮判定部614は、上記(式4)、(式5)、(式6)を算出する。(式4)は、前フレーム[Ft−1]の注目画素をP(0)と、候補ベクトルV1によって指定される現フレーム[Ft]の画素A(0)の画素値差分の絶対値を示し、(式5)は、前フレーム[Ft−1]の注目画素をP(0)と、候補ベクトルV2によって指定される現フレーム[Ft]の画素B(0)の画素値差分の絶対値を示し、(式6)は、前フレーム[Ft−1]の注目画素をP(0)と、候補ベクトルV3によって指定される現フレーム[Ft]の画素C(0)の画素値差分の絶対値を示している。
仮判定部614は、上記(式4)、(式5)、(式6)の算出結果Ea',Eb',Ec'を予め定めた閾値と比較し、閾値より大である場合は、その式に対応する候補ベクトルをブロックマッチング処理の対象から除外する。仮判定部614による上記式に基づく判定情報が、候補ベクトル情報格納部613に入力され、候補ベクトル情報格納部613から、上記式によって求められる画素値差分が、閾値より大である候補ベクトルはブロックマッチング処理部615に出力されず、その候補ベクトルに対応するブロックマッチング処理を実行しない。
例えば閾値を画素値差分[32]として設定した場合、前フレーム[Ft−1]の注目画素をP(0)と、候補ベクトルV1,V2,V3によって指定される現フレーム[Ft]の画素A(0),B(0),C(0)の画素値差分絶対値が32を超える場合は、その候補ベクトルを候補ベクトル情報格納部613からブロックマッチング処理部615に出力せず、その候補ベクトルに対応するブロックマッチング処理を実行しない。
仮判定部614を設けることで、ブロックマッチング処理における演算回数を削減しつつ、最良な動きベクトル決定することが可能となる。
なお、上述の説明では、静止ベクトル(0,0)に対応する処理を省略して説明しているが、静止ベクトル(0,0)に対応する画素差分値も仮判定部614において、同様に算出し、ブロックマッチング処理の実行対象として選択するか否かを判定し、静止ベクトル(0,0)に対応する画素差分値が閾値より小であれば、ブロックマッチング処理の対象として設定し、ブロックマッチング処理に基づいて、静止ベクトルと、その他の候補ベクトルに対応するブロックマッチング処理の結果から、最も相関の高いブロックに対応する候補ベクトルまたは静止ベクトルが、その画素に対応する動きベクトルとして設定される。
図30に、動きベクトル決定部における処理手順を説明するフローチャートを示す。各ステップについて説明する。
まず、ステップS601において、前フレームメモリ612から仮判定部614に対して、注目画素データが取り込まれる。ステップS602において、現フレームメモリ611から仮判定部614に対して、候補ベクトルに対応する画素データの取り込みが行なわれる。この処理においては、静止ベクトルに対応する画素データも処理対象として取り込まれる。
次に、ステップS603において、仮判定部614が、前述の式(式4〜6)に基づいて、ブロックマッチング処理を実行する必要のない候補ベクトルを決定する。この処理においては、静止ベクトルに対応する画素データも処理対象とされ、静止ベクトルに対応して選択される画素の画素値差分データも算出する。
ステップS604では、仮判定部614において、ブロックマッチング処理を実行する必要があると判定した候補ベクトルの情報が候補ベクトル情報格納部613からブロックマッチング処理部615に取り込まれる。
ステップS605では、ブロックマッチング処理部615に対して、前フレームメモリ612から注目画素データが取り込まれる。ステップS606において、仮判定部614がブロックマッチング処理が必要であると判定した候補ベクトル(デフォルト設定の静止ベクトルも含む場合がある)についてのみ、ブロックマッチング処理部615においてブロックマッチング処理が実行される。ステップS607では、ブロックマッチング処理の結果、最も相関の高いブロックに対応する候補ベクトルが選択され、その画素の動きベクトルとして設定する処理を実行する。
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
例えば、プログラムは記録媒体としてのハードディスクやROM(Read Only Memory)に予め記録しておくことができる。あるいは、プログラムはフレキシブルディスク、CD−ROM(Compact Disc Read Only Memory),MO(Magneto optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的あるいは永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウエアとして提供することができる。
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。