(57)【特許請求の範囲】
【請求項１】
輝度変化の影響を受ける第１の評価関数を用いて動き探索することによりオプティカルフローの最適解を求め、
輝度変化の影響を受けない第２の評価関数を用いて前記最適解と対象物が静止している静止解とのうちの最適な方の解を選択する
各段階をコンピュータにより実行する動き検出方法。
【請求項２】
前記最適解が輝度変化により誤ったオプティカルフローが検出されたものである可能性の有無を判定する段階を更に含み、前記選択する段階は、前記判定する段階により前記可能性有りと判定された最適解についてのみ、前記第２の評価関数を用いて前記最適な方の解を選択する請求項１記載の動き検出方法。
【請求項３】
前記判定する段階は、前記最適解と前記静止解との間の距離が閾値以上である場合に前記可能性無しと判定する請求項２記載の動き検出方法。
【請求項４】
前記判定する段階は、前記最適解と前記静止解との周辺において画素値変化がグラデーションでない場合に前記可能性無しと判定する請求項２又は３記載の動き検出方法。
【請求項５】
前記第１の評価関数はＳＳＤ（Sum of Squared Difference）及びＳＡＤ（Sum of Absolute Difference）のうちの何れか１つであり、前記第２の評価関数はＺＳＡＤ（Zero-mean SAD）、ＮＣＣ（Normalized Cross-Correlation）、及びＺＮＣＣ（Zero-mean NCC）のうちの何れか１つである請求項１乃至４何れか一項記載の動き検出方法。
【請求項６】
プロセッサと、
メモリと、
を含み、前記メモリに格納されたプログラムを前記プロセッサが実行することにより、
輝度変化の影響を受ける第１の評価関数を用いて動き探索することによりオプティカルフローの最適解を求め、
輝度変化の影響を受けない第２の評価関数を用いて前記最適解と対象物が静止している静止解とのうちの最適な方の解を選択する
各段階を実行する動き検出装置。
【請求項７】
輝度変化の影響を受ける第１の評価関数を用いて動き探索することによりオプティカルフローの最適解を求め、
輝度変化の影響を受けない第２の評価関数を用いて前記最適解と対象物が静止している静止解とのうちの最適な方の解を選択する
各段階を含む動き検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願開示は、動き検出方法、動き検出装置、及び動き検出プログラムに関する。
【背景技術】
【０００２】
近年、自動車の安全性への意識の高まりと、カーエレクトロニクス技術の進歩により、ドライバーの運転を支援して安全性を高める技術に注目が集まっている。特に、車の発進時などに、車両に近づく歩行者や他車両などの接近物を自動的に検出し、ドライバーに注意を促すための、車両周辺接近物検知システムについての需要が増加している。接近物の検知には様々な方法が考えられるが、車載カメラの映像を使う方法が、低コストであり、他の運転支援システムとの連携の点からも有効である。
【０００３】
車載カメラによる車両周辺接近物検知システムにおいては、カメラ映像の動画に対してオプティカルフローを計算し、特定の方向を向いたオプティカルフローが検出された場合、接近物体があったと判断する。オプティカルフローの計算方式としては、ＳＡＤを使った局所相関演算法がよく用いられる。
【０００４】
車両周辺接近物検知システムにおいては、移動物体が遠くにあるうちに移動物体を検出することが、ドライバーに多くの時間的余裕を与えることになるため、安全性向上の観点から極めて重要である。移動物体が遠くにある場合には、動画中の移動量も小さいので、小さなオプティカルフローを逃さず検出する必要がある。しかしながら、小さなオプティカルフローを検出しようとすると、細かい誤りフローを誤検知するリスクが増加する。誤りフローは、動画中の草木などの細かい移動体や画像のノイズ等の原因により発生するだけでなく、移動物体が全くない状態で輝度の変化が起こっただけでも発生する可能性がある。
【０００５】
輝度変化のみに起因して動きが検出されてしまう現象は、画像の輝度変化がグラデーションである場合に特に発生しやすい。画像の輝度変化がグラデーションであるとは、第１の画素位置の第１の輝度から第２の画素位置の第２の輝度まで、輝度が徐々に単調増加する又は単調減少することを意味する。特に、輝度変化が線形（即ち直線的）である場合に、誤った動きが検出されやすい。これは、空間的に直線的な輝度変化が存在する場合、直線的な輝度変化を有する物体が空間的に移動して発生する輝度変化と、全体の輝度が一様に増加（又は減少）することにより発生する輝度変化とは、局所的な情報のみからでは区別がつかないからである。即ち、ある画素位置とその近傍の局所的な領域に着目し、その領域で輝度の増加（又は減少）が発生したときに、物体が実際に動いて発生した輝度変化であるのか、全体の輝度が一様に変化して発生した輝度変化であるのか、区別がつかない。
【０００６】
なお上述のような輝度変化による誤った動き検出は、車両周辺接近物検知システムに限られる問題ではなく、オプティカルフローを検出する全てのシステムにおいて発生する可能性がある問題である。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００６−５３６９２号公報
【特許文献２】特開２０１３−１８６６６８号公報
【特許文献３】特開２０１３−８４１４０号公報
【特許文献４】特開２０１３−１０１４１９号公報
【特許文献５】特開２００８−２５７６２６号公報
【特許文献６】特開２０１２−６８８４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
以上を鑑みると、輝度変化による誤ったオプティカルフローの検出を避けることができる動き検出装置及び方法が望まれる。
【課題を解決するための手段】
【０００９】
動き検出方法は、輝度変化の影響を受ける第１の評価関数を用いて動き探索することによりオプティカルフローの最適解を求め、輝度変化の影響を受けない第２の評価関数を用いて前記最適解と対象物が静止している静止解とのうちの最適な方の解を選択する各段階をコンピュータにより実行する。
【００１０】
動き検出装置は、プロセッサと、メモリとを含み、前記メモリに格納されたプログラムを前記プロセッサが実行することにより、輝度変化の影響を受ける第１の評価関数を用いて動き探索することによりオプティカルフローの最適解を求め、輝度変化の影響を受けない第２の評価関数を用いて前記最適解と対象物が静止している静止解とのうちの最適な方の解を選択する各段階を実行する。
【発明の効果】
【００１１】
少なくとも１つの実施例によれば、輝度変化による誤ったオプティカルフローの検出を避けることができる。
【図面の簡単な説明】
【００１２】
【図１】動き検出装置の構成の一例を示す図である。
【図２】図１の動き検出装置のソフトウェアの構成の一例を示す図である。
【図３】動き探索処理を説明するための図である。
【図４】輝度変化の影響を受けない評価関数を用いた修正処理を説明するための図である。
【図５】動け探索及び修正処理の手順を示すフローチャートである。
【図６】輝度変化による誤検出の可能性の有無を判定する手順を示すフローチャートである。
【図７】修正処理の効果を示す表である。
【図８】背景の動きの影響を取り除く処理の手順を示すフローチャートである。
【図９】背景の動きの影響を取り除く処理を説明するための図である。
【図１０】背景の動きの異なるパターンについて説明するための図である。
【図１１】背景の動きの異なるパターンについて説明するための図である。
【図１２】背景の動きの異なるパターンについて説明するための図である。
【発明を実施するための形態】
【００１３】
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。以下の図において、同一又は対応する構成要素は同一又は対応する番号で参照し、その説明は適宜省略する。
【００１４】
図１は、動き検出装置の構成の一例を示す図である。図１に示す動き検出装置は、ＣＰＵ（Central Processing Unit）１０、ＲＯＭ（Read Only Memory）１１、ＲＡＭ（Random Access Memory）１２、ＧＰＵ（Graphics Processing Unit）１３、表示インタフェース１４、及び映像入力インターフェース１５を含む。図１に示す動き検出装置は、制御処理及び演算処理を実行するコンピュータであってよく、例えば車載の車両周辺接近物検知システムに内蔵されるコンピュータであってよいし、監視カメラ等に接続されたパーソナルコンピュータ等であってもよい。
【００１５】
ＣＰＵ１０は、ＲＯＭ１１やＲＡＭ１２に格納されるプログラム及びデータに基づいてプログラムを実行することにより、動き検出装置の全体を制御すると共に、ＲＡＭ１２に格納される画像データを演算処理する。ＲＯＭ１１には、動き検出装置の制御に必要な基本的なプログラムが格納される。ＲＡＭ１２には、動き検出装置上で実行されるアプリケーションプログラム、オプティカルフロー計算処理プログラム、画像処理基本ソフトウェアプログラム等が格納される。画像処理基本ソフトウェアプログラムは例えばＯｐｅｎＧＬ等であってよく、ＧＰＵ１３により実行されてよい。
【００１６】
図２は、図１の動き検出装置のソフトウェアの構成の一例を示す図である。図２には、図１に示す動き検出装置のハードウェアが、ハードウェア１０４として示されている。ＣＰＵ１０が、例えば映像中の動きを検出して表示するアプリケーション１０１のプログラムを実行すると、当該プログラムからオプティカルフロー計算処理１０２が呼び出され、ＣＰＵ１０がオプティカルフロー計算処理１０２のプログラムを実行する。映像データ（時系列として並ぶ複数の画像データ）からオプティカルフローが計算されると、画像処理基本ソフトウェア１０３がＧＰＵ１３により実行され、ハードウェア１０４内のフレームバッファ領域（ＲＡＭ１２）に対する描画が行われる。なおＣＰＵ１０がオプティカルフロー計算処理１０２を実行するのではなく、ＧＰＵ１３がオプティカルフロー計算処理１０２を実行するのでもよい。
【００１７】
オプティカルフロー計算処理１０２を実行することにより、図１に示す動き検出装置は、最初に、輝度変化の影響を受ける第１の評価関数を用いて動き探索することによりオプティカルフローの最適解を求める。動き検出装置は、次に、輝度変化の影響を受けない第２の評価関数を用いて前記最適解と対象物が静止している静止解とのうちの最適な方の解を選択する。ここで動き探索においては、後述するように画素ブロック間の類似度又は相違度を評価関数により計算することにより、最も類似度の高い（相違度の低い）画素ブロック同士を時間的に連続する２つの画像フレーム間で特定する。
【００１８】
輝度変化の影響を受ける第１の評価関数とは、それを用いて計算した類似度又は相違度の値が、画像全体の輝度が一様に変化するような全体的な輝度の変化により変化してしまう評価関数のことである。また輝度変化の影響を受けない第２の評価関数とは、それを用いて計算した類似度又は相違度の値が、画像全体の輝度が一様に変化するような全体的な輝度の変化により変化しない評価関数のことである。また画像全体の輝度が一様に変化するような全体的な輝度の変化とは、より具体的には、画素ブロック内の各画素の画素値が各々同一の値増加又は減少するような画素値の変化のことである。
【００１９】
輝度変化の影響を受けない第２の評価関数を用いるということは、画素ブロック内の各画素についての絶対的な画素値の大小の情報を破棄し、画素間の相対的な画素値の情報のみを用いて類似度又は相違度を計算することに相当する。そのような第２の評価関数を用いる場合、輝度変化の影響を受ける第１の評価関数を用いる場合と比較して、類似度又は相違度の計算において使用される情報量が少ない。従って、輝度変化の影響を受けない第２の評価関数を用いてオプティカルフローの最適解を求めた場合、誤った解が求まっている可能性、即ち実際の動きとは異なる誤った動きを検出している可能性が、第１の評価関数を用いた場合に比較して大きくなってしまう。
【００２０】
そこで上述のように、まず第１の評価関数を用いて最適解を求める動き探索処理を実行することにより適切な解を求め、輝度変化が存在しない状況下において信頼できる解を求める。これにより、オプティカルフロー検出の精度が落ちないことを保証できる。輝度変化が存在しない状況下ではこの最適解で問題ないが、輝度変化が存在する状況下ではこの最適解では誤りである可能性がある。そこで、輝度変化の影響を受けない第２の評価関数を用いて、最適解と静止解との何れの解が最適であるのかを判定し、最適な方の解を選択する修正処理を実行する。これにより、輝度変化の有無に関わらず、動き検出において信頼性の高い解を求めることができる。
【００２１】
図１に戻り、映像入力インターフェース１５は、ＣＣＤ（Charge Coupled Device）やＣＭＯＳ（Complementary Metal Oxide Semiconductor）撮像素子等の撮像装置やＤＶＤ（Digital Versatile Disk）プレイヤー等の映像再生装置に接続されてよい。映像入力インターフェース１５が接続先の機器から受け取った映像データは、ＲＡＭ１２に格納されてよい。データ格納装置として、ＲＡＭ１２に加え例えばハードディスク装置が設けられていてよく、映像データを不揮発性データとして格納する場合には、ハードディスク装置が格納先として用いられてよい。
【００２２】
表示インタフェース１４は、例えばＬＣＤ（Liquid Crystal Display）等の画像表示装置が接続される。例えば、計算されたオプティカルフローをベクトルとして原画像に重ねて表示した画像データが、ＲＡＭ１２から読み出され、表示インタフェース１４を介して画像表示装置に表示されてよい。
【００２３】
図３は、動き探索処理を説明するための図である。フレーム画像データ２０とフレーム画像データ２１とは、時系列中（時間軸上）で連続するフレームのデータである。フレーム画像データ２１が現在のフレームの画像データであり、フレーム画像データ２０が現在のフレームの１つ前のフレームの画像データである。図３において、フレーム画像データ２０上の着目点、即ち動き検出対象の点が、画素位置３０として示されている。フレーム画像データ２０上の画素位置３０と同一のフレーム画像データ２１上の画素位置、即ち、画素位置３０と同一の水平方向座標値及び垂直方向座標値を有するフレーム画像データ２１上の画素位置が、画素位置３２として示されている。
【００２４】
動き探索処理においては、１つ前のフレーム画像データ２０から現在のフレーム画像データ２０への時間の経過に伴い画素位置３０において発生した動きを検出する。画素位置３０において発生した動きを検出するために、フレーム画像データ２０において画素位置３０を中心とする小画像領域である画素ブロック３１を考える。以降の説明において、異なる位置にある画素ブロックは、全て同一の大きさを有するものとする。
【００２５】
フレーム画像データ２０中の画素ブロック３１に対し、フレーム画像データ２１において最も類似する画素ブロック３５を探索する。具体的には、候補画素位置を中心とする小画像領域である画素ブロックと動き検出対象の画素位置３０の周囲の画素ブロック３１との間の類似度又は相違度を、候補画素位置を順次移動させながら評価関数に用いて計算し、類似度が最も大きくなる画素位置を特定する。このようにして求められたフレーム画像データ２１上の画素位置３４が、フレーム画像データ２０上の画素位置３０の移動先であると考えられる。従って、動き探索処理により見つかったオプティカルフローのベクトルは、画素位置３０即ち画素位置３２から画素位置３４に向かうベクトルとなる。
【００２６】
なお類似度が最も大きい画素ブロックを探索する際に、フレーム画像データ２１全体を探索範囲としたのでは探索に時間がかかるので、動き検出対象の画素位置３０即ち画素位置３２の近傍に探索範囲を限定するのが一般的である。具体的には、画素位置３２を中心とする矩形領域である探索範囲３３を設定して、この探索範囲３３内で候補画素位置を順次移動させながら類似度又は相違度を計算し、最も類似の高い画素位置を特定する。
【００２７】
なお、輝度変化の影響を受ける第１の評価関数は、例えば、ＳＳＤ（Sum of Squared Difference）及びＳＡＤ（Sum of Absolute Difference）のうちの何れか１つであってよい。１つ前のフレーム画像データ２０の画素ブロック３１の各画素の画素値をＩ（ｉ，ｊ）とし、現在のフレーム画像データ２１の比較対象画素ブロックの各画素の画素値をＴ（ｉ，ｊ）とすると、ＳＳＤは以下の式により計算される。
【００２８】
【数１】
0006394216.tif 000002
またＳＡＤは以下の式により計算される。
【００２９】
【数２】
0006394216.tif 000003
【００３０】
図４は、輝度変化の影響を受けない評価関数を用いた修正処理を説明するための図である。図４において、図３と同一又は対応する構成要素は同一又は対応する番号で参照し、その説明は適宜省略する。
【００３１】
フレーム画像データ２０上の画素位置３０に対応するフレーム画像データ２１上の画素位置、即ち、画素位置３０と同一の水平方向及び垂直方向の座標を有するフレーム画像データ２１上の画素位置が、画素位置４０として示されている。また画素位置４０を中心とする画素ブロックが画素ブロック４１として示されている。
【００３２】
図４に示す例において、フレーム画像データ２０中の画素位置３０を中心とする画素ブロック３１に対して、フレーム画像データ２１中の最適解である画素ブロック（即ち探索範囲内で画素ブロック３１に最も類似する画素ブロック）は、画素ブロック４３である。画素ブロック４３は画素位置４２を中心とする。このとき、動き探索処理により求まった最適解である画素位置４２を、そのまま最終的な動き検出結果として用いるのではなく、修正処理を実行することにより、必要に応じて動き検出結果を修正する。
【００３３】
具体的には、輝度変化の影響を受けない第２の評価関数を用い、画素ブロック３１と最適解の画素ブロック４３との間の類似度（又は相違度）を計算し、更に画素ブロック３１と静止解の画素ブロック４１との間の類似度（又は相違度）を計算する。これら２つの類似度（又は相違度）同士を比較して、類似度が大きい（即ち相違度が小さい）方の解を選択する。
【００３４】
なお輝度変化の影響を受けない第２の評価関数は、例えば、ＺＳＡＤ（Zero-mean SAD）、ＮＣＣ（Normalized Cross-Correlation）、及びＺＮＣＣ（Zero-mean NCC）のうちの何れか１つであってよい。各画素の画素値がＩ（ｉ，ｊ）である画素ブロック３１の平均画素値を／Ｉ（"／"はオーバーライン）とし、各画素の画素値がＴ（ｉ，ｊ）である比較対象画素ブロックの平均画素値を／Ｔ（"／"はオーバーライン）とすると、ＺＳＡＤは以下の式により計算される。
【００３５】
【数３】
0006394216.tif 000004
またＮＣＣは以下の式で計算される。
【００３６】
【数４】
0006394216.tif 000005
またＺＮＣＣは以下の式で計算される。
【００３７】
【数５】
0006394216.tif 000006
【００３８】
図５は、動き探索及び修正処理の手順を示すフローチャートである。図１に示すＣＰＵ１０が、例えばＲＡＭ１２に格納されたオプティカルフロー計算処理１０２のプログラムを実行することにより、図５のフローチャートの各ステップを実行してよい。但し前述のように、ＣＰＵ１０ではなくＧＰＵ１３にオプティカルフロー計算処理１０２を実行する機能を持たせてもよい。また図５ではＳＡＤを第１の評価関数として用い、ＺＳＡＤを第２の評価関数として用いているが、これは一例にすぎず、前述の他の評価関数又はそれ以外の評価関数を使ってもよい。
【００３９】
図５及び以降の図において、フローチャートに記載された各ステップの実行順序は一例にすぎず、本願の意図する技術範囲が、記載された実行順番に限定されるものではない。例えば、Ａステップの次にＢステップが実行されるように本願に説明されていたとしても、Ａステップの次にＢステップを実行することが可能なだけでなく、Ｂステップの次にＡステップを実行することが、物理的且つ論理的に可能である場合がある。この場合、どちらの順番でステップを実行しても、当該フローチャートの処理に影響する全ての結果が同一であるならば、本願に開示の技術の目的のためには、Ｂステップの次にＡステップが実行されてもよいことは自明である。Ａステップの次にＢステップが実行されるように本願に説明されていたとしても、上記のような自明な場合を本願の意図する技術範囲から除外することを意図するものではなく、そのような自明な場合は、当然に本願の意図する技術範囲内に属する。
【００４０】
図５のステップＳ１１において、ＣＰＵ１０がＳＡＤ＿ＭＩＮとＸＹ＿ＯＰＴとの両方を未決定とする。ここでＳＡＤ＿ＭＩＮはＳＡＤの計算値を格納するパラメータであり、ＸＹ＿ＯＰＴは画素位置の座標データを格納するパラメータである。ステップＳ１２において、ＣＰＵ１０が、探索領域全体に対してＳＡＤの計算が終了したか否かを判定する。計算が終了していない場合、ステップＳ１３に進む。
【００４１】
ステップＳ１３において、ＣＰＵ１０は、ＸＹ＿ＣＵＲを探索領域中で未計算の点に設定する。ここでＸＹ＿ＣＵＲは、現在のフレーム画像中の候補画素位置を示す座標データを格納するパラメータである。ステップＳ１４において、ＣＰＵ１０は、ＸＹ＿ＰＲＥＶを中心とする画素ブロックとＸＹ＿ＣＵＲを中心とする画素ブロックとの間でＳＡＤを求める。即ち前述のＳＡＤの計算式に従って、絶対的な画素値を用いた相違度を計算する。ここでＸＹ＿ＰＲＥＶは、１つ前のフレーム画像中における動き検出対象の画素位置を示す座標データである。ＳＡＤの値を計算すると、ＣＰＵ１０は、計算結果をＳＡＤ＿ＣＵＲに格納する。
【００４２】
ステップＳ１５において、ＣＰＵ１０は、ＳＡＤ＿ＭＩＮが未決定である、或いは、ＳＡＤ＿ＣＵＲがＳＡＤ＿ＭＩＮより小さい、の条件が満たされるか否かを判定する。この条件が満たされる場合、ステップＳ１６において、ＣＰＵ１０は、ＳＡＤ＿ＣＵＲの値をＳＡＤ＿ＭＩＮに代入し、更に、ＸＹ＿ＣＵＲの値をＸＹ＿ＯＰＴに代入する。その後処理はステップＳ１２に戻り、以降の処理を繰り返す。ステップＳ１５の判定において上記の条件が満たされない場合、処理はステップＳ１６を実行することなくステップＳ１２に戻り、以降の処理を繰り返す。
【００４３】
ステップＳ１２において探索領域全体に対するＳＡＤの計算が終了したと判定されると、ステップＳ１７において、ＣＰＵ１０は、ＸＹ＿ＯＰＴに格納される最適解の座標データが、輝度変化による誤りである可能性を判定する。ステップＳ１８において、ＣＰＵ１０は、輝度変化による誤りの可能性の有無に応じて以降の処理を異なったものとする。輝度変化による誤りの可能性が無いと判定された場合、処理は終了する。
【００４４】
ステップＳ１８において輝度変化による誤りの可能性があると判定された場合、ステップＳ１９で、ＣＰＵ１０は、ＸＹ＿ＰＲＥＶを中心とする画素ブロックとＸＹ＿ＯＰＴを中心とする画素ブロックとの間でＺＳＡＤを求める。即ち前述のＺＳＡＤの計算式に従って、相対的な画素値を用いた相違度を計算する。ＺＳＡＤの値を計算すると、ＣＰＵ１０は、計算結果をＳＡＤ＿ＲＥＬ＿ＯＰＴに格納する。
【００４５】
ステップＳ２０で、ＣＰＵ１０は、ＸＹ＿ＰＲＥＶを中心とする画素ブロックとＸＹ＿ＣＥＮＴＥＲを中心とする画素ブロックとの間でＺＳＡＤを求める。ここでＸＹ＿ＣＥＮＴＥＲは、１つ前のフレーム画像中における動き検出対象の画素位置を示す座標データであるＸＹ＿ＰＲＥＶに等しい、現在のフレーム画像中における画素位置を示す座標データである。ＺＳＡＤの値を計算すると、ＣＰＵ１０は、計算結果をＳＡＤ＿ＲＥＬ＿ＣＥＮＴＥＲに格納する。
【００４６】
ステップＳ２１で、ＣＰＵ１０は、ＳＡＤ＿ＲＥＬ＿ＣＥＮＴＥＲがＳＡＤ＿ＲＥＬ＿ＯＰＴよりも小さい、との条件が満たされるか否かを判定する。条件が満たされない場合、処理はステップＳ１８に戻り、以降の処理を繰り返す。条件が満たされる場合、ステップＳ２２で、ＣＰＵ１０はＸＹ＿ＣＥＮＴＥＲの値をＸＹ＿ＯＰＴに代入する。以上で処理を終了する。ＸＹ＿ＯＰＴに格納される座標データが、最終的なオプティカルフローの検出結果となる。
【００４７】
なお図５の処理では、ステップＳ１７において輝度変化による誤りである可能性を判定し、動き探索処理により得られた最適解に誤りの可能性があるときにのみ、ＺＳＡＤを用いた修正処理を実行している。この手順は一例にすぎず、全ての最適解に対して無条件にＺＳＡＤを用いた修正処理を実行してもよい。全ての最適解に対して修正処理を実行する場合、計算に時間はかかるものの、図５に示す手順の場合と同様に、適切な最終的な動き検出結果を得ることができる。全ての最適解に対して修正処理を実行する場合であっても、ＺＳＡＤの計算は最適解と静止解との２つの点（ＸＹ＿ＯＰＴとＸＹ＿ＣＥＮＴＥＲ）についてのみ実行すればよいので、修正処理を実行することにより追加となる計算時間はごく限られたものである。図５に示す手順においては、最適解に誤りの可能性がある場合のみＺＳＡＤを用いた修正処理を実行するようにしているので、修正処理に掛かる計算時間を更に短くできる。
【００４８】
図６は、輝度変化による誤検出の可能性の有無を判定する手順を示すフローチャートである。この処理は、図５のフローチャートのステップＳ１７において実行される。
【００４９】
ステップＳ２１において、ＣＰＵ１０は、ＸＹ＿ＯＰＴがＸＹ＿ＣＥＮＴＥＲであるか否かを判定する。即ち、動き探索処理により検出された結果が動き無しであるか否か、即ち静止解であるか否か、を判定する。動き無しと判定された場合には、ステップＳ２５において、ＣＰＵ１０は、輝度変化による誤りの可能性はないと判定する。
【００５０】
ステップＳ２１の判定において動き有りと判定された場合には、ステップＳ２２において、ＣＰＵ１０は、ＸＹ＿ＯＰＴとＸＹ＿ＣＥＮＴＥＲとの距離が所定の閾値以上であるか否かを判定する。一般に、輝度変化により誤って動きが検出される場合、検出される動き量（移動量）は比較的小さな値となる。従って、検出された動き量が所定の閾値以上である場合には、実際に動きが存在する可能性が高いと判断することが適切である。従って、ステップＳ２２の判定において距離が所定の閾値以上である場合には、ステップＳ２５において、ＣＰＵ１０は、輝度変化による誤りの可能性はないと判定する。
【００５１】
ステップＳ２２の判定において距離が所定の閾値より小さいである場合には、ステップＳ２３において、ＣＰＵ１０は、ＸＹ＿ＯＰＴとＸＹ＿ＣＥＮＴＥＲとの周囲の画素値がグラデーション状の変化をしているか否かを判定する。この判定においては、ＸＹ＿ＯＰＴとＸＹ＿ＣＥＮＴＥＲとの間を結ぶ直線上又はその近傍に存在する画素の画素値を、ＸＹ＿ＯＰＴの画素値とＸＹ＿ＣＥＮＴＥＲの画素値との間を線形補間した画素値と比較してよい。例えばこれら画素値の差の絶対値を合計し、その合計値が所定の閾値以下である場合には、画素値がグラデーション状の変化をしていると判定してよい。前述のように、画素値がグラデーションである領域において輝度変化による誤った動き検出が発生するので、上記判定の結果に応じて、誤り検出の有無の可能性を判定することができる。ステップＳ２３の判定においてグラデーション状の画素値変化が検出されない場合には、ステップＳ２５において、ＣＰＵ１０は、輝度変化による誤りの可能性はないと判定する。
【００５２】
ステップＳ２３の判定においてグラデーション状の画素値変化が検出された場合には、ステップＳ２４において、ＣＰＵ１０は、輝度変化による誤りの可能性があると判定する。以上で処理を終了する。
【００５３】
図７は、修正処理の効果を示す表である。２３１個の試験動画に対して、検知対象とすべき物体を人手で予め特定することにより正解データを作成しておき、この正解データと図５に示す処理による検出結果データとの一致度を計算した。この計算において、検出結果データと一致した正解データの数をＴＰＣとし、検出結果データと一致しなかった正解データの数をＦＮとする。また正解データと一致した検出結果データの数をＴＰＲとし、正解データと一致しなかった検出結果データの数をＦＰとする。なおここで「一致する」とは、正解データと検出結果データとのいずれかの出現時において、両者に重なり部分（重複領域）があることを意味する。
【００５４】
認識精度の評価観点としては、以下の２つの性能指標を使用する。第１の性能指標である網羅率は、正解データを母集合としたときの正解率であり、全体の正解データのうちの何％に対して検出結果データが正しく出力されたのかを示す。この網羅率はＴＰＣ／（ＴＰＣ＋ＦＮ）により計算される。第２の性能指標である正報率は、検出結果データを母集合としたときの正解率であり、全体の検出結果データのうちの何％が正解データに一致するのかを示す。この正報率はＴＰＲ／（ＴＰＲ＋ＦＰ）により計算される。
【００５５】
図７には、修正処理適用前の検出結果（図５のステップＳ１１乃至Ｓ１６による動き探索処理のみの検出結果）と修正処理適用後の検出結果（図５の全てのステップによる動き探索処理と修正処理とによる検出結果）とに対する網羅率と正報率とが示される。網羅率は、修正処理の適用前と適用後とで、殆ど変化はない。正報率は、修正処理の適用前の５５．６％に対し、修正処理の適用後には７８．１％に向上している。
【００５６】
図８は、背景の動きの影響を取り除く処理の手順を示すフローチャートである。前述の図５のフローチャートに示す処理手順では、動き検出装置を搭載した車両が移動しており、撮像側の動きにより背景が一様に動いているような場合を想定していない。しかしながら、撮像側の動きによる背景の動きを考慮することにより図５に示すフローチャートを変形することで、撮像側が運動している場合にも修正処理を実行することが可能である。
【００５７】
図８のステップＳ３１において、ＣＰＵ１０が、画面全体のオプティカルフローを取得する。具体的には、例えば図５に示す手順のうちステップＳ１１乃至Ｓ１６をＣＰＵ１０が実行することにより、オプティカルフローを計算してよい。
【００５８】
図９は、背景の動きの影響を取り除く処理を説明するための図である。図９（ａ）に示されるフレーム画像５１においては、物体５０が動きベクトル５２等で示される動きを示している一方で、撮像側の動きにより、背景が動きベクトル５３で示されるように同一方向に同一速度で動いている。図８のステップＳ３１の処理により、図９（ａ）に示されるようなオプティカルフローが検出される。
【００５９】
図８のステップＳ３２において、ＣＰＵ１０が背景の平均移動量を取得する。具体的には、ステップＳ３１で求められた全ての画素の動きベクトルの平均をとり、それを背景の平均移動量としてよい。或いは、ステップＳ３１で求められた全ての画素の動きベクトルの平均をとり、その平均動きベクトルから所定の閾値以上大きさ又は方向が異なる動きベクトルを排除し、残った動きベクトルの平均を再度とることにより、背景の平均移動量を求めてよい。また或いは、例えば車両に搭載されている速度計、ハンドル角、加速度センサ、角速度センサ等に基づいて車両の動きを推定し、その推定結果とステップＳ３１で求められた動きベクトルとから、背景の平均移動量を求めてもよい。図９（ｂ）は、フレーム画像５１において計算された背景の平均移動量の一例を示す。
【００６０】
ステップＳ３３において、ＣＰＵ１０は、画面全体のオプティカルフローから背景の平均移動量に相当するオプティカルフローを差し引く。即ち、各画素について求められた動きベクトルから、背景の平均移動量を示す動きベクトルを減算する。図９（ｃ）は、フレーム画像５１において、背景の平均移動量に相当するオプティカルフローを差し引いた後に残るオプティカルフローの一例を示す。
【００６１】
ステップＳ３４において、ＣＰＵ１０は、背景の平均移動量を差し引いた後のオプティカルフローに基づいて、輝度変化による誤りである可能性を判定する。具体的には、背景の平均移動量を差し引いた後のオプティカルフローに基づいて、ＣＰＵ１０が、図５のステップＳ１７に示される処理を実行してよい。その後、図５のステップＳ１８乃至Ｓ２２に示す処理を実行することで、適切な修正処理を実現することができる。
【００６２】
上記説明したように、背景が一様に動いている場合には、背景の平均移動量を求め、求めた平均移動量を各画素のオプティカルフローから差し引くことで、背景の動きの影響をなくすことができる。代替的に、ＸＹ＿ＣＥＮＴＥＲが示す座標位置の代わりに、「ＸＹ＿ＰＲＥＶ＋平均移動量」の座標位置を用いて、ステップＳ２０及びＳ２１の計算を実行してもよい。このようにして撮像側の動きに応じた背景の動きの影響を取り除くことにより、輝度変化の影響を受けない第２の評価関数を用いて最適解と対象物が静止している静止解とのうちの最適な方の解を選択することができる。
【００６３】
図１０乃至図１２は、背景の動きの異なるパターンについて説明するための図である。図１０（ａ）に示す例では、車両６０が矢印６１に示す方向に直進しており、動き検出装置に接続される撮像装置が撮像視野６２で示される領域を撮像している。撮像視野６２は、車両６０が直進する方向とは垂直な方向に向いている。この場合、図１０（ｂ）に示されるように、画面全体が同一方向に略同一速度で移動するような動きが発生する。図９を参照して説明した方法と同様にして背景の平均移動量を計算することで、撮像側の動きに応じた背景の動きの影響を取り除くことができる。但し、撮像視野６２内での物体までの距離に応じて移動速度が異なるので、画面全体を分割した小さな領域内での局所的な平均移動量を求めるなどの工夫をすることが望ましい。
【００６４】
図１１（ａ）に示す例では、車両６０が矢印６１に示す方向に直進しており、動き検出装置に接続される撮像装置が撮像視野６３で示される領域を撮像している。撮像視野６３は、車両６０が直進する方向と同一の方向に向いている。この場合、図１１（ｂ）に示されるように、画面の中心から放射状に広がる動きベクトルが発生する。例えば車両に搭載されている速度計、ハンドル角、加速度センサ、角速度センサ等に基づいて車両の動きを推定し、その推定結果と画像から求めた動きベクトルとから、背景の各部分における撮像装置の動きに由来する移動量を求めてよい。このようにして求めた背景の移動量を計算することで、撮像側の動きに応じた背景の動きの影響を取り除くことができる。この場合も、撮像視野６３内での物体までの距離に応じて移動速度が異なるので、画面全体を分割した小さな領域内での局所的な平均移動量を求めるなどの工夫をすることが望ましい。
【００６５】
図１２（ａ）に示す例では、車両６０が矢印６４に示すように右方向に曲がるように進行しており、動き検出装置に接続される撮像装置が撮像視野６５で示される領域を撮像している。撮像視野６５は、車両６０が進行する方向よりも左側を向いている。この場合、図１２（ｂ）に示されるように、画面全体が左側に移動するが、移動方向及び移動距離は画面上の位置に依存する。例えば車両に搭載されている速度計、ハンドル角、加速度センサ、角速度センサ等に基づいて車両の動きを推定し、その推定結果と画像から求めた動きベクトルとから、背景の各部分における撮像装置の動きに由来する移動量を求めてよい。このようにして求めた背景の移動量を計算することで、撮像側の動きに応じた背景の動きの影響を取り除くことができる。この場合も、撮像視野６５内での物体までの距離に応じて移動速度が異なるので、画面全体を分割した小さな領域内での局所的な平均移動量を求めるなどの工夫をすることが望ましい。
【００６６】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【符号の説明】
【００６７】
１０  ＣＰＵ
１１  ＲＯＭ
１２  ＲＡＭ
１３  ＧＰＵ
１４  表示インタフェース
１５  映像入力インターフェース
２０  １つ前のフレーム画像データ
２１  現在のフレーム画像データ
３３  探索範囲
【図１】
0006394216.tif 000007
【図２】
0006394216.tif 000008
【図３】
0006394216.tif 000009
【図４】
0006394216.tif 000010
【図５】
0006394216.tif 000011
【図６】
0006394216.tif 000012
【図７】
0006394216.tif 000013
【図８】
0006394216.tif 000014
【図９】
0006394216.tif 000015
【図１０】
0006394216.tif 000016
【図１１】
0006394216.tif 000017
【図１２】
0006394216.tif 000018