(57)【要約】      （修正有）【課題】ステレオカメラ画像からチルト回転変換による平行化画像情報に基づいて、できるだけ少ない計算量で高速に且つリアルタイムに、高精度で物体を検出できるようにした物体検出装置及び方法を提供する。【解決手段】物体検出装置１０は、路面や床面等の監視対象面に対して、光軸が水平方向よりも下を向いて設置されたステレオカメラ画像情報を取得する左右一対の撮像手段１１と、撮像手段で取得されたステレオカメラ画像情報を平行化した平行化画像情報に基づいて、各対応点の視差を求めて、３Ｄ距離画像情報を生成する画像処理部２０と、から成る。平行化画像情報は、ステレオカメラのキャリブレーション情報に基づく仮想的な下向きのチルト回転変換を施した平行化変換処理により生成され、画像処理部２０が、平行化画像情報における各対応点の視差から３Ｄ距離画像情報を生成する。【選択図】図１
2019016308.tif 000002
【特許請求の範囲】
【請求項１】
路面や床面等の監視対象面に対して、光軸が水平方向よりも下を向いて設置されたステレオカメラ画像情報を取得する左右一対の撮像手段と、
前記撮像手段で取得された前記ステレオカメラ画像情報を平行化した平行化画像情報に基づいて、各対応点の視差を求めて、３Ｄ距離画像情報を生成する画像処理部と、
から成り、
前記平行化画像情報が、前記ステレオカメラのキャリブレーション情報に基づく仮想的な下向きのチルト回転変換を施した平行化変換処理により生成され、
前記画像処理部が、前記平行化画像情報における各対応点の視差から３Ｄ距離画像情報を生成することを特徴とする、物体検出装置。
【請求項２】
路面や床面等の監視対象面に対して、光軸が水平方向よりも下を向いて設置されたステレオカメラ画像情報を取得する左右一対の撮像手段と、
前記撮像手段で取得された前記ステレオカメラ画像情報を平行化した平行化画像情報に基づいて、各対応点の視差を求めて、３Ｄ距離画像情報を生成する画像処理部と、
から成り、
前記平行化画像情報が、前記ステレオカメラのキャリブレーション情報に基づく仮想的な下向きのチルト回転変換を施した平行化処理をされると共にさらに縦圧縮処理され、
前記画像処理部が、前記縦圧縮された平行化画像情報における各対応点の視差から３Ｄ距離画像情報を生成することを特徴とする、物体検出装置。
【請求項３】
路面や床面等の監視対象面に対して、光軸が水平方向よりも下を向いて設置されたステレオカメラ画像情報を取得する左右一対の撮像手段と、
前記撮像手段で取得された前記ステレオカメラ画像情報を２通りの異なる平行化によって変換した平行化画像情報に基づいて、各対応点の視差を求めて、２通りの３Ｄ距離画像情報を生成する画像処理部と、から成り、
前記平行化画像情報が、前記ステレオカメラのキャリブレーション情報に基づき、元々のカメラ光軸に近い向きで行なった第一の平行化変換と、仮想的に下向きのチルト回転変換を施した第二の平行化変換と、によってそれぞれ生成され、
当該第一の平行化変換及び第二の平行化変換で取得した平行化画像情報に基づき、各対応点の視差から第一の平行化変換による第一の３Ｄ距離画像情報と、第二の平行化変換による第二の３Ｄ距離画像情報を生成し、
前記監視対象面に対して垂直な向きを持つ領域に対しては、第一の平行化変換で取得した第一の３Ｄ距離画像情報を用い、
前記監視対象面に対して平行な向きを持つ領域に対しては、第二の平行化変換で取得した第二の３Ｄ距離画像情報を用いることを特徴とする、物体検出装置。
【請求項４】
路面や床面等の監視対象面に対して、光軸が水平方向よりも下を向いて設置されたステレオカメラ画像情報を取得する左右一対の撮像手段と、
前記撮像手段で取得された前記ステレオカメラ画像情報を２通りの異なる平行化によって変換した平行化画像情報に基づいて、各対応点の視差を求めて、２通りの３Ｄ距離画像情報を生成する画像処理部と、から成り、
前記平行化画像情報が、前記ステレオカメラのキャリブレーション情報に基づき、元々のカメラ光軸に近い向きで行なった第一の平行化変換と、仮想的に下向きのチルト回転変換を施し、さらに縦圧縮を行なう第二の平行化変換と、によってそれぞれ生成され、
当該第一の平行化変換及び第二の平行化変換で取得した平行化画像情報に基づき、各対応点の視差から第一の平行化変換による第一の３Ｄ距離画像情報と第二の平行化変換による第二の３Ｄ距離画像情報を生成し、
前記監視対象面に対して垂直な向きを持つ領域に対しては第一の平行化変換で取得した第一の３Ｄ距離画像情報を用い、
前記監視対象面に対して平行な向きを持つ領域に対しては、第二の平行化変換で取得した第二の３Ｄ距離画像情報を用いることを特徴とする、物体検出装置。
【請求項５】
前記画像処理部が、前記第一の３Ｄ距離画像情報と前記第二の３Ｄ距離画像情報を統合することにより、前記第一の３Ｄ距離画像情報を修正することを特徴とする、請求項３または４に記載の物体検出装置。
【請求項６】
路面や床面等の監視対象面に対して、光軸が水平方向よりも下を向いて設置された左右一対の撮像手段により撮像して、ステレオカメラ画像情報を取得する第一の段階と、
前記第一段階で取得された前記ステレオカメラ画像情報を平行化した平行化画像情報に基づいて、各対応点の視差を求めて、３Ｄ距離画像情報を生成する第二の段階と、
から成り、
前記第二の段階における平行化処理が、前記ステレオカメラのキャリブレーション情報に基づく仮想的な下向きのチルト回転変換を施した平行化変換処理であって、
前記第二の段階にて、前記平行化画像情報における各対応点の視差から３Ｄ距離画像情報を生成することを特徴とする、物体検出方法。
【請求項７】
路面や床面等の監視対象面に対して、光軸が水平方向よりも下を向いて設置された左右一対の撮像手段により撮像して、ステレオカメラ画像情報を取得する第一の段階と、
前記第一段階で取得された前記ステレオカメラ画像情報を平行化した平行化画像情報に基づいて、各対応点の視差を求めて、３Ｄ距離画像情報を生成する第二の段階と、
から成り、
前記第二の段階における平行化処理が、前記ステレオカメラのキャリブレーション情報に基づく仮想的な下向きのチルト回転変換を施した平行化変換処理と、その後の縦圧縮処理であって、
前記第二の段階にて、前記縦圧縮された平行化画像情報における各対応点の視差から３Ｄ距離画像情報を生成することを特徴とする、物体検出方法。
【請求項８】
路面や床面等の監視対象面に対して、光軸が水平方向よりも下を向いて設置された左右一対の撮像手段により撮像して、ステレオカメラ画像情報を取得する第一の段階と、
前記第一の段階で取得された前記ステレオカメラ画像情報を２通りの異なる平行化によって変換した平行化画像情報に基づいて、各対応点の視差を求めて、２通りの３Ｄ距離画像情報を生成する第二の段階と、
から成り、
前記平行化画像情報を、前記ステレオカメラのキャリブレーション情報に基づき、元々のカメラ光軸に近い向きで行なった第一の平行化変換と、仮想的に下向きのチルト回転変換を施した第二の平行化変換とによってそれぞれ生成し、
当該第一の平行化変換及び第二の平行化変換で取得した平行化画像情報に基づき、各対応点の視差から第一の平行化変換による第一の３Ｄ距離画像情報と、第二の平行化変換による第二の３Ｄ距離画像情報を生成し、
前記監視対象面に対して垂直な向きを持つ領域に対しては、第一の平行化変換で取得した第一の３Ｄ距離画像情報を用い、
前記監視対象面に対して平行な向きを持つ領域に対しては、第二の平行化変換で取得した第二の３Ｄ距離画像情報を用いることを特徴とする、物体検出方法。
【請求項９】
路面や床面等の監視対象面に対して、光軸が水平方向よりも下を向いて設置された左右一対の撮像手段により撮像して、ステレオカメラ画像情報を取得する第一の段階と、
前記第一の段階で取得された前記ステレオカメラ画像情報を２通りの異なる平行化によって変換した平行化画像情報に基づいて、各対応点の視差を求めて、２通りの３Ｄ距離画像情報を生成する第二の段階と、
から成り、
前記平行化画像情報を、前記ステレオカメラのキャリブレーション情報に基づき、元々のカメラ光軸に近い向きで行なった第一の平行化変換と、仮想的に下向きのチルト回転変換を施し、さらに縦圧縮を行なう第二の平行化変換と、によってそれぞれ生成し、
当該第一の平行化変換及び第二の平行化変換で取得した平行化画像情報に基づき、各対応点の視差から第一の平行化変換による第一の３Ｄ距離画像情報と、第二の平行化変換による第二の３Ｄ距離画像情報を生成し、
前記監視対象面に対して垂直な向きを持つ領域に対しては、第一の平行化変換で取得した第一の３Ｄ距離画像情報を用い、
前記監視対象面に対して平行な向きを持つ領域に対しては、第二の平行化変換で取得した第二の３Ｄ距離画像情報を用いることを特徴とする、物体検出方法。
【請求項１０】
前記第二の段階において、前記第一の３Ｄ距離画像情報と前記第二の３Ｄ距離画像情報を統合することにより、前記第一の３Ｄ距離画像情報を修正することを特徴とする、請求項８または９に記載の物体検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、自動車の走行中に進行方向前方を撮像するステレオカメラ画像に基づいて、路面形状を取得して、車線，縁石，ガードレールや前走車，障害物等を検出したり、さらに屋内外を自律走行するロボットや、屋内外の３Ｄ物体検出を行うステレオ監視カメラシステム等において、特に路面や床面等の監視対象面の高さを凹凸も含めて精度良く検出するための物体検出装置及び方法に関するものである。
【背景技術】
【０００２】
従来、例えばＡＤＡＳ（先進運転支援システム）や自動運転においては、自動車の走行中の進行方向前方の道路周辺の道路状況を把握するために、左右一対のカメラから成る所謂ステレオカメラで撮像したステレオカメラ画像を利用した種々の手法がある。
これらの手法によって、自動車の進行方向前方における路面形状そして道路状況を監視して、路面傾斜や車線，縁石，ガードレール等の路面形状や、前走車，駐車車両等の障害物等の物体を検出するようにしている。
【０００３】
前走車やガードレール等の障害物を検出するための手段として、特許文献１によれば、Ｓｔｉｘｅｌという手法が提案されている。
また、特許文献２によれば、ステレオカメラ画像を処理して、画像の縦方向の視差の頻度情報を求めたＶ−ｄｉｓｐａｒｉｔｙなる情報を利用して、前方路面の傾斜を検出し、またステレオカメラ画像から横方向の視差の頻度情報を求めたＵ−ｄｉｓｐａｒｉｔｙなる情報を利用して、前方障害物を検出する手法も提案されている。
【０００４】
これらの手法においても、左右のカメラの光軸が車両前方を向いた通常のステレオカメラを使用してステレオカメラ画像における視差情報に基づいて推定し、その平坦な部分とは異なる部分を前方障害物として検出すると共に、平坦な走行可能領域も検出している。この場合、路面の高さ位置が高精度かつ安定して検出できる限り、障害物の検出も安定して行なわれる。
一方、道路路面を１つの平面上にあると仮定して、推定した道路の傾きとカメラ高さなどのパラメータから、片側の（例えば左の）カメラ画像を仮想的な道路平面上に逆射影し、さらにそれを反対側の（例えば右の）カメラに射影して、元の（例えば左の）カメラの入力画像と比較することで、道路平面上の点は一致し、平面から上または下にずれている部分は一致しない。この性質を利用することで、道路平面上にあるかどうかがわかる。このような手法が特許文献３で提案されている。
さらに、最近では、車線，センターライン，路側帯等の白線がない道路であっても、道路を走行する自動車の道路外への逸脱防止のために、道路端の縁石を検出する必要性が高まっている。従って、路面そして道路外、即ち道路周辺の高さを正確に検出することが要求されている。
【０００５】
そして、前方障害物の検出に関しては、占有グリッドマップ（Occupancy Grid Map、以下「ＯＧＭ」という）を用いて、視点から物体までの距離，高さ等の三次元（３Ｄ）情報を検出する物体検出方法が知られている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】ＵＳ２０１１／０３１１１０８  Ａ１号公報
【特許文献２】特開２０１６−４５８９１号公報
【特許文献３】ＷＯ２００６／１２３４３８  Ａ１
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献３の手法では、道路路面が１つの平面上にあるという仮定を使ってステレオカメラの逆射影画像情報から道路平面上にある部分と、それ以外の部分の切り分けはできるが、平面上にない部分の高さを正確に求めることはできない。また、道路は一般に、部分的に凹凸やうねりがあり、必ずしも平面で近似されるとは限らない。そのため、安定して路面部分を切り出すことが難しい場合があった。
一方、特許文献１や２の場合は、通常のステレオ処理をベースとしている。この場合、図１５に示すように、通常のステレオカメラ１００においては、撮像対象として左右のカメラ１０１ａ，１０１ｂの光軸にほぼ垂直な面１０２を想定している。このような面１０２に対しては、どの位置に対してもほぼ同じ視差が得られる。
従って、ステレオカメラの視差計算のためのマッチング（対応づけ）アルゴリズムとして、よく使われているSAD(Sum of Absolute Difference)やSSD(Sum of Squared Difference)のブロック相関手法では、左右カメラ１０１ａ，１０１ｂの画像内のあるサイズのブロック内のすべての画素の明度値の微分情報などの差の絶対値や自乗の和を求めて、その最小値を与える視差を選んで、そこから三角測量の原理によって距離を求めている（ステレオ処理）。
その際、光軸に垂直な面に対しては、どの画素値に対しても明度値の微分情報などの差の絶対値は、同じ視差に対して最小値を持つ。なぜなら、カメラの主点（カメラ座標系の原点）位置からの距離が、垂直な面のどの点でも同じになるからである。
従って、前方車両の後部面がトラックやバスのように道路路面に対して垂直に近い面になっている場合には、上述した条件が当てはまり、前方車両後部面のどの位置でも同じ視差が得られるため、通常のステレオカメラは、視線方向を車両の前方に向けて、かつ水平に近いチルト角で搭載している。
【０００８】
これに対して、前述したように、図１６のようにほぼ水平な路面を検出する場合には、検出したい路面１０３は、カメラ１０１ａ，１０１ｂの光軸とは垂直ではなく、むしろ平行に近い状態となる。その場合、上述したステレオカメラの特徴から、前向きの光軸が路面１０３に対して平行に近く設置したステレオカメラ１００では、路面１０３の高さや距離を求める場合に、高い精度は期待できない。
なぜなら、ステレオカメラ１００の視差を求める際のブロック内で、上下方向での異なる位置では、カメラ１０１ａ，１０１ｂからの距離が大きく異なるために、異なる視差を持つことになり、そのブロック内での平均値を取った際にそのブロックの路面に投影された形状によっては偏った距離(高さ)が求まることになるからである。
【０００９】
即ち、カメラの光軸に垂直な面１０２内のブロック領域では、どの部分でもカメラ１０１ａ，１０１ｂからの距離はほぼ同じであるため、ほぼ同じ視差が平均化され精度が向上する。
しかしながら、路面１０３上では視差は異なり、かつ、画像の上に行くに従って、指数関数的に距離が増大していくので、そのブロック全域にわたる視差の平均は、画像中央の距離よりも遠い位置に対する視差となるため、路面に対する距離は、実際の値よりも遠目に出てしまう。
例えば、図１７（Ａ）のような道路の画像内で、路面部分を長方形の領域で切り取ると、この部分は、上から見ると図１７（Ｂ）のようになる。図１７（Ｂ）の領域の中で、「浦安」において、下の「安」の部分は距離が近く、「浦」の部分は遠くなる。
そして、実際にステレオの視差を計算する場合には、図１７（Ａ）の枠内で計算するため、距離が近い部分と遠い部分が混在することから、異なる視差が含まれる。また、距離の変化は画像の上に行けば行くほど、非線形に急激に遠くなるため、図１７（Ａ）の枠内で距離を計算すると、この枠の中心における距離が求まるわけではなく、より遠い位置の距離が求まることになってしまう。図１７（Ａ）における枠のサイズはあくまでも説明のために設定したもので、実際のステレオカメラ画像処理の場合には、例えば１１×１１ピクセル程度の、より小さな領域が計算のためのブロックとして使用される。
また、夜間など、道路のテクスチャ情報が豊富でない場合には、実際の視差とかなり離れた位置に視差が求まったりする誤対応が発生しやすくなる。
【００１０】
現在一般的に使われているステレオカメラでは、ソフトウェアの処理によって左右カメラの光軸を平行化する処理を行っている。この平行化処理は、英語ではRectificationと呼ばれており、左右カメラの光軸を平行化する際に、キャリブレーションによって得られた左右レンズの各主点位置を通る線を新たなカメラの横方向の軸（Ｘ軸）とするが、平行化処理後の新しいカメラ座標系の前方の軸（Ｚ軸）の向きは、このＸ軸に垂直でありさえすれば、任意に決めることができる。
通常は、画像の変形を最小にするために、元の画像に対してできるだけ同じ向きを持つように、平行化処理後の画像の光軸を決めるが、路面に対しては浅い角度で見ることになる。従って、前述のように、左右カメラのセンサ平面に対して路面がかなり傾いて位置することになるので、対応づけのブロック相関を取る際に、同じブロック領域内で上下方向で異なる視差を持つことになり、安定した視差が得にくくなり、距離を高精度で求めることが難しくなる。
【００１１】
本発明は、以上の点に鑑み、ステレオカメラ画像からチルト回転変換による平行化画像情報に基づいて、できるだけ少ない計算量で高速に、高精度で物体を検出できるようにした物体検出装置及び方法を提供することを目的としている。
【課題を解決するための手段】
【００１２】
本発明者は、前記左右レンズの主点位置を通る線を新たなＸ軸とし、それに垂直になるように、かつ、下方を向いたＺ軸を選び、かつ、これらの新たなＸ軸、Ｚ軸と垂直となるように新しいＹ軸を決定することで、左右ステレオカメラ画像のエピポーララインが平行となるような平行化条件が満たされ、あたかも上から見下ろしたような、俯瞰画像でありながら、ステレオ処理も同時に可能となる平行化画像が生成され、路面や床面などの監視対象面に対する距離(高さ)を高精度で求めるばかりでなく、路面上にある段差の高さも高精度で求めることが可能となることを見出し、本発明に想到した。
なお、この光軸を傾斜させてほぼ垂直にするレクティファイ処理は、あくまで仮想的にソフトウェアにより行なわれるので、元の画像即ちカメラを傾ける必要はないので、このような手法を、仮想チルトステレオ（Ｖｉｒｔｕａｌ  Ｔｉｌｔ  Ｓｔｅｒｅｏ）又はＶＴＳと呼ぶことにする。
【００１３】
上記目的は、本発明の第一の構成によれば、路面や床面等の監視対象面に対して、光軸が水平方向よりも下を向いて設置されたステレオカメラ画像情報を取得する左右一対の撮像手段と、撮像手段で取得されたステレオカメラ画像情報を平行化した平行化画像情報に基づいて、各対応点の視差を求めて、３Ｄ距離画像情報を生成する画像処理部と、から成り、平行化画像情報が、ステレオカメラのキャリブレーション情報に基づく仮想的な下向きのチルト回転変換を施した平行化変換処理により生成され、画像処理部が、平行化画像情報における各対応点の視差から３Ｄ距離画像情報を生成することを特徴とする、物体検出装置により達成される。
【００１４】
上記構成によれば、撮像手段により撮像されたステレオカメラ画像情報が、下向きで路面や床面等の監視対象面を撮像したものであることから、従来のほぼ水平方向に向いて設置されたステレオカメラによるステレオカメラ画像情報と比較して、監視対象面により向き合うような画像情報とすることにより、さらに、この下向きのステレオカメラ画像情報を平行化変換処理した平行化画像情報に基づいて３Ｄ距離画像情報を生成するので、監視対象面に対して上から見下ろす俯瞰画像となるため、路面や床面に対する距離を高精度で求めることができる。
かくして、この構成によれば、通常のステレオ処理に比べて、前方路面・床面の高さおよび位置も安定かつ高精度に求めることができ、障害物検出を安定かつ容易にし、また縁石等の高さ方向の検出精度も向上させることができる。
【００１５】
上記目的は、本発明の第二の構成によれば、路面や床面等の監視対象面に対して、光軸が水平方向よりも下を向いて設置されたステレオカメラ画像情報を取得する左右一対の撮像手段と、撮像手段で取得されたステレオカメラ画像情報を平行化した平行化画像情報に基づいて、各対応点の視差を求めて、３Ｄ距離画像情報を生成する画像処理部と、から成り、平行化画像情報が、ステレオカメラのキャリブレーション情報に基づく仮想的な下向きのチルト回転変換を施した平行化処理されると共にさらに縦圧縮処理され、画像処理部が、縦圧縮された平行化画像情報における各対応点の視差から３Ｄ距離画像情報を生成することを特徴とする、物体検出装置により、達成される。
【００１６】
上記構成によれば、チルト回転変換により生成された３Ｄ距離画像情報を使用することにより、路面や床面等の監視対象面に対する距離を高精度で求めることができると共に、チルト回転変換による３Ｄ距離画像情報が縦圧縮されることにより、特に監視対象面の遠い領域、即ち元々のカメラの画像中心に近い領域で、チルト回転変換により画素数が増大することを抑制して、チルト回転変換前の画像とほぼ同じ画素数とすることにより、その後、３Ｄ距離画像情報の処理速度の低下を抑制することができるので、ほぼリアルタイムで画像処理を行なうことが可能である。
【００１７】
上記目的は、本発明の第三の構成によれば、路面や床面等の監視対象面に対して、光軸が水平方向よりも下を向いて設置されたステレオカメラ画像情報を取得する左右一対の撮像手段と、撮像手段で取得されたステレオカメラ画像情報を２通りの異なる平行化によって変換した平行化画像情報に基づいて、各対応点の視差を求めて、２通りの３Ｄ距離画像情報を生成する画像処理部と、から成り、平行化画像情報が、ステレオカメラのキャリブレーション情報に基づき、元々のカメラ光軸に近い向きで行なった第一の平行化変換と、仮想的に下向きのチルト回転変換を施した第二の平行化変換と、によってそれぞれ生成され、当該第一の平行化変換及び第二の平行化変換で取得した平行化画像情報に基づき、各対応点の視差から第一の平行化変換による第一の３Ｄ距離画像情報と、第二の平行化変換による第二の３Ｄ距離画像情報を生成し、路面・床面等に対して垂直な向きを持つ領域に対しては、第一の平行化変換で取得した第一の３Ｄ距離画像情報を用い、路面・床面等に対して平行な向きを持つ領域に対しては、第二の平行化変換で取得した第二の３Ｄ距離画像情報を用いることを特徴とする、物体検出装置により達成される。
【００１８】
この構成によれば、監視対象面に対して垂直な向きを持つ領域では、元々のカメラ光軸に近い向きへのチルト回転変換により生成された第一の３Ｄ距離画像情報を使用し、また監視対象面に対して平行な向きを持つ領域では、仮想的に下向きのチルト回転変換した画像情報に基づいて生成された第二の３Ｄ距離画像情報を使用することにより、それぞれの領域において、より高精度で路面や床面等の監視対象面に対する３Ｄ距離画像情報を得ることができると共に、監視対象面に対してほぼ垂直な向きを持つ領域では、通常のステレオ処理の持つ利点を発揮して、高精度な検出が可能である。
【００１９】
上記目的は、本発明の第四の構成によれば、路面や床面等の監視対象面に対して、光軸が水平方向よりも下を向いて設置されたステレオカメラ画像情報を取得する左右一対の撮像手段と、撮像手段で取得されたステレオカメラ画像情報を２通りの異なる平行化によって変換した平行化画像情報に基づいて、各対応点の視差を求めて、２通りの３Ｄ距離画像情報を生成する画像処理部と、から成り、平行化画像情報が、ステレオカメラのキャリブレーション情報に基づき、元々のカメラ光軸に近い向きで行なった第一の平行化変換と、仮想的に下向きのチルト回転変換を施し、さらに縦圧縮を行なう第二の平行化変換と、によってそれぞれ生成され、当該第一の平行化変換及び第二の平行化変換で取得した平行化画像情報に基づき、各対応点の視差から第一の平行化変換による第一の３Ｄ距離画像情報と第二の平行化変換による第二の３Ｄ距離画像情報を生成し、監視対象面に対して垂直な向きを持つ領域に対しては第一の平行化変換で取得した第一の３Ｄ距離画像情報を用い、監視対象面に対して平行な向きを持つ領域に対しては、第二の平行化変換で取得した第二の３Ｄ距離画像情報を用いることを特徴とする、物体検出装置により達成される。
【００２０】
この構成によれば、監視対象面に対して垂直な向きを持つ領域では、元々のカメラ光軸に近い向きにより生成された第一の３Ｄ距離画像情報を使用し、また監視対象面に対して平行な向きを持つ領域では、仮想的に下向きのチルト回転変換を行い、さらに縦圧縮した平行化画像情報に基づいて生成された第二の３Ｄ距離画像情報を使用することにより、それぞれの領域において、より高精度で路面や床面等に対する３Ｄ距離画像情報を得ることができると共に、路面等に対してほぼ垂直な向きを持つ領域では、高精度に位置が求まり、且つ路面等に対してほぼ水平な向きを持つ領域では、縦圧縮により画素数が低減されるので、画像処理速度が向上し、全体として高速な画像処理が可能である。
【００２１】
本発明による物体検出装置は、好ましくは、画像処理部が、第一の３Ｄ距離画像情報と第二の３Ｄ距離画像情報を統合することにより、第一の３Ｄ距離画像情報を修正する。
この構成によれば、従来のようなステレオ処理された３Ｄ距離画像情報と、チルト回転変換した平行化画像情報に基づく３Ｄ距離画像情報とを統合して、３Ｄ距離画像情報を修正することにより、より高精度の３Ｄ距離画像情報を得ることができる。
【００２２】
上記目的は、本発明の第五の構成によれば、路面や床面等の監視対象面に対して、光軸が水平方向よりも下を向いて設置された左右一対の撮像手段により撮像して、ステレオカメラ画像情報を取得する第一の段階と、第一段階で取得されたステレオカメラ画像情報を平行化した平行化画像情報に基づいて、各対応点の視差を求めて、３Ｄ距離画像情報を生成する第二の段階と、から成り、第二の段階における平行化処理が、ステレオカメラのキャリブレーション情報に基づく仮想的な下向きのチルト回転変換を施した平行化変換処理であって、第二の段階にて、平行化画像情報における各対応点の視差から３Ｄ距離画像情報を生成することを特徴とする、物体検出方法により達成される。
【００２３】
また、上記目的は、本発明の第六の構成によれば、路面や床面等の監視対象面に対して、光軸が水平方向よりも下を向いて設置された左右一対の撮像手段により撮像して、ステレオカメラ画像情報を取得する第一の段階と、第一段階で取得されたステレオカメラ画像情報を平行化した平行化画像情報に基づいて、各対応点の視差を求めて、３Ｄ距離画像情報を生成する第二の段階と、から成り、第二の段階における平行化処理が、ステレオカメラのキャリブレーション情報に基づく仮想的な下向きのチルト回転変換を施した平行化変換処理と、その後の縦圧縮処理であって、第二の段階にて、縦圧縮された平行化画像情報における各対応点の視差から３Ｄ距離画像情報を生成することを特徴とする、物体検出方法により達成され。
【００２４】
上記目的は、本発明の第七の構成によれば、路面や床面等の監視対象面に対して、光軸が水平方向よりも下を向いて設置された左右一対の撮像手段により撮像して、ステレオカメラ画像情報を取得する第一の段階と、第一の段階で取得されたステレオカメラ画像情報を２通りの異なる平行化によって変換した平行化画像情報に基づいて、各対応点の視差を求めて、２通りの３Ｄ距離画像情報を生成する第二の段階と、から成り、平行化画像情報を、ステレオカメラのキャリブレーション情報に基づき、元々のカメラ光軸に近い向きで行なった第一の平行化変換と、仮想的に下向きのチルト回転変換を施した第二の平行化変換とによってそれぞれ生成し、当該第一の平行化変換及び第二の平行化変換で取得した平行化画像情報に基づき、各対応点の視差から第一の平行化変換による第一の３Ｄ距離画像情報と、第二の平行化変換による第二の３Ｄ距離画像情報を生成し、監視対象面に対して垂直な向きを持つ領域に対しては、第一の平行化変換で取得した第一の３Ｄ距離画像情報を用い、監視対象面に対して平行な向きを持つ領域に対しては、第二の平行化変換で取得した第二の３Ｄ距離画像情報を用いることを特徴とする、物体検出方法により達成される。
【００２５】
本発明による物体検出方法は、好ましくは、第二の段階において、第一の３Ｄ距離画像情報と第二の３Ｄ距離画像情報を統合することにより、第一の３Ｄ距離画像情報を修正する。
【００２６】
これらの構成の物体検出方法によれば、上述した本発明による物体検出装置と同様にして、ステレオカメラ画像情報を平行化処理した平行化画像情報に基づいて、３Ｄ距離画像情報を生成すると共に、平行化画像情報が、仮想的な下向きのチルト回転変換を施した平行化変換処理により生成されるので、監視対象面に対してより垂直に近い角度を向くような俯瞰画像として３Ｄ距離画像情報を生成するので、監視対象面に対する距離を高精度で求めることができる。
【発明の効果】
【００２７】
このようにして、本発明によれば、ステレオカメラ画像からチルト回転変換した俯瞰画像に基づいて、さらに縦圧縮することにより、できるだけ少ない計算量で高速に且つリアルタイムに、高精度で物体を検出できるようにした物体検出装置及び方法を提供することができる。
【図面の簡単な説明】
【００２８】
【図１】本発明による物体検出装置の一実施形態の全体構成を示すブロック図である。
【図２】ステレオカメラによる三角測量を模式的に描いた説明図である。
【図３】レクティファイ（平行化）変換前後のステレオ写真の例を示す参考図である。
【図４】キャリブレーションのパラメータと縦圧縮用ルックアップテーブルを作成する処理を示すフローチャートである。
【図５】原画像から縦圧縮されたレクティファイ画像への処理を順次に示す図である。
【図６】レクティファイ画像を原画像に逆変換する処理を順次に示す図である。
【図７】道路を撮像したステレオカメラによる撮像画面を示す図である。
【図８】チルト回転変換をし、かつレクティファイ変換されたレクティファイ画像を示す図である。
【図９】図７の撮像画面をチルト回転変換により俯瞰状態に変換した画像を示す図である。
【図１０】双一次補間による変換後の画素の位置から画素の実数位置における画素値を求めるための説明図である。
【図１１】ＶＴＳステレオ処理を連続的に行なうアルゴリズムを示すフローチャートである。
【図１２】路面推定の処理を示すフローチャートである。
【図１３】ＯＧＭの作成手順を示すフローチャートである。
【図１４】連続した複数の画像フレームからなるシーケンスに対するトラッキング処理を示すフローチャートである。
【図１５】従来のステレオカメラによる撮像状態を示す概略平面図である。
【図１６】水平な路面を撮像する場合のステレオカメラによる撮像状態を示す概略側面図である。
【図１７】ほぼ水平方向に光軸が向いたステレオカメラによる道路を撮像した参考図で、（Ａ）は元の撮像画面を、（Ｂ）は枠内を上方から見た俯瞰状態の画像を示す。
【発明を実施するための形態】
【００２９】
以下、図面に示した実施形態に基づいて本発明を詳細に説明する。
図１は、本発明による物体検出装置の一実施形態の全体構成を示している。図１において、物体検出装置１０は、物体を撮影する一対のカメラ即ち左カメラ１１Ｌ及び右カメラ１１Ｒからなるステレオカメラ１１と、画像処理部２０と物体検出部４０と、を有している。本発明において、ステレオカメラ１１で取得するのは、路面又は床面等の画像であるが、路面又は床面等を総称して監視対象面と呼ぶ。監視対象面は、自動車等の走行中の進行方向前方の路面、屋内外を自律走行するロボットの床面及び屋内外の３Ｄ物体検出を行うステレオ監視カメラシステム等で監視する面を意味している。以下の実施形態では、監視対象面は、車両に搭載したステレオカメラ１１で監視する路面として説明する。
画像処理部２０は、ステレオカメラ１１の出力側に順次にカスケード接続された画像変換部２１，視差算出部２２，３Ｄ距離画像生成部としての距離・３Ｄ情報算出部２３及び前方路面に合わせた傾き変換部２５を有している。物体検出部４０は、ＯＧＭ生成部としてのＯＧＭ算出部２６，ノイズ除去部２７，ラベリング処理部２８，検出物体情報の出力部２９及びグローバルマップ表示部３０を含んでいる。
これらの画像変換部２１，視差算出部２２，距離・３Ｄ情報算出部２３，前方路面に合わせた傾き変換部２５，ＯＧＭ算出部２６，ノイズ除去部２７，ラベリング処理部２８，検出物体情報の出力部２９及びグローバルマップ表示部３０は、例えばコンピュータ等の情報処理装置によって構成されている。
【００３０】
ステレオカメラ１１は、左カメラ１１Ｌによって左画像を取得し、右カメラ１１Ｒによって右画像を取得する装置であり、この出力側に画像変換部２１が接続されている。画像変換部２１は、ステレオカメラ１１からのステレオカメラ画像情報を歪補正及び平行化処理すると共に、平行化処理されたステレオカメラ画像情報を座標変換により俯瞰画像情報に変換し、さらに縦圧縮処理することにより縦圧縮されたステレオ俯瞰画像情報を作成するものであり、この出力側に視差算出部２２が接続されている。
【００３１】
画像変換部２１は、ステレオカメラ１１から入力される左右のカメラ画像に基づいて、詳細に後述するように、歪補正処理，平行化処理，俯瞰画像への変換処理，縦圧縮処理して、縦圧縮されたステレオ俯瞰画像情報を生成する。
【００３２】
視差算出部２２は、画像変換部２１から入力される縦圧縮された俯瞰画像情報から画素毎の視差を求めるものであり、視差算出部２２の出力側に距離・３Ｄ情報算出部２３が接続されている。
【００３３】
距離・３Ｄ情報算出部２３は、算出された視差から、物体までの距離と３Ｄ座標値即ち３Ｄ距離画像情報を求めるものであり、この出力側に、前方路面に合わせた傾き変換部２５が接続されている。前方路面に合わせた傾き変換部２５は、あらかじめ初期状態で求めておいた路面に対するカメラの高さ・ピッチ・ロール角度情報から、３Ｄ座標値を路面に平行な３Ｄ座標系へと変換する機能を有し、この出力側に、ＯＧＭ算出部２６が接続されている。
【００３４】
ＯＧＭ算出部２６は、第１ＯＧＭへの投票・閾値処理を行うものであり、変換された３Ｄ座標系において、ある条件を満たす３Ｄ点を路面に平行な２Ｄマップである第１ＯＧＭ上に、予め決めた重みを掛けて投票し、得られた投票数から、第２占有グリッドマップ（Redundant  Occupancy  Grid  Map、以下「ＲＯＧＭ」又は「第２ＯＧＭ」という。）に対する投票値を求める。ＲＯＧＭとは、従来のＯＧＭを改良し、物体位置に関わらず、安定した物体検出を可能にする二次元マップであり、従来のＯＧＭに対し、「冗長な」という意味のRedundantを加えた略語である。ＯＧＭ算出部２６では、更に、得られたＲＯＧＭの投票値に対して、画像を２値化する機能を有している。このＯＧＭ算出部２６の出力側には、ノイズ除去部２７とラベリング処理部２８が接続されている。
【００３５】
ノイズ除去部２７とラベリング処理部２８は、算出された２値のマップであるＲＯＧＭに対して適切な回数の収縮・膨張処理を行い、処理された２値のＲＯＧＭに対してラベリング処理を行い、更に、予め決めた幅、高さ等の大きさを満たす物体のみを抽出する機能を有し、この出力側に、検出物体情報の出力部２９が接続されている。ここで、収縮・膨張処理はノイズ除去部２７により、ラベリング処理は、ラベリング処理部２８により行われる。
【００３６】
検出物体情報の出力部２９は、抽出された物体に識別子（ＩＤ）、幅、高さ等の情報を付与して出力するものであり、この出力側に、グローバルマップ表示部３０が接続されている。グローバルマップ表示部３０は、出力部２９の出力結果を表示画面に表示するものである。
【００３７】
以下、物体検出装置１０によるＶＴＳの処理は、概略的には、処理の前段階として、平行化（レクティファイ）変換を行なうためのキャリブレーションを行ない、その結果に基づいて、平行化変換（レクティファイ変換）を行なうための二次元ルックアップテーブルを作成する。画像の平行化は、レクティフィケーションとも通称され、又、レクティフィケーションをした画像を、レクティファイ画像と称する。この二次元ルックアップテーブルは、入力画像毎に作成するのではなく、例えば工場出荷前に作成しておき、固定パラメータとしてステレオカメラ１１内のＲＯＭ等に書き込んでおくことができる。これにより、平行化変換処理は、ステレオカメラ１１からカメラ画像が入力される毎に、同じルックアップテーブルが利用され、処理が高速で行なわれる。
なお、キャリブレーション結果についても、同様に工場出荷前に作成され、同様にＲＯＭ等に書き込まれる。
このようなルックアップテーブルは、従来のステレオカメラ１１の画像のステレオ処理の際にも同様に工場出荷前に作成され、ステレオカメラ１１のＲＯＭ等に書き込まれているが、この場合には、後述するようにチルト回転変換も含む二次元ルックアップテーブルである点が、従来のものとは明らかに異なる点である。
【００３８】
上述した画像変換部２１における各種処理、即ち平行化処理，歪補正及び縦圧縮処理について、それぞれ以下に詳細に説明する。
まず、ステレオカメラ１１の左右のカメラ１１Ｌ，１１Ｒに関して、平行化処理の前処理として行なわれるキャリブレーションについて説明する。ここで、キャリブレーションとは、レクティファイのための変換式（レクティファイ変換の式）を求めることである。
一般に、カメラ座標系やキャリブレーションで使用される世界座標系の数学的な記号について説明する。
キャリブレーションを行なう際の三次元の世界座標系の座標を（ＸＷ，ＹＷ，ＺＷ）で表す。この座標系は、ステレオカメラ１１の左右カメラを含んだ空間を表すための座標系である。
次に、左カメラ１１Ｌと右カメラ１１Ｒのカメラ座標系を（ＸＬ，ＹＬ，ＺＬ），（ＸR，ＹR，ＺR）とする。このとき、回転行列ＲＬ，ＲＲ、平行移動ベクトル ｔＬ、ｔＲを用いて、これらの座標系を、次の式（１），式（２）のように関連づけることができる。ただし、ＲＬ，ＲＲは、３×３の行列であり、ｔＬ，ｔＲは、３要素のベクトルである。
【００３９】
【数１】
2019016308.tif 000003
【００４０】
次に、左右カメラ１１の座標系と、それに対応する二次元画像座標系（ｘＬ，ｙＬ），（ｘＲ，ｙＲ）を関連づける。左カメラ１１Ｌと右カメラ１１Ｒの焦点距離をｆＬ，ｆＲとして、左右カメラ１１に使われているセンサは同一のものとし、かつセンサの画素サイズを縦横同じサイズとして、ｕとする。このとき、左右カメラ１１の各焦点距離を、それぞれ画素(pixel)単位で表すと、式（３），式（４）と書ける。
【００４１】
【数２】
2019016308.tif 000004
【００４２】
そして、左右カメラ１１をピンホールカメラとして近似したときの画像中心を（ｘＬｃ，ｙＬｃ），（ｘＲｃ，ｙＲｃ）とすると、左右カメラ１１の内部パラメータ行列ＡＬ，ＡＲは、次の式（５），式（６）のようになる。
【００４３】
【数３】
2019016308.tif 000005
【００４４】
この内部パラメータ行列を使って、左右カメラ１１の３Ｄ座標（ＸＬ，ＹＬ，ＺＬ），（ＸＲ，ＹＲ，ＺＲ）とそれらに対応する二次元の画像座標（ｘＬ，ｙＬ），（ｘＲ，ｙＲ）との間には次の式（７），式（８）のような関係がある。
【００４５】
【数４】
2019016308.tif 000006
【００４６】
ここで、ｓＬ，ｓＲはパラメータ変数である。上記式（１），（２），（７），（８）より、世界座標から、各カメラの 二次元座標に変換する式は次の式（９），式（１０）のようになる。
【００４７】
【数５】
2019016308.tif 000007
【００４８】
次に、レクティファイ後の左右カメラ１１の内部パラメータ行列を ＡＬ’，ＡＲ’とし、回転行列を ＲＬ’，ＲＲ’とすると、同様に、次の式（１１），式（１２）が得られる。
【００４９】
【数６】
2019016308.tif 000008
【００５０】
一方、レンズの主点位置は、レクティファイの前後で変わらない。なぜなら、レクティファイ変換は、主点回りの回転か、スケール変換しかできないからである。そこで、世界座標系での左右カメラ１１のレンズの主点位置をそれぞれｃＬ，ｃＲとすると、カメラ座標系の原点となるので、式（１），（２）より、式（１３）が得られる。
【００５１】
また、式（９），（１０）より、式（１４），式（１５）が得られる。
【００５２】
【数７】
2019016308.tif 000009
【００５３】
これらを式（１１），（１２）に代入して、かつ、式（１３）の関係を用いると、左右に対してそれぞれ、次の式（１６），式（１７）が得られる。
【００５４】
【数８】
2019016308.tif 000010
【００５５】
ここで、式（１８）とし、ｓ’’Ｌ＝ｓ’Ｌ／ｓＬ，ｓ’’Ｒ＝ｓ’Ｒ／ｓＲとすると、上の式は、式（１９），式（２０）となる。
【００５６】
【数９】
2019016308.tif 000011
【００５７】
そして、さらに式（２１）とおくと、次のレクティファイ変換の式（２２），式（２３）が得られる。
【００５８】
【数１０】
2019016308.tif 000012
【００５９】
【数１１】
2019016308.tif 000013
【００６０】
以上から、仮想的に決めた任意の内部パラメータ行列 ＡＬ’，ＡＲ’と回転行列 ＲＬ’，ＲＲ’から、式（１８），（２１）によってレクティファイ変換行列ＴＬ，ＴＲを求めて、それを式（２２），（２３）に適用することで、元の画像に対して、任意の回転、スケーリング変換を行なうことができる。その際、注意点として、これらの変換はあくまでも回転とスケーリングの変換に限定されるものであり、視点の平行移動を伴う変換を行なうことはできない。
したがって、式（２２），（２３）の変換によって、元の画像は、あたかも物理的に主点位置を中心として回転させたり、焦点距離を変えたのと同じように変換される。
このようにして、画像変換部２１において、平行化処理におけるキャリブレーションが行なわれる。
【００６１】
次に、このようにして得られたレクティファイ変換の式を利用して、ステレオカメラ１１の左右カメラ１１の光軸を平行にする処理、即ち画像のレクティフィケーションの処理について説明する。
ここで、ステレオカメラ１１による三角測量を行なうためには、単に左右カメラ１１Ｌ，１１Ｒの光軸を平行にするだけでなく、左右カメラ１１Ｌ，１１Ｒのセンサ面が、同一平面上に含まれることが必要である。
【００６２】
図２は、２つのカメラ（センサ）を用いたステレオカメラ１１による三角測量を模式的に描いた図である。左下に左カメラ１１Ｌのセンサ面があり、そのレンズの主点位置はＣＬであり、右カメラ１１Ｒの右センサのレンズの主点はＣＲである。このステレオカメラ１１の前方にある点Ｐまでの距離Ｌは、二つのレンズの主点を結んだ線を底辺とする三角形の高さになる。また、この三角形は左側と右側の二つの三角形に分離でき、それぞれの三角形は、左下と右下のセンサ面と主点と点Pを結ぶ直線と各レンズの光軸が作る三角形と相似の関係になっている。この相似の関係と主点間の距離Ｂと、レンズの焦点距離ｆ及び点Ｐのセンサ面への投影点からセンサ面の中心（光軸との交点）までの距離ｘＬ，ｘＲを使って、Ｌ＝Ｂｆ／（ｘＲ＋ｘＬ）と求めることができる。これが三角測量の原理である。
ここで、距離ｘＬ，ｘＲは、向きを考慮せず、長さとして考えたため、上のような式になったが、軸の持つ方向に正負の符号をつけると、（ｘＲ−ｘＬ）という表現になり、視差ということになる。
【００６３】
上述の変換では、カメラ座標系の平行移動、つまり、主点位置をずらすことはできないので、上述したように、変換後の左右カメラ１１のセンサ面が同一平面上に含まれるためには、左右カメラ１１の主点同士を結んだ直線が、その平面と平行である必要がある。この条件が満たされていれば、つまり、二つの主点を結んだ直線と平行な平面上に、変換後の二つのセンサ平面があれば、二つのカメラ１１の光軸は常に平行となり、かつ、それらの光軸とセンサ面は直交する。それに加えて、両センサの横方向（走査線）の向きが、両主点を結ぶ直線と平行であれば、エピポーララインは各センサの走査線と一致し、これによって、後で求める視差から三角測量の原理を使って、容易に距離を算出することが可能となる。
【００６４】
レクティファイ変換によって、元の画像はこのような状態の画像へと変換され、ステレオカメラ１１の特徴である実世界の同一点を、二つの画像内で通る直線として結んだ線（エピポーラライン）が、左右のそれぞれの画像の走査線と一致するように変換される。
図３にその例を示す。図３の上の２枚の画像（ａ）、（ｂ）は、レクティファイ変換前のステレオ画像であり、路面上のひし形の上の頂点は、二つの画像の同じ位置の走査線上にはない。右画像に引いた水平線は、ちょうどひし形の上の頂点を通っているが、左画像の同じ高さに引いた水平線はひし形の上の頂点の上側を通っている。
図３の下の２枚の画像（ｃ）、（ｄ）は、レクティファイ変換後のステレオ画像であり、ひし形の上の頂点を、左右画像上の同じ高さを通る走査線が通過している。レクティファイ変換後は、画像内のすべての実世界の同一点に対して、その点を通る左右の走査線は同じ高さとなる。
【００６５】
前述の主点を結んだ直線からレクティファイ変換を決めるやり方について、式を用いて詳細に説明する。式（１３）より、左右カメラ１１の主点位置の世界座標系での座標位置は、次式（２４）、式（２５）のように求まる。
【００６６】
【数１２】
2019016308.tif 000014
【００６７】
この主点位置から、左右カメラ１１の横方向（Ｘ軸）の方向ベクトルｕｘは、単位ベクトルとして、次の式（２６）のように決まる。
【００６８】
【数１３】
2019016308.tif 000015
【００６９】
通常のステレオカメラ用のレクティファイでは、元の右カメラ１１ＲのＺ軸と新たに決めたＸ軸ベクトルｕｘと直交する軸を新しいＹ軸として決めるが、ＶＴＳではチルトさせたＺ軸を使う。
ここで、元の右カメラ１１ＲのＺ軸というのは、外部パラメータの回転行列の３番目の要素ベクトルになる。つまり、右カメラ１１Ｒの回転行列RRを式（２７）としたとき、Ｚ軸の方向ベクトルは、(ｒ３１，ｒ３２，ｒ３３)である。
【００７０】
【数１４】
2019016308.tif 000016
【００７１】
本発明では、Ｚ軸を下方向にチルトさせるので、次のように決める。チルト角をθとすると、Ｘ軸を中心とした回転は、次式（２８）の回転行列で表される。
【００７２】
【数１５】
2019016308.tif 000017
【００７３】
前方路面を真上から見たかのようにするためには、ステレオカメラ１１の取り付け角度に合わせてチルト角を決めればよいが、使用するコンピュータの能力に余裕がなく、チルト角をリアルタイムに変えて処理したくない場合には、固定したチルト角に設定する。また、ＶＴＳの効果をより高めるためには、車両に設置するステレオカメラ１１の向きをあらかじめ下向きに傾けて設定した方が、路面に対してより深い角度で撮影できるので、より実質的な解像度を上げられる。この場合、チルト角は９０度まで取る必要はなく、より小さな角度で済む。また、そのように傾けて設置しておくと、前方路面が縦に折れ曲がるように下っている場合でも９０度以下の角度で、下がっている路面を真上から見下ろすように変換できる。
前記ベクトル（ｒ３１，ｒ３２，ｒ３３）に、この行列をかけてチルトさせたベクトルＲＴ（θ）（ｒ３１，ｒ３２，ｒ３３）Ｔと、新しいＸ軸ベクトルｕｘの外積を、式（２９）に示す新しいＹ軸ベクトルｕｙとする。ただし、ここで右肩の記号Ｔは、ベクトルに対する転置記号を示す。
【００７４】
【数１６】
2019016308.tif 000018
【００７５】
ここで、（ｒ３１，ｒ３２，ｒ３３）は回転行列の行ベクトルなので、単位ベクトルであり、回転変換をかけても長さは変わらないので、ｕｙも単位ベクトルである。古いＺ軸を回転させたものは、新しいＸ軸と直交するとは限らないので、古いＺ軸をチルトさせたものをそのまま新しいＺ軸に使うことはできない。
そして、残ったＺ軸は、新たなＸ軸とＹ軸に直交しなければいけないので、それぞれの単位方向ベクトルとの外積とする。つまり、式（３０）とし、新しい回転行列を、次の式（３１）、式（３２）のように決める。
【００７６】
【数１７】
2019016308.tif 000019
【００７７】
【数１８】
2019016308.tif 000020
【００７８】
以上で求めたそれぞれの単位方向ベクトルを変換後の回転行列の各行ベクトルとする。また、内部パラメータ行列については、画像中心の座標値は、古いパラメータの平均値とし、焦点距離は、所望の値とする。ＶＴＳ画像においては、元々の焦点距離を使うと、道路面を上から見下ろす角度に変換されたとき、路面が大きく拡大されるため、より広い範囲を対象とするためには、いくらか短い焦点距離にした方がよい場合がある。よって、左右の古い内部パラメータ行列ＡＬ，ＡＲと新しい内部パラメータ行列 ＡＬ’，ＡＲ’を、式（３３）〜式（３６）と書いた場合に、新しい内部パラメータ行列を次のように決める。
【００７９】
【数１９】
2019016308.tif 000021
【００８０】
行列の第１行１列目の１１成分と第２行２列目の２２成分はpixelを単位とする焦点距離である。レクティファイ後のパラメータとして、ステレオカメラ１１がレクティファイ後に出力する画像サイズを設計する過程で決まった望ましい焦点距離α’とする。それ以外は、古い内部パラメータ行列の平均値とする。ただし、左右もどちらも同じ値としなければならない。つまり、式（３７）〜式（４５）とする。
【００８１】
【数２０】
2019016308.tif 000022
【００８２】
次に、画像変換部２１における歪補正について説明する。
実際のレンズでは、程度の差はあるが、ある程度の歪が存在する。歪は、レンズのいくつかの収差のうちの歪曲収差を指す。歪曲収差の補正については、１９７０年代から研究が行われてほぼ完成しており、公知の手法を使用して、以下に歪補正について説明する。
この歪補正は、入力画像から、式（７），（８）の歪のないカメラ画像へと変換することを指している。入力画像のｘ，ｙ座標をそれぞれ式（４６）及び式（４７）の第１項とすると、次の式（４６）〜式（５０）のように変換される。左右カメラ１１の補正後の座標を、それぞれ（ｘ，ｙ）とする。
【００８３】
【数２１】
2019016308.tif 000023
【００８４】
理論上は、式（４６，４７）のr２,r４，r６よりも、より高次の項も無限に存在するのだが、実用上は、この次数までで十分と判断して、この項までの計算にとどめている。これらの変換を、左右の二次元座標（ｘＬ，ｙＬ），（ｘＲ，ｙＲ）へと適用する。歪パラメータであるＫ１，Ｋ２，Ｋ３，ｘｃ，ｙｃは、左右別々に存在し、それらのパラメータは、歪補正キャリブレーションによって求める。その求め方は、例えば公知の所謂プラムライン法などを用いる。入力画像から、歪補正を行った画像を作り出すためには、双一次補間等の公知の手法を用いればよい。
【００８５】
ここで、上述したキャリブレーションの手順により、レクティファイ行列およびＹ座標に対する縦圧縮用のルックアップテーブルは、図４のフローチャートを参照して、以下のようにして求められる。
即ち、カメラ用のキャリブレーション手法に従って、内部パラメータと二つのカメラ間の外部パラメータを求める。
まず、ステップＳＴ１にて、ステレオカメラ１１により、例えばチェッカーパターンボードを撮影し、ステップＳＴ２にて、撮影した画像から、このチェッカーパターンの白黒境界の線を求め、それから前述のプラムライン法に従って、左右レンズの歪補正パラメータを求めて、入力画像の歪補正を行う。
次に、ステップＳＴ３にて、公知の手法、例えばＴｓａｉのキャリブレーション等によって、ステレオカメラ１１の内部パラメータと外部パラメータを算出する。内部パラメータは式（５），（６）で定義されるＡＬ，ＡＲであり、外部パラメータは、式（１），（２）で定義されるＲＬ，ＲＲ，ｔＬ、ｔＲである。
【００８６】
続いて、ステップＳＴ４にて、上記外部パラメータを用いて、２つのカメラ１１Ｌ，１１Ｒの主点位置を式（２４），（２５）より求めて、ステップＳＴ５にて、左カメラ１１Ｌの主点位置から右カメラ１１Ｒの主点位置に伸ばした直線を、レクティファイ後の左右のカメラ座標系のＸ軸上の直線とする。つまり、左カメラ１１Ｌの主点位置から右カメラ１１Ｒの主点位置への方向ベクトルを正規化したものを、新しいカメラ座標系のＸ軸の単位ベクトルとする。これは、式（２６）を計算することで行われる。
その後、ステップＳＴ６にて、ＶＴＳによって新たに仮想的にチルトした後の光軸方向を決める。この方向は、元々のカメラの光軸、つまりＺ軸をＸ軸を中心として回転させる角度θによって決まる。この古いＺ軸の方向ベクトルをチルト方向に回転させたベクトルと、上で決めたＸ軸の単位ベクトルとの外積を新しいＹ軸とする（式（２９））。このとき、新しいＹ軸は、新しいＸ軸と直交する。
また、ステップＳＴ７にて、新しいＺ軸は、新しいＸ軸と新しいＹ軸と共に直交座標系を構成するように、新しいＸ軸と新しいＹ軸に直交する単位ベクトルとして外積によって計算される（式（３０）参照）。
【００８７】
次に、ステップＳＴ８にて、以上のように求めた新しいＸ軸、Ｙ軸、Ｚ軸の単位ベクトルによって新しい座標系が決まり、これらを元に新しい外部パラメータの回転行列R’L, R’Rを決める（式（３１），（３２）参照）。
そして、ステップＳＴ９にて、新しい左右の内部パラメータ行列は、焦点距離以外は左右の古い内部パラメータ行列ＡＬ，ＡＲの平均値とし、焦点距離はレクティファイ後の所望の画像サイズ等から決めた新しい焦点距離α’となるように決める（式（３７）〜（４５）参照）。ここで、新しい内部パラメータ行列ＡＬ’，ＡＲ’は、左右で同じものとなる。
その後、ステップＳＴ１０にて、求めたＲＬ，ＲＲ，ＡＬ’，ＡＲ’，ＲＬ’，ＲＲ’,ＡＬ’，ＡＲ’を式（１８），（２１）に適用して、レクティファイ行列ＴＬ，ＴＲを求める。
【００８８】
最後に、ステップＳＴ１１にて、歪補正後のカメラ画像の中央の軸上の（ｘ，ｙ）座標に対して、レクティファイ行列ＴＲを適用して、レクティファイ変換後のｙ座標を、圧縮変換用のルックアップテーブルに登録する。
このようにして、レクティファイ行列による座標変換によって、元の画像情報から双一次補間等を使用して、俯瞰画像情報が作成される。
【００８９】
次に、このようにして作成された俯瞰画像情報を縦圧縮する処理について説明する。
俯瞰画像情報が表す俯瞰画像は、前記のレクティファイ変換行列によって、元の画像から双一次補間などを使って作成できる。しかし、このままでは画像サイズが膨大になるため、レクティファイ変換行列によって、いったん求めた座標位置（ｘｂ，ｙｂ）について以下のように処理する。
即ち、片側、例えば右側の画像に対するレクティファイ変換行列を用いて、元の画像の横方向の画像の中心位置ｘｃと、各Ｙ座標値を俯瞰画像の座標位置へと変換する。その際のＹ座標値を元の画像のｙ座標に対応させて記録しておく。
【００９０】
縦圧縮処理のためには、キャリブレーションで作成したレクティファイ変換行列ＴＬ，ＴＲのどちらか一方を用いる。
通常、ステレオカメラ１１は、どちらかのカメラ１１Ｌまたは１１Ｒをベースカメラとして選択する。これは、人間が両眼立体視をしている際に、どちらかの目を利き目として使っているのと同じである。基本的に、どちらのカメラ１１Ｌまたは１１Ｒをベースカメラとして使ってもいいが、ここでは説明のために、右カメラ１１Ｒをベースカメラ(利き目)として扱う。
ステレオカメラ１１における利き目は、三角測量時に用いるカメラ座標系の違いに主に影響するが、ここでの圧縮用のルックアップテーブルでも左右共通の変換とする必要があるので、便宜上右側のカメラを利き目とする。従って、レクティファイ変換行列ＴＲを使って、画像の縦方向の位置の圧縮後の位置を計算する。
【００９１】
入力画像の縦横のサイズをｗ，ｈとする。例えばカメラの画像サイズがＶＧＡであれば、ｗ＝６４０，ｈ＝４８０となる。上で求めたレクティファイ変換行列では、元の画像が、上から見下ろしたような俯瞰画像へと変換され、特に縦方向の位置は元の画像の範囲を大幅に超えた位置となる。このため、縦方向の位置を圧縮する。縦方向圧縮のための変換処理としては、種々の非線形的な変換があるが、最も合理的には、元の画像の解像度をなるべく有効に活用する変換方法が望ましい。すなわち、元の画像上で、下方領域では、おそらく直前の路面を見ていることが多いため、レクティファイ後の解像度は他の部分に比べて高いものになるが、上方になるにつれて、地平線の方を見ることになり、元の画像では、小さな点となるため、上から見下ろした画像になるレクティファイ後の俯瞰画像は、遠方の点が引き伸ばされたようになり、解像度としては低く、粗い画像となる。よって、下の方は細かく、上の方は粗くするような圧縮が望ましい。
【００９２】
このような縦圧縮処理を最も自然に行うやり方は、元の画像の縦方向の位置に合わせた場所に、レクティファイ後の画素情報を置くことである。これにより、元の画像の画素密度に合わせて、レクティファイ後の俯瞰画像の画素が配置され、元の画像の取り込み密度と同等の密度で、レクティファイ後の画像が配置される。
他方、横方向の位置については、ステレオカメラ１１の視差を計算するために、レクティファイ後の画像位置をそのまま使う必要がある。なぜなら、ステレオの対応づけを行う際に、通常のステレオと同じように、縦方向と横方向の両方に対して、あるサイズのブロックの中での相関計算を行うために、縦も横も、同じ距離に対して同じ視差を持つためには、横方向のスケールは縦方向の位置の変化に対して極力同じスケールを保つことが望まれるからである。
そのため、圧縮は縦方向のみに行う必要があり、横方向の位置は、レクティファイ後の画像位置をそのまま使う。
このようにして、ＶＴＳ用の縦方向に圧縮したレクティファイのために、以下のように圧縮用のルックアップテーブルを作成する。
【００９３】
縦方向に圧縮するルックアップテーブルの作成手順は、以下の通りである。
まず、レクティファイ行列TRを計算しておく。
続いて、元の画像において、ｘ座標については水平方向の中心位置とし、ｙ座標は、一番上の行から始めて一番下の行まで変化させながら、その（ｘ，ｙ）にレクティファイ行列を適用し、得られたｙ座標を、元のｙ座標に対応づけて圧縮変換用のルックアップテーブルに登録する。歪補正を行った後でレクティファイする前の画像の座標（ｘ，ｙ）に対して、レクティファイ変換して得た座標 (x’，y’)のｙ’の値を、右画像の圧縮変換用のルックアップテーブル ＣＴＲ（ｙ）に代入する。つまり、式（５１）から求めたｙ’を式（５２）として登録する。
【００９４】
【数２２】
2019016308.tif 000024
【００９５】
【数２３】
2019016308.tif 000025
【００９６】
次に、画像変換部２１における縦圧縮した俯瞰画像情報に対するレクティファイ処理について説明する。このレクティファイ処理は、元の画像から、左右画像のエピポーララインが揃ったレクティファイをされ、かつ、上から見下ろしたような俯瞰画像を縦方向に圧縮した画像を作る処理のことを指している。この処理を行うためには、作成される圧縮画像のサイズを決めて、そのサイズに対応した二次元の縦横位置それぞれに対応する原画像の位置を、前記レクティファイ変換行列および、圧縮のためのＹ座標の変換テーブルを用いて求める。
【００９７】
以下では、実際のレクティファイ処理（画像変換処理）に用いるための二次元変換ルックアップテーブルを作る処理について述べる。
上述した画像の変換は、図５に示すように、原画像を歪補正して、歪補正された画像を、俯瞰画像を作り出すレクティファイ変換によりレクティファイ画像を得て、さらに縦方向に圧縮することにより、最終的なＶＴＳのレクティファイ画像を得るためのものである。
しかしながら、このような画像をプログラムを使って作り出すためには、逆方向から元の画像位置での明度値を突き止めて、それを使って、新しく作られる画素値を決めるための内挿を行わなければならない。これは、上述した画像の変換とは異なり、図５とは逆の順番の図６に示すようになる。即ち、縦圧縮されたＶＴＳのレクティファイ画像の座標位置（整数）から縦圧縮の逆変換を行ない、さらにレクティファイ変換の逆変換及び歪補正の逆変換を行なって、原画像の座標位置（整数）を求める。
【００９８】
図７は道路を撮像したステレオカメラによる撮像画面を示す図であり、図８はチルト回転変換をし、かつレクティファイ変換されたレクティファイ画像を示す図であり、図９は、図７の撮像画面をチルト回転変換により俯瞰状態に変換した画像を示す図である。即ち、レクティファイ処理をされた画像は、図８のように、見た目は、歪んだ奇妙な画像ではあるが、画素間の連続性は保たれている。例えば、図８の路面上の中央の直進と左折を示すマークの部分を見ると、その部分は写真のように見える。つまり、滑らかな連続した画像として作らなければならない。
【００９９】
一方、先進運転システム（ＡＤＡＳとも呼ぶ）や自動運転等で、数十メートルにも及ぶ範囲に対してこのような俯瞰画像変換処理を適用する場合、例えば図７に示すステレオカメラ画像は、仮想的に９０度近いチルト角で回転させて俯瞰画像に変換すると、図９に示すように、道路上の白い区分線（車線）は、ほぼ同じ幅で前方に向かって延びているが、右斜め前方の車は、極端に広い広角レンズで撮影したときと同等の、非常に大きな射影歪により、大きく変形してしまっている。
また、このような俯瞰画像においては、直近から遠方までに亘って路面を作成することになるため、元のステレオカメラ画像に対して非常に大きな画面サイズになると共に、画面上の各ブロック相関の計算量も膨大なものとなり、計算に要する時間が長くなってしまい、リアルタイムに処理することが困難になってしまう。
さらに、遠方の領域における俯瞰画像は、元のステレオカメラ画像を非常に拡大した粗い画像となっており、そのような画像に対してステレオ処理を行なっても、精度の良い視差及び距離を求めることは困難であると共に、いたずらに計算すべきデータ量が増大するだけである。
【０１００】
図８に示すレクティファイ処理をされた画像を取得するためには、変換後の画像位置(整数位置)が、変換前の画像のどの位置にあるかを実数（浮動小数点）で対応づけ、その実数位置を囲む４つの整数位置の画素の値から、その内部にある実数位置での画素の近似値を求めて、変換後の画像の画素値を作らなければならない。これにより、生成された変換後の画像の各画素は、整数位置ではあるが、生成された画素値は、元々は、その整数位置に変換された元の画像の実数位置の周囲の４つの整数位置の画素値で近似するため、カクカクした折れ線のような画像とはならずに、スムーズな画像として生成できる。これは、例えば双一次補間の手法により行なわれる。より高精度な補間の手法もあるが、この双一次補間は、比較的少ない計算量で精度の良い近似が可能である。
【０１０１】
以下、双一次補間を使った画素値の近似について簡単に説明する。当然ではあるが、変換後の画像の画素は、整数位置での画素値でなければならない。例えば６４０掛ける（×）４８０画像の場合は、左上から（0,0),(1,0),(2,0),...,(639,0),(0,1),(1,1),..., (639,1),(0,2),..,(639,479)のように整数位置にある画素の値が並んでいる。
しかし、変換自体は必ずしも整数位置に変換されるわけではない。そこで、最終的な変換後は整数位置にする必要があるので、最終変換後の画像の整数座標位置にレクティファイの逆変換を行い、元の画像の実数位置を求める。その実数位置は、図１０のように四つの整数位置画素に囲まれている。
図１０において、４つの黒い格子点は整数位置にある画素を示し、それらに囲まれた黒い点が、前記の変換前の実数位置とする。そして、４つの格子点位置の画素値を、左上から時計回りに、ν１，ν２，ν３，ν４とする。そして、中にある実数位置における求めたい画素値をνｐとする。そして、左上のν１の格子点位置から、νｐの格子点位置までの横方向の距離をｔ, 縦方向の距離をｕとするとき、νpの値は、双一次補間によって次式（５３）のように表される。ただし、画素間の距離は１とする。
【０１０２】
【数２４】
2019016308.tif 000026
【０１０３】
以上から、レクティファイ変換行列が与えられた下で、最終画像を作るための二次元ルックアップテーブルは、以下の手順で作られる。これは右画像のためのものであるが、左画像も同様に行われる。
即ち、縦方向に圧縮するＶＴＳレクティファイ用二次元ルックアップテーブルの作成手順は、以下の通りである。
まず、レクティファイ行列ＴＲの逆行列（ＴＲ）−１を求める。次に、作成する（レクティファイ後の）画像の左上の位置から、右方向に走査し、その行の端まで走査したら、次下の行に移って、以下の手順を繰り返す。画像の最初の座標位置は、(0,0)とする。
続いて、現在の位置（ｘｉ，ｙｉ）に対して、縦方向に圧縮するためのルックアップテーブルＣＴＲ（）を用いて、ｙを決める。つまり、 ＣＴＲ（ｙｉ）とする。
その後、(xi, y)に対して、レクティファイ変換の逆行列をかけて、レクティファイ変換前の位置（x’，ｙ’）を求める。レクティファイ変換前の画像位置は、歪補正のない画像に対応した画像位置となり、以下の式（５４）で表される。
【０１０４】
【数２５】
2019016308.tif 000027
【０１０５】
次に、この画像は歪んでいるので、歪補正パラメータを使って、歪んでない画像位置から歪んだ画像位置へと逆変換する。この際に、キャリブレーションで求めた歪補正パラメータ：（ｘｃ，ｙｃ），Ｋ１，Ｋ２，Ｋ３を使って歪んだ位置を求める。式（４６）〜（５０）に対して、例えばNewton-Raphson法によって、歪んだ後の入力画像の座標に対応する式（５０）のｒを求め、それから式（４６），（４７）より、元の歪んだ画像の位置 （ｘ，ｙ）を求めて、その位置をレクティファイ変換用の二次元ルックアップテーブルに代入して、二次元ルックアップテーブルとして式（５５）が得られる。ただし、ここでＣ２ＤＲ（ｘｉ，ｙｉ）はベクトルである。
【０１０６】
【数２６】
2019016308.tif 000028
【０１０７】
以上の手順によって、縦方向に圧縮された俯瞰画像のためのレクティファイ用二次元ルックアップテーブルが作成される。このルックアップテーブルによって最終画像の各画素位置に対する元の画像の実数画素位置が与えられ、その実数画素位置に対して前述の双一次補間を使って、例えば図７のような画像から図８のような縦方向に圧縮された画像が生成される。
【０１０８】
次に、ＶＴＳのステレオアルゴリズムについて説明する。
まず、このステレオアルゴリズムにおける視差からカメラ座標系の３Ｄ座標を求める部分と、求めた３Ｄ座標を車体座標系の３Ｄ座標に変換する部分と、を説明する。
まず、サブピクセルで求めた視差から、カメラ座標系の３Ｄ座標を求めるやり方を以下に記す。ＶＴＳで注意すべきことは、通常のステレオ処理とは異なり、得られる結果が、指定したチルト角度で下を向いているため、元々のカメラ座標系を、チルト方向に回転させた座標系となっている点である。
ここでは、元々の三次元カメラ座標系を以下のように取る。即ち、カメラのセンサ面の右手方向をＸ座標とし、下向き方向をＹ座標とし、光軸の前向き方向をＺ軸とする右手座標系とする。
これに対して、ＶＴＳの場合は、この座標系を９０度に近い角度だけチルト(前記Ｘ軸を中心として下向きに回転)させているので、Ｘ軸は変わらないが、Ｙ軸は下向きではなく後ろ向きとなり、Ｚ軸はカメラの下向きとなる。
焦点距離をピクセル単位で表したものをα(式（３）のαR)とし、画像の中心位置(主点とセンサ面との交点)を（ｘｃ，ｙｃ），ベースライン長(基線長)をＢ，視差をｄとし、右画像の画像座標を（ｘ，ｙ’）とする。正しい３Ｄ位置を算出するためには、縦圧縮された画像座標位置を、圧縮されていない俯瞰画像座標位置へと戻して、それから計算する必要がある。ｘ軸については圧縮されていないので、そのまま使用するが、ｙ軸については圧縮されているので、圧縮されていないｙ座標値に戻さなければならない。あらかじめ作成しておいた縦圧縮用ルックアップテーブルＣＴＲ（）を使って、今のｙ座標値であるy’から、圧縮されていないｙをｙ＝ＣＴＲ（ｙ’）として求める。このｙと、ｘおよびそれ以外の前記パラメータの値を次の式（５６）〜式（５８）に代入して、３Ｄ座標位置を算出する。
【０１０９】
【数２７】
2019016308.tif 000029
【０１１０】
次に、カメラ座標系で得た３Ｄ座標を、カメラを搭載した自動車等の車両座標系の３Ｄ座標に変換するためには、以下のように回転変換を行う必要がある。ＶＴＳのチルト角度と実際にカメラを下向きに取り付けた角度との和をθ、車体座標系を（Ｘｖ，Ｙｖ，Ｚｖ）とすると、式（２８）の回転行列と平行移動ベクトルｔｙを使って、次式（５９）のように表される。
【０１１１】
【数２８】
2019016308.tif 000030
【０１１２】
ただし、ｔｙは、カメラ座標系の原点から車体座標系の原点までの移動ベクトルである。
以上から、カメラから画像を入力して、リアルタイムにＶＴＳステレオ処理をし続けるアルゴリズムの手順を、図１１のフローチャートを参照して以下に記す。
【０１１３】
図１１のフローチャートにおいて、まずステップＳＴ１１にて、画像処理部２０は、前もって作成してあるＶＴＳ縦圧縮レクティファイ用の二次元ルックアップテーブルを読み込む。
続いて、画像変換部２１は、ステップＳＴ１２にて、ステレオカメラ１１から入力される左右画像をキャプチャする。
次に、画像変換部２１は、ステップＳＴ１３にて、二次元レクティファイ用ルックアップテーブルを使って、双一次補間によって入力画像を変換する。これにより、左右画像は歪補正され、レクティファイされ、かつ縦方向に圧縮されることにより、縦圧縮されたステレオ俯瞰画像情報が作成される。
その後、視差算出部２２は、ステップＳＴ１４にて、左右画像の横方向の微分画像を求める。これは、左右の対応づけと縦方向のエッジ情報を抽出するためである。
続いて、視差算出部２２は、ステップＳＴ１５にて、左右画像の微分画像に対して、あらかじめ決めた領域に対してあらかじめ決めたサイズのブロックでＳＡＤ(Sum of Absolute Difference)を求める。
次に、視差算出部２２は、ステップＳＴ１６にて、各ブロック毎にＳＡＤの値を最小にする視差を求めて、視差情報（画像）としてメモリに蓄える。
続いて、視差算出部２２は、ステップＳＴ１７にて、得られた視差情報からサブピクセルの視差を求め、距離・３Ｄ情報算出部２３は、ステップＳＴ１８にて、ｙ座標は、縦圧縮用のルックアップテーブルＣＴＲ（）によって変換した値を用いて、かつ、式（５６）〜（５８）に従って、カメラの内部パラメータを使用して、カメラ座標系での３Ｄ位置を計算する。
そして、前方路面に合わせた傾き変換部２５は、ステップＳＴ１９にて、カメラ座標系の３Ｄ位置を式（５９）により車体座標系の３Ｄ位置に変換して、ＯＧＭ算出部２６に出力する。
その後、画像処理部２０は、ステップＳＴ２０にて、終了コマンドが出ていれば終了し、出ていなければ、ステップＳＴ１２に戻って、ステップＳＴ１２〜１９の処理を繰り返す。
【０１１４】
ここで、視差算出部２２において、右側のレクティファイ画像の横方向の微分画像を基準として左側の同じ画像との間のSADを計算し、その最小値を視差として求めているが、この際に、左側の同微分画像を基準として、右側の同画像との間のSADを計算して、その最小値を左側画像を基準とする視差として求め、前記右側画像を基準として求めた視差値と一致する部分だけを確実な対応点が得られたとして出力し、そうでないものは、確実ではないとして除外することによって、ステレオ対応付けの信頼性を上げる手法を使ってもよい。これは公知の手法として知られている。
このようにして、画像処理部２０において、ＶＴＳにより算出された３Ｄ位置情報は、続いてＯＧＭ算出部２６において以下のように処理される。
即ち、ＶＴＳによって路面の高さの精度が上がったために、相対的な高さの変化を利用して投票を行うことが可能である。以下では、その手法について説明する。
まず、ステレオカメラ１１を搭載した車両を平坦な路面に停車させる。車両を停車させた状態で、前方路面上に障害物が何もない状態で、画像をキャプチャする。その画像に対して、ＶＴＳのステレオ処理を行い、画像の下側の路面だけが写っている領域にＲＯＩを指定して、その位置に対応する３Ｄ情報から、前方路面の傾きと高さを推定する。ＲＯＩとは、Region of Interestの略で、何等かの画像処理を行う部分的な対象領域を示す用語である。ここでは、画像内の左上と右下の座標位置で特定される矩形領域とする。
ここで、公知の平面推定の方法を適用することにより、平面上にあると思われるポイントクラウドを平面で近似したときの平面の法線ベクトルは以下の手順で求まる。なお、ポイントクラウドとは、３次元空間内の点の集合を指す。
【０１１５】
即ち、路面推定は、図１２のフローチャートを参照して、以下のようにして決まる。
まず、ステップＳＴ２１にて、縦圧縮された平行化処理画像（ＶＴＳ画像）内で、前方路面のみを含む領域をＲＯＩとして設定する。
続いて、ステップＳＴ２２にて、ＲＯＩ内の全ての画素に対応する３Ｄ点、即ちｎ個の車体座標系の３Ｄ点 ｐｉ，ｉ＝１，・・・，ｎの平均値(重心)qを次式（６０）のように求める。
【０１１６】
【数２９】
2019016308.tif 000031
【０１１７】
そして、ステップＳＴ２３にて、この重心とｐｉ，ｉ＝１，・・・，ｎに対し、次式（６１）で表される分散共分散行列の最小固有値に対する固有ベクトルが、推定平面の法線ベクトルとなる。この固有値問題は、公知の固有値問題の解法を使って解くことができる。
【０１１８】
【数３０】
2019016308.tif 000032
【０１１９】
続いて、ステップＳＴ２４にて、得られた法線ベクトルから、車体座標系に対して、どれだけ傾いているかを求める。まず、Ｘ軸に対してどれだけ傾いているかを求めるために、Ｘ軸の単位方向ベクトル(1,0,0)と推定された平面の単位法線ベクトルとのなす角を求める。法線ベクトルを （νｘ，νｙ，νｚ）とすると、Ｘ軸の方向ベクトルとのなす角度θのcosと二つのベクトルの内積との間には次の式（６２）の関係がある。
【０１２０】
【数３１】
2019016308.tif 000033
【０１２１】
即ち、角度θは、次式６３により表される。これは、ピッチ角となる。
【０１２２】
【数３２】
2019016308.tif 000034
【０１２３】
同様に、ロール角φは、車体座標系のＹ軸のベクトルと、平面の法線ベクトルの関係から求まり、角度φは、式（６４）で表される。
【０１２４】
【数３３】
2019016308.tif 000035
【０１２５】
以上から、カメラに対する路面の傾きがわかる。
そして、ステップＳＴ２５にて、高さは、平面の方程式である式（６５）に法線ベクトルと、前記重心ベクトル ｑ＝（ｑｘ，ｑｙ，ｑｚ）を代入して求まるｄの負の値となる。
以上から、車体の静止状態でのカメラと路面間の角度と高さが求まり、これを元に車両の走行中のＯＧＭのマップの基準となる平面を決定する。
【０１２６】
【数３４】
2019016308.tif 000036
【０１２７】
以上から、車体の静止状態でのカメラと路面間の角度と高さが求まり、これを元に車両の走行中のＯＧＭのマップの基準となる平面を決定する。
【０１２８】
以下、物体検出方法におけるＯＧＭへの投票に関して、幾つかの手法を説明する。
第一の手法は、ステレオカメラ１１で撮影した物体の左右カメラ１１の画像から画素毎に視差を求めて、三次元点群データから成る３Ｄ距離画像情報を生成し、この三次元点群データを、グリッド状の複数のセルが二次元面に配置された二次元マップに投票することにより、第一占有グリッドマップ（ＯＧＭ）を生成して、このＯＧＭを用いて前記物体の三次元情報を検出する物体検出方法において、投票の際に、３Ｄ距離画像情報のうち、各画素位置にて前方方向の変化分の絶対値で、上方向の変化分を除算した値が、あるしきい値よりも大きい場合に、投票を行なう物体検出方法である。
また、第二の手法は、ステレオカメラ１１で撮影した物体の左右カメラ１１の画像から画素毎に視差を求めて、三次元点群データから成る３Ｄ距離画像情報を生成し、この三次元点群データを、グリッド状の複数のセルが二次元面に配置された二次元マップに投票することにより、第一占有グリッドマップ（ＯＧＭ）を生成して、このＯＧＭを用いて物体の三次元情報を検出する物体検出方法において、投票の際に、３Ｄ距離画像情報のうち、各画素位置にて前方方向の変化分の絶対値で、上方向の変化分を除算した値が、あるしきい値よりも大きい場合に投票を行ない、かつその投票の際に、通常の平行化画像の縦方向の位置が、仮想的なチルト回転変換を伴って平行化変換された画像の縦方向の変化部を重みとして加算して投票する物体検出方法である。
【０１２９】
これに対して、第三の手法は、ステレオカメラ１１で撮影した物体の左右カメラ１１の画像から画素毎に視差を求めて、三次元点群データから成る３Ｄ距離画像情報を生成し、この三次元点群データを、グリッド状の複数のセルが二次元面に配置された二次元マップに投票することにより、第一占有グリッドマップ（ＯＧＭ）を生成して、このＯＧＭを用いて物体の三次元情報を検出する物体検出方法において、複数のセルの境界付近に跨がって、冗長なセルをオーバーラップさせて配置し、冗長なセルにも三次元点群データを投票して、第二占有グリッドマップ（ＲＯＧＭ）を生成し、ＲＯＧＭを用いて物体の三次元情報を検出する際の投票において、３Ｄ距離画像情報のうち、各画素位置にて前方方向の変化分の絶対値で、上方向の変化分を除算した値が、あるしきい値よりも大きい場合に、投票を行なう物体検出方法である。
また、第四の手法は、ステレオカメラ１１で撮影した物体の左右カメラ１１の画像から画素毎に視差を求めて、三次元点群データから成る３Ｄ距離画像情報を生成し、この三次元点群データを、グリッド状の複数のセルが二次元面に配置された二次元マップに投票することにより、第一占有グリッドマップ（ＯＧＭ）を生成して、このＯＧＭを用いて物体の三次元情報を検出する物体検出方法において、複数のセルの境界付近に跨がって、冗長なセルをオーバーラップさせて配置し、冗長なセルにも三次元点群データを投票して、第二占有グリッドマップ（ＲＯＧＭ）を生成し、ＲＯＧＭを用いて物体の三次元情報を検出する際の投票において、３Ｄ距離画像情報のうち、各画素位置にて前方方向の変化分の絶対値で、上方向の変化分を除算した値が、あるしきい値よりも大きい場合に、投票の際に、通常の平行化画像情報の縦方向の位置が、仮想的なチルト回転変換で平行化変換された画像の縦方向の変化分を重みとして加算して投票する物体検出方法である。
【０１３０】
これらの第一から第四の手法によれば、ステレオカメラ１１の左右カメラ１１の画像に対応付けを行なって、画像の各点（画素）に対して、三次元位置を求める。画像座標を縦方向に下から上へとスキャンして、Ｘ座標（前向き）の値とＺ座標（上向き）の値の変化を求めて、ｄＸ，ｄＺとする。これらの値から、ｄＺをｄＸの絶対値で除算して得られる傾き率Ｓｒを求めて、その値がある値よりも大きい場合には、その部分の３Ｄ点の変化が壁のように垂直に近く切り立っていると見做して、該当するＯＧＭに投票を行なう。
これにより、路面からの物体の高さ情報を使わずに、ＯＧＭに投票することができるので、常に路面の傾き推定を行なう必要がなくなる。また、投票の際に、ＶＴＳによる当該画素位置でのＹ座標（縦）方向の仮想的な路面の前方長さの増分の絶対値を重みとして加えることにより、距離の違いによる同じ大きさに対する物体への投票の偏りを減らす効果も得られる。
【０１３１】
次に、新たに相対的な高さを用いた新しいＯＧＭの作成方法と、それを使った物体のトラッキングの例を記載する。
まず、ＯＧＭの作成手順を、以下に説明する。
図１３のステップＳＴ３１にて、画面の左上を（ｘｍｉｎ，ｙｍｉｎ），右下を（ｘｍａｘ，ｙｍａｘ）となるようなＲＯＩを設定する。
そして、ステップＳＴ３２にて、このＲＯＩの中の各画素位置に対して、横方向の位置ｘを、左端から右端へと移動しながら、そのときの横方向の位置において画像の下から上向きに縦方向にｙを変化させて、上述したピッチ角θ、ロール角φ、そしてカメラ高さｄによって、初期推定した平面上の３Ｄ位置を求めて、メモリに記憶させる。
そして、ステップＳＴ３３にて、ｘ＝ｘｍｉｎとし、ステップＳＴ３４にて、ｙ＝ｙｍａｘとして、ステップＳＴ３５にて、位置（ｘ，ｙ）に対する３Ｄ座標をメモリから（Ｘｓ，Ｙｓ，Ｚｓ）として取り出して、路面のパラメータθ，φ及びｄを使って、推定路面平面上のＯＧＭ座標値（Ｘｇ，Ｙｇ，Ｚｇ）に変換し、メモリに記憶させる。
【０１３２】
次に、ステップＳＴ３６にて、下から上に１ライン変化させた（ｙ＝ｙ−１）ときに、３Ｄ車体座標系の前後方向の変化、即ち現在のｙに対するＸｇから一つ前のｙに対するＸｇを減算した変化をｄＸとし、ステップＳＴ３７にて、上下方向の変化、即ち現在のｙに対するＺｇから一つ前のｙに対するＺｇを減算した変化をｄＺとして、ステップＳＴ３８に示すように、次式（６５）で与えられるＳｒがあるしきい値δを超えた場合に、その部分の３Ｄ点の変化が壁のようにほぼ垂直に切り立っていると見做して、ステップＳＴ３９にて、前記３Ｄ位置に対するＯＧＭのグリッド（ｘ−ｙ平面上に構成されている）に投票する。
【０１３３】
【数３５】
2019016308.tif 000037
【０１３４】
その際、ＶＴＳの俯瞰画像での前後方向の距離に相当する縦方向に圧縮するためのルックアップテーブルの差であるＣＴＲ（ｙ）−ＣＴＲ（ｙ＋１）を重みとして加算投票する。これはＶＴＳの縦方向の圧縮のために生じる奥行方向の密度を補正するためである。
【０１３５】
そして、ステップＳＴ４０にて、ｙがＲＯＩの上限（即ちｙ＝ｙｍｉｎ）となるまでは、ステップＳＴ４１にて、ｙ＝ｙ−１として、ステップＳＴ３５に戻り、上記ステップＳＴ３５〜３９の処理を繰り返す。
これに対して、ステップＳＴ４０にて、ｙ＝ｙｍｉｎとなった場合には、ステップＳＴ４２にて、ｘがＲＯＩの上限（即ちｘ＝ｘｍａｘ）となるまでは、ステップＳＴ４３にて、ｘ＝ｘ＋１として、ステップＳＴ３４に戻り、上記ステップＳＴ３４〜３９の処理を繰り返す。
ステップＳＴ４２にて、ｘ＝ｘｍａｘとなった場合には、ステップＳＴ４４にて、得られたＯＧＭに対して、必要に応じて冗長ＯＧＭ化してＲＯＧＭとする。
【０１３６】
続いて、ステップＳＴ４５にて、得られたＯＧＭ（またはＲＯＧＭ）に対して、ノイズ除去部２７によりノイズ除去されると共に、モルフォロジーのオープニング処理を施した後、ステップＳＴ４６にて、ＯＧＭ（またはＲＯＧＭ）を二値化したマップを作成する。
その後、ステップＳＴ４７にて、ラベリング処理部２８が、二値化したマップに対してラベリング処理を行なって、物体検出情報としてのオブジェクトの塊を一つのものとして表したマップを作成する。
このようにして、ステレオカメラ１１の左右画像を平行化処理した俯瞰画像から、画面のＲＯＩ内の領域において、各オブジェクトの塊がそれぞれ一つのものとして、マップ上で検出することができる。
従って、ステップＳＴ４８にて、各オブジェクトの塊ごとにそれぞれＩＤを割り当てて、各オブジェクトの重心位置，幅，高さ等の３Ｄ情報を各画像フレームの情報として付加して、リスト構造として登録する。
【０１３７】
そして、連続した複数の画像フレームからなるシーケンスに対するトラッキング処理は、図１４のフローチャートを参照して、以下のように行なわれる。
即ち、図１４のフローチャートに示すように、ステップＳＴ５１にて、一つの画像フレームｋを読み込んで、ステップＳＴ５２にて、この画像フレームｋに対して、ＯＧＭ（またはＲＯＧＭ）を使用して、上述したオブジェクト検出を行なう。
次に、ステップＳＴ５３にて、画像フレームｋと一つ前の画像フレーム（ｋ−１）でそれぞれ検出されたオブジェクトのリストから、ＩＤ毎に当該オブジェクトの位置及び幅等の３Ｄ情報を比較して、最も位置が近く且つ幅等も近いものを、同じオブジェクトとして関連付けて、画像フレーム（ｋ−１）のＩＤを割り当て直して、リスト構造として当該オブジェクトの位置や幅等を登録し直す。
そして、ステップＳＴ５４にて、他のオブジェクトがある場合には、ステップＳＴ５５にて、ｋ＝ｋ＋１として、ステップＳＴ５１に戻って、ステップＳＴ５１からステップＳＴ５３の処理を繰り返す。
これに対して、ステップＳＴ５４にて、すべてのオブジェクトに対する処理が終わったら、トラッキング処理を終了する。
以上で、チルト回転変換され縦圧縮された平行化画像情報に基づいて、路面または床面の物体を高速で検出することが可能となる。
【０１３８】
本発明は、その趣旨を逸脱しない範囲において様々な形態で実施することができる。
例えば、上述した実施形態においては、例として車両の前方を撮像するステレオカメラ１１の場合について説明したが、これに限らず、車両の後方や側方を撮像するステレオカメラに本発明を適用することも可能である。さらには、車両だけでなく、移動する物体、例えばロボット等から外部を撮像するステレオカメラに本発明を適用することも可能であり、あるいは監視用の固定ステレオカメラによって、床面上の薄い障害物の高さ判定に用いることも可能である。このように、上から見下ろしたような変換画像を使うことによって、路面部分の高さが高精度で求まり、車両だけでなく、室内の自律移動ロボットや、それほど広くない場所での監視用ステレオなどでの床面検出や、障害物検知に非常に有益である。
【０１３９】
上述した実施形態においては、チルト回転変換された平行化画像情報に基づいて、ＯＧＭまたはＲＯＧＭを使って、物体の検出を行なっているが、これに限らず、従来のステレオ処理によって、物体の検出を行なうことも可能である。
【０１４０】
上述した実施形態においては、平行化画像情報を作成する際に、ステレオカメラ１１の画像に対してチルト回転変換を行なうと共に、縦圧縮処理しているが、これに限らず、縦圧縮の処理を省略してもよい。この場合、例えば室内においてロボットの移動時における障害物の検出等に本発明による物体検出装置を使用する際には、ロボットの移動速度があまり速くないことと、移動範囲があまり広くないことから、十分に物体を検出することができると共に、ステレオカメラ１１による撮像範囲もあまり遠くまで撮像する必要がないことから、チルト回転変換による画素数の増大もあまり多くないので、十分にリアルタイムで物体の検出を行なうことが可能である。
【０１４１】
上述した実施形態においては、平行化画像情報を作成する際に、画面全体またはＲＯＩの領域全体を縦圧縮するようにしているが、これに限らず、路面に対してほぼ垂直な向きの領域を、チルト回転変換した平行化画像情報に基づく３Ｄ距離画像情報を用い、また路面に対してほぼ水平な向きの領域を、チルト回転変換しない平行化画像情報に基づく、即ち従来のステレオ処理と同様の３Ｄ距離画像情報を用いて、物体の検出を行なうようにしてもよい。この場合、路面に対してほぼ水平な向きの領域については、チルト回転変換しないことにより、平行化画像情報の画素数の増大が抑制され、処理すべきデータ量が抑制されるので、平行化画像情報の処理が高速で行なわれる。
さらに、チルト回転変換した平行化画像情報に基づく第二の３Ｄ距離画像情報を、チルト回転変換しない平行化画像情報に基づく第一の３Ｄ距離画像情報と統合して、第一の３Ｄ距離画像情報を修正するようにしてもよい。これにより、３Ｄ距離画像情報による物体の検出がより高精度で行なわれることになる。
【符号の説明】
【０１４２】
１０    物体検出装置
１１    ステレオカメラ
１１Ｌ  左カメラ
１１Ｒ  右カメラ
２０    画像処理部
２１    画像変換部
２２    視差算出部
２３    機距離・３Ｄ情報算出部
２５    前方路面に合わせた傾き変換部
２６    ＯＧＭ算出部
２７    ノイズ除去部
２８    ラベリング処理部
２９    検出物体情報出力部
３０    グローバルマップ表示部
４０    物体検出部
【図１】
2019016308.tif 000038
【図２】
2019016308.tif 000039
【図３】
2019016308.tif 000040
【図４】
2019016308.tif 000041
【図５】
2019016308.tif 000042
【図６】
2019016308.tif 000043
【図７】
2019016308.tif 000044
【図８】
2019016308.tif 000045
【図９】
2019016308.tif 000046
【図１０】
2019016308.tif 000047
【図１１】
2019016308.tif 000048
【図１２】
2019016308.tif 000049
【図１３】
2019016308.tif 000050
【図１４】
2019016308.tif 000051
【図１５】
2019016308.tif 000052
【図１６】
2019016308.tif 000053
【図１７】
2019016308.tif 000054