以下、本発明の一実施形態を、図面を参照して説明する。
[概要]
一実施形態の移動体制御システム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は、ヘッドライトスイッチがOFFからONになったときに、メモリ52に格納された均一発光パターンとランダム発光パターンをヘッドライトに交互に送信し、ヘッドライトから均一パターン光及びランダムパターン光を交互に投光させる。
一方、投光制御部51aは、ヘッドライトスイッチがONからOFFになったときに、消灯トリガ信号をヘッドライトに送信し、ヘッドライトからの投光を終了させる。
また、投光制御部51aは、ランダム発光パターンをヘッドライトに送信するとき、ランダム発光開始信号を、CPUI/F53、開始終了信号転送用I/F38を介してCPU31に送信する。
CPU31は、ランダム発光開始信号を受信すると、該ランダム発光開始信号をステレオカメラ制御用I/F32を介してステレオカメラ20に転送する。
ステレオカメラ20は、ランダム発光開始信号を受信すると、両眼で所定フレーム数の撮像を行い、撮像された左右の画像をフレーム毎に画像処理部33に出力する。そして、ステレオカメラ20は、所定フレーム数を撮像したとき、撮像終了信号をステレオカメラ制御用CPUI/F32を介してCPU31に送信する。
CPU31は、撮像終了信号を受信すると、開始終了信号転送用I/F38、CPUI/F53を介して投光制御部51aに転送する。
投光制御部51aは、撮像終了信号を受信すると、点灯トリガ信号と均一発光パターンをヘッドライトに送信する。
また、投光制御部51aは、均一発光パターンをヘッドライトに送信するとき、均一発光開始信号を、CPUI/F53、開始終了信号転送用I/F38を介してCPU31に送信する。
そこで、ヘッドライト装置10及び投光制御部51aを含んで、均一パターン光とランダムパターン光を交互に投光する「投光装置」が構成される。さらに、投光装置及びステレオカメラ20を含んで、投光装置の投光範囲の画像を得る「撮像システム」が構成される。また、撮像システム及び画像処理部33を備える画像処理システムを含んで、撮像システムで得られた画像から物体情報を検出する物体検出装置が構成される。
ところで、一般に、車両の運転の際には、昼間のトンネル内、夜間などの暗部においては、ヘッドライトから前方に光を投光することにより暗部を明るくするが、もともと暗部にある物体のコントラストは低いため、単にヘッドライトを点灯して均一な光を照射しても、画像コントラストが得られにくい。このため、暗部では、ステレオカメラで車両前方の視差画像を取得する際に、視差計算時に左右画像のマッチング(相関)が取りづらくなる。この結果、車両前方の被写体(人、他車両、障害物、路面、背景など)の無効視差画素数が多くなり、出力視差の精度が低下してしまう。
そこで、本実施形態では、以下に詳細に説明するように「ヘッドライトからの投光」に関して工夫を凝らしている。
ヘッドライトは、例えば、車両1のハンドル付近に設けられたヘッドライトスイッチを手動操作することで点灯/消灯するようにしても良いし(モード1)、ECU50によって点灯/消灯を制御、すなわち自動制御するようにしても良い(モード2)。なお、移動体制御システム100は、一例として、モード1に対応している。
モード1の場合、車両の運転者や同乗者(以下では「運転者等」と呼ぶ)等は、ヘッドライト消灯中に、車両外部が「暗い」と感じたときにヘッドライトスイッチをON操作(OFFからONへの切り換え)してヘッドライトを点灯させる。詳述すると、ECU50は、ヘッドライトスイッチのON操作による点灯要求信号をUSERI/F80(図5参照)を介して受信すると、メモリ52(図5参照)に格納された光量分布(電流値分布)が互いに異なる第1及び第2の発光パターンデータをヘッドライトに交互に送信する。
モード2の場合、ECU50は、ヘッドライト消灯中に、車両外部が「暗い」と判断したときにヘッドライトを点灯させる。詳述すると、ECU50は、車両外部の明るさ情報を検出する明るさ情報検出手段からの検出結果に基づいて車両外部が「暗い」と判断したときに、上記第1及び第2の発光パターンデータをヘッドライトに交互に送信する。
なお、「明るさ情報検出手段」としては、ステレオカメラ20と該ステレオカメラ20で撮像された画像を処理する後述する画像処理部33とを含んで構成することができるが、例えば単眼カメラと画像処理部の組み合わせや、照度センサなどを用いても良い。すなわち、明るさ情報検出手段がステレオカメラ20と画像処理部33で構成される場合には、画像処理部33が画像中の全画素の輝度の合計値が閾値より小さいときに「暗い」と判断する。また、明るさ情報検出手段が照度センサである場合には、センサの取得値が閾値より小さいときに「暗い」と判断する。もちろん、明るさ情報検出手段による明るさの検出は、車両外部の明るさを取得できれば種々の態様をとり得る。明るさ情報検出手段での検出結果は、ECU50に送信される。
モード1、2のいずれの場合においても、第1の発光パターンデータがヘッドライトに送信されている間、第1の発光パターンデータに対応する第1のパターン光がヘッドライトから車両前方に投光され、第2の発光パターンデータがヘッドライトに送信されている間、第2の発光パターンデータに対応する第2のパターン光がヘッドライトから車両前方に投光される。すなわち、ヘッドライトが点灯されると、ヘッドライトから輝度分布が互いに異なる第1及び第2のパターン光が車両前方に交互に投光される。なお、ヘッドライトの駆動回路は、各発光パターンデータを受信すると、LEDアレイの各LEDを該発光パターンデータにおいて該LED毎に設定された電流値で駆動する。
また、第1及び第2のパターン光を交互に投光するとき、いずれを最初(先頭)に投光しても良いが、いずれが最初の場合であっても、最初となるパターン光に対応する発光パターンデータがヘッドライトに送信されるときには、点灯トリガ信号が併せて送信される。
また、モード1の場合、運転者等は、ヘッドライト点灯中に、車両外部が「明るい」と感じたときにヘッドライトスイッチをOFF操作(ONからOFFへの切り換え)してヘッドライトを消灯させる。詳述すると、ECU50は、ヘッドライトスイッチのOFF操作による消灯要求信号をUSERI/F80を介して受信すると、ヘッドライトに消灯トリガ信号を送信し、ヘッドライトを消灯させる。
モード2の場合、ECU50は、ヘッドライトを点灯中に、明るさ情報検出手段からの検出結果に基づいて車両外部が「明るい」と判断したときにヘッドライトに消灯トリガ信号を送信し、ヘッドライトを消灯させる。
ここで、「第1の発光パターンデータ」は均一な光量分布(電流値分布)を持つデータであり、対応する「第1のパターン光」は均一な輝度分布を持つ。そこで、以下では、「第1の発光パターンデータ」を「均一発光パターン」とも呼び、「第1のパターン光」を「均一パターン光」とも呼ぶ。ここで、「均一な輝度分布」は「コントラストがない」と言い換えることもできる。
また、「第2の発光パターンデータ」は不規則な光量分布(電流値分布)を持つデータであり、対応する「第2のパターン光」は不規則な輝度分布(不均一な輝度分布)を持つ。そこで、以下では、「第2の発光パターンデータ」を「ランダム発光パターン」とも呼び、「第2のパターン光」を「ランダムパターン光」とも呼ぶ。
ランダムパターン光では、2値又は多値(3値以上)の輝度部が不規則に分布している(図4参照)。
例えば、ランダム発光パターンの光量分布が2値の光量部が不規則に分布したものである場合には、これに対応して、ランダムパターン光も2値の輝度部が不規則に分布したものとなる。
例えば、ランダム発光パターンの光量分布が、多値の光量部が不規則に分布したものである場合には、これに対応して、ランダムパターン光も多値の輝度部が不規則に分布したものとなる。
ここで、ランダム発光パターンがヘッドライトに送信される時間帯、すなわちランダムパターン光の投光時間Trは、均一発光パターンがヘッドライトに送信される時間帯Tc、すなわち均一パターン光の投光時間Tcよりも短く設定されている(図18参照)。これは、運転者の視認性の観点から、ランダムパターン光の投光時間は均一パターン光の投光時間よりも短い方が好ましいと考えられるからである。また、Tr、Tcは、それぞれ一定とされている。Tr:Tcは、1:(2〜10)程度が好適である。なお、Tr:Tcは、整数比であっても良いし、整数比でなくても良い。なお、Tcは、後述する画像処理部33による視差画像の生成に要する時間に応じて設定されることが好ましい。
そこで、ヘッドライトが点灯されると、投光時間Tcの均一パターン光と投光時間Trのランダムパターン光が投光範囲に交互に(より詳細には、それぞれ周期的に、かつ互いに異なる時間帯に)投光される(図18参照)。
なお、例えば車両外部の明るさに応じて、ランダムパターン光の輝度分布(例えばコントラストや模様)を、運転者等により手動で調整、もしくは自動制御(例えばECU50が明るさ情報検出手段からの検出結果に基づいて制御)するようにしても良い。具体的には、車両外部が暗いほど物体のコントラストが低くなるので、車両外部が暗いほどランダムパターン光のコントラストを高くするようにしても良い。例えば、メモリ52に光量分布が異なる複数のランダム発光パターンを格納しておけば、必要に応じて、輝度分布が異なる複数のランダムパターン光のうち一のランダムパターン光を選択的に投光することができる。
例えば、輝度分布が異なる複数のランダムパターン光としては、コントラストと模様が異なる複数のランダムパターン光であっても良いし、模様が異なりコントラストが同一の複数のランダムパターン光であっても良いし、模様が同一でコントラストが異なる複数のランダムパターン光であっても良い。
均一パターン光及びランラムパターン光が投光範囲に交互に投光されているときに、該投光範囲にある物体(例えば人、他車両、構造物、道路、樹木等)をステレオカメラ20で撮像することができる。この場合、均一パターン光の投光時間Tcにステレオカメラ20の両眼で撮像された左右の画像の物体上には均一パターン光のパターンが重畳し、ランダムパターン光の投光時間Trにステレオカメラ20の両眼で撮像された左右の画像の物体上にはランダムパターン光のパターンが重畳する。
ここで、物体にランダムパターン光が照射されると、テクスチャ量が多くなり、コントラストが高くなる。一方、物体に均一パターン光が照射されても、テクスチャ量がほとんど変わらず、コントラストもほとんど変わらない。
そこで、ランダムパターン光の投光時間Trにステレオカメラ20の両眼で撮像された左右の画像を用いて視差計算を行えば、左右の画像のマッチングが取り易くなり、視差計算精度を向上させることができる。
以下に、本実施形態の物体検出装置における投光制御処理1を、図15のフローチャートを参照して説明する。物体検出装置の制御に用いられる物体検出プログラムのうちヘッドライト装置10を含む投光装置を動作させるためのサブプログラムがECU50のメモリ52に格納されている。投光制御処理1は、投光制御部51aによってこのサブプログラムに従って実行される。
ここでの制御は、運転者等により車両1の操作部においてセーフティモード(危険回避モード)が選択されている(ON)ときに行われる。
なお、セーフティモードがOFFのときは、投光制御部51aは、運転者等によるヘッドライトスイッチのON操作に応じてヘッドライトを均一発光パターンで点灯し、ヘッドライトスイッチのOFF操作に応じてヘッドライトを消灯させる。
最初のステップS1では、ヘッドライトスイッチがONか否かを判断する。ここでの判断は、投光制御部51aがヘッドライトスイッチのON操作による点灯要求信号を受信した場合に肯定され、該点灯要求信号を受信しない場合に否定される。ステップS1での判断が肯定されるとステップS2に移行し、ステップS1での判断が否定されるとステップS5に移行する。
ステップS2では、点灯トリガ信号と均一発光パターンをヘッドライト装置10へ送信するとともに、均一発光開始信号を処理装置30へ送信する。この結果、ヘッドライトから均一パターン光が車両前方に投光されるとともに、CPU31が均一発光開始信号を受信する。
次のステップS3では、ランダム発光パターンをヘッドライト装置10へ送信するとともに、ランダム発光開始信号を処理装置30へ送信する。この結果、ヘッドライトからランダムパターン光が車両前方に投光されるとともに、CPU31がランダム発光開始信号を受信する。
次のステップS4では、撮像終了信号を受信したか否かを判断する。すなわち、ステレオカメラ20からの撮像終了信号を、処理装置30を介して受信したか否かを判断する。ステップS4での判断が否定されると、同じ判断を再び行う。すなわち、「撮像終了待ち」の状態となる。一方、ここでの判断が肯定されると、ステップS5に移行する。
ステップS5では、セーフティモードがONか否かを判断する。ステップS5での判断が肯定されると、ステップS1に戻る。一方、ステップS5での判断が否定されると、フローは、終了する。
以下に、本実施形態の物体検出装置における視差画像生成処理を、図16のフローチャートを参照して説明する。物体検出装置の制御に用いられる物体検出プログラムのうちステレオカメラ20及び処理装置30を動作させるためのサブプログラムが処理装置30のメモリ29に格納されている。視差画像生成処理は、処理装置30によってこのサブプログラムに従って実行される。なお、図16における各判断は、CPU31が行う。
ここでの制御は、運転者等により車両1の操作部においてセーフティモード(危険回避モード)が選択されている(ON)のときに行われる。
最初のステップS11では、均一発光開始信号を受信したか否かを判断する。ステップS11での判断が否定されると、ステップS12に移行する。一方、ステップS11での判断が肯定されると、ステップS14に移行する。
ステップS12では、ステレオカメラ20で所定フレーム数撮像し、撮像された左右の画像をフレーム毎に取得する。すなわち、ここでは、ヘッドライト消灯時にステレオカメラ20で撮像された左右の画像をフレーム毎に取得する。
次のステップS13では、取得した左右のフレーム毎の画像から視差画像を生成する。具体的には、画像処理部33がガンマ補正や歪み補正などの前処理を実施した後、視差計算を行い、前処理された輝度画像、視差計算によって得られた視差画像を画像認識処理部34に送る。ステップS13が実行されると、ステップS15に移行する。
ステップS14では、後述する「点灯時視差画像生成処理1」が行われる。ステップS14が実行されると、ステップS15に移行する。
次のステップS15では、セーフティモードがONか否かを判断する。ステップS15での判断が否定されるとフローは終了し、ステップS15での判断が肯定されるとステップS11に戻る。
画像認識処理部34は、視差画像生成処理で生成された視差画像を用いて画像認識を実施する。具体的には、均一発光開始信号を受信しなかった場合には通常の視差画像生成処理の視差計算結果に基づいた物体検出を行い、均一発光開始信号を受信した場合には後述のランダムパターン光が投光された時間帯での視差計算の結果を用いて物体検出を行う。そして、画像認識処理部34が投光範囲の物体に関する情報を認識(検出)し、その結果(画像認識結果)をECU50に送信する。なお、「物体に関する情報」は、例えば物体の有無、物体までの距離、物体の種類(例えば人、構造物、道路等)などである。なお、物体の種類の検出は、複数種類の物体の大きさ、形状等のパラメータを予めメモリ29に格納し、該パラメータに基づいて検出することが可能である。
続いて、ECU50が、受信した画像認識結果に基づいて、各種制御(危険回避のための制御)を実行する。具体的には、画像認識結果に基づいて、制動制御部51bが制動装置を制御し、操舵制御部51cが操舵装置を制御する。
以下に、「視差画像生成処理」におけるステップS14の「点灯時視差画像生成処理1」について、図17のフローチャート、図18のタイミングチャートを参照して説明する。
最初のステップS21では、ランダム発光開始信号を受信したか否かを判断する。ここでの判断が肯定されると、ステップS22に移行する。一方、ここでの判断が否定されると、同じ判断を再び行う。すなわち、「受信待ち」の状態となる。
ステップS22では、ステレオカメラ20で所定フレーム数撮像し、撮像された左右の画像をフレーム毎に取得する。すなわち、ここでは、ヘッドライトからランダムパターン光が投光されているときにステレオカメラ20で所定フレーム数撮像し、撮像された左右の画像をフレーム毎に取得する(図18参照)。
次のステップS23では、取得した左右のフレーム毎の画像から視差画像を生成する。具体的には、画像処理部33がガンマ補正や歪み補正などの前処理を実施した後、視差計算を行い、前処理された輝度画像、視差計算によって得られた視差画像を画像認識処理部34に出力する(図18参照)。ステップS23が実行されると、ステップS24に移行する。
ステップS24では、撮像終了信号をECU50に転送する。具体的には、ステレオカメラ20からの撮像終了信号を投光制御部51aに転送する(図18参照)。ステップS24が実行されると、フローは、終了する。
ところで、暗部に対してランダムパターン光を車両前方に投光し、投光された範囲をステレオカメラで撮像することで視差計算に有利なコントラストが付与された画像が得られる。しかしながら、ランダムパターン光のみを投光し続けると、ランダムパターン光における明るい部分と暗い部分が常に混在するため、視認性が低下し、運転者等のストレスや事故を誘発することが懸念される。
以上説明した本実施形態の撮像システムは、車両本体に搭載される撮像システムであって、輝度分布が異なる第1及び第2のパターン光を異なる時間帯に投光する、ヘッドライト装置10及び投光制御部51aを含む投光装置と、該投光装置の投光範囲を撮像する、2つの撮像部を含むステレオカメラ20と、を備えている。
この場合、投光装置の全投光時間に占めるランダムパターン光の投光時間の割合を100%未満にしつつ、左右の画像のマッチング精度を向上可能な視差計算に有利な画像を取得することができる。
結果として、本実施形態の撮像システムでは、視認性の低下を抑制しつつ物体情報の検出に有効な画像を得ることができる。
また、投光装置は、車両本体に搭載されるヘッドライトを光源部として含むため、均一パターン光とランダムパターン光が暗部を照らす照明光になるとともに、ランダムパターン光が視差計算に有効な光になる。すなわち、ヘッドライトに加えて専用の光源部を設ける必要がない。
また、ランダムパターン光の投光時間Trは、均一パターン光の投光時間Tcよりも短いため、視認性の低下を更に抑制することができる。
また、投光装置は、均一パターン光及びランダムパターン光を交互に投光するため、均一パターン光の投光の合間に視差計算に有利な画像を得ることができる。
また、投光装置は、均一パターン光及びランダムパターン光それぞれを周期的に投光するため、視差計算に有利な画像を定期的に安定して得ることができる。
また、本実施形態の撮像システムは、投光装置による投光のON/OFFを切り替えるための操作部を更に含むため、運転者等が「暗い」と感じたときに、均一パターン光とランダムパターン光を交互に投光することができる。
また、本実施形態の物体検出装置は、車両本体に搭載される物体検出装置であって、撮像システムと、該撮像システムで撮像された画像を処理する処理装置30と、を備えている。
この場合、視認性の低下を抑制しつつ、撮像システムで得られた物体情報の検出に有効な画像から該物体情報を高精度に検出することができる。
また、本実施形態の移動体制御システム100は、物体検出装置と、車両本体(移動体)に搭載され、物体検出装置の処理装置30の処理結果に基づいて車両本体を制御するECU50(制御装置)と、を備えるため、走行中の車両本体が物体に衝突するのを未然に防止することができる。
また、車両1(移動体装置)は、移動体制御システム100と、該移動体制御システム100が搭載される車両本体(移動体)とを備えるため、安全性に優れる。
また、本実施形態の投光装置は、車両本体に搭載される投光装置であって、車両本体に搭載される、2つの撮像部を含むステレオカメラ20の撮像範囲(左眼撮像範囲と右眼撮像範囲を併せた範囲、図1参照)に均一パターン光とランダムパターン光を異なる時間帯に投光する。
この場合、全投光時間に占めるランダムパターン光の投光時間の割合を100%未満にしつつ、左右の画像のマッチング精度を向上可能な視差計算に有利な画像を取得可能とすることができる。
結果として、本実施形態の投光装置では、視認性の低下を抑制しつつ物体情報の検出精度を向上させることができる。
なお、以上の説明からも分かるように、本発明の投光装置、撮像システム、物体検出装置は、暗い環境において使用される場合に特に効果的であり、必ずしも車両本体等の移動体に搭載されなくても良く、様々な分野で使用されることが期待される。この場合には、ヘッドライト装置10の代わりの光源部を用いることになる。
また、本実施形態の物体検出装置を用いる物体検出方法は、車両本体の前方に均一パターン光を投光する工程と、車両本体の前方にランダムパターン光を投光する工程と、車両本体上の複数位置からランダムパターン光が投光された範囲を撮像する工程と、該撮像する工程で複数位置から個別に撮像された複数の画像を用いて視差計算を行う工程と、を含む。
この場合、全投光時間に占めるランダムパターン光の投光時間の割合を100%未満にしつつ、左右の画像のマッチング精度を向上できる視差計算に有利な画像を用いて視差画像を生成することができる。
結果として、視認性の低下を抑制しつつ物体情報の検出精度を向上させることができる。
また、本実施形態の物体検出装置の制御に用いられる物体制御プログラムは、上記物体検出方法をコンピュータに実行させる物体検出プログラムであって、車両本体の前方に均一パターン光を投光する手順と、車両本体の前方にランダムパターン光を投光する手順と、車両本体上の複数位置からランダムパターン光が投光された範囲を撮像する手順と、を含む。
この場合、全投光時間に占めるランダムパターン光の投光時間の割合を100%未満にしつつ、左右の画像のマッチング精度を向上できる視差計算に有利な画像を用いて視差画像を生成することができる。
結果として、視認性の低下を抑制しつつ物体情報の検出精度を向上させることができる。
また、本実施形態の物体検出プログラムが2つのメモリ29、31に分割して格納されているため、物体検出装置を、適宜、物体検出プログラムに従って動作させることができる。
以下に、上記実施形態の変形例について説明する。
図19に示される変形例の移動体制御システム200は、処理装置、ECUの構成が上記実施形態の移動体制御システム200と若干異なる。移動体制御システム200は、モード2に対応している。
具体的には、移動体制御システム200の処理装置60では、上記実施形態の処理装置30に対して、明るさ情報CPUI/F35、明るさ情報転送用I/F38が追加されている。また、移動体制御システム200のECU70では、上記実施形態のECU50に対して、CPUI/F53が追加されている。
処理装置60の画像処理部33は、ステレオカメラ20で撮像された画像(輝度画像)から、明るさ情報を算出し、明るさ情報CPUI/F35を介してCPU31に送信する。CPU31は、受信した明るさ情報を、明るさ情報転送用I/F38を介してECU70に送信する。
ECU70のCPU51は、CPU31からの明るさ情報を、明るさ情報転送用I/F38、CPUI/F53を介して取得する。
変形例の移動体制御システム200では、「投光制御処理」、「視差画像生成処理」における「点灯時視差画像生成処理」が上記実施形態と異なり、その他の処理、制御は、上記実施形態と同様に行われる。
以下に、変形例の物体検出装置における投光制御処理2を、図20のフローチャートを参照して説明する。物体検出装置の制御に用いられる物体検出プログラムのうちヘッドライト装置10を含む投光装置を動作させるためのサブプログラムがECU70のメモリ52に格納されている。投光制御処理2は、投光制御部51aによってこのサブプログラムに従って実行される。
ここでの制御は、運転者等により車両1の操作部においてセーフティモード(危険回避モード)が選択されている(ON)のときに行われる。セーフティモードがONのときには、CPU31がステレオカメラ20でリアルタイムに撮像を行う(図22参照)。そして、ステレオカメラ20で撮像された車両前方の画像(輝度画像)から画像処理部33で明るさ情報が算出され、該明るさ情報がCPU31を介して投光制御部51aにリアルタイムで送られる。
なお、セーフティモードがOFFのときは、投光制御部51aは、運転者等によるヘッドライトスイッチのON操作に応じてヘッドライトを均一発光パターンで点灯し、ヘッドライトスイッチのOFF操作に応じてヘッドライトを消灯させる。
最初のステップS31では、明るさ情報が、予め設定された基準値未満か否かが判断される。ここでは、基準値は、明るさ情報が基準値未満であれば、一般に「薄暗い」もしくは「暗い」と感じるレベルであり、明るさ情報が基準値以上であれば、一般に「明るい」と感じるレベルである。ステップS31での判断が否定されると、ステップS35に移行する。一方、ステップS31での判断が肯定されると、ステップS32に移行する。
ステップS32では、点灯トリガ信号と均一発光パターンをヘッドライト装置10へ送信するとともに、均一発光開始信号を処理装置60へ送信する。この結果、ヘッドライトから均一パターン光が車両前方に投光されるとともに、CPU31が均一発光開始信号を受信する。
次のステップS33では、ランダム発光パターンをヘッドライト装置10へ送信するとともに、ランダム発光開始信号を処理装置60へ送信する。この結果、ヘッドライトからランダムパターン光が車両前方に投光されるとともに、CPU31がランダム発光開始信号を受信する。
次のステップS34では、画像出力終了信号を受信したか否かを判断する。すなわち、ステレオカメラ20からの画像出力終了信号を、処理装置60を介して受信したか否かを判断する。ステップS34での判断が否定されると、同じ判断を再び行う。すなわち、「画像出力終了待ち」の状態となる。一方、ここでの判断が肯定されると、ステップS35に移行する。
ステップS35では、セーフティモードがONか否かを判断する。ステップS35での判断が肯定されると、ステップS31に戻る。一方、ステップS35での判断が否定されると、フローは、終了する。
以下に、変形例1の「点灯時視差画像生成処理2」について、図21のフローチャート、図22のタイミングチャートを参照して説明する。点灯時視差画像生成処理2も、処理装置60によりメモリ29に格納されたサブプログラムの手順に従って実行される。なお、図21における各判断は、CPU31が行う。
最初のステップS41では、ランダム発光開始信号を受信したか否かを判断する。ここでの判断が肯定されると、ステップS42に移行する。一方、ここでの判断が否定されると、同じ判断を再び行う。すなわち、「受信待ち」の状態となる。
ステップS42では、ステレオカメラ20で撮像された左右の画像をフレーム毎に取得する。すなわち、ここでは、ヘッドライトからランダムパターン光が投光されているときにステレオカメラ20で撮像された所定フレーム数の左右の画像をフレーム毎に取得する(図22参照)。
次のステップS43では、取得した左右のフレーム毎の画像から視差画像を生成する。具体的には、画像処理部33がガンマ補正や歪み補正などの前処理を実施した後、視差計算を行い、前処理された輝度画像、視差計算によって得られた視差画像を画像認識処理部34に出力する(図22参照)。ステップS43が実行されると、ステップS44に移行する。
ステップS44では、画像出力終了信号をECU50に転送する。具体的には、ステレオカメラ20からの画像出力終了信号を投光制御部51aに転送する。ステップS44が実行されると、フローは、終了する。なお、ステレオカメラ20は、ランダム発光開始信号を受信すると、両眼で撮像した左右の画像をフレーム毎に画像処理部33に出力する。ステレオカメラ20は、所定フレーム数の左右の画像を画像処理部33に出力したとき、画像出力終了信号をステレオカメラ制御用CPUI/F32を介してCPU31に送信する。
以上説明した変形例の物体検出装置は、車両本体の外部の明るさ情報が予め設定された基準値(所定値)未満のときに均一パターン光とランダムパターン光を交互に投光し、ランダムパターン光が投光されたときに撮像した画像を用いて視差計算を行うため、視認性の低下を抑制しつつ視差画像を安定して精度よく生成することができる。なお、元々明部にある物体のコントラストはすでに高いため、車両外部が基準値以上の場合(明るい場合)には、ランダムパターン光を投光する必要性は低い。
また、投光装置は、ステレオカメラ20で撮像された画像の輝度情報から明るさ情報を取得するため、明るさ情報を検出するための専用の検出手段を別途設ける場合に比べて、部品点数の増加及びコストアップを抑制できる。
以下に、本発明の実施例1、2(用いた視差計算方法:SGMアルゴリズム)を示す(表1参照)。
〈実施例1〉(上記実施形態に対応)
走行中、運転者等が暗いことを判断して手動でヘッドライトを点灯させ、ヘッドライトから均一なパターン光と不均一なコントラストを付けたパターン光を車両前方に時分割照射(交互に照射)した。運転手は煩わしさやストレスを感じずにいた。また、車両前方の無効視差画素数が減少した。
〈実施例2〉(上記変形例に対応)
明るさ情報検出手段を用いた。自動的に暗いことを判断して自動でヘッドライトを点灯させ、ヘッドライトから均一なパターン光と不均一なコントラストを付けたパターンを車両前方に時分割照射した。運転手は煩わしさやストレスを感じずにいた。また、車両前方の無効視差画素数が減少した。
なお、実施例2ではステレオカメラを明るさ情報検出手段として使用したが、これに限定されない。例えば、単眼カメラや偏光カメラやレーザレーダ等を使用することもできる。
本発明は、上記実施形態、変形例に限定されず、適宜変更可能である。例えば、上記実施形態及び変形例では、ECUから処理装置にランダム発光開始信号を送信しているが、これに代えて、図23(A)及び図23(B)に示されるように、ECUから処理装置にランダムパターン光の投光時間Trをパルス幅とするランダム発光信号を送信し、このランダム発光信号がハイレベルの間だけ、ステレオカメラ20が撮像もしくは画像出力するようにしても良い。そして、ランダム発光信号の立下りに同期して、ECUから均一発光開始信号を処理装置に送信するとともに点灯トリガ信号と均一発光パターンをヘッドライト装置に送信するようにしても良い。この場合、ステレオカメラ20から撮像終了信号もしくは画像出力終了信号を出力する必要がない。
また、上記変形例では、ランダムパターン光が投光されているときにステレオカメラ20で撮像された画像(以下、前者の画像と呼ぶ)から視差画像を生成しているが、これに加えて、図24(A)及び図24(B)に示されるように、均一パターン光が投光されているときにステレオカメラで撮像された画像(以下、後者の画像と呼ぶ)からも視差画像を生成しても良い。この場合、前者の画像から生成した視差画像を用いて画像認識処理部34で画像認識を行えば良い。この場合、ステレオカメラ20から撮像終了信号もしくは画像出力終了信号を出力する必要がない。なお、前者の画像から生成した視差画像は、ランダム発光開始信号もしくはランダム発光信号の立ち上がりと、次の均一発光開始信号との間に時間帯に生成された視差画像である。
また、上記実施形態、変形例では、第1のパターン光が均一パターン光とされ、第2のパターン光がランダムパターン光とされているが、これに限られず、要は、第1及び第2のパターン光の輝度分布が異なれば良い。
また、上記実施形態、変形例では、第2のパターン光として、輝度分布が不規則なランダムパターン光を用いているが、これに限らず、要は、輝度分布が不均一なパターン光であることが好ましい。
また、上記実施形態、変形例では、第1のパターン光として、輝度分布が均一な均一パターン光を用いているが、多少不均一なパターン光を用いても良い。この場合であっても、第1のパターン光の輝度分布は、第2のパターン光よりも均一性が高いことが好ましい。
また、上記実施形態、変形例では、Tr<Tcとされているが、Tr≧Tcであっても良い。また、Tr、Tcそれぞれは、可変であっても良い。