【文献】
長井 歩,ドロネー三角形を利用した単眼車載カメラの映像からの障害物検知法 Obstacle Detection from Monocular On-Vehicle Camera in units of Delaunay Triangles,情報処理学会研究報告 2012(平成24)年度▲6▼ [DVD−ROM],日本,一般社団法人情報処理学会,2013年 4月15日,Vol.2013-AL-143 No.13,pp.1-8
(58)【調査した分野】(Int.Cl.,DB名)
前記走行可能領域認識部は、前記第一の路面領域と前記第二の路面領域を用いて最終路面領域を確定し、カメラ幾何情報と過去の検出結果を用いた時系列処理の少なくとも一方に基づき前記最終路面領域の中から走行可能領域を認識することを特徴とする請求項1に記載の車載用外界認識装置。
前記第二の路面領域抽出部は、前記第一の路面領域と前記障害物領域が重複している場合には、該重複している領域を前記第一の路面領域および前記障害物領域から消去して前記路面未抽出領域および前記障害物未抽出領域とすることを特徴とする請求項1に記載の車載用外界認識装置。
【発明を実施するための形態】
【0011】
<第一実施の形態>
以下、本発明の第一実施の形態について図面を用いて詳細に説明する。
図1は、第一実施の形態における車載用外界認識装置1000のブロック図である。
【0012】
車載用外界認識装置1000は、自動車に搭載されるカメラ装置内、もしくは統合コントローラ内等に組み込まれ、カメラ装置のカメラ1001〜1004で撮影した画像内から外界を認識するためのものであり、本実施の形態では、自車周囲の走行可能領域を認識するように構成されている。
【0013】
車載用外界認識装置1000は、CPUやメモリ、I/O等を有するコンピュータによって構成されており、所定の処理がプログラミングされて、あらかじめ定められた周期Tで繰り返し処理を実行する。
【0014】
車載用外界認識装置1000は、
図1に示すように、画像取得部1011と、特徴点距離計測部1021と、領域分割部1031と、第一の路面領域抽出部1041と、障害物領域抽出部1051と、画像特徴量算出部1061と、第二の路面領域抽出部1071と、分離度診断部1081と、走行可能領域認識部1101を有する。
【0015】
画像取得部1011は、自車周囲の環境を含む画像を取得する。画像取得部1011は、
図2に示すように、自車10の周囲を撮像可能な位置に取り付けられたカメラ1001〜1004から、自車周囲を撮影した画像1005〜1008のうちいずれか1つ以上を取得する。本実施例においては、自車10の進行方向の情報に基づき、前進時は前方カメラ1001で撮像した画像1005を取得し、後進時は後方カメラ1004で撮像した画像1008を取得する。取得した画像は2次元配列としてRAM上に記録される。以下、入力画像はIMGSRC[x][y]で表すものとする。x、yはそれぞれ画像の座標を示す。
図2に示す各画像1005〜1008は、自車10が駐車枠に前向き駐車したときの画像であり、駐車スペースの区画線Lが撮像されている。
【0016】
特徴点距離計測部1021は、入力画像IMGSRC[x][y]から特徴点FP[p]を抽出し、その特徴点FP[p]を時系列追跡した画像上の動き(特徴点の時系列変化)に基づいて、自車10から特徴点FP[p]までの距離を計測する。特徴点距離計測部1021は、入力画像IMGSRC[x][y]から特徴点FP[p]を検出し、時系列に追跡することにより各特徴点の画像座標テーブルFPI[p]から3次元距離テーブルFPW[p]を計測する。ここで、FPI[p]は画像座標(x、y)、FPW[p]は自車後輪車軸を原点とする世界座標(x、y、z)の要素を持つテーブルの1次元配列であり、pは複数検出した場合のIDを表す。
【0017】
領域分割部1031は、入力画像IMGSRC[x][y]を複数の局所領域R[r]に分割する(
図6を参照)。ここでR[r]は入力画像IMGSRC[x][y]のどの画素がその局所領域に属しているかを表す情報を持つテーブルの1次元配列であり、rは各領域のIDを表す。
【0018】
第一の路面領域抽出部1041は、特徴点距離計測部1021で計測した特徴点FP[p]までの距離情報と特徴点FP[p]の画像上の位置とに基づき路面と判定される局所領域を第一の路面領域として抽出する。第一の路面領域抽出部1041は、特徴点距離計測部1021および領域分割部1031の結果を用いて、特徴点の世界座標FPW[p]のうち路面と判定する所定条件を満たす点について、対応する画像座標FPI[p]が属する局所領域R[r]を抽出し、そのIDの組を第一の路面領域ID群rd1[d1]として記録する。すなわち、路面領域と判定された領域はR[rd1[d1]]で表され、d1は領域を表すIDである。
【0019】
障害物領域抽出部1051は、特徴点FP[p]の距離情報を用いて、特徴点FP[p]の画像位置に基づき画像上の障害物領域を抽出する。例えば特徴点FP[p]が地面から所定高さ以上の位置に存在する場合には障害物の特徴点であると判定し、その領域を障害物領域として抽出する。障害物領域抽出部1051は、特徴点距離計測部1021および領域分割部1031の結果を用いて、特徴点の世界座標FPW[p]のうち障害物と判定する所定条件を満たす点について、対応する画像座標FPI[p]が属する局所領域R[r]を抽出し、そのIDの組を障害物領域ID群rb[b]として記録する。すなわち、障害物領域と判定された領域はR[rb[b]]で表され、bは領域を表すIDである。
【0020】
画像特徴量算出部1061は、画像上の局所領域ごとに色情報を含む多次元の画像特徴量を算出する。画像特徴量算出部1061は、入力画像IMGSRC[x][y]と領域分割部1031の結果を用いて、局所領域R[r]ごとに画像特徴ベクトルFV[r]を算出する。ここで特徴ベクトルFV[r]はN次元のベクトルを持つテーブルの1次元配列である。
【0021】
第二の路面領域抽出部1071は、画像上の複数の局所領域のうち、第一の路面領域抽出部1041にて第一の路面領域として抽出されていない少なくとも1つ以上の路面未抽出領域に対して、画像特徴量算出部1061で算出した画像特徴量を用いて、第一の路面領域との類似度を算出し、類似度に基づいて少なくとも一つ以上の路面未抽出領域から路面と判定される局所領域を第二の路面領域として抽出する。
また、第二の路面領域抽出部1071は、障害物領域抽出部1051により障害物領域が抽出されている場合は、路面未抽出領域および障害物未抽出領域に対して、画像特徴量を用いて第一の路面領域および障害物領域との類似度を算出し、その算出した類似度に基づいて路面未抽出領域および障害物未抽出領域から第二の路面領域を抽出する。
第二の路面領域抽出部1071は、領域分割部1031より得られる局所領域R[r]と、第一の路面領域抽出部1041より得られる第一の路面領域ID群rd1[d1]と、障害物領域抽出部1051より得られる障害物領域ID群rb[b]と、画像特徴量算出部1061より得られる画像特徴ベクトルFV[r]を用いて、局所領域R[r]のうち、第一の路面領域ID群rd1[d1]と障害物領域ID群rb[b]に含まれない領域から、画像特徴ベクトルFV[r]を用いて第二の路面領域ID群rd2[d2]を求める。
【0022】
分離度診断部1081は、第一の路面領域の画像特徴量及び障害物領域の画像特徴量に基づき、第一の路面領域と障害物領域との分離度を算出する。第二の路面領域抽出部1071は、分離度が所定値よりも低い場合には第二の路面領域抽出結果を走行可能領域認識部1101に出力しない。分離度診断部1081は、第一の路面領域抽出部1041より得られる第一の路面領域ID群rd1[d1]と、障害物領域抽出部1051より得られる障害物領域ID群rb[b]と、画像特徴量算出部1061より得られる画像特徴ベクトルFV[r]の情報を用いて、画像特徴ベクトルFV[r]のうち、第一の路面領域ID群rd1[d1]に属する特徴ベクトルFV[rd1[d1]]と、障害物領域ID群rb[b]に属する特徴ベクトルFV[rb[b]]の分離度を算出する。算出の結果、分離度が所定値よりも低い、すなわち、特徴量同士が類似している場合は、第二の路面領域抽出部1071へ路面領域の抽出が困難であるという分離困難フラグSDを通達し、第二の路面領域抽出部1071においてその出力を停止する。
【0023】
走行可能領域認識部1101は、第一の路面領域および第二の路面領域を用いて走行可能領域を認識する。走行可能領域認識部1101は、第一の路面領域と第二の路面領域を用いて最終路面領域を確定し、カメラ幾何情報と過去の検出結果を用いた時系列処理の少なくとも一方に基づき最終路面領域の中から走行可能領域を認識する。例えば、走行可能領域認識部1101は、領域分割部1031より得られる局所領域R[r]と、第一の路面領域抽出部1041より得られる第一の路面領域ID群rd1[d1]と、第二の路面領域抽出部1071より得られる第二の路面領域ID群rd2[d2]を用いて、最終的な画像内の路面領域を確定し、さらにカメラ幾何情報を用いて自車後輪車軸を原点とする世界座標(x、y、z)における走行可能領域RDR[t]として後段へ出力する。ここで、tは処理のタイミングを表す記号である。
【0024】
[特徴点距離計測部]
つぎに、
図3、4を用いて、特徴点距離計測部1021における処理の内容について説明する。
図3は、特徴点距離計測部1021の処理の流れを示したフローチャートである。また、
図4は、特徴点距離計測部1021の処理の説明図である。
【0025】
特徴点距離計測部1021は、入力画像IMGSRC[x][y]に対して実施する。まず、ステップS301にて、入力画像IMGSRC[x][y]から特徴点FPI[p]を抽出する。特徴点FPI[p]の抽出は、Harrisコーナー等、公知の方法を用いる。その結果、各特徴点に対して画像座標が得られる。
【0026】
つぎに、ステップS302にて、同じカメラから取得された、所定時刻前の過去画像IMGSRC_Pを取得する。
【0027】
つぎに、ステップS303にて、現在画像IMGSRC上における各特徴点FPI[p]の過去画像IMGSRC_P上の対応位置を、オプティカルフロー法により算出し、各特徴点の移動ベクトルFP_VX[p]、FP_VY[p]を取得する。オプティカルフローは、Lucas−Kanade法等、公知の方法を用いる。
【0028】
そして、ステップS304にて、特徴点FPI[p]および移動ベクトルFP_VX[p]、FP_VY[p]を用いて、各特徴点FPI[p]の自車周囲における3次元位置FPW[p]を算出する。算出方法は、公知の手段を用いる。本実施例においては、画像上の移動ベクトルと、CANにより取得した自車位置DRC[t]およびDRC[t−1]を用いて算出した自車移動量を用いる。ここで、tは処理のタイミングを表す記号であり、自車移動量DRC[t]は、自車後輪車軸中心を原点とする座標系におけるX、Y、ヨー角である。自車位置DRC[t]およびDRC[t−1]より、X、Y、ヨー角の移動量が得られる。
【0029】
最後に、ステップS305にて、各特徴点の3次元位置FPW[p]を車両の後輪車軸中心を原点とする座標系に変換し、距離テーブルFPW[p]として格納する。
【0030】
図4に示すように、過去の自車位置DRC[t−1]と現在の自車位置DRC[t]が変化することにより視差が生まれ、距離を計測することができる。
図4に示す例では、自車10がt−1時点からt時点までの間に距離dだけ進むことによって生じた視差に基づいて駐車車両20までの距離Yが計測される。画像の特徴点それぞれの距離を計測するため、たとえば駐車車両20に対して計測した結果は、
図4(b)に示すように、複数の点21が計測される。
【0031】
[領域分割部]
つぎに、
図5、6を用いて、領域分割部1031における処理の内容について説明する。
図5は、領域分割部1031の処理の流れを示したフローチャートである。また、
図6は、領域分割部1031の分割の例を示した説明図である。本実施例においては、領域分割部1031は初回起動時、および、自車の進行方向の変化に伴う使用カメラの切り替え時にのみ実施され、以降は局所領域R[r]は変化しない。
【0032】
まず、ステップS501にて、処理領域161を設定する。x方向の始点をsx、終点をex、y方向の始点をsy、終点をeyとする。処理領域161は、カメラに写りこむ自車領域を避けて設定する。
【0033】
つぎに、ステップS502にて、処理領域161をX方向に分割する。分割は
図6(a)のように始点sxから終点exまでを均等に分割しても良いし、
図6(b)のようにカメラのレンズひずみに応じて、レンズ中心ほど大きく、周辺部ほど小さく分割しても良い。
【0034】
つぎに、ステップS503にて、処理領域161をY方向に分割する。分割は
図6(a)のように始点syから終点eyまでを均等に分割しても良いし、
図6(b)のようにカメラのレンズひずみに応じて、レンズ中心ほど大きく、周辺部ほど小さく分割しても良い。
【0035】
最後に、ステップS504にて、ステップS502、S503にて分割された各矩形の始点・終点情報を、局所領域R[r]として登録する。
【0036】
なお、領域分割部1031の他の分割方法として、カメラの幾何情報から消失線を取得し、消失線に近いほど細かく分割する方法や、領域分割部1031に画像IMGSRCを入力し、画素の輝度や色情報に基づくグルーピング処理を行った結果を用いる方法があるが、いずれも公知の技術により実現可能なため、ここでは説明を省略する。
【0037】
[第一の路面領域抽出部]
つぎに、
図7を用いて、第一の路面領域抽出部1041における処理の内容について説明する。ここでは、特徴点FPI[p]に対応する特徴点世界座標FPW[p]の、たとえば高さが所定値以下である特徴点を含む局所領域R[r]を、第一の路面領域ID群rd1[d1]に登録する。
図7は、第一の路面領域抽出部1041の処理の流れを示したフローチャートである。
【0038】
まず、ステップS701にて第一の路面領域ID群rd1[d1]を初期化する。登録値を全て初期化し、d1=0とする。
【0039】
つぎに、ステップS702にて、特徴点FPI[p]におけるp=0からPまで、ステップS703からステップS705について繰り返し処理を行う。
【0040】
まず、ステップS703にて、特徴点世界座標FPW[p]が路面の条件を満たすか否かを判定する。判定の基準には、特徴点世界座標FPW[p]の高さが所定範囲内、すなわち高さがゼロを境とする閾値TH_ROAD以内であるか否かを用いる。もしくは、あらかじめステップS701において、特徴点世界座標FPW[p]から高さがゼロを境とする閾値TH_ROAD以内の点をすべて抽出し、最小二乗法を用いて平面RPLを算出しておき、この平面と特徴点世界座標FPW[p]との距離が閾値TH_HEIGHT2以内であるか否かを用いても良い。
【0041】
ステップS703で条件を満たした場合、つぎに、ステップS704にて、対応する特徴点画像座標FPI[p]から画像座標を取得し、その座標が属する局所領域R[r]を変換テーブルなどを用いて求める。求めた特徴点のIDをrpとする。
【0042】
つぎに、ステップS705にて、求めたrpをrd1[d1]へ登録し、d1をインクリメントする。
【0043】
なお、上記では参照元として瞬間値である特徴点画像座標FPI[p]と世界座標FPW[p]を求めたが、過去の値も含めて蓄積したマップ情報等を用いて設定しても良い。
【0044】
[障害物領域抽出部]
つぎに、
図8を用いて、障害物領域抽出部1051における処理の内容について説明する。ここでは、特徴点FPI[p]に対応する特徴点世界座標FPW[p]のたとえば高さが所定値よりも高い特徴点を含む局所領域R[r]を、障害物領域ID群rb[b]に登録する。
図8は、障害物領域抽出部1051の処理の流れを示したフローチャートである。
まず、ステップS801にて障害物領域ID群rb[b]を初期化する。登録値を全て初期化し、b=0とする。
【0045】
つぎに、ステップS802にて、特徴点FPI[p]におけるp=0からPまで、ステップS803からステップS805について繰り返し処理を行う。
【0046】
まず、ステップS803にて、特徴点世界座標FPW[p]が障害物の条件を満たすか否かを判定する。判定の基準には、特徴点世界座標FPW[p]の高さが所定値よりも高い、すなわち閾値TH_OBJよりも高いか否かを用いる。ここで、TH_OBJ>TH_ROADであるとする。もしくは、第一の路面領域抽出部1041において算出した平面RPLを用いて、この平面と特徴点世界座標FPW[p]との距離が閾値TH_OBJ2より高いか否かを用いても良い。
【0047】
ステップS803で条件を満たした場合、つぎに、ステップS804にて、対応する特徴点画像座標FPI[p]から画像座標を取得し、その座標が属する局所領域R[r]を変換テーブルなどを用いて求める。求めた特徴点のIDをrpとする。
【0048】
つぎに、ステップS805にて、求めたrpをrb[b]へ登録し、bをインクリメントする。
【0049】
なお、第一の路面領域抽出部1041同様に、上記では参照元として瞬間値である特徴点画像座標FPI[p]と世界座標FPW[p]を求めたが、過去の値や他のセンサ情報も含めて蓄積したマップ情報等を用いて設定しても良い。
【0050】
[画像特徴量算出部]
つぎに、
図9を用いて、画像特徴量算出部1061における処理の内容について説明する。ここでは、局所領域R[r]に属する画素x、yの色や輝度情報から、たとえば色やエッジの情報を用いて特徴ベクトルFV[r]を生成する。
【0051】
図9は、画像特徴量算出部1061の処理の流れを示したフローチャートである。
ステップS901にて局所領域R[r]におけるr=0からRまで、ステップS902からS906について繰り返し処理を行う。
【0052】
まず、ステップS902にて、特徴ベクトルFV[r]を初期化する。
つぎに、ステップS902にて、局所領域R[r]に属する画素x、yについて、ステップS904、S905について繰り返し処理を行う。
【0053】
ステップS904にて、画素x、yにおける色情報を取得し、HSV色表現へ変換し、あらかじめ設定した分解能へ変換した上で特徴ベクトルFV[r]へ投票する。HSV色表現への変換方法は公知なためここでは省略する。
【0054】
ステップS905にて、画素x、yにおける輝度勾配情報を用いてHOG特徴量を算出し、あらかじめ設定した分解能へ変換した上で特徴ベクトルFV[r]へ投票する。HOG特徴量の算出方法は公知なためここでは省略する。
【0055】
局所領域R[r]に属するすべての画素についてステップS904、S905の処理による投票を行った後、ステップS906にて特徴ベクトルFV[r]のノルム正規化を行う。ノルムは、H、S、V、HOGそれぞれで正規化する。
以上の処理を、すべての局所領域について、つまり、局所領域R[r]のr=0・・・Rに対して行い、特徴ベクトルFV[r]を算出する。
【0056】
[第二の路面領域抽出部]
つぎに、
図10を用いて、第二の路面領域抽出部1071における処理の内容について説明する。ここでは、局所領域R[r]のうち第一の路面領域ID群rd1[d1]と障害物領域ID群rb[b]のいずれにも属していない局所領域について、特徴ベクトルFV[r]の類似度を用いて路面領域の推定を行い、推定された路面領域を第二の路面領域として抽出する。
第一の路面領域抽出部1041により抽出された第一の路面領域と、障害物領域抽出部1051により抽出された障害物領域とが重複している場合には、その重複している領域を第一の路面領域および障害物領域から消去し、路面未抽出領域および障害物未抽出領域として第二の路面領域抽出部1071による判定を行う。
また、障害物領域抽出部1051にて障害物領域を設定することに用いた特徴点までの距離情報とカメラ幾何情報を用いて特徴点の画像上の接地位置を求め、接地位置が第一の路面領域抽出部により抽出された第一の路面領域と重複している場合には、その領域を第一の路面領域から消去し、路面未抽出領域として第二の路面領域抽出部1071による判定を行う。
【0057】
図10は、第二の路面領域抽出部1071の処理の流れを示したフローチャートである。
まず、ステップS1000にて分離困難フラグをチェックし、フラグがONであれば以降の処理は行わない。フラグがOFFであれば以降の処理を行う。
【0058】
つぎに、ステップS1001にて第二の路面領域ID群rd2[d2]を初期化する。登録値を全て初期化し、d2=0とする。
【0059】
つぎに、ステップS1002にて、第一の路面領域ID群rd1[d1]と障害物領域ID群rb[b]の矛盾グリッドを消去する。第一の路面領域ID群rd1[d1]のd1について、障害物領域ID群rb[b]に登録が無いかを探索し、登録されている場合には、そのIDを第一の路面領域ID群rd1[d1]および障害物領域ID群rb[b]から消去する。つまり、第一の路面領域と障害物領域が重複している場合には、その重複している領域が第一の路面領域および障害物領域から消去される。この処理により、第一の路面領域ID群rd1[d1]と障害物領域ID群rb[b]の両方に登録されているグリッドが、以降の類似度判定にて及ぼす悪影響を解消することができる。
【0060】
さらなる矛盾グリッドの消去処理として、障害物領域抽出部1051にて障害物領域を設定することに用いた特徴点までの距離情報とカメラ幾何情報を用いて特徴点の画像上の接地位置を求め、接地位置が第一の路面領域と重複している場合には、その重複している領域を第一の路面領域から消去する処理を行う。
まず、障害物領域ID群rb[b]の登録に用いた特徴点の世界座標FPW[p]を参照し、高さをゼロとした場合の画像上の位置を、カメラ幾何情報を用いて算出する。すなわち特徴点の接地位置FPI0[p]を算出する。この特徴点の接地位置FPI0[p]が属する局所領域R[r]を参照し、第一の路面領域ID群rd1[d1]に登録が無いかを探索する。登録されている場合には、そのIDを第一の路面領域ID群rd1[d1]から消去する。
【0061】
障害物の特徴点が路面付近に存在する場合、第一の路面領域抽出処理の条件に合致するため、障害物の特徴量が路面領域として登録され、実際の路面領域よりも膨らんでしまったり、第二の路面領域抽出処理時に障害物を路面領域と判定したり、分離度診断部1081で分離困難と判定されたり、といった悪影響を及ぼすことがある。この処理により、これらの不具合を回避することができる。
【0062】
つぎに、ステップS1003にて、路面領域の特徴ベクトルFV[rd1[d1]]と、障害物領域の特徴ベクトルFV[rb[b]]を、類似度算出により以降の処理で使いやすいように加工する。データの次元数が少ない場合はそのまま使用しても良いが、次元数が高い場合には主成分分析等の次元圧縮手法を用いてデータ量を軽量化しても良い。本実施例においては特に圧縮せずに利用する。
【0063】
つぎに、ステップS1004にて、局所領域R[r]のr=0・・・Rについて、以下ステップS1005からS1008について繰り返し処理を行う。
【0064】
まず、ステップS1005にて、rが第一の路面領域ID群rd1[d1]と障害物領域ID群rb[b]のいずれにも登録されていないことを確認する。登録されていない場合はステップS1006へ移行する。登録されている場合は、rをインクリメントし再度ステップS1005を行う。
【0065】
つぎに、ステップS1006にて、特徴ベクトルFV[r]に対する、路面領域の特徴ベクトルFV[rd1[d1]]および障害物領域の特徴ベクトルFV[rb[b]]の類似度算出を行う。本実施例では、k近傍法を用いる。k近傍法は公知の技術であるため詳細は割愛するが、特徴ベクトルFV[r]と路面領域の特徴ベクトルFV[rd1[d1]]および障害物領域の特徴ベクトルFV[rb[b]]のベクトル間の距離をすべて算出し、最も近いk個のベクトルが、路面領域の特徴ベクトルと障害物領域の特徴ベクトルのどちらが多いかという多数決に基づいて、どちらに類似しているかを算出する手法である。
【0066】
つぎに、ステップS1007にて、特徴ベクトルFV[r]が路面領域の特徴ベクトルに類似していると判断された場合には、ステップS1008へ移行し、rを第二の路面領域ID群rd2[d2]へ登録し、d2をインクリメントする。
以上の処理をループ処理にて行う。
【0067】
[分離度診断部]
つぎに、
図11を用いて、分離度診断部1081における処理の内容について説明する。ここでは、第一の路面領域ID群rd1[d1]に属する特徴ベクトルFV[r]と、障害物領域ID群rb[b]に属する特徴ベクトルFV[r]が特徴空間内で分離可能な分布となっているかを判断する。
【0068】
図11は、分離度診断部1081の処理の流れを示したフローチャートである。
まず、ステップS1101にて第二の路面領域抽出部1071におけるステップS1002と同じ処理を行い、矛盾している特徴ベクトルを消去する。
【0069】
つぎに、ステップS1102にて、路面領域の特徴ベクトルFV[rd1[d1]]と障害物領域の特徴ベクトルFV[rb[b]]を取得する。
【0070】
つぎに、ステップS1103にて、路面領域の特徴ベクトルFV[rd1[d1]]と障害物領域の特徴ベクトルFV[rb[b]]の分離度を算出する。本実施例においては、両ベクトルに対し線形判別処理を行い最大固有値に対応する固有ベクトルを算出し、この固有ベクトルへ路面領域の特徴ベクトルFV[rd1[d1]]と障害物領域の特徴ベクトルFV[rb[b]]を写像し、得られた1次元のデータ群のクラス間分散VBを分離度SSとして用いる。
【0071】
つぎに、ステップS1104にて、分離度SSと閾値TH_SSを比較し、分離度SSが閾値より高い場合にはステップS1105にて分離困難フラグSDをOFFにセットし、閾値より低い場合にはステップS1106にて分離困難フラグSDをONにセットする。なお、分離度診断部1081は、第二の路面領域抽出部1071よりも先に処理を行い、第二の路面領域抽出部1071は、分離困難フラグSDの結果に応じて処理を切り替える。
【0072】
[走行可能領域認識部]
つぎに、
図12、13を用いて、走行可能領域認識部1101における処理の内容について説明する。ここでは、第一の路面領域と第二の路面領域の結果を統合し、さらに連続性やカメラ幾何情報、時系列情報などを用いて最終的な走行可能領域を決定する。
【0073】
図12は、走行可能領域認識部1101の処理の流れを示したフローチャートである。また、
図13は走行可能領域認識部1101の処理の説明図である。
図13(a)〜(c)は、自車10の前方を撮像した画像であり、駐車スペースを区画する白線Lと、その先に壁などの障害物Obが写っている。
図13(d)は、自車10とその前方の走行可能領域を示している。
【0074】
まず、ステップS1201にて、最終結果を反映する結果画像IMGRESの画素へアクセスする準備を行う。以下、ステップS1202からS1204まで繰り返し処理を行う。
【0075】
まず、ステップS1202にて、アクセスしている画素が第一の路面領域ID群rd1[d1]もしくは第二の路面領域ID群rd2[d2]に属しているかを判定する。属している場合にはステップS1203へ移行し画素をP1にセットする。属していない場合にはステップS1204へ移行し画素をP2にセットする。以上を繰り返す。
【0076】
なお、上記のように画素アクセスを行うと処理時間が大きくかかってしまうため、領域R[r]に対する繰り返し処理を行い、その結果を最終結果を反映する結果画像IMGRESに反映しても良い。
図13(b)はその例である。
【0077】
つぎに、ステップS1205にて、画素の連続性を用いてノイズ除去を行う。結果画像IMGRESを画像の下部領域から画像上部へ向かって探索し、画素がP1、すなわち路面領域である間探索を進め、画素がP2となる位置、もしくはP2となった回数をカウントし、その数が所定回数となった位置、もしくはカメラ幾何的に路面領域ではなくなる位置で探索を止める。この処理を画像のx座標の全て、もしくは所定の間隔でサンプリングされた位置にて行い、その結果、画像の下部領域から探索を終了した位置までを路面領域とする。
図13(c)はその例である。
図13(b)に示す例では、ステップS1204までの処理により、障害物領域の中の飛び地131と上空領域132の画素がP1にセットされている。しかし、ステップS1205の連続性判定により、
図13(c)に示すように、かかる部分は画素がP2とされ、路面領域ではないと判定されている。
【0078】
つぎに、ステップS1206にて、ステップS1205より得られた結果のうち上端位置を世界座標変換し、得られた各点、およびカメラ設置位置を結ぶ多角形領域を求め、走行可能領域の瞬間値RDT[t]とする。ここで、tは処理のタイミングを表す記号である。
図13(d)はその例である。
【0079】
つぎに、ステップS1207にて、時系列処理を行う。本実施例における時系列処理について、
図14、
図15を用いて説明する。
【0080】
図14は、ステップS1207の時系列処理の流れを示したフローチャートである。また、
図15は時系列処理の説明図である。
【0081】
まず、ステップS1401にて、デッドレコニング情報に基づき、今回の自車位置DRC[t]と前回の自車位置DRC[t−1]を取得し、今回の自車位置DRC[t]を基準とする前回の自車位置DRC_P[t]を算出する。
図15(a)はその例である。
図15(a)では、今回の自車位置を実線で示し、前回の自車位置を破線で示している。
【0082】
つぎに、ステップS1402にて、前回の自車位置DRC_P[t]を基準とし、前回の走行可能領域瞬間値RDT[t−1]を取得する。
図15(b)はその例である。
図15(b)には、前回の走行可能領域瞬間値151を破線で示している。
【0083】
つづいて、ステップS1403にて、今回の自車位置DRC[t]を基準とし、今回の走行可能領域瞬間値RDT[t]を展開する。
図15(c)はその例である。
図15(c)には、今回の走行可能領域瞬間値152を実線で示している。
【0084】
そして、ステップS1404にて、前回の走行可能領域瞬間値RDT[t−1]と今回の走行可能領域瞬間値RDT[t]の重複領域を算出する。
図15(d)はその例である。
図15(d)では、前回と今回の走行可能領域瞬間値の重複領域をグレーの領域153で示している。
【0085】
さらに、ステップS1405にて、重複領域を今回の走行可能領域RDR[t]として出力する。なお、上述の実施例では、走行可能領域認識部1101が第一の路面領域抽出部1041により抽出された路面領域と、第二の路面領域抽出部1071により抽出された路面領域に対して、カメラ幾何情報と過去の検出結果を用いた時系列処理の両方に基づき走行可能領域を認識する場合について説明したが、少なくとも一方でもよい。
【0086】
以上説明したように、本実施形態の車載用外界認識装置1000によれば、画像において複数に分割された局所領域から、特徴点に基づく距離計測結果を用いて、第一の路面領域および障害物領域を抽出し、さらに特徴点が存在せず分類できない局所領域については、画像特徴量を抽出し、その画像特徴量と第一の路面領域および障害物領域との類似度を算出し、類似度に基づいて第二の路面領域を抽出する。そして、第一の路面領域抽出結果および第二の路面領域抽出結果を統合して、走行可能領域を生成する。
【0087】
上記の作用効果について
図16、
図17を用いて説明する。
図16、
図17は、上記の一連の流れを説明する説明図である。
【0088】
図16(a)は局所領域160の分割例を、
図16(b)は特徴点による距離計測例を表す。
図16(b)のうち、明るめのグレーの点161は第一の路面領域抽出処理の条件に合致する特徴点、暗めのグレーの点162は障害物領域抽出処理の条件に合致する特徴点である。
【0089】
図16(c)は、第一の路面領域抽出処理、および障害物領域抽出処理の例である。第一の路面領域抽出処理で路面領域として抽出された局所領域163を明るめのグレーで示し、障害物領域抽出処理で障害物領域として抽出された局所領域164を暗めのグレーで示している。
図16(c)では、
図16(b)の特徴点のうち第一の路面領域抽出処理の条件に合致する特徴点161を含む
図16(a)の局所領域を路面領域163としている。また、
図16(b)の特徴点のうち障害物領域抽出処理の条件に合致する特徴点162を含む局所領域を障害物領域164としている。
【0090】
図16(d)は、第二の路面領域抽出処理結果を統合した例である。
図16(c)でグレーになっていない局所領域165について、画像特徴ベクトルの類似度に基づいて路面領域か否かを判定する。図に示すように、
図16(c)の時点では判定できなかった局所領域165について、第一の路面領域抽出により路面領域と設定された領域との類似度を用いて路面領域163と設定することができる。一方、遠方の障害物領域の一部166も、ここでは路面領域と判定されている。ここは、後段の処理である走行可能領域認識部のステップS1205にて、カメラ幾何情報等を用いて路面領域163ではないと判定される。
【0091】
また、
図17(a)は、領域分割処理において、入力画像を用いて画素の輝度や色情報に基づくグルーピング処理を行った結果得られる局所領域の例である。
【0092】
図17(b)は、
図17(a)に示す領域分割結果に対し、
図16(b)の特徴点情報を用いて、第一の路面領域抽出処理、障害物領域抽出処理を行った例である。第一の路面領域抽出処理結果を明るめのグレーの領域171で示し、障害物領域抽出結果を暗めのグレーの領域172で表している。
【0093】
図17(c)は、第二の路面領域抽出処理によって、
図17(b)より得られる路面領域、および、障害物領域との類似度を用いて、どちらにも分類されていない局所領域を路面領域として抽出した例である。図に示すように、
図17(b)の時点では判定できなかった白線Lの外側の路面領域173や遠方の路面領域174を、白線の内側の路面領域171の画像特徴ベクトルとの類似度を用いて路面領域と判定することができる。一方、遠方の上空領域175等も、天候や環境によっては路面領域と類似していることが多いため、この例では路面領域と判定されている。ここは、後段の処理である走行可能領域認識部のステップS1205にて、カメラ幾何情報等を用いて路面領域ではないと判定される。
【0094】
さらに、
図16(c)や
図17(b)の時点において、第一の路面領域抽出処理、障害物領域抽出処理により得られる領域内の画像特徴量を、分離度診断部にて診断し、その分離度が所定値よりも低い場合、すなわちクラス間分散が低い場合には、第二の路面領域抽出を行わないようにする。第二の路面領域抽出部1071は、分離度が所定値よりも低い場合には第二の路面領域抽出結果を走行可能領域認識部に出力しない。本処理により、あいまいな情報による路面領域抽出が行われなくなり、誤認識を抑制することが可能となる。
【0095】
上述の車載用外界認識装置1000によれば、エッジの観測が難しい自車遠方の路面領域を路面領域として抽出することができる。したがって、例えば運転者の運転操作を補助、あるいは自動化する車両制御を実施する自動車に用いた場合に、精度の高い制御を実施することができる。
【0096】
<第二実施の形態>
つぎに、本発明の車載用外界認識装置の第二実施の形態について、以下に図面を用いて説明する。
【0097】
図18は、第二実施の形態における車載用外界認識装置2000の構成を示すブロック図である。なお、以下の説明では、上述の第一実施の形態における車載用外界認識装置1000と異なる箇所のみ詳述し、同様の箇所には同一の番号を付してその詳細な説明を省略する。
【0098】
本実施の形態において特徴的なことは、第一の路面領域抽出部1041とは異なる方法により路面領域を抽出する第三の路面領域抽出部2091を有し、その抽出結果の情報が第二の路面領域抽出部1071と、分離度診断部1081と、走行可能領域認識部1101にそれぞれ入力されることである。
【0099】
車載用外界認識装置2000は、自動車に搭載されるカメラ装置内、もしくは統合コントローラ内等に組み込まれ、カメラ1001〜1004で撮影した画像内から外界を認識するためのものであり、本実施の形態では、自車周囲の路面領域を検知するように構成されている。
【0100】
車載用外界認識装置2000は、CPUやメモリ、I/O等を有するコンピュータによって構成されており、所定の処理がプログラミングされて、あらかじめ定められた周期で繰り返し処理を実行する。
【0101】
第三の路面領域抽出部2091は、領域分割部1031の局所領域R[r]のうち、所定条件を満たす領域を抽出し、そのIDの組を第三の路面領域ID群rd3[d3]として記録する。すなわち、路面領域と判定された領域はR[rd3[d3]]で表され、d3は領域を表すIDである。
【0102】
第二の路面領域抽出部1071は、領域分割部1031より得られる局所領域R[r]と、第一の路面領域抽出部1041より得られる第一の路面領域ID群rd1[d1]と、障害物領域抽出部1051より得られる障害物領域ID群rb[b]と、画像特徴量算出部1061より得られる画像特徴ベクトルFV[r]と、さらに第三の路面領域抽出部2091より得られる第三の路面領域ID群rd3[d3]を用いて、局所領域R[r]のうち、第一の路面領域ID群rd1[d1]と、第三の路面領域ID群rd3[d3]と、障害物領域ID群rb[b]に含まれない領域から、画像特徴ベクトルFV[r]を用いて第二の路面領域ID群rd2[d2]を求める。本実施例では、処理の入力に追加された第三の路面領域ID群rd3[d3]を第一の路面領域ID群rd1[d1]の後ろに追加して利用することで以降の処理は第一実施の形態のものと同様となるため、処理の詳細の記述は省略する。
【0103】
分離度診断部1081は、第一の路面領域抽出部1041より得られる第一の路面領域ID群rd1[d1]と、障害物領域抽出部1051より得られる障害物領域ID群rb[b]と、画像特徴量算出部1061より得られる画像特徴ベクトルFV[r]と、さらに第三の路面領域抽出部2091より得られる第三の路面領域ID群rd3[d3]を用いて、画像特徴ベクトルFV[r]のうち、第一の路面領域ID群rd1[d1]および第三の路面領域ID群rd3[d3]に属する特徴ベクトルFVと、障害物領域ID群rb[b]に属する特徴ベクトルFVの分離度を算出する。
【0104】
算出の結果、特徴量同士が類似している場合は、第二の路面領域抽出部1071へ路面領域の抽出が困難であるという分離困難フラグSDを通達し、第二の路面領域抽出部1071においてその出力を停止する。本実施例では、処理の入力に追加された第三の路面領域ID群rd3[d3]を第一の路面領域ID群rd1[d1]の後ろに追加して利用することで以降の処理は第一実施の形態のものと同様となるため、処理の詳細の記述は省略する。
【0105】
走行可能領域認識部1101は、領域分割部1031より得られる局所領域R[r]と、第一の路面領域抽出部1041より得られる第一の路面領域ID群rd1[d1]と、第二の路面領域抽出部1071より得られる第二の路面領域ID群rd2[d2]と、さらに第三の路面領域抽出部2091より得られる第三の路面領域ID群rd3[d3]を用いて、最終的な画像内の路面領域を確定し、さらにカメラ幾何情報を用いて自車後輪車軸を原点とする世界座標(x、y、z)における走行可能領域RDR[t]として後段へ出力する。本実施例では、処理の入力に追加された第三の路面領域ID群rd3[d3]を第一の路面領域ID群rd1[d1]の後ろに追加して利用することで以降の処理は第一実施例のものと同様となるため、処理の詳細の記述は省略する。
【0106】
[第三の路面領域抽出部]
図19、
図20を用いて、第三の路面領域抽出部2091における処理の内容について説明する。
【0107】
図19は、第三の路面領域抽出部2091の処理の流れを示したフローチャートである。また、
図20は、第三の路面領域抽出部2091による処理の説明図である。
【0108】
まず、ステップS1901にて、自車近傍の所定領域を自車の直近領域(第三の路面領域)Nとして設定する。直近領域Nは、カメラ幾何情報を用いて設定される本実施例においては、直近領域Nは自車の進行方向のボディ前端から1m、左右1mの領域とする。
【0109】
つぎに、ステップS1902にて、自車周囲の障害物の距離情報(障害物情報)を取得する(障害物情報取得部)。ここは、過去に検出した特徴点距離計測部1021により検出された距離情報でも良いし、自車に取り付けられたソナーから取得しても良い。本実施例においては、ソナーにより検出した障害物情報OBSを、車内ネットワークを通じて取得している。
【0110】
つぎに、ステップS1903にて、自車の直近領域Nより内側に障害物検出結果が存在するか否かを判定する。存在する場合にはステップS1904へ移動し、自車の直近領域Nが障害物情報と重複しないように調整する。ここでは、障害物が存在する領域付近を扱わないようにする。
【0111】
つぎに、ステップS1905にて、カメラ幾何情報を用いて自車の直近領域Nをカメラ画像IMGSRCの座標系へ変換し、局所領域R[r]と重複する領域を、第三の路面領域ID群rd3[d3]へ登録する。
【0112】
つぎに、ステップS1906にて、前回の走行可能領域RDR[t−1]が存在するか否かを取得する。存在する場合には、ステップS1907以降の処理を行い、存在しない場合には処理を終了する。
【0113】
ステップS1907にて、デッドレコニング情報を取得し、今回の自車位置DRC[t]を基準とする前回の走行可能領域RDR[t−1]を算出する。つぎに、ステップS1908にて、カメラ幾何情報に基づいて、前回の走行可能領域RDR[t−1]と重複する局所領域R[r]を、第三の路面領域ID群rd3[d3]へ登録する。
【0114】
図20(a)はステップS1901における自車の直近領域Nの例である。
図20(b)は自車の近傍領域NをそのままステップS1905にて重畳した例である。
図20(b)は、自車10の前方を撮像した画像であり、近傍領域Nがグレーで示され、前方には障害物Obが写っている。
【0115】
図20(c)はステップS1904にて直近領域Nを調整した例である。本実施例では、ソナーは自車の前方4か所に取り付けられており、各ソナーから取得する障害物情報OBSをそれぞれOBS1、OBS2、OBS3、OBS4とする。さらに、自車の近傍領域Nをソナーの取り付け位置を基準に横方向に4分割(N1、N2、N3、N4)する。そして、障害物情報OBS1、OBS2、OBS3、OBS4を取得し、各物体情報が対応する自車の近傍領域N1、N2、N3、N4と重複している場合には、自車の近傍領域N1、N2、N3、N4が重複しないように奥行き方向を調整する。
図20(d)は、ステップS1905の処理の例であり、ステップS1904にて調整した直近領域Nと重複する局所領域R[r]を、カメラ幾何情報を用いて重畳した例である。
【0116】
図20(e)はステップS1907の処理の例であり、今回の自車位置DRC[t]、前回の自車位置DRC[t−1]、前回の走行可能領域RDR[t−1]を図示している。
図20(e)では、今回の自車位置を実線201で示し、前回の自車位置を点線202で示し、前回の走行可能領域RDR[t−1]を領域203で示している。
図20(f)はステップS1908の処理の例であり、ステップS1907にて算出した前回の走行可能領域RDR[t−1]と重複する局所領域R[r]を、カメラ幾何情報を用いて重畳した例である。
【0117】
なお、本実施例においては、
図19に示すように、第三の路面領域抽出方法として、カメラ幾何情報に基づく所定領域を用いた手法、障害物情報に基づく所定領域の調整手法、過去の路面領域認識結果を用いた手法の3種類をまとめて説明したが、すべてを用いなくても良い。例えば、ステップS1901、S1905だけであればカメラ幾何情報に基づく所定領域を用いた手法のみとなる。また、ステップS1901からS1905だけを用いれば、カメラ幾何情報に基づく所定領域を用いた手法、障害物情報に基づく所定領域の調整手法だけとなる。さらに、ステップS1906からS1908だけを用いれば過去の路面領域認識結果を用いた手法のみとなる。
【0118】
以上説明したように、第三の路面領域抽出部2091を有することにより、第一の路面領域抽出部1041において路面領域から特徴点が取得できなかった場合であっても、第二の路面領域抽出部1071の処理に必要な路面領域を抽出することができる。
【0119】
本発明は、上述の各実施の形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々の変更が可能である。
【0120】
以上、本発明の実施形態について詳述したが、本発明は、前記の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の精神を逸脱しない範囲で、種々の設計変更を行うことができるものである。例えば、前記した実施の形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えることが可能であり、また、ある実施形態の構成に他の実施形態の構成を加えることも可能である。さらに、各実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。