以下、図面を参照して本発明の一実施形態による通路検出装置、方法、及びプログラムについて詳細に説明する。図1は、本発明の一実施形態による通路検出装置の要部構成を示すブロック図である。図1に示す通り、本実施形態の通路検出装置1は、A/D(アナログ/ディジタル)コンバータ10、記憶装置20、画像処理装置30、及びRAM(Random Access Memory)40を備えており、外部から入力される画像信号から未舗装路の轍を通路領域として検出する。尚、図1に示す通路検出装置1は、例えばパーソナルコンピュータ等のコンピュータによって実現され、災害救助車両や工事車両等の特殊車両に搭載されて車両の進行方向を撮影する車載カメラ(図示省略)から入力される画像信号から轍を通路領域として検出する。
A/Dコンバータ10は、不図示の車載カメラから入力される画像信号をディジタルデータに変換し、入力画像を示す入力画像データとして画像処理装置30に出力する。尚、本実施形態においては、図2に示すような車載カメラ100から入力画像信号が供給されるものとする。
図2に示す車載カメラ100は、レンズ111、ハーフミラー112a及び112b、水吸収波長帯透過フィルタ113、レンズ114、InSb(Indium Antimonide)半導体受光素子115、近赤外透過フィルタ116、レンズ117、CCD(charge−coupled device)受光素子118、赤外遮断フィルタ(すなわち近赤外カットフィルタ)119、レンズ120及びCCD受光素子121を具備する。ハーフミラー(もしくは、ダイクロイックミラー)112a及び112bは、入射光の一部を反射し、一部を透過させる。
ここで、水吸収波長帯の波長とは、水分によって吸収されやすい波長帯の波長であって、例えば短波赤外(Short Wave InfraRed、以下、適宜「SWIR」と記載する。)内にある水の吸収波長(1450nm±50 nm、もしくは、1940nm±100nm)が該当する。また、InSb半導体受光素子115は、フォトダイオードをアレイ状に形成したイメージセンサであり、短波赤外を電気信号に変換する。このInSb半導体受光素子115には、レンズ111を透過し、ハーフミラー112aで反射し、さらにハーフミラー112b及び水吸収波長帯透過フィルタ113を透過し、レンズ114で収束された短波赤外線が入射する。
一方、CCD受光素子118には、レンズ111を透過し、ハーフミラー112aで反射し、ハーフミラー112bで反射し、さらに近赤外透過フィルタ116を透過し、レンズ117で収束された近赤外線(Near−visible Infra Red、以下適宜「NIR」と記載する。)が入射する。近赤外透過フィルタ116としては、例えば波長800nm以上の光のみを透過するロングパスフィルタを使用することができる。なお、本実施形態で用いるNIRの波長としては、800nm〜1300nmの任意の帯域を用いることができる。ただし、この例の場合、近赤外透過フィルタ116による下限波長800nmと、CCD受光素子の受光波長の上限である900nmから1100nmくらいとの間の帯域が使用されることになる。
また、CCD受光素子121には、レンズ111を透過し、ハーフミラー112aを透過し、さらに赤外遮断フィルタ120を透過し、レンズ120で収束された可視光が入射する。
尚、本実施形態では、CCD受光素子121から、一例として、視野が約60°であって解像度がVGA(Video Graphics Array;横640画素×縦480画素)であり、モノクロの画像信号が出力されることとする。つまり、CCD受光素子121からは、横640×縦480個の各画素の輝度を示す輝度データからなる画像信号が出力される。CCD受光素子121から出力される画像信号は、可視光画像を表す信号であり、A/Dコンバータ10を介して中心ブロック抽出部31へ入力される。ただし、車載カメラ100からディジタル化された画像信号が出力される場合には、A/Dコンバータ10を省略することができる。
他方、InSb半導体受光素子115及びCCD受光素子118からも、視野が約60°であって横640×縦480個の各画素の輝度を示す輝度データからなる画像信号が出力される。ここで、InSb半導体受光素子115から出力される画像信号は、遠赤外線画像を表す信号であり、A/Dコンバータ10を介して植生検出部32へ入力される。また、CCD受光素子118から出力される画像信号は、近赤外線画像を表す信号であり、A/Dコンバータ10を介して植生検出部32へ入力される。
なお、図2に示す車載カメラ100は、単一のカメラ内にハーフミラー等を備え、そのハーフミラー等で分光することで可視光画像と赤外線画像とを含む複数種類の画像信号を出力可能としたものである。ただし、本発明の通路検出装置に入力される画像信号は、単一のカメラで撮影したものに限らず、複数のカメラを用いて撮影したものであってもよい。すなわち複数のカメラを用い、複数のカメラが同じ方向で別の周波数帯の画像を撮影するような構成を用いることもできる。
なお、以下の説明では、説明を簡単にするため、InSb半導体受光素子115及びCCD受光素子118並びにCCD受光素子121の視野が一致していることとする。つまり、InSb半導体受光素子115、CCD受光素子118及びCCD受光素子121の各撮像素子における同一座標の画素(すなわち横640画素×縦480画素において互いに対応する画素)は、同一の撮影対象を撮影(すなわち同一の撮影対象によって反射された光を光電変換)しているものとする。ただし、実際には、レンズ毎に視野が異なることや、InSb半導体受光素子とCCD受光素子とで画素間隔が異なる場合があることなどから、同一画像を撮像する各画素を対応させるには、座標変換や、画素間隔の違いを補正するための補間処理が必要となることがある。
記憶装置20は、例えばハードディスクによって実現され、通路検出プログラムPG、複数種類のガボールフィルタF1〜F30(すなわちガボールフィルタF1〜F30のパラメータを表すデータなど)、及び植生判定閾値THを記憶する。この記憶装置20は、画像処理装置30からの読み出し要求に応じて上記の通路検出プログラムPG、ガボールフィルタF1〜F30、及び植生判定閾値THを画像処理装置30に出力する。
ここで、通路検出プログラムPGは、入力画像データから未舗装路の轍を通路領域として検出する処理を通路検出装置1で実現するためのプログラムである。この通路検出プログラムPGが画像処理装置30によって読み出されて実行されることにより、画像処理装置30において、中心ブロック抽出部31、植生検出部32、中心ブロック補正部33、及び通路領域検出部34の各機能が実現される。
また、ガボールフィルタF1〜F30は、2次元ガウス関数と2次元平面上を一方向に伝播する正弦波関数とを乗じて得られる2次元ガボール関数を利用した空間周波数フィルタであり、2次元ウェーブレットフィルタの一形態である。互いに直交するX軸及びY軸からなる2次元直交座標系における2次元ガボール関数GB(x,y)は以下の(1)式で表される。尚、以下の(1)式において、u0は波の角周波数、σはガウス関数の標準偏差(ガウス窓の幅)を示すパラメータである。また、2次元ガボール関数GB(x,y)は、波の方向を示すパラメータ(方向パラメータ)として角周波数u0の偏角φを有している。
以上の2次元ガボール関数GB(x,y)を利用したガボールフィルタを用いて、入力画像データをフィルタリングすることにより、入力画像の周波数特性やテクスチャ(模様)方向特性を抽出することができる。具体的には、入力画像において、方向パラメータ(偏角φ)と平行なテクスチャ方向を有すると共に、周波数パラメータ(角周波数u0)に近い周波数特性を有する領域が感度良く抽出される。
本実施形態では、方向パラメータ(角周波数u0の偏角φ)及び周波数パラメータ(角周波数u0)が異なる30種類のガボールフィルタF1〜F30が記憶装置20に記憶されている。ここで、上記の周波数パラメータは、抽出すべき轍の幅に応じて設定される。例えば、波の波長(周期)が視野上で1.5〜4度(25〜50cm)程度となるように角周波数u0が設定される。かかる設定によって、轍が感度良く抽出されやすくなる。尚、本実施形態では、30種類のガボールフィルタF1〜F30が記憶装置20に記憶されている例について説明するが、その数や種類は入力画像の解像度や画像処理装置30の処理能力に応じて適宜変更することができる。
画像処理装置30は、例えばCPU(中央処理装置)であり、記憶装置20から読み出した通路検出プログラムPGに従って、入力画像データに対して所定の画像処理を行うことにより、未舗装路の轍を通路領域として検出する。この画像処理装置30では、上記通路検出プログラムPGが実行されることによって中心ブロック抽出部31(抽出手段)、植生検出部32(植生検出手段)、中心ブロック補正部33(補正手段)、及び通路領域検出部34(検出手段)の各機能が実現される。
中心ブロック抽出部31は、小領域形成部31a、小領域選別部31b、通路領域推定部31c、及び中心線推定部31dを備えており、A/Dコンバータ10から出力される可視光画像データを複数のブロックに区分し、通路領域としての轍のおおよその位置を示すブロック(中心ブロック)を1又は複数、抽出する。尚、この中心ブロックは、轍の画像が含まれる可能性のあるブロックということもできる。
小領域形成部31aは、入力画像に含まれる通路領域を推定するために必要な通路推定情報として、通路領域の一部である可能性の高さを示す通路候補パラメータが与えられた複数の小領域を入力画像中に形成する。具体的には、入力画像データに対して、後述するフィルタリング処理、テクスチャ(模様)方向特定処理、強エッジ領域抽出処理、投票処理、消失点特定処理、及び小領域分割処理を実行することによって、上記の小領域を入力画像中に形成する。
ここで、フィルタリング処理とは、記憶装置20から読み出した複数のガボールフィルタF1〜F30を用いて入力画像における通路検出対象領域をフィルタリングすることにより、通路検出対象領域についての各方向(φ1〜φ30)の強度分布データを生成する処理である。テクスチャ方向特定処理とは、上記フィルタリング処理によって生成された強度分布データを基に、通路検出対象領域における各画素のテクスチャ方向を特定する処理である。強エッジ領域抽出処理とは、入力画像における通路検出対象領域のエッジ検出処理を行うことにより、通路検出対象領域に存在する強エッジ領域を抽出する処理である。
投票処理とは、入力画像における通路検出対象領域を奥行き方向に沿って複数に分割して得られる分割領域毎に、分割領域における各画素のそれぞれを投票元画素として選択し、その投票元画素を起点としてそのテクスチャ方向に平行な直線上に存在する画素、又は投票元画素を起点としてそのテクスチャ方向に沿うように設定された投票対象領域に含まれる画素に対して投票を行う処理である。消失点特定処理とは、上記の分割領域毎に、上記投票処理による投票結果を基に投票回数が最も大きい画素を消失点として特定する処理である。
小領域分割処理とは、上記の分割領域毎に、消失点特定処理にて特定した消失点を頂点とする領域を複数の小領域に分割し、各小領域の各々に対して、その小領域に含まれる消失点の投票元画素の比率を基に決定した通路候補パラメータを与える処理である。尚、これらフィルタリング処理、テクスチャ方向特定処理、強エッジ領域抽出処理、投票処理、消失点特定処理、及び小領域分割処理の詳細については後述する。
小領域選別部31bは、上記の小領域形成部31aによって形成された複数の小領域の各々に与えられた通路候補パラメータに基づいて、これらの小領域を通路候補領域とそれ以外の(ノイズ成分の可能性の高い)非通路候補領域とに選別する。具体的には、この小領域選別部31bは、複数の小領域の各々に与えられた通路候補パラメータに基づいて、通路領域の一部である可能性の高い小領域を通路候補領域とし、通路領域の一部である可能性の低い小領域を非通路候補領域とする一方で、通路候補領域によって一部又は全部を囲まれた非通路候補領域の通路候補パラメータの値を高くすることで非通路候補領域を通路候補領域に変更し、また、他の通路候補領域から孤立した位置に存在する通路候補領域の通路候補パラメータの値を低くすることで当該通路候補領域を非通路候補領域に変更する。尚、このような小領域選別部31bによる小領域の選別処理(ノイズフィルタリング処理)の詳細については後述する。
通路領域推定部31cは、上記の小領域選別部31bによる小領域の選別結果に基づいて、隣接する通路候補領域をグループ化することで得られる領域群の内、最も通路らしい領域群を入力画像に含まれる通路領域として選択する。具体的には、通路領域推定部31cは、通路候補領域のグループ化により得られる領域群の各々について、以下の(2)式に示される評価関数f(F,H,C,A)の値を求め、その値が最も大きい領域群を入力画像に含まれる通路領域として選択する。
但し、上記(2)式中の第1変数Fは領域群に入力画像における奥行き方向の手前側の領域が含まれるか否かを示す変数であり、第2変数Hは領域群の奥行き方向の長さを示す変数であり、第3変数Cは領域群に含まれる通路候補パラメータの値が最も大きな通路候補領域の数を示す変数であり、第4変数Aは領域群の総面積を示す変数である。また、上記(2)式中の第1重み係数k1〜第4重み係数k4は、第1変数F〜第4変数Aにそれぞれ乗算される係数である。尚、通路領域推定部31cによる通路領域の推定処理の詳細については後述する。
中心線推定部31dは、上記の通路領域推定部31cによって選択された通路領域の中心線を推定する機能を有する。具体的には、中心線推定部31dは、入力画像を奥行き方向に沿って複数に分割して得られる分割領域の各々について重心を求め、最も手前側の分割領域の重心を起点として各分割領域毎に消失点に向かう直線を引くことで仮の中心線を作成すると共に仮の中心線と各重心との間の距離の2乗和を算出する。また、入力画像の横方向に沿って起点をずらしながら複数の仮の中心線を作成すると共に複数の仮の中心線の各々について各重心との間の距離の2乗和を算出し、これら2乗和の値が最も小さい仮の中心線を通路領域の中心線として選択する。そして、選択して中心線が通るブロックを中心ブロックとする。尚、中心線推定部31dによる中心線の推定処理の詳細については後述する。
植生検出部32は、反射率比算出部32a及び判定部32bを備えており、A/Dコンバータ10から出力される赤外線画像データに基づき、赤外線画像を構成する各画素が植生領域(あるいは単体の植物)によって反射された光を撮影したものであるのか否かを検出する。
反射率比算出部32aは、InSb半導体受光素子115及びCCD受光素子118の出力をA/Dコンバータ10を用いて変換することで得た各画素の画素値と、撮影時の露光時間、ゲインなどのデータとに基づいて、水の吸収波長帯域における反射率と、近赤外帯域における反射率との比(反射率比)を算出する。
判定部32bは、反射率比算出部32aによって算出された反射率比と記憶部20に記憶されている植生判定閾値THとを比較し、観測対象物が植物か否かを画素毎に判定する。短波赤外(SWIR)と近赤外(NIR)とでの反射率比については、図3及び図4に示すようにそれぞれの材質によって植物の葉が持つ値とそれ以外が持つ値について明確な差がある。そのため、判定部32bは、この性質を利用して植生であるか否かの判定を行う。
図5は、植生検出部32における処理の流れを示す図である。図5に示すように、植生検出部32は、(1)SWIRの波長帯域に関する画像データに基づいて算出される反射率と、NIRの波長帯域に関する画像データに基づいて算出される反射率との比(反射率比)を算出し(ステップS41)、(2)その反射率比と所定の閾値とを比較することによって、観測対象物が植物か否かを判別する(ステップS42)。
なお、植生判定閾値THは、例えば、晴れの場合には2.0〜3.0の間の値を用い、雨天の場合には2.5〜4.0の間の値を用いるよう状況に切り分けて設定するか、共通で2.5〜3.0の間の値を設定することができる。
中心ブロック補正部33は、植生割合算出部33a及び中心ブロック変更部33bを備えており、植生検出部32の出力に基づいて、中心ブロック抽出部31で抽出された中心ブロックの位置を補正する。
植生割合算出部33aは、中心ブロックの周囲のブロック(例えば、横一列のブロック)それぞれにおける植物の割合を計算する。
中心ブロック変更部33bは、植生割合算出部33aで算出された植物の割合の計算結果に基づいて、最も植物の割合が少ないブロックを「補正済み中心ブロック」とする。
ここで、図6〜図8を参照して中心ブロック補正部33による処理内容について具体例を示して説明する。図6は、中心ブロック抽出部31が処理対象とした画像50の一例と、中心ブロック抽出部31によって画像50から抽出された中心線51と中心ブロック52の一例を示す図である。領域53及び54は、中心ブロック52を中心として植物の割合を計算する対象となる周囲の(左右の)領域である。この例では、図7に示すように、中心ブロック52の左右5ブロックずつ(ブロック531〜535及びブロック541〜545)が計算対象となる。
植物の割合は、植生検出部32による判定の結果に基づいて、植生割合算出部33aによって、植物と判定された画素の個数をブロック毎に積算することで算出される。例えば図7の中心ブロック52については、中心ブロック52、ブロック531〜535及びブロック541〜545について、各ブロックを構成する複数の画素(各ブロックがn画素×n画素とするとn×n個分)のうち植物と判定された画素の個数がブロック毎に算出される。そして、中心ブロック変更部33bによって、中心ブロック52、ブロック531〜535及びブロック541〜545のなかで最も植物と判定された画素の個数の少なかったブロックが、新たな中心ブロック52として選択される(図8参照)。中心ブロック補正部33では、中心ブロック抽出部31によって抽出された各中心ブロックについてそれぞれ補正処理が行われる。
尚、図9及び図10は、図6及び図8に示した画像対して通路領域検出部34によって通路領域55を検出した場合の結果の一例を示す図である。中心ブロックの補正処理を行っていない場合(図9の場合)には草地部分が中心ブロックとなっていたため、そのブロックと同様の特徴量をもつ植生領域に通路領域55が抽出されてしまっている。他方、中心ブロック52の補正処理を行った場合(図10の場合)には、中心ブロック52を草地部分から植物の無い部分へと移動させているため、通路領域55が植生領域以外の領域(この例では轍の領域)に抽出できている。
通路領域検出部34は、第1算出部34a(第1算出手段)、第2算出部34b(第2算出手段)、重み決定部34c(重み決定手段)、及び抽出部34d(ブロック抽出手段)を備えており、中心ブロックの特徴量と同様の特徴量を有する領域(ブロック)を入力画像から抽出することによって通路領域を検出する。具体的には、以下に示すような特徴量の重み付けを行うことによって、中心ブロックの特徴量と同様の特徴量を有するブロックを抽出する。
すなわち、通路領域検出部34によって用いられる特徴量としては、例えば次のような特性を用いることができる。
(a)輝度の平均値:1種類
(b)輝度の標準偏差:1種類
(c)ガボールフィルタによって得られる特徴量:30種類
第1算出部34aは、中心ブロック補正部33で補正された中心ブロックと、この中心ブロックの左右方向に隣接するブロックとを基準ブロックとし、基準ブロックについての特徴量の平均値及び標準偏差を特徴量の種類毎に求める。第2算出部34bは、全てのブロックについての特徴量の平均値を特徴量の種類毎に求める。尚、第2算出部34bが平均値を求める際には、必ずしも全てのブロックを用いる必要はない。例えば、轍の抽出に全く関与しない画像(例えば、地平線の上方の画像)が含まれるブロックを除外し、残りのブロックについての特徴量の平均値を求めるのが望ましい。
重み決定部34cは、第1算出部34aで求められた基準ブロックについての平均値と第2算出部34bで求められた複数のブロックの全てについての平均値との差が大きな特徴量については重みが重くなるように特徴量毎の重みを決定する。また、第1算出部34aで求められた基準ブロックについての標準偏差が小さな特徴量については重みが重くなるように特徴量毎の重みを決定する。
ここで、第1算出部34aで求められる基準ブロックについてのi番目(iは1≦i≦37を満たす整数)の特徴量の平均値及び標準偏差をそれぞれμ^i,σ^iとし、第2算出部34bで求められる複数のブロックの全てについての特徴量の平均値をμiとし、a,b,cを任意の定数とする。尚、表記の都合上、上記の記号「μ^」は、文字「μ」の上部にハット記号「^」が付された記号であることを意味している。同様に、上記の記号「σ^」は、文字「σ」の上部にハット記号「^」が付された記号であることを意味している。重み決定部34cは、以下の(3)式を用いてi番目の特徴量毎の重みw′iを決定する。
上記(3)式を参照すると、右辺第1項は基準ブロックにおける特徴量の全体に対する偏りを表しており、右辺第2項はその特徴量の基準ブロック内での広がりを表している。右辺第1項が大きく右辺第2項が大きい場合には、その特徴量は基準ブロックとそれ以外のブロックとの間では値が大きく異なる一方で、基準ブロック間では近い値になる。このため、このような特徴量は、未舗装路の轍の特徴を良く表していると考えられるため重みを大きくしている。
また、上記(3)式を参照すると、重みw′iは負の値をとる場合がある。重み決定部34cは、得られた重みw′iが負の値である場合には、その値を零に決定する。また、どのような画像であっても重みほぼ零に近い特徴量については、精度を保ったまま処理に要する時間を短縮するために削除する処理を行う。更に、重み決定部34cは、以下の(4)式を用いて正規化した重みwiを求める。
また、各ブロックの特徴量の分布は、図11に示す通り、平均値μに関して対称ではなく、偏った分布になることが多い。図11は、特徴量の分布の一例を示す図である。具体的には、特徴量の分布が、図11中の符号Dを付した曲線の通り、値が平均値μよりも小さな領域では分布が広くなり、値が平均値μよりも大きな領域ではμ+2σ程度の範囲に集中する分布になる。
このため、重み決定部34cは、以下の(5)式を用いて各特徴量を正規化するための正規化係数siも求める。
尚、分布の偏りのない特徴量を用いる場合や、基準ブロックのサンプル数が多く特徴量の分布が正確に分かる場合には、必ずしも上記の正規化係数siを求める必要はなく、別の正規化方法を用いることができる。
抽出部34dは、重み決定部34cで重み付けされた特徴量を用いて画像に含まれる未舗装路の轍を抽出する。具体的には、処理対象のブロックにおけるi番目の特徴量の値をfi、中心ブロックにおけるi番目の特徴量の値をfciとすると、抽出部34dは、以下の(6)式に示す評価関数Eの値が所定値Tよりも大きい場合に、その処理対象のブロックに轍の画像が含まれると評価してそのブロックを抽出する。尚、上記の所定値Tは、前述した(3)式中の変数a,b,cの値や、轍の画像の性質に応じて適宜設定される。
RAM40は、画像処理装置30が各種画像処理を実行する上で必要なデータや、上記の入力画像データを必要に応じて一時的に記憶するために使用される書換え可能な揮発性メモリである。
次に、上記構成における通路検出装置1の動作について説明する。以下では、通路検出装置1が、車載カメラ100から得られる画像から轍を抽出して通路領域を検出する検出動作を行う場合について説明する。尚、検出動作時には、車載カメラ100及び通路検出装置1を搭載する不図示の車両が未舗装路を走行しており、車載カメラ100からは轍が写り込んだ入力画像が得られるものとする。
図12は、検出動作の全体的な流れを示すフローチャートである。尚、図12に示すフローチャートは、車両の走行中に所定の時間間隔で繰り返し実行される。検出動作が開始されると、車載カメラ100から入力画像がA/Dコンバータ10に入力されてディジタルデータに変換され、入力画像データとして画像処理装置30に出力される(ステップS11:画像入力ステップ)。そして、まず通路領域としての轍のおおよその位置を示す中心ブロックを抽出する処理が行われる(ステップS12:抽出ステップ)。図13は中心ブロックを抽出する処理の詳細を示すフローチャートであり、図14は車載カメラ100から得られる入力画像の一例を示す図である。ここでは、図14(a)に示す通り、轍が写り込んだ入力画像が得られたとする。
また、以下では、図14(b)に示す通り、入力画像の横方向をX軸方向、縦方向をY軸方向とし、入力画像の座標(X,Y)=(0,0)〜(639,479)の各画素に対応する輝度データをB(0,0)〜B(639,479)と表記する。つまり、入力画像データは、これら輝度データB(0,0)〜B(639,479)の集合である。このような入力画像データは、画像処理装置30によってRAM40に一旦記憶される。
図13に示す処理が開始されると、まず画像処理装置30の中心ブロック抽出部31に設けられた小領域形成部31aは、RAM40から入力画像における通路検出対象領域に相当する入力画像データを読み出すとともに、記憶装置20からガボールフィルタF1〜F30を読み出し、各ガボールフィルタF1〜F30を用いて入力画像データをフィルタリングすることにより、各方向の強度分布データを生成する(ステップS21:フィルタリング処理)。
本実施形態では、入力画像の全領域が上記の通路検出対象領域に設定されている場合を例示して説明する。つまり、RAM40から入力画像の全領域に相当する入力画像データが読み出される。尚、入力画像から水平線を抽出可能である場合には、その水平線より下の領域(つまり地面の領域)を通路検出対象領域として設定しても良い。このように、確実に通路が存在すると推定される領域のみを通路検出対象領域とすることにより、以下で説明する画像処理の負荷を軽減でき、処理時間を短縮することができる。
図15は、小領域形成部31aのフィルタリング処理に関する説明図である。図15(a)に示す通り、小領域形成部31aは、ガボールフィルタF1〜F30を用いたフィルタリング処理として、入力画像において、ある画素を中心画素とする畳み込み領域に含まれる各画素の輝度データと、ガボールフィルタ、つまり2次元ガボール関数GB(x,y)との畳み込み演算を行い、その演算結果をガボールフィルタの方向パラメータφに対応する中心画素の強度として取得する。
つまり、小領域形成部31aは、まず、ある画素を中心画素とする畳み込み領域に含まれる各画素の輝度データとガボールフィルタF1との畳み込み演算を行い、その演算結果をガボールフィルタF1の方向パラメータφ1に対応する中心画素の強度として取得する。ここで、各ガボールフィルタF1〜F30を、実数部のフィルタと虚数部のフィルタとに分けて作成しておくことにより、実数部のフィルタを用いて得られた強度と、虚数部のフィルタを用いて得られた強度とをそれぞれ2乗して加算し、その加算値の平方根を求めることで最終的な強度を取得することができる。
続いて、小領域形成部31aは、ガボールフィルタF2に切り替えて同様に畳み込み演算を行い、その演算結果をガボールフィルタF2の方向パラメータφ2に対応する中心画素の強度として取得する。以下、同様に、小領域形成部31aは、ガボールフィルタを順次切り替えながら畳み込み演算を行うことにより、その演算結果を各ガボールフィルタF1〜F30の方向パラメータφ1〜φnに対応する中心画素の強度として取得する。
小領域形成部31aは、上記のようなフィルタリング処理を、入力画像の座標(0,0)〜(639,479)の各画素のそれぞれについて行うことにより、図15(b)に示すような各方向の強度分布データを生成してRAM40に記憶する。尚、図15(b)では、座標(0,0)〜(639,479)の各画素のそれぞれを中心画素として得られた強度データをI(0,0)〜I(639,479)として表記している。
尚、図15(a)から分かる通り、入力画像の端部に近い画素を中心画素とする場合、畳み込み領域が入力画像からはみ出てしまうため、この場合には予め設定した輝度データ(例えば白データ等)を入力画像からはみ出ている畳み込み領域の輝度データとして使用すれば良い。また、畳み込み領域の大きさは、検出対象の通路の大きさに応じて適宜変更すれば良いが、例えば幅25cm〜50cmの車輪跡に相当する轍を検出対象とする場合には、その幅に相当する画素数(32画素)以上の大きさ、例えば50×50画素の大きさとすることが望ましい。
以上説明したステップS21の処理が終了すると、小領域形成部31aは、RAM40から各方向の強度分布データを読み出し、それら強度分布データを基に入力画像における各画素のテクスチャ方向を特定する(ステップS22:テクスチャ方向特定処理)。具体的には、例えば座標(0,0)の画素に着目した場合、各方向の強度分布データの中から強度データI(0,0)が最も大きいものを探索し、その最大の強度データI(0、0)を含む強度分布データに対応する方向を、座標(0,0)の画素のテクスチャ方向として特定する。例えば、方向φ3に対応する強度分布データに最大の強度データI(0,0)が含まれている場合、方向φ3が座標(0,0)の画素のテクスチャ方向となる。
小領域形成部31aは、上記のようなテクスチャ方向の特定処理を、座標(0,0)〜(639,479)の各画素について行うことにより、各画素のテクスチャ方向を特定し、その特定結果をRAM40に記憶する。図16は、小領域形成部31aのテクスチャ方向特定処理に関する説明図であって、(a)は各画素のテクスチャ方向の特定結果であり、(b)は入力画像とテクスチャ方向の特定結果とを重ねて表示したものである。尚、この図16では、説明の便宜上、テクスチャ方向の特定結果を、テクスチャ方向を指し示すベクトル線で表しているが、実際にはテクスチャ方向の特定結果は、その方向を表す値(例えばテクスチャ方向がφ1であればφ1の値)によって構成されている。
不整地上に存在する轍等の通路は、車両が複数回その場所を走行することにより、地面や草むらが踏み起こされたり、踏み固められたりした結果残るものであるため、図14(a)に示す通り、その痕跡は入力画像上において不連続且つ不明瞭な帯状やスジ状の疎らな領域として観察される。そこで、上述した入力画像の波の成分を抽出するステップS21及びステップS22の処理を実施することより、通路を形成する模様の間隔は不定でなだらかではあるが、通路の進行方向に平行な波の成分として捕らえることができる。
以上説明したステップS22の処理が終了すると、小領域形成部31aは、入力画像データを基に所定のエッジ検出処理を行うことにより、入力画像に存在する強エッジ領域を抽出し、その抽出結果をRAM40に記憶する(ステップS23:強エッジ領域抽出処理)。ここで、強エッジ領域の抽出手法としては公知の技術を採用することができる。例えば、X軸方向のソベルフィルタとY軸方向のソベルフィルタを適用して、それらの強度の2乗和が一定の閾値を超えた画素を探索し、その閾値を超えた画素から一定距離以内の領域を強エッジ領域として抽出する。
上記ステップS22の処理が終了すると、小領域形成部31aは、入力画像における各画素のそれぞれを投票元画素として順次選択し、当該投票元画素を起点としそのテクスチャ方向に平行な直線上に存在する画素に対して投票を行う(ステップS24:投票処理)。図17〜図19は、小領域形成部31aの投票処理に関する説明図である。小領域形成部31aは、まず、図17に示す通り、RAM40のメモリ空間上に、投票回数を集計するための投票集計領域を入力画像と同サイズ(つまり、640×480画素数分の投票回数を集計可能なサイズ)で確保する。
そして、小領域形成部31aは、図18(a)に示す通り、ある画素を投票元画素として選択した場合、各画素のテクスチャ方向の特定結果から投票元画素のテクスチャ方向を把握し、投票元画素を起点としそのテクスチャ方向に平行な直線上に存在する画素(投票対象画素)に対して投票を行い、その投票結果を図18(b)に示す通りRAM40上の投票集計領域に反映する。つまり、図18(b)から分かるように、RAM40上の投票集計領域において投票対象画素に対応する記憶領域に投票値「1」が加算される。
小領域形成部31aは、上記のような投票処理を各画素について行い、その投票結果を順次RAM40上の投票集計領域に反映する。ここで、小領域形成部31aは、上記のような投票処理を行う際、強エッジ領域抽出処理にて抽出された強エッジ領域の周辺(例えば、2画素以内)に含まれる画素を投票元画素から除外する。この理由については後述する。
尚、上述の投票処理では、投票元画素を起点としそのテクスチャ方向に平行な直線上に存在する投票対象画素に対して投票を行う場合を説明したが、これに限らず、投票元画素を起点としてそのテクスチャ方向に沿うように設定された投票対象領域に含まれる画素(投票対象画素)に対して投票を行うようにしても良い。この投票対象領域は、例えば図19(a)に示すように、テクスチャ方向に平行な帯状(長方形状)のものでも良いし、また、図19(b)に示すように、円弧状或いは三角形状のものでも良い。
ここで、図19(a)に示すような帯状の投票対象領域を設定する場合には、上述したテクスチャ方向に平行な直線上に存在する投票対象画素に対して投票を行う場合と同様に、投票対象領域に含まれる投票対象画素のそれぞれに対して平等に投票すれば良い。つまり、RAM40上の投票集計領域において、各投票対象画素に対応する記憶領域に平等に投票値「1」を加算する。
これに対し、図19(b)に示すような円弧状或いは三角形状の投票対象領域を設定する場合には、投票元画素と投票対象画素との間の距離に応じて投票値を変更することが望ましい。具体的には、投票元画素から遠い距離に位置する投票対象画素の投票値を小さくする(例えば、投票値=1/投票元画素からの距離)。つまり、投票元画素に近い位置の投票対象画素の投票値は「1」又は「1」に近い値となるが、投票元画素から遠い位置の投票対象画素の投票値は「0.5」等の小数点以下の値となる。更には、投票対象領域において同じ距離に位置する投票対象画素の総投票値が「1」となるように各投票対象画素の投票値を決定することが望ましい。つまり、例えば同じ距離に位置する投票対象画素が4つ存在すると仮定すると、それら4つの各投票対象画素に対する投票値をそれぞれ「0.25」とする。
このように円弧状或いは三角形状の投票対象領域を設定した場合に、投票元画素と投票対象画素との間の距離に応じて投票値を変更する理由は、投票元画素から遠い位置にある投票対象画素は、他の投票対象領域と重なり合う確率が高く、近い位置にある投票対象画素と比べて投票されやすい傾向にあり、後述する消失点を正確に特定することが困難となるためである。また、円弧状或いは三角形状の投票対象領域を設定した場合、その中心角度(投票元画素を起点とする角度)は、ガボールフィルタF1〜F30の方向パラメータφの変化分と同一にすることが望ましい。
続いて、小領域形成部31aは、図20に示す通り、投票処理による投票結果(つまり、RAM40上の投票集計領域に集計された投票回数)を基に、投票回数が最も大きい画素を入力画像における消失点として特定する(ステップS25:消失点特定処理)。図20,図21は、小領域形成部31aの消失点特定処理に関する説明図である。轍等の通路の波模様は車両等から見ると完全に平行ではないが同じ消失点を共有していると推測される。このため、上記のような投票処理によって消失点と推測される位置(画素)に投票を行い、統計的に通路と平行している波模様が多い検出結果を活用することにより、消失点を特定することができる。
ここで、入力画像において通路以外に、例えば木や電柱、看板等のコントラストの高い物体が写り込んでいた場合、それらの模様は上記の投票回数の集計に大きな影響を及ぼすことになる。そこで、上述したように、投票処理を行う際には、強エッジ領域抽出処理にて抽出された強エッジ領域に含まれる画素を投票元画素から除外することにより、木や電柱、看板等のコントラストの高い物体の延長線上が消失点として特定されることを防止することができる。
ところで、図20に示す通り、入力画像中に存在する轍等の通路が水平線に向かって一直線に延びているような場合では消失点が1箇所において特定されることになるが、図21に示す通り、入力画像中に存在する通路がカーブしているような場合には、入力画像の奥行き方向に沿って消失点の特定箇所が変化することになる。このような場合、入力画像の全領域(通路検出対象領域の全領域)を一度に処理すると、正確な消失点を得ることができなくなる。
そこで、上述の投票処理及び消失点特定処理を、図22に示す通り、通路領域検出対象領域(ここでは入力画像の全領域)を奥行き方向に沿って複数(M個)に分割して得られる長方形状の分割領域ごとに行うことが望ましい。図22,図23は、小領域形成部31aの小領域分割処理に関する説明図である。以下では、この分割領域をスライスと呼び、入力画像の最下段から最上段までの各スライスの符号をSL0〜SLMとする。つまり、各スライスSL0〜SLMの各々について上述の投票処理及び消失点特定処理を行うことにより、各スライスSL0〜SLMの各々について消失点が得られることになる。尚、図22では、スライスSL0の消失点P0とスライスSL1の消失点P1とを代表的に図示している。
続いて、小領域形成部31aは、図22に示す通り、各スライスSL0〜SLMの各々を、それぞれの消失点を頂点として放射状に引かれた複数の直線とスライスの境界線とで囲まれた複数(N個)の小領域に分割し、各小領域の各々に対して、その小領域に含まれる消失点の投票元画素の比率を基に決定した通路候補パラメータを与える(ステップS26:小領域分割処理)。各スライスSL0〜SLMの各々に存在する轍等の通路は、全てその消失点に向かう直線で表されるため、上記の小領域のいずれかに通路が存在すると推定される。
尚、上記の通路候補パラメータは、入力画像に含まれる通路領域を推定するために必要な通路推定情報の1つであり、通路領域の一部である可能性の高さを示すパラメータである。小領域の各々に設定する通路推定情報としては、例として以下の5つが挙げられる。
(1)その小領域のY方向(縦方向)インデックスIdy
(2)その小領域のX方向(横方向)インデックスIdx
(3)その小領域の消失点座標
(4)その小領域の通路検出強度(通路候補パラメータ:0,1,2の何れかの数値)
(5)その小領域の上下端座標
ここで、小領域のY方向インデックスIdyとは、その小領域のY方向の位置を示すパラメータであり、例えば、図22に示す通り、スライスSL0に存在する全ての小領域のY方向インデックスIdyは「0」となる。また、小領域のX方向インデックスIdxとは、その小領域のX方向の位置を示すパラメータであり、例えば、図22に示すように、スライスSL0に存在する左端の小領域のX方向インデックスIdxは「0」となる。
小領域の消失点座標とは、その小領域が存在するスライスの消失点の座標であり、例えば、図22に示す通り、スライスSL0に存在する全ての小領域の消失点座標は、スライスSL0の消失点P0の座標となる。また、小領域の通路検出強度とは、通路候補パラメータに相当し、「0」がその小領域が通路領域の一部である可能性が最も低く、「2」がその小領域が通路領域の一部である可能性が最も高いことを示している。
具体的には、小領域形成部31aは、小領域の通路検出強度を以下のように決定する。つまり、小領域形成部31aは、まず、各小領域の各々について、その小領域に含まれる画素からその消失点の投票元画素(消失点を向いているテクスチャ方向を有する画素)を有効投票画素(共通項)として抽出する。そして、小領域形成部31aは、その小領域に含まれる有効投票画素数を、その小領域に含まれる全画素数で除算することにより、その小領域における有効投票画素の比率rを算出する。そして、小領域形成部31aは、上記のように算出した有効投票画素の比率rと第1閾値TH1及び第2閾値TH2(ただし、TH1<TH2)とを比較し、r<TH1の場合にはその小領域の通路検出強度を「0」とし、TH1≦r<TH2の場合にはその小領域の通路検出強度を「1」とし、r≧TH2の場合にはその小領域の通路検出強度を「2」とする。尚、ここでは、消失点を向いているテクスチャ方向を有する画素を有効投票画素(共通項)としたが、小領域の周辺で最も多い向きのテクスチャ方向に一致する画素を有効投票画素とするなど、様々な共通性を利用しても良い。
図23に示す通り、以下では、その小領域の通路検出強度が「2」の場合、つまりその小領域が通路領域の一部である可能性が最も高い場合には、その通路を濃い色で消失点に向かう1本の直線で表現し、その小領域の通路検出強度が「1」の場合、つまりその小領域が通路領域の一部である可能性がある場合には、その通路を薄い色で消失点に向かう1本の直線で表現するものとする。また、その小領域の通路検出強度が「0」の場合、つまりその小領域が通路領域の一部である可能性が最も低い場合には、通路を示す直線を描画しないものとする。
以上説明したステップS26の処理が終了すると、中心ブロック抽出部31に設けられた小領域選別部31bは、各小領域に与えられた通路推定情報(特に通路検出強度)に基づいて、これらの小領域を通路候補領域(通路検出強度が「1」以上の小領域)とそれ以外の非通路候補領域(通路検出強度が「0」の小領域)とに選別する(ステップS27:ノイズフィルタリング処理)。図24〜図26は、小領域選別部31bのノイズフィルタリング処理に関する説明図である。
小領域選別部31bは、図24に示す通り、処理対象の小領域Wに対して、隣接する6つの小領域a,b,c,d,e,fに設定された通路検出強度を参照する。尚、これら6つの小領域a〜fとしては、各々の中心線の位置を基準に、処理対象の小領域Wの左上、右上、左、右、左下、右下に位置する最も近い小領域を選択する。そして、小領域選別部31bは、上記の6つの小領域a〜fに関して以下の通路候補追加条件を満たす場合に、処理対象の小領域Wの通路検出強度を「1」に変更する。
つまり、この時の処理対象の小領域Wは通路候補領域として選別され、通路候補領域の1つとして追加される。
通路候補追加条件:
(a or b)+ c + d + (e or f) ≧ 3
且つ
処理対象の小領域Wの通路検出強度が「0」
ここで、a〜fは、6つの小領域a〜fの通路検出強度が「1」以上の時に「1」、通路検出強度が「0」の時に「0」となる変数である。また、(a or b)は、aかbの少なくとも一方が「1」以上の時に「1」、両方が「0」の時に「0」となる論理式である。
一方、小領域選別部31bは、上記の6つの小領域a〜fに関して以下の通路候補削除条件を満たす場合に、処理対象の小領域Wの通路検出強度を「0」に変更する。つまり、この時の処理対象の小領域Wは非通路候補領域(ノイズ成分)として選別され、通路候補領域から削除される。
通路候補削除条件:
a=0 且つ b=0 且つ e=0 且つ f=0
または
c=0 且つ d=0
上記のような通路候補追加条件及び通路候補削除条件によって処理対象の小領域は、図25に示す通り、通路候補領域と非通路候補領域とに選別される。図25(a)は処理対象の小領域Wの通路検出強度が「0」から「1」に変更される場合(通路候補領域として選別される場合)を示し、図25(b),(c)は処理対象の小領域Wの通路検出強度が「1」から「0」に変更される場合(非通路候補領域として選別される場合)を示し、図25(d)は処理対象の小領域Wの通路検出強度が「0」のまま変わらない場合を示している。尚、図中の数字はその小領域の通路検出強度を示している。
小領域選別部31bは、上記のようなノイズフィルタリング処理を入力画像中の全ての小領域について順番に実施すると共に、全ての小領域の通路検出強度が変化しなくなるまでこの処理を繰り返す。例え通路検出強度が「1」以上の小領域であっても、他の通路候補領域である小領域の集団から孤立した位置に存在する小領域であれば、草や樹木等の誤検出によるノイズ成分であると考えられるため、上記のようなノイズフィルタリング処理を行うことにより、ノイズ成分である小領域を通路候補領域から除去することができる。
一方、例え通路検出強度が「0」の小領域であっても、周りを通路検出強度が「1」以上の小領域によって囲まれている場合には通路領域の一部である可能性が高い。このため、そのような通路検出強度が「0」の小領域を通路検出強度「1」の小領域に変更して通路候補領域に追加することにより、精度良く通路領域の一部である小領域(通路候補領域)を抽出することができる。
以上のノイズフィルタリング処理を行う前の各小領域に設定された通路検出強度を基に各小領域に存在する通路を直線で表現したものを図26(a)に示し、ノイズフィルタリング処理を行った後の各小領域の通路検出強度を基に各小領域に存在する通路を直線で表現したものを図26(b)に示す。これらの図に示す通り、ノイズフィルタリング処理を行うことにより、他の通路候補領域である小領域の集団から孤立した位置に存在する小領域はノイズ成分として除去されていることが分かる。
図26(b)に示す通り、ノイズフィルタリング処理後の通路候補領域(ノイズフィルタリング処理により通路検出強度が「1」以上となった小領域)は、いくつかの連続した集団を形成している場合が多い。そこで、中心ブロック抽出部31に設けられた通路領域推定部31cは、互いに隣接している通路候補領域をグループ化することにより、連続した通路候補領域の領域群(以下、クラスタと称す)を作成する(ステップS28:クラスタリング処理)。
具体的には、通路領域推定部31cは、それぞれのクラスタを別々に取り扱うために、ラベリングの手法を用いて、クラスタ固有のIDを各通路候補領域に与える処理を行う。図27,図28は、通路領域推定部31cのクラスタリング処理に関する説明図である。この図27(a)に示す通り、クラスタリング処理の途中状態では、通路領域推定部31cは、最上段のスライスSLMにおける左端の小領域からX方向に順番に通路検出強度を確認し、その小領域が通路候補領域(通路検出強度が「1」以上)であればクラスタIDを与え、その小領域が非通路候補領域(通路検出強度が「0」)であればクラスタIDを与えない。
尚、通路候補領域にクラスタIDを与える場合、以下の3つの規則に従うものとする。
(1)周囲にクラスタIDを持った小領域が無い場合、新しいクラスタIDを与える(図27(a)参照)。
(2)周囲にクラスタIDを持った小領域が1つ存在する場合、それと同じクラスタIDを与える(図27参照)。
(3)周囲にクラスタIDを持った領域が2つ以上存在する場合、最も若い番号のクラスタIDを与え、これらのクラスタIDが同一のものであると記録しておく(図27(b)参照)。
通路領域推定部31cは、上記の3つの規則に従って入力画像中の全ての通路候補領域にクラスタIDを与えた後、もう一度、入力画像全体を走査することにより、同一であると記録したクラスタIDを1つのクラスタID(最も若い番号のクラスタID)に置き換える。以上のようなクラスタリング処理によって、互いに隣接している通路候補領域に同一のクラスタIDが与えられてグループ化され、連続した通路候補領域の領域群であるクラスタが作成される。図28に示す通り、クラスタリング処理によって入力画像中に存在する通路候補領域が3つのクラスタCL1,CL2,CL3にグループ化されていることが分かる。
続いて、通路領域推定部31cは、上記のクラスタリング処理によって作成されたクラスタから最適なクラスタ(最も轍等の通路らしいクラスタ)を、入力画像に含まれる通路領域として選択する(ステップS29:最適クラスタ選択処理)。具体的には、通路領域推定部31cは、前述した(2)式で示される評価関数f(F,H,C,A)を用いて最適なクラスタ(以下、最適クラスタと称す)を選択する。尚、本実施形態では、第1重み係数k1=10000、第2重み係数k2=1000、第3重み係数k3=50、第4重み係数k4=1としている。
図29,図30は、通路領域推定部30cの最適クラスタ選択処理に関する説明図である。図29に示す通り、上記の評価関数f(F,H,C,A)において、Fは現在地との連続性を示す第1変数であり、評価対象のクラスタが最も手前(最下段)のスライスSL0を含んでいる時に「1」、含んでいない時に「0」となる。また、Hは奥行き方向の長さを示す第2変数であり、評価対象のクラスタに含まれるスライス数で表される。また、Cは有力な通路候補領域の数を示す第3変数であり、評価対象のクラスタに含まれる通路検出強度「2」の通路候補領域の数で表される。また、Aは総面積を示す第4変数であり、評価対象のクラスタに含まれる通路検出強度「1」及び「2」の通路候補領域の数で表される。
上述した通り、評価関数f(F,H,C,A)において現在地との連続性を示す第1変数であるFに最も大きな重み付け係数k1が与えられている。これは、評価対象のクラスタが現在地(入力画像の最も手前側の領域)との連続性を有している場合には、その評価対象のクラスタは轍等の通路である可能性が極めて高いからである。尚、上述した重み付け係数k1〜k4の値は一例であり、実験等を行って適宜決定すれば良い。
通路領域推定部31cは、例えば図28に示した通り、クラスタリング処理によって3つのクラスタCL1,CL2,CL3が作成されているとすると、これら3つのクラスタCL1,CL2,CL3の各々について上記の評価関数f(F,H,C,A)の値を求め、この値が最も大きいクラスタを最適なクラスタ(入力画像に含まれる通路領域)として選択する。3つのクラスタCL1,CL2,CL3のうち、クラスタCL3が最も手前側(最下段)のスライスSL0を含んでいるため、評価関数f(F,H,C,A)の値が最も大きくなる。このため、図30に示す通り、クラスタCL3が最適なクラスタ(入力画像に含まれる通路領域)として選択されることになる。
次に、中心ブロック抽出部31に設けられた中心線推定部31dは、上記の最適クラスタ選択処理によって選択された最適クラスタ、つまり入力画像に含まれる通路領域の中心線を推定する(ステップS30:中心線推定処理)。図31は、中心ブロック抽出部31における中心線推定部30dの中心線推定処理を表すフローチャートである。図31に示す通り、中心線推定部31dは、まず、各スライスSL0〜SLMの重心を算出する(ステップS30a)。
具体的には、スライス内に存在する小領域を台形としてそれぞれの重心の位置を求め、それらの位置を通路検出強度で重みを付けて平均化して得られる位置を、そのスライス全体の重心とする。図32〜図34は、中心線推定部31dの中心線推定処理に関する説明図である。以上の処理を行うことによって、図32(a)に示す通り、各スライスSL0〜SLMの重心が求められる。
続いて、中心線推定部31dは、仮の中心線を作成する(ステップS30b)。具体的には、中心線推定部31dは、1回目の仮の中心線を作成する場合には、図33(a)に示す通り、最下段のスライスSL0の重心を起点として、そのスライスSL0の消失点P0へ向かう方向に直線を引く。そして、中心線推定部31dは、図33(b)に示す通り、上記の直線が次のスライスSL1との境界に達すると、その直線と境界との交点からスライスSL1の消失点P1へ向かう方向に直線を引く。中心線推定部31dは、図33(c)に示すように、上記のような処理を繰り返すことにより得られる折れ線を1回目の仮の中心線とする。
そして、中心線推定部31dは、上記のように作成した仮の中心線と、各スライスSL0〜SLMの重心との間の距離(X方向の差)の2乗和を計算して記録する(ステップS30c)。ここで、中心線推定部31dは、上述したステップS30b及びS30cをループすることにより、複数の仮の中心線を作成すると共に、それぞれの仮の中心線について各スライスSL0〜SLMの重心との間の距離の2乗和を計算して記録する。
具体的には、中心線推定部31dは、2回目以降の仮の中心線を作成する場合、前回の仮の中心線の起点から右に1°ずつずらした点を起点として、1回目と同様な手法で仮の中心線を作成し2乗和を記録する。そして、中心線推定部31dは、作成した仮の中心線が全てのスライスの重心の右側を通っていた場合、右方向の探索を打ち切り、それ以降は、1回目の仮の中心線の起点から左に1°ずつずらした点を起点として、1回目と同様な手法で仮の中心線を作成し2乗和を記録する。更に、中心線推定部31dは、作成した仮の中心線が全てのスライスの重心の左側を通っていた場合、左方向の探索を打ち切り、ループを終了して次のステップS30dへ移行する。
中心線推定部31dは、上述したステップS30b及びS30cのループにより、複数の仮の中心線を作成してそれらの2乗和を記録すると、その2乗和の値が最も小さい中心線を最適な中心線として選択する(ステップS30d)。尚、仮の中心線と各スライスSL0〜SLMの重心との間の距離の2乗和を計算する処理のイメージを図32(b)に示しており、最適な中心線の選択結果を示すイメージを図32(c)に示している。また、図30において最適クラスタとして選択されたクラスタCL3について中心線推定処理を行うことで得られた最適な中心線のイメージを図34に示している。
以上の処理が終了すると、入力画像データが、一辺が20画素程度からなる正方形のブロックに区分される。そして、以上の処理にて得られた中心線が通るブロックが中心ブロックとして抽出される(ステップS31)。図35は、推定された中心線から中心ブロックが抽出される様子を示す図である。いま、図35(a)に示す画像に対して以上説明した処理が行われて、図中の中心線CLが得られたとする。
中心線推定部31dは、図35(b)に示す通り、入力画像データを複数のブロックBに区分する。尚、図35(b)に示す例では横方向に約30、縦方向に約23のブロックBに区分されている。そして、中心線推定部31dは、図35(a)に示す中心線CLが通るブロックを中心ブロックCBとして抽出する。ここで、図35(a)に示す中心線CLは画像の最下部から画像の高さの2/3程度までの領域に亘るものであるが、図35(b)に示す6個の中心ブロックCBは画像の最下部から画像の高さの1/4程度までの領域に限られている。これは、画像の上部に行くほど画像が不鮮明になり、中心ブロックが誤った位置に検出される可能性が高くなるためである。
中心ブロックCBの抽出が終了すると(あるいは図12のステップS12の処理と並行してまたはステップS12の処理に先行して)、植生検出処理が植生検出部32で行われる(図12のステップS13:植生検出ステップ)。具体的には、上述したように、植生検出部32は、赤外線画像の画像データに基づき、画像中の画素毎に、SWIRの波長帯域に関する画像データに基づいて算出される反射率と、NIRの波長帯域に関する画像データに基づいて算出される反射率との比(反射率比)を算出し(図5のステップS41)、(2)その反射率比と所定の閾値とを比較することによって、観測対象物が植物か否かを判別する(図5のステップS42)。
ステップS13で入力画像データの各画素について、植生か否かの検出処理が終了すると、次にステップS12で抽出された中心ブロックCBを補正する処理が、中心ブロック補正部33で行われる(ステップS14:中心ブロックの補正ステップ)。具体的には、上述したようにして、中心ブロック補正部33の植生割合算出部33aが、中心ブロックの周囲のブロック(例えば、横一列のブロック)それぞれにおける植物の割合を計算する。次に、中心ブロック変更部33bが、植生割合算出部33aで算出された植物の割合の計算結果に基づいて、最も植物の割合が少ないブロックを「補正済み中心ブロック」とする。
図36は、補正された中心ブロックの一例を示す図である。図35(b)に示す例では、轍と草との境界付近に6個の中心ブロックCBが配置されていた。これに対し、図36に示す例では、轍と草との境界付近ではなく、轍の略中心付近に位置するブロックが抽出されていることが分かる。かかる補正によって、中心ブロック抽出部31によって抽出された中心ブロックよりも正確な中心ブロックを得ることができる。
中心ブロックCBの補正が終了すると、通路領域を検出する処理が通路領域検出部34で行われる(ステップS15:検出ステップ)。処理が開始されると、まず基準ブロックを特定する処理が行われる。図37は、基準ブロックを説明するための図である。具体的には、ステップS12で補正された中心ブロックCBと中心ブロックの左右方向に隣接するブロックLBとが基準ブロックに特定される。尚、図37に示す例では、6個の中心ブロックCBと12個のブロックLBとからなる合計18個のブロックが基準ブロックとして特定されている。
以上の処理が終了すると、まず、特定された基準ブロックについて、特徴量の平均値及び標準偏差を特徴量の種類毎に求める処理が第1算出部34aで行われる(ステップS151)。次に、特徴量算出部32で求められた全てのブロックについての特徴量の平均値を特徴量の種類毎に求める処理が第2算出部34bで行われる(ステップS152)。ここで、図37に示す画像の上部の領域Rには地平線の上方の画像が写り込んでおり、かかる領域Rの画像は通路領域としての轍の検出には関与しない画像である。このため、ステップS152の処理を行う場合には、この領域R内のブロックを除外し、残りのブロックについての特徴量の平均値を求めるのが望ましい。
以上の処理が終了すると、重み決定部34cによって特徴量毎の重みが決定される(ステップS153)。具体的には、ステップS151で求められた基準ブロックについての特徴量の平均値μ^i及び標準偏差σ^iと、ステップS152で求められた全てのブロックについての平均値μiとを、特徴量の種類毎に前述した(3)式に代入し、特徴量の種類毎の重みw′iを決定する処理が行われる。尚、得られた重みw′iが負の値である場合には、その値を零に決定する処理が行われる。重み決定部34cは、以上の重みw′iを決定したら、前述した(4)式を用いて正規化した重みwiを求めるとともに、前述した(5)式を用いて各特徴量を正規化するための正規化係数siを求める処理も行う。
特徴量に対する重み付けが終了すると、通路領域検出部34で重み付けされた特徴量を用いて画像に含まれる轍を抽出する処理が抽出部34dで行われる(ステップS154)。具体的には、まず処理対象のブロックを特定し、そのブロックのi番目の特徴量の値fi及びそのブロックと画像の縦方向の位置が同じである中心ブロックにおけるi番目の特徴量の値fci、並びに、ステップS153の処理にて得られた重みwi及び正規化係数siを前述した(6)式に示す評価関数Eに代入する。そして、評価関数Eの値が所定値Tよりも大きい場合に、その処理対象のブロックに轍の画像が含まれると評価してそのブロックを抽出する。
尚、処理対象のブロックと画像の縦方向の位置が同じである中心ブロックが存在しない場合には、画像の縦方向における位置がそのブロックよりも下方向であって、そのブロックに最も近い中心ブロックを用いて上記の評価を行う。以上の処理を全てのブロック(図37中の領域R内のブロックを除く)について行うことによって轍が含まれるブロックが抽出され、これにより通路領域が検出される。
図38は、検出された通路領域の一例を示す図である。以上の処理が行われることによって、図35(a)に示す画像から、図38中の斜線を付したブロックBEが通路領域として検出される。図38を参照すると、斜線が付されたブロックBEは、僅かながら轍とは異なる部分に点在するものの、殆どは轍が写り込んでいる部分に存在しており、通路領域である轍を高精度で検出できていることが分かる。
以上説明した通り、本実施形態によれば、入力画像に含まれる通路領域のおおよその位置を示す中心ブロックCBを抽出し、入力画像に対して複数種類のフィルタ処理を行って入力画像の評価に用いる特徴量をフィルタ処理の種類毎に求め、抽出された中心ブロックCBにおける特徴量と同様の特徴量を有する領域を入力画像から抽出することによって通路領域を検出している。その際、抽出された中心ブロックが植生領域となることを、できるだけ回避するような補正処理を行うようにしている。このため、例えば道の中央に草が生えているような場合でも正確に通路領域を検出することができる。また、中心ブロックの補正処理を、(1)植生であるか否かを画素毎に示すデータをブロック単位で積算する処理と、(2)その積算結果をブロック間で比較する処理と、で行うようにしている。そのため、補正処理を単純な加減算処理などで行うことができ、処理時間を容易に短縮することができる。よって、例えばリアルタイムに精度よく通路領域を検出することが可能となる。
以上、本発明の実施形態について説明したが、本発明は上記実施形態に制限されず、本発明の範囲内で自由に変更が可能である。例えば、上記実施形態では、通路領域を検出する際に、前述した(3)式を用いて重みw′iを求める例について説明したが、重み決定部34cによって決定される重みは、基準ブロックについての平均値と複数のブロックの全てについての平均値との差が大きな特徴量、及び基準ブロックについての標準偏差が小さな特徴量について重くなるものであれば良い。従って、前述した(3)式に代えて、以下の(7)式を用いて重みw′iを求めても良い。
また、上記実施形態では、中心ブロックCBを抽出する方法として、轍を含む通路であると推定される通路領域の中心線を用いる方法を例に挙げて説明したが、これ以外の方法を用いることも可能である。例えば、車両にレーザレーダを設け、このレーザレーダの測定結果に基づいて中心ブロックを特定しても良い。具体的には、車載カメラの視野内における特定部位(例えば、視野の最下部)をレーザレーダで走査し、得られる信号のうちの最も平坦な部分を轍と推定して中心ブロックCBを抽出して良い。
また、図1に示す植生検出部32は、水の吸収波長帯域における反射率と、近赤外帯域における反射率との比(反射率比)に基づいて撮影対象が植物であるか否かを検出することしたが、例えば、可視光の反射率と、水の吸収波長帯域における反射率又は近赤外帯域における反射率との比に基づいて撮影対象が植物であるか否かを検出するような構成としてもよい。この場合、例えば、図2の車載カメラ100の構成から、CCD受光素子118又はInSb半導体受光素子115のどちらか一方などの構成を省略することができる。