【文献】
高木聖和, 外2名,“レーザレーダによる歩行者認識技術”,デンソーテクニカルレビュー,株式会社デンソー,2007年05月18日,第12巻, 第1号,p.35-39
(58)【調査した分野】(Int.Cl.,DB名)
前記抽出部は、前記類似度と、前記予測部により予測された所定の物体の位置から、今回の前記情報における前記複数の物体の各々の位置までの距離とに基づいて、前記複数の物体のうち、前記所定の物体と同一の物体を抽出する、
請求項1乃至3のいずれか一項に記載の情報処理装置。
前記抽出部は、前記取得部により以降に取得された前記情報において、今回の前記情報における前記複数の物体のうち、前記所定の物体と同一の物体でないと判定した物体の位置に応じた所定の条件を満たす物体の情報が存在する場合、前記所定の物体の画像と、当該物体の画像との類似度に基づいて、前記所定の物体と同一の物体を抽出する、
請求項1乃至4のいずれか一項に記載の情報処理装置。
【発明を実施するための形態】
【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マップにおける横軸を画像の画素単位から実際の距離に変換し、縦軸の視差値を距離に応じた間引き率を有する間引き視差に変換したものである。
【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次元位置決定》
次に、3次元位置決定部143の処理について説明する。3次元位置決定部143は、自車両100に対する識別対象物(オブジェクト)の相対的な3次元の位置を決定する。
【0080】
3次元位置決定部143は、検出されたオブジェクト領域に対応するオブジェクトまでの距離や、視差画像の画像中心と視差画像上のオブジェクト領域の中心との画像上の距離に基づいて、オブジェクトの3次元座標(実空間)における中心位置を、例えば以下の式により算出する。
【0081】
視差画像上のオブジェクト領域の中心座標を(region_centerX,region_centerY)とし、視差画像の画像中心座標を(image_centerX,image_centerY)としたとき、識別対象物(オブジェクト)の撮像部110a,110bに対する相対的な横方向の中心位置Xoおよび高さ方向の中心Yo位置は、下記の式〔5〕及び式〔6〕より計算できる。
【0082】
Xo=Z×(region_centerX−image_centerX)/f …式〔5〕
Yo=Z×(region_centerY−image_centerY)/f …式〔6〕
《オブジェクトトラッキング》
次に、オブジェクトトラッキング部144について説明する。オブジェクトトラッキング部144は、以前(過去)のフレームから検出されたオブジェクト(物体)を、今回(現在)のフレームにおいてトラッキング(追跡)する処理を実行する。
【0083】
オブジェクトトラッキング部144は、予測部1441、及び抽出部1442を有する。
【0084】
予測部1441は、以前のフレームに基づいて検出された所定の物体の位置に基づき、今回のフレームにおける当該所定の物体の位置を予測する。具体的には、予測部1441は、以前の複数のフレームの各オブジェクトの位置を用いて、当該オブジェクトと自車両100との相対的な移動速度及び移動方向を特定し、この移動速度及び移動方向に基づいて、今回のフレームの視差画像に対する各オブジェクトの位置を予測する。なお、この物体追跡処理には、公知の技術を適用可能である。
【0085】
抽出部1442は、今回のフレームから、予測部1441により予測された位置に関する条件を満たす複数の物体を抽出する。また、抽出部1442は、当該複数の物体の各画像と、当該所定の物体の画像との類似度に基づいて、当該複数の物体のうち、当該所定の物体と同一の物体を抽出する。
【0086】
次に、
図17を参照し、オブジェクトトラッキング部144によるオブジェクトトラッキング処理について説明する。
図17は、オブジェクトトラッキング処理の一例を示すフローチャートである。なお、
図17では、オブジェクト領域抽出部141により抽出された各オブジェクトのうちの一のオブジェクト(対象オブジェクト)についての処理を説明する。そのため、
図17の処理は、オブジェクト領域抽出部141により抽出された各オブジェクトに対して行われる。
【0087】
ステップS201において、オブジェクトトラッキング部144の予測部1441は、3次元位置決定部143により以前の複数のフレームに基づいて決定された対象オブジェクトの位置に基づき、今回のフレームに対する対象オブジェクトの位置を予測する。例えば、予測部1441は、前々回のフレームにおける対象オブジェクトの位置と、前回のフレームにおける対象オブジェクトの位置との差分を、自車両に対する相対速度とする。そして、前回のフレームにおける対象オブジェクトの位置から、当該相対速度の分だけ移動させた位置を、今回のフレームにおける対象オブジェクトの位置であると予測する。すなわち、例えば、相対速度がリアルUマップ上で横方向(X軸方向)に1m/フレーム、奥行き方向(Y軸方向)に2m/フレームの場合、横方向に1m、奥行き方向に2m移動させた位置が、今回のフレームにおける対象オブジェクトの位置であると予測される。なお、ステップS201における位置の予測は、他の公知技術を用いてもよい。
【0088】
続いて、オブジェクトトラッキング部144の抽出部1442は、ステップS201で対象オブジェクトについて予測した位置と、今回のフレームに基づいて検出された位置とが、所定の条件を満たす1以上のオブジェクトを抽出する(ステップS202)。なお、当該所定の条件を満たすか否かの閾値は、例えば設定に応じて変更できるようにしてもよい。また、抽出部1442は、例えば今回のフレームに基づいて検出されたオブジェクトの数が所定数以上の場合や、追跡しているオブジェクトの数が所定数以上の場合に、当該所定の条件が満たされにくくなるように、当該閾値を変更してもよい。これにより、例えば、障害物等が比較的多く検出される道路を走行している場合に、今回のフレームで検出された一の物体を、以前のフレームで検出された他の物体と同一であると誤判定される可能性を低減できる。
【0089】
続いて、オブジェクトトラッキング部144の抽出部1442は、対象オブジェクトの特徴と、抽出した各オブジェクトの特徴とに基づいて、抽出した各オブジェクトのうち、対象オブジェクトと一致するオブジェクトを抽出する(ステップS203)。これにより、複数のフレームにおいて、同一の物体は、同一の物体として把握される。
【0090】
ステップS203において、オブジェクトの特徴として、例えば画像の特徴量が用いられてもよい。この場合、例えば、高次局所自己相関特徴抽出法(HLAC:Higher-order Local AutoCorrelation)や、HOG(Histogram of Oriented Gradient)等の公知の方法を用いて、画像の特徴量が算出されてもよい。
【0091】
HLACは、画像の濃淡を表す関数g(x, y)の自己相関をN次に拡張し、g(x, y)g(x+a1, y+b1)‥g(x+aN, y+bN)の変位ai, biを、参照画素(x, y)周辺の局所領域に限定して、画像の特徴を抽出する方法である。相関の次数を二次まで(3点相関)、変位を3×3画素の局所領域に限定すると、白黒2値画像の場合は、25次元のパターンとなり、この25次元のパターンで示される画素値を画像の特徴量とする。
【0092】
HOGは、入力画像から計算したエッジ画像に対して、各ブロック領域ごとの方位ヒストグラムを特徴量として計算する方法である。
【0093】
抽出部1442は、以前のフレームにおける対象オブジェクトの画像の特徴量と、抽出した各オブジェクトの画像の特徴量とをそれぞれ比較することにより、画像間の類似度を算出する。例えば、HLAC等を用いて算出した2つの画像の25次元の各特徴量間のユークリッド距離を、2つの画像間の類似度として算出する。そして、抽出部1442は、例えば、類似度が最も高いオブジェクトを、今回のフレームにおける対象オブジェクトであると判定する。
【0094】
なお、オブジェクトの特徴として、画像の特徴量のみならず、オブジェクトの位置も用いてもよい。例えば、画像の特徴量が対象オブジェクトに近く、かつ、オブジェクトの位置が予測された位置に近い程、値が高くなるスコアを用いてもよい。
【0095】
また、オブジェクトの特徴として、視差画像または基準画像におけるオブジェクトの領域の重なり度も用いてもよい。例えば、画像の特徴量が対象オブジェクトに近く、オブジェクトの位置が予測された位置に近く、かつ、視差画像または基準画像におけるオブジェクトの領域の重なり度が高い程、値が高くなるスコアを用いてもよい。
【0096】
次に、
図18を参照し、
図17のオブジェクトトラッキング処理のより詳細な例について説明する。
図18は、オブジェクトトラッキング処理の詳細な一例を示すフローチャートである。
【0097】
ステップS2001において、予測部1441は、3次元位置決定部143により以前の複数のフレームに基づいて決定された対象オブジェクトの1以上の候補の位置に基づき、今回のフレームに対する対象オブジェクトの1以上の候補の各々の位置(予測位置)を予測する。なお、対象オブジェクトの候補については後述する。
【0098】
続いて、抽出部1442は、オブジェクトタイプ分類部142により判定された、対象オブジェクトのオブジェクトタイプを取得する(ステップS2002)。
【0099】
続いて、抽出部1442は、ステップS2001で対象オブジェクトの1以上の候補の各々について予測した位置から、対象オブジェクトのオブジェクトタイプに応じた実距離の範囲内に、今回のフレームに基づいて検出されたオブジェクトが複数存在するか否かを判定する(ステップS2003)。ここで、オブジェクトタイプに応じた範囲は、例えば、オブジェクトタイプが「歩行者」等であれば予測位置を中心とする半径2m以内、「小型車」等であれば予測位置を中心とする半径3m以内の範囲とされてもよい。
図19は、対象オブジェクトのオブジェクトタイプに応じた実距離の範囲について説明する図である。
図19(A)では、対象オブジェクトのオブジェクトタイプが「歩行者」等である場合の、予測位置901aからの実距離の範囲902aの例を示す。
図19(B)では、対象オブジェクトのオブジェクトタイプが「小型車」等である場合の、予測位置901bからの実距離の範囲902bの例を示す。このように、自車両に対する相対速度が比較的大きいと考えられるオブジェクトタイプの場合、予測位置からの実距離の範囲が比較的大きく設定される。
【0100】
複数存在しない場合(ステップS2003でNO)、処理を終了する。この場合、範囲内に存在する1のオブジェクトが、対象オブジェクトと一致するオブジェクトであると判定され、以降のフレームにおいて追跡されてもよい。
【0101】
複数存在する場合(ステップS2003でYES)、抽出部1442は、当該複数のオブジェクトの各々について、対象オブジェクトとの画像の類似度を算出する(ステップS2004)。なお、対象オブジェクトの画像は、以前の複数のフレームの輝度画像または視差画像における対象オブジェクトの領域の画像の平均値を用いてもよい。または、対象オブジェクトが追跡対象とされた際の画像を用いてもよい。
【0102】
続いて、抽出部1442は、当該複数のオブジェクトのうち、対象オブジェクトとの画像の類似度が最も高いオブジェクトを、対象オブジェクトと一致するオブジェクトであると判定する(ステップS2005)。
【0103】
続いて、抽出部1442は、当該複数のオブジェクトのうち、対象オブジェクトとの画像の類似度が高い順に、所定数以下のオブジェクトを、対象オブジェクトと一致するオブジェクトの候補として選択する(ステップS2006)。
これにより、以降のフレームにおいて、対象オブジェクトと一致するオブジェクトの候補についても、ステップS2005で対象オブジェクトと一致すると判定されたオブジェクトと同様に、対象オブジェクトであるか否かの判定対象とされる。そのため、今回のフレームにおいて例えば一時的な光の反射や、一時的に何らかの物体の影に入ったこと等により、画像の類似度が低く算出され、別のオブジェクトが対象オブジェクトとして追跡された場合でも、以降のフレームにおいて、対象オブジェクトを正しく検出できる。
【0104】
<変形例>
次に、
図20を参照し、
図17のオブジェクトトラッキング処理のより詳細な他の例について説明する。
図20は、オブジェクトトラッキング処理の詳細な他の一例を示すフローチャートである。
【0105】
ステップS3001において、予測部1441は、3次元位置決定部143により以前の複数のフレームに基づいて決定された対象オブジェクトの位置に基づき、今回のフレームに対する対象オブジェクトの位置を予測する。
【0106】
続いて、抽出部1442は、ステップS3001で算出した予測位置に基づいて、今回のフレームに対して予想される対象オブジェクトの視差画像内の領域を算出する(ステップS3002)。例えば、抽出部1442は、上述した視差画像の対応領域検出部140と同様の処理により、対象オブジェクトの視差画像内の領域を算出する。
【0107】
続いて、抽出部1442は、ステップS3002で算出した今回のフレームに対して予想される対象オブジェクトの視差画像内の領域と、オブジェクト領域抽出部141により抽出された、今回のフレームにおける各オブジェクトのオブジェクト領域との重なり度をそれぞれ算出する(ステップS3003)。
【0108】
ここで、重なり度は、2つの領域の一致度を示す値であり、例えば、今回のフレームに対して予想される対象オブジェクトの視差画像内の領域の面積をL、今回のフレームにおける一のオブジェクトのオブジェクト領域の面積をKとし、当該2つの領域が重なる領域の面積をMとした場合に、K及びLに対するMの割合としてもよい。この場合、重なり度Wは、例えば、下記の式〔7〕より計算できる。
【0109】
W=M/{(K+L)/2} …式〔7〕
図21は、重なり度について説明する図である。
図21では、今回のフレームに対して予想される対象オブジェクトの視差画像内の領域911と、今回のフレームにおける各オブジェクト912a、912bのオブジェクト領域913a、913bとが重なる領域914a、914bの例が示されている。
【0110】
続いて、抽出部1442は、今回のフレームにおける各オブジェクトのうち、当該重なり度が第1の閾値以上であるオブジェクトが存在するか否かを判定する(ステップS3004)。
【0111】
当該重なり度が第1の閾値以上であるオブジェクトが存在する場合(ステップS3004でYES)、抽出部1442は、当該オブジェクトを、対象オブジェクトと一致するオブジェクトであると判定し(ステップS3005)、処理を終了する。
【0112】
当該重なり度が第1の閾値以上であるオブジェクトが存在しない場合(ステップS3004でNO)、抽出部1442は、今回のフレームにおける各オブジェクトのうち、当該重なり度が第1の閾値よりも低い第2の閾値以上である1以上のオブジェクトを抽出する(ステップS3006)。なお、第2の閾値以上であるオブジェクトが存在しない場合、処理を終了してもよい。この場合、例えば、以降の所定数のフレームにおいて、対象オブジェクトと一致するオブジェクトが検出できない場合、対象オブジェクトをトラッキングの対象から除外してもよい。
【0113】
続いて、抽出部1442は、ステップS3006で抽出した1以上のオブジェクトの各々について、対象オブジェクトとの画像の類似度を算出する(ステップS3007)。
【0114】
続いて、抽出部1442は、当該1以上のオブジェクトのうち、対象オブジェクトとの画像の類似度が所定値以上であり、かつ、ステップS3003で算出した重なり度が最も高いオブジェクトを、対象オブジェクトと一致するオブジェクトであると判定する(ステップS3008)。なお、抽出部1442は、ステップS3008において、例えば、当該1以上のオブジェクトのうち、画像の類似度に、重なり度に応じた重み係数を乗算した値が最も高いオブジェクトを、対象オブジェクトと一致するオブジェクトであると判定してもよい。これにより、重なり度が一定以上のオブジェクトがなく、対象オブジェクトが検出できない状況であったとしても、条件を緩めてオブジェクトの候補を抽出したうえで、異なる条件により対象オブジェクトを検出するため、精度の高いトラッキングを継続できる。
【0115】
なお、
図18と同様に、今回のフレームで選択した対象オブジェクトと一致するオブジェクトの候補を選択し、当該候補についても、以降のフレームにおいて、ステップS3005またはステップS3008で対象オブジェクトと一致すると判定されたオブジェクトと同様に、対象オブジェクトであるか否かの判定対象としてもよい。この場合、例えば、対象オブジェクトとの画像の類似度が所定値以上であり、かつ、ステップS3003で算出した重なり度が高い順に、所定数以下のオブジェクトを、対象オブジェクトと一致するオブジェクトの候補として選択されてもよい。
【0116】
<まとめ>
上述した実施形態によれば、以前のフレームで検出された所定の物体について、今回における当該所定の物体の予測位置が算出される。そして、当該予想位置に応じた条件を満たす複数の物体のうち、前記複数の物体の各画像と、前記所定の物体の画像との類似度に基づいて、前記所定の物体と同一の物体が抽出される。それにより、精度の高いトラッキングを継続できる。
【0117】
なお、距離の値(距離値)と視差値は等価に扱えることから、本実施形態においては距離画像の一例として視差画像を用いて説明しているが、これに限られない。例えば、ステレオカメラを用いて生成した視差画像に対して、ミリ波レーダやレーザレーダ等の検出装置を用いて生成した距離情報を統合して、距離画像を生成してもよい。また、ステレオカメラと、ミリ波レーダやレーザレーダ等の検出装置を併用し、上述したステレオカメラによる物体の検出結果と組み合わせることにより、検出の精度をさらに高める構成としてもよい。
【0118】
上述した実施形態におけるシステム構成は一例であり、用途や目的に応じて様々なシステム構成例があることは言うまでもない。また、上述した各実施形態の一部又は全部を組み合わせることも可能である。
【0119】
例えば、処理ハードウェア部120及び画像解析ユニット102の各機能部の少なくとも一部の処理を行う機能部は、1以上のコンピュータにより構成されるクラウドコンピューティングにより実現されていてもよい。
【0120】
また、上述の実施の形態では、機器制御システム1が自車両100としての自動車に搭載される例について説明したが、これに限定されるものではない。例えば、他の車両の一例としてバイク、自転車、車椅子または農業用の耕運機等の車両に搭載されるものとしてもよい。また、移動体の一例としての車両だけでなく、ロボット等の移動体に搭載されるものとしてもよい。
【0121】
また、処理ハードウェア部120及び画像解析ユニット102の各機能部は、ハードウェアによって実現される構成としてもよいし、CPUが記憶装置に格納されたプログラムを実行することによって実現される構成としてもよい。このプログラムは、インストール可能な形式又は実行可能な形式のファイルによって、コンピュータで読み取り可能な記録メディアに記録されて流通されるようにしても良い。また、上記記録メディアの例として、CD−R(Compact Disc Recordable)、DVD(Digital Versatile Disk)、ブルーレイディスク等が挙げられる。また、このプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、このプログラムを、インターネット等のネットワーク経由で提供または配布するように構成してもよい。