(58)【調査した分野】(Int.Cl.,DB名)
前記第一検出部で設定される前記画像中の第一検出領域は、前記第二検出部で設定される前記画像中の第二検出領域よりも小さいことを特徴とする、請求項6に記載の車両用外界認識装置。
前記第一検出部は、歩行者の脚部形状に基づくパターンマッチ処理を用いて前記画像における前記歩行者の前記第一位置情報を検出し、前記第二検出部は、歩行者の頭部形状に基づくパターンマッチ処理を用いて前記画像における前記移動体の前記第二位置情報を検出することを特徴とする、請求項1に記載の車両用外界認識装置。
【発明を実施するための形態】
【0014】
以下、本発明に係る車両用外界認識装置の実施の形態を図面を参照して説明する。
【0015】
<第一実施の形態>
まず、本発明に係る車両用外界認識装置の第一実施の形態について
図1〜
図16を用いて詳細に説明する。
図1は、第一実施の形態における車両用外界認識装置10のブロック図である。また、
図2は、
図1に示す画像取得部により取得される画像とその画像内に設定される第一検出領域と第二検出領域を模式的に示す模式図である。
【0016】
車両用外界認識装置10は、自動車等の車両に搭載されるカメラ装置内、もしくは統合コントローラ内等に組み込まれ、カメラ装置のカメラ1で撮影した画像から物体を検出するためのものであり、本実施の形態では、自車周囲の物体のうち特に歩行者を検知するように構成されている。
【0017】
車両用外界認識装置10は、CPUやメモリ、I/O等を有するコンピュータによって構成されており、所定の処理がプログラミングされて予め定められた周期Tで繰り返し処理を実行するようになっている。
【0018】
車両用外界認識装置10は、
図1に示すように、画像取得部11と、第一検出部12と、第二検出部13と、第一検出位置補間部14と、距離計測部15と、出力部16と、を備えている。
【0019】
画像取得部11は、
図2に示すように、自車周囲を撮像可能な位置に取り付けられたカメラ1から自車周囲を撮影した画像200を取得してRAM上に記憶する。カメラ1のレンズ歪等の内部パラメータおよび取り付け位置・角度等の外部パラメータは、車両出荷時に行われるキャリブレーションによって予め取得されているものとする。なお、画像200は2次元配列であり、IMGSRC[x][y]で表すものとする。ここで、x、yはそれぞれ画像の座標を示している。
【0020】
第一検出部12は、
図2に示すように、画像取得部11により取得された画像200内に設定された第一検出領域120内から、歩行者に類似したパターンを検出し、その検出結果D1[n]を出力する。この検出結果D1[n]は、検出された歩行者の画像上の座標(SX,SY,EX,EY)を要素とするテーブルの配列であり、nは複数検出された場合のIDを表している。この第一検出部12による処理の詳細は後述する。
【0021】
第二検出部13は、
図2に示すように、画像取得部11により画像200内に設定された第二検出領域130内から、背景と異なる動きを有する移動体を検出し、その検出結果D2[m]を出力する。この検出結果D2[m]は、検出された移動体の画像上の座標(SX,SY,EX,EY)を要素とするテーブルの配列であり、mは複数検出された場合のIDを表している。この第二検出部13による処理の詳細は後述する。
【0022】
なお、たとえば広角カメラを用いて自車の進路を横切る歩行者を検出する場合、画像200の端に映る歩行者100は、レンズ歪によりパターンマッチ処理で検出することが困難である。そのため、第一検出部12で設定される画像200中の第一検出領域120は、第二検出部13で設定される画像200中の第二検出領域130よりも小さい。より具体的には、第一検出部12で設定される画像200中の第一検出領域120は、第二検出部13で設定される画像200中の第二検出領域130よりもレンズ歪の少ない中央付近に設定されている。
【0023】
第一検出位置補間部14は、第二検出部13の検出結果D2[m]を用いて第一検出部12の検出結果D1[n]を補間する第一位置情報補間情報を算出する。この第一検出位置補間部14による処理の詳細は後述する。
【0024】
距離計測部15は、第一検出部12の検出結果D1[n]や第一検出位置補間部14の第一位置情報補間情報を用いて、画像200中で検出された歩行者までの相対距離および相対速度を算出し、その測距結果DR[n]を出力する。この測距結果DR[n]は、検出された歩行者との相対位置(PX,PY)および相対速度(VX,VY)を含み、nは第一検出部12の検出結果D1[n]のnと共通である。この距離計測部15による処理の詳細は後述する。
【0025】
出力部16は、距離計測部15から出力された測距結果DR[n]を当該車両用外界認識装置10の外部に設けられた車両のコントローラや警報装置等の外部機器へ出力する。なお、測距結果DR[n]は、車両用外界認識装置10から外部機器へ直接入力することにより出力してもよいし、LAN(Local Area Network)を用いた通信を行うことにより出力してもよい。
【0026】
以下では、上記した第一検出部12、第二検出部13、第一検出位置補間部14、距離計測部15の処理をより詳細に説明する。
【0027】
[第一検出部]
まず、
図3〜
図8を用いて、第一検出部12における処理内容について説明する。
図3は、第一検出部12の処理フローを説明したフローチャートである。
【0028】
第一検出部12は、まず、ステップS1201にて、画像IMGSRC[x][y]のうち第一検出領域120内の画像からピラミッド画像IMGPY[p][x][y]を生成する。ピラミッド画像IMGPY[p][x][y]はP枚の画像から構成される画像群であり、画像IMGSRC[x][y]を所定の倍率で順次縮小した画像である。本実施の形態においては、ピラミッド画像IMGPY[p][x][y]のp=0における画像は画像IMGSRC[x][y]と同一の画像、p=1における画像はIMGPY[0][x][y]を縮小率0.8で縮小した画像、p=2における画像はIMGPY[1][x][y]を縮小率0.8で縮小した画像、といったように縮小率0.8で順次縮小した画像を格納したものとする。
【0029】
ここで、カメラ1のカメラパラメータに基づいて画像の歪補正を実施してもよい。
【0030】
つぎに、ステップS1202をピラミッド画像IMGPY[p][x][y]についてp=1からp=Pまで繰り返し処理を行う。このステップS1202では、ピラミッド画像IMGPY[p][x][y]に対して識別器を用いたラスタスキャン処理を実施する。ラスタスキャン処理は、
図4Aに示すように、処理画像内で所定サイズのサブウィンドウSWを所定量ずらしながら処理画像全体をスキャンする処理である。本実施の形態では、サブウィンドウSWのサイズを、幅16画素、高さ32画素とする。そして、各位置におけるサブウィンドウSW内の画像に対してパターン認識処理をかける。
【0031】
ここから、サブウィンドウSW内の画像に対するパターン認識処理の例として、以下の2種類のパターン認識手法を用いた処理を説明する。いずれのパターン認識手法を用いてもよいが、本実施の形態においては2つ目のパターン認識手法を用いるものとする。
【0032】
1つ目のパターン認識手法は、ニューラルネットを用いた方法である。具体的には、
図4Bに示すように、まず、あるサブウィンドウSWについて、ピラミッド画像IMGPY[p][x][y]からその領域の画像を切り出す。切り出される画像はグレイスケール値のみでもよいし、カラー情報を含んでいてもよい。ここでは、グレイスケール値のみを切り出した場合を説明する。つぎに、切り出された画像の画素をラスタスキャンして、1次元ベクトル402を生成し、それをニューラルネットワーク403への入力とする。ニューラルネットワーク403は人間の脳のネットワークを模擬したものであり、複数のノードで構成される入力層4031、中間層4033、出力層4035が存在し、さらに入力層4031の各ノードと中間層4033の各ノードの間には重み係数4032が、中間層4033の各ノードと出力層4035の各ノードの間には重み係数4034がそれぞれ存在する。ニューラルネットワーク403の出力は出力層のノードの1つの値であり、この値は、このノードに接続されているすべての中間層4033のノードの値とその重み係数の積和演算により得られる。さらに、中間層4033の各ノードの値は、各ノードに接続されているすべての入力層4031のノードの値とその重み係数の積和演算により得られる。
【0033】
歩行者パターン検出では、1次元ベクトル402がそのまま入力層4031へ接続されているため、出力層4035の各ノードの値は上述の処理により算出される。その結果、出力層4035の所定のノードの値が閾値を超えていれば歩行者パターンが存在すると判定される。なお、出力層4035の所定のノードはプログラムを組む際に事前に決定しておく必要があり、入力ノードに歩行者パターンが入ってきた場合にはその出力層4035のノードの出力が閾値以上になり、歩行者以外のパターンが入ってきた場合にはその出力が閾値以下となるように、各ノード間の重み係数は予め調整しておく必要がある。この各ノード間の重み係数の調整方法は、公知技術であるバックプロパゲーション法などを用いればよい。
【0034】
2つ目のパターン認識手法は、輝度勾配を用いた方法である。本実施の形態においては、
図5〜
図7を用いて説明するパターン認識手法を適用する。本認識手法は、歩行者検出に有効な手法として知られているHOG(Histogram of Oriented Gradients)を改良したものである。
図5は、本パターン認識手法の処理フローを説明したフローチャートであり、
図6は、
図5に示すパターン認識手法のセルへの分割方法を模式的に説明した説明図である。
【0035】
まず、ステップS201にて、あるサブウィンドウSW内の画像をセル(CELL)と呼ばれる小領域へ分割し、各セルに属する画素から輝度勾配を算出する。すなわち、
図6に示すように、パターン認識を実施する画像領域全体を複数のセルへ分割する。なお、本実施の形態においては、処理画像領域を横3、縦6へ分割する。
【0036】
そして、各セルに属する画素から輝度勾配を算出した後、各セルで輝度勾配ヒストグラムを生成する。従来のHOGにおける輝度勾配ヒストグラムは、0〜180[deg]もしくは0〜360[deg]を所定個数に分割(例えば8分割)したヒストグラムH[b]を準備し、そのすべてをゼロに初期化しておく。そして、セル内の各画素についてSOBELフィルタ等を適用してX方向、Y方向の輝度変化(dX,dY)を求め、X方向およびY方向の変化量から輝度変化の強度と角度(G,θ)を算出し、角度θに対応するヒストグラムの位置bに対して強度Gを投票する。この投票を、セル内のすべての画素について実施して得られるヒストグラムH[b]が輝度勾配ヒストグラムである。
【0037】
一方、本実施の形態における改良型のHOGにおいては、上記した投票処理が従来のHOGと異なる。その投票処理を、
図7を用いて2種類説明する。
【0038】
まず、輝度勾配ヒストグラムの勾配方向について、方向のみを考慮した場合、すなわち0〜180[deg]で考慮した場合について説明する。この場合、輝度勾配ヒストグラムは4分割とし,H[1]〜H[4]の1次元配列で表現するものとする。セル内のある画素とその周囲の8つの近傍画素にそれぞれ
図7に示すようにp0(注目画素)とp1〜p8(周辺画素)の記号を割り振ると、以下の式(1)を用いて4つの値を算出する。
【0039】
[数1]
d15=|P1−P5|
d26=|P2−P6|
d37=|P3−P7|
d48=|P4−P8| ・・・(1)
【0040】
そして、d15を輝度勾配ヒストグラムのH[1]へ、d26をH[2]へ、d37をH[3]へ、d48をH[4]へそれぞれ投票する。以上の投票処理をセル内のすべての画素について実施する。
【0041】
つぎに、輝度勾配ヒストグラムの勾配方向について、方向および向きを考慮した場合、すなわち0〜360[deg]とした場合について説明する。この場合、輝度勾配ヒストグラムは8分割とし、H[1]〜H[8]の1次元配列で表現するものとする。上記の場合と同様に、セル内のある画素とその周囲の8つの近傍画素にそれぞれ
図7に示すようにp0とp1〜p8の記号を割り振ると、以下の式(2)を用いて8つの値を算出する。
【0042】
[数2]
d1=MAX(0、p1−p0)
d2=MAX(0、p2−p0)
d3=MAX(0、p3−p0)
d4=MAX(0、p4−p0)
d5=MAX(0、p5−p0)
d6=MAX(0、p6−p0)
d7=MAX(0、p7−p0)
d8=MAX(0、p8−p0) ・・・(2)
【0043】
そして、d1を輝度勾配ヒストグラムのH[1]へ、d2をH[2]へ、d3をH[3]へ、d4をH[4]へ、d5をH[5]へ、d6をH[6]へ、d7をH[7]へ、d8をH[8]へ、それぞれ投票する。以上の投票処理をセル内のすべての画素について実施する。
【0044】
つぎに、第一検出部12は、
図5に示すように、ステップS202にて、複数のセルから成る各ブロック(BLOCK)について、各セルで算出された輝度勾配ヒストグラムを連結した1次元ベクトルを生成してノルムを正規化する。たとえば2セル×2セルというブロックを形成し、1つのセルが複数のブロックに跨るように当該ブロックは設定される。
【0045】
つぎに、ステップS203にて、各ブロックの正規化した1次元ベクトルを連結して特徴ベクトルを生成する。
【0046】
つぎに、ステップS204にて、特徴ベクトルをSVM(Support Vector Machine)へ入力して評価値を得る。SVMは公知の技術であるためその詳細な説明は割愛するが、SVMを用いて識別を実施するためには、事前に検出対象とする歩行者と歩行者以外の背景の画像データから上記特徴量を生成し、SVMを学習する必要がある。特徴ベクトルは、その次元数の空間(特徴空間)における1点として表されるが、SVMの学習においては、特徴空間内における学習データの歩行者と背景の分布の最も境界となるデータ(Support Vector:サポートベクター)の中間に識別の超平面を生成する。この識別の処理では、未知のデータが入ってきたときに、その超平面に基づいて、どちらに近いかに応じて評価値を出力する。この評価値が閾値以上であれば歩行者と判断し、そうでなければ背景と判断する。
【0047】
以上説明したように、従来の算出方法であれば、上記した特徴量の算出時に、各セルへの投票処理の際に、X方向およびY方向の輝度変化(dX,dY)から輝度変化の強度と角度(G,θ)を算出し、角度θに対応するヒストグラムの位置bに対して強度Gを投票するため、1画素につき1回の投票しかできない。一方、上述した本実施の形態のパターン認識手法によると、1画素につき4回や8回の投票機会が得られるため、輝度勾配ヒストグラムの密度を高めることができる。特に、自車から離れた位置に存在する歩行者は画像上で小さく映るために解像度が低い。よって、従来の算出手法を適用すると1つのセルに属する画素数が減り、輝度勾配ヒストグラムが疎となるために識別性能が過敏(センシティブ)となる。一方、上述した本実施の形態のパターン認識手法によると、1画素からの投票機会が増加するため、輝度勾配ヒストグラムの密度が向上して物体の識別性能を向上させることができる。
【0048】
なお、上述した手法では、1つのセルへの投票において、輝度差をそのまま投票値としていたが、輝度差に対して閾値THを設定し、該当する輝度勾配ヒストグラムへの投票値を、輝度差が閾値THよりも大きければ1、輝度差が閾値TH以下であれば0としてもよい。さらに、複数の閾値TH1、TH2(TH1<TH2)を設定し、輝度差が閾値TH1よりも小さければ投票値を0、閾値TH1以上かつ閾値TH2未満であれば投票値を1、閾値TH2以上であれば投票値を2とするように、多段階に設定してもよい。
【0049】
また、上述した手法はHOG特徴量に対して適用したが、1つのセルに対する投票部分を上述した手法に置き換えることで、HOGをベースとする他の手法へも本手法を適用可能である。以下、HOGをベースとする公知技術の1つであるCoHOGに適用する場合の処理の流れを説明する。
【0050】
まず、HOGと同様に、処理画像を複数の小領域に分割する。
【0051】
つぎに、小領域内のある注目画素に対し、上述した式(2)のd1〜d8の輝度差を算出する。そして、注目画素のd1〜d8の輝度差が閾値THよりも大きければ1、そうでなければ0を、対応するba1〜ba8へ格納する。
【0052】
つづいて、注目画素から所定距離の参照画素において、同様に式(2)のd1〜d8の輝度差を算出する。そして、参照画素のd1〜d8の輝度差が閾値THよりも大きければ1、そうでなければ0を、対応するbb1〜bb8へ格納する。
【0053】
つぎに、共起ヒストグラムの投票処理を行う。共起ヒストグラムは、8×8の2次元ヒストグラムであり、H[1][1]〜H[8][8]の2次元配列で表現するものとする。注目画素のba1と参照画素のbb1がともに1であれば、要素H[1][1]に1を投票する。一方、注目画素のba1と参照画素のbb1のいずれか一方が0であれば、投票しない。以上の処理を、注目画素のba1〜ba8、参照画素のbb1〜bb8のすべての組み合わせに対して計64回実施する。
【0054】
つづいて、注目画素はそのままにして、参照画素を変更し、参照画素ごとに別途準備した共起ヒストグラムへ投票を行う。以上の処理を、参照画素30点に対して実施し、30個の共起ヒストグラムに投票処理を行う。
【0055】
さらに、要素が8つのヒストグラムを用意し、参照画素のba1〜ba8を対応するヒストグラムのBINへ投票する。
【0056】
上記の処理を、1つの小領域内のすべての画素に対して実施する。その結果、1つの小領域から30個の共起ヒストグラム、および、1個のヒストグラムが得られることとなり、(64×30+8)次元の特徴量が得られる。この特徴量をすべての小領域から算出してベクトル化したものを特徴ベクトルとする。
【0057】
特徴ベクトルに対する識別処理は、HOGと同様にSVMを用いるため、その説明は割愛する。
【0058】
さらに、上述したCoHOGへ拡張した方法において、複数の閾値TH1、TH2(TH1<TH2)を設定し、輝度差が閾値TH1よりも小さければ投票値を0、閾値TH1以上かつ閾値TH2未満であれば投票値を1、閾値TH2以上であれば投票値を2とするように、多段階に設定してもよい。この場合、注目画素のd1〜d8の輝度差と閾値TH1、TH2から算出されるba1〜ba8は0、1、2の3値を持ち、参照画素のbb1〜bb8も同様に、0、1、2の3値となるため、共起ヒストグラムへの投票値はその積とする。たとえばba1とbb1の共起を取る場合、投票値はba1×bb1とし、0、1、2、4のいずれかを投票する。
【0059】
以上で説明したように、CoHOG特徴量において上述したような方法にて特徴量を取ることにより、1画素からの投票機会を増加させることができ、共起ヒストグラムの密度が向上し、識別性能を向上させることができる。
【0060】
なお、上述した手法では、輝度差d1〜d8を、閾値を用いて0、1、あるいは2へ変換して投票しているが、輝度差そのものを投票に用いてもよい。
【0061】
また、上述したHOGの拡張とCoHOGの拡張のいずれにおいても、今回は注目画素の8つの近傍画素からd1〜d8を計算して8方向のヒストグラムを扱ったが、例えば8つの近傍画素のさらに外側の21つの近傍画素に対して同様の処理を実施してもよい。
【0062】
第一検出部12は、上記したパターン認識手法で得られた歩行者の検出結果をD1C[p][q]へ格納する。ここで、D1Cは画像上の検出位置座標(SX,SY,EX,EY)を表している。なお、この検出位置座標は、ピラミッド画像生成時の縮小率に基づいて画像IMGSRC[x][y]上の座標へ変換される。以上のステップS1202での処理を、p=1からp=Pまで繰り返し処理を行う。
【0063】
つぎに、第一検出部12は、
図3に示すように、ステップS1203にて、ラスタスキャン処理の検出結果を統合する。この統合方法は、種々の公知技術が存在するため、ここではその詳細な説明を割愛するが、本実施の形態においては、たとえばMeanShift(平均値シフト法)と呼ばれる公知技術を使用する。そして、その統合結果をD1M[r]へ格納する。ここで、D1Mは画像上の検出位置座標(SX,SY,EX,EY)を表している。
【0064】
つぎに、ステップS1204にて、検出・統合した結果の検証処理を実施する。この検証処理は、パターン認識処理で排除できない、歩行者に類似したパターン(たとえば、電柱、ガードレール等)に対する誤認識を排除する処理である。この検証処理については、種々の公知技術が存在するため、ここではその詳細な説明を割愛するが、本実施の形態においては、たとえば特開2011−154580号公報に記載された方法を用いることとする。この検証処理の結果、歩行者ではないと判定された場合にはそのパターンをD1M[r]から削除する。
【0065】
つぎに、ステップS1205にて、追跡処理を実施し、検証処理により歩行者であると判定されたD1M[r]と、その1周期前の結果であるD1_Z1[n]の対応付けを行う。
【0066】
図8は、上記した追跡処理フローを説明したフローチャートである。
【0067】
まず、第一検出部12は、ステップS101において、今回の検出結果D1[n]を初期化する。つぎに、ステップS102において、1周期前(前回)の検出結果D1_Z1[n]を取得し、ステップS103において、今回の検出結果D1M[r]を取得する。
【0068】
つぎに、ステップS104において、1周期前の検出結果D1_Z1[n]と今回の検出結果D1M[r]の対応付けを行う。この対応付けは、1周期前の検出結果D1_Z1[n]と今回の検出結果D1M[r]の領域(矩形領域)を1つずつ比較して所定の評価値を算出し、その評価値が所定の閾値以上であれば対応がとれたものと判断し、閾値以下であれば対応がとれなかったものと判断する。ここで、評価値としては、たとえば、矩形内の画像そのものの相関値を用いる方法や矩形の重複率を用いる方法等、種々の方法が存在するがいずれを用いてもよい。本実施の形態においては、1周期前の検出結果D1_Z1[n]から予測位置D1_ZP[n]を算出し、予測位置D1_ZP[n]と今回の検出結果D1M[r]から得られる矩形の重複率OVRを使用して、重複率OVRが閾値を超えたものについて対応付けがとれたと判定する。なお、予測位置D1_ZP[n]は、1周期前の検出結果D1_Z1[n]と2周期前の検出結果D1_Z2[n]から移動量を求め、その量を1周期前の検出結果D1_Z1[n]へ加算したものである。また、矩形の重複率OVRは、予測位置D1_ZP[n]の矩形を(SXP,SYP,EXP,EYP)とし、今回の検出結果D1M[r]の矩形を(SXM,SYM,EXM,EYM)とした場合に、以下の式(3)により共通矩形(SXC,SYC,EXC,EYC)を算出することで求められる。
【0069】
[数3]
SXC=MAX(SXP,SXM)
SYC=MAX(SYP,SYM)
EXC=MIN(EXP,EXM)
EYC=MIN(EYP,EYM)
AP=(EXP−SXP)×(EYP−SYP)
AM=(EXM−SXM)×(EYM−SYM)
AC=(EXC−SXC)×(EYC−SYC)
OVR=(2AC)/(AP+AM) ・・・(3)
【0070】
つぎに、ステップS105において、予測結果D1_ZP[n]と今回の検出結果D1M[r]で対応がとれたものについて、今回の検出結果D1[n]の物体IDがnの位置に今回の検出結果D1M[r]を登録する。
【0071】
つぎに、ステップS106において、今回の検出結果D1M[r]のうち、予測結果D1_ZP[n]と対応が取れなかった結果を新規検出物体として新規に登録する。この登録は、今回の検出結果D1[n]のうち情報が登録されていないnの位置に今回の検出結果D1M[r]を登録することで行われる。
【0072】
以上のような追跡処理を実施することにより、一度検出した物体(歩行者)が消失するまで同じIDを持つことになり、情報の追跡性が向上する。また、新規物体を登録する際、過去数周期まで物体が存在したnには登録しないようにすることで、ある物体が消失してすぐに別の物体が登録されることを抑止することができる。なお、この追跡処理の結果、パターンマッチ処理による歩行者パターン検出結果が第一検出結果(第一位置情報)D1[n]として出力される。
【0073】
[第二検出部]
つぎに、
図9を用いて、第二検出部13における処理内容について説明する。
図9は、第二検出部13の処理フローを説明したフローチャートである。
【0074】
第二検出部13は、まず、ステップS1301にて、画像IMGSRC[x][y]および1周期前の画像IMGSRC_Z1[x][y]の第二検出領域130内からオプティカルフローを算出する。このオプティカルフローは、一方の画像のある座標(x,y)の点が他方の画像のどの点に移動したかを表すベクトルであり、1つの画像座標(x,y)に対してX方向成分とY方向成分が算出される。本実施の形態においては、画像IMGSRC[x][y]の各画素が1周期前の画像IMGSRC_Z1[x][y]のどの位置(画素)に対応するかを算出する。
【0075】
上記したオプティカルフローの算出方法は種々紹介されており、そのいずれの算出手法を用いてもよいが、本実施の形態ではブロックマッチ法を用いることとする。ブロックマッチ法については、画像処理に関する公知の文献に記載されているため、その詳細な説明は割愛するが、たとえば、画像IMGSRC[x][y]上の点(xn,yn)を中心に小領域のテンプレート画像TPを作成し、そのテンプレート画像TPが1周期前の画像IMGSRC_Z1[x][y]内で最もよくマッチする位置(xn’,yn’)を探索し、そのX方向成分OFX[n]=(x1’−x1)とY方向成分OFY[n]=(yn’−yn)を算出する方法である。なお、画像IMGSRC[x][y]と対応をとる画像は、1周期前の画像IMGSRC_Z1[x][y]に限定されず、任意の周期前の画像であってもよい。
【0076】
つぎに、ステップS1302にて、オプティカルフローから移動体フロー抽出画像MVOBJ[x][y]を生成する。
【0077】
具体的には、まず、移動体フロー抽出画像MVOBJ[x][y]にすべてゼロを入力して初期化する。つぎに、最新の取り込み画像IMGSRC[x][y]上の点(xn,yn)の位置が1周期前の画像上でどの位置にあるかを予測して予測フローを算出する。本実施の形態では、自車が直進していると仮定すると、その予測フローは、まず、消失点とカメラ幾何から、座標(xn,yn)が路面上の点と仮定して世界座標(Xn,Yn,0)を求め、自車速VSPと処理周期Tから移動量P=VSP×Tを算出して予測位置(Xn,Yn+P,0)を求め、予測位置(Xn,Yn+P,0)の画像座標位置(xnp,ynp)を算出し、これにより、予測フローは、PFX=(xnp−xn),PFY=(ynp−yn)となる。
【0078】
つぎに、予測フローPFX,PFYと、上記したOFX[n],OFY[n]の誤差eを求める。本実施の形態では、誤差eはフローベクトル間のユークリッド距離とし、以下の式(4)により求められる。
【0079】
[数4]
e=(OFX[n]―PFX)^2+(OFY[n]―PFY)^2 ・・・(4)
【0080】
つぎに、誤差eと閾値thを比較し、誤差eが閾値thよりも大きければ移動体フローと判定して移動体フロー抽出画像MVOBJ[xn][yn]に「1」を代入する。以上の処理を第二検出領域130内の全点に対して実施することにより、移動体フロー抽出画像MVOBJ[x][y]が生成される。
【0081】
つぎに、第二検出部13は、ステップS1303にて、移動体フロー抽出画像MVOBJ[x][y]をグルーピングする。本実施の形態においては、そのグルーピングは、移動体フロー抽出画像MVOBJ[x][y]に対してラベリング処理を施すことにより実施する。ラベリング処理の結果は、移動体検出結果として第二検出部13の検出結果D2M[m]へ矩形情報(SX,SY,EX,EY)として登録する。
【0082】
つぎに、ステップS1304にて、追跡処理を実施する。この追跡処理は、
図8を用いて説明した第一検出部12の処理内容と同一であるため、ここではその詳細な説明を割愛する。なお、この追跡処理の結果、オプティカルフローによる移動体検出結果が第二検出結果(第二位置情報)D2[m]として出力される。
【0083】
なお、上記した実施の形態では、移動体フロー抽出画像MVOBJ[x][y]を1枚しか用いていないが、たとえば移動方向別に移動体フロー抽出画像MVOBJ[x][y]を複数準備してもよい。
【0084】
また、上述した説明では、自車が直進していると仮定したが、例えばデッドレコニング法を使用し、左右の車輪速値から自車の前後方向、左右方向、および旋回方向の速度を求めて、上記予測に用いてもよい。
【0085】
[第一検出位置補間部]
つぎに、
図10〜
図13を用いて、第一検出位置補間部14における処理内容について説明する。
図10は、第一検出位置補間部14の処理フローを説明したフローチャートである。
【0086】
第一検出位置補間部14は、まず、ステップS141にて、第一検出部12から出力された第一検出結果D1[n]と第二検出部13から出力された第二検出結果D2[m]の同一物体対応付けを行う。
図11はこの同一物体対応付け処理の処理フローを説明したフローチャートである。
【0087】
まず、第一検出結果D1[n]について、n=1からNまでの繰り返し処理を実施する。ここで、第一検出結果D1[n]は追跡処理の結果、情報が抜けている部分が存在するため、その処理は第一検出結果D1[n]の確保領域全体に対して実施し、そこに情報が格納されている場合のみ、以下の処理を実施する。
【0088】
つぎに、第二検出結果D2[m]について、m=1からMまでの繰り返し処理を実施する。第一検出結果D1[n]と同様に、第二検出結果D2[m]は追跡処理の結果、情報が抜けている部分が存在するため、その処理は第二検出結果D2[m]の確保領域全体に対して実施し、そこに情報が格納されている場合のみ、以下の処理を実施する。
【0089】
第一検出位置補間部14は、ステップS1411にて、第一検出結果D1[n]と第二検出結果D2[m]の一致度MATCHを算出する。本実施の形態において、一致度MATCHは、上記した追跡処理で説明した重複率OVRの算出方法と同様の方法を用いて求められるため、その詳細な説明は割愛する。
【0090】
つぎに、ステップS1412にて、一致度MATCHが閾値TH_MATCHを超えたか否かを判定する。一致度MATCHが閾値TH_MATCHを超えた場合は、ステップS1413へ移動し、第一検出結果D1[n]と第二検出結果D2[m]は同一物体であると判定する。
【0091】
上記した処理をm=1からMまで繰り返し実行し、さらに、n=1からNまで繰り返し実行する。以上の処理により、第一検出部12から出力された第一検出結果D1[n]と第二検出部13から出力された第二検出結果D2[m]のうち同一物体(すなわち、同一の歩行者)からの検出結果が判明する。
【0092】
つぎに、第一検出位置補間部14は、
図10に示すように、ステップS142にて、第二検出結果D2[m]を用いた第一検出結果D1[n]の補間処理(現在位置補間処理)を実施する。
図12はこの現在位置補間処理の処理フローを説明したフローチャートである。
【0093】
まず、第二検出結果D2[m]について、m=1からMまでの繰り返し処理を実施する。ここで、第二検出結果D2[m]は追跡処理の結果、情報が抜けている部分が存在するため、その処理は第二検出結果D2[m]の確保領域全体に対して実施し、そこに情報が格納されている場合のみ、以下の処理を実施する。
【0094】
第一検出位置補間部14は、ステップS1421にて、第二検出結果D2[m]と同一物体と判定された第一検出結果D1[n’]の有無を確認する。第二検出結果D2[m]と同一物体と判定された第一検出結果D1[n’]が存在しない場合はステップS1422へ移動し、第二検出結果D2[m]と同一物体と判定された第一検出結果D1[n’]が存在する場合はステップS1422、S1423をスキップする。
【0095】
つぎに、ステップS1422にて、第二検出結果D2[m]の過去情報D2_Z[m]を参照し、その過去情報D2_Z[m]と対応した第一検出結果の過去情報D1_Z[n’]の存在の有無を確認する。ここで、過去情報は1周期前のみに限定されず、数周期前の過去情報を用いてもよい。過去情報D2_Z[m]と対応した過去情報D1_Z[n’]が存在する場合はステップS1423へ移動し、過去情報D2_Z[m]と対応した過去情報D1_Z[n’]が存在しない場合はS1423をスキップする。
【0096】
つぎに、ステップS1423にて補間処理、具体的には第一検出結果D1[n]の現在位置補間処理を行う。ステップS1423に到達する場合、過去にD1_Z[n’]とD2_Z[m]にて同一物体として検知されたものの、現在の第一検出部12ではその物体を検知していないが、第二検出部31ではその物体を検知・追跡していることになる。よって、現在の第二検出結果D2[m]の矩形情報を(SX2、SY2,EX2,EY2)、過去情報D1_Z[n’]、D2_Z[m]の矩形情報をそれぞれ(SX1_Z、SY1_Z,EX1_Z,EY1_Z)、(SX2_Z、SY2_Z,EX2_Z,EY2_Z)とすると、以下の式(5)により、第一検出結果と第二検出結果の過去の位置関係から現在の第一検出結果D1[n’]を推測することができる。
【0097】
[数5]
SX1P=(SX1_Z−SX2_Z)+SX2
SY1P=(SY1_Z−SY2_Z)+SY2
EX1P=(EX1_Z−EX2_Z)+EX2
EY1P=(EY1_Z−EY2_Z)+EY2 ・・・(5)
【0098】
上記の演算により得られる矩形情報(SX1P,SY1P,EX1P,EY1P)を、第一検出結果を補間する第一位置情報補間情報D1[n’]としてD1[n]内へ登録する。このとき、上述したように、第一検出部12の追跡処理により、同じ物体を同じIDへ登録するようにしているため、n=n’へ登録すればよい。上記した処理をm=1からMまで繰り返し実行する。
【0099】
つぎに、第一検出位置補間部14は、
図10に示すように、ステップS143にて、第二検出結果D2[m]を用いた第一検出結果D1[n]の過去位置の補間処理(過去位置補間処理)を実施する。
図13はこの過去位置補間処理の処理フローを説明したフローチャートである。
【0100】
まず、第一検出結果D1[n]について、n=1からNまでの繰り返し処理を実施する。ここで、第一検出結果D1[n]は追跡処理の結果、情報が抜けている部分が存在するため、その処理は第一検出結果D1[n]の確保領域全体に対して実施し、そこに情報が格納されている場合のみ、以下の処理を実施する。
【0101】
第一検出位置補間部14は、ステップS1431にて、第一検出結果D1[n]が新規検出結果であるか否かを判定する。第一検出結果D1[n]が新規検出物体であれば、ステップS1432へ移動し、第一検出結果D1[n]が新規検出物体でなければ以下のステップS1432〜S1434の処理をスキップする。
【0102】
つぎに、ステップS1432にて、第一検出結果D1[n]と同一物体と判定されたD2[m’]の有無を確認する。第一検出結果D1[n]と同一物体と判定されたD2[m’]が存在する場合はステップS1433へ移動し、第一検出結果D1[n]と同一物体と判定されたD2[m’]が存在しない場合は以下のステップS1433、S1434の処理をスキップする。
【0103】
つぎに、ステップS1433にて、第一検出結果D1[n]と同一物体と判定されたD2[m’]に過去情報D2_Z[m’]が存在するかを確認し、過去情報D2_Z[m’]存在すればステップS1434へ移動し、過去情報D2_Z[m’]が存在しなければステップS1434の処理をスキップする。
【0104】
つぎに、ステップS1434にて、第一検出結果D1[n]の過去情報の補間処理(過去位置補間処理)を行う。ステップS1434に到達する場合、第一検出結果D1[n]は新規検出物体であるものの、第一検出結果D1[n]と同一物体と判定されたD2[m’]には過去情報D2_Z[m’]が存在する。よって、現在の第一検出結果D1[n]、第二検出結果D2[m’]の矩形情報をそれぞれ(SX1,SY1,EX1,EY1)、(SX2、SY2,EX2,EY2)とし、過去情報D2_Z[n]の矩形情報を(SX2_Z、SY2_Z,EX2_Z,EY2_Z)とすると、以下の式(6)により、第一検出結果と第二検出結果の現在の位置関係から過去の第一検出結果D1[n’]を推測することができる。
【0105】
[数6]
SX1_ZP=(SX1−SX2)+SX2_Z
SY1_ZP=(SY1−SY2)+SY2_Z
EX1_ZP=(EX1−EX2)+EX2_Z
EY1_ZP=(EY1−EY2)+EY2_Z ・・・(6)
【0106】
上記の演算により得られる矩形情報(SX1_ZP,SY1_ZP,EX1_ZP,EY1_ZP)を、第一検出結果を補間する第一位置情報補間情報としての第一検出結果D1[n]の過去情報(過去位置)として登録する。この過去情報は、D2[m]よりも1周期前の過去情報D1_Z1[n’]、2周期前の過去情報D1_Z2[n’]等、D2[m]の過去値が存在する限り補間することができる。なお、本実施の形態においては、最大で10周期前までを補間するように配列を確保し、D2[m]の過去値が10周期以下である場合はその周期分、D2[m]の過去値が10周期よりも多い場合は10周期分まで補間する。上記した処理をn=1からNまで繰り返し実行する。
【0107】
[距離計測部]
つぎに、
図14を用いて、距離計測部15における処理内容について説明する。
図14は、距離計測部15の処理フローを説明したフローチャートである。ここで、距離計測部15は、画像上の物体(歩行者)との相対速度や相対距離の算出に適した第一検出部12の第一検出結果D1[n]に基づいてその物体との相対速度や相対距離を算出するようになっている。
【0108】
距離計測部15は、まず、第一検出結果D1[n]について、n=1からNまでの繰り返し処理を実施する。ここで、第一検出結果D1[n]は追跡処理の結果、情報が抜けている部分が存在するため、その処理は第一検出結果D1[n]の確保領域全体に対して実施し、そこに情報が格納されている場合のみ、以下の処理を実施する。
【0109】
距離計測部15は、ステップS1501にて、第一検出部12から出力された第一検出結果D1[n]が新規検出物体であるか否かを判定する。第一検出結果D1[n]が新規検出物体であればステップS1502へ移動し、第一検出結果D1[n]が新規検出物体でなければステップS1503へ移動する。
【0110】
つぎに、ステップS1502にて、第一検出結果D1[n]の過去値に補間処理があるか否かを判定する。過去値に補間処理があればステップS1504へ移動し、過去値に補間処理がなければステップS1503へ移動する。
【0111】
第一検出結果D1[n]が新規検出物体でない場合や過去値に補間処理がない場合、ステップS1503にて、第一検出部12から出力された第一検出結果(現在値)D1[n]を用いて物体(歩行者)との相対距離および相対速度を算出する。第一検出結果D1[n]の矩形情報(SX1,SY1,EX1,EY1)から自車と物体との相対距離を算出する方法は、カメラパラメータが既知という条件下であれば種々の方法が存在する。たとえば、歩行者の身長や幅を仮定し、カメラパラメータと画像上の高さや幅から相対距離を算出する方法がある。また、矩形情報の下端中央の画像座標(すなわち、接地座標)とカメラパラメータから相対距離を算出する方法がある。さらに、矩形情報内から歩行者の足元(すなわち、接地座標)を検出し、検出された座標とカメラパラメータを用いて相対距離や相対速度を算出する方法がある。本実施の形態では、たとえば、矩形情報の下端中央の画像座標(すなわち、接地座標)とカメラパラメータから算出する方法を用いて自車の車両先端中央から物体(歩行者)までの相対位置(PX,PY)を測定する。
【0112】
一方、第一検出結果D1[n]が新規検出物体である場合且つ過去値に補間処理がある場合、ステップS1504にて、第一検出結果D1[n]および第一位置情報補間情報としての第一検出結果D1[n]の過去値D1_Z[n]を用いて物体(歩行者)との相対距離および相対速度を算出する。過去値D1_Z[n]を用いた算出方法では、過去の全地点においてステップS1503と同様の距離計測を実施し、得られた相対位置(PX,PY)をすべて(PX_Z1,PY_Z1)、(PX_Z2,PY_Z2)等として保存する。
【0113】
つぎに、ステップS1505にて、物体(歩行者)との相対速度の算出およびフィルタリング処理を行う。相対速度は、周期毎に算出する相対位置(PX,PY)の差分により求められ、その後に平滑化のためのフィルタリング処理が実施される。このとき、ステップS1504を介して過去値が存在する場合は、存在する最も過去の値から相対速度およびフィルタリング処理を再計算して現在値を算出する。あるいは、上記した相対位置(PX,PY)に対してカルマンフィルタ処理を実施する。このカルマンフィルタ処理は公知の技術であるため、その詳細な説明は割愛するが、観測値を相対位置(PX,PY)とし、内部状態として少なくとも相対位置(PX,PY)および相対速度(VX,VY)を入れるように設定することで、カルマンフィルタ処理により相対位置および相対速度を平滑化しながら求めることができる。上記した処理をn=1からNまで繰り返し実行する。
【0114】
なお、距離計測部15で算出された物体(歩行者)との相対距離や相対速度は、出力部16を介して外部に設けられた車両のコントローラや警報装置等の外部機器へ出力される。
【0115】
[第一実施の形態の作用効果]
以上で説明した第一実施の形態における車両用外界認識装置10の作用効果について、
図15A〜
図16を用いて説明する。
図15Aは、車両用外界認識装置10を用いて自車前方を横切る歩行者を検出した場合の、処理タイミングにおける第一検出部12及び第二検出部13による検出の有無の一例を模式的に示す模式図であり、
図15Bは、処理タイミングにおける、第一検出部12及び第二検出部13による検出の有無と距離計測部15による処理方法の一例を説明した説明図である。なお、
図15B中、第一検出部12および第二検出部13の列では、物体(歩行者)の位置情報を検出できた場合に丸(○)、検出できなかった場合にバツ(×)を記載している。また、距離計測部15の列では、物体(歩行者)との相対距離の計測を実施しなかった場合にバツ(×)、第一検出結果(現在値)D1[n]を用いて相対距離の計測を実施した場合(
図14のステップS1503参照)に丸(○)、第一検出結果D1[n]および第一検出結果を補間する第一位置情報補間情報を用いて相対距離の計測を実施した場合(
図14のステップS1504参照)に二重丸(◎)を記載している。
【0116】
図15Aに示すように、歩行者が時間T1からT7までに亘って自車前方を横切った例において、第一検出部12では、時間T3〜T5と時間T7でその歩行者を検出し、第二検出部13では、時間T1からT7でその歩行者を検出したとする。このとき、本第一実施の形態の車両用外界認識装置10は、まず時間T3において、第一検出位置補間部14により第一検出結果D1[n]の過去値の補間処理(過去位置補間処理)を行う。すなわち、
図15Cに示すように、時間T3における第一検出結果D1[n]と第二検出結果D2[m]の相対的な位置関係に基づいて、時間T1、T2における第一検出結果(時間T1、T2において第一検出部12にて検出されなかった物体(歩行者)の位置情報)を補間し、時間T3における物体との相対位置や相対速度を再計算する。
【0117】
また、本第一実施の形態の車両用外界認識装置10は、時間T6において、第一検出位置補間部14によって第一検出結果D1[n]の補間処理(現在位置補間処理)を行う。すなわち、
図15Dに示すように、時間T6における第一検出位置D1[n]を、時間T5における第一検出結果D1[n]と第二検出結果D2[m]の相対的な位置関係と、時間T6における第二検出結果D2[m]に基づいて補間し、時間T6における物体との相対位置や相対速度を計算する。
【0118】
なお、時間T7における第一検出結果D1[n]と第二検出結果D2[m]の相対的な位置関係に基づいて、時間T6における第一検出位置D1[n](時間T6において第一検出部12にて検出されなかった物体(歩行者)の位置情報)を補間してもよい。
【0119】
図16は、
図1に示す車両用外界認識装置10による歩行者の横移動速度の計測結果とパターンマッチ処理のみによって計測した場合の歩行者の横移動速度の計測結果の一例を示す図である。
図16中、縦軸が歩行者の横方向の相対的な移動速度、横軸が時間であり、図中の破線が歩行者の横移動速度の真値、実線が本第一実施の形態における車両用外界認識装置10で算出した場合の歩行者の横移動速度、一点鎖線がパターンマッチ処理のみで算出した場合の歩行者の横移動速度を示している。
【0120】
図示するように、パターンマッチ処理(第一検出部12と同様の処理)のみによって算出した場合、パターンマッチ処理では時間T3で物体(歩行者)を最初に検知し、時間T6で物体をロストする。この場合、時間T3で物体を最初に検知してから相対距離や相対速度の計算を開始し、時間T3以降で時間T4、T5の検出結果を用いて物体との相対速度を算出してフィルタリングを行うため、真値への収束が遅くなる。また、時間T6で物体をロストするため、それまでの算出結果が失われ、時間T7で再び物体を検知してから再び相対速度の算出を始める必要があるため、真値への収束が更に遅くなる。
【0121】
一方、
図1に示す車両用外界認識装置10によって算出する場合には、第二検出部13がオプティカルフローを用いて物体を常時検出しており、第一検出部12が時間T3で物体(歩行者)を最初に検知した時点で第一検出位置補間部14により第一検出結果の過去値の補間が行われるため、時間T1から相対速度を算出した場合と同等の相対速度を得ることができ、時間T3での相対速度がある程度真値へ近くなる。また、第一検出部12が時間T6で物体をロストした場合でも、第一検出位置補間部14によりその時間T6での第一検出結果の補間を実施するため、相対速度の算出結果が途切れることがなく、算出される相対速度が歩行者の横移動速度の真値に更に近くなる。
【0122】
このように、本第一実施の形態の車両用外界認識装置10によれば、第一検出部12及び第二検出部13によって自車周囲を撮像した画像200から歩行者の第一位置情報(第一検出結果)及び第二位置情報(第二検出結果)が検出される第一状態と第二検出部13のみによってその画像200から物体の第二位置情報が検出される第二状態とが時系列で発生した際に、第一状態における第一位置情報及び第二位置情報と第二状態における第二位置情報とに基づいて第二状態における物体の第一位置情報を補間する第一位置情報補間情報を算出することにより、第一検出部12によって画像200の一部で歩行者等の物体の位置情報を検出し得ない場合であっても、その物体との相対位置や相対速度の算出精度を高めることができる。より具体的には、たとえば広角カメラを用いる際のカメラ歪や画像上の歩行者のパターン変化により、第一検出部12によって画像200の一部で自車進路を横切る歩行者の位置情報を検出し得ない場合であっても、第二検出部13によって検出される歩行者の第二位置情報を用いて第一検出部12によって検出される歩行者の第一位置情報の過去値や現在値を補間することができるため、自車と歩行者との相対位置や相対速度を精度良く算出することができる。
【0123】
なお、上記した第一実施の形態では、第一検出部12で行うパターンマッチ処理の検出対象として歩行者を採用したが、当該第一検出部12の検出対象は適宜に設定することができる。たとえば、相対距離や相対速度の算出に最も適した歩行者の脚部形状のみを第一検出部12の検出対象としてもよい。
【0124】
<第二実施の形態>
つぎに、本発明に係る車両用外界認識装置の第二実施の形態について
図17、
図18を用いて詳細に説明する。
図17は、第二実施の形態における車両用外界認識装置20のブロック図である。
図17に示す第二実施の形態の車両用外界認識装置20は、
図1に示す第一実施の形態の車両用外界認識装置10に対して、出力選択部26の構成が相違しており、その他の構成は第一実施の形態の車両用外界認識装置10と同様である。したがって、以下では、第一実施の形態の車両用外界認識装置10と異なる構成のみを詳述し、第一実施の形態と同様の構成には同一の符号を付してその詳細な説明は省略する。
【0125】
車両用外界認識装置20は、自動車等の車両に搭載されるカメラ装置内、もしくは統合コントローラ内等に組み込まれ、カメラ装置のカメラ1で撮影した画像から物体を検出するためのものであり、本実施の形態では、自車周囲の物体のうち特に歩行者を検知するように構成されている。
【0126】
車両用外界認識装置20は、CPUやメモリ、I/O等を有するコンピュータによって構成されており、所定の処理がプログラミングされて予め定められた周期Tで繰り返し処理を実行するようになっている。
【0127】
車両用外界認識装置20は、
図17に示すように、画像取得部11と、第一検出部12と、第二検出部13と、第一検出位置補間部14と、距離計測部15と、出力選択部26と、を備えている。以下では、出力選択部26の処理のみを詳細に説明する。
【0128】
[出力選択部]
図18を用いて、出力選択部26における処理内容について説明する。
図18は、出力選択部26の処理フローを説明したフローチャートである。
【0129】
出力選択部26は、まず、第一検出結果D1[n]について、n=1からNまでの繰り返し処理を実施する。ここで、第一検出結果D1[n]は追跡処理の結果、情報が抜けている部分が存在するため、その処理は第一検出結果D1[n]の確保領域全体に対して実施し、そこに情報が格納されている場合のみ、以下の処理を実施する。
【0130】
出力選択部26は、ステップS1601にて、第一検出結果D1[n]と同一物体と判定された第二検出結果D2[m’]の有無を確認する。第一検出結果D1[n]と同一物体と判定された第二検出結果D2[m’]が存在する場合にはステップS1603へ移動し、第一検出結果D1[n]と同一物体と判定された第二検出結果D2[m’]が存在しない場合にはステップS1602へ移動する。
【0131】
つぎに、ステップS1602にて、第一検出結果D1[n]の過去値D1_Z[n]と同一物体と判定された第二検出結果D2[m’]の過去値D2_Z[m’]の有無を確認する。過去値D1_Z[n]と同一物体と判定された過去値D2_Z[m’]が存在する場合にはステップS1603へ移動し、過去値D1_Z[n]と同一物体と判定された過去値D2_Z[m’]が存在しない場合にはステップS1604へ移動する。
【0132】
第一検出結果D1[n]と同一物体と判定された第二検出結果D2[m’]が存在する場合や第一検出結果D1[n]の過去値D1_Z[n]と同一物体と判定された第二検出結果D2[m’]の過去値D2_Z[m’]が存在する場合には、ステップS1603にて、第一検出結果D1[n]等を用いて距離計測部15で計測された物体(歩行者)との相対位置および相対速度をたとえばLANを介して車両用外界認識装置20の外部へ出力する。すなわち、ここで出力される結果は、現在もしくは過去に第一検出部12と第二検出部13の双方で検出された物体に対する結果である。
【0133】
一方、第一検出結果D1[n]と同一物体と判定された第二検出結果D2[m’]が存在しない場合且つ第一検出結果D1[n]の過去値D1_Z[n]と同一物体と判定された第二検出結果D2[m’]の過去値D2_Z[m’]が存在しない場合には、ステップS1604にて、第一検出結果D1[n]等を用いて距離計測部15で計測された相対位置および相対速度を車両用外界認識装置20の外部へ出力しない。この結果は、これまでに第一検出部12のみで検出された物体に対する結果である。すなわち、これまでに第一検出部12のみで物体(歩行者)を検出した場合には、距離計測部15でその物体との相対位置および相対速度は演算するものの、出力選択部26は、その物体に対する相対位置および相対速度を車両用外界認識装置20の外部に設けられた外部機器へ出力しない。
【0134】
[第二実施の形態の作用効果]
以上で説明したように、本第二実施の形態の車両用外界認識装置20によれば、現在もしくは過去に第一検出部12と第二検出部13の双方で検出対象となる物体(歩行者)の第一位置情報と第二位置情報とが検出されて初めて、その物体に対して計測された相対位置および相対速度が車両用外界認識装置20の外部に設けられた車両のコントローラや警報装置等の外部機器へ出力されるため、第一検出部12と第二検出部13の双方の手法で検出されるような確度が高い物体に対する結果のみを車両のコントローラや警報装置等の外部機器へ出力することができる。また、第一検出部12のみで検出された物体に対する相対位置および相対速度は車両用外界認識装置20の外部に設けられた車両のコントローラや警報装置等の外部機器へ出力されないものの、上記したように、そのような物体に対しても距離計測部14により相対位置および相対速度の演算は実施しているため、第一実施の形態の車両用外界認識装置10と同様、算出される相対速度が歩行者の横移動速度の真値に近くなり、その物体との相対位置や相対速度の算出精度を高めることができる。言い換えれば、距離計測部14により計測された相対位置および相対速度は、第一検出部12と第二検出部13の双方で物体が同時に検出されたタイミングで車両用外界認識装置20の外部に設けられた車両のコントローラや警報装置等の外部機器へ出力されるものの、その相対位置および相対速度は距離計測部14により前記出力よりも事前に演算されているため、確度が高い物体に対する結果のみを車両のコントローラや警報装置等の外部機器へ出力しながら、算出される相対速度の歩行者の横移動速度の真値に対する遅れを抑制することができる。
【0135】
<第三実施の形態>
つぎに、本発明に係る車両用外界認識装置の第三実施の形態について
図19、
図20を用いて詳細に説明する。
図19は、第三実施の形態における車両用外界認識装置30のブロック図である。
図19に示す第二実施の形態の車両用外界認識装置30は、
図1に示す第一実施の形態の車両用外界認識装置10に対して、画像における物体(歩行者)の位置情報を検出する手法が相違しており、その他の構成は第一実施の形態の車両用外界認識装置10と同様である。したがって、以下では、第一実施の形態の車両用外界認識装置10と異なる構成のみを詳述し、第一実施の形態と同様の構成には同一の符号を付してその詳細な説明は省略する。
【0136】
車両用外界認識装置30は、自動車等の車両に搭載されるカメラ装置内、もしくは統合コントローラ内等に組み込まれ、カメラ装置のカメラ1で撮影した画像から物体を検出するためのものであり、本実施の形態では、自車周囲の物体のうち特に歩行者を検知するように構成されている。
【0137】
車両用外界認識装置30は、CPUやメモリ、I/O等を有するコンピュータによって構成されており、所定の処理がプログラミングされて予め定められた周期Tで繰り返し処理を実行するようになっている。
【0138】
車両用外界認識装置30は、
図19に示すように、画像取得部11と、脚部検出部32と、頭部検出部33と、脚部検出位置補間部34と、距離計測部15と、出力部16と、を備えている。以下では、脚部検出部32と頭部検出部33と脚部検出位置補間部34の処理のみを詳細に説明する。
【0139】
[脚部検出部]
脚部検出部32は、画像取得部11により取得された画像200(
図2参照)内から、歩行者の脚部に類似したパターンを検出し、その検出結果D1[n]を出力する。この検出結果D1[n]は、検出された歩行者脚部の画像上の座標(SX,SY,EX,EY)を要素とするテーブルの配列であり、nは複数検出された場合のIDを表している。
【0140】
図20を用いて、脚部検出部32における処理内容について説明する。
図20は、脚部検出部32の処理フローを説明したフローチャートである。
【0141】
脚部検出部32は、まず、ステップS301にて、画像IMGSRC[x][y]からピラミッド画像IMGPY[p][x][y]を生成する。ピラミッド画像IMGPY[p][x][y]はP枚の画像から構成される画像群であり、画像IMGSRC[x][y]を所定の倍率で順次縮小した画像である。本実施の形態においては、ピラミッド画像IMGPY[p][x][y]のp=0における画像は画像IMGSRC[x][y]と同一の画像、p=1における画像はIMGPY[0][x][y]を縮小率0.8で縮小した画像、p=2における画像はIMGPY[1][x][y]を縮小率0.8で縮小した画像、といったように縮小率0.8で順次縮小した画像を格納したものとする。
【0142】
ここで、カメラ1のカメラパラメータに基づいて画像の歪補正を実施してもよい。
【0143】
つぎに、ステップS302をピラミッド画像IMGPY[p][x][y]についてp=1からp=Pまで繰り返し処理を行う。このステップS302では、ピラミッド画像IMGPY[p][x][y]から特定形状(すなわち、歩行者の脚部形状)を検出する。この特定形状の検出方法には様々な方法が考えられるが、如何なる検出方法を用いてもよい。たとえば、歩行者の歩行パターンから代表的な脚部の形状を抽出し、上記の第一実施の形態で説明したテンプレートマッチングによって検出してもよい。上記した処理を、p=1からp=Pまで繰り返し処理を行う。
【0144】
つぎに、ステップS303にて、ステップS302での処理(ラスタスキャン処理)の検出結果を統合する。この統合方法は、種々の公知技術が存在するため、ここではその詳細な説明を割愛するが、本実施の形態においては、たとえばMeanShift(平均値シフト法)と呼ばれる公知技術を使用する。そして、その統合結果をD1M[r]へ格納する。ここで、D1Mは画像上の検出位置座標(SX,SY,EX,EY)を表している。
【0145】
つぎに、ステップS304にて、追跡処理を実施する。この追跡処理は、上記した第一実施の形態の第一検出部12において
図8を用いて説明した処理内容と同一であるため、ここではその詳細な説明を割愛する。
【0146】
この脚部検出部32による処理の結果、パターンマッチ処理による歩行者脚部パターン検出結果が脚部検出結果(第一位置情報)D1[n]として出力される。
【0147】
[頭部検出部]
頭部検出部33は、画像取得部11により取得された画像200(
図2参照)内から、歩行者の頭部に類似したパターンを検出し、その検出結果D2[m]を出力する。この検出結果D2[m]は、検出された歩行者頭部の画像上の座標(SX,SY,EX,EY)を要素とするテーブルの配列であり、mは複数検出された場合のIDを表している。
【0148】
頭部検出部33における処理内容は、
図20を用いて説明した脚部検出部32における処理内容とほぼ同一であるため、その詳細な説明は割愛する。ただし、画像から歩行者の頭部を検出する場合、
図20に示すステップS302における特定形状検出においては、上述したパターンマッチ手法やテンプレートマッチングの他、円検出技術も適用し得るし、歩行者の頭部から肩部にかけてのΩ形状や凸形状を検出する手法も適用し得るが、いずれも公知技術であるため、ここではその詳細な説明は割愛する。
【0149】
この頭部検出部33による処理の結果、パターンマッチ処理による歩行者頭部パターン検出結果が頭部検出結果(第二位置情報)D2[m]として出力される。
【0150】
[脚部検出位置補間部]
歩行者の脚部は形状の変化が大きいためにパターンマッチ処理による検出が途切れることがあるが、歩行者の頭部は形状の変化が少ないためにパターンマッチ処理等による検出が途切れる可能性が低い。そこで、脚部検出位置補間部34は、頭部検出部33から出力された検出結果D2[m]を用いて脚部検出部32から出力された検出結果D1[n]を補間(現在位置補間処理や過去位置補間処理)する補間情報を算出して、前記検出結果D1[n]の現在値や過去値を補間する。
【0151】
脚部検出位置補間部34による補間処理の処理内容は、上記した第一実施の形態の第一検出位置補間部14において
図10〜
図13を用いて説明した処理内容とほぼ同一である。ただし、頭部検出結果D2[m]と脚部検出結果D1[n]の一致度判定の判定方法には、
図11に示すステップS1411における算出方法が適用できないため、以下では、脚部検出位置補間部34における一致度判定の判定方法のみを説明する。
【0152】
脚部検出位置補間部34は、脚部検出結果D1[n]と頭部検出結果D2[m]の矩形情報をそれぞれ(SX1,SY1,EX1,EY1)、(SX2,SY2,EX2,EY2)とすると、まず、歩行者の頭部の大きさH=EY2−SY2、脚部検出結果D1[n]と頭部検出結果D2[m]のそれぞれのX座標中点CX1=(SX1+EX1)/2、CX2=(SX2+EX2)/2を算出する。そして、以下の式(7)に示す条件(a)〜(c)に基づいて、脚部検出結果D1[n]と頭部検出結果D2[m]とが同一物体によるもの(すなわち、同一の歩行者によるもの)であるか否かを判定する。
【0153】
[数7]
(a):EY2 > SY1
(b):TH_HMIN < (EY1−SY2)/H < TH_HMAX
(c):|CX1−CX2| < TH_dCX ・・・(7)
【0154】
ここで、式(7)に示す条件(a)は、頭が足の上方にあるという条件である。条件(2)は、身長の頭サイズ比(すなわち頭身)が短すぎず、且つ長すぎないという条件である。条件(3)は、頭と足とが略垂直に並んでいるという条件である。以上の条件をすべて満たした場合に、脚部検出位置補間部34は、脚部検出結果D1[n]と頭部検出結果D2[m]とが同一物体によるもの(すなわち、同一の歩行者によるもの)であると判定する。
【0155】
[第三実施の形態の作用効果]
以上で説明したように、本第三実施の形態の車両用外界認識装置30によれば、頭部検出部33と脚部検出部32とによって、歩行者の体のうち画像上での形状変化が少ない頭部と、歩行者との相対距離や相対速度の計測に必要な脚部とを画像から検出する。歩行者の脚部は形状変化が大きいためにパターンマッチ処理による検出が途切れることがあるが、歩行者の頭部は形状変化が少ないためにパターンマッチ処理等による検出が途切れる可能性が低く、頭部検出部33により常時検出される。そのため、頭部検出部33により検出される頭部検出結果(第二位置情報)を用いて、脚部検出部32により検出される脚部検出結果(第一位置情報)の現在値や過去値(脚部検出部32にて検出されなかった物体(歩行者脚部)の位置情報)を補間することができ、自車と歩行者との相対位置や相対速度の算出精度を高めることができる。
【0156】
また、本第三実施の形態の車両用外界認識装置30では、頭部検出部33と脚部検出部32とで同様の検出手法(パターンマッチ処理)を適用できるため、当該車両用外界認識装置30の装置構成を簡素化できるといった利点もある。
【0157】
なお、上記した第一〜第三実施の形態では、第二検出部13や頭部検出部33のみによって検出対象となる物体が検出された場合に、物体(歩行者)との相対距離や相対速度が算出されず、第一検出部12や脚部検出部32によって検出対象となる物体が検出された場合に、その検出結果に基づいて物体(歩行者)との相対距離や相対速度が算出され、その算出結果が外部機器へ出力される形態について説明した。しかし、第二検出部13や頭部検出部33のみによって検出対象となる物体が検出された場合にも、第二検出部13や頭部検出部33の検出結果に基づいて物体(歩行者)との相対距離や相対速度を算出してもよい。ただし、その場合には、第一検出部12や脚部検出部32によって検出された検出結果を優先して物体(歩行者)との相対距離や相対速度を算出することが好ましい。すなわち、第二検出部13や頭部検出部33によって検出対象となる物体の位置情報が検出され、かつ、その前後で第一検出部12や脚部検出部32によって検出対象となる物体の位置情報が検出されなかった場合に、第二検出部13や頭部検出部33によって検出される検出結果に基づいて物体(歩行者)との相対距離や相対速度を計測し、その計測結果を外部機器へ出力することが好ましい。
【0158】
なお、本発明は上記した実施形態に限定されるものではなく、様々な変形形態が含まれる。例えば、上記した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えることが可能であり、また、ある実施形態の構成に他の実施形態の構成を加えることも可能である。また、実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【0159】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。