以下、本発明の実施形態について図面を用いて詳細に説明する。図1は、本実施の形態における物体検知装置1000のブロック図である。
物体検知装置1000は、画像内から予め設定された物体を検知するためのものであり、本実施の形態では、自動車に搭載されるカメラ装置内に組み込まれ、自車の周囲を撮像した画像内から歩行者11を検知するように構成されている。
物体検知装置1000は、図1に示すように、画像取得装置1100、記憶装置1200、処理回路1300から構成される。画像取得装置1100は、自車の前方を撮像可能な位置に取り付けられた単眼カメラを備えており、CCDやCMOSなどの撮像素子を用いて、自車前方を撮影した前方画像としてディジタル値の信号に変換する機能を有している。
ディジタル値の信号は、ディジタル値のまま処理回路1300内のRAM上に画像情報IMGSRC[x][y]として直接書き込まれてもよいし、アナログ信号に変換し処理回路1300で再度ディジタル信号へ変換し画像IMGSRC[x][y]としてRAM上に書き込まれてもよい。なお、画像IMGSRC[x][y]は2次元配列であり、x、yはそれぞれ画像の座標を示す。
記憶装置1200は、例えばハードディスクやROMによって構成されており、所定のデータが格納されて、処理回路1300からアクセスが可能な装置である。記憶装置1200には、物体が有する部分を検知するテンプレートと判定閾値の情報が記憶されている。
本実施の形態では、歩行者11の上部(頭部と肩部を含む)を検知するための第一のテンプレート1210、歩行者11の中部(腰部を含む)を検知するための第二のテンプレート1220、歩行者11の下部(脚部を含む)を検知するための第三のテンプレート1230、第一のテンプレート1210に対応する第一の判定閾値1211、第二のテンプレート1220に対応する第二の判定閾値1221、第三のテンプレート1230に対応する第三の判定閾値1231が記憶されている。
処理回路1300は、CPUやメモリ、I/O等を有するコンピュータによって構成されており、所定の処理がプログラミングされて、あらかじめ定められた周期で繰り返し処理を実行する。処理回路1300は、検知処理領域選定部1311と、領域分割部1321と、マッチング率算出部1331と、物体存在判定部1341と、物体位置検出部1310と、ロービーム判定部1340を有する。
物体位置検出部1310は、自車に搭載されたミリ波レーダやレーザレーダ等の自車周辺の物体を検出するレーダ(図示せず)からの検出信号を取得して、自車前方に存在する物体10の物体位置21を検出する。例えば図3に示すように、レーダから自車周辺の歩行者11や道路標識12等の物体10の物体位置(相対距離PY[b]、横位置PX[b]、横幅WD[b])を取得する。ここで、[b]は複数の物体10を検知している場合のID番号である。
これらの物体10の位置情報は、レーダの信号を物体検知装置1000に直接入力することによって取得しても良いし、レーダとLAN(Local Area Network)を用いた通信を行うことによって取得しても良い。
検知処理領域選定部1311は、画像20内で物体10を検知するための検知処理領域W[i]を選定するものであり、画像取得装置1100からの画像情報(IMGSRC[x][y])と、物体位置検出部1310からの物体情報とに基づいて検知処理領域W[i]を選定する。
そして、その選定した検知処理領域W[i]の座標情報(横方向の始点座標SX[i]、横方向の終点座標EX[i]、縦方向の始点座標SY[i]、縦方向の終点座標EY[i])を領域分割部1321に出力する。ここで、[i]は複数の検知処理領域Wを選定している場合のID番号である。
物体位置検出部1310を備えていない場合には、検知したい歩行者の位置を全て探索するように、座標情報(横方向の始点座標SX[i]、横方向の終点座標EX[i]、縦方向の始点座標SY[i]、縦方向の終点座標EY[i])を設定する。例えば自車先端から所定の距離から所定の距離まで、かつ車両中心から所定の幅の範囲内にて1メートル間隔で探索するように設定してもよいし、自車の速度から自車がT秒後に到達する距離で、自車中心から所定の幅の範囲内にて1メートル間隔で探索するように設定してもよい。
領域分割部1321は、検知処理領域Wを複数の部分領域に分割するものであり、テンプレートに応じて分割する処理を行う。例えば図6及び図7に示すように、検知処理領域Wの座標情報(SX[i]、EX[i]、SY[i]、EY[i])、および第一のテンプレート1210、第二のテンプレート1220、第三のテンプレート1230の情報に基づいて検知処理領域W[i]を縦方向(上下方向)に3つの部分領域に分割し、検知処理領域W[i]内で第一のテンプレート1210の位置に対応する第一の部分領域w1[i]、第二のテンプレート1220の位置に対応する第二の部分領域w2[i]、第三のテンプレート1230の位置に対応する第三の部分領域w3[i]の各座標情報を演算する。
そして、第一の部分領域w1[i]の座標情報(SX1[i]、EX1[i]、SY1[i]、EY1[i])、第二の部分領域w2[i]の座標情報(SX2[i]、EX2[i]、SY2[i]、EY2[i])、第三の部分領域w3[i]の座標情報(SX3[i]、EX3[i]、SY3[i]、EY3[i])をマッチング率算出部1331に出力する。
マッチング率算出部1331は、これらの各部分領域W1[i]〜W3[i]と、対応する各テンプレート1210〜1230とのマッチング率をそれぞれ算出する。ここでは、第一の部分領域w1[i]の座標情報(SX1[i]、EX1[i]、SY1[i]、EY1[i])、第二の部分領域w2[i]の座標情報(SX2[i]、EX2[i]、SY2[i]、EY2[i])、第三の部分領域w3[i]の座標情報(SX3[i]、EX3[i]、SY3[i]、EY3[i])、画像情報IMGSRC[x][y]、第一のテンプレート1210、第二のテンプレート1220、第三のテンプレート1230の情報を入力する。
そして、第一の部分領域w1[i]と第一のテンプレート1210とのマッチング率である第1のマッチング率(MATCH1[i])、第二の部分領域w2[i]と第二のテンプレート1220とのマッチング率である第2のマッチング率(MATCH2[i])、第三の部分領域w3[i]と第三のテンプレート1230とのマッチング率である第3のマッチング率(MATCH3[i])をそれぞれ演算し、物体存在判定部1341に出力する。
物体存在判定部1341は、マッチング率算出部1331の算出結果に基づいて物体が存在するか否かを判定する処理を行う。本実施の形態では、第一のマッチング率MATCH1[i]、第二のマッチング率MATCH2[i]、第三のマッチング率MATCH3[i]と、第一の閾値1211、第二の閾値1221、第三の閾値1231と、ロービーム判定部1340の判定結果LBSTに基づいて、物体10の存在の有無を判定する。
ロービーム判定部1340は、自車がロービーム(前照灯が点灯中で且つ下向き)の状態で走行しているか否かを判定する。そして、ロービームの状態である場合は「1」、それ以外であれば「0」を判定結果LBSTに代入して物体存在判定部1341に出力する。ロービームの判定には、前照灯の点灯スイッチ、およびハイビームのON・OFFを切り替えるスイッチの信号を処理回路1300に直接入力することによって判定しても良いし、LAN(Local Area Network)を用いた通信を行うことによって判定しても良い。
また、画像取得装置1100で取得した画像の濃淡を用いて判定しても良い。例えば、ロービームの状態では、画像30上でロービームの範囲内が明るく、範囲外が暗く写ることから、カメラ画像全体の下半分の平均輝度値とカメラ画像の上半分の平均輝度値との差が、一定の閾値以上であるかによって、ロービームの状態であるか否かを判定することができる。
つぎに、図2を用いて、記憶装置1200の第一のテンプレート1210、第二のテンプレート1220、第三のテンプレート1230について説明する。図2は、第一のテンプレート1210、第二のテンプレート1220、第三のテンプレート1230の一例を示す模式図である。
この例では、歩行者11の全身を検知するためのテンプレート1201を上下方向に三つに分割して、歩行者11の上部(頭部及び肩部)11Aを検知するための第一のテンプレート1210、歩行者11の中部(腰部)11Bを検知するための第二のテンプレート1220、歩行者11の下部11C(脚部)を検知するための第三のテンプレート1230としている。
第一のテンプレート1210は、歩行者11の上部11A、中部11B、下部11Cの何処の位置に対応するものであるかという情報として、歩行者11の基準幅PW及び基準高さPH内における、テンプレート1210とのマッチング率を算出する相対位置の情報(PSX1、PSY1、PEX1、PEY1)を有している。
第二のテンプレート1220も同様に、歩行者11の基準幅PW及び基準高さPH内における、テンプレート1220とのマッチング率を算出する相対位置(PSX2、PSY2、PEX2、PEY2)を含む。そして、第三のテンプレート1230も同様に、歩行者11の基準幅PW及び基準高さPH内における、テンプレート1230とのマッチング率を算出する相対位置(PSX3、PSY3、PEX3、PEY3)を含む。
つぎに、図3〜図5を用いて、検知処理領域選定部1311における処理の内容について説明する。図3は、物体位置を設定する例を示す模式図、図4は、検知処理領域を設定する例を示す模式図、図5は、検知処理領域を設定する他の例を示す模式図である。
検知処理領域選定部1311は、画像IMGSRC[x][y]内で歩行者11を検知する検知処理領域W[i]を選定し、そのx座標(横方向)の始点SX[i]および終点EX[i]、y座標上(縦方向)の始点SY[i]および終点EY[i]を求める。検知処理領域W[i]が複数ある場合はSX[i]、EX[i]、SY[i]、EY[i]を配列とし、すべての検知処理領域W[i]の座標を出力する。
検知処理領域選定部1311は、物体位置検出部1310を用いても良いし、用いなくても良い。まず、物体位置検出部1310を用いて検知処理領域W[i]を設定する場合について、図3及び図4を用いて詳細に説明する。
検知処理領域選定部1311は、物体位置検出部1310が検出した物体10の相対距離PY[b]、横位置PX[b]および横幅WD[b]から、図3に示すように、画像20上における物体10の物体位置21を算出する。物体10の物体位置21は、物体10の周囲を囲む矩形領域で示され、その四隅の座標位置(x座標(横方向)の始点BSX[b]、終点BEX[b]、y座標(縦方向)の始点BSY[b]、終点BEY[b])で規定される。
なお、画像20上の座標と実世界の位置関係を対応付けるカメラ幾何パラメータを、カメラキャリブレーション等の方法によってあらかじめ算出しておき、物体11の高さを、例えば180[cm]などあらかじめ仮定しておくことにより、画像20上での位置を一意に決定することができる。
また、画像取得装置1100の取り付けの誤差やレーダとの通信遅れ等の理由により、物体位置検出部1310で検出した物体10の画像20上における位置と、画像20に写っている同じ物体10の画像20上での位置の違いが生じる場合がある。
従って、画像20上での物体位置21(BSX[b]、BEX[b]、BSY[b]、BEY[b])から、補正を加えた物体位置22(BSX2[b]、BEX2[b]、BSY2[b]、BEY2[b])を算出する。物体位置21の補正は、物体位置21の領域を所定の量だけ拡大したり、移動させたりすることによって行われる。
つぎに、図4に示すように、補正後の物体位置22(BSX2[b]、BEX2[b]、BSY2[b]、BEY2[b])内をラスタ走査するように、検知処理領域W[i](SX[i]、EX[i]、SY[i]、EY[i])を設定する。本実施の形態では、物体位置22の左上端部を原点とし、上方から下方に1ドットずつ移動させる動作と、下端まで移動した後に右側に1ドットだけ移動させる動作を繰り返して、物体位置22(BSX2[b]、BEX2[b]、BSY2[b]、BEY2[b])内を漏れなく探索するように、複数の検知処理領域W[i]が設定される。
検知処理領域W[i]の大きさ(歩行者想定幅SW、歩行者想定高さSH)は、物体位置検出部1310が検出した物体10との相対距離PY[b]により決まる。また、歩行者想定幅SW、歩行者想定高さSHは、前述の歩行者基準幅PW、歩行者基準高さPHと同じである必要はないが、PW:PH=SW:SHの関係が必要とされる。
図3には、2つの物体10(歩行者11と道路標識12)の物体位置21、21と、各物体位置21、21をそれぞれ補正した物体位置22、22とを検出した例が示されている。図3では、物体10の画像20上における物体位置21(BSX[b]、BEX[b]、BSY[b]、BEY[b])を実線で示し、補正を加えた物体位置22(BSX2[b]、BEX2[b]、BSY2[b]、BEY2[b])を破線で示している。補正後の物体位置22は、本実施の形態では、物体位置21の上下左右に一定のマージンを有している。
例えば図3に示す例では、道路標識12の物体位置21(BSX[0]、BEX[0]、BSY[0]、BEY[0])と、補正後の物体位置22(BSX2[0]、BEX2[0]、BSY2[0]、BEY2[0])が算出され、また、歩行者11の物体位置22(BSX[1]、BEX[1]、BSY[1]、BEY[1])と、補正後の物体位置22(BSX2[1]、BEX2[1]、BSY2[1]、BEY2[1])が算出される。
図4には、物体位置22(BSX2[b]、BEX2[b]、BSY2[b]、BEY2[b])内に検知処理領域W[i](SX[i]、EX[i]、SY[i]、EY[i])が設定された状態が示されている。
例えば、道路標識12の物体位置22内における最初の検知処理領域W[0](SX[0]、SY[0] 、EX[0]、EY[0])は物体位置22内の左上に設定され、最後の検知処理領域W[i](SX[i]、SY[i] 、EX[i]、EY[i])は物体位置22内の右下に設定される。また、歩行者11の物体位置22内における最初の検知処理領域W[i+1](SX[i+1]、SY[i+1] 、EX[i+1]、EY[i+1])は物体位置22内の左上に設定され、最後の検知処理領域W(図示せず)は物体位置22内の右下に設定される。
次に、物体位置検出部1310を用いずに検知処理領域Wを設定する場合について、図5を用いて説明する。物体位置検出部1310を用いない場合の検知処理領域Wの選定方法は、例えば、検知処理領域Wの大きさを変化させながら画像20全体を探索するように設定する方法や、特定の位置、特定の大きさのみに限定して検知処理領域Wを設定する方法がある。検知処理領域Wを特定の位置に限定して設定する場合は、例えば自車速を用いて自車がT秒後に進んでいる距離に限定して設定する方法がある。
図5は、自車速を用いて,自車が1.0秒後に進んでいる位置を探索する場合の例である。検知処理領域Wの大きさ(歩行者想定幅SW、歩行者想定高さSH)、およびy座標を算出した位置とカメラ幾何パラメータから求め、画像20上で横方向に1画素毎ずらしながら検知処理領域Wを設定している。なお、歩行者想定幅SW、歩行者想定高さSHは、前述の歩行者基準幅PW、歩行者基準高さPHと同じである必要はないが、PW:PH=SW:SHの関係が必要とされる。
検知処理領域Wの大きさおよびy座標位置の決定方法であるが、画像20上の座標と実世界の位置関係を対応付けるカメラ幾何パラメータをカメラキャリブレーション等の方法によってあらかじめ算出しておくことで、歩行者11を検出したい距離から逆算することができる。
図5で示す例の場合、画像20の横の大きさ(画像横サイズ)をIMGSIZEXとすると、画像始点SX、SY、画像終点EX、EYには、それぞれ(画像横サイズIMGSIZEX−歩行者想定幅SW)個のデータが入る。検知処理領域Wの位置は、画像20の左端(SX[0]、SY[0]、EX[0]、EY[0])から、右端(SX[IMGSIZEX−W]、SY[IMGSIZEX−W]、EX[IMGSIZEX−W]、EY[IMGSIZEX−W])に向かって移動される。
つぎに、図6を用いて、領域分割部1321による処理の内容について説明する。図6は、ある検知処理領域W[i]を複数の部分領域w[i]に分割する一例を示す図、図7は、分割する他の例を示す図である。
処理領域分割部1321は、検知処理領域W(横方向SX[i]、EX[i]、縦方向SY[i]、EY[i])の歩行者想定幅SW[i](=EX[i]−SX[i])、歩行者想定高さSH[i](=EY[i]−SY[i])と、第一のテンプレート1210の歩行者基準幅PW、歩行者基準高さPHおよび相対領域位置(PSX1、PSY1、PEX1、PEY1)から、以下の式(1)〜式(4)を用いて、第一の部分領域w1[i](SX1[i]、EX1[i]、SY1[i]、EY1[i])を算出する。
SX1[i]=SX[i]+(PSX1)(SW[i]/PW) …(1)
SY1[i]=SY[i]+(PSY1)(SW[i]/PW) …(2)
EX1[i]=SX[i]+(PEX1)(SW[i]/PW) …(3)
EY1[i]=SY[i]+(PEY1)(SW[i]/PW) …(4)
そして、第二の部分領域w2[i](SX2[i]、EX2[i]、SY2[i]、EY2[i])、および第三の部分領域w3[i](SX3[i]、EX3[i]、SY3[i]、EY3[i])も同様に算出する。
テンプレートは、図6に示す例の場合、歩行者11の全身に対応するテンプレート1201を上中下に3分割して形成されており、第一のテンプレート1210が歩行者11の上部11Aに対応し、第二のテンプレート1220が歩行者11の中部11Bに対応し、第三のテンプレート1230が歩行者11の下部11Cに対応している。そして、これら3つのテンプレートを合成すると隙間のない歩行者用のテンプレート1201となる。この場合、検知処理領域W[i]はすべて第一の部分領域w1[i]、第二の部分領域w2[i]、第三の部分領域w3[i]のいずれかに分類される。
図7は、歩行者11の頭部や脚部など、特定の部位だけを見るテンプレートを用いる例である。この場合、第一のテンプレート1210が頭部のみ、第二のテンプレート1220が腰部、第三のテンプレート1230が脚部のみのテンプレートであり、3つのテンプレート1210〜1230を合成しても隙間が空く。この場合、検知処理領域W[i]内には、第一の領域w1[i]、第二の領域w2[i]、第三の領域w3[i]のいずれにも分類されない領域が発生する。
つぎに、図8を用いて、処理回路1300のマッチング率算出部1331について説明する。図8は、マッチング率算出部1331の処理内容を説明するフローチャートである。まず、ステップS301において、画像IMGSRC[x][y]から、第一の領域w1(SX1[i]、EX1[i]、SY1[i]、EY1[i])内の画像を切り出し、第一の領域w1の画像IMGMC1[i][x][y]を生成する。
同様に、ステップS302において、画像IMGSRC[x][y]から、第二の領域w2(SX2[i]、EX2[i]、SY2[i]、EY2[i])内の画像を切り出し、第二の領域w2の画像IMGMC2[i][x][y]を生成する。
そして、ステップS303において、画像IMGSRC[x][y]から、第三の領域w3(SX3[i]、EX3[i]、SY3[i]、EY3[i])内の画像を切り出し、第三の領域w3の画像IMGMC3[i][x][y]を生成する。
つぎに、ステップS304において、第一の領域w1の画像IMGMC1[i][x][y]と第一のテンプレート1210の大きさが同じになるようにサイズ調整を行う。サイズ調整は、第一の領域w1の計算に用いた歩行者想定幅SW[i]、歩行者想定高さSH[i]と、第一のテンプレート1220の歩行者基準幅PW、歩行者基準高さPHを用いて行う。
第一の領域の画像IMGMC1[i][x][y]が、第一のテンプレート1220と同じ大きさになるように、画像サイズを横方向にPW/SW[i]倍、縦方向にPH/SH[i]倍に拡大・縮小してもよいし、逆に第一のテンプレート1220が第一の領域の画像IMGMC1[i][x][y]と同じ大きさになるように、テンプレートの大きさを横方向にSW[i]/PW倍、縦方向にSH[i]/PH倍に拡大・縮小してもよい。
同様に、ステップS305において、第二の領域w2の画像IMGMC2[i][x][y]と第二のテンプレート1220の大きさが同じになるようにサイズ調整を行う。
そして、ステップS306において、第三の領域w3の画像IMGMC3[i][x][y]と第三のテンプレート1230の大きさが同じになるようにサイズ調整を行う。
そして、ステップS307において、大きさが調整された第一の領域w1のサイズ正規化画像IMGMC1[i][x][y]と第一のテンプレート1210との間のマッチング率である第一のマッチング率MATCH1[i]を算出する。マッチング率の算出方法については後述する。
同様に、ステップS308において、大きさが調整された第二の領域w2のサイズ正規化画像IMGMC2[i][x][y]と第二のテンプレート1220との間の第二のマッチング率MATCH2[i]を算出し、ステップS309において、大きさが調整された第三の領域w3のサイズ正規化画像IMGMC3[i][x][y]と第三のテンプレート1230との間の第三のマッチング率MATCH3[i]を算出する。
つぎに、図9、10、11を用いて、ステップS307〜ステップS309におけるマッチング率の算出方法について以下に詳細に説明する。まず、画像のパターンを用いて歩行者11を検知する方法について説明する。歩行者11を検知する方法としては、歩行者パターンの代表となるテンプレートを複数用意しておき、差分累積演算あるいは正規化相関係演算を行って一致度を求める方法や、ニューラルネットワークなどの識別器を用いてパターン認識を行う方法が挙げられる。
いずれの方法をとるとしても、あらかじめ歩行者11か否かを決定する指標となるソースのデータベースが必要となる。様々な歩行者11のパターンをデータベースとして蓄えておき、そこから代表となるテンプレートを作成し、あるいは識別器を生成する。実環境では様々な服装、姿勢、体型の歩行者が存在し、さらにそれぞれ照明や天候などの条件が異なったりすることから、大量のデータベースを用意して、誤判定を少なくすることが必要となる。
このとき、前者のテンプレートを用意する方法の場合、判定漏れを防ぐようにするとテンプレートの数が膨大となり、現実的ではない。そこで、本実施の形態では後者の識別器を用いて判定する方法を採用する。識別器の大きさはソースのデータベースの大きさに依存しない。なお、識別器を生成するためのデータベースを教師データと呼ぶ。
本実施形態における識別器を用いて歩行者11か否かを判定する方法を、図9、8を用いて説明する。
まず、第一のマッチング率算出方法について説明する。図9は、本実施形態における、第一のマッチング率算出の方法を示すブロック図である。ここでは、図8のステップS304において、第一の領域の画像IMGMT1[i][x][y]は横方向にPW/SW[i]倍、縦方向にPH/SH[i]倍に拡大・縮小され、第一のサイズ正規化画像IMGMT1N[i][x][y]に変換されている場合について説明する。
本実施の形態では、第一の識別器41を用いて第一のマッチング率MATCH1[i]を算出する。第一の識別器41は、画像内の所定の箇所に設置された複数の小領域TP1R[n]内における濃淡勾配の方向と強さに基づいてマッチング率を算出する。
まず、入力画像IMGMT1N[i][x][y]が入力されると、例えばソーベルフィルタなどのフィルタリング処理部411によりフィルタリング処理が行われ、濃淡勾配の強さを表すエッジ強度画像IMGMAG1[x][y]および濃淡勾配の方向を表すエッジ方向画像IMGDIR1[x][y]がそれぞれ出力される。そして、局所エッジ強度算出部412により、各画像の所定箇所に設置された小領域TP1R[n]内で、算出された濃淡勾配の強さと方向を用いて局所エッジ強度TP1M[n]を算出する。
具体的には、小領域TP1R[n]に含まれるエッジ方向画像IMGDIR1[x][y]の値を参照し、その方向が小領域TP1R[n]ごとに定められた所定の方向と同一であったときに、対応する位置のエッジ強度画像IMGMAG1[x][y]の値を合計する。本実施の形態の場合、小領域TP1R[n]を20個設置しているため、局所エッジ強度TP1M[0]〜TP1M[19]の20個の値を得る。
つぎに、局所エッジ判断部413において、各局所エッジ強度を、対応する閾値TP1TH[0]〜TP1TH[19]で閾値処理し、「1」か「0」の2値に変換する。そして、重み付け部414で重みTP1W[0]〜TP1W[19]を乗じ、合計部415へ出力する。合計部415は、重み付け部414から入力された20個の値を合計し、第一のマッチング率MATCH[i]として出力する。
なお、本実施の形態における第一のテンプレート1210は、識別器41内の各局所エッジ強度TP1M[0]〜TP1M[19]を算出する小領域TP1R[n]の個数、位置、大きさ、濃淡勾配の方向、局所エッジ判断部413における局所エッジ強度の閾値TP1TH[0]〜TP1TH[19]、重み付け部414の重みTP1W[0]〜TP1W[19]であり、これらのパラメータは、識別器41への入力画像IMGMC1N[i][x][y]が歩行者であった場合には「1」を、歩行者ではなかった場合には「0」を出力するように、教師データを用いて調整される。この供試データを用いた調整には、AdaBoostなどの機械学習の手段を用いてもよいし、手動で行ってもよい。
例えば、NPD個の歩行者11の教師データ、およびNBG個非歩行者の教師データから、AdaBoostを用いて第一のテンプレート1210を決定する手順は以下の通りとなる。なお、以下、局所エッジの算出に必要な、位置、大きさ、濃淡勾配の方向の情報を持つ小領域をcTP1R[m]と表す。ここで、mは局所エッジのID番号である。
まず位置、大きさ、判定する濃淡勾配の方向が異なる小領域cTP1R[m]を複数(例えば、100万通り)用意し、それぞれ局所エッジ強度の値を全ての教師データから算出し、閾値cTP1TH[m]を決定する。閾値cTP1TH[m]は、歩行者11の教師データと非歩行者の教師データを最も分類することができる値を選択する。
つぎに、歩行者11の教師データひとつひとつにwPD[nPD]=1/2NPDの重みを与え、非歩行者の教師データひとつひとつにwBG[nBG]=1/2NBGの重みを与える。ここで、nPDは歩行者の教師データのID番号、nBGは非歩行者の教師データのID番号である。
そして、k=1として、以下、繰り返し処理を行う。まず、歩行者・非歩行者全ての教師データの重みの合計が1となるように、重みを正規化する。つぎに、各局所エッジの誤検知率cER[m]を計算する。誤検知率cER[m]は、小領域TP1R[m]において、歩行者11の教師データの局所エッジ強度cTP1M[m][nPD]を閾値cTP1TH[m]で閾値処理した結果が非歩行者となったもの、もしくは非歩行者の教師データの局所エッジ強度cTP1M[m][nBG]を閾値cTP1TH[m]で閾値処理した結果が歩行者11となったもの、すなわち閾値処理した結果が実際と異なる教師データの重みの合計である。
全ての局所エッジの誤検知率cER[m]を算出後、誤検知率が最小となる局所エッジのID mMin を選択し、小領域TP1R[k]=cTP1R[mMin]、閾値TP1TH[k]=cTP1TH[mMin]とする。
つぎに、各教師データの重みを更新する。更新は、小領域TP1R[k]において、歩行者11の教師データの局所エッジ強度TP1M[k][nPD]を閾値TP1TH[k]で閾値処理した結果が歩行者11となったもの、もしくは非歩行者の教師データの局所エッジ強度TP1M[k][nBG]を閾値TP1TH[k]で閾値処理した結果が非歩行者となったもの、すなわち閾値処理した結果が正解の教師データの重みに、係数BT[k]=cER[mMin]/(1−cER[mMin])を乗じて行う。
k=k+1とし、kが予め設定した値(例えば、20)になるまで繰り返す。繰り返し処理の終了後に得られる小領域TP1R[k]、閾値TP1TH[k]がAdaBoostにより自動調整された識別器41である。なお、重みTP1W[k]=1/BT[k]である。
つぎに、第二のマッチング率算出方法について説明する。図10は、本実施形態における、第二のマッチング率算出の方法を示すブロック図である。ここでは、図8に示すステップS305において、第二の領域w2の画像IMGMT2[i][x][y]が横方向にPW/SW[i]倍、縦方向にPH/SH[i]倍に拡大・縮小され、第二のサイズ正規化画像IMGMT2N[i][x][y]に変換されているものとする。本実施の形態では第二の識別器42を用いて第二のマッチング率MATCH2[i]を算出する。
第二の識別器42は、第一の識別器41と同様に、フィルタリング処理部421、局所エッジ強度算出部422、局所エッジ判断部423、重み付け部424、合計部425を有する。なお、第二の識別器42は歩行者11の中部11Bの識別器であり、処理内容は第一の識別器41と同様であるため、説明は省略する。
さらに、第三のマッチング率算出方法について説明する。図11は、本実施形態における、第三のマッチング率算出の方法を示すブロック図である。ここでは、図8に示すステップS306において、第三の領域w3の画像IMGMT3[i][x][y]が横方向にPW/SW[i]倍、縦方向にPH/SH[i]倍に拡大・縮小され、第三のサイズ正規化画像IMGMT3N[i][x][y]に変換されているものとする。本実施の形態では第三の識別器43を用いて第三のマッチング率MATCH3[i]を算出する。
第三の識別器43は、第一の識別器41及び第二の識別器42と同様に、フィルタリング処理部431、局所エッジ強度算出部432、局所エッジ判断部433、重み付け部434、合計部435を有する。なお、第三の識別器43は歩行者11の下部11Cの識別器であり、処理内容は第一の識別器41と同様であるため、説明は省略する。
物体存在判定部1341は、マッチング率算出部1331により算出した第一のマッチング率MATCH1[i]と、記憶装置1200内の第一の閾値1211との比較、第二のマッチング率MATCH2[i]と第二の閾値1221との比較、第三のマッチング率MATCH3[i]と第三の閾値1231との比較を行う。
そして、第一のマッチング率MATCH1[i]が第一の閾値1211以上であり、かつ第二のマッチング率MATCH2[i]が第二の閾値1221以上であり、さらに第三のマッチング率MATCH3[i]が第三の閾値1231以上である場合に、歩行者11が存在すると判定し、少なくとも一つのマッチング率が閾値を下回る場合には、歩行者11が存在しないと判定する。
上記の方法によれば、マッチングの度合いを局所的な分布で見ることができるので、歩行者の上半身のみに類似しているパターン、または歩行者の下半身のみに類似しているパターンを、歩行者として誤検知するのを排除することができる。
つぎに、本装置によって、例えば子供等の身長が低い歩行者13を検出する方法について、図12を用いて説明する。図12は、低身長歩行者からマッチング率を算出する方法を説明する図である。
物体存在判定部1341は、検知処理領域選定部1311によって、検知処理領域Wの大きさ(歩行者想定幅SW、歩行者想定高さSH)を変えずに、検知処理領域Wを縦方向に探索する設定とすることによって、画像内に歩行者11とは上下方向の長さが異なる他の物体である低身長歩行者13を検知することができる。
具体的には、第一のマッチング率MATCH1[i]、第二のマッチング率MATCH2[i]、第三のマッチング率MATCH3[i]を配列として記憶し、前述の判定と同時に、互いに上下方向に位置が異なる部分領域の第一のマッチング率MATCH1[i]、第二のマッチング率MATCH2[j]、第三のマッチング率MATCH3[k]を用いて、身長が低い歩行者13を検知する。
図12(b)〜(d)には、検知処理領域W[i―2c](SX[i―2c]、SY[i―2c]、EX[i―2c]、EY[i―c])、検知処理領域W[i―c](SX[i―c]、SY[i―c]、EX[i―c]、EY[i―c])、検知処理領域W[i](SX[i]、SY[i]、EX[i]、EY[i])における各部分領域のマッチング率が示されている。
図12に示すように、第一のテンプレート1210、第二のテンプレート1220、第三のテンプレート1230が対象とする歩行者11(図3を参照)よりも身長が低い低身長歩行者13の近傍でマッチング率を算出する。
その結果、低身長歩行者13を検知処理領域W検知処理領域W[i―2c]の下で捉える時は、図12(b)に示すように、第三のテンプレート1230とのマッチング率MATCH3[i−2c]が高い値となる。そして、低身長歩行者13を検知処理領域W[i―c]の中央で捉える時は、図12(c)に示すように、第二のテンプレート1220とのマッチング率MATCH2[i−c]が高い値となる。そして、低身長歩行者13を検知処理領域W[i]の上で捉える時は、図12(d)に示すように、第一のテンプレート1210とのマッチング率MATCH1[i]が高い値となる。
従って、検知処理領域Wの大きさ(歩行者想定幅SW、歩行者想定高さSH)を変えずに画像上で上から下へ縦方向に探索するように検知処理領域Wが設定されている場合、第一のテンプレート1210、第二のテンプレート1220、第三のテンプレート1230での検知を想定している歩行者(大人)11の身長をPHE[m]とし、検知したい低身長歩行者(子供)13の身長をCHE[m]とする。そして、c=(PHE−CHE)×SH/(2×PHE)を算出し、検知処理領域W[i](SX[i]、SY[i]、EX[i]、EY[i])における第一のマッチング率MATCH1[i]、検知処理領域W[i―c](SX[i―c]、SY[i―c]、EX[i―c]、EY[i―c])における第二のマッチング率MATCH2[i−c]、および検知処理領域W[i―2c](SX[i―2c]、SY[i―2c]、EX[i―2c]、EY[i―2c])における第三のマッチング率MATCH3[i−2c]を用いて物体存在判定を行うことにより、低身長歩行者13の存在を検知することができる。
従って、用意しているテンプレートが想定している歩行者(大人)11よりも身長が低い低身長歩行者(子供)13を、低身長歩行者専用のテンプレートを用意することなく検知することができる。同様に、テンプレートが想定している歩行者(大人)よりも身長が高い長身の歩行者についても、同様に特別なテンプレートを用意することなく、検知することができる。
物体存在判定部1341は、ロービーム判定結果LBSTを用いて、周囲が暗くロービームの状態で歩行者を検知する場合と、そうでない場合でマッチング率の判定閾値を変化させることができる。
自車の前照灯が下向きであるロービームのときに、マッチング率の判定閾値を変化させる方法について、図13を用いて説明する。図13(a)は、昼間に撮影した画像20内の歩行者11のマッチング率を算出した例であり、図13(b)は、夜間にロービームの状態で撮影した画像20内の歩行者11のマッチング率を算出した例である。
図13(b)に示すように、夜間にロービームの状態で走行すると、自車前方の歩行者11は、照射範囲H内に存在する足元(脚部)のみが明るく映し出される。従って、この画像20のままでマッチング率を算出すると、上部部分領域である部分領域w1、w2は、部分領域w1と第一のテンプレート1210とのマッチング率MATCH1[i]、及び部分領域w2と第二のテンプレート1220とのマッチング率MATCH2[i]が低くなってしまう。
従って、このような場合に、物体存在判定部1341は、ロービーム判定部1340からのロービーム判定結果LBSTを用いて、例えば第一の閾値(上部判定閾値)1211に係数「0.5」を、第二の閾値(上部判定閾値)1221に係数「0.7」を乗じて、第一の閾値1211と第二の閾値1221を非ロービーム状態のときよりも低い値に変更する。そして、第三の閾値(下部判定閾値)1231に係数「1.2」を乗じて、第三の閾値1231を非ロービーム状態のときよりも高い値に変更して物体存在判定を行う。
また、物体存在判定部1341は、物体位置検出部1310を用いて測定した物体10の位置情報に応じてマッチング率の閾値を変化させてもよい。例として、物体10が横方向へ移動しているかどうかに応じてマッチング率の閾値を変化させる方法について、図14を用いて説明する。
図14は、横方向に移動している歩行者11の例を示す。検知処理領域選定部1311で説明したように、歩行者11が横移動している場合、物体検知装置1000内における通信遅れや取り付け誤差等によって、物体位置検出部1310で取得した画像20上での物体位置(BSX[b]、BSY[b]、BEX[b]、BEY[b])は、画像20上の歩行者11の位置とずれてしまう。
特に、物体10が横方向に移動している場合、検知処理領域Wを設定する範囲である(BSX2[b]、BSY2[b]、BEX2[b]、BEY2[b])にも含まれないことが発生しうる。
この場合、第一のテンプレート1210を歩行者11の右半身のテンプレートとし、第二のテンプレート1220を歩行者11の左半身のテンプレートとすると、歩行者11が右側に移動している場合は右半身11Rが検知処理領域Wに入らないため右半身のテンプレート1210に関する第一のマッチング率MATCH1[i]が小さくなり、左側に移動している場合は左半身が検知処理領域Wに入らないため左半身のテンプレート1220に関する第二のマッチング率MATCH2[i]が小さくなる。
従って、物体位置検出部1310から得られる物体10の横位置PX[b]から横移動速度VX[b]を算出し、その絶対値が所定の速度閾値を超えた場合は横移動していると判定し、VX[b]の符号から右側に歩いていると判定された場合は右側のテンプレートである第一のテンプレート1210に関する第一の閾値1211が小さくなるような係数を乗じ、また、左側に歩いていると判定された場合は左側のテンプレートである第二のテンプレート1220に関する第二の閾値1221が小さくなるような係数を乗じ、第一の閾値1211および第二の閾値1221を調整して物体存在判定を行う。係数は、例えば0.8など一定の値でもよいし、例えば横方向の速度が0から横方向の速度の閾値まで1.0で、速度が高くなるほど値が0に近づくような関数を用いてもよい。
上記した物体検知装置1000によれば、歩行者11を検知する検知処理領域Wを上下方向に区画して部分領域w1、w2、w3の3つに分割する。そして、歩行者11の上部11Aを検知する第一のテンプレート1210、歩行者11の中部11Bを検知する第二のテンプレート1220、および歩行者11の脚部11Cを検知する第三のテンプレート1230を用いて、各部分領域w1、w2、w3とのマッチング率MATCH1、MATCH2、MATCH3を算出する。そして、各マッチング率MATCH1、MATCH2、MATCH3がそれぞれの判定閾値1211、1221、1231よりも大きいか否かを判断し、各マッチング率MATCH1、MATCH2、MATCH3が各判定閾値1211、1221、1231よりも大きいときは歩行者11であると判定する。従って、歩行者11の上半身にのみ類似しているパターン、または歩行者11の下半身にのみ類似しているパターンに対する誤検知を排除することができる。
また、物体検知装置1000によれば、歩行者11を検知する場合、別々の位置で算出した第一のテンプレート1210とのマッチング率MATCH1と、第二のテンプレート1220とのマッチング率MATCH2と、第三のテンプレート1230とのマッチング率MATCH3を様々に組み合わせることができる。
例えば、検知処理領域Wを縦方向へ探索するように設定し、第一のマッチング率MATCH1[i]、第二のマッチング率MATCH2[i]、第三のマッチング率MATCH3[i]を配列として記憶し、異なる縦位置で算出した第一のマッチング率MATCH1[i]、第二のマッチング率MATCH2[j]、第三のマッチング率MATCH3[k]を組み合わせることができる。従って、大人よりも身長が低い子供を、子供専用のテンプレートを用意することなく、大人用のテンプレートのみで簡単且つ適切に検知することができる。
さらに、ロービーム判定部1340の結果によって第一の閾値1211、第二の閾値1221、第三の閾値1231に係数を乗じ、ロービーム状態とロービーム状態以外のときで判定閾値を変化させることによって、ロービームにより歩行者11の脚部のみが明るく見えている場合でも歩行者11を適切に検知することができる。
また、第一のテンプレート1210を歩行者11の右半身を検知するテンプレートとし、第二のテンプレート1220を歩行者11の左半身を検知するテンプレートとして、物体位置検出部1310の情報を用いて物体10が横移動していると判定した場合に、第一の閾値1211および第二の閾値1221に係数を乗じ、横移動時と横移動時でないときとで判定閾値を変化させることによって、通信遅れ等により物体位置検出部1310で検出した位置が画像20上の位置より遅れていても歩行者11を適切に検知することができる。
なお、歩行者11の検知に用いる識別器41、42、43は、本実施例で取り上げた方法に限定されない。正規化相関を用いたテンプレートマッチング、ニューラルネットワーク識別器、サポートベクターマシン識別器、ベイズ識別器などを用いてもよい。また、テンプレートの数は本実施例の3つに限定されず、2つのテンプレートでも、4つ以上のテンプレートでもよい。さらに、物体存在判定部1341で説明したように、処理回路1300は、物体位置検出部1310またはロービーム判定部1340を用いない形態でも使用可能である。
本発明は、上述の実施の形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々の変更が可能である。例えば、上述の実施の形態では、検知対象の物体10として歩行者11の場合を例に説明したが、例えば先行車両などの他の物体でもよい。また、上述の実施の形態では、検知処理領域Wを3つの部分領域w1、w2、w3に分解して歩行者11を検出する場合を例に説明したが、部分領域は複数であればよく、例えば2つ、あるいは4つ以上であってもよい。