特許第6394216号(P6394216)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社ソシオネクストの特許一覧

特許6394216動き検出方法、動き検出装置、及び動き検出プログラム
<>
  • 特許6394216-動き検出方法、動き検出装置、及び動き検出プログラム 図000007
  • 特許6394216-動き検出方法、動き検出装置、及び動き検出プログラム 図000008
  • 特許6394216-動き検出方法、動き検出装置、及び動き検出プログラム 図000009
  • 特許6394216-動き検出方法、動き検出装置、及び動き検出プログラム 図000010
  • 特許6394216-動き検出方法、動き検出装置、及び動き検出プログラム 図000011
  • 特許6394216-動き検出方法、動き検出装置、及び動き検出プログラム 図000012
  • 特許6394216-動き検出方法、動き検出装置、及び動き検出プログラム 図000013
  • 特許6394216-動き検出方法、動き検出装置、及び動き検出プログラム 図000014
  • 特許6394216-動き検出方法、動き検出装置、及び動き検出プログラム 図000015
  • 特許6394216-動き検出方法、動き検出装置、及び動き検出プログラム 図000016
  • 特許6394216-動き検出方法、動き検出装置、及び動き検出プログラム 図000017
  • 特許6394216-動き検出方法、動き検出装置、及び動き検出プログラム 図000018
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6394216
(24)【登録日】2018年9月7日
(45)【発行日】2018年9月26日
(54)【発明の名称】動き検出方法、動き検出装置、及び動き検出プログラム
(51)【国際特許分類】
   G06T 7/223 20170101AFI20180913BHJP
【FI】
   G06T7/223
【請求項の数】7
【全頁数】16
(21)【出願番号】特願2014-186178(P2014-186178)
(22)【出願日】2014年9月12日
(65)【公開番号】特開2016-58019(P2016-58019A)
(43)【公開日】2016年4月21日
【審査請求日】2017年8月10日
(73)【特許権者】
【識別番号】514315159
【氏名又は名称】株式会社ソシオネクスト
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(72)【発明者】
【氏名】阿部 直樹
【審査官】 佐田 宏史
(56)【参考文献】
【文献】 特開2012−068842(JP,A)
【文献】 特開平6−290255(JP,A)
【文献】 特開平10−051794(JP,A)
【文献】 特開2013−084140(JP,A)
【文献】 特開2005−250561(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00−7/90
(57)【特許請求の範囲】
【請求項1】
輝度変化の影響を受ける第1の評価関数を用いて動き探索することによりオプティカルフローの最適解を求め、
輝度変化の影響を受けない第2の評価関数を用いて前記最適解と対象物が静止している静止解とのうちの最適な方の解を選択する
各段階をコンピュータにより実行する動き検出方法。
【請求項2】
前記最適解が輝度変化により誤ったオプティカルフローが検出されたものである可能性の有無を判定する段階を更に含み、前記選択する段階は、前記判定する段階により前記可能性有りと判定された最適解についてのみ、前記第2の評価関数を用いて前記最適な方の解を選択する請求項1記載の動き検出方法。
【請求項3】
前記判定する段階は、前記最適解と前記静止解との間の距離が閾値以上である場合に前記可能性無しと判定する請求項2記載の動き検出方法。
【請求項4】
前記判定する段階は、前記最適解と前記静止解との周辺において画素値変化がグラデーションでない場合に前記可能性無しと判定する請求項2又は3記載の動き検出方法。
【請求項5】
前記第1の評価関数はSSD(Sum of Squared Difference)及びSAD(Sum of Absolute Difference)のうちの何れか1つであり、前記第2の評価関数はZSAD(Zero-mean SAD)、NCC(Normalized Cross-Correlation)、及びZNCC(Zero-mean NCC)のうちの何れか1つである請求項1乃至4何れか一項記載の動き検出方法。
【請求項6】
プロセッサと、
メモリと、
を含み、前記メモリに格納されたプログラムを前記プロセッサが実行することにより、
輝度変化の影響を受ける第1の評価関数を用いて動き探索することによりオプティカルフローの最適解を求め、
輝度変化の影響を受けない第2の評価関数を用いて前記最適解と対象物が静止している静止解とのうちの最適な方の解を選択する
各段階を実行する動き検出装置。
【請求項7】
輝度変化の影響を受ける第1の評価関数を用いて動き探索することによりオプティカルフローの最適解を求め、
輝度変化の影響を受けない第2の評価関数を用いて前記最適解と対象物が静止している静止解とのうちの最適な方の解を選択する
各段階を含む動き検出プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本願開示は、動き検出方法、動き検出装置、及び動き検出プログラムに関する。
【背景技術】
【0002】
近年、自動車の安全性への意識の高まりと、カーエレクトロニクス技術の進歩により、ドライバーの運転を支援して安全性を高める技術に注目が集まっている。特に、車の発進時などに、車両に近づく歩行者や他車両などの接近物を自動的に検出し、ドライバーに注意を促すための、車両周辺接近物検知システムについての需要が増加している。接近物の検知には様々な方法が考えられるが、車載カメラの映像を使う方法が、低コストであり、他の運転支援システムとの連携の点からも有効である。
【0003】
車載カメラによる車両周辺接近物検知システムにおいては、カメラ映像の動画に対してオプティカルフローを計算し、特定の方向を向いたオプティカルフローが検出された場合、接近物体があったと判断する。オプティカルフローの計算方式としては、SADを使った局所相関演算法がよく用いられる。
【0004】
車両周辺接近物検知システムにおいては、移動物体が遠くにあるうちに移動物体を検出することが、ドライバーに多くの時間的余裕を与えることになるため、安全性向上の観点から極めて重要である。移動物体が遠くにある場合には、動画中の移動量も小さいので、小さなオプティカルフローを逃さず検出する必要がある。しかしながら、小さなオプティカルフローを検出しようとすると、細かい誤りフローを誤検知するリスクが増加する。誤りフローは、動画中の草木などの細かい移動体や画像のノイズ等の原因により発生するだけでなく、移動物体が全くない状態で輝度の変化が起こっただけでも発生する可能性がある。
【0005】
輝度変化のみに起因して動きが検出されてしまう現象は、画像の輝度変化がグラデーションである場合に特に発生しやすい。画像の輝度変化がグラデーションであるとは、第1の画素位置の第1の輝度から第2の画素位置の第2の輝度まで、輝度が徐々に単調増加する又は単調減少することを意味する。特に、輝度変化が線形(即ち直線的)である場合に、誤った動きが検出されやすい。これは、空間的に直線的な輝度変化が存在する場合、直線的な輝度変化を有する物体が空間的に移動して発生する輝度変化と、全体の輝度が一様に増加(又は減少)することにより発生する輝度変化とは、局所的な情報のみからでは区別がつかないからである。即ち、ある画素位置とその近傍の局所的な領域に着目し、その領域で輝度の増加(又は減少)が発生したときに、物体が実際に動いて発生した輝度変化であるのか、全体の輝度が一様に変化して発生した輝度変化であるのか、区別がつかない。
【0006】
なお上述のような輝度変化による誤った動き検出は、車両周辺接近物検知システムに限られる問題ではなく、オプティカルフローを検出する全てのシステムにおいて発生する可能性がある問題である。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2006−53692号公報
【特許文献2】特開2013−186668号公報
【特許文献3】特開2013−84140号公報
【特許文献4】特開2013−101419号公報
【特許文献5】特開2008−257626号公報
【特許文献6】特開2012−68842号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
以上を鑑みると、輝度変化による誤ったオプティカルフローの検出を避けることができる動き検出装置及び方法が望まれる。
【課題を解決するための手段】
【0009】
動き検出方法は、輝度変化の影響を受ける第1の評価関数を用いて動き探索することによりオプティカルフローの最適解を求め、輝度変化の影響を受けない第2の評価関数を用いて前記最適解と対象物が静止している静止解とのうちの最適な方の解を選択する各段階をコンピュータにより実行する。
【0010】
動き検出装置は、プロセッサと、メモリとを含み、前記メモリに格納されたプログラムを前記プロセッサが実行することにより、輝度変化の影響を受ける第1の評価関数を用いて動き探索することによりオプティカルフローの最適解を求め、輝度変化の影響を受けない第2の評価関数を用いて前記最適解と対象物が静止している静止解とのうちの最適な方の解を選択する各段階を実行する。
【発明の効果】
【0011】
少なくとも1つの実施例によれば、輝度変化による誤ったオプティカルフローの検出を避けることができる。
【図面の簡単な説明】
【0012】
図1】動き検出装置の構成の一例を示す図である。
図2図1の動き検出装置のソフトウェアの構成の一例を示す図である。
図3】動き探索処理を説明するための図である。
図4】輝度変化の影響を受けない評価関数を用いた修正処理を説明するための図である。
図5】動け探索及び修正処理の手順を示すフローチャートである。
図6】輝度変化による誤検出の可能性の有無を判定する手順を示すフローチャートである。
図7】修正処理の効果を示す表である。
図8】背景の動きの影響を取り除く処理の手順を示すフローチャートである。
図9】背景の動きの影響を取り除く処理を説明するための図である。
図10】背景の動きの異なるパターンについて説明するための図である。
図11】背景の動きの異なるパターンについて説明するための図である。
図12】背景の動きの異なるパターンについて説明するための図である。
【発明を実施するための形態】
【0013】
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。以下の図において、同一又は対応する構成要素は同一又は対応する番号で参照し、その説明は適宜省略する。
【0014】
図1は、動き検出装置の構成の一例を示す図である。図1に示す動き検出装置は、CPU(Central Processing Unit)10、ROM(Read Only Memory)11、RAM(Random Access Memory)12、GPU(Graphics Processing Unit)13、表示インタフェース14、及び映像入力インターフェース15を含む。図1に示す動き検出装置は、制御処理及び演算処理を実行するコンピュータであってよく、例えば車載の車両周辺接近物検知システムに内蔵されるコンピュータであってよいし、監視カメラ等に接続されたパーソナルコンピュータ等であってもよい。
【0015】
CPU10は、ROM11やRAM12に格納されるプログラム及びデータに基づいてプログラムを実行することにより、動き検出装置の全体を制御すると共に、RAM12に格納される画像データを演算処理する。ROM11には、動き検出装置の制御に必要な基本的なプログラムが格納される。RAM12には、動き検出装置上で実行されるアプリケーションプログラム、オプティカルフロー計算処理プログラム、画像処理基本ソフトウェアプログラム等が格納される。画像処理基本ソフトウェアプログラムは例えばOpenGL等であってよく、GPU13により実行されてよい。
【0016】
図2は、図1の動き検出装置のソフトウェアの構成の一例を示す図である。図2には、図1に示す動き検出装置のハードウェアが、ハードウェア104として示されている。CPU10が、例えば映像中の動きを検出して表示するアプリケーション101のプログラムを実行すると、当該プログラムからオプティカルフロー計算処理102が呼び出され、CPU10がオプティカルフロー計算処理102のプログラムを実行する。映像データ(時系列として並ぶ複数の画像データ)からオプティカルフローが計算されると、画像処理基本ソフトウェア103がGPU13により実行され、ハードウェア104内のフレームバッファ領域(RAM12)に対する描画が行われる。なおCPU10がオプティカルフロー計算処理102を実行するのではなく、GPU13がオプティカルフロー計算処理102を実行するのでもよい。
【0017】
オプティカルフロー計算処理102を実行することにより、図1に示す動き検出装置は、最初に、輝度変化の影響を受ける第1の評価関数を用いて動き探索することによりオプティカルフローの最適解を求める。動き検出装置は、次に、輝度変化の影響を受けない第2の評価関数を用いて前記最適解と対象物が静止している静止解とのうちの最適な方の解を選択する。ここで動き探索においては、後述するように画素ブロック間の類似度又は相違度を評価関数により計算することにより、最も類似度の高い(相違度の低い)画素ブロック同士を時間的に連続する2つの画像フレーム間で特定する。
【0018】
輝度変化の影響を受ける第1の評価関数とは、それを用いて計算した類似度又は相違度の値が、画像全体の輝度が一様に変化するような全体的な輝度の変化により変化してしまう評価関数のことである。また輝度変化の影響を受けない第2の評価関数とは、それを用いて計算した類似度又は相違度の値が、画像全体の輝度が一様に変化するような全体的な輝度の変化により変化しない評価関数のことである。また画像全体の輝度が一様に変化するような全体的な輝度の変化とは、より具体的には、画素ブロック内の各画素の画素値が各々同一の値増加又は減少するような画素値の変化のことである。
【0019】
輝度変化の影響を受けない第2の評価関数を用いるということは、画素ブロック内の各画素についての絶対的な画素値の大小の情報を破棄し、画素間の相対的な画素値の情報のみを用いて類似度又は相違度を計算することに相当する。そのような第2の評価関数を用いる場合、輝度変化の影響を受ける第1の評価関数を用いる場合と比較して、類似度又は相違度の計算において使用される情報量が少ない。従って、輝度変化の影響を受けない第2の評価関数を用いてオプティカルフローの最適解を求めた場合、誤った解が求まっている可能性、即ち実際の動きとは異なる誤った動きを検出している可能性が、第1の評価関数を用いた場合に比較して大きくなってしまう。
【0020】
そこで上述のように、まず第1の評価関数を用いて最適解を求める動き探索処理を実行することにより適切な解を求め、輝度変化が存在しない状況下において信頼できる解を求める。これにより、オプティカルフロー検出の精度が落ちないことを保証できる。輝度変化が存在しない状況下ではこの最適解で問題ないが、輝度変化が存在する状況下ではこの最適解では誤りである可能性がある。そこで、輝度変化の影響を受けない第2の評価関数を用いて、最適解と静止解との何れの解が最適であるのかを判定し、最適な方の解を選択する修正処理を実行する。これにより、輝度変化の有無に関わらず、動き検出において信頼性の高い解を求めることができる。
【0021】
図1に戻り、映像入力インターフェース15は、CCD(Charge Coupled Device)やCMOS(Complementary Metal Oxide Semiconductor)撮像素子等の撮像装置やDVD(Digital Versatile Disk)プレイヤー等の映像再生装置に接続されてよい。映像入力インターフェース15が接続先の機器から受け取った映像データは、RAM12に格納されてよい。データ格納装置として、RAM12に加え例えばハードディスク装置が設けられていてよく、映像データを不揮発性データとして格納する場合には、ハードディスク装置が格納先として用いられてよい。
【0022】
表示インタフェース14は、例えばLCD(Liquid Crystal Display)等の画像表示装置が接続される。例えば、計算されたオプティカルフローをベクトルとして原画像に重ねて表示した画像データが、RAM12から読み出され、表示インタフェース14を介して画像表示装置に表示されてよい。
【0023】
図3は、動き探索処理を説明するための図である。フレーム画像データ20とフレーム画像データ21とは、時系列中(時間軸上)で連続するフレームのデータである。フレーム画像データ21が現在のフレームの画像データであり、フレーム画像データ20が現在のフレームの1つ前のフレームの画像データである。図3において、フレーム画像データ20上の着目点、即ち動き検出対象の点が、画素位置30として示されている。フレーム画像データ20上の画素位置30と同一のフレーム画像データ21上の画素位置、即ち、画素位置30と同一の水平方向座標値及び垂直方向座標値を有するフレーム画像データ21上の画素位置が、画素位置32として示されている。
【0024】
動き探索処理においては、1つ前のフレーム画像データ20から現在のフレーム画像データ20への時間の経過に伴い画素位置30において発生した動きを検出する。画素位置30において発生した動きを検出するために、フレーム画像データ20において画素位置30を中心とする小画像領域である画素ブロック31を考える。以降の説明において、異なる位置にある画素ブロックは、全て同一の大きさを有するものとする。
【0025】
フレーム画像データ20中の画素ブロック31に対し、フレーム画像データ21において最も類似する画素ブロック35を探索する。具体的には、候補画素位置を中心とする小画像領域である画素ブロックと動き検出対象の画素位置30の周囲の画素ブロック31との間の類似度又は相違度を、候補画素位置を順次移動させながら評価関数に用いて計算し、類似度が最も大きくなる画素位置を特定する。このようにして求められたフレーム画像データ21上の画素位置34が、フレーム画像データ20上の画素位置30の移動先であると考えられる。従って、動き探索処理により見つかったオプティカルフローのベクトルは、画素位置30即ち画素位置32から画素位置34に向かうベクトルとなる。
【0026】
なお類似度が最も大きい画素ブロックを探索する際に、フレーム画像データ21全体を探索範囲としたのでは探索に時間がかかるので、動き検出対象の画素位置30即ち画素位置32の近傍に探索範囲を限定するのが一般的である。具体的には、画素位置32を中心とする矩形領域である探索範囲33を設定して、この探索範囲33内で候補画素位置を順次移動させながら類似度又は相違度を計算し、最も類似の高い画素位置を特定する。
【0027】
なお、輝度変化の影響を受ける第1の評価関数は、例えば、SSD(Sum of Squared Difference)及びSAD(Sum of Absolute Difference)のうちの何れか1つであってよい。1つ前のフレーム画像データ20の画素ブロック31の各画素の画素値をI(i,j)とし、現在のフレーム画像データ21の比較対象画素ブロックの各画素の画素値をT(i,j)とすると、SSDは以下の式により計算される。
【0028】
【数1】
またSADは以下の式により計算される。
【0029】
【数2】
【0030】
図4は、輝度変化の影響を受けない評価関数を用いた修正処理を説明するための図である。図4において、図3と同一又は対応する構成要素は同一又は対応する番号で参照し、その説明は適宜省略する。
【0031】
フレーム画像データ20上の画素位置30に対応するフレーム画像データ21上の画素位置、即ち、画素位置30と同一の水平方向及び垂直方向の座標を有するフレーム画像データ21上の画素位置が、画素位置40として示されている。また画素位置40を中心とする画素ブロックが画素ブロック41として示されている。
【0032】
図4に示す例において、フレーム画像データ20中の画素位置30を中心とする画素ブロック31に対して、フレーム画像データ21中の最適解である画素ブロック(即ち探索範囲内で画素ブロック31に最も類似する画素ブロック)は、画素ブロック43である。画素ブロック43は画素位置42を中心とする。このとき、動き探索処理により求まった最適解である画素位置42を、そのまま最終的な動き検出結果として用いるのではなく、修正処理を実行することにより、必要に応じて動き検出結果を修正する。
【0033】
具体的には、輝度変化の影響を受けない第2の評価関数を用い、画素ブロック31と最適解の画素ブロック43との間の類似度(又は相違度)を計算し、更に画素ブロック31と静止解の画素ブロック41との間の類似度(又は相違度)を計算する。これら2つの類似度(又は相違度)同士を比較して、類似度が大きい(即ち相違度が小さい)方の解を選択する。
【0034】
なお輝度変化の影響を受けない第2の評価関数は、例えば、ZSAD(Zero-mean SAD)、NCC(Normalized Cross-Correlation)、及びZNCC(Zero-mean NCC)のうちの何れか1つであってよい。各画素の画素値がI(i,j)である画素ブロック31の平均画素値を/I("/"はオーバーライン)とし、各画素の画素値がT(i,j)である比較対象画素ブロックの平均画素値を/T("/"はオーバーライン)とすると、ZSADは以下の式により計算される。
【0035】
【数3】
またNCCは以下の式で計算される。
【0036】
【数4】
またZNCCは以下の式で計算される。
【0037】
【数5】
【0038】
図5は、動き探索及び修正処理の手順を示すフローチャートである。図1に示すCPU10が、例えばRAM12に格納されたオプティカルフロー計算処理102のプログラムを実行することにより、図5のフローチャートの各ステップを実行してよい。但し前述のように、CPU10ではなくGPU13にオプティカルフロー計算処理102を実行する機能を持たせてもよい。また図5ではSADを第1の評価関数として用い、ZSADを第2の評価関数として用いているが、これは一例にすぎず、前述の他の評価関数又はそれ以外の評価関数を使ってもよい。
【0039】
図5及び以降の図において、フローチャートに記載された各ステップの実行順序は一例にすぎず、本願の意図する技術範囲が、記載された実行順番に限定されるものではない。例えば、Aステップの次にBステップが実行されるように本願に説明されていたとしても、Aステップの次にBステップを実行することが可能なだけでなく、Bステップの次にAステップを実行することが、物理的且つ論理的に可能である場合がある。この場合、どちらの順番でステップを実行しても、当該フローチャートの処理に影響する全ての結果が同一であるならば、本願に開示の技術の目的のためには、Bステップの次にAステップが実行されてもよいことは自明である。Aステップの次にBステップが実行されるように本願に説明されていたとしても、上記のような自明な場合を本願の意図する技術範囲から除外することを意図するものではなく、そのような自明な場合は、当然に本願の意図する技術範囲内に属する。
【0040】
図5のステップS11において、CPU10がSAD_MINとXY_OPTとの両方を未決定とする。ここでSAD_MINはSADの計算値を格納するパラメータであり、XY_OPTは画素位置の座標データを格納するパラメータである。ステップS12において、CPU10が、探索領域全体に対してSADの計算が終了したか否かを判定する。計算が終了していない場合、ステップS13に進む。
【0041】
ステップS13において、CPU10は、XY_CURを探索領域中で未計算の点に設定する。ここでXY_CURは、現在のフレーム画像中の候補画素位置を示す座標データを格納するパラメータである。ステップS14において、CPU10は、XY_PREVを中心とする画素ブロックとXY_CURを中心とする画素ブロックとの間でSADを求める。即ち前述のSADの計算式に従って、絶対的な画素値を用いた相違度を計算する。ここでXY_PREVは、1つ前のフレーム画像中における動き検出対象の画素位置を示す座標データである。SADの値を計算すると、CPU10は、計算結果をSAD_CURに格納する。
【0042】
ステップS15において、CPU10は、SAD_MINが未決定である、或いは、SAD_CURがSAD_MINより小さい、の条件が満たされるか否かを判定する。この条件が満たされる場合、ステップS16において、CPU10は、SAD_CURの値をSAD_MINに代入し、更に、XY_CURの値をXY_OPTに代入する。その後処理はステップS12に戻り、以降の処理を繰り返す。ステップS15の判定において上記の条件が満たされない場合、処理はステップS16を実行することなくステップS12に戻り、以降の処理を繰り返す。
【0043】
ステップS12において探索領域全体に対するSADの計算が終了したと判定されると、ステップS17において、CPU10は、XY_OPTに格納される最適解の座標データが、輝度変化による誤りである可能性を判定する。ステップS18において、CPU10は、輝度変化による誤りの可能性の有無に応じて以降の処理を異なったものとする。輝度変化による誤りの可能性が無いと判定された場合、処理は終了する。
【0044】
ステップS18において輝度変化による誤りの可能性があると判定された場合、ステップS19で、CPU10は、XY_PREVを中心とする画素ブロックとXY_OPTを中心とする画素ブロックとの間でZSADを求める。即ち前述のZSADの計算式に従って、相対的な画素値を用いた相違度を計算する。ZSADの値を計算すると、CPU10は、計算結果をSAD_REL_OPTに格納する。
【0045】
ステップS20で、CPU10は、XY_PREVを中心とする画素ブロックとXY_CENTERを中心とする画素ブロックとの間でZSADを求める。ここでXY_CENTERは、1つ前のフレーム画像中における動き検出対象の画素位置を示す座標データであるXY_PREVに等しい、現在のフレーム画像中における画素位置を示す座標データである。ZSADの値を計算すると、CPU10は、計算結果をSAD_REL_CENTERに格納する。
【0046】
ステップS21で、CPU10は、SAD_REL_CENTERがSAD_REL_OPTよりも小さい、との条件が満たされるか否かを判定する。条件が満たされない場合、処理はステップS18に戻り、以降の処理を繰り返す。条件が満たされる場合、ステップS22で、CPU10はXY_CENTERの値をXY_OPTに代入する。以上で処理を終了する。XY_OPTに格納される座標データが、最終的なオプティカルフローの検出結果となる。
【0047】
なお図5の処理では、ステップS17において輝度変化による誤りである可能性を判定し、動き探索処理により得られた最適解に誤りの可能性があるときにのみ、ZSADを用いた修正処理を実行している。この手順は一例にすぎず、全ての最適解に対して無条件にZSADを用いた修正処理を実行してもよい。全ての最適解に対して修正処理を実行する場合、計算に時間はかかるものの、図5に示す手順の場合と同様に、適切な最終的な動き検出結果を得ることができる。全ての最適解に対して修正処理を実行する場合であっても、ZSADの計算は最適解と静止解との2つの点(XY_OPTとXY_CENTER)についてのみ実行すればよいので、修正処理を実行することにより追加となる計算時間はごく限られたものである。図5に示す手順においては、最適解に誤りの可能性がある場合のみZSADを用いた修正処理を実行するようにしているので、修正処理に掛かる計算時間を更に短くできる。
【0048】
図6は、輝度変化による誤検出の可能性の有無を判定する手順を示すフローチャートである。この処理は、図5のフローチャートのステップS17において実行される。
【0049】
ステップS21において、CPU10は、XY_OPTがXY_CENTERであるか否かを判定する。即ち、動き探索処理により検出された結果が動き無しであるか否か、即ち静止解であるか否か、を判定する。動き無しと判定された場合には、ステップS25において、CPU10は、輝度変化による誤りの可能性はないと判定する。
【0050】
ステップS21の判定において動き有りと判定された場合には、ステップS22において、CPU10は、XY_OPTとXY_CENTERとの距離が所定の閾値以上であるか否かを判定する。一般に、輝度変化により誤って動きが検出される場合、検出される動き量(移動量)は比較的小さな値となる。従って、検出された動き量が所定の閾値以上である場合には、実際に動きが存在する可能性が高いと判断することが適切である。従って、ステップS22の判定において距離が所定の閾値以上である場合には、ステップS25において、CPU10は、輝度変化による誤りの可能性はないと判定する。
【0051】
ステップS22の判定において距離が所定の閾値より小さいである場合には、ステップS23において、CPU10は、XY_OPTとXY_CENTERとの周囲の画素値がグラデーション状の変化をしているか否かを判定する。この判定においては、XY_OPTとXY_CENTERとの間を結ぶ直線上又はその近傍に存在する画素の画素値を、XY_OPTの画素値とXY_CENTERの画素値との間を線形補間した画素値と比較してよい。例えばこれら画素値の差の絶対値を合計し、その合計値が所定の閾値以下である場合には、画素値がグラデーション状の変化をしていると判定してよい。前述のように、画素値がグラデーションである領域において輝度変化による誤った動き検出が発生するので、上記判定の結果に応じて、誤り検出の有無の可能性を判定することができる。ステップS23の判定においてグラデーション状の画素値変化が検出されない場合には、ステップS25において、CPU10は、輝度変化による誤りの可能性はないと判定する。
【0052】
ステップS23の判定においてグラデーション状の画素値変化が検出された場合には、ステップS24において、CPU10は、輝度変化による誤りの可能性があると判定する。以上で処理を終了する。
【0053】
図7は、修正処理の効果を示す表である。231個の試験動画に対して、検知対象とすべき物体を人手で予め特定することにより正解データを作成しておき、この正解データと図5に示す処理による検出結果データとの一致度を計算した。この計算において、検出結果データと一致した正解データの数をTPCとし、検出結果データと一致しなかった正解データの数をFNとする。また正解データと一致した検出結果データの数をTPRとし、正解データと一致しなかった検出結果データの数をFPとする。なおここで「一致する」とは、正解データと検出結果データとのいずれかの出現時において、両者に重なり部分(重複領域)があることを意味する。
【0054】
認識精度の評価観点としては、以下の2つの性能指標を使用する。第1の性能指標である網羅率は、正解データを母集合としたときの正解率であり、全体の正解データのうちの何%に対して検出結果データが正しく出力されたのかを示す。この網羅率はTPC/(TPC+FN)により計算される。第2の性能指標である正報率は、検出結果データを母集合としたときの正解率であり、全体の検出結果データのうちの何%が正解データに一致するのかを示す。この正報率はTPR/(TPR+FP)により計算される。
【0055】
図7には、修正処理適用前の検出結果(図5のステップS11乃至S16による動き探索処理のみの検出結果)と修正処理適用後の検出結果(図5の全てのステップによる動き探索処理と修正処理とによる検出結果)とに対する網羅率と正報率とが示される。網羅率は、修正処理の適用前と適用後とで、殆ど変化はない。正報率は、修正処理の適用前の55.6%に対し、修正処理の適用後には78.1%に向上している。
【0056】
図8は、背景の動きの影響を取り除く処理の手順を示すフローチャートである。前述の図5のフローチャートに示す処理手順では、動き検出装置を搭載した車両が移動しており、撮像側の動きにより背景が一様に動いているような場合を想定していない。しかしながら、撮像側の動きによる背景の動きを考慮することにより図5に示すフローチャートを変形することで、撮像側が運動している場合にも修正処理を実行することが可能である。
【0057】
図8のステップS31において、CPU10が、画面全体のオプティカルフローを取得する。具体的には、例えば図5に示す手順のうちステップS11乃至S16をCPU10が実行することにより、オプティカルフローを計算してよい。
【0058】
図9は、背景の動きの影響を取り除く処理を説明するための図である。図9(a)に示されるフレーム画像51においては、物体50が動きベクトル52等で示される動きを示している一方で、撮像側の動きにより、背景が動きベクトル53で示されるように同一方向に同一速度で動いている。図8のステップS31の処理により、図9(a)に示されるようなオプティカルフローが検出される。
【0059】
図8のステップS32において、CPU10が背景の平均移動量を取得する。具体的には、ステップS31で求められた全ての画素の動きベクトルの平均をとり、それを背景の平均移動量としてよい。或いは、ステップS31で求められた全ての画素の動きベクトルの平均をとり、その平均動きベクトルから所定の閾値以上大きさ又は方向が異なる動きベクトルを排除し、残った動きベクトルの平均を再度とることにより、背景の平均移動量を求めてよい。また或いは、例えば車両に搭載されている速度計、ハンドル角、加速度センサ、角速度センサ等に基づいて車両の動きを推定し、その推定結果とステップS31で求められた動きベクトルとから、背景の平均移動量を求めてもよい。図9(b)は、フレーム画像51において計算された背景の平均移動量の一例を示す。
【0060】
ステップS33において、CPU10は、画面全体のオプティカルフローから背景の平均移動量に相当するオプティカルフローを差し引く。即ち、各画素について求められた動きベクトルから、背景の平均移動量を示す動きベクトルを減算する。図9(c)は、フレーム画像51において、背景の平均移動量に相当するオプティカルフローを差し引いた後に残るオプティカルフローの一例を示す。
【0061】
ステップS34において、CPU10は、背景の平均移動量を差し引いた後のオプティカルフローに基づいて、輝度変化による誤りである可能性を判定する。具体的には、背景の平均移動量を差し引いた後のオプティカルフローに基づいて、CPU10が、図5のステップS17に示される処理を実行してよい。その後、図5のステップS18乃至S22に示す処理を実行することで、適切な修正処理を実現することができる。
【0062】
上記説明したように、背景が一様に動いている場合には、背景の平均移動量を求め、求めた平均移動量を各画素のオプティカルフローから差し引くことで、背景の動きの影響をなくすことができる。代替的に、XY_CENTERが示す座標位置の代わりに、「XY_PREV+平均移動量」の座標位置を用いて、ステップS20及びS21の計算を実行してもよい。このようにして撮像側の動きに応じた背景の動きの影響を取り除くことにより、輝度変化の影響を受けない第2の評価関数を用いて最適解と対象物が静止している静止解とのうちの最適な方の解を選択することができる。
【0063】
図10乃至図12は、背景の動きの異なるパターンについて説明するための図である。図10(a)に示す例では、車両60が矢印61に示す方向に直進しており、動き検出装置に接続される撮像装置が撮像視野62で示される領域を撮像している。撮像視野62は、車両60が直進する方向とは垂直な方向に向いている。この場合、図10(b)に示されるように、画面全体が同一方向に略同一速度で移動するような動きが発生する。図9を参照して説明した方法と同様にして背景の平均移動量を計算することで、撮像側の動きに応じた背景の動きの影響を取り除くことができる。但し、撮像視野62内での物体までの距離に応じて移動速度が異なるので、画面全体を分割した小さな領域内での局所的な平均移動量を求めるなどの工夫をすることが望ましい。
【0064】
図11(a)に示す例では、車両60が矢印61に示す方向に直進しており、動き検出装置に接続される撮像装置が撮像視野63で示される領域を撮像している。撮像視野63は、車両60が直進する方向と同一の方向に向いている。この場合、図11(b)に示されるように、画面の中心から放射状に広がる動きベクトルが発生する。例えば車両に搭載されている速度計、ハンドル角、加速度センサ、角速度センサ等に基づいて車両の動きを推定し、その推定結果と画像から求めた動きベクトルとから、背景の各部分における撮像装置の動きに由来する移動量を求めてよい。このようにして求めた背景の移動量を計算することで、撮像側の動きに応じた背景の動きの影響を取り除くことができる。この場合も、撮像視野63内での物体までの距離に応じて移動速度が異なるので、画面全体を分割した小さな領域内での局所的な平均移動量を求めるなどの工夫をすることが望ましい。
【0065】
図12(a)に示す例では、車両60が矢印64に示すように右方向に曲がるように進行しており、動き検出装置に接続される撮像装置が撮像視野65で示される領域を撮像している。撮像視野65は、車両60が進行する方向よりも左側を向いている。この場合、図12(b)に示されるように、画面全体が左側に移動するが、移動方向及び移動距離は画面上の位置に依存する。例えば車両に搭載されている速度計、ハンドル角、加速度センサ、角速度センサ等に基づいて車両の動きを推定し、その推定結果と画像から求めた動きベクトルとから、背景の各部分における撮像装置の動きに由来する移動量を求めてよい。このようにして求めた背景の移動量を計算することで、撮像側の動きに応じた背景の動きの影響を取り除くことができる。この場合も、撮像視野65内での物体までの距離に応じて移動速度が異なるので、画面全体を分割した小さな領域内での局所的な平均移動量を求めるなどの工夫をすることが望ましい。
【0066】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【符号の説明】
【0067】
10 CPU
11 ROM
12 RAM
13 GPU
14 表示インタフェース
15 映像入力インターフェース
20 1つ前のフレーム画像データ
21 現在のフレーム画像データ
33 探索範囲
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12