(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0010】
以下、実施形態に係る画像処理装置を有する機器制御システムについて説明する。
【0011】
〈機器制御システムの構成〉
図1は、実施形態に係る機器制御システムの構成を示す図である。
【0012】
この機器制御システム1は、移動体である自動車などの自車両100に搭載されており、撮像ユニット101、画像解析ユニット102、表示モニタ103、及び車両走行制御ユニット104からなる。そして、撮像ユニット101で、移動体の前方を撮像した自車両進行方向前方領域(撮像領域)の複数の撮像画像データ(フレーム)から、自車両前方の物体を検知して追跡し、その追跡結果を利用して移動体や各種車載機器の制御を行う。移動体の制御には、例えば、警告の報知、自車両100(自移動体)のハンドルの制御、または自車両100(自移動体)のブレーキが含まれる。
【0013】
撮像ユニット101は、例えば、自車両100のフロントガラス105のルームミラー(図示せず)付近に設置される。撮像ユニット101の撮像によって得られる撮像画像データ等の各種データは、画像処理手段としての画像解析ユニット102に入力される。
【0014】
画像解析ユニット102は、撮像ユニット101から送信されてくるデータを解析して、自車両100が走行している路面部分(自車両の真下に位置する路面部分)に対する自車両前方の走行路面上の各地点における相対的な高さ(位置情報)を検出し、自車両前方の走行路面の3次元形状を把握する。また、自車両前方の他車両、歩行者、各種障害物などの認識対象物を認識する。
【0015】
画像解析ユニット102の解析結果は、表示モニタ103及び車両走行制御ユニット104に送られる。表示モニタ103は、撮像ユニット101で得られた撮像画像データ及び解析結果を表示する。なお、表示モニタ103はなくともよい。車両走行制御ユニット104は、画像解析ユニット102による自車両前方の他車両、歩行者、各種障害物などの認識対象物の認識結果に基づいて、例えば、自車両100の運転者へ警告を報知したり、自車両のハンドルやブレーキを制御するなどの走行支援制御を行う。
【0016】
〈撮像ユニット101及び画像解析ユニット102の構成〉
図2は、実施形態に係る撮像ユニット101及び画像解析ユニット102の構成を示す図である。
【0017】
撮像ユニット101は、撮像手段としての2つの撮像部110a,110bを備えたステレオカメラで構成されており、2つの撮像部110a,110bは同一のものである。各撮像部110a,110bは、それぞれ、撮像レンズ111a,111bと、受光素子が2次元配置された画像センサ113a,113bを含んだセンサ基板114a,114bと、センサ基板114a,114bから出力されるアナログ電気信号(画像センサ113a,113b上の各受光素子が受光した受光量に対応する電気信号)をデジタル電気信号に変換した撮像画像データを生成して出力する信号処理部115a,115bとから構成されている。撮像ユニット101からは、輝度画像データと視差画像データが出力される。
【0018】
また、撮像ユニット101は、FPGA(Field-Programmable Gate Array)等からなる処理ハードウェア部120を備えている。この処理ハードウェア部120は、各撮像部110a,110bから出力される輝度画像データから視差画像を得るために、各撮像部110a,110bでそれぞれ撮像した撮像画像間の対応画像部分の視差値を演算する視差画像情報生成手段としての視差演算部121を備えている。
【0019】
ここでいう視差値とは、各撮像部110a,110bでそれぞれ撮像した撮像画像の一方を基準画像、他方を比較画像とし、撮像領域内の同一地点に対応した基準画像上の画像部分に対する比較画像上の画像部分の位置ズレ量を、当該画像部分の視差値として算出したものである。三角測量の原理を利用することで、この視差値から当該画像部分に対応した撮像領域内の当該同一地点までの距離を算出することができる。
【0020】
図3は、三角測量の原理を利用することで視差値から距離を算出する原理を説明するための図である。図において、fは撮像レンズ111a,111bのそれぞれの焦点距離であり、Dは光軸間の距離である。また、Zは撮像レンズ111a,111bから被写体301までの距離(光軸に平行な方向の距離)である。この図において、被写体301上にある点Oに対する左右画像での結像位置は、結像中心からの距離がそれぞれΔ1とΔ2となる。このときの視差値dは、d=Δ1+Δ2と規定することができる。
【0021】
図2の説明に戻る。画像解析ユニット102は、画像処理基板等から構成され、撮像ユニット101から出力される輝度画像データ及び視差画像データを記憶するRAMやROM等で構成される記憶手段122と、識別対象の認識処理や視差計算制御などを行うためのコンピュータプログラムを実行するCPU(Central Processing Unit)123と、データI/F(インタフェース)124と、シリアルI/F125を備えている。
【0022】
処理ハードウェア部120を構成するFPGAは、画像データに対してリアルタイム性が要求される処理、例えばガンマ補正、ゆがみ補正(左右の撮像画像の平行化)、ブロックマッチングによる視差演算を行って視差画像の情報を生成し、画像解析ユニット102のRAMに書き出す処理などを行う。画像解析ユニット102のCPUは、各撮像部110A,110Bの画像センサコントローラの制御および画像処理基板の全体的な制御を担うとともに、路面の3次元形状の検出処理、ガードレールその他の各種オブジェクト(物体)の検出処理などを実行するプログラムをROMからロードして、RAMに蓄えられた輝度画像データや視差画像データを入力として各種処理を実行し、その処理結果をデータI/F124やシリアルI/F125から外部へと出力する。このような処理の実行に際し、データI/F124を利用して、自車両100の車速、加速度(主に自車両前後方向に生じる加速度)、操舵角、ヨーレートなどの車両動作情報を入力し、各種処理のパラメータとして使用することもできる。外部に出力されるデータは、自車両100の各種機器の制御(ブレーキ制御、車速制御、警告制御など)を行うための入力データとして使用される。
【0023】
なお、撮像ユニット101及び画像解析ユニット102は、一体の装置である撮像装置2として構成してもよい。
【0024】
〈物体検出処理〉
次に、
図4を参照し、
図2における処理ハードウェア部120及び画像解析ユニット102で実現される物体検出処理を行う機能について説明する。
図4は、機器制御システム1の機能ブロック図の一例を示す図である。以下、本実施形態における物体検出処理について説明する。
【0025】
ステレオカメラを構成する2つの撮像部110a,110bからは輝度画像データが出力される。このとき、撮像部110a,110bがカラーの場合には、そのRGB信号から輝度信号(Y)を得るカラー輝度変換を、例えば下記の式〔1〕を用いて行う。
【0026】
Y=0.3R+0.59G+0.11B …式〔1〕
《視差画像生成処理》
次に、視差演算部121によって構成される視差画像生成部132において、視差画像データ(視差画像情報。「検出対象物の縦方向の位置と、横方向の位置と、奥行方向の位置とが対応づけられた情報」の一例。)を生成する視差画像生成処理を行う。視差画像生成処理では、まず、2つの撮像部110a,110bのうちの一方の撮像部110aの輝度画像データを基準画像データとし、他方の撮像部110bの輝度画像データを比較画像データとし、これらを用いて両者の視差を演算して、視差画像データを生成して出力する。この視差画像データは、基準画像データ上の各画像部分について算出される視差値dに応じた画素値をそれぞれの画像部分の画素値として表した視差画像を示すものである。
【0027】
《Vマップ生成処理》
次に、Vマップ生成部134において、視差画像生成部132から視差画像データを取得し、Vマップを生成するVマップ生成処理を実行する。視差画像データに含まれる各視差画素データは、x方向位置とy方向位置と視差値dとの組(x,y,d)で示される。これを、X軸にd、Y軸にy、Z軸に頻度fを設定した三次元座標情報(d,y,f)に変換したもの、又はこの三次元座標情報(d,y,f)から所定の頻度閾値を超える情報に限定した三次元座標情報(d,y,f)を、視差ヒストグラム情報として生成する。本実施形態の視差ヒストグラム情報は、三次元座標情報(d,y,f)からなり、この三次元ヒストグラム情報をX−Yの2次元座標系に分布させたものを、Vマップ(視差ヒストグラムマップ、V-disparity map)と呼ぶ。
【0028】
具体的に説明すると、Vマップ生成部134は、画像を上下方向に複数分割して得られる視差画像データの各行領域について、視差値頻度分布を計算する。この視差値頻度分布を示す情報が視差ヒストグラム情報である。
【0029】
図5は視差画像データ、及びその視差画像データから生成されるVマップについて説明するための図である。ここで、
図5Aは視差画像の視差値分布の一例を示す図であり、
図5Bは、
図5Aの視差画像の行毎の視差値頻度分布を示すVマップを示す図である。
【0030】
図5Aに示すような視差値分布をもった視差画像データが入力されたとき、Vマップ生成部134は、行毎の各視差値のデータの個数の分布である視差値頻度分布を計算し、これを視差ヒストグラム情報として出力する。このようにして得られる各行の視差値頻度分布の情報を、Y軸に視差画像上のy方向位置(撮像画像の上下方向位置)をとりX軸に視差値をとった二次元直交座標系上に表すことで、
図5Bに示すようなVマップを得ることができる。このVマップは、頻度fに応じた画素値をもつ画素が前記二次元直交座標系上に分布した画像として表現することもできる。
【0031】
図6は、一方の撮像部で撮像された基準画像としての撮影画像の画像例と、その撮影画像に対応するVマップを示す図である。ここで、
図6Aが撮影画像であり、
図6BがVマップである。即ち、
図6Aに示すような撮影画像から
図6Bに示すVマップが生成される。
【0032】
図6Aに示す画像例では、自車両が走行している路面401と、自車両の前方に存在する先行車両402と、路外に存在する電柱403が映し出されている。また、
図6Bに示すVマップには、画像例に対応して、路面501、先行車両502、及び電柱503がある。
【0033】
《路面形状検出処理》
次に、本実施形態では、Vマップ生成部134が生成したVマップの情報(視差ヒストグラム情報)から、路面形状検出部135において、自車両100の前方路面の3次元形状を検出する路面形状検出処理が実行される。
【0034】
図6Aに示す画像例は、自車両100の前方路面が相対的に平坦な路面、すなわち、自車両100の前方路面が自車両100の真下の路面部分と平行な面を自車前方へ延長して得られる仮想の基準路面(仮想基準移動面)に一致している場合のものである。この場合、画像の下部に対応するVマップの下部において、高頻度の点(路面501)は、画像上方へ向かうほど視差値dが小さくなるような傾きをもった略直線状に分布する。このような分布を示す画素は、視差画像上の各行においてほぼ同一距離に存在していてかつ最も占有率が高く、しかも画像上方へ向かうほど距離が連続的に遠くなる検出対象物を映し出した画素であると言える。
【0035】
撮像部110Aでは自車前方領域を撮像するため、その撮像画像の内容は、
図6Bに示すように、画像上方へ向かうほど路面の視差値dは小さくなる。また、同じ行(横ライン)内において、路面を映し出す画素はほぼ同じ視差値dを持つことになる。したがって、Vマップ上において上述した略直線状に分布する高頻度の点(路面501)は、路面(移動面)を映し出す画素が持つ特徴に対応したものである。よって、Vマップ上における高頻度の点を直線近似して得られる近似直線上又はその近傍に分布する点の画素は、高い精度で、路面を映し出している画素であると推定することができる。また、各画素に映し出されている路面部分までの距離は、当該近似直線上の対応点の視差値dから高精度に求めることができる。なお、路面の推定により路面の高さが求められるため、当該路面上の物体の高さを求めることができる。これは、公知の方法により算出できる。例えば、推定した路面を表す直線式を求め、視差値d=0のときの対応するy座標y0を路面の高さとする。そして、例えば、視差値がdでy座標がy'である場合、y'−y0が視差値dのときの路面からの高さを示す。上述の座標(d,y')の路面からの高さHは、H=(z×(y'−y0))/fという演算式で求めることができる。なお、この演算式における「z」は、視差値dから計算される距離(z=BF/(d−offset))、「f」は撮像部10a、10bの焦点距離を(y'−y0)の単位と同じ単位に変換した値である。ここで、BFは、撮像部10a、10bの基線長Bと焦点距離fを乗じた値、offsetは無限遠のオブジェクトを撮影したときの視差である。
【0036】
《Uマップ生成処理》
次に、Uマップ生成部137は、Uマップ(U-disparity map)を生成するUマップ生成処理として、頻度Uマップ生成処理及び高さUマップ生成処理を実行する。
【0037】
頻度Uマップ生成処理では、視差画像データに含まれる各視差画素データにおけるx方向位置とy方向位置と視差値dとの組(x,y,d)を、X軸にx、Y軸にd、Z軸に頻度を設定し、X−Yの2次元ヒストグラム情報を作成する。これを頻度Uマップと呼ぶ。本実施形態のUマップ生成部137では、路面からの高さHが所定の高さ範囲(たとえば20cmから3m)にある視差画像の点(x,y,d)についてだけ頻度Uマップを作成する。この場合、路面から当該所定の高さ範囲に存在する物体を適切に抽出することができる。
【0038】
また、高さUマップ生成処理では、視差画像データに含まれる各視差画素データにおけるx方向位置とy方向位置と視差値dとの組(x,y,d)を、X軸にx、Y軸にd、Z軸に路面からの高さを設定して、X−Yの2次元ヒストグラム情報を作成する。これを高さUマップと呼ぶ。このときの高さの値は路面からの高さが最高のものである。
【0039】
図7は、撮像部110aで撮像される基準画像の一例を模式的に表した画像例であり、
図8は、
図7の画像例に対応するUマップである。ここで、
図8Aは頻度Uマップであり、
図8Bは高さUマップである。
【0040】
図7に示す画像例では、路面の左右両側にガードレール413,414が存在し、他車両としては、先行車両411と対向車両412がそれぞれ1台ずつ存在する。このとき、頻度Uマップにおいては、
図8Aに示すように、左右のガードレール413,414に対応する高頻度の点は、左右両端側から中央に向かって上方へ延びるような略直線状603,604に分布する。一方、先行車両411と対向車両412に対応する高頻度の点は、左右のガードレールの間で、略X軸方向に平行に延びる線分の状態601,602で分布する。なお、先行車両411の背面部分又は対向車両412の前面部分以外に、これらの車両の側面部分が映し出されているような状況にあっては、同じ他車両を映し出している画像領域内において視差が生じる。このような場合、
図8Aに示すように、他車両に対応する高頻度の点は、略X軸方向に平行に延びる線分と略X軸方向に対して傾斜した線分とが連結した状態の分布を示す。
【0041】
また、高さUマップにおいては、左右のガードレール413,414、先行車両411、及び対向車両412における路面からの高さが最高の点が頻度Uマップと同様に分布する。ここで、先行車両に対応する点の分布701及び対向車両に対応する点の分布702の高さはガードレールに対応する点の分布703,704よりも高くなる。これにより、高さUマップにおける物体の高さ情報を物体検出に利用することができる。
【0042】
《リアルUマップ生成処理》
次に、リアルUマップ生成部138について説明する。リアルUマップ生成部138では、リアルUマップ(Real U-disparity map)(「分布データ」の一例)を生成するUマップ生成処理として、リアル頻度Uマップ生成処理及びリアル高さUマップ生成処理を実行する。
【0043】
リアルUマップは、Uマップにおける横軸を画像の画素単位から実際の距離相当の単位に変換し、縦軸の視差値を距離に応じた間引き率を有する間引き視差に変換したものである。なお、ここにいうリアルUマップは、実空間を俯瞰的にとらえた俯瞰画像(鳥瞰画像)ということもできる。
【0044】
リアルUマップ生成部138は、リアル頻度Uマップ生成処理において、視差画像データに含まれる各視差画素データにおけるx方向位置とy方向位置と視差値dとの組(x,y,d)を、X軸に水平方向の実際の距離、Y軸に間引き視差、Z軸に頻度を設定して、X−Yの2次元ヒストグラム情報を作成する。なお、本実施形態のリアルUマップ生成部138は、Uマップ生成部137と同様に、路面からの高さHが所定の高さ範囲にある視差画像の点(x,y,d)についてだけリアル頻度Uマップを作成する。なお、リアルUマップ生成部138は、Uマップ生成部137が生成したUマップに基づいて、リアルUマップを生成する構成としてもよい。
【0045】
図9は、
図8Aに示す頻度Uマップに対応するリアルUマップ(以下、リアル頻度Uマップ)を示す図である。図示のように、左右のガードレールは垂直の線状のパターン803,804で表され、先行車両、対向車両も実際の形に近いパターン801、802で表される。
【0046】
縦軸の間引き視差は、遠距離(ここでは50m以上)については間引きなし、中距離(20m以上、50m未満)については1/2に間引き、近距離(10m以上、20m未満)については1/3に間引き、近距離(10m以上、20m未満)については1/8に間引いたものである。
【0047】
つまり、遠方ほど、間引く量を少なくしている。その理由は、遠方では物体が小さく写るため、視差データが少なく、距離分解能も小さいので間引きを少なくし、逆に近距離では、物体が大きく写るため、視差データが多く、距離分解能も大きいので間引きを多くする。
【0048】
横軸を画像の画素単位から実際の距離へ変換する方法、Uマップの(x,d)からリアルUマップの(X,d)を求める方法の一例について
図10を用いて説明する。
【0049】
カメラから見て左右10mずつ、即ち20mの幅をオブジェクト検出範囲として設定する。リアルUマップの横方向1画素の幅を10cmとすると、リアルUマップの横方向サイズは200画素となる。
【0050】
カメラの焦点距離をf、カメラ中心からのセンサの横方向の位置をp、カメラから被写体までの距離をZ、カメラ中心から被写体までの横方向の位置をXとする。センサの画素サイズをsとすると、xとpの関係は「x=p/s」で表される。また、ステレオカメラの特性から、「Z=Bf/d」の関係がある。
【0051】
また、図より、「x=p*Z/f」の関係があるから、「X=sxB/d」で表すことができる。Xは実距離であるが、リアルUマップ上での横方向1画素の幅が10cmあるので、容易にXのリアルUマップ上での位置を計算することができる。
【0052】
図8Bに示す高さUマップに対応するリアルUマップ(以下、リアル高さUマップ)も同様の手順で作成することができる。
【0053】
リアルUマップには、縦横の長さをUマップより小さくできるので処理が高速になるというメリットがある。また、横方向が距離に非依存になるため、遠方、近傍いずれでも同じ物体は同じ幅で検出することが可能になり、後段の周辺領域除去や、横分離、縦分離への処理分岐の判定(幅の閾値処理)が簡単になるというメリットもある。
【0054】
Uマップにおける縦方向の長さは、測定可能な最短距離を何メートルにするかで決定される。つまり、「d=Bf/Z」であるから、測定可能な最短のZに応じて、dの最大値は決定される。また、視差値dはステレオ画像を扱うため、通常画素単位で計算されるが、少数を含むため、視差値に所定値を乗じて小数部分を四捨五入して整数化した視差値を使用する。
【0055】
測定可能な最短のZが1/2になると、dは2倍になるので,それだけUマップのデータは巨大となる。そこで、リアルUマップを作成するときには、近距離ほど画素を間引いてデータを圧縮し、Uマップよりもデータ量を削減する。
そのため、ラベリングによるオブジェクト検出を高速に行うことができる。
【0056】
《孤立領域検出》
次に、孤立領域検出部139が行う孤立領域検出処理について説明する。
図11は、孤立領域検出処理の一例を示すフローチャートである。孤立領域検出部139では、まずリアルUマップ生成部138で生成されたリアル頻度Uマップの情報の平滑化を行う(ステップS111)。
【0057】
これは、頻度値を平均化することで、有効な孤立領域を検出しやすくするためである。即ち、視差値には計算誤差等もあって分散があり、かつ、視差値がすべての画素について計算されているわけではないので、リアルUマップは
図9に示した模式図とは異なり、ノイズを含んでいる。そこで、ノイズを除去するためと、検出したいオブジェクトを分離しやすくするため、リアルUマップを平滑化する。これは画像の平滑化と同様に、平滑化フィルタ(例えば3×3画素の単純平均)をリアルUマップの頻度値(リアル頻度Uマップ)に対して適用することで、ノイズと考えられるような頻度は減少し、オブジェクトの部分では頻度が周囲より高い、まとまったグループとなり、後段の孤立領域検出処理を容易にする効果がある。
【0058】
次に、二値化の閾値を設定する(ステップS112)。最初は小さい値(=0)を用いて、平滑化されたリアルUマップの二値化を行う(ステップS113)。その後、値のある座標のラベリングを行って、孤立領域を検出する(ステップS114)。
【0059】
この二つのステップでは、リアル頻度Uマップで頻度が周囲より高い孤立領域(島と呼ぶことにする)を検出する。検出には、リアル頻度Uマップをまず二値化する(ステップS113)。最初は閾値0で二値化を行う。これは、オブジェクトの高さや、その形状、路面視差との分離などがあるため、島は孤立しているものもあれば他の島と連結しているものもあることの対策である。即ち、小さい閾値からリアル頻度Uマップを二値化することで最初は孤立した適切な大きさの島を検出し、その後、閾値を増加させていくことで連結している島を分離し、孤立した適切な大きさの島として検出することを可能にしたものである。
【0060】
二値化後の島を検出する方法はラベリングを用いる。二値化後の黒である座標(頻度値が二値化閾値より高い座標)をその連結性に基づいてラベリングして、同一ラベルが付いた領域を島とする。
【0061】
検出された複数の孤立領域についてそれぞれ大きさの判定を行う(ステップS115)。これは、検出対象が歩行者から大型自動車であるため、孤立領域の幅がそのサイズの範囲であるか否かを判定するのである。もし、その大きさが大きければ(ステップS115:YES)、二値化閾値を1だけインクリメントして(ステップS112)、リアル頻度Uマップの当該孤立領域内だけ二値化を行う(ステップS113)。そしてラベリングを行い、より小さな孤立領域を検出して(ステップS114)、その大きさを判定する(ステップS115)。
【0062】
上記の閾値設定からラベリングの処理を繰り返し行い、所望の大きさの孤立領域を検出するのである。所望の大きさの孤立領域が検出できたなら(ステップS115:NO)、次に周辺領域除去を行う(ステップS116)。これは、遠方にある物体で、路面検出の精度が悪く、路面の視差がリアルUマップ内に導入され、物体と路面の視差が一塊になって検出された場合のその左右、近傍の高さが路面に近い部分の領域(孤立領域内の周辺部分)を削除する処理である。除去領域が存在する場合は(ステップS117:YES)、もう一度ラベリングを行って孤立領域の再設定を行う(ステップS114)。
【0063】
《視差画像の対応領域検出、及びオブジェクト領域抽出》
次に、視差画像の対応領域検出部140及びオブジェクト領域抽出部141について説明する。
図12は、孤立領域検出部で検出された孤立領域が内接する矩形領域を設定したリアル頻度Uマップを示す図であり、
図13は、
図12における矩形領域に対応する走査範囲を設定した視差画像を示す図であり、
図14は、
図13における走査範囲を探索してオブジェクト領域を設定した視差画像を示す図である。
【0064】
孤立領域検出部139によりオブジェクト候補領域として決定された孤立領域について、
図12に示すように、当該孤立領域としての第1車両801、第2車両802が内接する矩形領域として第1検出島811及び第2検出島812を設定したとき、この矩形領域の幅(Uマップ上のX軸方向長さ)は、当該孤立領域に対応する識別対象物(オブジェクト)の幅に対応する。また、設定した矩形領域の高さは、当該孤立領域に対応する識別対象物(オブジェクト)の奥行き(自車両進行方向長さ)に対応している。一方で、各孤立領域に対応する識別対象物(オブジェクト)の高さについては、この段階では不明である。視差画像の対応領域検出部140は、オブジェクト候補領域に係る孤立領域に対応したオブジェクトの高さを得るために、当該孤立領域に対応する視差画像上の対応領域を検出する。
【0065】
視差画像の対応領域検出部140は、孤立領域検出部139から出力される孤立領域の情報に基づき、リアルUマップから検出した第1検出島811及び第2検出島812島の位置、幅と最小視差から、
図13に示す視差画像で検出すべき範囲である第1検出島対応領域走査範囲481及び第2検出島対応領域走査範囲482のx方向範囲(xmin,xmax)を決定できる。また、視差画像においてオブジェクトの高さと位置(ymin="最大視差dmaxの時の路面からの最大高さに相当するy座標"からymax="最大視差dmaxから得られる路面の高さを示すy"まで)を決定できる。
【0066】
次に、オブジェクトの正確な位置を検出するため、設定した走査範囲を走査し、孤立領域検出部139で検出した矩形の奥行き(最小視差dmin,最大視差dmax)の範囲の値を視差にもつ画素を候補画素として抽出する。そして、抽出した候補画素群の中で検出幅に対して横方向に所定の割合以上あるラインをオブジェクト候補ラインとする。
【0067】
次に、縦方向に走査して、ある注目しているオブジェクト候補ラインの周囲に他のオブジェクト候補ラインが所定の密度以上ある場合には、その注目しているオブジェクト候補ラインをオブジェクトラインとして判定する。
【0068】
次に、オブジェクト領域抽出部141は、視差画像の探索領域でオブジェクトラインを探索して、オブジェクトラインの最下端、最上端を決定し、
図14に示すように、オブジェクトライン群の外接矩形461,462を視差画像におけるオブジェクト(第1車両、第2車両)の領域451,452として決定する。
【0069】
図15は、視差画像の対応領域検出部140及びオブジェクト領域抽出部141で行われる処理の流れを示すフローチャートである。まずリアルUマップにおける島の位置、幅と最小視差から、視差画像に対するx軸方向の探索範囲を設定する(ステップS161)。
【0070】
次に島の最大視差dmaxと路面高さの関係から、視差画像に対するy軸方向の最大探索値ymaxを設定する(ステップS162)。次にリアル高さUマップにおける島の最大高さ、及びステップS172で設定したymaxとdmaxとから、視差画像に対するy軸方向の最小探索値yminを求めて設定することで、視差画像に対するy軸方向の探索範囲を設定する(ステップS163)。
【0071】
次いで設定した探索範囲で視差画像を探索して、島の最小視差dmin,最大視差dmaxの範囲内にある画素を抽出し、オブジェクト候補画素とする(ステップS164)。そのオブジェクト候補画素が横方向に一定以上の割合にあるとき、そのラインをオブジェクト候補ラインとして抽出する(ステップS165)。
【0072】
オブジェクト候補ラインの密度を計算して、密度が所定の値より大きい場合はそのラインをオブジェクトラインと決定する(ステップS166)。最後にオブジェクトライン群の外接矩形を視差画像内のオブジェクト領域として検出する(ステップS167)。
【0073】
それにより、識別対象物(オブジェクト、物体)を認識することができる。
【0074】
《オブジェクトタイプ分類》
次に、オブジェクトタイプ分類部142について説明する。
【0075】
前記オブジェクト領域抽出部141で抽出されるオブジェクト領域の高さ(yomax−yomin)から、下記の式〔2〕より、そのオブジェクト領域に対応する画像領域に映し出されている識別対象物(オブジェクト)の実際の高さHoを計算できる。ただし、「zo」は、当該オブジェクト領域内の最小視差値dから計算される当該オブジェクト領域に対応するオブジェクトと自車両との距離であり、「f」はカメラの焦点距離を(yomax−yomin)の単位と同じ単位に変換した値である。
【0076】
Ho=zo×(yomax−yomin)/f …式〔2〕
同様に、オブジェクト領域抽出部141で抽出されるオブジェクト領域の幅(xomax−xomin)から、下記の式〔3〕より、そのオブジェクト領域に対応する画像領域に映し出されている識別対象物(オブジェクト)の実際の幅Woを計算できる。
【0077】
Wo=zo×(xomax−xomin)/f …式〔3〕
また、当該オブジェクト領域に対応する画像領域に映し出されている識別対象物(オブジェクト)の奥行きDoは、当該オブジェクト領域に対応した孤立領域内の最大視差dmaxと最小視差dminから、下記の式〔4〕より計算することができる。
【0078】
Do=BF×{(1/(dmin−offset)−1/(dmax−offset)} …式〔4〕
オブジェクトタイプ分類部142は、このようにして計算できるオブジェクト領域に対応するオブジェクトの高さ、幅、奥行きの情報から、そのオブジェクトタイプの分類を行う。
図16に示す表は、オブジェクトタイプの分類を行うためのテーブルデータの一例を示すものである。
図16の例では、例えば、幅が1100mm未満、高さが250mm未満、かつ奥行きが1000mmを超えていれば、「オートバイ、自転車」と判定される。また、幅が1100mm未満、高さが250mm未満、かつ奥行きが1000mm以下であれば、「歩行者」と判定される。これによれば、自車両前方に存在する識別対象物(オブジェクト)が、歩行者なのか、自転車またはオートバイなのか、小型車なのか、トラックなのか等を区別して認識することが可能となる。なお、上述の方法は一例であり、本発明においては、オブジェクトタイプの分類やオブジェクトの位置が特定できれば、種々の方法を利用することができる。
【0079】
《3次元位置決定》
次に、
図17を参照し、3次元位置決定部143の処理について説明する。3次元位置決定部143は、自車両100に対する識別対象物(オブジェクト)の相対的な3次元の位置を決定する。
【0080】
図17は、3次元位置決定処理の一例を示す図である。なお、
図17では、オブジェクト領域抽出部141により抽出された各オブジェクトのうちの一のオブジェクト(対象オブジェクト)についての処理を説明する。そのため、3次元位置決定部143は、
図17の処理を、オブジェクト領域抽出部141により抽出された各オブジェクトに対して行う。
【0081】
ステップS201において、3次元位置決定部143は、対象オブジェクトのオブジェクトタイプが、剛体ではない種別(「第一の種別」の一例。)であるか否かを判定する。なお、剛体とは、変形しない物体であり、剛体である種別とは、例えば「小型車」、「普通車」、「トラック」等である。また、剛体ではない種別とは、例えば、「歩行者」、「オートバイ、自転車」等である。なお、オートバイや自転車自体は剛体であるが、オートバイや自転車の運転者が剛体ではないため、剛体ではない種別と判定される。
【0082】
オブジェクトタイプが剛体である種別(「第二の種別」の一例。)であれば(ステップS201でNO)、3次元位置決定部143は、対象オブジェクトの中心の位置を算出する(ステップS202)。3次元位置決定部143は、検出されたオブジェクト領域に対応するオブジェクトまでの距離や、視差画像の画像中心と視差画像上のオブジェクト領域の中心との画像上の距離に基づいて、オブジェクトの3次元座標における中心位置を、例えば以下の式により算出する。
【0083】
視差画像上のオブジェクト領域の中心座標を(region_centerX,region_centerY)とし、視差画像の画像中心座標を(image_centerX,image_centerY)としたとき、識別対象物(オブジェクト)の撮像部110a,110bに対する相対的な横方向の中心位置Xoおよび高さ方向の中心Yo位置は、下記の式〔5〕及び式〔6〕より計算できる。
【0084】
Xo=Z×(region_centerX−image_centerX)/f …式〔5〕
Yo=Z×(region_centerY−image_centerY)/f …式〔6〕
続いて、3次元位置決定部143は、対象オブジェクトの中心の位置を、対象オブジェクトの位置として決定し(ステップS203)、処理を終了する。
【0085】
図18は、車両等のオブジェクトの位置を算出する方法について説明する図である。オブジェクトタイプが「歩行者」、または「オートバイ、自転車」でない場合、3次元位置決定部143は、例えばオブジェクト領域の中心の位置901a、901b、901cを、対象オブジェクトの位置とする。これにより、後述する対象オブジェクトの重心の位置900a、900b、900cを対象オブジェクトの位置とする方法と比較して、ノイズ等の影響を低減することができる。
【0086】
一方、オブジェクトタイプが「歩行者」、または「オートバイ、自転車」であれば(ステップS201でYES)、3次元位置決定部143は、対象オブジェクトの重心の位置を算出する(ステップS204)。これにより、オブジェクトタイプに応じた方法で、対象オブジェクトの横方向の位置を決定することができる。すなわち、オブジェクトタイプが、剛体ではない種別の場合、オブジェクトの横方向における重心の位置が、当該オブジェクトの横方向の位置と決定される。また、オブジェクトタイプが、剛体である種別の場合、オブジェクトの横方向における両端の中心の位置が、当該オブジェクトの横方向の位置と決定される。
【0087】
図19は、歩行者、オートバイ、または自転車であるオブジェクトの位置を算出する方法について説明する図である。
図19(A)では、歩行者が腕を閉じている場合の重心の位置910aを示している。
図19(B)では、歩行者が腕を開いている場合の重心の位置910bを示している。
【0088】
ステップS204において、3次元位置決定部143は、視差画像において、対象オブジェクトの対応領域(例えば、
図13の第1検出島対応領域走査範囲481、または第2検出島対応領域走査範囲482)を探索範囲とする。そして、当該探索範囲において、当該オブジェクトの視差を示す画素の数を、横方向(x方向)の各位置毎に合計する。例えば、当該オブジェクトの最小視差値から最大視差値内の視差値dを有する画素の数を、横方向(x方向)の各位置毎に合計する。そして、3次元位置決定部143は、当該合計した数が最も多い横方向の位置を、対象オブジェクトの横方向の位置とする。なお、対象オブジェクトの縦方向の位置は、横方向の重心の位置と同様に求めてもよいし、縦方向の中心の位置としてもよい。
【0089】
続いて、3次元位置決定部143は、対象オブジェクトの重心の位置を、対象オブジェクトの位置とし(ステップS205)、処理を終了する。
【0090】
<重心の位置の算出方法の変形例>
ステップS204において、例えば以下のように重心の位置を算出してもよい。
【0091】
3次元位置決定部143は、上述の探索範囲において、当該オブジェクトの視差を示す画素の高さが最も高さが高い横方向の位置を、対象オブジェクトの横方向の重心の位置としてもよい。これは、歩行者、自転車等において、最も高い位置に人の頭があると考えられるためである。
【0092】
または、3次元位置決定部143は、基準画像を画像認識することにより人の頭を認識し、認識した人の頭の横方向の位置を、対象オブジェクトの横方向の重心の位置としてもよい。人の頭の認識方法としては、公知の種々の方法が適用可能である。
【0093】
または、3次元位置決定部143は、視差画像にける探索範囲に基づいて算出する代わりに、オブジェクト領域抽出部141により抽出されたオブジェクト領域に対応するリアルUマップ上の孤立領域に基づいて、対象オブジェクトの重心の位置を算出してもよい。この場合、3次元位置決定部143は、例えば、孤立領域において、各X座標の位置毎に、Y軸に沿って視差頻度の合計値を算出する。そして、3次元位置決定部143は、当該合計値が最も多いX座標を、対象オブジェクトの横方向の重心の位置とする。
【0094】
《オブジェクトトラッキング》
次に、オブジェクトトラッキング部144について説明する。オブジェクトトラッキング部144は、以前(過去)のフレームの視差画像から検出されたオブジェクト(物体)をトラッキング(追跡)する処理を実行する。
【0095】
オブジェクトトラッキング部144は、3次元位置決定部143により、以前の複数のフレームの視差画像に基づいて決定された、各オブジェクトの位置に基づき、今回のフレームの視差画像に対する各オブジェクトの位置を予測する。具体的には、オブジェクトトラッキング部144は、以前の複数のフレームの各オブジェクトの位置を用いて当該オブジェクトと自車両100との相対的な移動速度及び移動方向を特定し、この移動速度及び移動方向に基づいて、今回のフレームの視差画像に対する各オブジェクトの位置を予測する。この物体追跡処理には、周知の技術が適用可能である。しかし、移動速度及び移動方向を用いて物体追跡処理を行う場合、剛体でない人等の物体が、例えば手を広げることにより当該物体を検出した位置がフレーム間で変動すれば、それに伴って当該物体が移動したとみなされてしまい、誤った物体追跡処理が発生してしまう。これを、前述のように重心位置を採用することにより防止する。一方で、剛体である物体については、オブジェクト領域に基づいた位置を採用することで、ノイズ等の影響を低減できるようになる。
【0096】
そして、オブジェクトトラッキング部144は、以前のフレームの視差画像におけるオブジェクトの領域の視差画像と、予測位置に対する今回のフレームの視差画像における領域の視差画像との類似度に基づいて、オブジェクトの追跡を継続する。これにより、複数のフレームにおいて、同一の物体は、同一の物体として把握される。
【0097】
オブジェクトトラッキング部144は、例えば日光の反射や、暗い等により、物体の視差が十分に測定できていない場合、または、歩行者、及び当該歩行者に隣接する物体が一つの物体であると誤判定された場合、当該物体の位置を推定する。この場合、オブジェクトトラッキング部144は、以前の複数のフレームにおける当該物体の自車両100との相対的な移動速度及び移動方向に基づいて、今回のフレームの視差画像におけるオブジェクト領域を推定する。そして、オブジェクトトラッキング部144は、当該物体が人等の剛体でない物体である場合は、重心の位置を求めるため、以前の複数のフレームにおける当該物体のオブジェクト領域の横方向の右端の位置と重心の位置、及び左端の位置と重心の位置の比を算出する。そして、オブジェクトトラッキング部144は、今回のフレームの視差画像において推定されたオブジェクト領域の横方向を当該比で分割した位置を、今回のフレームの視差画像におけるオブジェクトの重心の位置と推定する。
【0098】
例えば、以前の複数のフレームにおける当該物体のオブジェクト領域の横方向の右端の位置と重心の位置、及び左端の位置と重心の位置の比の平均が2対1の場合、今回のフレームの視差画像において推定されたオブジェクト領域の横方向を2対1に分割した位置が、今回のフレームの視差画像におけるオブジェクトの重心の位置と推定される。
【0099】
<まとめ>
従来、歩行者や自転車の運転手等の人が手を横方向に急に広げた場合、物体の横方向における両端の中心の位置が急激に変化するため、追跡できなくなる場合がある。
また、例えば以前の複数のフレームにおける物体の位置に基づいて、今回のフレームにおける当該物体の位置を予測して追跡する場合、歩行者や自転車の運転手等の人が手を横方向に急に広げると、手を広げた先が当該人の移動方向と誤認識されて、位置の予測精度が低下する場合がある。
【0100】
上述した実施形態によれば、物体の種別に応じて、視差画像における物体の位置を決定する。それにより、精度の高いトラッキングを継続できる。
【0101】
なお、距離の値(距離値)と視差値は等価に扱えることから、本実施形態においては距離画像の一例として視差画像を用いて説明しているが、これに限られない。例えば、ステレオカメラを用いて生成した視差画像に対して、ミリ波レーダやレーザレーダ等の検出装置を用いて生成した距離情報を統合して、距離画像を生成してもよい。また、ステレオカメラと、ミリ波レーダやレーザレーダ等の検出装置を併用し、上述したステレオカメラによる物体の検出結果と組み合わせることにより、検出の精度をさらに高める構成としてもよい。
【0102】
上述した実施形態におけるシステム構成は一例であり、用途や目的に応じて様々なシステム構成例があることは言うまでもない。
【0103】
例えば、処理ハードウェア部120及び画像解析ユニット102の各機能部の少なくとも一部の処理を行う機能部は、1以上のコンピュータにより構成されるクラウドコンピューティングにより実現されていてもよい。
【0104】
また、上述の実施の形態では、機器制御システム1が自車両100としての自動車に搭載される例について説明したが、これに限定されるものではない。例えば、他の車両の一例としてバイク、自転車、車椅子または農業用の耕運機等の車両に搭載されるものとしてもよい。また、移動体の一例としての車両だけでなく、ロボット等の移動体に搭載されるものとしてもよい。
【0105】
また、処理ハードウェア部120及び画像解析ユニット102の各機能部は、ハードウェアによって実現される構成としてもよいし、CPUが記憶装置に格納されたプログラムを実行することによって実現される構成としてもよい。このプログラムは、インストール可能な形式又は実行可能な形式のファイルによって、コンピュータで読み取り可能な記録メディアに記録されて流通されるようにしても良い。また、上記記録メディアの例として、CD−R(Compact Disc Recordable)、DVD(Digital Versatile Disk)、ブルーレイディスク等が挙げられる。また、このプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、このプログラムを、インターネット等のネットワーク経由で提供または配布するように構成してもよい。