(57)【要約】【課題】軽演算負荷の画像処理によって動体の時間方向の情報を高精度に導出する。【解決手段】画像処理装置１１０は、任意の画像のフレーム間の差分を用いて、動体１１２の移動軌跡をグラデーションで表すモーションヒストリーイメージを生成するＭＨＩ生成部２１２と、生成されたモーションヒストリーイメージを所定の大きさの小ブロックに分割するブロック分割部２１４と、分割された小ブロックにおける動体の水平方向および垂直方向の移動速度に相当する特徴量を小ブロック毎に導出する特徴量導出部２１６と、特徴量から動体の動きベクトルを導出する動きベクトル導出部２１８と、を備える。【選択図】図２
2011081675.tif 000002
【特許請求の範囲】
【請求項１】
任意の画像のフレーム間の差分を用いて、動体の移動軌跡をグラデーションで表すモーションヒストリーイメージを生成するＭＨＩ生成部と、
生成された前記モーションヒストリーイメージを所定の大きさの小ブロックに分割するブロック分割部と、
分割された前記小ブロックにおける前記動体の水平方向および垂直方向の移動速度に相当する特徴量を前記小ブロック毎に導出する特徴量導出部と、
前記特徴量から前記動体の動きベクトルを導出する動きベクトル導出部と、
を備えることを特徴とする、画像処理装置。
【請求項２】
前記特徴量導出部は、前記分割された小ブロックを水平方向に二分したときの両画素群の差分値および垂直方向に二分したときの両画素群の差分値に基づいて前記特徴量を導出することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記特徴量導出部は、複数の前記小ブロックを組み合わせた大ブロックについても前記特徴量を導出し、前記大ブロックと前記小ブロックとの面積比に応じて前記大ブロックの特徴量を小ブロックに換算し、小ブロックの特徴量を導出することを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記大ブロックは、前記大ブロックに含まれるすべての小ブロックにおける水平方向および垂直方向の差分値の符号が前記大ブロックにおけるそれぞれ対応する方向の差分値の符号と一致し、かつ、輝度値が０となる画素が前記大ブロック中に所定数未満しか存在しないブロックのうち最大の大きさのブロックであることを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記モーションヒストリーイメージによるグラデーションの変化方向と垂直な方向に向かって、前記グラデーションが形成されている帯の幅方向の端部を抽出する端部抽出部をさらに備え、
前記動きベクトル導出部は、抽出された前記端部を含む小ブロックの特徴量と、前記特徴量導出部で導出された小ブロックの特徴量とを用いて動きベクトルを導出することを特徴とする請求項１から４のいずれか１項に記載の画像処理装置。
【請求項６】
前記動きベクトル導出部は、抽出された前記端部を含む小ブロックの特徴量から実際の移動方向βを示すｔａｎβを求め、前記特徴量導出部で導出された小ブロックの特徴量から前記モーションヒストリーイメージによるグラデーションの変化方向αを示すｔａｎαと速度のｙ成分ｖｒｙを求め、
【数１】
2011081675.tif 000033
…（数式１）
に代入することで動きベクトルを導出することを特徴とする請求項５に記載の画像処理装置。
【請求項７】
任意の画像のフレーム間の差分を用いて、動体の移動軌跡をグラデーションで表すモーションヒストリーイメージを生成し、
生成した前記モーションヒストリーイメージを所定の大きさの小ブロックに分割し、
分割した前記小ブロックにおける前記動体の水平方向および垂直方向の移動速度に相当する特徴量を前記小ブロック毎に導出し、
前記特徴量から前記動体の動きベクトルを導出することを特徴とする、画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像した画像中における動体の動きベクトルを導出可能な画像処理装置および画像処理方法に関する。
【背景技術】
【０００２】
近年、監視カメラで撮影した画像（映像）を画像処理技術によって解析し、不審者を検出する機械警備が普及している。
【０００３】
このような不審者等の動体を検出する手法として、一般に、背景差分法やフレーム間差分法が用いられている。背景差分法は、撮像軸方向の背景画像を予め取得しておき、この背景画像と現在の画像とを比較して、階調値の差分が所定の閾値を越える画像部分を動体とみなす方法である。また、フレーム間差分法は、連続するフレーム間における画像同士の差分を求め、階調値の差分が所定の閾値を越える画像部分を動体とみなす方法である。
【０００４】
しかし、かかる背景差分法やフレーム間差分法では、差分が生じている画像に基づいて動体の範囲を特定することは可能だが、動体の時間軸に関する情報、例えば、動体の移動軌跡等は得ることはできなかった。したがって、物品の置き去りや持ち去り等の検出と異なり、不正侵入や不正方向への移動（フェンス乗り越え、出口からの侵入）といった不審者の行動まで把握するのは困難であった。
【０００５】
そこで、画像中の各画素における明るさ等の空間的、時間的な傾き（オプティカルフロー）を求めることで、動体の時間方向の情報（動体の速度と移動方向）を得る手法が知られている。また、監視カメラにおける監視対象物のパターンを登録し、パターンマッチング技法を用いて、監視対象物以外を排除処理しつつ監視対象物を識別する技術も公開されている（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−１５２５８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述したような動体の動きを検出するための従来技術では、その動体の時間方向の情報を取得するため非常に高い演算能力が必要となるので、演算能力に乏しい監視カメラ単体で不審者の行動を把握するのは困難であった。したがって、不審者の行動を把握するため、演算能力の高い計算機を追加したり、撮像した画像を収集する専用サーバに負荷を分散したりしなければならず、経済的な問題が生じていた。このような背景から、演算能力に乏しい監視カメラでも動体の時間方向の情報を容易に演算できるような画像処理が望まれていた。
【０００８】
本発明は、このような課題に鑑み、軽演算負荷の画像処理によって動体の時間方向の情報を高精度に導出可能な、画像処理装置および画像処理方法を提供することを目的としている。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明は下記の画像処理装置および画像処理方法を提供するものである。
（１）任意の画像のフレーム間の差分を用いて、動体の移動軌跡をグラデーションで表すモーションヒストリーイメージを生成するＭＨＩ生成部と、生成された前記モーションヒストリーイメージを所定の大きさの小ブロックに分割するブロック分割部と、分割された前記小ブロックにおける前記動体の水平方向および垂直方向の移動速度に相当する特徴量を前記小ブロック毎に導出する特徴量導出部と、前記特徴量から前記動体の動きベクトルを導出する動きベクトル導出部と、を備えることを特徴とする、画像処理装置。
（２）前記特徴量導出部は、前記分割された小ブロックを水平方向に二分したときの両画素群の差分値および垂直方向に二分したときの両画素群の差分値に基づいて前記特徴量を導出することを特徴とする上記（１）に記載の画像処理装置。
（３）前記特徴量導出部は、複数の前記小ブロックを組み合わせた大ブロックについても前記特徴量を導出し、前記大ブロックと前記小ブロックとの面積比に応じて前記大ブロックの特徴量を小ブロックに換算し、小ブロックの特徴量を導出することを特徴とする上記（１）または（２）に記載の画像処理装置。
（４）前記大ブロックは、前記大ブロックに含まれるすべての小ブロックにおける水平方向および垂直方向の差分値の符号が前記大ブロックにおけるそれぞれ対応する方向の差分値の符号と一致し、かつ、輝度値が０となる画素が前記大ブロック中に所定数未満しか存在しないブロックのうち最大の大きさのブロックであることを特徴とする上記（３）に記載の画像処理装置。
（５）前記モーションヒストリーイメージによるグラデーションの変化方向と垂直な方向に向かって、前記グラデーションが形成されている帯の幅方向の端部を抽出する端部抽出部をさらに備え、前記動きベクトル導出部は、抽出された前記端部を含む小ブロックの特徴量と、前記特徴量導出部で導出された小ブロックの特徴量とを用いて動きベクトルを導出することを特徴とする上記（１）から（４）のいずれかに記載の画像処理装置。
（６）前記動きベクトル導出部は、抽出された前記端部を含む小ブロックの特徴量から実際の移動方向βを示すｔａｎβを求め、前記特徴量導出部で導出された小ブロックの特徴量から前記モーションヒストリーイメージによるグラデーションの変化方向αを示すｔａｎαと速度のｙ成分ｖｒｙを求め、
【数１】
2011081675.tif 000003
…（数式１）
に代入することで動きベクトルを導出することを特徴とする上記（５）に記載の画像処理装置。
（７）任意の画像のフレーム間の差分を用いて、動体の移動軌跡をグラデーションで表すモーションヒストリーイメージを生成し、生成した前記モーションヒストリーイメージを所定の大きさの小ブロックに分割し、分割した前記小ブロックにおける前記動体の水平方向および垂直方向の移動速度に相当する特徴量を前記小ブロック毎に導出し、前記特徴量から前記動体の動きベクトルを導出することを特徴とする、画像処理方法。
【発明の効果】
【００１０】
以上説明したように本発明によれば、軽演算負荷の画像処理によって動体の時間方向の情報を高精度に導出することが可能となる。
【図面の簡単な説明】
【００１１】
【図１】画像処理システムの概略的な構成を示したシステム構成図である。
【図２】画像処理装置の基本的な構成を示した機能ブロック図である。
【図３】ＭＨＩを説明するための画面遷移図である。
【図４】特徴量導出部の動作を説明するための説明図である。
【図５】特徴量導出部の動作を説明するための説明図である。
【図６】特徴量導出部の動作を説明するための説明図である。
【図７】特徴量導出部の動作を説明するための説明図である。
【図８】特徴量導出部の動作を説明するための説明図である。
【図９】特徴量導出部の動作を説明するための説明図である。
【図１０】特徴量の演算を説明するための説明図である。
【図１１】動体が水平方向に移動した場合のＭＨＩを例示した説明図である。
【図１２】小ブロックと大ブロックとの関係を示した説明図である。
【図１３】原理上生じ得る２つの問題を説明するための説明図である。
【図１４】動体の水平移動によるＭＨＩの輝度値の変化を示した説明図である。
【図１５】動体の勾配によるＭＨＩの軌跡を説明するための説明図である。
【図１６】移動方向とＭＨＩのグラデーションとの関係を示した説明図である。
【図１７】速度の基準値ｋを説明するための説明図である。
【図１８】動体の勾配と速度との関係を説明するための説明図である。
【図１９】動体の勾配と速度との関係を説明するための説明図である。
【図２０】合成ベクトルと実際の移動における動きベクトルとの関係を示した説明図である。
【図２１】動体の移動方向を説明するための説明図である。
【図２２】動体の移動方向を説明するための説明図である。
【図２３】動きベクトルの求め方を説明するための説明図である。
【図２４】動きベクトルの速度の求め方を説明するための説明図である。
【図２５】角αが９０°の場合における動きベクトルのｘｙ成分ｖｍｘ、ｖｍｙの計算方法を説明するための説明図である。
【図２６】検証例を示す説明図である。
【図２７】画像処理方法の全体的な処理の流れを示したフローチャートである。
【図２８】ブロックサイズ毎の情報を格納する構造体のリンク周辺のメモリ・レイアウトを示している。
【図２９】特徴量導出ステップの具体的な処理の流れを示したフローチャートである。
【図３０】特徴量決定ステップの具体的な処理の流れを示したフローチャートである。
【図３１】小ブロック特徴量決定ステップの具体的な処理の流れを示したフローチャートである。
【図３２】特徴量比較ステップの具体的な処理の流れを示したフローチャートである。
【図３３】小ブロック換算ステップの具体的な処理の流れを示したフローチャートである。
【図３４】動きベクトル導出ステップの具体的な処理の流れを示したフローチャートである。
【図３５】端部抽出ステップの具体的な処理の流れを示したフローチャートである。
【図３６】端部抽出ステップの動作を説明するための説明図である。
【図３７】端部抽出ステップの動作を説明するための説明図である。
【図３８】端部到達判断ステップの具体的な処理の流れを示したフローチャートである。
【図３９】デフォルト処理ステップの具体的な処理の流れを示したフローチャートである。
【発明を実施するための形態】
【００１２】
以下に添付図面を参照しながら、本発明の好適な実施形態について詳細に説明する。かかる実施形態に示す寸法、材料、その他具体的な数値等は、発明の理解を容易とするための例示にすぎず、特に断る場合を除き、本発明を限定するものではない。なお、本明細書及び図面において、実質的に同一の機能、構成を有する要素については、同一の符号を付することにより重複説明を省略し、また本発明に直接関係のない要素は図示を省略する。
【００１３】
（画像処理システム１００）
図１は、画像処理システム１００の概略的な構成を示したシステム構成図である。近年、建物の内外に拘わらず、不審者の行動を検出する画像処理システム（機械警備）１００が採用されている。かかる画像処理システム１００においては、監視カメラ等に代表される画像処理装置１１０が所定の位置に固定的にまたは方向変更可能に設置され、不審者等の動体１１２を撮像する。
【００１４】
そして、画像処理装置１１０は、撮影した画像（映像）を画像処理技術によって解析し、動体１１２の時間方向の情報（動体１１２の速度と移動方向または動きベクトル）を導出して、その画像と時間方向の情報とを、インターネット、ＩＳＤＮ(Integrated Services Digital Network)回線、専用回線等の通信網を通じて監視サーバ１２０に送信する。
【００１５】
監視サーバ１２０は、受信した時間方向の情報から動体１１２が不正侵入や不正方向への移動（フェンス乗り越え、出口からの侵入）といった行動をとっているか否か判断して、その行動に対する対応を指示する。例えば、監視サーバ１２０は、画面上に、本来制限されている方向に動体１１２が移動していた場合、その旨警告を発して管理者に報知する。こうして事故や犯罪を未然に防ぐことができる。
【００１６】
画像処理装置１１０は、上述したように、動体１１２の時間方向の情報まで導出して監視サーバ１２０に送信するのが望ましいが、従来では、その演算負荷が重すぎて、例えば演算能力に乏しい監視カメラにまで適用することが困難であった。本実施形態における画像処理装置１１０は、軽演算負荷の画像処理によって動体１１２の時間方向の情報を高精度に導出可能な、画像処理装置１１０および画像処理方法を提供することを目的としている。
【００１７】
以下、このような目的を達成するための画像処理装置１１０の具体的構成を述べ、その後、画像処理の流れを説明する。特に、本実施形態の特徴的な構成を、１．演算対象を小ブロックとする理由、２．大ブロックを利用する理由、３．モーションヒストリーイメージにおけるグラデーションが形成されている帯の幅方向の端部のブロックを利用する理由、に示された３つの考え方に基づいて詳細に説明している。
【００１８】
（画像処理装置１１０）
図２は、画像処理装置１１０の基本的な構成を示した機能ブロック図である。画像処理装置１１０は、撮像部１５０と、保持部１７０と、制御部１８０とを含んで構成される。
【００１９】
撮像部１５０は、焦点調整に用いられるフォーカスレンズ１５２と、露光調整に用いられる絞り１５４と、撮像レンズ１５６を通じて入射する光を画像データに変換する撮像素子１５８と、フォーカスレンズ１５２および絞り１５４を駆動させる駆動回路１６０とを含んで構成され、撮像方向の画像を画像処理装置１１０に取り込む。
【００２０】
保持部１７０は、ＲＡＭ、ＥＥＰＲＯＭ（Electrically Erasable and Programmable Read Only Memory）、不揮発性ＲＡＭ、フラッシュメモリ、ＨＤＤ（Hard Disk Drive）等で構成され、データを一時的に保持する。なお、ＨＤＤは正確には装置であるが、説明の便宜上本説明では他の記憶媒体と同義として扱う。
【００２１】
制御部１８０は、中央処理装置（ＣＰＵ）、プログラム等が格納されたＲＯＭ、ワークエリアとしてのＲＡＭ等を含む半導体集積回路により、画像処理装置１１０全体を制御する。特に本実施形態において、制御部１８０は、画像入力制御部２１０、ＭＨＩ生成部２１２、ブロック分割部２１４、特徴量導出部２１６、動きベクトル導出部２１８、端部抽出部２２０、動きベクトル利用部２２２として機能する。
【００２２】
画像入力制御部２１０は、撮像部１５０を通じて取得された画像をＲＧＢやＹＵＶ４：２：２などの情報に変換しフレーム単位で抽出する。ここで、フレームは、動画を構成する個々の静止画を言い、例えば、３０フレーム／秒で連続してフレームを表示することで動画を表現する。
【００２３】
ＭＨＩ生成部２１２は、フレーム毎の画像の情報、特にフレーム間（現フレームと前フレーム）の差分を用いて、動体１１２の移動軌跡を例えばその輝度のグラデーションで表現するモーションヒストリーイメージ（Motion History Image：ＭＨＩ、以下単にＭＨＩと略す。）を生成する。ＭＨＩは、画像上で動体１１２の軌跡が過去のものほど暗く、最近のものほど明るく表現されたものである。したがって、動体１１２が観察されなかった部分や観察はされているものの予め設定されている観察期間の間移動していない部分は暗く表現される。
【００２４】
仮に、動体１１２の動きベクトルを求めるために、ＭＨＩではなく、２つのフレームにおける各対応点を見つけ、その移動量を演算する従来のマッチング方法を用いると、演算負荷が重すぎて、画像解析のリアルタイム処理に支障を来してしまう。本実施形態では、フレーム間の同一座標の差分に基づいて動体１１２の移動軌跡がグラデーションで表される軽負荷のＭＨＩを用いているので、演算量を著しく削減できる。
【００２５】
図３は、ＭＨＩを説明するための画面遷移図である。例えば、図３（ａ）に示した画面１６２の左側に位置する立方体の動体１１２が、画面１６２の左から右に水平移動して、図３（ｂ）に示した画面１６２の右側に位置した場合に、その動体１１２の移動に対してＭＨＩを生成させると、その表示画面は図３（ｃ）のようなグラデーションを形成する。かかる図３（ｃ）を参照すると、ＭＨＩのうち、図３（ｂ）に位置する動体１１２に対応する部分は明るくなり、移動元である左方向に移行するに連れ暗くなっている。
【００２６】
具体的に、ＭＨＩを生成する場合、ＭＨＩ生成部２１２は、まず、フレーム間の差分を用いて画素に変化があったか否かを判定する。そして、時刻ｔにおいてフレーム内の任意の座標（ｘ，ｙ）で輝度値が変化した場合のＭＨＩの値Ｈτ(ｘ，ｙ，ｔ)を新たに初期値τ（ｍｓｅｃ）に設定し（τは動体１１２の軌跡が消滅するまでの時間であり、かつＭＨＩにおける最大輝度値に相当する。）、変化がない場合、フレーム間隔をΔt（ｍｓｅｃ）とした場合の値Ｈτ(ｘ，ｙ，ｔ−Δｔ)−Δｔが正の値を示している間はその値を、正の値ではなくなれば０を設定する。したがって、同一の座標で変化が検出され続けている間、その座標のＭＨＩの値はτとなり、変化を検出しなくなると徐々に小さくなってτｍｓｅｃ後に０となる。
【００２７】
このようにして得られたＭＨＩの値Ｈτ(ｘ，ｙ，ｔ)を輝度情報等に変換して得られる画像（例えば、図３（ｃ））は、動体１１２の軌跡が明るさのグラデーションで表現されているため、人間が見れば動体１１２の動きベクトルを直感的に認識することができる。
【００２８】
本実施形態の以下の計算では、算出された値Ｈτ(ｘ，ｙ，ｔ)を随時輝度情報に変換して用いてもよいが、必ずしも輝度情報に変換する必要は無く、Ｈτ（ｘ，ｙ，ｔ）の値をそのまま利用することもできる。以下、特に断らない場合、輝度情報に変換する前のＨτ(ｘ，ｙ，ｔ)の値と輝度情報に変換した値とを区別せず、共にＭＨＩの輝度値として説明する。
【００２９】
このようなＭＨＩを用いて時間軸方向の情報の導出を試みた場合、任意の画素（注目画素）周辺のＭＨＩの度合いを示すＭＨＩ値を取得し、その最大値と最小値を抽出して移動方向を求める方法がオープンソース等で実現されている。しかし、単純に注目画素の周辺で最小値と最大値とを求める方法では、ノイズの影響を受け易く、誤った移動方向を認識してしまうといった問題が生じる。また、注目画素から時間軸方向の情報を求める上記の方法においては、動体１１２の速度（移動距離）ａと移動方向θを求めるために、注目画素におけるＸ軸方向の移動距離をｄｘ、Ｙ軸方向の移動距離をｄｙとすると、ａ＝√（ｄｘ２+ｄｙ２）、θ＝ｔａｎ−１（ｄｙ／ｄｘ）といった演算を要し、単純な加減算に比べて複雑で時間を費やす乗算やアークタンジェントを実行しなければならない。このため、演算負荷が重くなりすぎて、演算能力に乏しい画像処理装置１１０には適用できなかった。本実施形態では、画素単位ではなく、複数の画素を集めたブロック単位で時間軸方向の情報を演算する。
【００３０】
（１．演算対象を小ブロックとする理由）
ブロック分割部２１４は、ＭＨＩ生成部２１２によって生成されたＭＨＩを所定の大きさのブロックに分割する。そして後述する特徴量導出部２１６は、分割されたブロックについて動体１１２の水平方向および垂直方向の移動速度に相当する特徴量を導出する。ここでは、まず、特徴量導出部２１６が各ブロックの特徴量をどのように導出するのかを簡単に説明し、その上でブロック分割部２１４がブロックをどの程度の大きさに分割すべきかを述べる。
【００３１】
図４〜図９は、特徴量導出部２１６の動作を説明するための説明図である。特徴量導出部２１６は、ブロック分割部２１４によって分割された２ｎドット（ピクセル）×２ｎドットのブロック（ｎは正の整数）すべてを対象として、各ブロックを水平方向に二分（左右に二分）したときの両画素群のＭＨＩ値（輝度値）の差分値と垂直方向に二分（上下に二分）したときの両画素群のＭＨＩ値（輝度値）の差分値とを求める。
【００３２】
ここでは、図４（ａ）〜（ｃ）に示すような２ｎドット×２ｎドット（ここでは８ドット×８ドット）の大きさの基底関数が準備されており、図４中、白色で示された画素１２２が加算を、斜線で示された画素１２２が減算を意味する。図４（ａ）の第１基底関数は、すべての画素１２２が白色なので、ブロック内のすべての画素１２２におけるＭＨＩの輝度値を加算し、ブロック全体の明るさを表現することができる。また、図４（ｂ）の第２基底関数は、左半分の画素１２２すべて（画素群）を減算、右半分の画素１２２すべて（画素群）を加算するので、ブロックにおける水平方向の明るさの違いを表現することとなり、図４（ｃ）の第３基底関数は、上半分の画素１２２すべて（画素群）を加算、下半分の画素１２２すべて（画素群）を減算するので、垂直方向の明るさの違いを表現することとなる。以下では、水平方向に二分したときの両画素群の差分値を単に水平方向の差分値と言い、垂直方向に二分したときの両画素群の差分値を単に垂直方向の差分値と言う。
【００３３】
上述した第１基底関数、第２基底関数、第３基底関数はウォルシュ・アダマール変換における、直流成分および空間周波数が最も低い２つの成分に相当する。このように直流成分値や特徴量（差分値）をブロック内におけるＭＨＩの輝度値の加減算のみで導出する構成により、乗算やアークタンジェントを用いる演算方式に比べ、演算負荷を著しく軽減することが可能となる。また、複数の画素の状態を平均化することになるためノイズにも強い。
【００３４】
図５（ａ）は、動体１１２が水平方向左から右へ、図５（ｂ）は水平方向右から左へ、図５（ｃ）は垂直方向上から下へ、図５（ｄ）は垂直方向下から上へ、図５（ｅ）は右下から左上へ傾斜して移動したときの８ドット×８ドットのブロックにおけるＭＨＩと、各基底関数によって導出された値を示している。図５では、ＭＨＩのグラデーションにおける輝度値は、暗い方から６４、１２８、１９２、２５５とする。
【００３５】
図５に示したＭＨＩにおける８ドット×８ドットのブロックに対し、第１基底関数、第２基底関数、第３基底関数を演算すると、図５の下側に示したような値が導出される。図５から、第２基底関数を通じた値が水平方向の移動量を、第３基底関数を通じた値が垂直方向の移動量を表し、動体１１２の速度が等しければ、その絶対値も等しくなっているのが理解できる。
【００３６】
ただし、動体１１２の速度を求める場合、第２基底関数や第３基底関数の値と実際の移動量（速度）とは反比例の関係にあり、かつ、ＭＨＩを表現する時間（τ（ｍｓｅｃ））に依存するので、その速度を定量的に比較する場合には注意が必要である。ここでは、例えば、人間の歩行速度（時速約４ｋｍ／ｈ）を基準として、その歩行速度との相対的な値で定量的に表現する。例えば、人間の歩行速度による水平方向の差分値を定数ｋとすると、動体１１２のＸ軸方向の速度ｖｘは、導出されたＸ軸方向の差分値ｆｘを用いてｖｘ＝ｋ／ｆｘで、Ｙ軸方向の速度ｖｙは、導出されたＹ軸方向の差分値ｆｙを用いてｖｙ＝ｋ／ｆｙで表すことができる。かかる差分値と速度との関係は後ほど詳述する。
【００３７】
しかし、動体１１２自体の大きさに比べて相対的にブロックの大きさが大きい場合、差分値から移動速度を正確に導出できなくなることもある。図６（ａ）、（ｂ）を参照すると、図６（ａ）の動体１１２と図６（ｂ）の動体１１２は同一の速度で移動しているものの、ブロック内に占める、移動方向に垂直な動体１１２の幅が異なり、第１基底関数の値もさることながら、同一の速度を示すべき第２基底関数の値も変化してしまう。したがって、たとえ速度が等しくとも、その動体１１２のブロック中の専有面積によっては移動速度を正確に導出できなくなる。
【００３８】
また、他の例でも移動速度が導出できない場合がある。図７の（ａ）〜（ｃ）では、３つの動体１１２が、移動方向に垂直な動体１１２の幅が等しく、かつ同一の速度（図６（ａ）、（ｂ）の半分の速度）で移動しているが、ブロック中の移動検出位置が異なっている。図７を参照すると、移動検出位置が中央より左右いずれにあるか、また左右の境界を跨っているかによって、第２基底関数の値のみならず符号も変化してしまうことが理解できる。これは、動体１１２の大きさや速度が等しくとも、ブロック中の動体１１２の検出位置によっては移動速度を正確に導出できなくなるおそれがあることを示す。
【００３９】
図６および図７では、動体１１２の水平方向の移動を挙げて説明したが、垂直方向に移動した場合も同様の問題が生じ得る。このように、動体１１２の大きさに比べてブロックの大きさが大きすぎると、即ち、ブロックが動体１１２の移動によるＭＨＩに満たされていないと、動体１１２の速度および移動方向を誤って判断する可能性がある。ここで、ＭＨＩに満たされているとは、図８のブロック１６４のようにブロック１６４内をＭＨＩが占有していることを言い、例えば、ブロック１６４内にＭＨＩの輝度値が０となる画素が所定数未満しか存在しないことによってＭＨＩに満たされているか否かを判断することができる。
【００４０】
したがって、ブロックの大きさは画面上の動体１１２の大きさに対して小さめに設定されなければならない。そこで本実施形態では演算対象として、可能な限り小さなブロック（後述する「小ブロック」）を採用する。
【００４１】
（２．大ブロックを利用する理由）
このように、ブロック分割部２１４は、ＭＨＩを有効利用するため、ブロックを小さめに分割する。しかし、ブロックが小さすぎてブロック内にＭＨＩの階調差が現れない場合に新たな問題を生じ得る。以下、その問題点と解決手段を述べる。
【００４２】
ここで、ブロックの大きさを小さく設定すると、図９（ａ）の如く、ブロック内の各画素が動体１１２のＭＨＩで満たされ、ブロック内のすべての画素で輝度値を得ることができる。しかし、ＭＨＩは輝度値といった単一の指標で示されるので、その階調は離散的（段階的）な表現となる。
【００４３】
例えば、図９（ｂ）〜（ｄ）に示された動体１１２は、図９（ａ）の動体１１２の２倍の速度で水平方向左から右に移動しており、図９（ｅ）に至っては、図９（ｂ）〜（ｄ）のさらに２倍の速度で移動している。図９の第２基底関数による値を参照して理解できるように、動体１１２の速度と第２基底関数を通じた差分値は反比例している。例えば、図９（ａ）の速度を２倍にした図９（ｂ）では第２基底関数を通じた差分値は約１／２倍になっている。
【００４４】
また、図９（ａ）〜（ｄ）に関して、その第２基底関数を通じた差分値は粗い数値変化となっているが、速度は把握できる。しかし、図９（ｅ）に至っては、第２基底関数の値が０となって最早速度を把握することはできない。図９（ｅ）は、階調が一定だった場合であって、ＭＨＩの履歴保持時間τが極端に長く、かつ動体１１２の速度が検出できないほど極端に速かった場合に相当する。
【００４５】
本実施形態のように、ブロックを小さくすると、ブロック内をＭＨＩのグラデーションで満たすことは可能となるが、１フレーム間に移動する動体１１２の距離がブロックサイズの半分を越えると、図９（ｅ）のように動体１１２の速度を正確に把握できない場合が生じ得る。以下、具体的な数値を挙げてこの問題について詳述する。
【００４６】
例えば、ブロックのサイズが４ドット×４ドット、フレーム間隔が３３ｍｓｅｃであり、この１フレームの間に直方体の動体１１２が水平方向左から右へ１画素動く場合、ＭＨＩの値Ｈτ（ｘ，ｙ，ｔ）は次のようになる。
{33,66,99,132
33,66,99,132
33,66,99,132
33,66,99,132}
かかるＨτ（ｘ，ｙ，ｔ）の第２基底関数を用いて、ブロックの左半分を減算し、右半分を加算して求まる水平方向の差分値ｆｘは、ｆｘ＝（−３３−６６＋９９＋１３２）×４（行）＝（（３３×２）×２（組））×４（行）＝５２８となる。尚、符号が正の場合は右、負の場合は左に動体１１２が移動したことを示す。
【００４７】
ここで、動体１１２の速度が４倍になった場合、差分値ｆｘの期待値は、５２８の１／４倍に当たる１３２である。動体１１２の速度が４倍になった場合のＭＨＩの値Ｈτ（ｘ，ｙ，ｔ）は、ブロックの１行目だけ記述すると、
パターン１：(66,66,66,66)
パターン２：(33,66,66,66)
パターン３：(33,33,66,66)
パターン４：(33,33,33,66)
の４パターンが考えられる。
上述したそれぞれのパターンにおける特徴量ｆｘは、
パターン１：０
パターン２：−３３×４（行）＝１３２
パターン３：−３３×２（組）×４（行）＝２６４
パターン４：−３３×４（行）＝１３２
となり、パターン２と４は期待値通りになるが、パターン３は期待値の２倍の値、即ち、速度は１／２倍になったとしか判断されず、パターン１に関しては０倍の値であるから速度は無限大と判断される。この問題は、１フレーム間に動く動体１１２の距離がブロックサイズの半分を越えることに起因する。
【００４８】
同様に、動体１１２がフレーム間隔３３ｍｓｅｃの間に水平方向左から右へ１画素動く場合における、８ドット×８ドットのブロックの水平方向の特徴量ｆｘは、ｆｘ＝（−３３−６６−９９−１３２＋１６５＋１９８＋２３１＋２６４）×８（行）＝（（３３×４）×４（組））×８（行）＝４２２４となる。ここで、４ドット×４ドットの場合と同様、動体１１２の速度を４倍にすると、水平方向の特徴量ｆｘの期待値は、４２２４の１／４倍である１０５６となる。ちなみに、８ドット×８ドットの場合、動体１１２の速度が４倍になっても１フレームの間に移動する動体１１２の距離はブロックサイズの半分である。
【００４９】
動体１１２の速度が４倍になった場合のＨτ（ｘ，ｙ，ｔ）は、ブロックの1行目だけを記述すると、
パターン１：(66,66,66,66,99,99,99,99)
パターン２：(33,66,66,66,66,99,99,99)
パターン３：(33,33,66,66,66,66,99,99)
パターン４：(33,33,33,66,66,66,66,99)
の４パターンが考えられ、それぞれの場合の特徴量ｆｘは、いずれのパターンでも１０５６となり期待値通りとなる。
【００５０】
このように、動体１１２の移動速度が大きくなり、小さいブロックではその移動速度を正確に測定できない場合が生じる一方で、ブロックサイズを大きくとるとその移動速度も正確に把握可能なことが理解できる。即ち、移動速度を正確に捉えるには、ブロックのサイズは大きい方が望ましいこととなる。ところが、ブロックサイズを単純に大きくすると、上述したＭＨＩのグラデーションで満たされていないブロックが生じやすくなるばかりでなく、画像上のブロックの数が減って画像解析の粒度が荒くなってしまう。
【００５１】
そこで、本実施形態では、動体１１２の水平方向および垂直方向の移動速度を導出する演算対象となるブロックを、検出可能な最小の単位ブロックの２×２倍の小ブロックとし、その小ブロックで階調変化が検出されなかった場合には、その小ブロックを含み、かつ階調変化が検出される任意の大ブロックを利用する。即ち、小ブロックを含む大ブロックにおける動体１１２の水平方向および垂直方向の移動速度を小ブロックに反映することで、小ブロックでも動体１１２の速度を正確に表現することが可能となる。かかる演算基準に基づいて、ブロック分割部２１４は、現フレームの画像を１辺が例えば２MIN（MINは０以上の整数）画素の単位ブロックに分割することとなる。尚、ここでは、本実施形態の理解を容易にするため単位ブロックを２ｎの正方ブロックとしたが、かかる場合に限られず、２ｎ以外の任意の数値を選択することも、水平方向のサイズと垂直方向のサイズを異ならせることも可能である。したがって小ブロックや大ブロックのサイズも２ｎや正方ブロックに制約されるものではない。例えば、画面の大きさが６４０ドット×４８０ドットとすると、最大公約数は１６０ドットとなり、正方ブロックの大きさとしては、８０ドット、４０ドット、３２ドット、２０ドット、１６ドット、１０ドット、８ドット、…等が考えられるので、単位ブロックの一辺のサイズを１０ドットの正方ブロックとすると、小ブロックや大ブロックの一辺のサイズを２０ドット、４０ドット、８０ドット、１６０ドットのように設定できる。本実施形態のブロックサイズを利用環境に即した値に設定し、本実施形態に変更を加えることは、同業者であれば容易である。
【００５２】
ただし、大ブロックを利用する上で、その大ブロックがＭＨＩのグラデーションで埋まっているか否かに留意する必要がある。
【００５３】
特徴量導出部２１６は、上述したように、分割されたブロック、ここでは分割されたすべての小ブロックにおける動体１１２の水平方向および垂直方向の移動速度に相当する特徴量を導出する。特徴量導出部２１６は、特徴量を導出するための各処理を担う、単位ブロック導出部２５０と、大小ブロック導出部２５２と、特徴量決定部２５４とを含んで構成される。
【００５４】
単位ブロック導出部２５０は、ブロック分割部２１４によって分割された１辺が２MINの単位ブロックそれぞれに対し、ブロックに含まれるＭＨＩの値Ｈτ（ｘ，ｙ，ｔ）の総和（直流成分値）を求める。かかる単位ブロックに関しては、直流成分値のみを求め、水平および垂直方向の差分値は求めない。
【００５５】
大小ブロック導出部２５２は、単位ブロック導出部２５０の対象である１辺が２MIN画素の単位ブロックを用いて、その単位ブロックを周囲４ブロック分結合し、面積を４倍にした１辺が２MIN+1画素の小ブロックにおけるＭＨＩの直流成分値ならびに水平方向および垂直方向の差分値を導出する。そして、大小ブロック導出部２５２は、導出された直流成分値を用いて、以後、面積を４倍にした大ブロックの直流成分値および差分値を、そのサイズが最大となるまで繰り返し導出する。従って、最小単位である単位ブロックの直流成分値と、その４倍の小ブロックの直流成分値および差分値、その小ブロックの１辺を２１、２２、２３…倍した大ブロックの直流成分値および差分値が機械的に求まり、そのうち、水平方向および垂直方向の差分値が各ブロック（小ブロック、大ブロック）の特徴量となる。
【００５６】
ここでは、動体１１２の速度を導出する上でどのサイズの大ブロックを採用するかをまだ判断せず、許容されるすべての大ブロックに関して特徴量を求めている。こうすることで、大小ブロック導出部２５２は、機械的な特徴量の導出処理にのみ集中でき、処理の効率化を図ることができる。
【００５７】
また、小ブロックや大ブロックの特徴量の演算には、そのブロックの面積が１／４の単位ブロック、小ブロック、大ブロックの直流成分値がそのまま用いられるので、演算負荷の軽減を図ることが可能となる。
【００５８】
図１０は、特徴量の演算を説明するための説明図である。このとき画面１６２のサイズは６４０ドット×４８０ドット、単位ブロック１６６は１辺が２３ドット、小ブロック１６８は１辺が２４ドットであり、単位ブロック１６６は、小ブロック１６８を縦横に４等分したブロックに相当する。本実施形態の特徴量導出処理では、上述したように、小ブロックに対して図１０（ａ）〜（ｃ）の第１基底関数、第２基底関数、第３基底関数が用いられる。かかる基底関数と単位ブロック１６６との関係を踏まえると、小ブロック１６８の直流成分値や差分値は単位ブロック１６６の直流成分値の加減算で求まる。
【００５９】
具体的に、小ブロック１６８を構成する単位ブロック１６６をそれぞれｄ００、ｄ０１、ｄ１０、ｄ１１とし、各直流成分値をｎ００、ｎ０１、ｎ１０、ｎ１１とすると、小ブロック１６８の直流成分値は、４つの単位ブロックｄ００、ｄ０１、ｄ１０、ｄ１１の直流成分値の和ｎ００＋ｎ０１＋ｎ１０＋ｎ１１で表される。
【００６０】
同様に、小ブロック１６８の水平方向の差分値ｆｘは、左２つの単位ブロックｄ００、ｄ１０の直流成分値の和と右２つの単位ブロックｄ０１、ｄ１１の直流成分値の和との差分−ｎ００＋ｎ０１−ｎ１０＋ｎ１１で表され、垂直方向の差分値ｆｙは、上２つの単位ブロックｄ００、ｄ０１の直流成分値の和と下２つの単位ブロックｄ１０、ｄ１１の直流成分値の和との差分ｎ００＋ｎ０１−ｎ１０−ｎ１１で表される。
【００６１】
また、他の大ブロックも、上記の原則を用いて、小ブロック１６８または自体より小さい大ブロックの直流成分値を用いて自体の直流成分値および特徴量を演算することが可能となる。また、ブロックサイズが大きくなるに従って、画像に含まれるブロック数が減るので、ブロックサイズ毎の演算量は２の累乗に反比例して少なくなる。このような、ブロックの演算の度に画素レベルの演算を行うことなく、自体より一回り小さいブロックの直流成分値を繰り返し演算に採用する構成により、効率的に特徴量を演算することが可能となる。
【００６２】
特徴量決定部２５４は、大小ブロック導出部２５２で導出された小ブロックおよび複数サイズの大ブロックの特徴量に基づいて、最終的に１辺が２MIN+1画素の小ブロックの特徴量を決定する。
【００６３】
上述したように、ブロックサイズを小さくすると、画像解析の粒度は細かくなり、ブロック内もＭＨＩのグラデーションで満たされ易くなる反面、高速の動体１１２の動きを測定できなくなってしまう。特徴量決定部２５４は、大小ブロック導出部２５２の対象である複数サイズの大ブロックから動体１１２の速度を特定するのに適切なサイズの大ブロックを抽出し、その大ブロックにおける特徴量を、大ブロックを構成する小ブロックに適用することで小ブロックの特徴量を決定する。
【００６４】
上記の特徴量決定部２５４の動作を理論的に説明すると、例えば、上述した図４（ｂ）の第２基底関数では、左半分の画素１２２を減算、右半分の画素１２２を加算する。かかる計算式は１ライン（１行）において、
【数２】
2011081675.tif 000004
…（数式２）
となる。かかる数式２を偏微分処理に表現しなおすと、
【数３】
2011081675.tif 000005
…（数式３）
となる。
【００６５】
ここで、特徴量決定部２５４は、ｎΔｘを、測定を所望する最大の速度に設定することができる。例えば、１フレームの間に動体１１２が４画素移動する速度を測りたい場合はｎΔｘを４とする。したがって、ｎΔｘの間に１回はＭＨＩの輝度値の変化がある。つまり、数式３は、少なくとも１回は輝度値が変化するようにブロックのサイズを拡大して、注目画素ｆ（ｘ＋ｎ／２，ｙ）の前方と後方で同様な演算を遂行し、最後にブロック内の各画素を平均してそのブロックの差分値とすることができることを示している（但し数式２は、最後にｎで割る部分を省略している）。
【００６６】
ＭＨＩの水平方向の差分値を、座標（ｘ+ｎ／２，ｙ+ｎ／２）を中心とした前後左右のブロックまで考慮して求めると、
【数４】
2011081675.tif 000006
…（数式４）
となる。最後に、数式４の結果を１／ｎ２倍すればブロック内をすべて平均化したことになる。かかる数式２、３、４が垂直方向にも適用可能であることは言うまでもない。したがって、特徴量決定部２５４は、適切なサイズの大ブロックを抽出し、その大ブロックにおける特徴量を、大ブロックを構成する小ブロックに適用することで小ブロックの特徴量を決定している。
【００６７】
また、上述した図４（ｂ）や図４（ｃ）を、注目画素近辺のグラデーションの変化度合いを求めるための基底関数と考えると、ｓｏｂｅｌフィルタ等を適用してその基底関数に重み付けを行うことも考えられる。しかし本実施形態における直流成分値や特徴量は、注目ブロックでの動体１１２の時間方向の情報を導出するのみならず、後述する第２の問題を解決するために利用されるので、重み付けは行わない。
【００６８】
ところで、特徴量決定部２５４が抽出する適切な大ブロックとは、少なくとも１回の階調変化が認められ、かつＭＨＩのグラデーションで満たされる最大サイズのブロックであることは上述した通りである。しかし、その条件だけでは、動体１１２の速度を正確に導出できない例外的な場合が生じ得る。
【００６９】
かかる例外的な場合とは、例えば、幅の狭い動体１１２が水平方向に非常にゆっくりと動いた場合である。この場合、１つの大ブロック１８２内に動体１１２の左側面のエッジで出来たグラデーションと右側面のエッジで出来たグラデーションの両方を含むこととなり、その２つのグラデーションの配置関係から誤った移動方向を検出することがある。
【００７０】
図１１は、動体１１２が水平方向に移動した場合のＭＨＩを例示した説明図である。縦長の動体１１２が水平方向左から右へゆっとりと移動したため、図１１では、動体１１２の右側面のエッジで作られたＭＨＩと左側面のエッジで作られたＭＨＩとが共に大ブロック１８２内に現れている。そして、いずれのＭＨＩも左方向に移行するに従って徐々に暗くなっている。
【００７１】
これを人間が見た場合、そのＭＨＩのグラデーションの変化方向を総合的に判断して、動体１１２の移動方向は左から右であると視認することができる。したがって、当該大ブロック１８２における動体１１２の移動方向は白抜き矢印のように左から右と判断されるべきである。しかし、図１１中の四角で示した小ブロック１６８の水平方向の差分値を機械的に求めると、小ブロック１６８の左半分が右半分よりも明るいためにハッチングした矢印のように水平方向右から左へ、即ち実際の移動方向の逆方向に移動したものと誤判断してしまう。このように、動体１１２の移動方向を誤ると、画像処理システム１００において誤報を生じかねない。
【００７２】
ここで、画像処理装置１１０が十分な演算能力を備え、演算負荷に余裕があるようであれば、各ブロック内のＭＨＩの値を詳細に調べてその移動方向を判断することも可能かもしれないが、演算能力に乏しい画像処理装置１１０においてリアルタイムに画像解析するには、高速に求めることのできるブロックの特徴量だけで、速度を求めるのに適しているか否かを判断すべきである。そこで本実施形態では、小ブロックに特徴量を反映する大ブロックの条件に、「ＭＨＩに収容されている動体１１２が単一のエッジで形成されていること」を加えて、上述した誤判断を回避する。
【００７３】
図１２は、小ブロック１６８と大ブロック１８２との関係を示した説明図である。特徴量決定部２５４は、任意の大ブロック１８２に収容されている動体１１２が単一のエッジで形成されているか否かを大ブロック１８２と小ブロック１６８との水平方向および垂直方向の差分値の符号の一致を見て判断する。
【００７４】
かかる大ブロック１８２や小ブロック１６８の符号は、動体１１２の動きベクトルの水平成分と垂直成分の符号に対応するので、図１２（ａ）に示されるように、大ブロック１８２とそれに含まれるすべての小ブロック１６８の間に矛盾がなければ、即ち、符号（ここでは水平方向の矢印で示す。）の相違がなければ、その部分のＭＨＩは、単一の動体１１２のエッジによるものであると判断できる。この場合、特徴量決定部２５４は、より正確な速度が割り出せる矛盾のない大ブロック１８２における差分値を、大ブロック１８２と小ブロック１６８との面積比に応じて小ブロック１６８用に換算し直し、小ブロック１６８の特徴量として採用する。
【００７５】
一方、図１２（ｂ）に示されるように、大ブロック１８２とそれに含まれるすべての小ブロック１６８の間に矛盾が生じる場合には、その矛盾が生じた部分１８４のＭＨＩは、異なる動体、あるいは、図１２で示したように、単一の動体１１２の右側エッジと左側エッジとでできるようなグラデーションの不連続な部分になっていると判断できるので、小ブロック１６８における差分値をそのまま特徴量として採用する。
【００７６】
ただし、大ブロック１８２は複数のサイズで形成されるので、矛盾が生じる大ブロック１８２と小ブロック１６８との間に、図１２（ｃ）に示すように他のサイズ（例えば、大ブロック１８２の面積１／４倍の大きさ）の大ブロック１８６がある場合、特徴量決定部２５４は、そのサイズの異なる、大ブロック１８６と小ブロック１６８との差分値の符号の一致を判断する。ここでは、図１２（ｃ）に示した大ブロック１８６と小ブロック１６８との符号が一致するので、大ブロック１８６の差分値を小ブロック１６８に利用できる。
【００７７】
したがって、特徴量決定部２５４は、一致判断対象である大ブロック１８２中の複数の小ブロック１６８のうち１つでも大ブロック１８２の差分値の符号と一致しない差分値を持つ小ブロック１６８が検出された場合には、大ブロック１８２に含まれる１辺の長さが半分の４つの一回り小さな他のサイズの大ブロック１８６のそれぞれについて差分値の符号の一致判断を繰り返す。繰り返した結果、最終的に大ブロックが小ブロック１６８のサイズと等しくなるまで小さくなることもある。
【００７８】
特徴量決定部２５４は、差分値の符号がすべての小ブロック１６８と一致した大ブロック中の差分値を、その中に含まれるすべての小ブロック１６８用に換算し直し、小ブロック１６８の差分値、即ち、小ブロック１６８の特徴量とする。
【００７９】
このように大ブロックと小ブロック内の特徴量の符号が一致するか否かによって大ブロックの有効性を容易に判断する構成により、演算負荷の著しい軽減を図ることができる。
【００８０】
動きベクトル導出部２１８は、特徴量決定部２５４が導出した特徴量（差分値ｆｘ、ｆｙ）を用いて、対象となる動体１１２の小ブロック１６８毎の動きベクトルを導出する。上述したように、動体１１２のＸ軸方向の速度ｖｘは、水平方向の差分値ｆｘを用いてｖｘ＝ｋ／ｆｘで、Ｙ軸方向の速度ｖｙは、垂直方向の差分値ｆｙを用いてｖｙ＝ｋ／ｆｙで表すことができる。
【００８１】
かかる動きベクトル導出部２１８が導出したＸ軸方向の値ｖｘやＹ軸方向の値ｖｙは、それぞれ独立した軸で利用できる。例えば、画像処理装置１１０の撮像範囲において、改札や出入り口等、動体１１２がＸ軸方向またはＹ軸方向に移動が制限されることが予め分かっているとき、動体１１２の逆方向の移動や速度違反を検出することができる。動体１１２がＸ軸およびＹ軸以外の方向に移動した場合の動きベクトルに関しては後ほど詳述する。
【００８２】
以上述べたように、本実施形態による画像処理装置１１０は、物体の置き去りや持ち去りのように動体１１２の移動方向やその速度を必要としない画像解析だけでなく、動体１１２の速度や移動方向を必要とするような、より高度な検知を、演算リソースが限られた画像処理装置１１０自体で実現させることが可能となる。
【００８３】
また、具体的な解析処理では、小ブロックにより画像解析の粒度を細かく維持しつつ、大ブロックを利用することで小ブロックのみでは測定困難な速度も高精度に導出することが可能となる。
【００８４】
（３．モーションヒストリーイメージにおけるグラデーションが形成されている帯の幅方向の端部のブロックを利用する理由）
ところで、ＭＨＩのグラデーションから動体１１２の動きベクトルを求めるとき、ＭＨＩの態様によっては原理上２つの問題が生じ得る。
【００８５】
図１３は、原理上生じ得る２つの問題を説明するための説明図である。図１３（ａ）は、図１３（ｂ）に示す動体１１２が水平方向に移動した場合における、４ドット×４ドットの、あるブロックの各画素のＭＨＩの輝度値を示している。第１の問題は、動体１１２が「水平」方向に移動しているにも拘わらず、ＭＨＩの輝度値が水平方向に左右対称であるから、当該ブロックの水平方向の差分（微分値）は０になってしまうことである。第２の問題は、図１３（ｂ）に示す動体１１２が水平方向にしか移動していないにもかかわらず「垂直」方向にＭＨＩの値が変化していることである。以下、かかる２つの問題について詳しく説明する。
【００８６】
第１の問題は、動体１１２の移動によって生成されるＭＨＩの輝度値は、ほとんどの場合連続する複数の画素に跨るということに起因する。例えば、画面の横幅が７２０ドットで１秒間に３０枚の画像を表示する場合（３０ｆｐｓ）、１フレーム毎に１画素しか移動しないとすると、この物体が画面を横切る時間は、７２０／３０＝２４（秒）となり、非常に遅いことが分かる。通常、動体１１２が画像処理装置１１０の撮像範囲に存在する時間はもっと短く、短時間に横切ることが多いため、１フレームの間に移動する距離は複数画素に亘ることになる。つまり、連続する複数画素がＭＨＩの所定の値τで同時に初期化され、以後同期して徐々に値が小さくなっていく。
【００８７】
図１４は、動体１１２の水平移動によるＭＨＩの輝度値の変化を示した説明図である。例えば、任意のＸ軸上の１ライン（１行）を抜粋すると、ＭＨＩの輝度値は図１４のように階段状に変化している。したがって、水平方向のＭＨＩの変化が検出されるのは、ＭＨＩの値が階段状に変化している部分をブロック内に含む場合だけであり、動体１１２の速度のみならず、フレーム間隔にも依存する。かかる第１の問題は、上述した大ブロックを利用する構成により、既に解決手段が見いだされているので、ここでは言及しない。
【００８８】
第２の問題は、動体１１２のエッジが移動方向と垂直ではなく、垂直に対して傾いている場合において、ＭＨＩのグラデーションは、移動方向である水平方向のみならず、移動方向に垂直な方向にも変化してしまうことに起因する。
【００８９】
図１５は、動体１１２の勾配によるＭＨＩの軌跡を説明するための説明図である。例えば、画面上の任意の小ブロック１６８上を図１５（ａ）のように直角三角形の物体が水平方向左から右に移動すると、図１５（ｂ）のようなＭＨＩが形成される。ここでＭＨＩは移動方向である水平方向のみならず垂直方向にもグラデーションを形成している。したがって、図１５（ｂ）に示したようなＭＨＩは、図１５（ｃ）のように、直方体の動体１１２を斜め右下に移動させたときにも形成できることとなる。しかも理論上は、両者で全く同じＭＨＩ（図１５（ｂ））が形成され得る。この事象を、図１６を用いて説明する。
【００９０】
図１６は、移動方向とＭＨＩのグラデーションとの関係を示した説明図である。時刻０において動体１１２の左側のエッジが図１６中の破線部分１８８にあるとする。そしてその勾配を維持しつつ一定の速度で移動し、ＭＨＩの保持時間として予め設定した時間τｍｓｅｃ後に実線部分１９０に到達したとする。このとき、その経路は、Ａ→Ｂ、Ａ→Ｃ、Ａ→Ｄのように無数考えられ、かつグラデーションのみからでは経路を特定することはできない。
【００９１】
どの経路を辿ったとしてもエッジの勾配を一定に保ったまま移動している限り、その移動に伴って形成されるＭＨＩのグラデーションは同じである。何故なら、いずれの経路を辿っても、エッジ上のＢ、Ｃ、Ｄ点のＭＨＩの値Ｈτ（Ｂ，ｔ）、Ｈτ（Ｃ，ｔ）、Ｈτ（Ｄ，ｔ）は最大値τで初期化され、以後同期しながら減少するからである。ＭＨＩは、現在時刻における実線部分１９０の輝度が最高値であり、τｍｓｅｃ前の破線部分１８８の輝度が最低値となるから、いずれの経路を辿っても、小ブロック１６８の左上が暗く、右下が明るくなり、グラデーションの変化する方向も等しくなる。ただし、移動経路が異なれば移動距離も異なってくるので、同一のグラデーションを形成するためには、移動する速度を調整しなければならない。
【００９２】
つまり、経路Ａ→Ｂであっても、経路Ａ→Ｄであっても、動体１１２のエッジの勾配を一定に維持しつつ移動距離に応じて適切な速度で移動さえすれば、小ブロック１６８上に同じＭＨＩを作ることができることになる。したがって、ＭＨＩを複数の小ブロック１６８に分割して演算する場合、注目する小ブロック１６８上のＭＨＩだけから動体１１２の真の速度や移動方向を知ることはできない。
【００９３】
上述した原理上の第２の問題は、従来における、速度（移動距離）ａ＝√（ｄｘ２+ｄｙ２）、移動方向θ＝ｔａｎ−１（ｄｙ／ｄｘ）という演算でも解決できない。例えば、図１３（ａ）のブロックにおけるＨＭＩの輝度値から移動方向θを導出しようとしても、水平方向の差分値（微分値）が０なので分母が０になり、ｄｙ／ｄｘが∞になってしまう。
【００９４】
しかし、ｔａｎ９０゜＝∞、ｔａｎ（−９０゜）＝−∞であることを考慮すると、移動方向θは、９０゜あるいは２７０゜（＝−９０゜）とみなすことができる。したがって、図１３（ａ）における実際の移動方向（０゜：水平方向）とは著しく異なる、垂直方向に移動しているといった結果が得られる。かかる従来の計算式では動体１１２の速度が高くなるにしたがって同じ輝度値が続く画素数が広がるので、このような誤判断の影響も、より顕著になることが予想される。特に、従来の計算式では動体１１２の速度や移動方向を画素単位で求めるので、計算リソースが多くかかる割に、有効なデータが得られないといった状態に陥ることとなる。
【００９５】
短時間で生成可能なＭＨＩを利用して、かつ、少ない演算負荷でリアルタイムの画像解析を望む場合、上記の第２の問題を、演算負荷を重くせずに解決しなくてはならない。そこで本実施形態では、上述した特徴量決定部２５４によって導出された小ブロックごとの特徴量を用い、動体１１２の動きベクトルを軽負荷かつ高精度に求めることを目的とする。
【００９６】
（動きベクトルの求め方）
以下、上記第２の問題の影響を受けない動きベクトルの導出手段を説明するが、その前に、小ブロック１６８の水平方向の差分値や垂直方向の差分値と動きベクトルとの関係について触れておく。ここでは、１フレームの間に直方体が１画素、水平方向左から右に移動したときの速度を基準とすべく、かかる移動により形成されるＭＨＩから得られる水平方向の差分値を基準値（定数ｋ）とする。
【００９７】
図１７は、速度の基準値ｋを説明するための説明図である。例えば、フレーム間隔が３３ｍｓｅｃで１フレーム毎に１画素、水平方向左から右に移動する直方体の動体１１２によってできるＨτ（ｘ，ｙ，ｔ）は、図１７（ａ）のようになるので、定数ｋは、１３２×（横）４組×（縦）８行＝４２２４となる。そして動体１１２が任意の速度で水平方向に移動して形成されたＭＨＩに対して第２基底関数を適用して得られた水平方向の差分値（特徴量）をｆｘとすると、この動体１１２の速度ｖｘ（画素／フレーム）は、基準値との相対的な関係により、数式５で求めることができる。
【数５】
2011081675.tif 000007
…（数式５）
【００９８】
例えば、１フレーム毎に２画素水平方向左から右に移動する直方体の動体１１２によってできるＨτ（ｘ，ｙ，ｔ）は、図１７（ｂ）のようになり、ｆｘ＝６６×４組×８行＝２１１２なので、ｖｘ＝４２２２／２１１２＝２となって、確かに２倍の速度になっていることが理解できる。
【００９９】
同様に直方体の動体１１２が任意の速度で垂直方向に移動してできたＭＨＩに対して第３基底関数を適用して得られた垂直方向の差分値（特徴量）をｆyとすると、この動体１１２の速度ｖｙ（画素／フレーム）は、数式６で求めることができる。
【数６】
2011081675.tif 000008
…（数式６）
【０１００】
しかし、第２の問題の説明で述べたように、水平方向にしか移動していない場合でも、動体１１２のエッジが移動方向に垂直な軸から傾いていると、水平方向の差分値だけでなく垂直方向の差分値まで検出されてしまう。
【０１０１】
図１８は、動体１１２の勾配と速度との関係を説明するための説明図である。例えば、図１５（ａ）に示したような直角三角形の動体１１２が白抜き矢印のように水平方向左から右に１フレームに１画素移動すると、小ブロック１６８のＨτ（ｘ，ｙ，ｔ）は図１８のように表すことができる。図１８の破線は複数の時刻における動体１１２のエッジを表している。ＭＨＩの構成上、同時刻から同期して減算が始まるので、エッジ上のＨτ（ｘ，ｙ，ｔ）は同じ値になっている。この状態の小ブロック１６８に対し、数式５および数式６を用いて動体１１２の速度を求めると、ｖｘ＝ｖｙ＝１（画素／フレーム）となり、本来は水平方向にしか動いていないにも拘わらず、垂直方向にも水平方向と同じ速度で移動しているという結果が出てしまう。
【０１０２】
ここで、図１８のブロックが、図１５（ｃ）に示した直方体の動体１１２が図１８のハッチングされた矢印の方向に移動して形成されたものであると仮定すると、斜め４５゜右下に移動する速度は、図１５（ａ）の水平方向の速度の１／√２倍となる。また、見方を変えると、図１５（ａ）と図１５（ｃ）における注目ブロックのＭＨＩのグラデーションの態様を等しくするには、図１５（ａ）の水平方向の速度を図１５（ｃ）の水平方向の速度の２倍にすればよいことが理解できる。
【０１０３】
次に、動体１１２のエッジがＹ軸に対して勾配を有しているとき、数式５および数式６によって得られる値を成分とする速度ベクトルの向きについて説明する。
【０１０４】
図１９は、動体１１２の勾配と速度との関係を説明するための説明図である。ここで、破線で示した、複数の時刻における動体１１２のエッジ１９２は、図１９に示すようにＹ軸に対してαの角度を有している。図１９中、実線矢印は、ＭＨＩのグラデーションの変化の方向を表している。また、一点鎖線矢印は、数式５および数式６から得られる速度ベクトルの方向を表している。
【０１０５】
図１９を参照して理解できるように、Ｙ軸と破線で表したエッジとの角度も、Ｙ軸と一点鎖線矢印で表した速度ベクトルとの角度も、ａｒｃｔａｎ（２／１）で同一角度α（ここでは６０°）である。把握しやすい表現に置き換えると、動体１１２のエッジの勾配と数式５および数式６から求められる速度ベクトルの方向は、Ｙ軸を反射板にした場合の入射角と反射角の関係にある。以後、数式５および数式６から求められる速度ベクトルの方向を、説明の便宜上、反射角方向とよび、実際に反射角方向に動体１１２が移動した場合の速度ベクトルをＶｒと表す。
【０１０６】
任意のブロックにおいて、同一のＭＨＩを生成する方法は、その動体１１２の速度と移動方向を調整することで幾通りもあることは、既に述べた通りである。ここでは、動体１１２が反射角方向に移動した場合の動きベクトルの大きさについて検討する。
【０１０７】
動体１１２のエッジが図１９に破線で示したような移動軌跡を辿った場合、数式５および数式６に基づくと、水平方向への移動速度ｖｘ＝２（画素／フレーム）、垂直方向への移動速度ｖｙ＝１（画素／フレーム）となる。かかる水平方向への移動速度と垂直方向への移動速度とを合成すると、その終点１９４は、２フレーム後のエッジ（１）上に現れ、一点鎖線で示した軌跡による１フレーム後の実際の終点１９６が現れるエッジ（２）と異なる。
【０１０８】
図２０は、合成ベクトルと実際の移動における動きベクトルとの関係を示した説明図である。上述した事象を改めて説明すると、動体１１２のエッジのＸ軸到達点とＹ軸到達点とを結ぶ結線上のＨτ（ｘ，ｙ，ｔ）は、図１９を用いても理解できるように、同じ値となる。動体１１２のエッジが、フレーム間で、原点からこの線上まで反射角方向に移動した場合の動きベクトルの大きさは、図２０に示したように、移動速度ｖｘ＝ｋ／ｆｘとｖｙ＝ｋ／ｆｙを２つの辺の長さとする長方形の対角線の長さ（ｖｘ，ｖｙ）の半分に相当する。したがって、動体１１２がＭＨＩの反射角方向に進んだ場合の動きベクトルは、次のようになる。
【数７】
2011081675.tif 000009
…（数式７）
【０１０９】
このように、数式５および数式６から求められる速度ベクトルの大きさが、実際の速度ベクトルよりも大きくなってしまうのは、一種の錯覚に相当する、動体１１２のエッジの勾配の影響を含んでいるからである。
【０１１０】
（動体１１２の移動方向：ｔａｎβ）
次に、動体１１２の実際の移動方向ｔａｎβを求める手順を説明する。
【０１１１】
図２１および図２２は、動体１１２の移動方向を説明するための説明図である。ここでは、動体１１２のエッジによって図２１のようなＭＨＩが生成される。このとき、動体１１２によって形成されるＭＨＩのグラデーションの変化方向は、おおよそ破線矢印に示す軌跡を辿っている。図２１の場合、注目している小ブロック１６８ａ上を動体１１２が通過したときの移動方向は、ＭＨＩのグラデーションの変化方向と垂直の方向（実線矢印の方向）にあるＭＨＩにおけるグラデーションの帯の幅方向の端部（以下、単にグラデーションの端部と言う。）を含む小ブロック１６８ｂ、１６８ｃによって知ることができる。以下、その理由について詳述する。
【０１１２】
図２１に示すように、ＭＨＩのグラデーションの変化方向と垂直の方向（実線矢印の方向）を辿ると、いずれグラデーションの端部（他との境界）に到達する。図２２（ａ）は、そのグラデーションの端部を含む小ブロック１６８を拡大した様子を表している。この図でハッチングが施されている部分の画素はＭＨＩの輝度値として正の値が入っており、白い部分はＭＨＩの輝度値０、即ちＭＨＩが存在していない。画像処理においてエッジを検出するために、
【数８】
2011081675.tif 000010
…（数式８）
を用いているが、これは画像のエッジに垂直なベクトルの傾きを表しているに過ぎない。
【０１１３】
ところで、ベクトル（ａ，ｂ）をθ回転させる行列は、
【数９】
2011081675.tif 000011
…（数式９）
で表すことができるので、９０゜回転させる回転行列は、
【数１０】
2011081675.tif 000012
…（数式１０）
となる。したがって、ＭＨＩのグラデーションの変化方向のベクトル、即ち移動方向は、
【数１１】
2011081675.tif 000013
…（数式１１）
で求められる。ここで、数式１１の右辺に示した値の近似値に比例する値として小ブロック１６８ｂ、１６８ｃの水平方向の差分値と垂直方向の差分値を代入すると、ＭＨＩのエッジの勾配ｔａｎβは、
【数１２】
2011081675.tif 000014
…（数式１２）
となる。
【０１１４】
例えば、図２２（ａ）において、斜線で示した部分の１画素のＭＨＩの輝度値を定数ｃとしてブロックの水平方向の差分値ｆｘと垂直方向の差分値ｆｙを求めると、ｆｘ＝１２ｃ−４ｃ＝８ｃ、ｆｙ＝−１６ｃであるから、その傾きｔａｎβは、８ｃ／１６ｃ＝１／２（０．５）となり、斜線部分の傾斜と一致しているのが分かる。しかし、数式１２は、本来、画素に対して行う演算なので、必ずしも実際の傾斜と一致する値になるとは限らない。
【０１１５】
例えば、図２２（ｂ）の場合、ｔａｎβの値は、
【数１３】
2011081675.tif 000015
…（数式１３）
となり、図２２（ｃ）の場合、ｔａｎβの値は、
【数１４】
2011081675.tif 000016
…（数式１４）
となって、実際の値である０．５から多少ぶれる。
【０１１６】
しかし、グラデーションの端部を含む小ブロック１６８を複数集めると、例えば、図２２（ａ）〜（ｃ）の３つの小ブロック１６８のｔａｎβの値を平均すると、（０．５＋０．３６＋０．７８）／３＝０．５４６となり、対象となるブロックが多いほど平均化されて期待値である０．５に近くなる。即ち、個々のブロックの結果は正確な値とならない場合があるが、サンプル数が多くなれば全体として正しい値に近づく。
【０１１７】
ここでは、グラデーションの端部を含む小ブロック１６８の水平方向の差分値ｆｘおよび垂直方向の差分値ｆｙに基づき、数式１２を用いて、ＭＨＩのエッジの傾きｔａｎβが求められることが理解できる。
【０１１８】
（動きベクトルの求め方）
次に、動体１１２の移動方向の傾きがわかった場合の動きベクトルの求め方を説明する。
【０１１９】
図２３は、動きベクトルの求め方を説明するための説明図である。図２３には、時刻０に破線で示される位置にあった動体１１２のエッジが時刻τｍｓｅｃ後に実線部分に移動する、３つの経路ＯＡ（一点差線矢印）、ＯＢ（実線矢印）、ＯＣ（二点鎖線矢印）が示されている。ここで、経路ＯＡは、ＭＨＩのグラデーションの変化方向、経路ＯＢは動体１１２の実際の移動経路、経路ＯＣが反射角方向を示す。
【０１２０】
今、注目している小ブロック１６８において、ＭＨＩによるグラデーションが等しくなるように、エッジの勾配を一定に保ちながら動体１１２を移動させたとする。ＯＡの長さをａ、ＯＢの長さをｂ、／ＯＣの長さをｃとし、ＯＡとＯＢとのなす角をθとすると、ａ＝ｂ×ｃｏｓθで表すことができる。経路ＯＡは、他の経路ＯＢ、ＯＣよりも短いので、ＭＨＩによる等しいグラデーションを形成するときには、他の経路と比較して最も低速で移動することとなる。このＭＨＩのグラデーションの変化方向の経路ＯＡを進んだときの速度をＶ０とし、実際に移動した経路ＯＢにおける速度をＶｍとすると、
【数１５】
2011081675.tif 000017
…（数式１５）
であるから、次の式が成り立つ。
【数１６】
2011081675.tif 000018
…（数式１６）
【０１２１】
ところで、図２３における点ＡからＸ軸に垂線を下ろした点をＨとすると、破線で表した時刻０における動体１１２のエッジと、実線で表した時刻τにおける動体１１２のエッジとは平行であるため、∠ＤＡＨ＝∠ＯＡＤ−∠ＯＡＨ＝９０゜−∠ＯＡＨ＝αとなる。一方、三角形ＡＯＨに着目すると∠ＡＯＨも∠ＡＯＨ＝９０゜−∠ＯＡＨ＝αとなる。
【０１２２】
したがって、経路ＯＡとＯＢとのなす角θは、Ｘ軸と経路ＯＢとのなす角βを用いて、Ｘ軸を基準として反時計回りの角度を+、時計回りの角度を−で表現すると、θ＝−α−（−β）＝−α+βとなる。これを数式１６に代入すると、次のようになる。
【数１７】
2011081675.tif 000019
…（数式１７）
【０１２３】
同様に、反射角方向の経路ＯＣのベクトルＶｒと経路ＯＡのベクトルＶ０の関係を求める。ここで、図２３の点ＡからＹ軸に垂線を下ろし、この点をＧとすると、∠ＡＯＣ＝∠ＧＯＣ−∠ＧＯＡ＝α−∠ＧＯＡ＝α−（π／２−∠ＡＯＨ）＝α−（π／２−α）＝２α−π／２となる。したがって、つぎの式が成り立つ。
【数１８】
2011081675.tif 000020
…（数式１８）
かかる数式１７および数式１８から｜Ｖ０｜を削除すると、次の式が導出される。
【数１９】
2011081675.tif 000021
…（数式１９）
【０１２４】
ここでＶｒの成分は、上述した数式７で求められるので、実際の移動方向の傾きβさえ分かれば、その方向の移動速度も求められる。但し、このままではｓｉｎ２αやｃｏｓ（α−β）等の演算負荷が重い三角関数の計算が残っているので、演算負荷を軽減すべく単純な式に変形する。
【０１２５】
図２４は、動きベクトルの速度の求め方を説明するための説明図である。図２４に示すようにＶｍのｘｙ成分（Ｘ軸Ｙ軸成分）を（ｖｍｘ，ｖｍｙ）、Ｖｒのｘｙ成分を（ｖｒｘ，ｖｒｙ）としたとき、数式１９の左辺は、次のようになる。
【数２０】
2011081675.tif 000022
…（数式２０）
一方、数式１９の右辺は、次のようになる。
【数２１】
2011081675.tif 000023
…（数式２１）
【０１２６】
数式１９では（左辺）＝（右辺）なので、
【数２２】
2011081675.tif 000024
…（数式２２）
となり、Ｖｍのｘ成分Ｖｍｘは、
【数２３】
2011081675.tif 000025
…（数式２３）
となる。
【０１２７】
また、図２４を参照すると、動きベクトルのｙ成分ｖｍｙ＝ｖｍｘｔａｎβであるから、動きベクトルのｘ成分ｖｍｘと動きベクトルのｙ成分ｖｍｙは次の式で求めることができる。
【数２４】
2011081675.tif 000026
…（数式２４）
【０１２８】
ここで、図２３で説明したように、角αは、ＭＨＩのグラデーションの変化方向Ｏ→Ａであるから、次の式で求められる。
【数２５】
2011081675.tif 000027
…（数式２５）
【０１２９】
ただし、数式２４において変化方向の角αはｎπ／２（ｎ＝０，１，２，…）、即ち９０°の整数倍ではないとする。これは、角αが９０°の整数倍であった場合、数式７の分母の水平方向の差分値ｆｘと垂直方向の差分値ｆｙのいずれかが０となるので反射角方向の動きベクトルが計算できないからである。また、角αが９０°の整数倍となるときには、数式７を用いなくとも動きベクトルのｘｙ成分ｖｍｘ、ｖｍｙを別途簡単に求めることができる。
【０１３０】
図２５は、角αが９０°の場合における動きベクトルのｘｙ成分ｖｍｘ、ｖｍｙの計算方法を説明するための説明図である。ｆｙ＝０のとき、ＭＨＩのグラデーションは図２５（ａ）のように縦縞になっている。このとき、動きベクトルのｘｙ成分ｖｍｘ、ｖｍｙは、数式７を用いなくとも次のようにして求められる。
【数２６】
2011081675.tif 000028
…（数式２６）
【０１３１】
一方、ｆx＝０のとき、ＭＨＩのグラデーションは図２５（ｂ）のように横縞になっている。このとき、動きベクトルのｘｙ成分ｖｍｘ、ｖｍｙは、ｆｘ＝０のとき同様、次のようにして求められる。
【数２７】
2011081675.tif 000029
…（数式２７）
【０１３２】
尚、数式２７は、数式１９において、
【数２８】
2011081675.tif 000030
…（数式２８）
即ちｔａｎαを±∞としたときの式となっている。
【０１３３】
（数式２４の検証１〜５）
ここで、上述した数式２４の確からしさを５つの検証例を上げて簡単に検証する。第１の検証例は、ＭＨＩのグラデーションの変化方向を示す角αと実際の移動方向を示す角βが共に同一方向（−４５゜）であった場合である。これは、ＭＨＩのグラデーションの変化方向が反射角方向と一致する特殊な場合であり、図１５（ｃ）に示した移動で図１８に示すＭＨＩが生成された状態に相当する。この場合、ｔａｎα＝ｔａｎβ＝−１なので、数式２４は、ｖｍｘ＝−ｖｒｙ，ｖｍｙ＝ｖｒｙとなって確かに右斜め４５゜に移動しているといった結果が生成されている。
【０１３４】
第２の検証例は、αが−４５゜でβが０゜で動体１１２が水平方向に移動した場合である。これは、動体１１２が図１５（ａ）に示した移動軌跡を辿り、図１８に示すようなＭＨＩが生成された状態に相当する。この場合、ｔａｎα＝−１，ｔａｎβ＝０なので数式２４は、ｖｍｘ＝−２ｖｒｙ，ｖｍｙ＝０となり、確かに垂直方向のベクトル成分は０で水平方向に移動しているといった結果が生成されているのが分かる。しかも、第１の検証例と比較して速度も２倍になっており、速度値も正しいことが理解できる。
【０１３５】
第３の検証例は、図２４に示す移動の場合である。図２４では、ｔａｎα＝−２，ｔａｎβ＝−１／６，ｖｒｙ＝２５ｍｍなので、これらを数式２４に代入すると、
【数２９】
2011081675.tif 000031
…（数式２９）
となって、図の動きベクトルのｘｙ成分ｖｍｘ、ｖｍｙの長さ及び符号と一致する。
【０１３６】
第４の検証例は、αが任意でβが０゜で動体１１２が水平方向に移動した場合である。ｔａｎβ＝０を数式２４に代入すると、ｖｍｙ＝０となり、ｖｍｘは、次のようになる。
【数３０】
2011081675.tif 000032
…（数式３０）
ここでｆｘは水平方向の差分値、ｋは数式５で説明した定数である。ｋ／ｆｘは、数式５で既に説明したように、直方体の動体１１２が水平方向に移動した場合の速度の求め方である。したがって、第４の検証例は、「動体１１２の移動方向が水平と仮定できる場合には、動体１１２のエッジの勾配による影響を気にすることなく水平方向の差分値から直ちに動体１１２の速度を求めることができる」ことを示している。これは動体１１２の移動方向が垂直と仮定できる場合も同様である。
【０１３７】
図２６は、検証例を示す説明図である。第５の検証例は、ＭＨＩの勾配が水平方向に＋の向きの移動を示しているにもかかわらず、実際は−の向きに移動している図２６のような一見無さそうで有りえる移動である。かかる図２６では、ｔａｎα＝−２，ｔａｎβ＝３，ｖｒｙ＝−２５ｍｍなので、これらを数式２４に代入するとｖｍｘ＝−２０、ｖｍｙ＝−６０となって、図のｖｍｘとｖｍｙの長さ及び符号と一致する。
【０１３８】
尚、ｔａｎα×ｔａｎβ＝−１（例えばα＝４５゜でβ＝−４５゜）のときには、数式２４の分母が０になってしまうが、α＝４５゜でβ＝−４５゜のときはエッジの方向に動体１１２が移動している状態であり、そもそもＭＨＩ自体ができないので、数式２４において分母が０になる事象は考慮しなくてよい。
【０１３９】
以上説明したように、ｖｒｙ、ｔａｎα、ｔａｎβを導出して数式２４に代入すると、第２の問題に影響されない真の動きベクトルを導出することが可能となる。ここでは、上述した事象を踏まえて、動きベクトル導出部２１８と、端部抽出部２２０とが動きベクトルの計算を実行する。
【０１４０】
動きベクトル導出部２１８は、図２１における注目ブロック（小ブロック１６８ａ）の水平方向の差分値と垂直方向の差分値を数式２５に代入して、この注目ブロックのＭＨＩのグラデーションの変化方向の傾きｔａｎαを求める。
【０１４１】
端部抽出部２２０は、動きベクトル導出部２１８で導出されたグラデーションの変化方向と垂直の方向に向かって、グラデーションの端部を抽出する。グラデーションの端部が抽出されると、動きベクトル導出部２１８は、そのグラデーションの端部を含むブロック１６８ｂ、１６８ｃの水平方向の差分値と垂直方向の差分値を数式１２に代入して動体１１２の移動方向を表すｔａｎβを求める。ここでは、注目ブロック１６８ａと同一時刻の動体１１２の移動方向の近似値を求めている。
【０１４２】
続いて、動きベクトル導出部２１８は、注目ブロック１６８ａの水平方向の差分値と垂直方向の差分値を数式７に代入して反射角方向の動きベクトル（ｖｒｘ，ｖｒｙ）を求める。動きベクトル導出部２１８は、このようにして求めたｖｒｙとｔａｎαとｔａｎβとを数式２４に代入して、実際の移動方向を経路とする動きベクトルを導出する。このようにして、注目ブロックの情報だけでは分からなかった実際の動きベクトルを求めることができる。
【０１４３】
動きベクトル利用部２２２は、応用アプリケーション部分であり、ブロック毎に求めた動きベクトルを利用して、通過ゲートを逆方向に進んだり、一定速度以上で通り抜けたりしようとする動体を検知する。具体的に、特定の小ブロックの特徴量が、所定の向きや所定の大きさを示した場合に当該画像処理装置１１０の特定の出力をＯＮにする等の動作を行う。
【０１４４】
また、コンピュータを、上記画像処理装置１１０として機能させるプログラムや、そのプログラムを記憶した、コンピュータで読み取り可能な記憶媒体も提供される。
【０１４５】
（画像処理方法）
次に、図２７〜図３９を用いて、撮像した画像中における動体１１２の動きベクトルを導出する画像処理方法について説明する。
【０１４６】
図２７は、画像処理方法の全体的な処理の流れを示したフローチャートである。図２７において、まず、制御部１８０は、画像データの格納エリアや、ＭＨＩの格納エリアや、特徴量の格納エリアの確保などの初期化処理を行う（Ｓ４００）。
【０１４７】
図２８は、初期化処理ステップ（Ｓ４００）で確保すべき、ブロック（単位ブロック、小ブロック、１または複数の大ブロック）サイズ毎の情報を格納する構造体のリンク周辺のメモリ・レイアウトを示している。ここで、link pointer４３０は、サイズ毎のブロックの情報を格納する構造体のリンクを指している。
【０１４８】
構造体４３２には、ブロックのサイズに関する情報(power)や、ブロック毎のＭＨＩの直流成分値を格納する配列４３４へのポインタ(*dc)や、ブロック毎の水平方向の特徴量ｆｘの値を格納する配列４３６へのポインタ(*fx)や、ブロック毎の垂直方向の特徴量ｆｙの値を格納する配列４３８へのポインタ(*fy)や、移動が検出されない画素数ｎｍの値を格納する配列４４０へのポインタ(*noMotionPixels)や、画像に含まれるブロックの数(blocks)や、次に大きなサイズのブロックに関する情報を格納する構造体へのポインタ(*next)や、必要であればリンクを逆に辿ることのできるポインタ(*before)などを含んでいる。
【０１４９】
尚、構造体４３２の要素powerの値は、ブロックの一辺のサイズが２の累乗で示される場合における累乗値に相当する。例えば、この値が３の時は、ブロックのサイズは１辺が２３＝８画素である。また、next=0となっている構造体は、その構造体がリンクの最後であることを示している。
【０１５０】
そして、制御部１８０の画像入力制御部２１０が、撮像部１５０を通じて画像を取得すると（Ｓ４０２のＹｅｓ）、ＭＨＩ生成部２１２は、入力された画像のフレーム間の差分を用いて、動体１１２の軌跡を階調画像で表現するＭＨＩを生成する（Ｓ４０４）。画像入力制御部２１０による画像の取得が初回の場合、前フレームの画像が存在していないので、ＭＨＩ生成部２１２は、現フレームの画像を前フレームに複製して差分０を求め、演算不能となるのを回避する。また、ＭＨＩの生成には、オープンソースのコンピュータビジョン用のライブラリを利用することもできる。
【０１５１】
続いて、ブロック分割部２１４は、生成されたＭＨＩを所定の大きさの小ブロック（正確にはさらに小さい単位ブロック）に分割する（Ｓ４０６）。かかる小ブロックの大きさは、特徴量（特に直流成分値）を導出する最小単位の単位ブロックの面積の４倍である。
【０１５２】
特徴量導出部２１６は、分割された小ブロックにおける（を占有する）動体１１２の水平方向および垂直方向の移動速度に相当する特徴量を導出する。具体的に、特徴量導出部２１６として機能する単位ブロック導出部２５０は、ブロック分割部２１４によって分割された１辺が２MIN画素の単位ブロック、例えば、図２８に１辺２３画素（powor=3）で示した最小単位のブロックに含まれるＭＨＩの値Ｈτ（ｘ，ｙ，ｔ）の総和（直流成分値）を求める（Ｓ４０８）。かかる単位ブロックは、水平方向および垂直方向の差分値が不要なので、図２８の配列４３６や配列４３８は空白または未設定でよい。
【０１５３】
そして、大小ブロック導出部２５２は、単位ブロック導出部２５０の対象である１辺が２MIN画素の単位ブロックを用いて、その単位ブロックを周囲４ブロック分結合し、面積を４倍にした１辺が２MIN+1画素（図２８の例では１辺２４画素（powor=4））の小ブロックの特徴量を導出し、さらに小ブロックの１辺を２１、２２、２３…倍した大ブロックの特徴量を導出する（Ｓ４１０）。特徴量決定部２５４は、大小ブロック導出部２５２で導出された小ブロックおよび１または複数サイズの大ブロックの特徴量に基づいて、最終的に１辺が２MIN+1画素の小ブロックの特徴量を決定する（Ｓ４１２）。
【０１５４】
続いて、動きベクトル導出部２１８は、特徴量導出部２１６によって導出された特徴量（水平方向および垂直方向の差分値）からＭＨＩのグラデーションの変化方向の傾きを示すｔａｎαおよび反射角方向の動きベクトル（ｖｒｘ，ｖｒｙ）を、端部抽出部２２０が抽出したグラデーションの端部を含むブロックの水平方向および垂直方向の差分値から動体１１２の移動方向を示すｔａｎβを求め、動体１１２の真の動きベクトルを導出し（Ｓ４１４）、画像取得待ちステップ（Ｓ４０２）からを繰り返す。
【０１５５】
（特徴量導出ステップ（Ｓ４１０））
図２９は、上述した小ブロックおよび大ブロックの特徴量導出ステップ（Ｓ４１０）の具体的な処理の流れを示したフローチャートである。本実施形態では、特徴量演算の効率化を図るべく、小ブロックや大ブロックの特徴量を求めるときに、自体より一回り小さいブロックの直流成分値を繰り返し演算に採用する。ここでは、単位ブロック導出ステップ（Ｓ４０８）において、既にすべての単位ブロックの直流成分値が求められているので、その直流成分を利用して小ブロックおよび大ブロックの特徴量を導出する。
【０１５６】
大小ブロック導出部２５２は、単位ブロックの情報を収めた構造体へのポインタsmallと小ブロックの情報を収めた構造体へのポインタlargeに、それぞれ図２８のlink pointerの値とlink pointerの指す構造体のnextの内容を設定する（Ｓ４５０）。そして、next=0となっている最大の大ブロックのpowerを読み出して変数maxに、最小のブロックのpowerを変数mに格納し（Ｓ４５２）、変数mがmax以上であるか否か、即ち最大の大ブロックを示しているかどうか判断する（Ｓ４５４）。ここで、変数mがmax以上ではないと判断されると（Ｓ４５４のＮｏ）、大小ブロック導出部２５２は、変数mをインクリメントして（Ｓ４５６）、現時点（初回）の大ブロックである小ブロックの数を読み出してnumに格納して、変数nをリセットする（Ｓ４５８）。
【０１５７】
続いて、大小ブロック導出部２５２は、変数nがnum以上であるか否か、即ち対象ブロックの数全部に関して演算が完了したか否か判断し（Ｓ４６０）、変数nがnum以上ではないと判断されると（Ｓ４６０のＮｏ）、largeによって示されるブロックのｎ番目に含まれる４つのブロックの直流成分値（ｎ００、ｎ０１、ｎ１０、ｎ１１）を読み出し（Ｓ４６２）、直流成分値ならびに水平方向および垂直方向の差分値を含む特徴量を導出する（Ｓ４６４）。そして、nをインクリメントして（Ｓ４６６）、演算完了判断ステップ（Ｓ４６０）からを繰り返す。ここで、変数nがnum以上になれば（Ｓ４６０のＹｅｓ）、次のサイズの大ブロックを演算すべく、最大ブロック判断ステップ（Ｓ４５４）からを繰り返す。そして変数mがmax以上になれば（Ｓ４５４のＹｅｓ）、当該小ブロックおよび大ブロックの特徴量導出ステップ（Ｓ４１０）を終了する。
【０１５８】
（特徴量決定ステップ（Ｓ４１２））
図３０は、上述した小ブロックの特徴量決定ステップ（Ｓ４１２）の具体的な処理の流れを示したフローチャートである。ここでは、上述したように、大小ブロック導出部２５２で導出された小ブロックおよび１または複数サイズの大ブロックの特徴量に基づいて、最終的に１辺が２MIN+1画素（ここではpower=4）の小ブロックの特徴量を決定する。
【０１５９】
特徴量決定部２５４は、まず、１枚のフレーム画像に含まれる最大サイズのブロックの個数を、図２８においてnext=0となっているリンク末尾の構造体のblocksの値を読み出し、変数Mに格納する（Ｓ５００）。かかるblocksの値は初期化処理ステップ（Ｓ４００）で設定されている。続いて、特徴量決定部２５４は、ブロック番号を示す変数nをリセットし（Ｓ５０２）、その変数nとMを比較して、最終のブロックまで調べたかどうかを判定する（Ｓ５０４）。ここで、最終ブロックに至っていないと判断されると（Ｓ５０４のＮｏ）、最大サイズのブロックのｎ番目に含まれる１辺が２MIN+1画素のすべての小ブロックの特徴量を最終的に決定する（Ｓ５０６）。その詳細な処理は図３１で詳述する。そして、変数nをインクリメントして（Ｓ５０８）、最終ブロック判定ステップ（Ｓ５０４）に戻る。
【０１６０】
最終ブロックに至っていると判断されると（Ｓ５０４のＹｅｓ）、当該特徴量決定ステップ（Ｓ４１２）ですべての最大サイズのブロックについて処理し終えたこととなり、特徴量を求めたい解析の粒度である１辺が２MIN+1画素のブロックの最終的な特徴量が導出される。
【０１６１】
（小ブロック特徴量決定ステップ（Ｓ５０６））
上述した小ブロックの特徴量を決定するステップ（Ｓ５０６）は、対象となるブロックのサイズとそのブロック番号ｎを引数とし、図３１に示すように、再帰的に呼び出されるサブルーチンとして機能する。まず、特徴量決定部２５４は、図２８のリンクを辿り、引数として取得されたサイズのブロックのｎ番目の特徴量を読み出す。そして、そのブロックに含まれる１辺が２MIN+1画素のすべての小ブロックの水平及び垂直方向の特徴量ｆｘとｆｙの符号を比較する（Ｓ５２０）。例えば、上述した図１２（ａ）において、大ブロック１８２の特徴量の符号と、その大ブロック１８２に含まれる小ブロック１６８すべての特徴量の符号とが、水平方向および垂直方向それぞれについて一致するか否か調べられる。その詳細な処理は図３２で詳述する。
【０１６２】
かかる特徴量比較ステップ（Ｓ５２０）において、大ブロックと小ブロックの特徴量が一致していないと（Ｓ５２２のＮｏ）、前回調べたブロックよりも一回り小さな４つのブロックそれぞれについて再比較すべく、図２８のブロックサイズ毎の構造体のリンクを１つ戻して当該小ブロック特徴量決定ステップ（Ｓ５０６）を再帰的に呼び出す（Ｓ５２４）。したがって、最初の比較で一致しないと、４回新たな比較を行うことになる。この再帰的な小ブロック特徴量決定ステップ（Ｓ５０６）の呼び出しを繰り返すと、最終的には比較対照が同じサイズの同じブロックになるので、最後は必ず特徴量が一致することとなる。
【０１６３】
大ブロックと小ブロックの特徴量が一致すると（Ｓ５２２のＹｅｓ）、大ブロックの特徴量を、大ブロックと小ブロックとの面積比に応じて小ブロック用に換算し、結果を格納する（Ｓ５２６）。その詳細な処理は図３３で詳述する。
【０１６４】
尚、図３１のフローチャートでは小ブロックと最大の大ブロックとの間に他のサイズの大ブロックがある場合は、大ブロックを徐々に小さくしていくことで符合が一致する、なるべく大きなブロックを探すようにしたが、かかる場合に限られず、小さなブロックを集めて徐々に大きなブロックを形成する処理によって大ブロックを特定することもできる。
【０１６５】
しかし、上述した小ブロックを集めて大ブロックを形成する場合、小ブロック群から一回り大きい大ブロックへと単純に処理を進めることはできない。例えば、上述した図１２（ｂ）および図１２（ｃ）の小ブロック１６８と大ブロック４４２のベクトルの向きが一致し、大ブロック４４２と大ブロック１８２のベクトルの向きが一致しているので、大ブロック１８２の特徴量を、大ブロック１８２と小ブロック１６８との面積比に応じて小ブロック１６８に換算し、小ブロック１６８の特徴量に上書きできるように思えるが、実際には、大ブロック１８２の中には、ベクトルの向きの一致していない（部分１８４）小ブロック１６８が含まれている。したがって、安易に大ブロック１８２を小ブロック１６８に反映するのは注意が必要である。
【０１６６】
大ブロック１８６と大ブロック１８２のような状態は、図１１を用いて説明したように、実際にあり得る。このような場合、大ブロック４４２と大ブロック１８２のベクトルの向きが一致しているからといって、ベクトルの向きが一致していない部分１８４のベクトル群に大ブロック１８２のベクトルを換算して上書きすることはできない。小さなブロックを集めて徐々に大きなブロックを形成する方法を採る場合は、符号の一致する小ブロックの範囲を見つけ、その範囲を含む最大サイズのブロックを求めるようにするとよい。
【０１６７】
（特徴量比較ステップ（Ｓ５２０））
また、上述した特徴量比較ステップ（Ｓ５２０）では、図３２に示すように、大ブロックとそれに含まれる小ブロックの特徴量の符号を比較する。ここでは、比較対象となる大ブロックを指定するために、大ブロックの情報を格納する構造体へのポインタと大ブロックのブロック番号、そしてどのサイズの小ブロックと比較するかを指定するために、小ブロックの情報を格納する構造体へのポインタを引数としてサブルーチンを構成している。
【０１６８】
まず、特徴量決定部２５４は、引数largeで指される図２８の構造体の情報から引数ｎで与えられたブロック番号の水平方向の特徴量ｆｘ[n]と垂直方向の特徴量ｆｙ[n]を読み出してそれぞれ変数largeFxとlargeFyに格納する（Ｓ５４０）。次に、引数largeとsmallを用いて、大ブロックと小ブロックのそれぞれのサイズに関する情報を読み出し（Ｓ５４２）、それぞれのブロックのサイズに関する情報を元に大ブロックにいくつの小ブロックが含まれるかを計算する（Ｓ５４４）。具体的に、それぞれのブロックの１辺の長さが２のL乗、２のS乗であれば、大ブロックの１行または１列に含まれる小ブロックの数は、２Ｌ／２Ｓ＝２（Ｌ−Ｓ）によって求まる。即ち大ブロックには、２（Ｌ−Ｓ）行×２（Ｌ−Ｓ）列の小ブロックが含まれている。そして、計算された２（Ｌ−Ｓ）を変数lengthに格納する。
【０１６９】
続いて、特徴量決定部２５４は、大ブロック内の小ブロックの行番号を表す変数yをリセットし（Ｓ５４６）、変数yがlength未満かどうか判定する（Ｓ５４８）。ここで変数ｙがlength未満であれば（Ｓ５４８のＹｅｓ）、大ブロック内の小ブロックの列番号を表す変数xをリセットして（Ｓ５５０）、変数xがlength未満かどうかを判定する（Ｓ５５２）。変数ｘがlength未満であれば（Ｓ５５２のＹｅｓ）、大ブロック内のy行x列の小ブロックのブロック番号mを求める（Ｓ５５４）。
【０１７０】
例えば、１枚の画像の１行に含まれる大ブロックがちょうどW個だとすると、大ブロックのブロック番号ｎに含まれる0行0列目の小ブロックの小ブロックを単位とした画像内のＸ座標frameXとY座標frameYは、次のようになる。
frameX=length×(nをWで割った余り)
frameY=length×(nをWで割った商)
ここで、１枚の画像の１行に含まれる小ブロックがちょうどＳ個だとすると、ブロック番号ｍは、m=S×(frameY+y)+( frameX+x)で求めることができる。
【０１７１】
続いて、特徴量決定部２５４は、ブロック番号ｎに含まれるy行x列目の小ブロックの水平方向の特徴量を読み出して変数smallFxに格納し、垂直方向の特徴量を読み出して変数smallFyに格納する（Ｓ５５６）。そして、largeFxとsmallFx、および、largeFyとsmallFyの符号を比較し（Ｓ５５８）、いずれの特徴量も大ブロックと小ブロックとで符号が一致していたら（Ｓ５５８のＹｅｓ）、変数ｘをインクリメントして（Ｓ５６０）、変数ｘ判定ステップ（Ｓ５５２）から繰り返す。
【０１７２】
水平方向の特徴量と垂直方向の特徴量のいずれでも不一致が検出されると（Ｓ５５８のＮｏ）、「符号不一致」という結果を伴い（Ｓ５６２）、当該特徴量比較ステップ（Ｓ５２０）を終了する。ｙ行目のどのx列の小ブロックも大ブロックの特徴量と不一致とならずにy行目を比較し終わると（Ｓ５５２のＮｏ）、変数yをインクリメントし（Ｓ５６４）、変数ｙ判定ステップ（Ｓ５４８）からを繰り返す。このようにして大ブロックとそれに含まれるすべての小ブロックの特徴量の関係を調べ終わると（Ｓ５４８のＮｏ）、「符号一致」という結果を伴い（Ｓ５６６）、当該特徴量の比較ステップ（Ｓ５２０）を終了する。
【０１７３】
（小ブロック換算ステップ（Ｓ５２６））
また、上述した小ブロック換算ステップ（Ｓ５２６）では、図３３に示すように、大ブロックの特徴量を、大ブロックと小ブロックとの面積比に応じて小ブロック用に換算する。ここでは、特徴量換算対象となる大ブロックを指定するために、大ブロックの情報を格納する構造体へのポインタと大ブロックのブロック番号、そしてどのサイズの小ブロック用に変換するかを指定するために、小ブロックの情報を格納する構造体へのポインタを引数としてサブルーチンを構成している。
【０１７４】
まず、特徴量決定部２５４は、図２８のリンクを辿り、引数として取得されたそれぞれのブロックのサイズを変数pとqに格納する（Ｓ５７０）。次に、変換する元になる三つの特徴量を図２８の記憶領域から読み出し、直流成分値を変数dcに、水平方向の特徴量を変数ｆｘに、垂直方向の特徴量を変数ｆｙに格納する（Ｓ５７２）。
【０１７５】
続いて、特徴量決定部２５４は、それぞれのブロックのサイズを比較し（Ｓ５７４）、pとqが等しければ（Ｓ５７４のＹｅｓ）、当該小ブロック換算ステップ（Ｓ５２６）の引数で指定された二つのブロックはサイズが等しいこととなり、その特徴量を変換する必要が無いので、大ブロックの特徴量を単純に小ブロックにコピーする（Ｓ５７６）。尚、変換結果の格納先が図２８のリンクの一部であれば、特徴量は上書きされることになる。したがって、上書きしたくない場合は、結果格納先の構造体を別途用意し、この構造体へのポインタをこのサブルーチンの引数として与えればよい。
【０１７６】
一方、pとqが一致しない場合（Ｓ５７４のＮｏ）、最初に求めた特徴量が正規化されていないので、ブロックのサイズに合わせた値の調整を行う（Ｓ５７８）。仮に、グラデーションの変化が均一な場合を考えると、ブロックの１辺の長さが２倍になれば、面積は４倍になるので大ブロックの直流成分の値は、小ブロックのそれの４倍となる。また、ブロックの１辺の長さが２倍になれば、ブロックの長さの半分の距離にあるＭＨＩの値Ｈτ（ｘ，ｙ，ｔ）の差は２倍となり、そうした差を持ったブロックの行（または列）の組み合わせ（図１７（ａ）、（ｂ）中、矢印で示す右半分と左半分（または上半分と下半分）の対応する画素）も列（または行）の数も２倍になるので、ブロック内の右（または上）半分のＭＨＩの値Ｈτ（ｘ，ｙ，ｔ）を加算し、ブロック内の左（または下）半分のＭＨＩの値Ｈτ（ｘ，ｙ，ｔ）を減算して求める特徴量の値は、２３＝８倍になる。したがって、面積が２×２倍（即ち、面積比４）の大ブロックの特徴量から小ブロックの特徴量を求める場合は、小ブロックの直流成分値は大ブロックの直流成分値の１／４倍に、水平及び垂直方向の差分値は大ブロックの差分値の１／８倍に調整することとする。
【０１７７】
その結果、２Ｎ＋１のサイズのブロック内のＭＨＩは平均化され、２Ｎのサイズのブロックの特徴量として設定される。但し、動きベクトルを求めるには水平方向の特徴量と垂直方向の特徴量は必須であるが、直流成分値は必ずしも必要とされない。直流成分値は、目視によるリアルタイムのデバッグ情報として縮小ＭＨＩを作る時の輝度情報として利用される。したがって、直流成分値まで平均化してしまうと、この縮小ＭＨＩの隣接する２Ｎ＋１のサイズブロック間で輝度差の変化が大きくなり、縮小ＭＨＩが見づらくなるので、敢えて直流成分値については調整しなくてもよい。
【０１７８】
ブロック内のＭＨＩの値Ｈτ（ｘ，ｙ，ｔ）のグラデーションが一様であると仮定すると、大ブロックの１辺の長さが２ｐで小ブロックの１辺の長さが２ｑ（ｐ＞ｑ）の時、大ブロックの特徴量を小ブロック用に換算するには、直流成分値は、２（ｐ−ｑ）×２（ｐ−ｑ）、即ち２（ｐ−ｑ）×２で割り、水平方向の特徴量と垂直方向の特徴量は、２（ｐ−ｑ）×２（ｐ−ｑ）×２（ｐ−ｑ）、即ち２（ｐ−ｑ）×３で割ればよい。そして、特徴量決定部２５４は、この変換結果を大ブロック内のすべての小ブロックに設定する（Ｓ５８０）。
【０１７９】
以上のようにして、複数のサイズのブロックで、並行してＭＨＩの水平方向の差分と垂直方向の差分を求め、それらの符号を手がかりとして、状況に応じて適切な差分を特徴量として採用することにより、単一のサイズの小ブロックを採用したときよりも測定できる速度を広げ、精度を上げる事ができる。さらに、単一サイズの大ブロックを採用したときに生じ得る動体１１２の向きの誤判断も削減することが可能となる。
【０１８０】
（動きベクトル導出ステップ（Ｓ４１４））
上述した動きベクトル導出ステップ（Ｓ４１４）では、図３４に示すように、まず、動きベクトル導出部２１８が、特徴量導出部２１６が導出した図２１の注目ブロック１６８ａの特徴量である水平方向の差分値ｆｘと垂直方向の差分値ｆｙを読み出す（Ｓ６００）。そして、読み出したｆｘやｆｙの例外処理を行う。
【０１８１】
具体的に、動きベクトル導出部２１８は、水平方向の差分値ｆｘと垂直方向の差分値ｆｙが共に０かどうかを判定し（Ｓ６０２）、差分値ｆｘと差分値ｆｙが共に０であった場合（Ｓ６０２のＹｅｓ）、動きベクトルのｘ成分ｖｍｘとｙ成分ｖｍｙを０として（Ｓ６０４）、当該動きベクトル導出ステップ（Ｓ４１４）を終了する。差分値ｆｘと差分値ｆｙが共に０でない場合（Ｓ６０２のＮｏ）、図２８のnoMotionPixelsを参照してＭＨＩの輝度値が０となっている単位ブロック数を読み出し、その値が閾値を超えているか否かによってＭＨＩのグラデーションで埋まっているか否かを判断する（Ｓ６０６）。ここで、ＭＨＩで埋まっていないと判断した場合（Ｓ６０６のＮｏ）、動きベクトルのｘ成分ｖｍｘとｙ成分ｖｍｙを０として（Ｓ６０４）、当該動きベクトル導出ステップ（Ｓ４１４）を終了する。また、ＭＨＩで埋まっていると判断した場合（Ｓ６０６のＹｅｓ）、変数ｖｘとｖｙをリセットする（Ｓ６０８）。
【０１８２】
続いて、動きベクトル導出部２１８は、差分値ｆｘが０以外であるか否かを判定し（Ｓ６１０）、０でなければ（Ｓ６１０のＹｅｓ）、数式５に相当する演算を行ってｖｘに設定する（Ｓ６１２）。そして、差分値ｆｙが０以外であるか否かを判定し（Ｓ６１４）、０でなければ（Ｓ６１４のＹｅｓ）、数式６に相当する演算を行ってｖｙに設定する（Ｓ６１６）。
【０１８３】
次に、端部抽出部２２０は、図２１を用いて説明した処理を通じ、グラデーションの端部を含むブロック（例えば、図２１のブロック１６８ｂまたはブロック１６８ｃ）を抽出する（Ｓ６１８）。かかる端部抽出ステップ（Ｓ６１８）は、図２１の注目ブロック１６８ａからそのグラデーションの変化方向と垂直の方向に向かって、グラデーションの端部を含むブロック（ブロック１６８ｂまたはブロック１６８ｃ）を抽出する。その詳細な処理は図３５で詳述する。
【０１８４】
ここで、グラデーションの端部抽出が成功したか否か判断され（Ｓ６２０）、抽出が成功していなかったら（Ｓ６２０のＮｏ）、それは、動体１１２が画面からはみ出していたり、グラデーションの端部がなくなったりしている場合を示しているとみなすことができるので、デフォルト処理を遂行する（Ｓ６２２）。その詳細な処理は図３９で詳述する。
【０１８５】
動きベクトル導出部２１８は、グラデーションの端部抽出が成功したと判断されると（Ｓ６２０のＹｅｓ）、そのグラデーションの端部を含むブロックの特徴量である水平方向の差分値を変数ｅｆｘに設定し、垂直方向の差分値を変数ｅｆｙに設定する（Ｓ６２４）。そして、変数ｅｆｘおよびｅｆｙが共に０であるか否か判断し（Ｓ６２６）、共に０であった場合（Ｓ６２６のＹｅｓ）、グラデーションの端部が見つかった場合であっても、変数ｅｆｘおよびｅｆｙを利用できないので、上述したデフォルト処理ステップ（Ｓ６２２）に移行する。
【０１８６】
続いて、動きベクトル導出部２１８は、差分値ｅｆｙが０かどうかを判定する（Ｓ６２８）。差分値ｅｆｙが０の場合（Ｓ６２８のＹｅｓ）、垂直方向に移動しているとみなせるので、動きベクトルのｘ成分ｖｍｘを０に、ｙ成分ｖｍｙをｖｙに設定し（Ｓ６３０）、当該特徴量導出ステップ（Ｓ４１４）を終了する。差分値ｅｆｙが０ではない場合（Ｓ６２８のＮｏ）、動きベクトル導出部２１８は、端部ブロック（グラデーションの端部が含まれるブロック）の水平方向の差分値ｅｆｘと垂直方向の差分値ｅｆｙから数式２４のｔａｎβを計算する（Ｓ６３２）。このｔａｎβは、図２１のブロック１６８ｂのグラデーション部分の傾きを表している。
【０１８７】
続いて、動きベクトル導出部２１８は、垂直方向の差分値ｆｙが０かどうかを判定する（Ｓ６３４）。差分値ｆｙが０であると判定された場合（Ｓ６３４のＹｅｓ）、図２５（ａ）の状況に相当し、数式２６の計算を行って、ｖｍｘにｖｘをｖｍｙ＝にｖｘ＊ｔａｎβを設定して（Ｓ６３６）、当該特徴量導出ステップ（Ｓ４１４）を終了する。
【０１８８】
次に、動きベクトル導出部２１８は、水平方向の差分値ｆｘが０かどうかを判定する（Ｓ６３８）。差分値ｆｘが０であると判定された場合（Ｓ６３８のＹｅｓ）、さらにｔａｎβが０か否か判定し（Ｓ６４０）、０でなければ（Ｓ６４０のＮｏ）、図２５（ｂ）の状況に相当し、数式２７の計算を行って、ｖｍｙにｖｙをｖｍｘにｖｍｙ／ｔａｎβを設定して（Ｓ６４２）、当該特徴量導出ステップ（Ｓ４１４）を終了する。ｔａｎβが０と判定された場合（Ｓ６４０のＹｅｓ）、水平方向に移動していると推定されるにも拘わらずｆｘ＝０であるといった矛盾が生じるので、ｖｍｘとｖｍｙに０を設定して（Ｓ６４４）、当該特徴量導出ステップ（Ｓ４１４）を終了する。
【０１８９】
水平方向の差分値ｆｘも垂直方向の差分値ｆｙも０でなかった場合（Ｓ６３４のＮｏかつＳ６３８のＮｏ）、数式２４の計算を行う（Ｓ６４６）。具体的には、数式７を用いて反射角方向の動きベクトルのｙ成分ｖｙ／２をまず求め、次に注目ブロックの水平方向の差分値ｆｘと垂直方向の差分値ｆｙから数式２５のｔａｎαを計算する。このｔａｎαは、図２３では（ＨＡの長さ）／（ＯＨの長さ）に対応し、注目ブロックのグラデーションの変化の向きを表している。更に、動きベクトル導出部２１８は、既に求めたｔａｎαとｔａｎβの値及びｖｒｙを数式２４に代入し、実際の動きベクトルのｘ成分を求めている。最後にｖｍｘにｔａｎβをかけて実際の動きベクトルのｙ成分を求める。
【０１９０】
かかる処理を図２３および図２４を用いて説明すると、まず移動方向が反射角方向（Ｏ→Ｃ）であったと仮定した時の動きベクトルＶｒの各成分を最初に求め、次に、注目ブロックのグラデーションの変化方向の傾きαと本当の移動方向（Ｏ→Ｂ）を示す傾きｔａｎβを端部ブロックから求める。最後に数式２４を用いて真の動きベクトルの成分を求めている。
【０１９１】
（端部抽出ステップ（Ｓ６１８））
上述した端部抽出ステップ（Ｓ６１８）では、図３５に示すように、まず、動きベクトル導出部２１８が、注目ブロックの上下左右に何ブロックあるかを調べる（Ｓ６５０）。そして、注目ブロックの特徴量を取り出し、ｄｃにブロック内のＨτ（ｘ，ｙ，ｔ）の総和を、ｆｘに水平方向の差分値を、ｆｙに垂直方向の差分値を設定する（Ｓ６５２）。そして、読み出したｆｘやｆｙの例外処理を行う。
【０１９２】
次に、動きベクトル導出部２１８は、水平方向の差分値ｆｘと垂直方向の差分値ｆｙが共に０かどうかを判定し（Ｓ６５４）、差分値ｆｘと差分値ｆｙが共に０であった場合（Ｓ６５４のＹｅｓ）、未判定であることを示唆して（Ｓ６５６）、当該端部抽出ステップ（Ｓ６１８）を終了する。差分値ｆｘと差分値ｆｙが共に０でない場合（Ｓ６５４のＮｏ）、差分値ｆｙが０か否かを判定する（Ｓ６５８）。
【０１９３】
差分値ｆｙが０でなければ（Ｓ６５８のＮｏ）、端部ブロックの検索方向であるＨτ（ｘ，ｙ，ｔ）のグラデーションの変化方向と垂直な方向の傾きを−ｆｘ／ｆｙで求め、これを変数ｔａｎに設定する（Ｓ６６０）。差分値ｆｙが０の場合（Ｓ６５８のＹｅｓ）、図２５（ａ）のように端部ブロックの検索方向は垂直方向ということになり、ｔａｎに仮の値１００を設定する（Ｓ６６２）。ここで設定した値１００は以降のステップで端部ブロックの検索方向がＹ軸方向に１ブロックずつ移動して調べるパスを通るような大きい値であればどのような値をとることもでき、ここでは実際にｔａｎβで示される傾きが垂直に近くなるように１００とした。
【０１９４】
次に、動きベクトル導出部２１８は、ｔａｎの絶対値が１より大きいかどうかを判定し（Ｓ６６４）、この値が１より大きい場合（Ｓ６６４のＹｅｓ）、グラデーションの変化は、水平方向の変化より垂直方向の変化の方が大きいということになるので、図３６に示すように、検索の度に毎回Ｙ軸方向には１ブロック必ず移動し、Ｘ軸方向には必要に応じて移動してグラデーションの端部を検索することにする。一方、ｔａｎの絶対値が１より大きくない場合（Ｓ６６４のＮｏ）、図４０に示すように、逆に毎回Ｘ軸方向に１ブロック必ず移動し、Ｙ軸方向には必要に応じて移動してグラデーションの端部を検索する。
【０１９５】
具体的に、動きベクトル導出部２１８は、ｔａｎの絶対値が１より大きい場合（Ｓ６６４のＹｅｓ）、垂直方向の差分値ｆｙが０かどうかを判定し（Ｓ６６６）、差分値ｆｙが０と判定された場合（Ｓ６６６のＹｅｓ）、図２５（ａ）の状況なので、端部ブロックをＸ軸方向には移動して探さないようにするため変数ｓｕｂに０を設定する（Ｓ６６８）。ここで、変数ｓｕｂは、図３６に示すように、検索方向をＹ軸方向に１ブロック移動したときのＸ軸方向の移動距離（単位＝ブロックサイズ）である。差分値ｆｙが０ではないと判定された場合（Ｓ６６６のＮｏ）、変数ｓｕｂに１／｜ｔａｎ｜を設定する（Ｓ６７０）。
【０１９６】
ｔａｎの絶対値が１より大きくない場合（Ｓ６６４のＮｏ）、グラデーションの変化は、垂直方向の変化より水平方向の変化の方が大きいということになるので、図３７に示すように、検索の度に毎回Ｘ軸方向に１ブロックは必ず移動し、Ｙ軸方向には必要に応じて移動してグラデーションの端部を検索することにする。ここでは、差分値ｆｘが０かどうか判定し（Ｓ６７２）、差分値ｆｘが０ではないと判定された場合（Ｓ６７２のＮｏ）、変数ｓｕｂに｜ｔａｎ｜を設定し（Ｓ６７４）、０と判定された場合（Ｓ６７２のＹｅｓ）、ｓｕｂに０を設定する（Ｓ６７６）。以後の処理は、Ｙ軸に関するＳ６７８〜Ｓ７００の処理をＸ軸とＹ軸とを置換することで理解できるため、ここではＳ６７８〜Ｓ７００を説明することでその説明を省略する。
【０１９７】
続いて、動きベクトル導出部２１８は、端部ブロックの検索方向の傾きを設定したｔａｎの符号を調べる（Ｓ６７８）。ここで、ｔａｎの値が正の場合（Ｓ６７８のＹｅｓ）、グラデーションの端部を検索する領域は、注目ブロックの中心を原点とするＸＹ座標を考えると第１象限および第３象限になり、右肩上がり、または左肩下がりに調べることとなり、一方、ｔａｎの値が正でない場合（Ｓ６７８のＮｏ）、第２象限および第４象限となり、左肩上がり、または右肩下がりに調べることとなる。ｔａｎの値が正でない場合（Ｓ６７８のＮｏ）の処理（Ｓ６８０）は、ｔａｎの値が正の場合（Ｓ６７８のＹｅｓ）と対応しているので、ｔａｎの値が正の場合（Ｓ６７８のＹｅｓ）を説明することで、ｔａｎの値が正でない場合（Ｓ６７８のＮｏ）の処理の説明を省略する。
【０１９８】
第１象限および第３象限を調べる場合（Ｓ６７８のＹｅｓ）、動きベクトル導出部２１８は、初期値としてｄｉｓｐに０．５を設定する。これは、図３６の原点と原点を含むブロックの右端までの距離であり、最初の持ち点とみなすことができる。また、動きベクトル導出部２１８は、ｂｌｏｃｋＤｉｓｐＸに０を設定する。これは、調査するブロックの原点からの水平方向のブロック数である。さらに、動きベクトル導出部２１８は、ｂｌｏｃｋＤｉｓｐＹを１に設定する。これは、調査するブロックの原点からの垂直方向のブロック数である（Ｓ６８２）。
【０１９９】
次に、動きベクトル導出部２１８は、ｂｌｏｃｋＤｉｓｐＹがｕｐＭａｒｇｉｎより小さいかどうかを判定する（Ｓ６８４）。小さくなければ（Ｓ６８４のＮｏ）、画面の端に達しているとみなすことができるので、この第１象限への調査を止めて、反対の象限である第３象限を左肩下がりに調べる（Ｓ６８６）。かかる第３象限の説明も第１象限と対応しているので、ここでは第１象限を説明することで、第３象限の説明を省略する。
【０２００】
動きベクトル導出部２１８は、ｂｌｏｃｋＤｉｓｐＹがｕｐＭａｒｇｉｎより小さくなければ（Ｓ６８４のＹｅｓ）、持ち点ｄｉｓｐからｓｕｂを減じる（Ｓ６８８）。そして、持ち点ｄｉｓｐか尽きたかどうかを判定し（Ｓ６９０）、ｄｉｓｐが負になっていれば（Ｓ６９０のＹｅｓ）、Ｘ軸方向にも１ブロック右に移動して調査する（Ｓ６９２）。具体的には、ｂｌｏｃｌＤｉｓｐＸをインクリメントし、持ち点ｄｉｓｐも＋１回復させる。
【０２０１】
持ち点ｄｉｓｐが負でない場合（Ｓ６９０のＮｏ）、動きベクトル導出部２１８は、グラデーションの端部を抽出するブロック番号を導出する（Ｓ６９４）。ここで、ｓｔａｒｔは、注目ブロック番号である。例えば、現在、第一象限を右肩上がりに調べているので、調査するブロック番号として、ｂｌｏｃｋＮｕｍにｓｔａｒｔ−（画面１行に含まれるブロック数×ｂｌｏｃｋＤｉｓｐＹ）＋ｂｌｏｃｋＤｉｓｐＸを設定する。
【０２０２】
動きベクトル導出部２１８は、求めたブロック番号ｂｌｏｃｋＮｕｍを引数として、グラデーションの端部に到達したかどうかを判断する（Ｓ６９６）。かかる判断が適切に行われれば、数式２４のｔａｎβの値が正確に導出され、最終的な動きベクトルを高精度に導出することが可能となる。その詳細な処理は図３８で詳述する。そして、グラデーションの端部に到達したか否かを判定し（Ｓ６９８）、到達していれば（Ｓ６９８のＹｅｓ）、ｂｌｏｃｋＮｕｍを、グラデーションの端部を含むブロック番号として当該端部抽出ステップ（Ｓ６１８）を終了する。到達していなければ（Ｓ６９８のＮｏ）、調査を継続すべく、ｂｌｏｃｋＤｉｓｐＹに１を加算し（Ｓ７００）、ｂｌｏｃｋＤｉｓｐＹ判定ステップ（Ｓ６８４）からの処理を繰り返す。
【０２０３】
（端部到達判断ステップ（Ｓ６９６））
上述した端部到達判断ステップ（Ｓ６９６）では、図３８に示すように、まず、動きベクトル導出部２１８は、注目ブロックの特徴量を取り出し、変数ｄｃにブロック内のＨτ（ｘ，ｙ，ｔ）の総和を、ｆｘに水平方向の差分値を、ｆｙに垂直方向の差分値を設定し（Ｓ７２０）、端部抽出ステップ（Ｓ６１８）で求めたブロックの特徴量を取り出し、それぞれ変数ｔｄｃ，ｔｆｘ，ｔｆｙに設定する（Ｓ７２２）。そして、動きベクトル導出部２１８は、両特徴量の差分ベクトルの大きさ（絶対値）を導出する（Ｓ７２４）。
【０２０４】
次に、動きベクトル導出部２１８は、調査ブロックのｔｄｃを注目ブロックのｄｃで割った値が、閾値Ｌと閾値Ｈの間にあるかどうかを判定する（Ｓ７２６）。尚、閾値ＬとＨは、実験により適切な値、例えば０．８や１．２を適用する。かかる端部ブロックの抽出では、注目ブロックのグラデーションの変化方向の傾きと垂直方向に検索しているので、図２１からも分かるように、検索方向上にあるブロックは、どれも同じような明るさをしている。即ち、閾値判定ステップ（Ｓ７２６）は、調査ブロックが注目ブロックと同じような明るさか否かを判断するものである。ここで、調査対象のブロックが図２１のブロック１６８ｂやブロック１６８ｃに達していれば、ブロックはＭＨＩで満たされなくなり、ｔｄｃの値はｄｃよりも小さくなるはずである。閾値判定ステップ（Ｓ７２６）はその見極めを遂行している。
【０２０５】
ｔｄｃ／ｄｃが閾値の範囲に収まっていなければ（Ｓ７２６のＮｏ）、動きベクトル導出部２１８は、グラデーションの端部に達していると判断して到達を示唆し（Ｓ７２８）、当該端部到達判断ステップ（Ｓ６９６）を終了する。
【０２０６】
ｔｄｃ／ｄｃが、閾値の範囲に収まっていれば（Ｓ７２６のＹｅｓ）、差分ベクトルの大きさｄが閾値Ｄ未満であるか否か判断され（Ｓ７３０）、閾値Ｄ未満であれば（Ｓ７３０のＹｅｓ）、未到達を示唆して（Ｓ７３２）、当該端部到達判断ステップ（Ｓ６９６）を終了する。閾値Ｄ未満でなければ（Ｓ７３０のＮｏ）、グラデーションの端部に達していると判断して到達を示唆し（Ｓ７２８）、当該端部到達判断ステップ（Ｓ６９６）を終了する。
【０２０７】
尚、動体１１２が大きすぎて画面に収まりきらず、ｔａｎβを求めるのに適切な端部ブロックが見つからないなどの場合は、反射角方向に移動していると仮定するなどして動きベクトルを求めるなどの方法が考えられる。
【０２０８】
（デフォルト処理ステップ（Ｓ６２２））
上述したデフォルト処理ステップ（Ｓ６２２）では、図３９に示すように、まず、動きベクトル導出部２１８が、水平方向の差分値ｆｘと垂直方向の差分値ｆｙが共に０かどうかを判定し（Ｓ７５０）、差分値ｆｘと差分値ｆｙが共に０であった場合（Ｓ７５０のＹｅｓ）、変数ｖｍｘとｖｍｙのポインタをクリアして（Ｓ７５２）、当該デフォルト処理ステップ（Ｓ６２２）を終了する。差分値ｆｘと差分値ｆｙが共に０でない場合（Ｓ７５０のＮｏ）、動きベクトルのｘ成分値ｖｘとｙ成分値ｖｙをリセットする（Ｓ７５４）。
【０２０９】
続いて、動きベクトル導出部２１８は、差分値ｆｘが０以外であるか否かを判定し（Ｓ７５６）、差分値ｆｘが０でなければ（Ｓ７５６のＹｅｓ）、数式５に基づいて水平方向の移動速度ｖｘを導出する（Ｓ７５８）。そして、差分値ｆｙが０以外であるか否かを判定し（Ｓ７６０）、差分値ｆｙが０でなければ（Ｓ７６０のＹｅｓ）、数式６に基づいて垂直方向の移動速度ｖｙを導出する（Ｓ７６２）。
【０２１０】
また、ユーザ設定で移動方向が水平に限定されている場合（Ｓ７６４のＹｅｓ）、動きベクトルのｘ成分値ｖｍｘに水平方向の移動速度ｖｘを、動きベクトルのｙ成分値ｖｍｙに０を格納する（Ｓ７６６）。同様に、ユーザ設定で移動方向が垂直に限定されている場合（Ｓ７６８のＹｅｓ）、動きベクトルのｘ成分値ｖｍｘに０を、動きベクトルのｙ成分値ｖｍｙに垂直方向の移動速度ｖｙを格納する（Ｓ７７０）。
【０２１１】
以下は、ＭＨＩのグラデーションの変化方向を移動方向と見なす処理である。動きベクトル導出部２１８は、差分値ｆｘ＝０であれば（Ｓ７７２のＹｅｓ）、図２５（ｂ）の状態であるが、このパスは、ＭＨＩのグラデーションの変化方向を移動方向と見なしているので、動きベクトルのｘ成分値ｖｍｘに０を、動きベクトルのｙ成分値ｖｍｙに垂直方向の移動速度ｖｙを格納する（Ｓ７７４）。同様に、差分値ｆｙ＝０であれば（Ｓ７７６のＹｅｓ）、図２５（ａ）の状態であるが、このパスは、ＭＨＩのグラデーションの変化方向を移動方向と見なしているので、動きベクトルのｘ成分値ｖｍｘに水平方向の移動速度ｖｘを、動きベクトルのｙ成分値ｖｍｙに０を格納する（Ｓ７７８）。
【０２１２】
いずれの判断ステップにも当てはまらない場合、ｔａｎβにｔａｎα＝ｆｙ／ｆｘを設定し、数式２４を用いて動きベクトルを求める（Ｓ７８０）。
【０２１３】
以上の画像処理方法においても、三角関数やルート演算を極力利用しないといった軽演算負荷の画像処理によって動体１１２の時間方向の情報を高精度に導出することができ、また、演算装置自体のコスト、消費電力、専有面積を削減することが可能となる。
【０２１４】
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明はかかる実施形態に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【０２１５】
例えば、上述した実施形態では、グラデーションの端部を抽出して動きベクトルを求める際、各小ブロックの特徴量を求めるのと同様、複数の画素によるブロックの概念を利用したが、かかる場合に限らず、例えば、ｓｏｂｅｌフィルタ等を用いてｔａｎβを求め、動きベクトルを生成することも可能である。
【０２１６】
なお、本明細書の画像処理方法における各工程は、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいはサブルーチンによる処理を含んでもよい。
【産業上の利用可能性】
【０２１７】
本発明は、撮像した画像中における動体の動きベクトルを導出可能な画像処理装置および画像処理方法に利用することができる。
【符号の説明】
【０２１８】
１１０  …画像処理装置
１１２  …動体
１６６  …単位ブロック
１６８  …小ブロック
１８２、１８６  …大ブロック
２１２  …ＭＨＩ生成部
２１４  …ブロック分割部
２１６  …特徴量導出部
２１８  …動きベクトル導出部
２２０  …端部抽出部
２５０  …単位ブロック導出部
２５２  …大小ブロック導出部
２５４  …特徴量決定部
【図１】
2011081675.tif 000034
【図２】
2011081675.tif 000035
【図４】
2011081675.tif 000036
【図１０】
2011081675.tif 000037
【図１２】
2011081675.tif 000038
【図１３】
2011081675.tif 000039
【図１４】
2011081675.tif 000040
【図１７】
2011081675.tif 000041
【図１８】
2011081675.tif 000042
【図１９】
2011081675.tif 000043
【図２０】
2011081675.tif 000044
【図２２】
2011081675.tif 000045
【図２４】
2011081675.tif 000046
【図２６】
2011081675.tif 000047
【図２７】
2011081675.tif 000048
【図２８】
2011081675.tif 000049
【図２９】
2011081675.tif 000050
【図３０】
2011081675.tif 000051
【図３１】
2011081675.tif 000052
【図３２】
2011081675.tif 000053
【図３３】
2011081675.tif 000054
【図３４】
2011081675.tif 000055
【図３５】
2011081675.tif 000056
【図３６】
2011081675.tif 000057
【図３７】
2011081675.tif 000058
【図３８】
2011081675.tif 000059
【図３９】
2011081675.tif 000060
【図３】
2011081675.tif 000061
【図５】
2011081675.tif 000062
【図６】
2011081675.tif 000063
【図７】
2011081675.tif 000064
【図８】
2011081675.tif 000065
【図９】
2011081675.tif 000066
【図１１】
2011081675.tif 000067
【図１５】
2011081675.tif 000068
【図１６】
2011081675.tif 000069
【図２１】
2011081675.tif 000070
【図２３】
2011081675.tif 000071
【図２５】
2011081675.tif 000072