以下、本発明の一実施形態を、図面を参照して説明する。
[概要]
一実施形態の移動体制御システム100は、図1〜図2(B)に示されるように、移動体装置としての車両1の車両本体(移動体)に搭載され、ヘッドライト装置10、撮像装置としてのステレオカメラ20(図3参照)、処理装置30(図5参照)、電子制御装置としてのECU50(図5参照)などを備えている。ここでは、移動体制御システム100は、車両1の電気系用のバッテリーから電力の供給を受ける。
なお、移動体である車両本体としては、例えば自動車、電車、バイク、自転車、車椅子、農業用の耕運機等が挙げられる。また、移動体制御システム100と、該移動体制御システム100が搭載される移動体とを備える移動体装置としては、車両に限らず、例えば航空機、船舶等であっても良い。
ヘッドライト装置10は、車両本体の前部に設けられる左右一組のヘッドライト10a、10bを含む。ヘッドライト10a、10bは、同時に、点灯もしくは消灯される。ここでは、ヘッドライト10a、10bは、車両1に標準装備されるものである。以下では、ヘッドライト10a、10bを区別する必要がない場合、「ヘッドライト」と総称する。
各ヘッドライトは、光源としての、複数のLEDがアレイ状に配列されたLEDアレイと該LEDアレイを駆動する駆動回路とを含み、ECU50によって点灯/消灯が制御される。また、ヘッドライトは、車両1のハンドル付近に設けられたヘッドライトスイッチを手動操作することでも点灯/消灯が可能となっている。なお、ヘッドライトは、光源として、LEDに代えて、例えば白色光源などを含んでいても良い。
ヘッドライトから車両前方に投光された光は、ヘッドライト装置10の投光範囲に物体がある場合に、該物体に照射される。ここで、「投光範囲」は、ヘッドライト装置10の各ヘッドライトによる投光可能な範囲を併せた範囲(図1参照)を意味する。
ステレオカメラ20は、一例として、図2(A)及び図2(B)に示されるように、車両内部の運転席上方におけるバックミラー近傍に取り付けられており、両眼(左右の撮像部20a、20b)で車両前方を撮像できるように設置されている。すなわち、ステレオカメラ20は、ヘッドライト装置10の投光範囲を撮像可能となっている。ステレオカメラ20の両眼で撮像された左右の画像(輝度画像)は、フレーム毎に処理装置30に送られる。処理装置30は、ステレオカメラ20からの左右の画像を用いて視差計算を行う。
ヘッドライト装置10が投光中には、投光範囲にある物体(例えば人、他車両、構造物、道路、樹木等)にパターン光が照射されるため、ステレオカメラ20の両眼で撮像された左右の画像における物体上にパターン光のパターンが重畳される(テクスチャが付く)ことになる。
処理装置30は、図5に示されるように、CPU31、メモリ29、ステレオカメラ制御用CPUI/F32、画像処理部33、画像認識処理部34、明るさ情報CPUI/F35、画像認識結果CPUI/F37、開始終了信号転送用I/F38、画像認識結果転送用I/F40を含む。
ステレオカメラ制御用CPUI/F32は、CPU31とステレオカメラ20との送受信用のインターフェースである。CPU31は、ステレオカメラ制御用CPUI/F32を介してステレオカメラ20の撮像制御を行う。
CPU31とECU50は、開始終了信号転送用I/F38を介して送受信可能となっている。
画像処理部33は、ステレオカメラ20からの左右の画像(輝度画像)から、明るさ情報を算出し、明るさ情報CPUI/F35を介してCPU31に送信する。CPU31は、受信した明るさ情報を明るさデータ転送用I/F38を介してECU50に送信する。
また、画像処理部33は、ステレオカメラ20で撮像された左右の画像に対して、ガンマ補正や歪み補正などを実施した後、該左右の画像(輝度画像)を用いて視差計算を行い、視差画像と輝度画像を画像認識処理部34に送る。
画像認識処理部34は、画像処理部33からの視差画像と輝度画像に基づいて、例えば物体の有無、該物体の種別(種類)、該物体までの距離等の物体情報を認識(検出)し、その認識結果である画像認識結果を画像認識結果CPUI/F37を介してCPU31に送信する。CPU31は、受信した画像認識結果を画像認識結果転送用I/F40を介してECU50に送信する。
すなわち、画像処理部33、画像認識処理部34での処理結果は、処理装置30のCPU31に送られ、ECU50が受け取れるデータフォーマットに修正された後、ECU50に転送される。ECU50に転送するデータフォーマットとしては、主に、CAN I/F、LIN I/Fなどが挙げられる。
ECU50は、運転者等のヘッドライトスイッチの操作(ON/OFF)に応じてヘッドライトを制御し、処理装置30からの処理情報に基づいて、ヘッドライト装置10に加えて、車両1の制動装置、操舵装置を制御する。
ECU50は、CPU51、メモリ52、CPUI/F53、CPUI/F55、発光制御用I/F56、制動制御用I/F57、操舵制御用I/F58を含む。
CPU51は、ヘッドライト装置10を制御する投光制御部51a、制動装置を制御する制動制御部51b、操舵装置を制御する操舵制御部51cを含む。
CPU51は、CPU31からの明るさ情報を、開始終了信号転送用I/F38、CPUI/F53を介して取得する。
また、CPU51は、CPU31からの画像認識結果を、画像認識結果転送用I/F40、CPUI/F55を介して取得する。
制動制御部51b、操舵制御部51cは、CPU31からの画像認識結果を、画像認識結果転送用I/F40、CPUI/F55を介して取得する。
制動制御部51bは、取得した画像認識結果に基づいて、制動装置の制御(例えば危険回避のためのオートブレーキ)を行う。
操舵制御部51cは、取得した画像認識結果に基づいて、操舵装置の制御(例えば危険回避のためのオートステアリング)を行う。
次に、ステレオカメラ20により撮像された画像を用いる視差計算アルゴリズムについて図6〜図8を参照して説明する。
ステレオカメラ20の左右の撮像部により撮像された画像データは、画像処理部33の前処理部にて、それぞれガンマ補正や歪み補正などの処理が施される。前処理が施された左右の画像データは、画像処理部33の後処理部である視差画像生成手段(図6参照)にて視差算出アルゴリズムが実行され、画素ごとに視差値が算出される。
ところで、視差画像を生成する演算手法は、EBM(エッジベース)のようにテクスチャの強い部分(エッジの強い部分)についてのみ視差を演算する手法でも良い。または、SGM(セミグローバルマッチング)のように各ピクセル周囲からマッチングの非類似度を漸化式により伝播させ、最小の非類似度を与える整数視差とそれに隣接する視差の非類似度とから小数視差を算出するサブピクセル推定手法(等角直線、パラボラ、高次多項式等によるフィッティング)を用いることで画像全体の各ピクセルの視差を演算することも可能である。
SGMの方が、EBMに比べると、視差データの画素抜けを抑えることができるため好ましい。
そこで、本実施形態の視差画像生成手段は、SGM法を採用しており、一例として、図7に示されるように、基準画像に対する高域強調フィルタ部、比較画像に対する高域強調フィルタ部、一致度算出部、伝播類似度算出部、整数視差算出部、少数視差算出部を含む。なお、SGM法に関しては、非特許文献(Accurate and Efficient Stereo Processing by Semi-Global Matching and Mutual Information)に開示されている。
以下に、本実施形態の視差画像生成手段について説明する。SGM視差計算では、図7に示されるように、視差を算出させたい注目画素の各方向から非類似度を伝播させ((1)式又は(2)式参照)、それらの和であるエネルギーS((3)式参照)を算出し、エネルギーSの最小値を与える整数視差D[ピクセル]を、注目画素の整数視差として導出する。ここで(1)式および(2)式で表現されているCとは、基準画像の注目画素の比較画像の視差探索による一致度を表している。Cの例としては、SADやSSDやNCC等、他のステレオマッチング指標を用いても良い。Cの算出の後に、(1)式または(2)式からLrを算出し、最後に(3)式によりSを算出する。伝播方向数を増やすと視差計算精度が向上するが、計算処理回路規模が大きくなる(視差計算精度と処理回路規模がトレードオフの関係)。
さらに視差精度を追求する場合には、図8に示されるようにサブピクセル推定手法を使って小数視差を算出する。例えば等角直線法では、視差D−1、D、D+1に対応する3つのSを使って小数視差D’を計算する。またはパラボラフィット手法では、視差D−2、D−1、D、D+1、D+2に対応する5つのSを使って小数視差D’を計算する。
なお、算出された視差値は、信頼度判定によって信頼できるか否かの判断が行なわれる。信頼できない視差値であると判断された場合には、その画素の視差は無効視差とされる。
<測距の原理>
図9を用いて、ステレオ画像法により、ステレオカメラから物体に対する視差を導き出し、この視差を示す視差値によって、ステレオカメラから物体までの距離を測定する原理について説明する。なお、図9は、ステレオカメラ20から物体までの距離を導き出す原理の説明図である。また、以下では、説明を簡略化するため、複数の画素からなる所定領域ではなく、一画素単位で説明する。
なお、一画素単位ではなく、複数の画素からなる所定領域単位で処理される場合、基準画素を含む所定領域は基準領域として示され、対応画素を含む所定領域は対応領域として示される。また、この基準領域には基準画素のみの場合も含まれ、対応領域には対応画素のみの場合も含まれる。
(視差値算出)
まず、図9に示される撮像部20aおよび撮像部20bによって撮像された各画像を、それぞれ基準画像Iaおよび比較画像Ibとする。なお、図9では、撮像部20aおよび撮像部20bが平行等位に設置されているものとする。図9において、3次元空間内の物体E上のS点は、撮像部20aおよび撮像部20bの同一水平線上の位置に写像される。すなわち、各画像中のS点は、基準画像Ia中の点Sa(x,y)および比較画像Ib中の点Sb(X,y)において撮像される。このとき、視差値Δは、撮像部20a上の座標におけるSa(x,y)と撮像部20b上の座標におけるSb(X,y)とを用いて、次の(4)式のように表される。
Δ=X−x …(4)
ここで、図9のような場合には、基準画像Ia中の点Sa(x,y)と撮像レンズ11aから撮像面上におろした垂線の交点との距離をΔaにし、比較画像Ib中の点Sb(X,y)と撮像レンズ11bから撮像面上におろした垂線の交点との距離をΔbにすると、視差値Δ=Δa+Δbとなる。
(距離算出)
また、視差値Δを用いることで、撮像部20a,20bと物体Eとの間の距離Zを導き出すことができる。具体的には、距離Zは、撮像レンズ11aの焦点位置と撮像レンズ11bの焦点位置とを含む面から物体E上の特定点Sまでの距離である。図9に示されるように、撮像レンズ11a及び撮像レンズ11bの焦点距離f、撮像レンズ11aと撮像レンズ11bとの間の長さである基線長B、及び視差値Δを用いて、次の(5)式により、距離Zを算出することができる。
Z=(B×f)/Δ …(5)
この(5)式により、視差値Δが大きいほど距離Zは小さく、視差値Δが小さいほど距離Zは大きくなる。
<SGM法>
続いて、図10(A)〜図14を用いて、SGM法を用いた測距方法について説明する。なお、図10(A)は基準画像、図10(B)は図10(A)に対する高密度視差画像、図10(C)は図10(A)に対するエッジ視差画像を示す概念図である。
ここで、基準画像は、物体が輝度によって示された画像である。高密度視差画像は、SGM法によって、基準画像から導き出された画像であり、基準画像の各座標における視差値を示した画像である。エッジ視差画像は、従来から用いられているブロックマッチング法によって導き出された画像であり、基準画像のエッジ部のような比較的テクスチャの強い部分のみの視差値を示した画像である。
SGM法は、テクスチャが弱い物体に対しても適切に上記視差値を導き出す方法であり、図10(A)に示されている基準画像に基づいて、図10(B)に示されている高密度視差画像を導き出す方法である。なお、ブロックマッチング法を用いた場合には、図10(A)に示されている基準画像に基づいて、図10(C)に示されているエッジ視差画像が導き出される。図10(B)及び図10(C)における破線の楕円内を比べると分かるように、高密度視差画像は、エッジ視差画像に比べてテクスチャが弱い道路等の詳細な情報を表すことができるため、より詳細な測距を行うことができる。
このSGM法は、非類似度であるコスト値を算出して直ちに視差値を導出せず、コスト値を算出後、更に、合成非類似度である合成コスト値 (Synthesis Cost)を算出することで視差値を導出し、最終的にほぼ全ての画素における視差値を示す視差画像(ここでは、高密度視差画像)を導き出す方法である。
なお、ブロックマッチング法の場合は、コスト値を算出する点はSGM法と同じであるが、SGM法のように、合成コスト値を算出せずに、エッジ部のような比較的テクスチャの強い部分の視差値のみを導出する。
(コスト値の算出)
まず、図11(A)〜図12を用いて、コスト値C(p,d)の算出方法について説明する。図11(A)は基準画像における基準画素を示す概念図、図11(B)は図11(A)の基準画素に対して比較画像における対応画素の候補を順次シフトしながら(ずらしながら)シフト量(ずれ量)を算出する際の概念図である。図12は、シフト量毎のコスト値を示すグラフである。ここで、対応画素は、基準画像内の基準画素に最も類似する比較画像内の画素である。なお、以降、C(p,d)は、C(x,y,d)を表すものとして説明する。
図11(A)及び図11(B)に示されているように、基準画像内の所定の基準画素p(x,y)と、この基準画素p(x,y)に対する比較画像内におけるエピポーラ線(Epipolar Line)上の複数の対応画素の候補q(x+d,y)との各輝度値に基づいて、基準画素p(x,y)に対する各対応画素の候補q(x+d,y)のコスト値C(p,d)が算出される。dは、基準画素pと対応画素の候補qのシフト量(ずれ量)であり、本実施形態では、画素単位のシフト量が表されている。即ち、図11(A)及び図11(B)では、対応画素の候補q(x+d,y)を予め指定された範囲(例えば、0<d<25)において順次一画素分シフトしながら、対応画素の候補q(x+d,y)と基準画素p(x,y)との輝度値の非類似度であるコスト値C(p,d)が算出される。コスト値Cの算出方法としては、コスト値Cが非類似度を示す場合、SAD(Sum of Absolute Difference)等の公知の方法が適用される。
このようにして算出されたコスト値C(p,d)は、図12に示されているように、シフト量d毎のコスト値Cの集まりであるコスト曲線のグラフによって表すことができる。図12では、コスト値Cは、シフト量d=5,12,19の場合が0(ゼロ)となるため、最小値を求めることができない。このように、テクスチャが弱い物体の場合には、コスト値Cの最小値を求めることは困難になる。
(合成コスト値の算出)
次に、図13及び図14を用いて、合成コスト値Ls(p,d)の算出方法について説明する。図13は、合成コスト値を導き出すための概念図である。図14は、視差値毎の合成コスト値を示す合成コスト曲線のグラフである。本実施形態における合成コスト値の算出方法は、コスト値C(p,d)の算出だけでなく、所定の基準画素p(x,y)の周辺の画素を基準画素とした場合のコスト値を、基準画素p(x,y)におけるコスト値C(p,d)に集約させて、合成コスト値Ls(p,d)を算出する。
次に、合成コスト値の算出方法について、より詳細に説明する。合成コスト値Ls(p,d)を算出するためには、まず、経路コスト値Lr(p,d)を算出する必要がある。次の(6)式は、経路コスト値Lr(p,d)を算出するための式であって上記(1)式と実質的に同じ式であり、(7)式は、合成コスト値Lsを算出するための式であって上記(3)式と実質的に同じ式である。
Lr(p,d)=C(p,d)+min{(Lr(p−r,d),Lr(p−r,d−1)+P1,Lr(p−r,d+1)+P1,Lrmin(p−r)+p2}…(6)
ここで、(6)式において、rは、集約方向の方向ベクトルを示し、x方向およびy方向の2成分を有する。min{}は、最小値を求める関数である。Lrmin(p−r)は、pをr方向に1画素シフトした座標において、シフト量dを変化させた際のLr(p−r,d)の最小値を示す。なお、Lrは、(6)式に示されているように再帰的に適用される。また、P1及びP2は、予め実験により定められた固定パラメータであり、経路上で隣接する基準画素の視差値Δが連続になりやすいようなパラメータになっている。例えば、P1=48、P2=96である。
また、(6)式に示されているように、Lr(p,d)は、基準画素p(x,y)におけるコスト値Cに、図13に示されているr方向の各画素における各画素の経路コスト値Lrの最小値を加算することで求められる。このように、r方向の各画素におけるLrを求めるため、最初は、基準画像p(x,y)のr方向の一番端の画素からLrが求められ、r方向に沿ってLrが求められる。
そして、図13に示されているように、8方向のLr0,Lr45,Lr90,Lr135,Lr180,Lr225,Lr270,Lr315求められ、最終的に(7)式に基づいて、合成コスト値Lsが求められる。
このようにして算出された合成コスト値Ls(p,d)は、図14に示されているように、シフト量d毎に合成コスト値Ls(p,d)が示される合成コスト曲線のグラフによって表すことができる。図14では、合成コスト値Lsは、シフト量d=3の場合が最小値となるため、視差値Δ=3として算出される。
なお、上記説明ではrの数を8として説明しているが、これに限られることはない。例えば、8方向を更に2つに分割して16方向、3つに分割して24方向等にしてもよい。
また、コスト値Cは「非類似度」として示されているが、非類似度の逆数としての「類似度」として表されてもよい。この場合、コスト値Cの算出方法としては、NCC(Normalized Cross Correlation)等の公知の方法が適用される。また、この場合、合成コスト値Lsが最小ではなく「最大」となる視差値Δが導出される。なお、非類似度と類似度の両者を含めて、「一致度」として表してもよい。
なお、処理装置の処理の一部をECUが実行しても良いし、ECUの処理の一部を処理装置が実行しても良い。また、処理装置及びECU双方の機能を併有する1つの制御系を構成しても良い。この場合、物体検出プログラム、移動体制御プログラムを1つのメモリに格納しても良い。
また、メモリに代えて、例えばハードディスク等の他の記憶媒体を用いても良い。
また、移動体制御システムの制御対象が車両の制動装置、操舵装置であるが、これに限られない。例えば、制動装置及び操舵装置の一方のみを制御対象としても良いし、車両の駆動源(例えばエンジンやモータ)を制御対象の少なくとも1つとしても良い。
また、移動体制御システムは、車両本体を制御する制動制御部、操舵制御部を有しているが、これに代えて又は加えて、後述する物体検出装置の検出情報に基づいて、運転者等に注意を促すための警報音や警報表示を出力する警報装置を有していても良い。
また、光量分布が不規則な発光パターンによってLEDアレイを点灯させてランダムパターン光を投光しているが、これに代えて、例えば、プロジェクションマッピング映像で代表される「模様」を自車両前方に投影させても良い。すなわち、投光装置は、光により画像を形成し、該画像を形成した光をランダムパターン光として射出する画像形成部を有していても良い。また、不規則なパターン分布を持つマスクパターンに光を照射することにより、ランダムパターン光を生成し、投光しても良い。
また、投光装置の光源部としてヘッドライト装置が用いられているが、ヘッドライト装置とは、別の専用の光源部を別途設けても良い。また、ヘッドライト装置は、車両本体に標準装備されるものに限らず、特注品やオプション品であっても良い。
また、撮像装置として、2つの撮像部(2眼)を有するステレオカメラ20が採用されているが、3つ以上の撮像部を有する撮像装置を採用しても良い。
[詳細]
上記投光制御部51aは、取得した明るさ情報に応じて、メモリ52に格納された発光パターンデータを用いてヘッドライト装置10のヘッドライトを点灯させ、ランダムパターン光を投光させる。
そこで、ヘッドライト装置10及び投光制御部51aを含んで、ランダムパターン光を投光する「投光装置」が構成される。また、投光装置及びステレオカメラ20を含んで、投光装置の投光範囲を撮像する「撮像システム」が構成される。さらに、撮像システム及び画像処理部33を備える画像処理システムを含んで、投光装置の投光範囲の物体情報を検出する物体検出装置が構成される。
ECU50は、ヘッドライトの消灯中に車両外部が「暗い」と判断したときにヘッドライトを点灯し、該ヘッドライトの点灯中に車両外部が「明るい」と判断したときにヘッドライトを消灯する。
詳述すると、ECU50は、ヘッドライトの消灯中に、車両外部の明るさ情報を検出する明るさ情報検出手段からの検出結果に基づいて車両外部が「暗い」と判断したときに、発光パターンデータを用いてヘッドライトを点灯し、該ヘッドライトからパターン光を投光させる。なお、ヘッドライトの駆動回路は、発光パターンデータを受信すると、LEDアレイの各LEDを該発光パターンデータにおいて該LED毎に設定された電流値で駆動する。
詳述すると、発光パターンデータは、ECU50のメモリ52(図5参照)に格納されている。ECU50のCPU51(図5参照)は、投光時にメモリ52から発光パターンデータを読み出し、該発光パターンデータに従って各ヘッドライトのLEDアレイを駆動する。
また、ECU50は、ヘッドライトを点灯しているときに、明るさ情報検出手段からの検出結果に基づいて車両外部が明るくなったと判断したときに、該ヘッドライトを消灯する。
ヘッドライトから車両前方に投光されたパターン光は、投光範囲に物体がある場合に、該物体に照射される。ここで、「投光範囲」は、各ヘッドライトによる投光可能な範囲を併せた範囲を意味する(図1参照)。
明るさ情報検出手段としては、ステレオカメラ20と該ステレオカメラ20で撮像された画像を処理する後述する画像処理部33とを含んで構成することができるが、例えば単眼カメラと画像処理部の組み合わせや、照度センサなどを用いても良い。すなわち、明るさ情報検出手段がステレオカメラ20と画像処理部33で構成される場合には、画像処理部33が画像中の全画素の輝度の合計値が閾値より小さいときに「暗い」と判断する。また、明るさ情報検出手段が照度センサである場合には、センサの取得値が閾値より小さいときに「暗い」と判断する。もちろん、明るさ情報検出手段による明るさの検出は、車両外部の明るさを取得できれば種々の態様をとり得る。明るさ情報検出手段での検出結果は、ECU50に送信される。
ここで、「発光パターンデータ」は不規則な光量分布(電流値分布)を持つデータであり、対応する「パターン光」は不規則な輝度分布を持つ(図4参照)。そこで、以下では、「パターン光」を「ランダムパターン光」とも呼ぶ。
ランダムパターン光では、2値又は多値(3値以上)の輝度部が不規則に分布している(図4参照)。
例えば、発光パターンデータの光量分布が2値の光量部が不規則に分布したものである場合には、これに対応して、ランダムパターン光も2値の輝度部が不規則に分布したものとなる。
例えば、発光パターンデータの光量分布が、多値の光量部が不規則に分布したものである場合には、これに対応して、ランダムパターン光も多値の輝度部が不規則に分布したものとなる。
ここで、ECU50のメモリ52に、例えば模様が同一であってコントラストが異なる複数の発光パターンデータ(以下では「コントラストが異なる複数の発光パターンデータ」と略称する)を格納しても良い。コントラストが異なる複数の発光パターンデータは、基準となる発光パターンデータに対して全光量部の光量値を一律に増減させることで得られる。
この場合に、ECU50が、車両外部の明るさや、車両前方の他車両、障害物などの物体の有無や、車両前方の環境のテクスチャ量や、視差画像の視差信頼度情報に基づいて、コントラストが異なる複数の発光パターンデータから適切な発光パターンデータを選択し、該発光パターンデータを用いて各ヘッドライトのLEDアレイを点灯することが望ましい。
車両前方の物体の有無を検出する物体有無検出手段としては、ステレオカメラ20と画像処理部33を含んで構成することができるが、例えば単眼カメラや偏光カメラと画像処理部の組み合わせや、レーザレーダなどを用いても良い。なお、明るさ検出手段として単眼カメラと画像処理部の組み合わせを用いる場合には、この組み合わせを物体有無検出手段としても用いることができる。
車両前方の環境のテクスチャ量を検出するテクスチャ検出手段、視差画像の視差信頼度情報を取得する手段としては、ステレオカメラ20と画像処理部33とを含んで構成することができる。
そこで、コントラストが異なる複数の発光パターンデータがメモリ52に格納されている場合には、ECU50は、車両外部の明暗や車両前方の環境に応じて、コントラストが異なる複数のパターン光のうち一のパターン光を各ヘッドライトから選択的に投光させることができる。
ところで、車両において、昼間のトンネル内、夜間などの暗部においては、ヘッドライトから前方に光を投光することにより暗部を明るくするが、元々暗部にある物体のコントラストはすでに低いため、単にヘッドライトを点灯して均一な光を照射しても、画像コントラストが得られにくい。そのため、暗部では、ステレオカメラで車両前方の視差画像を取得する際に、視差計算時に左右画像のマッチング(相関)が取りづらくなる。その結果、車両前方の被写体(人、他車両、障害物、路面、背景など)の無効視差画素数が多くなり、出力視差の精度が低下していた。
以下に、本実施形態の移動体制御システム100による車両本体の制御(車両制御処理)を、図15のフローチャートを参照して説明する。ここでの制御は、ECU50と処理装置30によって実行される。すなわち、移動体制御システム100の制御に用いられる移動体制御プログラムのうちECU50を動作させるためのサブプログラムがECU50のメモリ52に格納され、処理装置30を動作させるためのサブプログラムが処理装置30のメモリ29に格納されている。
なお、移動体制御プログラムは、物体検出装置の制御に用いられる物体検出プログラムの全手順を含む。物体検出プログラムのうち投光装置を制御するためのサブプログラムがECU50のメモリ52に格納され、ステレオカメラ20、処理装置30を制御するためのサブプログラムが処理装置30のメモリ29に格納されている。
ここでの制御は、運転者や同乗者(以下では「運転者等」と呼ぶ)により車両1の操作部においてセーフティモード(危険回避モード)が選択(ON)されているときに行われる。セーフティモードが選択(ON)されているときには、ステレオカメラ20は両眼でリアルタイムに撮像を行い、左右の画像をフレーム毎に画像処理部33に送る。
最初のステップS1では、ECU50が「投光制御処理1」を実行する。「投光制御処理1」については、後述する。
次のステップS2では、「視差画像生成処理」を実行する。「視差画像生成処理」は、メモリ29に格納されたサブプログラムに従って処理装置30により実行される。具体的には、処理装置30がステレオカメラ20で撮像された左右のフレーム毎の画像(輝度画像)から視差画像を生成する。詳述すると、画像処理部33がガンマ補正や歪み補正などの前処理を実施した後、視差計算を行い、前処理された輝度画像、視差計算によって得られた視差画像を画像認識処理部34に送る。
次のステップS3では、「画像認識処理」を実行する。「画像認識処理」は、メモリ29に格納されたサブプログラムに従って処理装置30により実行される。具体的には、処理装置30が視差画像を用いて画像認識(物体認識)を実施する。詳述すると、画像認識処理部34が投光範囲の物体に関する情報(物体情報)を認識(検出)し、その結果(画像認識結果)をECU50に送る。なお、「物体に関する情報」は、例えば物体の有無、物体までの距離、物体の種類(例えば人、構造物、道路等)などである。なお、物体の種類の検出は、複数種類の物体の大きさ、形状等のパラメータを予めメモリ29に格納し、該パラメータに基づいて検出することが可能である。
次のステップS4では、「制動・操舵制御処理」を実行する。「制動・操舵制御処理」は、メモリ52に格納されたサブプログラムに従ってECU50により実行される。具体的には、ECU50が、受信した画像認識結果に基づいて、オートブレーキやオートステアリング(危険回避のための制御)を行う。より詳細には、画像認識結果に基づいて、制動・操舵制御部51bが制動装置、操舵装置を適宜制御する。
次のステップS5では、ECU50が、セーフティモードがONか否かを判断する。ここでの判断が肯定されるとステップS1に戻り、否定されるとフローは終了する。
次に、「車両制御処理」のステップS1の「投光制御処理1」について、図16のフローチャートを参照して説明する。投光制御処理1は、投光制御部51aにより、メモリ52に格納されたサブプログラムに従って実行される。ここでは、ステレオカメラ20でリアルタイムに撮像された車両前方の画像(輝度画像)から処理装置30で明るさ情報がリアルタイムに算出され、該明るさ情報が投光制御部51aにリアルタイムで送信されている。
最初のステップS11では、車両外部が暗いか否かを判断する。具体的には、処理装置30からの明るさ情報を予め設定された基準値と比較し、その明るさ情報が該基準値未満であれば「暗い」と判断し、該基準値以上であれば「暗くない」と判断する。ステップS11での判断が否定されると(暗くないと判断されると)ステップS12に移行し、ステップS11での判断が肯定されると(暗いと判断されると)、ステップS13に移行する。
ステップS12では、消灯トリガ信号をヘッドライト装置10へ送信する。この結果、ヘッドライトが点灯中のときには消灯され、ヘッドライトが消灯中のときには消灯状態が維持される。ステップS12が実行されると、フローは終了する。
ステップS13では、点灯トリガ信号と発光パターンデータをヘッドライト装置10へ送信する。この結果、ヘッドライトが点灯中のときには点灯状態が維持され、ヘッドライトが消灯中のときには点灯され、ランダムパターン光が車両前方に投光される。このとき、ランダムパターン光が投光された範囲がステレオカメラ20の両眼で撮像され、撮像された左右の画像が画像処理部33にフレーム毎に送られる。ステップS13が実行されると、フローは終了する。
なお、投光制御処理1を含む車両制御処理において、セーフティモードがONのときには、運転者等によるヘッドライトスイッチの手動操作に優先して、車外の明るさが基準値未満のときに自動的にヘッドライトが点灯し、該基準値以上のときにはヘッドライトは点灯しない。一方、セーフティモードがOFFのときには、ヘッドライトは、運転者等によるヘッドライトスイッチの手動操作のみによって点灯/消灯される。
以上説明した本実施形態の撮像システムは、車両本体(移動体)に搭載される撮像システムであって、ランダムパターン光(不規則な輝度分布を持つパターン光)を投光する、ヘッドライト装置10及び投光制御部51aを含む投光装置と、該投光装置の投光範囲を撮像する2つの撮像部20a、20bを含むステレオカメラ20(撮像装置)と、を備えている。
この場合、投光範囲(ランダムパターン光が投光される範囲)をステレオカメラ20で撮像できるため、暗部に対しての物体情報の検出に有効な画像を得ることができる。
また、投光装置はランダムパターン光を投射する、車両本体に標準装備されるヘッドライト装置10を光源部として含む。この場合、ランダムパターン光が暗部を照らす照明光になるとともに視差計算に有効な光にもなる。すなわち、ヘッドライト装置10に加えて光源部を別途設ける必要がない。
また、本実施形態の物体検出装置は、撮像システムと、車両本体に搭載され、撮像システムのステレオカメラ20で撮像された画像を処理する処理装置30と、を備えている。
この場合、撮像システムで得られた暗部に対しての物体情報の検出に有効な画像(左右の画像)から、該物体情報を高精度に検出することができる。
この結果、例えば、投光範囲における左右の画像のマッチング精度を向上でき、投光範囲にある物体の視差を精度良く算出できる。
すなわち、もともとコントラストの低い暗部にある物体にもテクスチャが付くため、ステレオカメラ20の左右の撮像部で取得した画像にはコントラストが現れ、左右のマッチング精度が確保でき、暗部にある物体の視差算出精度を向上できる。
結果として、本実施形態の物体検出装置によれば、暗部に対しての物体情報の検出精度を向上させることができる。
また、投光装置は、車両本体の外部の明るさが予め設定された基準値(所定値)未満のときにランダムパターン光を投光するため、視差計算の精度が落ちる暗部に対してのみランダムパターン光を投光することができ、不要な投光を抑制でき省エネ化を図ることができる。なお、もともと明部にある物体のコントラストはすでに高いため、車両外部が明るい場合には、ランダムパターン光を投光する必要性は低い。
また、投光装置は、ステレオカメラ20で撮像された画像の輝度情報から明るさ情報を取得するため、明るさ情報を検出するための専用の検出手段を別途設ける場合に比べて、部品点数の増加及びコストアップを抑制できる。
また、処理装置30は、2つの撮像部20a、20bで個別に撮像された複数の画像から視差画像を生成する画像処理部33を更に含むため、高精度の視差画像を生成することができる。
また、処理装置30は、画像処理部33で生成された視差画像を用いて画像認識を行う画像認識処理部34を更に含むため、高精度の画像認識結果を得ることができる。
また、移動体制御システム100は、物体検出装置と、車両本体に搭載され、物体検出装置の処理装置30での画像認識結果に基づいて車両本体を制御するECU50とを備えるため、走行中の車両本体が物体に衝突するのを未然に防止することができる。
また、車両1(移動体装置)は、移動体制御システム100と、該移動体制御システム100が搭載される車両本体(移動体)とを備えるため、安全性に優れる。
また、本実施形態の投光装置は、車両本体に搭載される、2つの撮像部20a、20bを含むステレオカメラ20の撮像範囲にランダムパターン光を投光するため、暗部であっても投光範囲にある物体の視差を精度良く算出可能な画像をステレオカメラ20に取得させることができる。
なお、以上の説明からも分かるように、本発明の投光装置、撮像システム、物体検出装置は、暗い環境において使用される場合に特に有効な装置であり、必ずしも車両本体等の移動体に搭載されなくても良く、様々な分野で使用されることが期待される。なお、投光装置、撮像システム、物体検出装置が移動体に搭載されない場合には、ヘッドライト装置の代わりの光源部を用いることになる。
また、本実施形態の物体検出装置を用いた物体検出方法は、車両本体上からランダムパターン光を投光する工程と、ランダムパターン光が投光された範囲を移動体上の2つの位置から撮像する工程と、該撮像する工程で撮像された画像を処理する工程とを含む。
この場合、ランダムパターン光が投光された範囲を2つの位置から撮像できるため、暗部に対しての物体情報の検出に有効な画像を得ることができ、該画像から該物体情報を高精度に検出することができる。
結果として、本実施形態の物体検出方法によれば、暗部に対しての物体情報の検出精度を向上させることができる。
また、物体検出方法は、撮像する工程で複数位置から個別に撮像された複数の画像から視差画像を生成する工程を更に含むため、高精度の視差画像を生成することができる。
また、本実施形態の移動体制御システムを用いた移動体制御方法は、車両本体上からランダムパターン光を投光する工程と、ランダムパターン光が投光された範囲を移動体上の複数位置から撮像する工程と、撮像する工程で複数位置から個別に撮像された複数の画像から視差画像を生成する工程と、視差画像を生成する工程で生成された視差画像を用いて画像認識する工程と、画像認識する工程での認識結果に基づいて、車両本体を制御する工程と、を含む。
この場合、走行中の車両本体が物体に衝突するのを防止することができる。
また、本実施形態の物体検出装置の制御に用いられる物体検出プログラムは、上記物体検出方法をコンピュータに実行させる物体検出プログラムであって、車両本体上からランダムパターン光を投光する手順と、ランダムパターン光が投光された範囲を車両本体上の複数位置から撮像する手順と、該撮像する手順で撮像された画像を処理する手順と、を含む。
この場合、ランダムパターン光が投光された範囲を2つの位置から撮像できるため、暗部に対しての物体情報の検出に有効な画像を得ることができ、該画像から該物体情報を高精度に検出することができる。
結果として、本実施形態の物体検出プログラムによれば、暗部に対しての物体情報の検出精度を向上させることができる。
また、物体検出プログラムは、撮像する工程で複数位置から個別に撮像された複数の画像から視差画像を生成する手順を更に含むため、高精度の視差画像を生成することができる。
また、本実施形態の移動体制御システムの制御に用いられる移動体制御プログラムは、車両本体上からランダムパターン光を投光する手順と、ランダムパターン光が投光された範囲を移動体上の複数位置から撮像する手順と、撮像する手順で複数位置から個別に撮像された複数の画像から視差画像を生成する手順と、視差画像を生成する手順で生成された視差画像を用いて画像認識する手順と、画像認識する手順での認識結果に基づいて、車両本体を制御する手順と、を含む。
この場合、走行中の車両本体が物体に衝突するのを防止することができる。
また、物体検出プログラムは、一部がメモリ29に、残部がメモリ52に格納されているため、物体検出装置を、適宜、物体検出プログラムに従って動作させることができる。
また、移動体制御プログラムは、一部がメモリ29に、残部がメモリ52に格納されているため、移動体制御システム100を、適宜、移動体制御プログラムに従って動作させることができる。
以下に、上記実施形態の幾つかの変形例について説明する。
《変形例1》
変形例1の移動体制御システムは、上記実施形態の移動体制御システム100と同様の構成を有している。変形例1では、投光制御処理が上記実施形態と異なる。
変形例1では、ECU50のメモリ52に、コントラストが異なる2つの発光パターンデータ(高コントラスト発光パターンデータ、低コントラスト発光パターンデータ)が格納されており、投光制御部51aは、ヘッドライトを点灯させるとき、車両外部の明るさに応じて、これら2つの発光パターンデータから一の発光パターンデータを選択し、該一の発光パターンデータを用いて該ヘッドライトのLEDアレイを点灯させる。
以下に、変形例1の投光制御処理2を、図17のフローチャートを参照して説明する。ここでの制御は、投光制御部51aにより、メモリ52に格納されたサブプログラムに従って実行される。ここでは、ステレオカメラ20でリアルタイムに撮像された車両前方の画像(輝度画像)から処理装置30で明るさ情報がリアルタイムに算出され、該明るさ情報が投光制御部51aにリアルタイムで送信される。
最初のステップS21では、受信した明るさ情報が第1基準値未満であるか否かを判断する。ステップS21での判断が否定されるとステップS22に移行し、ステップS21での判断が肯定されると、ステップS23に移行する。ここで、明るさ情報が第1基準値以上である場合(ステップS22に移行する場合)は、一般に「明るい」と感じるレベルである。
ステップS22では、消灯トリガ信号をヘッドライト装置10へ送信する。この結果、ヘッドライトが点灯中のときには消灯され、ヘッドライトが消灯中のときには消灯状態が維持される。ステップS22が実行されると、フローは終了する。
ステップS23では、受信した明るさ情報が、第1基準値よりも小さい第2基準値未満であるか否かを判断する。ステップS23での判断が肯定されるとステップS24に移行し、ステップS23での判断が否定されると、ステップS25に移行する。ここで、明るさ情報が第1基準値未満かつ第2基準値以上の場合(ステップS25に移行する場合)は、一般に「薄暗い」と感じるレベルである。明るさ情報が第2基準値未満の場合(ステップS24に移行する場合)は、一般に「暗い」と感じるレベルである。
ステップS24では、点灯トリガ信号と高コントラスト発光パターンデータをヘッドライト装置10へ送信する。この結果、ヘッドライトが点灯中のときには点灯状態が維持され、ヘッドライトが消灯中のときには点灯され、高コントラストなランダムパターン光が車両前方に投光される。このとき、高コントラストなランダムパターン光が投光された範囲がステレオカメラ20の両眼で撮像され、撮像された左右の画像が画像処理部33にフレーム毎に送られる。ステップS24が実行されると、フローは終了する。
ステップS25では、点灯トリガ信号と低コントラスト発光パターンデータをヘッドライト装置10へ送信する。この結果、ヘッドライトが点灯中のときには点灯状態が維持され、各ヘッドライトが消灯中のときには該ヘッドライトが点灯され、低コントラストなランダムパターン光が車両前方に投光される。このとき、低コントラストなランダムパターン光が投光された範囲がステレオカメラ20の両眼で撮像され、撮像された左右の画像が画像処理部33にフレーム毎に送られる。ステップS25が実行されると、フローは終了する。
なお、投光制御処理2を含む車両制御処理において、セーフティモードがONのときには、運転者等によるヘッドライトスイッチの手動操作に優先して、車外の明るさ情報が第1基準値未満のときに自動的にヘッドライトが点灯し、第1基準値以上のときにはヘッドライトは点灯されない。一方、セーフティモードがOFFのときには、ヘッドライト装置10は、運転等によるヘッドライトスイッチの手動操作によってのみ点灯/消灯される。
以上説明した変形例1では、投光制御部51a及びヘッドライト装置10を含む投光装置は、ランダムパターン光を投光するとき、車両外部の明るさに応じてランダムパターン光のコントラストを調整する(輝度分布を調整する)。
この場合、車両外部の明るさに応じて視差計算に適したコントラストのランダムパターン光を投光することができる。
例えば、運転者の注意力が散漫となる「薄暗い」ときには低めのコントラストのランダムパターン光を投光することで、視差を高精度に算出でき、かつ運転者に対するランラムパターン光による視認性の違和感を低減することができる。結果として、システムによる安全性の向上と視認性を両立することができる。
例えば、視差の算出に不利な「暗い」ときには高めのコントラストのランダムパターン光を投光することで、視差を高精度に算出できる。結果として、システムによる安全性を確保できる。
なお、上記変形例1では、基準値を2つ設定し、明るさ情報が2つの基準値の少なくとも一方を下回ったときにコントラストが異なる2つのランダムパターン光を選択的に投光することとしているが、基準値を3つ以上設定し、各基準値を境にコントラストが異なる3つ以上のランダムパターン光を選択的に投光することとしても良い。この場合も、明るさ情報が小さいほど(暗いほど)コントラストが高いランダムパターン光を投光することが望ましい。
《変形例2》
変形例2では、移動体制御システムの構成、投光制御処理が上記実施形態と異なる。図18に示される変形例2の移動体制御システム200の処理装置60では、上記実施形態の処理装置30に対して、車両前方テクスチャ情報CPUI/F36、テクスチャ情報転送用I/F39が追加されている。また、移動体制御システム200のECU70では、上記実施形態のECU50に対して、CPUI/F54が追加されている。
処理装置60の画像処理部33は、ステレオカメラ20で撮像された左右の画像(輝度画像)から、車両前方テクスチャ情報を算出し、車両前方テクスチャ情報CPUI/F36を介してCPU31に送信する。CPU31は、受信した車両前方テクスチャ情報を、テクスチャ情報転送用I/F39を介してECU50に送信する。
ECU70のCPU51は、CPU31からのテクスチャ情報を、テクスチャ情報転送用I/F39、CPUI/F54を介して取得する。
変形例2では、ECU70のメモリ52に、コントラストが異なる2つの発光パターンデータ(高コントラスト発光パターンデータ、低コントラスト発光パターンデータ)が格納されており、投光制御部51aは、ヘッドライト装置10を点灯させるとき、車両前方の物体の有無に応じて、これら2つの発光パターンデータから一の発光パターンデータを選択し、該一の発光パターンデータを用いて各ヘッドライトのLEDアレイを点灯させる。
以下に、変形例2の投光制御処理3を、図19のフローチャートを参照して説明する。投光制御処理3は、投光制御部51aにより、メモリ52に格納されたサブプログラムに従って実行される。ここでは、ステレオカメラ20でリアルタイムに撮像された車両前方の画像(輝度画像)から処理装置60で明るさ情報がリアルタイムに算出され、該明るさ情報が投光制御部51aにリアルタイムで送信される。
最初のステップS31では、車両外部が暗いか否かを判断する。具体的には、処理装置60からの明るさ情報を予め設定された基準値と比較し、その明るさ情報が該基準値未満であれば「暗い」と判断し、基準値以上であれば「暗くない」と判断する。ステップS31での判断が否定されると(暗くないと判断されると)ステップS32に移行し、ステップS31での判断が肯定されると(暗いと判断されると)、ステップS33に移行する。
ステップS32では、消灯トリガ信号をヘッドライト装置10へ送信する。この結果、ヘッドライトが点灯中のときには消灯され、ヘッドライトが消灯中のときには消灯状態が維持される。ステップS32が実行されると、フローは終了する。
ステップS33では、車両前方に物体があるか否かを判断する。ここでは、処理装置60が物体の有無を判定し、その判定結果をECU70に出力する。具体的には、画像処理部33がステレオカメラ20からの画像(輝度画像)における車両前方領域のテクスチャ量を判定することにより物体の有無を判定し、その判定結果を投光制御部51aに出力する。詳述すると、画像処理部33は、このテクスチャ量が閾値以上のときに「物体あり」と判定し、閾値未満のときに「物体なし」と判定する。テクスチャ量の判定方法については、後述する。ステップS33での判断が肯定されるとステップS34に移行し、ステップS33での判断が否定されるとステップS35に移行する。なお、車両前方に物体があるか否かの判断は、テクスチャ量による判断のみに限られず、種々の方法を取り得る。例えば、公知のパターンマッチングを用いて車両前方の物体を認識しても良い。ただし、車両前方に物体があるか否かの判断は計算速度も要求されるため、テクスチャ量による物体有無の判断が有効である。
ステップS34では、点灯トリガ信号と高コントラスト発光パターンデータをヘッドライト装置10へ送信する。この結果、ヘッドライトが点灯中のときには点灯状態が維持され、ヘッドライトが消灯中のときには点灯され、高コントラストなランダムパターン光が車両前方に投光される。このとき、高コントラストなランダムパターン光が投光された範囲がステレオカメラ20の両眼で撮像され、撮像された左右の画像が画像処理部33にフレーム毎に送られる。ステップS34が実行されると、フローは終了する。
ステップS35では、点灯トリガ信号と低コントラスト発光パターンデータをヘッドライト装置10へ送信する。この結果、ヘッドライトが点灯中のときには点灯状態が維持され、ヘッドライトが消灯中のときには該ヘッドライトが点灯され、低コントラストなランダムパターン光が車両前方に投光される。このとき、低コントラストなランダムパターン光が投光された範囲がステレオカメラ20の両眼で撮像され、撮像された左右の画像が画像処理部33にフレーム毎に送られる。ステップS35が実行されると、フローは終了する。
以上説明した変形例2では、投光制御部51a及びヘッドライト装置10を含む投光装置は、ランダムパターン光を投光するとき、車両前方(投光装置の投光範囲)における物体の有無に応じてランダムパターン光のコントラストを調整する(輝度分布を調整する)。
この場合、車両前方の物体の有無、すなわち衝突危険性に応じて必要十分なコントラストのランダムパターン光を投光することができる。
例えば、衝突危険性が低い「物体なし」のときには低めのコントラストのランダムパターン光を投光することで、視差を高精度に算出でき、かつ運転者に対するランラムパターン光による視認性の違和感を低減することができる。結果として、システムによる安全性と視認性を両立することができる。
例えば、衝突危険性が高い「物体あり」のときには高めのコントラストのランダムパターン光を投光することで、視差をより高精度に算出できる。結果として、システムによる安全性を確保できる。
また、処理装置60がステレオカメラ20で撮像された画像から物体の有無を検出するため、物体の有無を検出するための専用の検出手段を別途設ける場合に比べて、部品点数の増加及びコストアップを抑制できる。
《変形例3》
変形例3の移動体制御システムは、変形例2の移動体制御システム200と同様の構成を有している。変形例3では、投光制御処理が上記実施形態と異なる。
変形例3では、ECU70のメモリ52に、コントラストが異なる2つの発光パターンデータ(高コントラスト発光パターンデータ、低コントラスト発光パターンデータ)が格納されており、投光制御部51aは、ヘッドライト装置10を点灯させるとき、車両前方及び斜め前方のテクスチャ量の和に応じて、これら2つの発光パターンデータから一の発光パターンデータを選択し、該一の発光パターンデータを用いて各ヘッドライトのLEDアレイを点灯させる。
以下に、変形例2の投光制御処理4を、図20のフローチャートを参照して説明する。投光制御処理4は、投光制御部51aにより、メモリ29に格納されたサブプログラムに従って実行される。ここでは、ステレオカメラ20でリアルタイムに撮像された車両前方の画像(輝度画像)から処理装置60で明るさ情報がリアルタイムに算出され、該明るさ情報が投光制御部51aにリアルタイムで送信される。
最初のステップS41では、車両外部が暗いか否かを判断する。具体的には、処理装置60からの明るさ情報を予め設定された基準値と比較し、その明るさ情報が該基準値未満であれば「暗い」と判断し、基準値以上であれば「暗くない」と判断する。ステップS41での判断が否定されると(暗くないと判断されると)ステップS42に移行し、ステップS41での判断が肯定されると(暗いと判断されると)、ステップS43に移行する。
ステップS42では、消灯トリガ信号をヘッドライト装置10へ送信する。この結果、ヘッドライトが点灯中のときには消灯され、ヘッドライトが消灯中のときには消灯状態が維持される。ステップS42が実行されると、フローは終了する。
ステップS43では、ステレオカメラ20で撮像された画像全体のテクスチャ量が多いか否かを判断する。ここでは、処理装置60がテクスチャ量を判定し、その判定結果をECU70に出力する。具体的には、画像処理部33がステレオカメラ20からの画像(輝度画像)における車両前方領域及び斜め前方領域のテクスチャ量の和(以下ではテクスチャ総量とも呼ぶ)が閾値以上であるか否かを判定し、その判定結果を投光制御部51aに出力する。詳述すると、画像処理部33は、このテクスチャ総量が閾値以上のときに「テクスチャ総量が多い」と判定し、閾値未満のときに「テクスチャ総量が多くない」と判定する。このテクスチャ総量の判定方法については、後述する。ステップS43での判断が肯定されるとステップS44に移行し、ステップS43での判断が否定されるとステップS45に移行する。
ステップS44では、点灯トリガ信号と低コントラスト発光パターンデータをヘッドライト装置10へ送信する。この結果、ヘッドライトが点灯中のときには点灯状態が維持され、ヘッドライトが消灯中のときには該ヘッドライトが点灯され、低コントラストなランダムパターン光が車両前方に投光される。このとき、低コントラストなランダムパターン光が投光された範囲がステレオカメラ20の両眼で撮像され、撮像された左右の画像が画像処理部33にフレーム毎に送られる。ステップS44が実行されると、フローは終了する。
ステップS45では、点灯トリガ信号と高コントラスト発光パターンデータをヘッドライト装置10へ送信する。この結果、ヘッドライトが点灯中のときには点灯状態が維持され、ヘッドライトが消灯中のときには点灯され、高コントラストなランダムパターン光が車両前方に投光される。このとき、高コントラストなランダムパターン光が投光された範囲がステレオカメラ20の両眼で撮像され、撮像された左右の画像が画像処理部33にフレーム毎に送られる。ステップS45が実行されると、フローは終了する。
以上説明した変形例3では、投光制御部51a及びヘッドライト装置10を含む投光装置は、ランダムパターン光を投光するとき、車両前方及び斜め前方のテクスチャ量の和(ヘッドライト装置10の投光範囲におけるテクスチャ総量)に基づいてランダムパターン光のコントラストを調整(輝度分布を調整)する。
この場合、車両前方及び斜め前方のテクスチャ量の和(テクスチャ総量)に応じて必要十分なコントラストのランダムパターン光を投光することができる。
例えば、テクスチャ総量が多い場合(繁華街、山林等を走行中の場合)には低めのコントラストのランダムパターン光を投光することで、視差を高精度に算出でき、かつ運転者に対するランラムパターン光による視認性の違和感を低減することができる。結果として、システムによる安全性と視認性を両立することができる。
例えば、テクスチャ総量が少ない場合(海岸、田園、荒野等を走行中の場合)には高めのコントラストのランダムパターン光を投光することで、視差をより高精度に算出できる。結果として、システムによる安全性を確保できる。
また、処理装置60はステレオカメラ20で撮像された画像から投光範囲のテクスチャ量を取得するため、テクスチャ量を検出するための専用の検出手段を別途設ける場合に比べて、部品点数の増加及びコストアップを抑制できる。
なお、上記変形例3では、テクスチャ総量の閾値を1つ設定し、該閾値を境にコントラストが異なる2つのランダムパターン光を選択的に投光することとしているが、テクスチャ総量の閾値を2つ以上設定し、各閾値を境にコントラストが異なる3つ以上のランダムパターン光を選択的に投光することとしても良い。この場合も、テクスチャ総量が少ないほどコントラストが高いランダムパターン光を投光することが望ましい。
ここで、上記変形例2におけるテクスチャ量の判定方法、上記変形例3におけるテクスチャ総量の判定方法について図21(A)及び図21(B)を参照して説明する。
先ず、図21(A)において、ある画素のテクスチャ定義式を、Txt=|(A+B)−(C+D)|とする。||は絶対値を意味する。
Aは、ある画素から2画素左隣の画素の画素値とする。
Bは、ある画素から1画素左隣の画素の画素値とする。
Cは、ある画素から1画素右隣の画素の画素値とする。
Dは、ある画素から2画素右隣の画素の画素値とする。
また、Thをテクスチャ閾値とする。
Txt>Thを満たす場合、その画素にはテクスチャがあると判断し、テクスチャフラグflag=1を立てる。
Txt>Thを満たさない場合、その画素にはテクスチャがないと判断し、テクスチャフラグflag=0を立てる。
この処理を、画像全体もしくは画像におけるテクスチャ量の判定対象領域の各画素に対して行い、flag=1となっている画素の個数をカウントすることにより、画像全体もしくは判定対象領域全体のテクスチャ量を判定することができる(図21(B)参照)。
例えば、車両前方領域のみのテクスチャ量を判定したいときは、車両前方領域の範囲(例えば4座標)を予め指定しておき、その範囲内のflag=1の個数をカウントすれば良い。例えば、車両斜め前方領域のテクスチャ量を判定したいときは、画像の両サイドの領域に対して領域指定(座標指定)しておき、その範囲内のflag=1の個数をカウントすれば良い。なお、「テクスチャ量」の定義式に関しては、上記は一例に過ぎず、例えば、Txt=|A−C|や、Txt=|B−D|等の種々の対応を取り得る。
《変形例4》
変形例4の移動体制御システムは、上記実施形態の移動体制御システム100と同様の構成を有している。変形例4では、投光制御処理が上記実施形態と異なる。
変形例4では、ECU50のメモリ52に、コントラストが異なる2つの発光パターンデータ(高コントラスト発光パターンデータ、低コントラスト発光パターンデータ)が格納されており、投光制御部51aは、ヘッドライト装置10を点灯させるとき、視差画像における無効視差画素数(視差の信頼度情報)に応じて、これら2つの発光パターンデータのいずれかを用いて各ヘッドライトのLEDアレイを点灯させる。
以下に、変形例4の投光制御処理5を、図22のフローチャートを参照して説明する。投光制御処理5は、投光制御部51aにより、メモリ52に格納されたサブプログラムに従って実行される。ここでは、ステレオカメラ20でリアルタイムに撮像された車両前方の画像(輝度画像)から処理装置30で明るさ情報がリアルタイムに算出され、該明るさ情報が投光制御部51aにリアルタイムで送信される。
最初のステップS51では、車両外部が暗いか否かを判断する。具体的には、処理装置30からの明るさ情報を予め設定された基準値と比較し、その明るさ情報が該基準値未満であれば「暗い」と判断し、該基準値以上であれば「暗くない」と判断する。ステップS51での判断が否定されると(暗くないと判断されると)ステップS52に移行し、ステップS51での判断が肯定されると(暗いと判断されると)、ステップS53に移行する。
ステップS52では、消灯トリガ信号をヘッドライト装置10へ送信する。この結果、ヘッドライトが点灯中のときには消灯され、ヘッドライトが消灯中のときには消灯状態が維持される。ステップS52が実行されると、フローは終了する。
ステップS53では、点灯トリガ信号と低コントラスト発光パターンデータをヘッドライト装置10へ送信する。この結果、ヘッドライトが点灯中のときには点灯状態が維持され、ヘッドライトが消灯中のときには該ヘッドライトが点灯され、低コントラストなランダムパターン光が車両前方に投光される。このとき、低コントラストなランダムパターン光が投光された範囲がステレオカメラ20の両眼で撮像され、撮像された左右の画像が画像処理部33にフレーム毎に送られる。ステップS53が実行されると、ステップS54に移行する。
ステップS54では、視差画像に無効視差画素数が多く存在するか否かを判断する。ここでは、処理装置30が視差画像における無効視差画素数の多少を判定し、その判定結果をECU50に出力する。具体的には、画像処理部33がステレオカメラ20で撮像された画像(輝度画像)に対して、ガンマ補正や歪み補正などの前処理を実施した後、視差計算を行い、視差計算によって得られた視差画像を画像認識処理部34に送る。そして、画像認識処理部34は、受信した視差画像における無効視差画素数が閾値以上であるか否かを判定し、その判定結果を投光制御部51aに出力する。ステップS54での判断が肯定されるとステップS55に移行し、ステップS54での判断が否定されると、フローは終了する。
ステップS55では、点灯トリガ信号と高コントラスト発光パターンデータをヘッドライト装置10へ送信する。この結果、ヘッドライトが点灯中のときには点灯状態が維持され、ヘッドライトが消灯中のときには点灯され、高コントラストなランダムパターン光が車両前方に投光される。このとき、高コントラストなランダムパターン光が投光された範囲がステレオカメラ20の両眼で撮像され、撮像された左右の画像が画像処理部33にフレーム毎に送られる。ステップS55が実行されると、フローは終了する。
以上説明した変形例4では、投光制御部51a及びヘッドライト装置10を含む投光装置は、ランダムパターン光を投光するとき、視差画像における無効視差画素数、すなわち視差の信頼度情報に基づいてランダムパターン光のコントラストを調整(輝度分布を調整)する。
この場合、視差の信頼度情報に応じて適切なコントラストのランダムパターン光を投光することができる。
例えば、無効視差画素数が少ない場合(視差の信頼度が高い場合)には低めのコントラストのランダムパターン光を投光することで、視差を高精度に算出でき、かつ運転者に対するランラムパターン光による視認性の違和感を低減することができる。結果として、システムによる安全性と視認性を両立することができる。
例えば、無効視差画素数が多い場合(視差の信頼度が低い場合)には高めのコントラストのランダムパターン光を投光することで、視差を高精度に算出できる。結果として、システムによる安全性を確保できる。
また、処理装置30は、ステレオカメラ20で撮像された画像から無効視差画素数(視差の信頼度情報)を取得するため、他の手段により無効視差画素数を取得する場合に比べて、構成を簡素化でき、コストアップを抑制できる。
なお、上記変形例4では、無効視差画素数の閾値を1つ設定し、該閾値を境にコントラストが異なる2つのランダムパターン光を選択的に投光することとしているが、無効視差画素数の閾値を2つ以上設定し、各閾値を境にコントラストが異なる3つ以上のランダムパターン光を選択的に投光することとしても良い。この場合も、無効視差画素数が多いほどコントラストが高いランダムパターン光を投光することが望ましい。
《変形例5》
変形例5の移動体制御システムは、上記実施形態の移動体制御システム100と同様の構成を有している。変形例5では、投光制御処理が上記実施形態と異なる。
変形例5では、ECU50のメモリ52に、コントラストが異なる2つの発光パターンデータ(高コントラスト発光パターンデータ、低コントラスト発光パターンデータ)が格納されており、投光制御部51aは、ヘッドライト装置10を点灯させるとき、車両前方の物体の有無に応じて、これら2つの発光パターンデータのいずれかを用いて各ヘッドライトのLEDアレイを点灯させる。
以下に、変形例5の投光制御処理6を、図23のフローチャートを参照して説明する。投光制御処理6は、投光制御部51aにより、メモリ52に格納されたサブプログラムに従って実行される。ここでは、ステレオカメラ20でリアルタイムに撮像された車両前方の画像(輝度画像)から処理装置30で明るさ情報がリアルタイムに算出され、該明るさ情報が投光制御部51aにリアルタイムで送信される。
最初のステップS61では、車両外部が暗いか否かを判断する。具体的には、処理装置60からの明るさ情報を予め設定された基準値と比較し、その明るさ情報が該基準値未満であれば「暗い」と判断し、該基準値以上であれば「暗くない」と判断する。ステップS61での判断が否定されると(暗くないと判断されると)ステップS62に移行し、ステップS61での判断が肯定されると(暗いと判断されると)、ステップS63に移行する。
ステップS62では、消灯トリガ信号をヘッドライト装置10へ送信する。この結果、ヘッドライトが点灯中のときには消灯され、ヘッドライトが消灯中のときには消灯状態が維持される。ステップS62が実行されると、フローは終了する。
ステップS63では、点灯トリガ信号と低コントラスト発光パターンデータをヘッドライト装置10へ送信する。この結果、ヘッドライトが点灯中のときには点灯状態が維持され、ヘッドライトが消灯中のときには該ヘッドライトが点灯され、低コントラストなランダムパターン光が車両前方に投光される。このとき、低コントラストなランダムパターン光が投光された範囲がステレオカメラ20の両眼で撮像され、撮像された左右の画像が画像処理部33にフレーム毎に送られる。ステップS63が実行されると、ステップS64に移行する。
ステップS64では、車両前方に物体があるか否かを判断する。具体的には、処理装置30が視差画像を生成し、該視差画像を用いて画像認識を行って物体の有無を判定し、その判定結果をECU50に出力する。詳述すると、画像処理部33がステレオカメラ20で撮像された画像(輝度画像)に対してガンマ補正や歪み補正などの前処理を実施した後、視差計算を行い、前処理された輝度画像、視差計算によって得られた視差画像を画像認識処理部34に送る。画像認識処理部34は、輝度画像、視差画像を用いて画像認識を行って物体の有無を判定し、その判定結果を投光制御部51aに出力する。ステップS64での判断が肯定されるとステップS65に移行し、ステップS64での判断が否定されるとフローは終了する。
ステップS65では、点灯トリガ信号と高コントラスト発光パターンデータをヘッドライト装置10へ送信する。この結果、ヘッドライトが点灯中のときには点灯状態が維持され、ヘッドライトが消灯中のときには点灯され、高コントラストなランダムパターン光が車両前方に投光される。このとき、高コントラストなランダムパターン光が投光された範囲がステレオカメラ20の両眼で撮像され、撮像された左右の画像が画像処理部33にフレーム毎に送られる。ステップS65が実行されると、フローは終了する。
以上説明した変形例5では、車両外部が暗い場合に低コントラストなランダムパターン光を投光し、撮像された画像から視差画像を生成し、該視差画像を用いた画像認識を行うため、車両前方の物体の有無を精度良く検出することができる。そして、車両前方の有無に基づいてランダムパターン光のコントラストを調整(輝度分布を調整)する。すなわち、車両前方に「物体なし」と検出された場合には低コントラストなランダムパターン光の投光が続行され、車両前方に「物体あり」と検出された場合には高コントラストなランダムパターン光の投光に切り替えられる。
この場合、車両前方の物体の有無に応じて適切なコントラストのランダムパターン光を投光することができる。
この結果、車両前方の物体の有無、すなわち衝突危険性に応じて適切なコントラストのランダムパターン光を投光することができる。
例えば、衝突危険性が低い「物体なし」のときには低めのコントラストのランダムパターン光を投光することで、視差を高精度に算出でき、かつ運転者に対するランラムパターン光による視認性の違和感を低減することができる。結果として、システムによる安全性と視認性を両立することができる。
例えば、衝突危険性が高い「物体あり」のときには高めのコントラストのランダムパターン光を投光することで、視差をより高精度に算出できる。結果として、システムによる安全性を確保できる。
また、処理装置30がステレオカメラ20で撮像された画像から物体の有無を検出するため、物体の有無を検出するための専用の検出手段を別途設ける場合に比べて、部品点数の増加及びコストアップを抑制できる。
なお、図24に示される変形例6の投光制御処理7(ステップS71〜ステップS75)のように、図23のフローチャートにおけるステップS63とステップ65を実質的に入れ替えたような制御を行っても良い。変形例6でも、変形例5と同様な効果得ることができる。
以下に、本発明の実施例1〜5(用いた視差計算方法:SGMアルゴリズム)を示す(表1参照)。
〈実施例1〉(上記実施形態に対応)
走行中、運転手が暗いことを判断して手動でヘッドライトを点灯させた。ヘッドライトの照射光には、不均一なコントラストを付けた。その結果、車両前方の無効視差画素数が減少した。
〈実施例2〉(上記実施形態に対応)
明るさ情報検出手段を用いた。走行中、自動的に暗いことを判断して自動でヘッドライトを点灯させた。ヘッドライトの照射光には、不均一なコントラストを付けた。その結果、車両前方の無効視差画素数が減少した。
〈実施例3〉(上記変形例2、5に対応)
明るさ情報検出手段と物体有無検出手段を用いた。走行中、自動的に暗いことを判断して自動でヘッドライトを点灯させた。また、走行中、車両前方の40m先に他車両の存在を検知したため、ヘッドライトの照射光には、不均一なコントラストを付けた。その結果、車両前方の無効視差画素数が減少した。特に、車両前方の他車両の無効視差画素数が減少していた。
〈実施例4〉(上記変形例3に対応)
明るさ情報検出手段とテクスチャ検出手段を用いた。走行中、自動的に暗いことを判断して自動でヘッドライトを点灯させた。また、走行中、輝度画像から判断したテクスチャはあまり残っていなかったため、ヘッドライトの照射光には、不均一なコントラストを付けた。その結果、車両前方の無効視差画素数が減少した。
〈実施例5〉(上記変形例4に対応)
明るさ検出手段と視差画像信頼度情報(無効視差画素数)取得手段を用いた。走行中、自動的に暗いことを判断して自動でヘッドライトを点灯させた。また、走行中、視差画像から判断した無効視差画素数は全画素数に対して65%も存在していたため、ヘッドライトの照射光には、不均一なコントラストを付けた。その結果、車両前方の無効視差画素数が減少した。
なお、実施例1〜5ではステレオカメラを検出系の手段として使用したが、これに限定されない。視差情報を取得する手段以外の手段は、単眼カメラや偏光カメラやレーザレーダ等を使用することもできる。
本発明は、上記実施形態、各変形例、各実施例に限定されず、適宜変更可能である。例えば、複数のランダムパターン光としては、コントラストと模様が異なる複数のランダムパターン光であっても良いし、模様が異なりコントラストが同じ複数のランダムパターン光であっても良い。複数のランダムパターン光間の切り替えは、運転者が手動で切り替える構成としても良い。
また、上記各変形例、各実施例では、低コントラストなランダムパターン光を投光する代わりに、例えばコントラストがない(輝度分布が均一な)模様の光、コントラストに規則性がある光などの規則的な輝度分布を持つパターン光を投光するようにしても良い。