オプティカルフロー検出装置及び検出方法
【課題】本発明は、マッチング探索処理中に無効フローを除去し、マッチング探索処理の処理時間の短縮を図ることを目的としている。
【解決手段】このため、オプティカルフロー検出装置において、マッチングスコア算出手段とマッチングスコア差分算出手段とマッチングスコア差分判定手段とフロー内積算出手段とフロー内積評価手段とを備え、マッチング探索時、差分がしきい値以下の時に、フロー内積算出手段により内積値を算出し、フロー内積評価手段により無効フロ一を除去する。また、オプティカルフロー検出方法において、現在画像の画像データと過去画像の画像データから前回と今回のマッチングスコアの差分を算出し、マッチング探索時、差分がしきい値以下の場合に、前回までのオプティカルフローと今回のオプティカルフローで内積値を算出し、内積値でオプティカルフローの方向性を判定して無効フローを除去する。
【解決手段】このため、オプティカルフロー検出装置において、マッチングスコア算出手段とマッチングスコア差分算出手段とマッチングスコア差分判定手段とフロー内積算出手段とフロー内積評価手段とを備え、マッチング探索時、差分がしきい値以下の時に、フロー内積算出手段により内積値を算出し、フロー内積評価手段により無効フロ一を除去する。また、オプティカルフロー検出方法において、現在画像の画像データと過去画像の画像データから前回と今回のマッチングスコアの差分を算出し、マッチング探索時、差分がしきい値以下の場合に、前回までのオプティカルフローと今回のオプティカルフローで内積値を算出し、内積値でオプティカルフローの方向性を判定して無効フローを除去する。
【発明の詳細な説明】
【技術分野】
【0001】
この発明はオプティカルフロー検出装置及び検出方法に係り、特に画像処理やカメラを使用した車両周囲確認技術、その他のロボットアイ等、マシンビジョンに基づく移動体検出技術に関するものである。
【背景技術】
【0002】
オプティカルフロー検出などの画像マッチング作業では、画像内の注目点1画素のみではなく、その周辺の濃度パターンを利用したブロックマッチング(「ウィンドウマッチング」と呼ばれることもある。)に代表されるarea-based matching処理が知られている。
ブロックマッチングでは濃度パターンの利用の仕方によって幾つかの種類があるが,一般に輝度差の絶対値を利用したSAD(Sum Absolute Difference)評価法や比較ブロック内の輝度平均値による調整を施し利用するNCC(Normalized Cross-Correlation)評価法等が使用される。
それぞれ手法等に特徴があるが,NCCはSADに比べてコントラスト変化などの影響を受けにくく、SADより優れた精度でオプティカルフローの検出を行なうことができるが計算量が大きいという性質を持っている。
ところが、路面や空等の背景に関してはブロック内に含まれる画像については、表示されるコントラスト成分が少なく、探索対象となるブロックの周辺について複数個所で一致する恐れが高い。
よって、背景とその他の対象物との区別のために検出したオプティカルフローについては、検出した一致度の大きさや、フローの向き・長さ等のマッチング処理結果から有効性や誤検出を判定しなければならない。
しかしながら、マッチング処理結果のみでは、正確なフローを判定するには材料不足となるケースが多く、ブロックマッチング処理とは別に正誤判別手法を行なうための前処理や後処理による追加対策が必要となる。
他に、ブロックマッチングでは、固有の課題として作業時に窓問題(aperture problem)による影響が発生するため、やはり追加の対策が必要となる。
例えば、事前に対象画像の画質を改善し外乱の影響を取り除くような前処理手段、閾値を探索条件に合わせて動的に調整する同時進行型の判定手段、異なるサイズのテンプレートを使用し多段分解能で判別する手段、あるいはSOBELフィルタ等の微分処理・Harris特徴量計算等の固有箇所抽出処理等を施す等、feature-based
matchingに類する処理と組み合わせた後処理判定手法、クラスタリング判定を組み合わせた後判定手法、データベースとの比較によるパターンマッチング判定などの後処理手法を組み合わせる技術等が様々な事例が報告されている。
しかしながら、これらはブロックマッチング処理とは独立した形態で追加されるケースが多く、ブロックマッチング処理を含めた総合判定結果を得るまでに時間が増大する傾向にあり、リアルタイム性を確保するには高度なスペックのシステム・演算回路等が要求される場合が多い。
よって、コスト面を含めハードウェア化・製品化には課題が多い。
いずれの場合にせよ、元々のマッチング性能が劣り誤検出数が増えれば、追加される後判定処理の負荷や計算コストの増大を招く。
よって、ブロックマッチング処理本体を改良し精度を上げる手段を提案する。
ハードウェア化を視野に入れ、従来のブロックマッチング手法に対して、できるだけシンプルな追加要素で外乱による影響への耐性を向上し、オプティカルフローの検出精度を向上できる手法を目指す。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2000−168442号公報
【特許文献2】特開2008−97126号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、従来のオプティカルフロー検出装置及び検出方法においては、マッチング性能の低い手法をそのまま移動体検出処理に応用するには、マッチング作業とは別に画質改善処理等の前処理、あるいは検出したオプティカルフロー(マッチング結果)の有効・無効判定に関する後処理の追加が必要である。
特に、後処理については、無効なフローが増すと、それだけ選別処理に時間が掛かる。
また、移動速度の大きな移動体検出作業で処理時間が嵩むと物体を画面上で連続して捕らえるのが困難となる。
よって、できるだけ計算負荷が軽く、余計な無効フローを検出することなく作業を行なう手法の改善が必要となる。
【0005】
ここで、従来手法を、図27のオプティカルフロー検出装置の制御用フローチャートに沿って説明する。
【0006】
このオプティカルフロー検出装置の手法を説明する制御用プログラムがスタート(201)すると、MxM個の指定オフセットテーブル(202b)から探索順位と該当オプティカルフローの序列を作成し、データテーブル化する(以下、「序列テーブル(202a)」という。)処理(202)に移行する。
この処理(202)の後には、スコアを記録する画像と同幅・高さのメモリを用意し、初期化する(以下、「スコアバッファ」という。)処理(203)に移行する。
そして、処理(203)の後には、フローを記録する画像と同幅・高さのメモリを用意し、初期化する(以下、「フローバッファ」という。)処理(204)に移行する。
この処理(204)の後に、作業開始の処理(205)を経て、画像IMG1取得の処理(206)、及び、画像IMG2取得の処理(207)を行い、前記序列テーブル(202a)の現位置はMxM個を超過したか否かの判断(208)に移行する。
この前記序列テーブル(202a)の現位置はMxM個を超過したか否かの判断(208)において、判断(208)がYESの場合には、オプティカルフロー決定の処理(209)に移行し、判断(208)がNOの場合には、前記序列テーブル(202a)よりN回目のシフト量[ΔiN、ΔjN]を取得する処理(210)に移行する。
上述のオプティカルフロー決定の処理(209)の後には、後処理(211)を行う。この後処理(211)においては、フローを基本とした装置機能を提供する。
そして、この後処理(211)の後には、画像IMG1と画像IMG2とをスワップ(交換)し、次の動画処理の準備を行う処理(212)に移行し、上述した画像IMG2取得の処理(207)に戻る。
また、上述した前記序列テーブル(202a)よりN回目のシフト量[ΔiN、ΔjN]を取得する処理(210)の後には、画像IMG2の原点を[ΔiN、ΔjN]分シフトする処理(213)に移行する。
この画像IMG2の原点を[ΔiN、ΔjN]分シフトする処理(213)の後には、画面全体、全ての画素を探索できたか否かの判断(214)に移行する。
この画面全体、全ての画素を探索できたか否かの判断(214)において、判断(214)がYESの場合には、上述した前記序列テーブル(202a)の現位置はMxM個を超過したか否かの判断(208)に戻り、判断(214)がNOの場合には、次のマッチング確認位置(検索中心)を画素[i、j]の指示点に設定する処理(215)に移行する。
そして、この次のマッチング確認位置(検索中心)を画素[i、j]の指示点に設定する処理(215)の後には、評価式はNCC・ZSAD等であるか否かの判断(216)に移行する。
この評価式はNCC・ZSAD等であるか否かの判断(216)において、判断(216)がYESの場合には、先に指示点[i、j]およびその周囲[i+u、j+v]の合計NxN個の画素についてブック内輝度平均値を求める処理(217)に移行し、その後に、指示点[i、j]およびその周囲[i+u、j+v]の合計NxN個の画素について評価式にそって一致度スコアを計算する処理(218)に移行する。
また、判断(216)がNOの場合には、そのまま指示点[i、j]およびその周囲[i+u、j+v]の合計NxN個の画素について評価式にそって一致度スコアを計算する処理(218)に移行する。
そして、この処理(218)の後には、計算した一致度スコアはスコアバッファの[i、j]位置に記録されたスコアよりも優れているか否かの判断(219)に移行する。
この判断(219)において、判断(219)がYESの場合には、スコアバッファの[i、j]位置へ先ほど計算した一致度スコアを記録する一方、同様に、フローバッファの[i、j]位置へシフト量[ΔiN、ΔjN]を記録する処理(220)を行った後に、上述した画面全体、全ての画素を探索できたか否かの判断(214)に戻る。
また、計算した一致度スコアはスコアバッファの[i、j]位置に記録されたスコアよりも優れているか否かの判断(219)がNOの場合には、そのまま画面全体、全ての画素を探索できたか否かの判断(214)に戻る。
【0007】
この発明の目的は、マッチング探索処理中に無効フローを除去し、マッチング探索処理の処理時間の短縮を図ることにある。
【課題を解決するための手段】
【0008】
そこで、この発明は、上述不都合を除去するために、ブロックマッチングにより過去画像と現在画像との2つの画像のオプティカルフローを検出するオプティカルフロー検出装置において、現在画像の画像データと過去画像の画像データとの間のマッチングスコアを算出するマッチングスコア算出手段と、このマッチングスコア算出手段により算出された前回のマッチングスコアと今回のマッチングスコアとの差分を算出するマッチングスコア差分算出手段と、このマッチングスコア差分算出手段により算出された差分が予め設定されたしきい値以下であるか否かを判定するマッチングスコア差分判定手段と、前回までのマッチング探索で一致判定された位置でのオプティカルフローと今回のマッチング探索で現在探索位置でのオプティカルフローとで内積値を算出するフロー内積算出手段と、このフロー内積算出手段により算出された内積値に基づいてオプティカルフローの方向性を判定して無効フローを除去するフロー内積評価手段とを備え、マッチング探索時に、前記マッチングスコア差分判定手段により差分がしきい値以下であると判定された時には、前記フロー内積算出手段により内積値を算出し、前記フロー内積評価手段により無効フロ一を除去することを特徴とする。
また、ブロックマッチングにより過去画像と現在画像との2つの画像のオプティカルフローを検出するオプティカルフロー検出方法において、現在画像の画像データと過去画像の画像データとの間のマッチングスコアを算出して前回のマッチングスコアと今回のマッチングスコアとの差分を算出し、マッチング探索時に、算出された差分が予め設定されたしきい値以下であるか否かを判定し、差分がしきい値以下であると判定された場合に、前回までのマッチング探索で一致判定された位置でのオプティカルフローと今回のマッチング探索で現在探索位置でのオプティカルフローとで内積値を算出し、この内積値に基づいてオプティカルフローの方向性を判定して無効フローを除去することを特徴とする。
【発明の効果】
【0009】
以上詳細に説明した如くこの発明によれば、マッチング探索処理中に無効フローを除去することができる。したがって、マッチング探索処理後に無効フローを除去する場合よりも処理時間を短縮することができる。
また、マッチングスコアの差分にしきい値を設定するため、照明(日照条件・陰)等の局所的な影響を除去することができる。
更に、マッチングスコアの差分に設定するしきい値を定数とすることができる。
更にまた、フロー内積評価により路面・背景等のコントラストの低い位置を判別し、無効なオプティカルフロー検出を回避することができる。また、繰り返しパターン(窓問題)の発生を軽減することができる。
また、従来のマッチング処理機能に適用することができる。
【図面の簡単な説明】
【0010】
【図1】図1はオプティカルフロー検出装置の手法を説明する制御用フローチャートである。(実施例)
【図2】図2はオプティカルフロー検出装置のシステム構成図である。(実施例)
【図3】図3はマッチング対象比較画像及び探索位置の例を示す図である。(実施例)
【図4】図4はブロックマッチングによるオプティカルフロー検出結果例と検出フロー方向識別色を示す図である。(実施例)
【図5】図5はブロックマッチングの探索対象となるブロック間隔0、5、10、15を示す図である。(実施例)
【図6】図6はSADの一致度閾値なし、300以上抽出、610以上抽出を示す図である。(実施例)
【図7】図7はノイズ付加前、一様ノイズ(元輝度+10)付加、一様ノイズ(元輝度−10)付加を示す図である。(実施例)
【図8】図8は付加する人工ノイズ(0〜+24ピクセル)、ブロックマッチング処理を示す図である。(実施例)
【図9】図9はFOE内積判定処理前とFOE内積判定処理後とを示す図である。(実施例)
【図10】図10は移動前及び移動後を示す図である。(実施例)
【図11】図11は道路白線の検出結果を示す図である。(実施例)
【図12】図12はFOE内積判定処理前とFOE内積判定処理後との歪補正画像に関するSAD処理結果を示す図である。(実施例)
【図13】図13は一致度閾値なし及び一致度閾値=0.9995以下抽出のNCCブロックマッチング結果を示す図である。(実施例)
【図14】図14はノイズ付加前、一様ノイズ(元輝度+10)付加、一様ノイズ(元輝度−10)付加を示す図である。(実施例)
【図15】図15は付加する人工ノイズ(0〜+24ピクセル)、ブロックマッチング処理を示す図である。(実施例)
【図16】図16は探索の優先順位に関する参考図である。(実施例)
【図17】図17は純フロー内積 閾値cos(15deg)及び簡易フロー内積による判定[純フロー内積 閾値cos(90deg)]を示す図である。(実施例)
【図18】図18は純フロー内積 閾値cos(120deg)を示す図である。(実施例)
【図19】図19はFOE内積判定実施後のCase(ケース)A〜Dを示す図である。(実施例)
【図20】図20は道路の点A〜Cを示す図である。(実施例)
【図21】図21は点Aにおける相関表を示す図である。(実施例)
【図22】図22は点Bにおける相関表を示す図である。(実施例)
【図23】図23は点Cにおける相関表を示す図である。(実施例)
【図24】図24はFOE内積判定処理前及びのFOE内積判定処理後のSADベースブロックマッチング結果を示す図である。(実施例)
【図25】図25は通常のFOE内積判定処理前及びのFOE内積判定処理後のNCCによるブロックマッチング結果(NCC一致度0.9995)を示す図である。(実施例)
【図26】図26は本提案を組み合わせたFOE内積判定処理前及びのFOE内積判定処理後のNCCによるブロックマッチング結果(NCC一致度0.0003)を示す図である。(実施例)
【図27】図27はこの発明の従来技術を示すオプティカルフロー検出装置の手法を説明する制御用フローチャートである。
【発明を実施するための形態】
【0011】
以下図面に基づいてこの発明の実施例を詳細に説明する。
【実施例】
【0012】
図1〜図26はこの発明の実施例を示すものである。
図2において、1はオプティカルフロー検出装置である。
このオプティカルフロー検出装置1は、ブロックマッチングにより過去画像と現在画像との2つの画像のオプティカルフローを検出するものである。
そして、前記オプティカルフロー検出装置1は、図2に示す如く、マッチングスコア算出の処理を行うマッチングスコア算出手段2と、マッチングスコア差分算出の処理を行うマッチングスコア差分算出手段3と、マッチングスコア差分判定の処理を行うマッチングスコア差分判定手段4と、フロー内積算出の処理を行うフロー内積算出手段5と、フロー内積評価の処理を行うフロー内積評価手段6とを備えている。
そして、前記マッチングスコア算出手段2は、現在画像の画像データと過去画像の画像データとの間のマッチングスコアを算出する。
前記マッチングスコア差分算出手段3は、前記マッチングスコア算出手段2により算出された前回のマッチングスコアと今回のマッチングスコアとの差分を算出する。
前記マッチングスコア差分判定手段4は、前記マッチングスコア差分算出手段3により算出された差分が予め設定されたしきい値以下であるか否かを判定する。
前記フロー内積算出手段5は、前回までのマッチング探索で一致判定された位置でのオプティカルフローと今回のマッチング探索で現在探索位置でのオプティカルフローとで内積値を算出する。
前記フロー内積評価手段6は、前記フロー内積算出手段5により算出された内積値に基づいてオプティカルフローの方向性を判定して無効フローを除去する。
【0013】
そして、前記オプティカルフロー検出装置1は、マッチング探索時に、前記マッチングスコア差分判定手段4により差分がしきい値以下であると判定された時には、前記フロー内積算出手段5により内積値を算出し、前記フロー内積評価手段6により無効フロ一を除去する構成を有している。
これにより、前記オプティカルフロー検出装置1は、マッチング探索処理中に無効フローを除去することができる。したがって、マッチング探索処理後に無効フローを除去する場合よりも処理時間を短縮することができる。
また、前記オプティカルフロー検出装置1は、マッチングスコアの差分にしきい値を設定するため、照明(日照条件・陰)等の局所的な影響を除去することができる。
更に、前記オプティカルフロー検出装置1は、マッチングスコアの差分に設定するしきい値を定数とすることができる。
更にまた、前記オプティカルフロー検出装置1は、フロー内積評価により路面・背景等のコントラストの低い位置を判別し、無効なオプティカルフロー検出を回避することができる。また、繰り返しパターン(窓問題)の発生を軽減することができる。
また、前記オプティカルフロー検出装置1は、従来のマッチング処理機能に適用することができる。
【0014】
また、前記フロー内積算出手段5は、前回までのマッチング探索で一致判定された位置でのオプティカルフローを[FwyΔi1、FwyΔj1]、今回のマッチング探索で現在探索位置でのオプティカルフローを[FwyΔi2、FwyΔj2]とすると、下記の数式
内積値=FwyΔi1・FwyΔi2+FwyΔj1・FwyΔj2
で示される簡易内積によって内積値を算出する構成を有している。
これにより、前記フロー内積算出手段5は、構成をシンプルにすることができ、FPGA等のハードウェアヘの実装に有利である。
また、前記フロー内積算出手段5は、高速に処理をすることが可能になる。
【0015】
更に、この発明は、ブロックマッチングにより過去画像と現在画像との2つの画像のオプティカルフローを検出するオプティカルフロー検出方法において、現在画像の画像データと過去画像の画像データとの間のマッチングスコアを算出して前回のマッチングスコアと今回のマッチングスコアとの差分を算出し、マッチング探索時に、算出された差分が予め設定されたしきい値以下であるか否かを判定し、差分がしきい値以下であると判定された場合に、前回までのマッチング探索で一致判定された位置でのオプティカルフローと今回のマッチング探索で現在探索位置でのオプティカルフローとで内積値を算出し、この内積値に基づいてオプティカルフローの方向性を判定して無効フローを除去するものである。
これにより、マッチング探索処理中に無効フローを除去することができる。したがって、マッチング探索処理後に無効フローを除去する場合よりも処理時間を短縮することができる。
また、マッチングスコアの差分にしきい値を設定するため、照明(日照条件・陰)等の局所的な影響を除去することができる。
更に、マッチングスコアの差分に設定するしきい値を定数とすることができる。
更にまた、フロー内積評価により路面・背景等のコントラストの低い位置を判別し、無効なオプティカルフロー検出を回避することができる。また、繰り返しパターン(窓問題)の発生を軽減することができる。
また、従来のマッチング処理機能に適用することができる。
【0016】
更にまた、この発明のオプティカルフロー検出方法は、前回までのマッチング探索で一致判定された位置でのオプティカルフローを[FwyΔi1、FwyΔj1]、今回のマッチング探索で現在探索位置でのオプティカルフローを[FWyΔi2、FwyΔj2]とすると、下記の数式
内積値=FwyΔi1・FwyΔi2+FwyΔj1・FwyΔj2
で示される簡易内積によって内積値を算出するものである。
これにより、構成をシンプルにすることができ、FPGA等のハードウェアヘの実装に有利である。
また、高速に処理をすることが可能になる。
【0017】
ここで、この発明におけるブロックマッチング手法の改良について説明する。
先ず、従来のブロックマッチング手法は、とりあえず指定した探索範囲を全て探索した後で、マッチング結果(「スコア」ともいう。)に対し、設定した閾値に基づく有効・無効判定を加えていた。
提案する手法では、従来の手続きを損なうことなくマッチング処理中に同時進行で無効なオプティカルフローを排除できるよう、探索過程でのマッチングスコアの変化量により起動するオプティカルフローの簡易的な内積評価に基づく方向性判定を組み合わせることで無効フロー除去の対応に当たる。
近年のオプティカルフロー検出手法は、LucasKanade法、HornSchunck法など時系列を考慮に入れた着目画素および近傍の輝度評価に基づく手法、さらにはShift法・Surf法など輝度分散値や多重解像度解析に基づく解釈を追加した手法がしばしば提案されているが、これらはSADブロックマッチング処理等の手法と比べ、よりソフトウェア的にオプティカルフロー解決ヘアプローチしているものと伺える。
本手法は、SADブロックマッチング等に従来のマッチング・オプティカルフロー検出手法から逸脱しない構成であるため、FPGA等基づくハードウェア的なオプティカルフロー解決手法に適用できる。
【0018】
マッチング処理に関する共通事項
ブロックマッチングで扱う画像は連続する動画であるが、今回はその一部を抜き出した2枚の画像を例に取り上げる。
(1)評価画像をIMG1(元画像=過去画像)、もう一つの評価画像をIMG2(現画像)とする。
(2)画像のサイズは幅W、高さHとする。
(3)評価するブロックの形状は円・四角形、その他の多角形等の任意形状を使用することができるが、今回は最も簡易的な正方形形状ブロックで手順を紹介する。
(4)ブロックの単位をN、探索する範囲をMとする。MとNで大きいほうをLとする。
画像の探索位置はブロック中心[X、Y]=[i、j]を基準に実行するものとする。
よって、画像全域を全て探索する場合、
Xは、L/2 ≦ i < W−L/2、
Yは、L/2 ≦ j < H−L/2
の範囲で計算を行なう。
(5)各探索はブロック中心[X、Y]=[i、j]から[X、Y]=[Δi、Δj]シフトした位置で一致度を評価して行なわれる。
結果、一致箇所と判断された位置について、ブロック中心[i、j]と一致箇所[i+Δi、j+Δj]をそれぞれ始点・終点とするオプティカルフローが検出される。
(6)以後、例に取りあげる参照図については、特に明記しない限り以下の条件でマッチング処理を行なった結果画面である。
(7)ブロックサイズ: 9x9サイズ (N=9)
探索範囲 : 15x15サイズ (M=15)
ブロック間隔 : 全画素 (ブロック間隔=0)
【0019】
ここで、参考として、一般的に使用される従来のSAD手法とNCC手法とについて紹介する。
一般的なSADブロックマッチング評価手法について
一般的に行なわれるSADブロックマッチングは、連続する過去と現在の2枚の画像について、まず、元画像の検査対象となる画素[i、j]を設定し、現在の画像で対応する画素[i、j]および周囲の画素[i+Δi、j+Δj]での輝度変化を絶対値差分(SAD)で計算評価して、物体の移動前の位置と移動後の位置を推定する手法である。
また、信頼性を確保するために、検査対象画素[i、j]の周囲の画素を含めたNxN個のブロック単位で画素の変化を計算し、ブロック内に映る物体の移動を1つの探索対象として推定するため、「ブロックマッチング」と呼称される。
ここでは、図3のマッチング対象比較画像及び探索位置の例を示す図を開示するとともに、図4のブロックマッチングによるオプティカルフロー検出結果例と検出フロー方向識別色を示す図を開示する。
ブロックマッチングの探索対象となるブロックの間隔は任意に設定可能である。
ここでは、図5のブロックマッチングの探索対象となるブロック間隔0、5、10、15を示す図を開示する。
【0020】
そして、ブロックマッチングに関する評価値を、以下の数式1のように表すことができる。
【数1】
ここで、Δi、Δjをそれぞれで
−M/2 ≦ Δi ≦ M/2
−M/2 ≦ Δj ≦ M/2
で変化させ、SAD(i+Δi、j+Δj)が最小となる位置をマッチング一致点、そのときのブロック中心[i、j]を始点、一致点[i+Δi、j+Δj]を終点として結ぶ直線が一般的にオプティカルフローと呼ばれるフローとなり、これは画面内の物体の移動方向・移動量を示唆する。
式からSADによるブロックマッチングの計算量はブロックサイズN、探索する範囲Mにて画索を参照する回数に比例することが伺える。
比較する2画像についてのブロック間NCC比較評価でNxN回および探索位置(オフセット位置での評価)でMxM回、計(NxM)2通りの計算が必要と考えられる。
【0021】
ブロックマッチング処理を行なえば、各検査対象に関する移動前後の位置の推定結果を得ることができるが、そのままでは路面・上空背景などの特徴量の少ない領域と移動を行なった物体の区別をつけることができない。
通常、これらはSAD評価値の下限に閾値を設けることで下図のように移動する物体と背景等を切り分けることができる。
図6のSADの一致度閾値なし、300以上抽出、610以上抽出を示す図を開示する。
【0022】
更に、移動方向が明らかである場合は、検出したオプティカルフローの長さや方向(角度)から、さらに有効なフローを選別することができる。
例えば、バックアイカメラで走行中の自車の後方を監視し、接近車を検出する装置などでは、特開2000−168442や特開2008−97126等で紹介されるように、無限遠点(「FOE」ともいう。)から対象オプティカルフロー始点を結ぶ方向とオプティカルフロー自体の方向を確認し、背景と接近物体を区別することができる。
【0023】
参考までに以下に記載する。
(1)ここでSAD評価を以下のように変形したものを「SSDブロックマッチング」と呼ぶ。
(2)その他、処理内容はSAD評価法と同等に取り扱うことが出来る。
(3)SSDは一般的にSADよりも輝度変化に関する感度が二乗で示される分大きく、使用する装置・環境等の場合によって通常のSADより有効なケースがある。
【0024】
【数2】
【0025】
SADブロックマッチング法の課題
課題(1)ノイズ・外乱の影響に関する耐性の低さ
通常、SADブロックマッチング検出処理から検出されたフローに関してSAD評価値の結果から判別するのが一般的である。
しかしながら、車両に搭載したカメラ等で外部周辺の確認を行なう装置など、システムの使用環境が屋外である場合、日照条件等の環境変化、路面からの反射光、また走行中であれば構造物の影などカメラの画像には外乱が加わり、画像全体あるいは局所領域に必ず輝度の変化が発生する。
また、これら外乱にはカメラの機械的・電気的なノイズがさらに加味される。
よって、背景と移動物体を切り分けるSAD評価の閾値は常に変動することを考慮しなければならない。
しかしながら、車両に搭載したカメラ等で外部映像を撮影する場合、使用環境の変化は不可避であるため、判別閾値を定数で設定することは非常に困難である。
よって、入力画像輝度の変化に応じて、画像補正を行う、あるいは閾値を動的に最適な値に切り替え調整する等の対応が必要であると考えられる。
しかしながら、多様な使用環境の変化に柔軟に対応できるアルゴリズムの開発・実装は非常に困難である。
同じ2枚の画像を比較する場合について、元の画像に人工的なノイズを付加した場合の結果を、図7に開示する。
仮に、前述の図のように外乱が画面全体に一様に分布する場合であれば、画像全体の輝度平均値やSAD評価の閾値を動的に使用することで対応できるが、図8のように外乱が局所的に分布する場合は対応困難である。
【0026】
課題(2)窓問題による繰り返しパターンの影響
先に紹介した無限遠点(「FOE」)から対象オプティカルフロー始点を結ぶ方向とオプティカルフロー自体の方向を確認し、背景と接近物体を区別する手法について、移動方向と平行な白線(道路区画線)、あるいは路肩の防音遮壁・建造物等の直線成分に関しては、ブロックマッチング固有の課題として窓問題(aperture problem)による影響でこの識別法が上手く機能できないケースが発生する。
つまり、接近方向と離反方向が図9の位置関係となる。
このようにそれぞれの配置が直線関係となる場合、一致度も類似する値となる。
よって、フローの向きでも一致度でも特定できない状態で誤検出されてしまう。
図10に移動前及び移動後を示す図を開示する。
直線成分を持つ対象上に位置するブロックでは、一致度スコアが同じ対応点が複数発生するため移動方向(フロー)の特定が困難である。
図11に道路白線の検出結果を示す図を開示する。
特開2008−97126のように歪を補正した画像に関してマッチング処理を行なう場合は、補正をしない画像上、曲線で映る道路白線などが補正されて直線成分が強調される。
よって、繰り返しパターンによる影響を、顕著に受ける恐れがある。
さらに、これら影響は、特開2008−97126、特開2000−168442のように検出したフローの集まりを評価単位とし、そのグループを示すサイズ等で物体を特定するような手法では、白線部に集中する誤検出の集まりが接近車両と誤判別される要因となりうる。
図12にFOE内積判定処理前とFOE内積判定処理後との歪補正画像に関するSAD処理結果を示す図を開示する。
【0027】
一般的なNCCブロックマッチング評価手法について
NCCブロックマッチングは、先にあげたSADブロックマッチングに関する「課題(1)ノイズ・外乱の影響に関する耐性の低さ」への対策として有効な手法の一つであると考えられる。
NCCブロックマッチングでは、検索対象となる画素およびその周囲の画素NxN個をNxN次元のベクトルとして取り扱う。
また、各ベクトルを長さで割り正規化することで、周辺の画素に対する外乱を含めた輝度変化をブロック内平均値で相殺することで外乱成分による影響を緩和することができる。
【0028】
NCCブロックマッチングに関する評価値を、数式3のように表すことができる。
【数3】
ここでΔi、Δjをそれぞれで
−M/2 ≦ Δi ≦ M/2
−M/2 ≦ Δj ≦ M/2
で変化させ、NCC(i+Δi、j+Δj)が最大となる位置をマッチング一致点、そのときのブロック中心[i、j]を始点、一致点[i+Δi、j+Δj]を終点として結ぶ直線がオプティカルフローと呼ばれるフローとなり、同様に画面内の物体の移動を示唆する。
さらにNCC評価ではN2ブロック内の画素についてN2次元のベクトルとして取り扱い、ブロックを構成するN2次元の単位ベクトル内積にて一致度評価を行なう。
よって、NCC評価値は、特に後述の「SAD評価課題(2)」の対策に有効な効果を得ることができる。
数式3から伺えるよう評価値の最大は1.0、最小値は−1.0となる。
【0029】
但し、ブロック内の輝度平均を毎回求めるための計算に関しては、ブロック内平均輝度計算のため、ブロック内参照回数が追加される。
オプティカルフロー検出のためには比較する2画像についての、それぞれのブロック内平均輝度の計算でNxN回、ブロック間NCC比較評価でNxN回および探索位置(オフセット位置での評価)でMxM回、計(2xN2xM2)通りの計算が必要と考えられる。
【0030】
NCCブロックマッチング処理を行なう場合でも、そのままでは路面・上空背景などの特徴量の少ない領域と移動を行なった物体の区別をつけることができない。
通常、これらはNCC評価値の上限に閾値を設けることで、図13のように移動する物体と背景等を切り分けることができる。
NCCの場合、先に紹介したように外乱の影響をブロック内輝度平均値による正規化効果で相殺できるので、SADに対して一様な外乱の場合でも、局所的な外乱の場合でも柔軟に対応できる。
ここで、図14のノイズ付加前、一様ノイズ(元輝度+10)付加、一様ノイズ(元輝度−10)付加を示す図を開示する。
NCCの場合、図15のように外乱が局所的に分布する場合でも柔軟に対応可能である。
【0031】
参考までに以下に記載する。
(1)ここでNCC評価法と同様、他にもZSADやZSSD等のブロック内輝度平均値を原点0と見立てて評価を行うマッチング法等が知られている。
(2)これら処理に関しても、ブロック内輝度平均の計算追加のため、オプティカルフロー検出のためには計(N×NXM)2通りの計算が必要と予測される。
(3)ZSADやZSSDの評価は、通常のSADと同様に、評価値が探索範囲内で最小となる位置を一致点として判断する。
【0032】
【数4】
【0033】
NCC手法に関する課題
課題(3)窓問題による繰り返しパターンの発生
先のSAD評価法の中で取り上げた課題であるが、ブロックマッチングをべ一スとする限り、NCCといえども窓問題の影響を緩和する能力は持ちえておらず、繰り返しパターンがその後のオプティカルフローに基づく処理に影響を与えるのであれば、そのまま、特開2008−97126等へ応用するのは困難である。
よって、白線検出など別途手段による後処理判定等、何らかの追加対策処理を組み合わせる必要がある。
【0034】
課題(4)NCCにおける計算コストの増大
NCCなどブロック内の輝度平均値をゼロベースと見立てた処理では、NxN回分の平均値計算が追加される。
さらに、平均化処理のために除算計算が必要となる。
通常、四則演算の回路処理の場合、除算計算は他の加・減・乗算に比べ数倍の計算を必要とするため、処理が遅くなる。
特に、NCCではマッチング探索1回につき、cosによる正規化評価を行なうため、さらに計算負荷の高い分母の√計算が必要となる。
NCCでは、cosによる正規化評価を行なうため一致度評価値は±1の範囲となる。
この範囲で精度良く作業を行なうには、浮動少数回路の導入あるいは有効桁数を調整し、大きな桁での整数計算が必要となるので、より高級な演算回路やメモリが必要となり、コストはSAD等と比較して増大する。
【0035】
提案処理について
前述まで例に挙げたとおり、外乱の影響に対する耐性を強化し精度を維持するためには、NCCブロックマッチング手法が有効であるが、演算回路・メモリ追加など計算コストの増大が懸念される。
よって、通常のブロックマッチング処理中に、平行して背景とその他オブジェクトを切り分ける処理を行なうことで、コストの増大を抑えノイズ耐性を強化したオプティカルフローの変則評価手法を提案する。
この処理の特徴を以降抜粋する。
評価は設定した探索範囲に対し、対象検査ブロックの中心より外側に向かい捜査を行なうスパイラル探索手順を基本にマッチング処理を実施する。
但し、探索順序には以下の規則を追加する。
(1)スパイラル探索に基づき下図のように中心[0]からの連番に対応した分、現画像の原点をシフトして元画像とのマッチング処理を行なう。
(2)探索の優先順位に関しては、参照図として図16を挙げる。
次に判別用に次の緒言について固定閾値を設定する。
(3)更新前の評価値と現行位置での評価値の差分闘値の設定。
マッチング探索処理については以下の手順で行なう。
(4)ブロック中心[i、j]画素から外側方向へ設定手順どおりの探索を開始する。
探索時にマッチング探索シフト量より発生するフローの長さが評価起動用フロー長より短い位置である場合は、従来と同じ評価手順で処理を行なう。
マッチング探索により発生するフローの長さが評価起動用フロー長を超える位置を超過する場合。
(5)前回の位置でのマッチング評価値と今回の評価値の差が大きく変動(差分閾値を超過)する場合、従来処理通りの手順で評価を行なう。
即ち、探索位置[Δi、Δj]=[Δi1、Δj1]で一致度が向上する場合は、オプティカルフロー[Fwxi、Fwyj]を[Fwxi、Fwyj]=[FwxΔi1、FwyΔj1]で更新し、あわせて保持している一致度評価値を更新する。
一致度が低下する場合は、次の探索位置[Δi、Δj]=[Δi3、Δj3]での評価に移行する。
【0036】
前回の位置でのマッチング評価値と今回の評価値の変動差が小さい(±で差分閾値以下)場合、前回の探索までに取得したフローと現在探索位置で発生するフローについて次の式によりフロー内角に関して内積評価法を行なう。
例えば、現時点の最一致箇所が[Δi、Δj]=[Δi1、Δj1]、探索中の地点が[Δi、Δj]=[Δi2、Δj2]である場合、
【数5】
あるいは、次式のように純フロー内積値による判定でも使用可能である。
【数6】
【0037】
※ 今提案の場合、計算コスト削減による高速化あるいはハードウェア化を主題とするので、フロー簡易内積による判定法を提案するものであるが、純フロー内積に関する解釈でも技術的に可能であるので紹介する。
また、純フロー内積判定闘値がcos(15〜90deg)の場合、それぞれの結果に関しては大きな違いは発生しない。
よって、フロー簡易内積評価でも要求精度を確保できると推定される。
ここで、図17の純フロー内積 閾値cos(15deg)及び簡易フロー内積による判定[純フロー内積 閾値cos(90deg)]を示す図を開示する。
また、図18の純フロー内積 閾値cos(120deg)を示す図を開示する。
【0038】
前式によりフロー簡易内積評価値が0以下(=フロー内角が90度以上)となる場合
(6)フローに関して・・・
検出したフロー[Fwxi●、Fwyj●]をX、Y方向それぞれの成分を(M+1)倍した、[(M+1)Fwxi●、(M+1)Fwyj●]で、探索中のフロー[Fwxi、Fwyj]を更新する。
※ 純内積評価で判定を行なう場合は、別途内積判別閾値の追加が必要である。
例:純フロー内積評価値が設定した閾値cos(30°)以下の場合は許可
(7)一致度に関して・・・
この[i、j]位置におけるマッチング評価値を差分評価値等の値を減算(NCCのときは加算)して、評価値を一致方向に向上するよう更新する。
※ M+1倍とするのは、[i、j]位置がフローの方向成分を変えずにフロー長さから無効箇所であることを判別できる設定であるため。
【0039】
以上の評価規則に沿って、基点[X、Y]=[i、j]を中心に探索範囲M2以内でマッチング処理を繰り返す。
全ての探索位置でマッチング処理を完了した場合、背景となる箇所については、以下の条件で判断し誤検出フローを除去する。
(8)上記の(7)に関する操作が適用され、フローの長さが探索範囲Mを超えるものは誤検出箇所と判断する。
(9)上記の(7)に関する操作が適用され、判定結果値が異常値(SADなら0以下、NCCなら1.0以上)となる位置は、誤検出箇所と判断する。
【0040】
[手順(6)以降に関する別解]
一致度差分評価値が、小さく向きが不ぞろいなフローが検出された[i、j]位置において、装置が検出したフロー[Fwxi、Fwyj]をM+1倍するだけのメモリを確保できない場合、画像と同じサイズの記録バッファを用意し、フラグを立てる。
フロー[Fwxi、Fwyj]は[Fwxi●、Fwyj●]で更新する。
つまり、フラグ用の記録バッファを利用することで、マッチング各段階での保持するフローの方向成分を失うことなく次回のフロー内積判定に利用できる。
次点以降のマッチング処理に際し、手順(5)による大幅な一致度評価値更新があった場合、従来処理通りの手順でフローとスコア値の更新を行なうと共に、フラグをリセットする。
本手法を実践する場合、ブロックマッチングの探索順序をスパイラル探索に基づきブロック中心から次第に外へと進めていく手法が好ましい。
これは、検出する順位をブロック中心に隔てなく変化させ発生するフロー方向を常に変化させることで、変化の探索順位の拘束条件に基づく誤検出を回避できるためである。
一般的に行なわれるよう、ブロックの探索を左上から右下へと探索を行なう場合、探索方向が偏ってしまい柔軟に周囲の検出フローの評価を行なう際の支障となる場合が考えられるためである。
以下の参照図である図19のように、いずれの場合もスパイラル探索の有効性が確認できる。
【0041】
提案特許の効果にする解説
(1)フローの内積差分判断について
通常、オプティカルフロー検出処理から検出されたフローに関して検出フローの精度を判定する場合、検出したマッチング一致度の結果に閾値を設定し判別するのが一般的である。
しかしながら、車両に搭載したカメラ等で外部周辺の確認を行なう装置など、システムの使用環境が屋外である場合、日照条件等の環境変化、路面からの反射光、また走行中であれば構造物の影などカメラの画像には外乱が加わり、画像全体あるいは局所領域に必ず輝度の変化が発生する。
また、これら外乱にはカメラの機械的・電気的なノイズがさらに加味される。
路面等、背景には関しては形状の判別ができないため、対象ブロック周辺で複数の一致度の類似箇所が発生する。
これら類似箇所は設定するブロックのサイズにもよるが、通常以下のような状態で発生すること
が伺える。
ここで、図20の道路の点A〜Cを示す図を開示する。
上図についてシフト(オプティカルフロー)位置と対応した検出したSAD一致度を、以下の図21〜図23に点A〜Cまでの相関表で示す。
【0042】
通常のブロックマッチングではまず指定された点を中心にNxNのサイズの中で該当評価計算式に沿い一致度を算出する。
次に、画像原点をシフトした現画像と元画像を比較し、同様にスコアを計算する。
より一致度が高い箇所が検出された場合、シフト量を記録更新する。
処理を探索範囲MxMの中で繰り返し実行し、最も一致度を指すシフト量をオプティカルフローとして取り扱う。
しかしながら、前述の点B、点Cのような箇所については、例え一致度が優れていても、その値が他のシフト位置より突出していない。
他にも類似するスコアを持つ位置が多数存在する。
このような状態で取得したオプティカルフローからは要求される信頼性を確保できない。
【0043】
よって、本手法では、類似する一致度同士の差は小さいことを利用し、一致度と検出された一致度を比較計算する際の差分値に対して閾値条件を設定する。
一致度の差分値が閾値以下となる箇所が確認された場合、その該当位置で検出されたフローA(元シフト量)と、直前までのシフト位置で計測したフローB(現シフト量)による一致度スコアを確認する。
差分値を確認し一致度スコアが大きく改善している場合は、そのまま従来どおりの処理を進める。
さらに一致度スコアの更新量が小さい場合は、フローA/B同士について(簡易)内積評価を起動し、ブロック周辺のフロー方向の内積を評価する手法を組み合わせる。
【0044】
内積が不一致と判別された場合は、フロー情報をM+1倍しオーバーフローが発生した箇所として、フローの方向性を維持したまま、背景と疑わしい箇所と識別できる状態とする(あるいは、記録フラグを立てる。)。
また、一致度が大幅に改善された場合は、保持しているフローを通常の値に更新し、オーバーフローの情報をリセットすることで再び移動体の検出を行なう状態に復旧する。
【0045】
特徴量の豊かなブロック位置では、静止であろうと移動であろうと類似する一致度が発生する箇所は、周囲の一致度と比較し非常にユニークで限定的なスコアを発するので、通常のSAD処理等でも信頼性の高いフローを取得することができる。
標準的な特徴量しか持ち合わせないブロック位置でも移動する物体を示すブロックでは、移動に沿った方向に沿って他の方向より優れた一致度を持つ傾向となり、結果、向きのほぼ揃ったフローを発する確率が高い。
よって、フローの内積評価を繰り返すことで検出されるフローは、次第に他の方向を向くフローを排除しながら、同じ移動方向に沿ったフロー同士による一致度の選抜評価を行なう方向へ機能していく。
また、路面・背景等に関しては周辺で類似する一致度を持つが方向が異なるフローが複数回検出されるため、次第に保持するフローがオーバーフロー情報を保持する傾向へ移行する。
これは特徴量に乏しいブロック位置でも同様に機能する。
【0046】
本手法によれば、フローを各探索位置での評価毎に評価するため、対象ブロック近傍のフローに関して、「同程度の一致度を持ち」、「同一方向を示すフローが集まっているか」どうかの判定を通常のブロックマッチング処理に加えて並行して実施することができ、特別な前処理や後処理を必要としないため、より高速に効率良く信頼性の低いフローを結果出力から排除することができる。
よって、点Aにて発生するフローは許可し、点B/Cに発生するフローを排除できる。
【0047】
特に、簡易内積評価にてフロー内積を90度以上の直・鈍角か90度未満の鋭角かの2値で判定し、鋭角側のフロー群を有効評価可能としたグループ単位で内積変化を評価するならば、NCC等で求められる除算処理・正規化処理等が不要であり、加減乗算の組み合わせのみで対応できるので、FPGA等のハードウェア化に適する手法と判断できる。
【0048】
(2)フローの内積差分判断を一致度差分にて起動する手法について
さらに本手法は、一致度の差分評価値を評価基準の主体とするため特にSADやSSDべ一スのブロックマッチングのように日照条件等の環境・機械的電気的ノイズ等の外乱による局所領域の輝度変化に対して検出精度が低下する事例に関して非常に有効な手段であると考えられる。
つまり、外乱により局所領域的に輝度変化が発生した際、影響は周囲全てのマッチング探索位置に均等に影響することを考慮すれば、その評価を各ブロック単位での一致度差分として扱うことで、外乱による輝度変化の影響を回避可能であり、ブロックサイズNに比例した固定の差分閾値で安定した評価を実現することができる。
また、ブロックマッチング作業時に生じる窓問題に関しても、逆向きに一致するフローの評価により若干の改善効果を得ることができる。
【0049】
以下にマッチング処理の際に内部機能する効果を例にとり、本提案手法による有効性を示す。
ノイズがない場合のSAD評価
【数7】
例えば、閾値ThrSADより低い箇所を背景と判別する場合を取り上げる。
次画像IMG2にΔεの外乱の影響が入った場合のSAD(今回は探索範囲内MxM内で均等ノイズとする)
【数8】
SAD(i+Δi、j+Δj)に関して外乱により発生したεN2の値が、閾値ThrSADより大きい場合、この探索位置は背景ではなく、対象であると判別される。
通常閾値の値ThrSADを設定する際は、余裕度を持って設定しなければならないが、検出精度を確保しようと試みる場合、閾値の幅をあまりに広く設定する方法は好ましくない。
代理の手段としてはεN2の影響を画質改善IMG2から除去する、あるいはεN2の大きさを確認してThrSADを動的に調整しなければならないが、例えば、εN2が局所領域的に発生する場合、εN2の影響を受ける探索位置に応じて、これらの補正処理を切り替える作業は非常に負担の大きな処理となりかねない。
次画像IMG2にΔεの外乱の影響が入った場合のNCC(同様に探索範内MxM内で均等ノイズとする)
先の記述に沿って外乱εが探索範囲内のブロックに影響すると考えた場合、εN2による次画像IMG2で探索範囲内ブロックが受ける影響はブロック内輝度平均による調整項の差分で回避できる。
【数9】
【0050】
本提案の場合
例えば、閾値ThrSUDより低い箇所を類似一致箇所と判別する場合を取り上げる。
【数10】
本提案の場合、差分による評価を行なうため、周囲のブロックに対する外乱εN2の影響は相殺されるので、固定の閾値でも判別処理が可能である。
よって、マッチング探索ごとにThrSUDの評価を行い、一致度スコアが類似であると判別されるたびにフロー方向を参照し、向きが相反するフローが検出された場合を背景としてチェックしていけば、結果的に類似方向を示す対象、すなわち特徴量を持つ物体だけを移動物体として背景等、他の要素と分類して抽出することができる。
【0051】
(3)繰り返しパターンによる影響の軽減効果
例えば、FOEとフロー始点を結ぶ直線と検出したフローの内積による接近物体の識別について、道路白線部などに繰り返しパターンにより接近・離反の方向検出が困難な誤検出が発生することを取りあげた。
さらに、この状態における接近と離反の相反するフローを示す該当探索箇所では、一致度が近いことも記した。
本手法では、一致度が近い故にこのような状況の探索箇所の存在がフローの内積評価で明らかとなる。
よって、繰り返しパターンの軽減に効果を与える。
例えば、特開2000−168442、特開2008−97126等のように密集して発生するフロー1群を単位とし、近傍のフローグループの集まりの大きさで接近物体の存在を確認する処理に併用すれば、白線箇所で密集する誤検出の集まりが小さくなる、あるいは細分化されるため、より精度の高い接近物体検出効果を得ることができる。
例えば、このような状況は効果説明(1)の点C項に該当するものと考えることができる。
ここで、図24のFOE内積判定処理前及びのFOE内積判定処理後のSADベースブロックマッチング結果を示す図を開示する。
【0052】
(4)多様なブロックマッチングへの応用
本手法は、特別な前処理・後処理をブロックマッチングに追加するのではなく、マッチング途中の処理段階でそれぞれの処理に並行するよう組み合わせて使用できる。
よって、用途はSADのみではなく、SSD・NCC等の他のブロックマッチング処理についても有効である。
例えば、図25及び図26の例では、白線位置に発生する繰り返しパターンによる誤検出の減少効果を得ることができる。
【0053】
次に、図1の前記オプティカルフロー検出装置1の制御用フローチャートに沿って作用を説明する。
【0054】
このオプティカルフロー検出装置1の制御用プログラムがスタート(101)すると、MxM個の指定オフセットテーブル(102b)から探索順位と該当オプティカルフローの序列を作成し、データテーブル化する(以下、「序列テーブル(102a)」という。)処理(102)に移行する。
この処理(102)の後には、スコアを記録する画像と同幅・高さのメモリを用意し、初期化する(以下、「スコアバッファ」という。)処理(103)に移行する。
そして、処理(103)の後には、フローを記録する画像と同幅・高さのメモリを用意し、初期化する(以下、「フローバッファ」という。)処理(104)に移行する。
この処理(104)の後に、作業開始の処理(105)を経て、画像IMG1取得の処理(106)、及び、画像IMG2取得の処理(107)を行い、前記序列テーブル(102a)の現位置はMxM個を超過したか否かの判断(108)に移行する。
この前記序列テーブル(102a)の現位置はMxM個を超過したか否かの判断(108)において、判断(108)がYESの場合には、オプティカルフロー決定の処理(109)に移行し、判断(108)がNOの場合には、前記序列テーブル(102a)よりN回目のシフト量[ΔiN、ΔjN]を取得する処理(110)に移行する。
上述のオプティカルフロー決定の処理(109)の後には、後処理(111)を行う。この後処理(111)においては、フローを基本とした装置機能を提供する。
そして、この後処理(111)の後には、画像IMG1と画像IMG2とをスワップ(交換)し、次の動画処理の準備を行う処理(112)に移行し、上述した画像IMG2取得の処理(107)に戻る。
また、上述した前記序列テーブル(102a)よりN回目のシフト量[ΔiN、ΔjN]を取得する処理(110)の後には、画像IMG2の原点を[ΔiN、ΔjN]分シフトする処理(113)に移行する。
この画像IMG2の原点を[ΔiN、ΔjN]分シフトする処理(113)の後には、画面全体、全ての画素を探索できたか否かの判断(114)に移行する。
この画面全体、全ての画素を探索できたか否かの判断(114)において、判断(114)がYESの場合には、上述した前記序列テーブル(102a)の現位置はMxM個を超過したか否かの判断(108)に戻り、判断(114)がNOの場合には、次のマッチング確認位置(検索中心)を画素[i、j]の指示点に設定する処理(115)に移行する。
そして、この次のマッチング確認位置(検索中心)を画素[i、j]の指示点に設定する処理(115)の後には、評価式はNCC・ZSAD等であるか否かの判断(116)に移行する。
この評価式はNCC・ZSAD等であるか否かの判断(116)において、判断(116)がYESの場合には、先に指示点[i、j]およびその周囲[i+u、j+v]の合計NxN個の画素についてブック内輝度平均値を求める処理(117)に移行し、その後に、指示点[i、j]およびその周囲[i+u、j+v]の合計NxN個の画素について評価式にそって一致度スコアを計算する処理(118)に移行する。
また、判断(116)がNOの場合には、そのまま指示点[i、j]およびその周囲[i+u、j+v]の合計NxN個の画素について評価式にそって一致度スコアを計算する処理(118)に移行する。
そして、この処理(118)の後には、計算した一致度スコアはスコアバッファの[i、j]位置に記録されたスコアと差分値(「絶対値」)を計算する処理(119)に移行する。
この処理(119)の後には、一致度スコアの差分値は大きく変化しているか否かの判断(120)に移行する。
この一致度スコアの差分値は大きく変化しているか否かの判断(120)において、判断(120)がYESの場合には、計算した一致度スコアはスコアバッファの[i、j]位置に記録されたスコアよりも優れているか否かの判断(121)に移行し、判断(120)がNOの場合には、現在のフロー[Δi、Δj]とフローバッファ[i、j]の記録値でフローの内積評価を行う処理(122)に移行する。
そして、この処理(122)の後には、フローの内積評価によりそれぞれのフローの内角の差は、条件を満たすか否かの判断(123)に移行する。
このフローの内積評価によりそれぞれのフローの内角の差は、条件を満たすか否かの判断(123)において、判断(123)がYESの場合には、上述した計算した一致度スコアはスコアバッファの[i、j]位置に記録されたスコアよりも優れているか否かの判断(121)に移行する一方、判断(123)がNOの場合には、以下の処理(124)を行った後に、上述した画面全体、全ての画素を探索できたか否かの判断(114)に戻る。
ここで、処理(124)の内容を列記する。
(1)フローバッファ[i、j]へ[(M+1)Δi、(M+1)Δj]の値を記録する。
(2)スコアバッファの[i、j]位置に記録されたスコアをより厳しい方向へ更新する。
(例えば、SADであれば、半分にする等)
※ 別解を使用するならば、
(1)フローバッファ[i、j]への登録値は[Δi、Δj]で行う。
(2)画像と同サイズのフラグバッファを用意し、フラグバッファ[i、j]の内角違反を記録する。
そして、上述した計算した一致度スコアはスコアバッファの[i、j]位置に記録されたスコアよりも優れているか否かの判断(121)において、判断(121)がYESの場合には、スコアバッファの[i、j]位置へ先ほど計算した一致度スコアを記録する一方、同様に、フローバッファの[i、j]位置へシフト量[ΔiN、ΔjN]を記録する処理(125)を行った後に、別解を使用しているならば、フラグバッファ[i、j]の内角違反をクリアする処理(126)を行い、その後に、上述した画面全体、全ての画素を探索できたか否かの判断(114)に戻る。
また、計算した一致度スコアはスコアバッファの[i、j]位置に記録されたスコアよりも優れているか否かの判断(121)がNOの場合には、そのまま画面全体、全ての画素を探索できたか否かの判断(114)に戻る。
【0055】
なお、この発明は上述実施例に限定されるものではなく、種々の応用改変が可能である。
【0056】
例えば、この発明の実施例においては、車両の周辺の移動障害物の危険度判定等の自動支援技術や、その他のロボットアイ等、マシンビジョンに基づく移動体検出技術などに応用することが可能である。
【符号の説明】
【0057】
1 オプティカルフロー検出装置
2 マッチングスコア算出手段
3 マッチングスコア差分算出手段
4 マッチングスコア差分判定手段
5 フロー内積算出手段
6 フロー内積評価手段
【技術分野】
【0001】
この発明はオプティカルフロー検出装置及び検出方法に係り、特に画像処理やカメラを使用した車両周囲確認技術、その他のロボットアイ等、マシンビジョンに基づく移動体検出技術に関するものである。
【背景技術】
【0002】
オプティカルフロー検出などの画像マッチング作業では、画像内の注目点1画素のみではなく、その周辺の濃度パターンを利用したブロックマッチング(「ウィンドウマッチング」と呼ばれることもある。)に代表されるarea-based matching処理が知られている。
ブロックマッチングでは濃度パターンの利用の仕方によって幾つかの種類があるが,一般に輝度差の絶対値を利用したSAD(Sum Absolute Difference)評価法や比較ブロック内の輝度平均値による調整を施し利用するNCC(Normalized Cross-Correlation)評価法等が使用される。
それぞれ手法等に特徴があるが,NCCはSADに比べてコントラスト変化などの影響を受けにくく、SADより優れた精度でオプティカルフローの検出を行なうことができるが計算量が大きいという性質を持っている。
ところが、路面や空等の背景に関してはブロック内に含まれる画像については、表示されるコントラスト成分が少なく、探索対象となるブロックの周辺について複数個所で一致する恐れが高い。
よって、背景とその他の対象物との区別のために検出したオプティカルフローについては、検出した一致度の大きさや、フローの向き・長さ等のマッチング処理結果から有効性や誤検出を判定しなければならない。
しかしながら、マッチング処理結果のみでは、正確なフローを判定するには材料不足となるケースが多く、ブロックマッチング処理とは別に正誤判別手法を行なうための前処理や後処理による追加対策が必要となる。
他に、ブロックマッチングでは、固有の課題として作業時に窓問題(aperture problem)による影響が発生するため、やはり追加の対策が必要となる。
例えば、事前に対象画像の画質を改善し外乱の影響を取り除くような前処理手段、閾値を探索条件に合わせて動的に調整する同時進行型の判定手段、異なるサイズのテンプレートを使用し多段分解能で判別する手段、あるいはSOBELフィルタ等の微分処理・Harris特徴量計算等の固有箇所抽出処理等を施す等、feature-based
matchingに類する処理と組み合わせた後処理判定手法、クラスタリング判定を組み合わせた後判定手法、データベースとの比較によるパターンマッチング判定などの後処理手法を組み合わせる技術等が様々な事例が報告されている。
しかしながら、これらはブロックマッチング処理とは独立した形態で追加されるケースが多く、ブロックマッチング処理を含めた総合判定結果を得るまでに時間が増大する傾向にあり、リアルタイム性を確保するには高度なスペックのシステム・演算回路等が要求される場合が多い。
よって、コスト面を含めハードウェア化・製品化には課題が多い。
いずれの場合にせよ、元々のマッチング性能が劣り誤検出数が増えれば、追加される後判定処理の負荷や計算コストの増大を招く。
よって、ブロックマッチング処理本体を改良し精度を上げる手段を提案する。
ハードウェア化を視野に入れ、従来のブロックマッチング手法に対して、できるだけシンプルな追加要素で外乱による影響への耐性を向上し、オプティカルフローの検出精度を向上できる手法を目指す。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2000−168442号公報
【特許文献2】特開2008−97126号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、従来のオプティカルフロー検出装置及び検出方法においては、マッチング性能の低い手法をそのまま移動体検出処理に応用するには、マッチング作業とは別に画質改善処理等の前処理、あるいは検出したオプティカルフロー(マッチング結果)の有効・無効判定に関する後処理の追加が必要である。
特に、後処理については、無効なフローが増すと、それだけ選別処理に時間が掛かる。
また、移動速度の大きな移動体検出作業で処理時間が嵩むと物体を画面上で連続して捕らえるのが困難となる。
よって、できるだけ計算負荷が軽く、余計な無効フローを検出することなく作業を行なう手法の改善が必要となる。
【0005】
ここで、従来手法を、図27のオプティカルフロー検出装置の制御用フローチャートに沿って説明する。
【0006】
このオプティカルフロー検出装置の手法を説明する制御用プログラムがスタート(201)すると、MxM個の指定オフセットテーブル(202b)から探索順位と該当オプティカルフローの序列を作成し、データテーブル化する(以下、「序列テーブル(202a)」という。)処理(202)に移行する。
この処理(202)の後には、スコアを記録する画像と同幅・高さのメモリを用意し、初期化する(以下、「スコアバッファ」という。)処理(203)に移行する。
そして、処理(203)の後には、フローを記録する画像と同幅・高さのメモリを用意し、初期化する(以下、「フローバッファ」という。)処理(204)に移行する。
この処理(204)の後に、作業開始の処理(205)を経て、画像IMG1取得の処理(206)、及び、画像IMG2取得の処理(207)を行い、前記序列テーブル(202a)の現位置はMxM個を超過したか否かの判断(208)に移行する。
この前記序列テーブル(202a)の現位置はMxM個を超過したか否かの判断(208)において、判断(208)がYESの場合には、オプティカルフロー決定の処理(209)に移行し、判断(208)がNOの場合には、前記序列テーブル(202a)よりN回目のシフト量[ΔiN、ΔjN]を取得する処理(210)に移行する。
上述のオプティカルフロー決定の処理(209)の後には、後処理(211)を行う。この後処理(211)においては、フローを基本とした装置機能を提供する。
そして、この後処理(211)の後には、画像IMG1と画像IMG2とをスワップ(交換)し、次の動画処理の準備を行う処理(212)に移行し、上述した画像IMG2取得の処理(207)に戻る。
また、上述した前記序列テーブル(202a)よりN回目のシフト量[ΔiN、ΔjN]を取得する処理(210)の後には、画像IMG2の原点を[ΔiN、ΔjN]分シフトする処理(213)に移行する。
この画像IMG2の原点を[ΔiN、ΔjN]分シフトする処理(213)の後には、画面全体、全ての画素を探索できたか否かの判断(214)に移行する。
この画面全体、全ての画素を探索できたか否かの判断(214)において、判断(214)がYESの場合には、上述した前記序列テーブル(202a)の現位置はMxM個を超過したか否かの判断(208)に戻り、判断(214)がNOの場合には、次のマッチング確認位置(検索中心)を画素[i、j]の指示点に設定する処理(215)に移行する。
そして、この次のマッチング確認位置(検索中心)を画素[i、j]の指示点に設定する処理(215)の後には、評価式はNCC・ZSAD等であるか否かの判断(216)に移行する。
この評価式はNCC・ZSAD等であるか否かの判断(216)において、判断(216)がYESの場合には、先に指示点[i、j]およびその周囲[i+u、j+v]の合計NxN個の画素についてブック内輝度平均値を求める処理(217)に移行し、その後に、指示点[i、j]およびその周囲[i+u、j+v]の合計NxN個の画素について評価式にそって一致度スコアを計算する処理(218)に移行する。
また、判断(216)がNOの場合には、そのまま指示点[i、j]およびその周囲[i+u、j+v]の合計NxN個の画素について評価式にそって一致度スコアを計算する処理(218)に移行する。
そして、この処理(218)の後には、計算した一致度スコアはスコアバッファの[i、j]位置に記録されたスコアよりも優れているか否かの判断(219)に移行する。
この判断(219)において、判断(219)がYESの場合には、スコアバッファの[i、j]位置へ先ほど計算した一致度スコアを記録する一方、同様に、フローバッファの[i、j]位置へシフト量[ΔiN、ΔjN]を記録する処理(220)を行った後に、上述した画面全体、全ての画素を探索できたか否かの判断(214)に戻る。
また、計算した一致度スコアはスコアバッファの[i、j]位置に記録されたスコアよりも優れているか否かの判断(219)がNOの場合には、そのまま画面全体、全ての画素を探索できたか否かの判断(214)に戻る。
【0007】
この発明の目的は、マッチング探索処理中に無効フローを除去し、マッチング探索処理の処理時間の短縮を図ることにある。
【課題を解決するための手段】
【0008】
そこで、この発明は、上述不都合を除去するために、ブロックマッチングにより過去画像と現在画像との2つの画像のオプティカルフローを検出するオプティカルフロー検出装置において、現在画像の画像データと過去画像の画像データとの間のマッチングスコアを算出するマッチングスコア算出手段と、このマッチングスコア算出手段により算出された前回のマッチングスコアと今回のマッチングスコアとの差分を算出するマッチングスコア差分算出手段と、このマッチングスコア差分算出手段により算出された差分が予め設定されたしきい値以下であるか否かを判定するマッチングスコア差分判定手段と、前回までのマッチング探索で一致判定された位置でのオプティカルフローと今回のマッチング探索で現在探索位置でのオプティカルフローとで内積値を算出するフロー内積算出手段と、このフロー内積算出手段により算出された内積値に基づいてオプティカルフローの方向性を判定して無効フローを除去するフロー内積評価手段とを備え、マッチング探索時に、前記マッチングスコア差分判定手段により差分がしきい値以下であると判定された時には、前記フロー内積算出手段により内積値を算出し、前記フロー内積評価手段により無効フロ一を除去することを特徴とする。
また、ブロックマッチングにより過去画像と現在画像との2つの画像のオプティカルフローを検出するオプティカルフロー検出方法において、現在画像の画像データと過去画像の画像データとの間のマッチングスコアを算出して前回のマッチングスコアと今回のマッチングスコアとの差分を算出し、マッチング探索時に、算出された差分が予め設定されたしきい値以下であるか否かを判定し、差分がしきい値以下であると判定された場合に、前回までのマッチング探索で一致判定された位置でのオプティカルフローと今回のマッチング探索で現在探索位置でのオプティカルフローとで内積値を算出し、この内積値に基づいてオプティカルフローの方向性を判定して無効フローを除去することを特徴とする。
【発明の効果】
【0009】
以上詳細に説明した如くこの発明によれば、マッチング探索処理中に無効フローを除去することができる。したがって、マッチング探索処理後に無効フローを除去する場合よりも処理時間を短縮することができる。
また、マッチングスコアの差分にしきい値を設定するため、照明(日照条件・陰)等の局所的な影響を除去することができる。
更に、マッチングスコアの差分に設定するしきい値を定数とすることができる。
更にまた、フロー内積評価により路面・背景等のコントラストの低い位置を判別し、無効なオプティカルフロー検出を回避することができる。また、繰り返しパターン(窓問題)の発生を軽減することができる。
また、従来のマッチング処理機能に適用することができる。
【図面の簡単な説明】
【0010】
【図1】図1はオプティカルフロー検出装置の手法を説明する制御用フローチャートである。(実施例)
【図2】図2はオプティカルフロー検出装置のシステム構成図である。(実施例)
【図3】図3はマッチング対象比較画像及び探索位置の例を示す図である。(実施例)
【図4】図4はブロックマッチングによるオプティカルフロー検出結果例と検出フロー方向識別色を示す図である。(実施例)
【図5】図5はブロックマッチングの探索対象となるブロック間隔0、5、10、15を示す図である。(実施例)
【図6】図6はSADの一致度閾値なし、300以上抽出、610以上抽出を示す図である。(実施例)
【図7】図7はノイズ付加前、一様ノイズ(元輝度+10)付加、一様ノイズ(元輝度−10)付加を示す図である。(実施例)
【図8】図8は付加する人工ノイズ(0〜+24ピクセル)、ブロックマッチング処理を示す図である。(実施例)
【図9】図9はFOE内積判定処理前とFOE内積判定処理後とを示す図である。(実施例)
【図10】図10は移動前及び移動後を示す図である。(実施例)
【図11】図11は道路白線の検出結果を示す図である。(実施例)
【図12】図12はFOE内積判定処理前とFOE内積判定処理後との歪補正画像に関するSAD処理結果を示す図である。(実施例)
【図13】図13は一致度閾値なし及び一致度閾値=0.9995以下抽出のNCCブロックマッチング結果を示す図である。(実施例)
【図14】図14はノイズ付加前、一様ノイズ(元輝度+10)付加、一様ノイズ(元輝度−10)付加を示す図である。(実施例)
【図15】図15は付加する人工ノイズ(0〜+24ピクセル)、ブロックマッチング処理を示す図である。(実施例)
【図16】図16は探索の優先順位に関する参考図である。(実施例)
【図17】図17は純フロー内積 閾値cos(15deg)及び簡易フロー内積による判定[純フロー内積 閾値cos(90deg)]を示す図である。(実施例)
【図18】図18は純フロー内積 閾値cos(120deg)を示す図である。(実施例)
【図19】図19はFOE内積判定実施後のCase(ケース)A〜Dを示す図である。(実施例)
【図20】図20は道路の点A〜Cを示す図である。(実施例)
【図21】図21は点Aにおける相関表を示す図である。(実施例)
【図22】図22は点Bにおける相関表を示す図である。(実施例)
【図23】図23は点Cにおける相関表を示す図である。(実施例)
【図24】図24はFOE内積判定処理前及びのFOE内積判定処理後のSADベースブロックマッチング結果を示す図である。(実施例)
【図25】図25は通常のFOE内積判定処理前及びのFOE内積判定処理後のNCCによるブロックマッチング結果(NCC一致度0.9995)を示す図である。(実施例)
【図26】図26は本提案を組み合わせたFOE内積判定処理前及びのFOE内積判定処理後のNCCによるブロックマッチング結果(NCC一致度0.0003)を示す図である。(実施例)
【図27】図27はこの発明の従来技術を示すオプティカルフロー検出装置の手法を説明する制御用フローチャートである。
【発明を実施するための形態】
【0011】
以下図面に基づいてこの発明の実施例を詳細に説明する。
【実施例】
【0012】
図1〜図26はこの発明の実施例を示すものである。
図2において、1はオプティカルフロー検出装置である。
このオプティカルフロー検出装置1は、ブロックマッチングにより過去画像と現在画像との2つの画像のオプティカルフローを検出するものである。
そして、前記オプティカルフロー検出装置1は、図2に示す如く、マッチングスコア算出の処理を行うマッチングスコア算出手段2と、マッチングスコア差分算出の処理を行うマッチングスコア差分算出手段3と、マッチングスコア差分判定の処理を行うマッチングスコア差分判定手段4と、フロー内積算出の処理を行うフロー内積算出手段5と、フロー内積評価の処理を行うフロー内積評価手段6とを備えている。
そして、前記マッチングスコア算出手段2は、現在画像の画像データと過去画像の画像データとの間のマッチングスコアを算出する。
前記マッチングスコア差分算出手段3は、前記マッチングスコア算出手段2により算出された前回のマッチングスコアと今回のマッチングスコアとの差分を算出する。
前記マッチングスコア差分判定手段4は、前記マッチングスコア差分算出手段3により算出された差分が予め設定されたしきい値以下であるか否かを判定する。
前記フロー内積算出手段5は、前回までのマッチング探索で一致判定された位置でのオプティカルフローと今回のマッチング探索で現在探索位置でのオプティカルフローとで内積値を算出する。
前記フロー内積評価手段6は、前記フロー内積算出手段5により算出された内積値に基づいてオプティカルフローの方向性を判定して無効フローを除去する。
【0013】
そして、前記オプティカルフロー検出装置1は、マッチング探索時に、前記マッチングスコア差分判定手段4により差分がしきい値以下であると判定された時には、前記フロー内積算出手段5により内積値を算出し、前記フロー内積評価手段6により無効フロ一を除去する構成を有している。
これにより、前記オプティカルフロー検出装置1は、マッチング探索処理中に無効フローを除去することができる。したがって、マッチング探索処理後に無効フローを除去する場合よりも処理時間を短縮することができる。
また、前記オプティカルフロー検出装置1は、マッチングスコアの差分にしきい値を設定するため、照明(日照条件・陰)等の局所的な影響を除去することができる。
更に、前記オプティカルフロー検出装置1は、マッチングスコアの差分に設定するしきい値を定数とすることができる。
更にまた、前記オプティカルフロー検出装置1は、フロー内積評価により路面・背景等のコントラストの低い位置を判別し、無効なオプティカルフロー検出を回避することができる。また、繰り返しパターン(窓問題)の発生を軽減することができる。
また、前記オプティカルフロー検出装置1は、従来のマッチング処理機能に適用することができる。
【0014】
また、前記フロー内積算出手段5は、前回までのマッチング探索で一致判定された位置でのオプティカルフローを[FwyΔi1、FwyΔj1]、今回のマッチング探索で現在探索位置でのオプティカルフローを[FwyΔi2、FwyΔj2]とすると、下記の数式
内積値=FwyΔi1・FwyΔi2+FwyΔj1・FwyΔj2
で示される簡易内積によって内積値を算出する構成を有している。
これにより、前記フロー内積算出手段5は、構成をシンプルにすることができ、FPGA等のハードウェアヘの実装に有利である。
また、前記フロー内積算出手段5は、高速に処理をすることが可能になる。
【0015】
更に、この発明は、ブロックマッチングにより過去画像と現在画像との2つの画像のオプティカルフローを検出するオプティカルフロー検出方法において、現在画像の画像データと過去画像の画像データとの間のマッチングスコアを算出して前回のマッチングスコアと今回のマッチングスコアとの差分を算出し、マッチング探索時に、算出された差分が予め設定されたしきい値以下であるか否かを判定し、差分がしきい値以下であると判定された場合に、前回までのマッチング探索で一致判定された位置でのオプティカルフローと今回のマッチング探索で現在探索位置でのオプティカルフローとで内積値を算出し、この内積値に基づいてオプティカルフローの方向性を判定して無効フローを除去するものである。
これにより、マッチング探索処理中に無効フローを除去することができる。したがって、マッチング探索処理後に無効フローを除去する場合よりも処理時間を短縮することができる。
また、マッチングスコアの差分にしきい値を設定するため、照明(日照条件・陰)等の局所的な影響を除去することができる。
更に、マッチングスコアの差分に設定するしきい値を定数とすることができる。
更にまた、フロー内積評価により路面・背景等のコントラストの低い位置を判別し、無効なオプティカルフロー検出を回避することができる。また、繰り返しパターン(窓問題)の発生を軽減することができる。
また、従来のマッチング処理機能に適用することができる。
【0016】
更にまた、この発明のオプティカルフロー検出方法は、前回までのマッチング探索で一致判定された位置でのオプティカルフローを[FwyΔi1、FwyΔj1]、今回のマッチング探索で現在探索位置でのオプティカルフローを[FWyΔi2、FwyΔj2]とすると、下記の数式
内積値=FwyΔi1・FwyΔi2+FwyΔj1・FwyΔj2
で示される簡易内積によって内積値を算出するものである。
これにより、構成をシンプルにすることができ、FPGA等のハードウェアヘの実装に有利である。
また、高速に処理をすることが可能になる。
【0017】
ここで、この発明におけるブロックマッチング手法の改良について説明する。
先ず、従来のブロックマッチング手法は、とりあえず指定した探索範囲を全て探索した後で、マッチング結果(「スコア」ともいう。)に対し、設定した閾値に基づく有効・無効判定を加えていた。
提案する手法では、従来の手続きを損なうことなくマッチング処理中に同時進行で無効なオプティカルフローを排除できるよう、探索過程でのマッチングスコアの変化量により起動するオプティカルフローの簡易的な内積評価に基づく方向性判定を組み合わせることで無効フロー除去の対応に当たる。
近年のオプティカルフロー検出手法は、LucasKanade法、HornSchunck法など時系列を考慮に入れた着目画素および近傍の輝度評価に基づく手法、さらにはShift法・Surf法など輝度分散値や多重解像度解析に基づく解釈を追加した手法がしばしば提案されているが、これらはSADブロックマッチング処理等の手法と比べ、よりソフトウェア的にオプティカルフロー解決ヘアプローチしているものと伺える。
本手法は、SADブロックマッチング等に従来のマッチング・オプティカルフロー検出手法から逸脱しない構成であるため、FPGA等基づくハードウェア的なオプティカルフロー解決手法に適用できる。
【0018】
マッチング処理に関する共通事項
ブロックマッチングで扱う画像は連続する動画であるが、今回はその一部を抜き出した2枚の画像を例に取り上げる。
(1)評価画像をIMG1(元画像=過去画像)、もう一つの評価画像をIMG2(現画像)とする。
(2)画像のサイズは幅W、高さHとする。
(3)評価するブロックの形状は円・四角形、その他の多角形等の任意形状を使用することができるが、今回は最も簡易的な正方形形状ブロックで手順を紹介する。
(4)ブロックの単位をN、探索する範囲をMとする。MとNで大きいほうをLとする。
画像の探索位置はブロック中心[X、Y]=[i、j]を基準に実行するものとする。
よって、画像全域を全て探索する場合、
Xは、L/2 ≦ i < W−L/2、
Yは、L/2 ≦ j < H−L/2
の範囲で計算を行なう。
(5)各探索はブロック中心[X、Y]=[i、j]から[X、Y]=[Δi、Δj]シフトした位置で一致度を評価して行なわれる。
結果、一致箇所と判断された位置について、ブロック中心[i、j]と一致箇所[i+Δi、j+Δj]をそれぞれ始点・終点とするオプティカルフローが検出される。
(6)以後、例に取りあげる参照図については、特に明記しない限り以下の条件でマッチング処理を行なった結果画面である。
(7)ブロックサイズ: 9x9サイズ (N=9)
探索範囲 : 15x15サイズ (M=15)
ブロック間隔 : 全画素 (ブロック間隔=0)
【0019】
ここで、参考として、一般的に使用される従来のSAD手法とNCC手法とについて紹介する。
一般的なSADブロックマッチング評価手法について
一般的に行なわれるSADブロックマッチングは、連続する過去と現在の2枚の画像について、まず、元画像の検査対象となる画素[i、j]を設定し、現在の画像で対応する画素[i、j]および周囲の画素[i+Δi、j+Δj]での輝度変化を絶対値差分(SAD)で計算評価して、物体の移動前の位置と移動後の位置を推定する手法である。
また、信頼性を確保するために、検査対象画素[i、j]の周囲の画素を含めたNxN個のブロック単位で画素の変化を計算し、ブロック内に映る物体の移動を1つの探索対象として推定するため、「ブロックマッチング」と呼称される。
ここでは、図3のマッチング対象比較画像及び探索位置の例を示す図を開示するとともに、図4のブロックマッチングによるオプティカルフロー検出結果例と検出フロー方向識別色を示す図を開示する。
ブロックマッチングの探索対象となるブロックの間隔は任意に設定可能である。
ここでは、図5のブロックマッチングの探索対象となるブロック間隔0、5、10、15を示す図を開示する。
【0020】
そして、ブロックマッチングに関する評価値を、以下の数式1のように表すことができる。
【数1】
ここで、Δi、Δjをそれぞれで
−M/2 ≦ Δi ≦ M/2
−M/2 ≦ Δj ≦ M/2
で変化させ、SAD(i+Δi、j+Δj)が最小となる位置をマッチング一致点、そのときのブロック中心[i、j]を始点、一致点[i+Δi、j+Δj]を終点として結ぶ直線が一般的にオプティカルフローと呼ばれるフローとなり、これは画面内の物体の移動方向・移動量を示唆する。
式からSADによるブロックマッチングの計算量はブロックサイズN、探索する範囲Mにて画索を参照する回数に比例することが伺える。
比較する2画像についてのブロック間NCC比較評価でNxN回および探索位置(オフセット位置での評価)でMxM回、計(NxM)2通りの計算が必要と考えられる。
【0021】
ブロックマッチング処理を行なえば、各検査対象に関する移動前後の位置の推定結果を得ることができるが、そのままでは路面・上空背景などの特徴量の少ない領域と移動を行なった物体の区別をつけることができない。
通常、これらはSAD評価値の下限に閾値を設けることで下図のように移動する物体と背景等を切り分けることができる。
図6のSADの一致度閾値なし、300以上抽出、610以上抽出を示す図を開示する。
【0022】
更に、移動方向が明らかである場合は、検出したオプティカルフローの長さや方向(角度)から、さらに有効なフローを選別することができる。
例えば、バックアイカメラで走行中の自車の後方を監視し、接近車を検出する装置などでは、特開2000−168442や特開2008−97126等で紹介されるように、無限遠点(「FOE」ともいう。)から対象オプティカルフロー始点を結ぶ方向とオプティカルフロー自体の方向を確認し、背景と接近物体を区別することができる。
【0023】
参考までに以下に記載する。
(1)ここでSAD評価を以下のように変形したものを「SSDブロックマッチング」と呼ぶ。
(2)その他、処理内容はSAD評価法と同等に取り扱うことが出来る。
(3)SSDは一般的にSADよりも輝度変化に関する感度が二乗で示される分大きく、使用する装置・環境等の場合によって通常のSADより有効なケースがある。
【0024】
【数2】
【0025】
SADブロックマッチング法の課題
課題(1)ノイズ・外乱の影響に関する耐性の低さ
通常、SADブロックマッチング検出処理から検出されたフローに関してSAD評価値の結果から判別するのが一般的である。
しかしながら、車両に搭載したカメラ等で外部周辺の確認を行なう装置など、システムの使用環境が屋外である場合、日照条件等の環境変化、路面からの反射光、また走行中であれば構造物の影などカメラの画像には外乱が加わり、画像全体あるいは局所領域に必ず輝度の変化が発生する。
また、これら外乱にはカメラの機械的・電気的なノイズがさらに加味される。
よって、背景と移動物体を切り分けるSAD評価の閾値は常に変動することを考慮しなければならない。
しかしながら、車両に搭載したカメラ等で外部映像を撮影する場合、使用環境の変化は不可避であるため、判別閾値を定数で設定することは非常に困難である。
よって、入力画像輝度の変化に応じて、画像補正を行う、あるいは閾値を動的に最適な値に切り替え調整する等の対応が必要であると考えられる。
しかしながら、多様な使用環境の変化に柔軟に対応できるアルゴリズムの開発・実装は非常に困難である。
同じ2枚の画像を比較する場合について、元の画像に人工的なノイズを付加した場合の結果を、図7に開示する。
仮に、前述の図のように外乱が画面全体に一様に分布する場合であれば、画像全体の輝度平均値やSAD評価の閾値を動的に使用することで対応できるが、図8のように外乱が局所的に分布する場合は対応困難である。
【0026】
課題(2)窓問題による繰り返しパターンの影響
先に紹介した無限遠点(「FOE」)から対象オプティカルフロー始点を結ぶ方向とオプティカルフロー自体の方向を確認し、背景と接近物体を区別する手法について、移動方向と平行な白線(道路区画線)、あるいは路肩の防音遮壁・建造物等の直線成分に関しては、ブロックマッチング固有の課題として窓問題(aperture problem)による影響でこの識別法が上手く機能できないケースが発生する。
つまり、接近方向と離反方向が図9の位置関係となる。
このようにそれぞれの配置が直線関係となる場合、一致度も類似する値となる。
よって、フローの向きでも一致度でも特定できない状態で誤検出されてしまう。
図10に移動前及び移動後を示す図を開示する。
直線成分を持つ対象上に位置するブロックでは、一致度スコアが同じ対応点が複数発生するため移動方向(フロー)の特定が困難である。
図11に道路白線の検出結果を示す図を開示する。
特開2008−97126のように歪を補正した画像に関してマッチング処理を行なう場合は、補正をしない画像上、曲線で映る道路白線などが補正されて直線成分が強調される。
よって、繰り返しパターンによる影響を、顕著に受ける恐れがある。
さらに、これら影響は、特開2008−97126、特開2000−168442のように検出したフローの集まりを評価単位とし、そのグループを示すサイズ等で物体を特定するような手法では、白線部に集中する誤検出の集まりが接近車両と誤判別される要因となりうる。
図12にFOE内積判定処理前とFOE内積判定処理後との歪補正画像に関するSAD処理結果を示す図を開示する。
【0027】
一般的なNCCブロックマッチング評価手法について
NCCブロックマッチングは、先にあげたSADブロックマッチングに関する「課題(1)ノイズ・外乱の影響に関する耐性の低さ」への対策として有効な手法の一つであると考えられる。
NCCブロックマッチングでは、検索対象となる画素およびその周囲の画素NxN個をNxN次元のベクトルとして取り扱う。
また、各ベクトルを長さで割り正規化することで、周辺の画素に対する外乱を含めた輝度変化をブロック内平均値で相殺することで外乱成分による影響を緩和することができる。
【0028】
NCCブロックマッチングに関する評価値を、数式3のように表すことができる。
【数3】
ここでΔi、Δjをそれぞれで
−M/2 ≦ Δi ≦ M/2
−M/2 ≦ Δj ≦ M/2
で変化させ、NCC(i+Δi、j+Δj)が最大となる位置をマッチング一致点、そのときのブロック中心[i、j]を始点、一致点[i+Δi、j+Δj]を終点として結ぶ直線がオプティカルフローと呼ばれるフローとなり、同様に画面内の物体の移動を示唆する。
さらにNCC評価ではN2ブロック内の画素についてN2次元のベクトルとして取り扱い、ブロックを構成するN2次元の単位ベクトル内積にて一致度評価を行なう。
よって、NCC評価値は、特に後述の「SAD評価課題(2)」の対策に有効な効果を得ることができる。
数式3から伺えるよう評価値の最大は1.0、最小値は−1.0となる。
【0029】
但し、ブロック内の輝度平均を毎回求めるための計算に関しては、ブロック内平均輝度計算のため、ブロック内参照回数が追加される。
オプティカルフロー検出のためには比較する2画像についての、それぞれのブロック内平均輝度の計算でNxN回、ブロック間NCC比較評価でNxN回および探索位置(オフセット位置での評価)でMxM回、計(2xN2xM2)通りの計算が必要と考えられる。
【0030】
NCCブロックマッチング処理を行なう場合でも、そのままでは路面・上空背景などの特徴量の少ない領域と移動を行なった物体の区別をつけることができない。
通常、これらはNCC評価値の上限に閾値を設けることで、図13のように移動する物体と背景等を切り分けることができる。
NCCの場合、先に紹介したように外乱の影響をブロック内輝度平均値による正規化効果で相殺できるので、SADに対して一様な外乱の場合でも、局所的な外乱の場合でも柔軟に対応できる。
ここで、図14のノイズ付加前、一様ノイズ(元輝度+10)付加、一様ノイズ(元輝度−10)付加を示す図を開示する。
NCCの場合、図15のように外乱が局所的に分布する場合でも柔軟に対応可能である。
【0031】
参考までに以下に記載する。
(1)ここでNCC評価法と同様、他にもZSADやZSSD等のブロック内輝度平均値を原点0と見立てて評価を行うマッチング法等が知られている。
(2)これら処理に関しても、ブロック内輝度平均の計算追加のため、オプティカルフロー検出のためには計(N×NXM)2通りの計算が必要と予測される。
(3)ZSADやZSSDの評価は、通常のSADと同様に、評価値が探索範囲内で最小となる位置を一致点として判断する。
【0032】
【数4】
【0033】
NCC手法に関する課題
課題(3)窓問題による繰り返しパターンの発生
先のSAD評価法の中で取り上げた課題であるが、ブロックマッチングをべ一スとする限り、NCCといえども窓問題の影響を緩和する能力は持ちえておらず、繰り返しパターンがその後のオプティカルフローに基づく処理に影響を与えるのであれば、そのまま、特開2008−97126等へ応用するのは困難である。
よって、白線検出など別途手段による後処理判定等、何らかの追加対策処理を組み合わせる必要がある。
【0034】
課題(4)NCCにおける計算コストの増大
NCCなどブロック内の輝度平均値をゼロベースと見立てた処理では、NxN回分の平均値計算が追加される。
さらに、平均化処理のために除算計算が必要となる。
通常、四則演算の回路処理の場合、除算計算は他の加・減・乗算に比べ数倍の計算を必要とするため、処理が遅くなる。
特に、NCCではマッチング探索1回につき、cosによる正規化評価を行なうため、さらに計算負荷の高い分母の√計算が必要となる。
NCCでは、cosによる正規化評価を行なうため一致度評価値は±1の範囲となる。
この範囲で精度良く作業を行なうには、浮動少数回路の導入あるいは有効桁数を調整し、大きな桁での整数計算が必要となるので、より高級な演算回路やメモリが必要となり、コストはSAD等と比較して増大する。
【0035】
提案処理について
前述まで例に挙げたとおり、外乱の影響に対する耐性を強化し精度を維持するためには、NCCブロックマッチング手法が有効であるが、演算回路・メモリ追加など計算コストの増大が懸念される。
よって、通常のブロックマッチング処理中に、平行して背景とその他オブジェクトを切り分ける処理を行なうことで、コストの増大を抑えノイズ耐性を強化したオプティカルフローの変則評価手法を提案する。
この処理の特徴を以降抜粋する。
評価は設定した探索範囲に対し、対象検査ブロックの中心より外側に向かい捜査を行なうスパイラル探索手順を基本にマッチング処理を実施する。
但し、探索順序には以下の規則を追加する。
(1)スパイラル探索に基づき下図のように中心[0]からの連番に対応した分、現画像の原点をシフトして元画像とのマッチング処理を行なう。
(2)探索の優先順位に関しては、参照図として図16を挙げる。
次に判別用に次の緒言について固定閾値を設定する。
(3)更新前の評価値と現行位置での評価値の差分闘値の設定。
マッチング探索処理については以下の手順で行なう。
(4)ブロック中心[i、j]画素から外側方向へ設定手順どおりの探索を開始する。
探索時にマッチング探索シフト量より発生するフローの長さが評価起動用フロー長より短い位置である場合は、従来と同じ評価手順で処理を行なう。
マッチング探索により発生するフローの長さが評価起動用フロー長を超える位置を超過する場合。
(5)前回の位置でのマッチング評価値と今回の評価値の差が大きく変動(差分閾値を超過)する場合、従来処理通りの手順で評価を行なう。
即ち、探索位置[Δi、Δj]=[Δi1、Δj1]で一致度が向上する場合は、オプティカルフロー[Fwxi、Fwyj]を[Fwxi、Fwyj]=[FwxΔi1、FwyΔj1]で更新し、あわせて保持している一致度評価値を更新する。
一致度が低下する場合は、次の探索位置[Δi、Δj]=[Δi3、Δj3]での評価に移行する。
【0036】
前回の位置でのマッチング評価値と今回の評価値の変動差が小さい(±で差分閾値以下)場合、前回の探索までに取得したフローと現在探索位置で発生するフローについて次の式によりフロー内角に関して内積評価法を行なう。
例えば、現時点の最一致箇所が[Δi、Δj]=[Δi1、Δj1]、探索中の地点が[Δi、Δj]=[Δi2、Δj2]である場合、
【数5】
あるいは、次式のように純フロー内積値による判定でも使用可能である。
【数6】
【0037】
※ 今提案の場合、計算コスト削減による高速化あるいはハードウェア化を主題とするので、フロー簡易内積による判定法を提案するものであるが、純フロー内積に関する解釈でも技術的に可能であるので紹介する。
また、純フロー内積判定闘値がcos(15〜90deg)の場合、それぞれの結果に関しては大きな違いは発生しない。
よって、フロー簡易内積評価でも要求精度を確保できると推定される。
ここで、図17の純フロー内積 閾値cos(15deg)及び簡易フロー内積による判定[純フロー内積 閾値cos(90deg)]を示す図を開示する。
また、図18の純フロー内積 閾値cos(120deg)を示す図を開示する。
【0038】
前式によりフロー簡易内積評価値が0以下(=フロー内角が90度以上)となる場合
(6)フローに関して・・・
検出したフロー[Fwxi●、Fwyj●]をX、Y方向それぞれの成分を(M+1)倍した、[(M+1)Fwxi●、(M+1)Fwyj●]で、探索中のフロー[Fwxi、Fwyj]を更新する。
※ 純内積評価で判定を行なう場合は、別途内積判別閾値の追加が必要である。
例:純フロー内積評価値が設定した閾値cos(30°)以下の場合は許可
(7)一致度に関して・・・
この[i、j]位置におけるマッチング評価値を差分評価値等の値を減算(NCCのときは加算)して、評価値を一致方向に向上するよう更新する。
※ M+1倍とするのは、[i、j]位置がフローの方向成分を変えずにフロー長さから無効箇所であることを判別できる設定であるため。
【0039】
以上の評価規則に沿って、基点[X、Y]=[i、j]を中心に探索範囲M2以内でマッチング処理を繰り返す。
全ての探索位置でマッチング処理を完了した場合、背景となる箇所については、以下の条件で判断し誤検出フローを除去する。
(8)上記の(7)に関する操作が適用され、フローの長さが探索範囲Mを超えるものは誤検出箇所と判断する。
(9)上記の(7)に関する操作が適用され、判定結果値が異常値(SADなら0以下、NCCなら1.0以上)となる位置は、誤検出箇所と判断する。
【0040】
[手順(6)以降に関する別解]
一致度差分評価値が、小さく向きが不ぞろいなフローが検出された[i、j]位置において、装置が検出したフロー[Fwxi、Fwyj]をM+1倍するだけのメモリを確保できない場合、画像と同じサイズの記録バッファを用意し、フラグを立てる。
フロー[Fwxi、Fwyj]は[Fwxi●、Fwyj●]で更新する。
つまり、フラグ用の記録バッファを利用することで、マッチング各段階での保持するフローの方向成分を失うことなく次回のフロー内積判定に利用できる。
次点以降のマッチング処理に際し、手順(5)による大幅な一致度評価値更新があった場合、従来処理通りの手順でフローとスコア値の更新を行なうと共に、フラグをリセットする。
本手法を実践する場合、ブロックマッチングの探索順序をスパイラル探索に基づきブロック中心から次第に外へと進めていく手法が好ましい。
これは、検出する順位をブロック中心に隔てなく変化させ発生するフロー方向を常に変化させることで、変化の探索順位の拘束条件に基づく誤検出を回避できるためである。
一般的に行なわれるよう、ブロックの探索を左上から右下へと探索を行なう場合、探索方向が偏ってしまい柔軟に周囲の検出フローの評価を行なう際の支障となる場合が考えられるためである。
以下の参照図である図19のように、いずれの場合もスパイラル探索の有効性が確認できる。
【0041】
提案特許の効果にする解説
(1)フローの内積差分判断について
通常、オプティカルフロー検出処理から検出されたフローに関して検出フローの精度を判定する場合、検出したマッチング一致度の結果に閾値を設定し判別するのが一般的である。
しかしながら、車両に搭載したカメラ等で外部周辺の確認を行なう装置など、システムの使用環境が屋外である場合、日照条件等の環境変化、路面からの反射光、また走行中であれば構造物の影などカメラの画像には外乱が加わり、画像全体あるいは局所領域に必ず輝度の変化が発生する。
また、これら外乱にはカメラの機械的・電気的なノイズがさらに加味される。
路面等、背景には関しては形状の判別ができないため、対象ブロック周辺で複数の一致度の類似箇所が発生する。
これら類似箇所は設定するブロックのサイズにもよるが、通常以下のような状態で発生すること
が伺える。
ここで、図20の道路の点A〜Cを示す図を開示する。
上図についてシフト(オプティカルフロー)位置と対応した検出したSAD一致度を、以下の図21〜図23に点A〜Cまでの相関表で示す。
【0042】
通常のブロックマッチングではまず指定された点を中心にNxNのサイズの中で該当評価計算式に沿い一致度を算出する。
次に、画像原点をシフトした現画像と元画像を比較し、同様にスコアを計算する。
より一致度が高い箇所が検出された場合、シフト量を記録更新する。
処理を探索範囲MxMの中で繰り返し実行し、最も一致度を指すシフト量をオプティカルフローとして取り扱う。
しかしながら、前述の点B、点Cのような箇所については、例え一致度が優れていても、その値が他のシフト位置より突出していない。
他にも類似するスコアを持つ位置が多数存在する。
このような状態で取得したオプティカルフローからは要求される信頼性を確保できない。
【0043】
よって、本手法では、類似する一致度同士の差は小さいことを利用し、一致度と検出された一致度を比較計算する際の差分値に対して閾値条件を設定する。
一致度の差分値が閾値以下となる箇所が確認された場合、その該当位置で検出されたフローA(元シフト量)と、直前までのシフト位置で計測したフローB(現シフト量)による一致度スコアを確認する。
差分値を確認し一致度スコアが大きく改善している場合は、そのまま従来どおりの処理を進める。
さらに一致度スコアの更新量が小さい場合は、フローA/B同士について(簡易)内積評価を起動し、ブロック周辺のフロー方向の内積を評価する手法を組み合わせる。
【0044】
内積が不一致と判別された場合は、フロー情報をM+1倍しオーバーフローが発生した箇所として、フローの方向性を維持したまま、背景と疑わしい箇所と識別できる状態とする(あるいは、記録フラグを立てる。)。
また、一致度が大幅に改善された場合は、保持しているフローを通常の値に更新し、オーバーフローの情報をリセットすることで再び移動体の検出を行なう状態に復旧する。
【0045】
特徴量の豊かなブロック位置では、静止であろうと移動であろうと類似する一致度が発生する箇所は、周囲の一致度と比較し非常にユニークで限定的なスコアを発するので、通常のSAD処理等でも信頼性の高いフローを取得することができる。
標準的な特徴量しか持ち合わせないブロック位置でも移動する物体を示すブロックでは、移動に沿った方向に沿って他の方向より優れた一致度を持つ傾向となり、結果、向きのほぼ揃ったフローを発する確率が高い。
よって、フローの内積評価を繰り返すことで検出されるフローは、次第に他の方向を向くフローを排除しながら、同じ移動方向に沿ったフロー同士による一致度の選抜評価を行なう方向へ機能していく。
また、路面・背景等に関しては周辺で類似する一致度を持つが方向が異なるフローが複数回検出されるため、次第に保持するフローがオーバーフロー情報を保持する傾向へ移行する。
これは特徴量に乏しいブロック位置でも同様に機能する。
【0046】
本手法によれば、フローを各探索位置での評価毎に評価するため、対象ブロック近傍のフローに関して、「同程度の一致度を持ち」、「同一方向を示すフローが集まっているか」どうかの判定を通常のブロックマッチング処理に加えて並行して実施することができ、特別な前処理や後処理を必要としないため、より高速に効率良く信頼性の低いフローを結果出力から排除することができる。
よって、点Aにて発生するフローは許可し、点B/Cに発生するフローを排除できる。
【0047】
特に、簡易内積評価にてフロー内積を90度以上の直・鈍角か90度未満の鋭角かの2値で判定し、鋭角側のフロー群を有効評価可能としたグループ単位で内積変化を評価するならば、NCC等で求められる除算処理・正規化処理等が不要であり、加減乗算の組み合わせのみで対応できるので、FPGA等のハードウェア化に適する手法と判断できる。
【0048】
(2)フローの内積差分判断を一致度差分にて起動する手法について
さらに本手法は、一致度の差分評価値を評価基準の主体とするため特にSADやSSDべ一スのブロックマッチングのように日照条件等の環境・機械的電気的ノイズ等の外乱による局所領域の輝度変化に対して検出精度が低下する事例に関して非常に有効な手段であると考えられる。
つまり、外乱により局所領域的に輝度変化が発生した際、影響は周囲全てのマッチング探索位置に均等に影響することを考慮すれば、その評価を各ブロック単位での一致度差分として扱うことで、外乱による輝度変化の影響を回避可能であり、ブロックサイズNに比例した固定の差分閾値で安定した評価を実現することができる。
また、ブロックマッチング作業時に生じる窓問題に関しても、逆向きに一致するフローの評価により若干の改善効果を得ることができる。
【0049】
以下にマッチング処理の際に内部機能する効果を例にとり、本提案手法による有効性を示す。
ノイズがない場合のSAD評価
【数7】
例えば、閾値ThrSADより低い箇所を背景と判別する場合を取り上げる。
次画像IMG2にΔεの外乱の影響が入った場合のSAD(今回は探索範囲内MxM内で均等ノイズとする)
【数8】
SAD(i+Δi、j+Δj)に関して外乱により発生したεN2の値が、閾値ThrSADより大きい場合、この探索位置は背景ではなく、対象であると判別される。
通常閾値の値ThrSADを設定する際は、余裕度を持って設定しなければならないが、検出精度を確保しようと試みる場合、閾値の幅をあまりに広く設定する方法は好ましくない。
代理の手段としてはεN2の影響を画質改善IMG2から除去する、あるいはεN2の大きさを確認してThrSADを動的に調整しなければならないが、例えば、εN2が局所領域的に発生する場合、εN2の影響を受ける探索位置に応じて、これらの補正処理を切り替える作業は非常に負担の大きな処理となりかねない。
次画像IMG2にΔεの外乱の影響が入った場合のNCC(同様に探索範内MxM内で均等ノイズとする)
先の記述に沿って外乱εが探索範囲内のブロックに影響すると考えた場合、εN2による次画像IMG2で探索範囲内ブロックが受ける影響はブロック内輝度平均による調整項の差分で回避できる。
【数9】
【0050】
本提案の場合
例えば、閾値ThrSUDより低い箇所を類似一致箇所と判別する場合を取り上げる。
【数10】
本提案の場合、差分による評価を行なうため、周囲のブロックに対する外乱εN2の影響は相殺されるので、固定の閾値でも判別処理が可能である。
よって、マッチング探索ごとにThrSUDの評価を行い、一致度スコアが類似であると判別されるたびにフロー方向を参照し、向きが相反するフローが検出された場合を背景としてチェックしていけば、結果的に類似方向を示す対象、すなわち特徴量を持つ物体だけを移動物体として背景等、他の要素と分類して抽出することができる。
【0051】
(3)繰り返しパターンによる影響の軽減効果
例えば、FOEとフロー始点を結ぶ直線と検出したフローの内積による接近物体の識別について、道路白線部などに繰り返しパターンにより接近・離反の方向検出が困難な誤検出が発生することを取りあげた。
さらに、この状態における接近と離反の相反するフローを示す該当探索箇所では、一致度が近いことも記した。
本手法では、一致度が近い故にこのような状況の探索箇所の存在がフローの内積評価で明らかとなる。
よって、繰り返しパターンの軽減に効果を与える。
例えば、特開2000−168442、特開2008−97126等のように密集して発生するフロー1群を単位とし、近傍のフローグループの集まりの大きさで接近物体の存在を確認する処理に併用すれば、白線箇所で密集する誤検出の集まりが小さくなる、あるいは細分化されるため、より精度の高い接近物体検出効果を得ることができる。
例えば、このような状況は効果説明(1)の点C項に該当するものと考えることができる。
ここで、図24のFOE内積判定処理前及びのFOE内積判定処理後のSADベースブロックマッチング結果を示す図を開示する。
【0052】
(4)多様なブロックマッチングへの応用
本手法は、特別な前処理・後処理をブロックマッチングに追加するのではなく、マッチング途中の処理段階でそれぞれの処理に並行するよう組み合わせて使用できる。
よって、用途はSADのみではなく、SSD・NCC等の他のブロックマッチング処理についても有効である。
例えば、図25及び図26の例では、白線位置に発生する繰り返しパターンによる誤検出の減少効果を得ることができる。
【0053】
次に、図1の前記オプティカルフロー検出装置1の制御用フローチャートに沿って作用を説明する。
【0054】
このオプティカルフロー検出装置1の制御用プログラムがスタート(101)すると、MxM個の指定オフセットテーブル(102b)から探索順位と該当オプティカルフローの序列を作成し、データテーブル化する(以下、「序列テーブル(102a)」という。)処理(102)に移行する。
この処理(102)の後には、スコアを記録する画像と同幅・高さのメモリを用意し、初期化する(以下、「スコアバッファ」という。)処理(103)に移行する。
そして、処理(103)の後には、フローを記録する画像と同幅・高さのメモリを用意し、初期化する(以下、「フローバッファ」という。)処理(104)に移行する。
この処理(104)の後に、作業開始の処理(105)を経て、画像IMG1取得の処理(106)、及び、画像IMG2取得の処理(107)を行い、前記序列テーブル(102a)の現位置はMxM個を超過したか否かの判断(108)に移行する。
この前記序列テーブル(102a)の現位置はMxM個を超過したか否かの判断(108)において、判断(108)がYESの場合には、オプティカルフロー決定の処理(109)に移行し、判断(108)がNOの場合には、前記序列テーブル(102a)よりN回目のシフト量[ΔiN、ΔjN]を取得する処理(110)に移行する。
上述のオプティカルフロー決定の処理(109)の後には、後処理(111)を行う。この後処理(111)においては、フローを基本とした装置機能を提供する。
そして、この後処理(111)の後には、画像IMG1と画像IMG2とをスワップ(交換)し、次の動画処理の準備を行う処理(112)に移行し、上述した画像IMG2取得の処理(107)に戻る。
また、上述した前記序列テーブル(102a)よりN回目のシフト量[ΔiN、ΔjN]を取得する処理(110)の後には、画像IMG2の原点を[ΔiN、ΔjN]分シフトする処理(113)に移行する。
この画像IMG2の原点を[ΔiN、ΔjN]分シフトする処理(113)の後には、画面全体、全ての画素を探索できたか否かの判断(114)に移行する。
この画面全体、全ての画素を探索できたか否かの判断(114)において、判断(114)がYESの場合には、上述した前記序列テーブル(102a)の現位置はMxM個を超過したか否かの判断(108)に戻り、判断(114)がNOの場合には、次のマッチング確認位置(検索中心)を画素[i、j]の指示点に設定する処理(115)に移行する。
そして、この次のマッチング確認位置(検索中心)を画素[i、j]の指示点に設定する処理(115)の後には、評価式はNCC・ZSAD等であるか否かの判断(116)に移行する。
この評価式はNCC・ZSAD等であるか否かの判断(116)において、判断(116)がYESの場合には、先に指示点[i、j]およびその周囲[i+u、j+v]の合計NxN個の画素についてブック内輝度平均値を求める処理(117)に移行し、その後に、指示点[i、j]およびその周囲[i+u、j+v]の合計NxN個の画素について評価式にそって一致度スコアを計算する処理(118)に移行する。
また、判断(116)がNOの場合には、そのまま指示点[i、j]およびその周囲[i+u、j+v]の合計NxN個の画素について評価式にそって一致度スコアを計算する処理(118)に移行する。
そして、この処理(118)の後には、計算した一致度スコアはスコアバッファの[i、j]位置に記録されたスコアと差分値(「絶対値」)を計算する処理(119)に移行する。
この処理(119)の後には、一致度スコアの差分値は大きく変化しているか否かの判断(120)に移行する。
この一致度スコアの差分値は大きく変化しているか否かの判断(120)において、判断(120)がYESの場合には、計算した一致度スコアはスコアバッファの[i、j]位置に記録されたスコアよりも優れているか否かの判断(121)に移行し、判断(120)がNOの場合には、現在のフロー[Δi、Δj]とフローバッファ[i、j]の記録値でフローの内積評価を行う処理(122)に移行する。
そして、この処理(122)の後には、フローの内積評価によりそれぞれのフローの内角の差は、条件を満たすか否かの判断(123)に移行する。
このフローの内積評価によりそれぞれのフローの内角の差は、条件を満たすか否かの判断(123)において、判断(123)がYESの場合には、上述した計算した一致度スコアはスコアバッファの[i、j]位置に記録されたスコアよりも優れているか否かの判断(121)に移行する一方、判断(123)がNOの場合には、以下の処理(124)を行った後に、上述した画面全体、全ての画素を探索できたか否かの判断(114)に戻る。
ここで、処理(124)の内容を列記する。
(1)フローバッファ[i、j]へ[(M+1)Δi、(M+1)Δj]の値を記録する。
(2)スコアバッファの[i、j]位置に記録されたスコアをより厳しい方向へ更新する。
(例えば、SADであれば、半分にする等)
※ 別解を使用するならば、
(1)フローバッファ[i、j]への登録値は[Δi、Δj]で行う。
(2)画像と同サイズのフラグバッファを用意し、フラグバッファ[i、j]の内角違反を記録する。
そして、上述した計算した一致度スコアはスコアバッファの[i、j]位置に記録されたスコアよりも優れているか否かの判断(121)において、判断(121)がYESの場合には、スコアバッファの[i、j]位置へ先ほど計算した一致度スコアを記録する一方、同様に、フローバッファの[i、j]位置へシフト量[ΔiN、ΔjN]を記録する処理(125)を行った後に、別解を使用しているならば、フラグバッファ[i、j]の内角違反をクリアする処理(126)を行い、その後に、上述した画面全体、全ての画素を探索できたか否かの判断(114)に戻る。
また、計算した一致度スコアはスコアバッファの[i、j]位置に記録されたスコアよりも優れているか否かの判断(121)がNOの場合には、そのまま画面全体、全ての画素を探索できたか否かの判断(114)に戻る。
【0055】
なお、この発明は上述実施例に限定されるものではなく、種々の応用改変が可能である。
【0056】
例えば、この発明の実施例においては、車両の周辺の移動障害物の危険度判定等の自動支援技術や、その他のロボットアイ等、マシンビジョンに基づく移動体検出技術などに応用することが可能である。
【符号の説明】
【0057】
1 オプティカルフロー検出装置
2 マッチングスコア算出手段
3 マッチングスコア差分算出手段
4 マッチングスコア差分判定手段
5 フロー内積算出手段
6 フロー内積評価手段
【特許請求の範囲】
【請求項1】
ブロックマッチングにより過去画像と現在画像との2つの画像のオプティカルフローを検出するオプティカルフロー検出装置において、現在画像の画像データと過去画像の画像データとの間のマッチングスコアを算出するマッチングスコア算出手段と、このマッチングスコア算出手段により算出された前回のマッチングスコアと今回のマッチングスコアとの差分を算出するマッチングスコア差分算出手段と、このマッチングスコア差分算出手段により算出された差分が予め設定されたしきい値以下であるか否かを判定するマッチングスコア差分判定手段と、前回までのマッチング探索で一致判定された位置でのオプティカルフローと今回のマッチング探索で現在探索位置でのオプティカルフローとで内積値を算出するフロー内積算出手段と、このフロー内積算出手段により算出された内積値に基づいてオプティカルフローの方向性を判定して無効フローを除去するフロー内積評価手段とを備え、マッチング探索時に、前記マッチングスコア差分判定手段により差分がしきい値以下であると判定された時には、前記フロー内積算出手段により内積値を算出し、前記フロー内積評価手段により無効フロ一を除去することを特徴とするオプティカルフロー検出装置。
【請求項2】
前記フロー内積算出手段は、前回までのマッチング探索で一致判定された位置でのオプティカルフローを[FwyΔi1、FwyΔj1]、今回のマッチング探索で現在探索位置でのオプティカルフローを[FwyΔi2、FwyΔj2]とすると、下記の数式
内積値=FwyΔi1・FwyΔi2+FwyΔj1・FwyΔj2
で示される簡易内積によって内積値を算出することを特徴とする請求項1に記載のオプティカルフロー検出装置。
【請求項3】
ブロックマッチングにより過去画像と現在画像との2つの画像のオプティカルフローを検出するオプティカルフロー検出方法において、現在画像の画像データと過去画像の画像データとの間のマッチングスコアを算出して前回のマッチングスコアと今回のマッチングスコアとの差分を算出し、マッチング探索時に、算出された差分が予め設定されたしきい値以下であるか否かを判定し、差分がしきい値以下であると判定された場合に、前回までのマッチング探索で一致判定された位置でのオプティカルフローと今回のマッチング探索で現在探索位置でのオプティカルフローとで内積値を算出し、この内積値に基づいてオプティカルフローの方向性を判定して無効フローを除去することを特徴とするオプティカルフロー検出方法。
【請求項4】
前回までのマッチング探索で一致判定された位置でのオプティカルフローを[FwyΔi1、FwyΔj1]、今回のマッチング探索で現在探索位置でのオプティカルフローを[FWyΔi2、FwyΔj2]とすると、下記の数式
内積値=FwyΔi1・FwyΔi2+FwyΔj1・FwyΔj2
で示される簡易内積によって内積値を算出することを特徴とする請求項3に記載のオプティカルフロー検出方法。
【請求項1】
ブロックマッチングにより過去画像と現在画像との2つの画像のオプティカルフローを検出するオプティカルフロー検出装置において、現在画像の画像データと過去画像の画像データとの間のマッチングスコアを算出するマッチングスコア算出手段と、このマッチングスコア算出手段により算出された前回のマッチングスコアと今回のマッチングスコアとの差分を算出するマッチングスコア差分算出手段と、このマッチングスコア差分算出手段により算出された差分が予め設定されたしきい値以下であるか否かを判定するマッチングスコア差分判定手段と、前回までのマッチング探索で一致判定された位置でのオプティカルフローと今回のマッチング探索で現在探索位置でのオプティカルフローとで内積値を算出するフロー内積算出手段と、このフロー内積算出手段により算出された内積値に基づいてオプティカルフローの方向性を判定して無効フローを除去するフロー内積評価手段とを備え、マッチング探索時に、前記マッチングスコア差分判定手段により差分がしきい値以下であると判定された時には、前記フロー内積算出手段により内積値を算出し、前記フロー内積評価手段により無効フロ一を除去することを特徴とするオプティカルフロー検出装置。
【請求項2】
前記フロー内積算出手段は、前回までのマッチング探索で一致判定された位置でのオプティカルフローを[FwyΔi1、FwyΔj1]、今回のマッチング探索で現在探索位置でのオプティカルフローを[FwyΔi2、FwyΔj2]とすると、下記の数式
内積値=FwyΔi1・FwyΔi2+FwyΔj1・FwyΔj2
で示される簡易内積によって内積値を算出することを特徴とする請求項1に記載のオプティカルフロー検出装置。
【請求項3】
ブロックマッチングにより過去画像と現在画像との2つの画像のオプティカルフローを検出するオプティカルフロー検出方法において、現在画像の画像データと過去画像の画像データとの間のマッチングスコアを算出して前回のマッチングスコアと今回のマッチングスコアとの差分を算出し、マッチング探索時に、算出された差分が予め設定されたしきい値以下であるか否かを判定し、差分がしきい値以下であると判定された場合に、前回までのマッチング探索で一致判定された位置でのオプティカルフローと今回のマッチング探索で現在探索位置でのオプティカルフローとで内積値を算出し、この内積値に基づいてオプティカルフローの方向性を判定して無効フローを除去することを特徴とするオプティカルフロー検出方法。
【請求項4】
前回までのマッチング探索で一致判定された位置でのオプティカルフローを[FwyΔi1、FwyΔj1]、今回のマッチング探索で現在探索位置でのオプティカルフローを[FWyΔi2、FwyΔj2]とすると、下記の数式
内積値=FwyΔi1・FwyΔi2+FwyΔj1・FwyΔj2
で示される簡易内積によって内積値を算出することを特徴とする請求項3に記載のオプティカルフロー検出方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【公開番号】特開2013−84140(P2013−84140A)
【公開日】平成25年5月9日(2013.5.9)
【国際特許分類】
【出願番号】特願2011−223934(P2011−223934)
【出願日】平成23年10月11日(2011.10.11)
【出願人】(000002082)スズキ株式会社 (3,196)
【Fターム(参考)】
【公開日】平成25年5月9日(2013.5.9)
【国際特許分類】
【出願日】平成23年10月11日(2011.10.11)
【出願人】(000002082)スズキ株式会社 (3,196)
【Fターム(参考)】
[ Back to top ]