(実施例1)
以下、本願に係る画像処理装置を備えた移動体制御システムを自車両に搭載した一実施例について、図面を参照しながら説明する。なお、本願に係る移動体制御システムは、自車両等の車両に限らず、例えば、船舶、航空機あるいは産業用ロボットなどの移動体(移動装置)に適用することができる。さらに、移動体に限らず、高度道路交通システム(ITS)等、広く物体認識を利用する機器に適用することができる。また、撮像画像に基づいて撮像領域内に存在する検出対象物の検出処理を行う画像解析装置に適用することもできる。図1は、実施例1における画像処理装置1を備える移動体制御システム500を搭載した自車両400の外観を示す概略図である。
この図1に示すように、実施例1の移動体制御システム500は、撮像部としての撮像ユニット100と、立体物検出手段としての画像処理装置1と、移動体制御手段としての車両制御ユニット300と、を備えて構成される。撮像ユニット100は、自動車等の移動体としての自車両400に搭載され、その周囲、本実施例では、自車両進行方向の前方領域(撮像領域)の撮像画像を撮像する。この撮像ユニット100は、画像処理装置1と一体に設けられていてもよいし、別体に設けられていてもよい。画像処理装置1は、撮像ユニット100で撮像した撮像画像を解析して、撮像領域内に存在する歩行者等の立体物(検出対象物)を検出し検出結果を出力する画像処理部としてのステレオ画像処理部200を備えている。車両制御ユニット300は、画像処理装置1での検出結果に基づいて、自車両400の移動を制御する。
図2は、実施例1における画像処理装置1を備えた移動体制御システム500の主要部を示すハードウェア構成図である。この図2に示すように、撮像ユニット100は、撮像部としての2つのカメラ101A,101B(カメラa,b)を備えたステレオカメラと、各カメラ101A,101Bで撮像された撮像画像データに対して補正処理を行う画像補正部110と、を備えて構成されている。ステレオカメラの2つのカメラ101A,101Bの構成は同一のものである。撮像ユニット100は、例えば、図1に示すように、自車両400のフロントガラス410のルームミラー(図示せず)付近に設置され、走行する自車両400の進行方向の前方領域を撮像領域とする。
カメラ101A,101Bは、図示はしないが、主に、撮像レンズ等の光学系と、受光素子が2次元配置された画素アレイで構成された画像センサと、画像センサから出力されるアナログ電気信号(画像センサ上の各受光素子が受光した受光量)をデジタル電気信号に変換した撮像画像データを生成して出力する信号処理部とから構成されている。なお、本実施例では、カメラ101A,101Bの光学系の光軸は水平方向(横方向又は左右方向)に平行であるとし、水平方向の光軸に対して画素のラインは左右の画像について縦方向にずれていないものとする。ただし、本願がこれに限定されることはなく、カメラ101A,101Bの光学系の光軸は縦方向に平行であってもよい。
画像補正部110は、各カメラ101A,101Bから出力される撮像画像データ(以下、「画像データa」、「画像データb」と呼ぶ)を、理想ピンホールモデルで得られる画像に変換するために、各種補正処理を行う。以下、この補正処理が行われた画像を、「補正画像データa’」、「補正画像データb’」と呼ぶ。また、画像補正部110は、図2に示すように、カメラ101A,101Bごとに、FPGA(Field-Programmable Gate Array)111A,111Bおよびメモリ(記憶部)112A,112Bが設けられている。FPGA111A,111Bは、入力されるカメラ101A,101Bからの画像データa,bに対して、倍率補正、画像中心補正、歪補正等の補正処理を実行する。メモリ112A,112Bには、その補正処理に用いる補正パラメータ等が格納されている。FPGA111A,111Bから出力される補正処理後の撮像画像データ(補正画像データa’,b’)は、ステレオ画像処理部200に送られる。なお、FPGA111A,111Bに代えて、例えば、ASIC(Application Specific Integrated Circuit)等を採用してもよい。
図2のハードウェア構成図に示すように、画像処理装置1のステレオ画像処理部200は、FPGA201、メモリ(記憶部)202およびCPU(Central Processing Unit)203を備えている。FPGA201は、メモリ202に記憶された補正画像データa’,b’に対して視差画像データや輝度画像データ等の画像データ、認識処理結果像を出力するための画像処理を行う。メモリ202は、撮像ユニット100から出力される補正画像データa’,b’(輝度画像データ)、視差画像データ等の画像データ、認識処理結果等を記憶するとともに、画像処理装置1で実行される立体物検出プログラム等を記憶する。CPU203は、メモリ202に記憶されたコンピュータで読み取り可能な立体物検出プログラムに従って、各種演算処理を行うとともに、画像処理装置1のステレオ画像処理部200の各部を駆動制御する。また、FPGA201、メモリ202も、CPU203によって制御される。
ステレオ画像処理部200は、撮像ユニット100から入力される補正画像データa’,b’に対して画像処理を実行する。具体的には、2つの補正画像データa’,b’から得られる視差画像データや、2つの補正画像データa’,b’のうちの一方(基準画像)の輝度画像データなどを生成する処理や、後述する歩行者等の立体物検出処理などを行う。本実施例のステレオ画像処理部200は、視差画像データや輝度画像データ等の画像データと、歩行者等の検出結果とを出力する。しかしながら、本願がこの実施例に限定されることはなく、例えば、検出結果等が入力される車両制御ユニット300、その他の部における処理で、このような画像データが使用されない場合には、画像データは出力せずに検出結果のみ出力してもよい。また、本実施例では、補正画像データa’を基準画像とし、補正画像データb’を比較画像とする。
図3は、ステレオ画像処理部200の機能の詳細を示す機能ブロック図である。この図3に示すように、ステレオ画像処理部200は、主に、視差演算部210と、垂直視差図作成部(垂直視差データ作成部)220と、移動面位置検出部230と、水平視差図作成部(水平視差データ作成部)240と、立体物検出部250と、を備えて構成されている。
視差演算部210は、画像補正部110から出力される補正画像データa’,b’から視差画像データを生成する。この視差画像データを得るために、視差演算部210は、当該2つの補正画像間の対応画像部分の視差値を演算する。まず、補正画像データa’,b’の一方を基準画像データ(本実施例では補正画像データa’)、他方を比較画像データ(本実施例では補正画像データb’)とする。ここでいう視差値とは、撮像領域内の同一地点に対応した基準画像データ(補正画像データa’)上の画像部分に対する比較画像データ(補正画像データb’)上の画像部分の位置ズレ量を、当該画像部分の視差値として算出したものである。三角測量の原理を利用することで、この視差値から当該画像部分に対応した撮像領域内の当該同一地点までの距離を算出することができる。
三角測量の原理を用いた距離の算出手順を、図5を用いて詳細に説明する。図5は、被写体(以下、「オブジェクト」と呼ぶ)OJと、ステレオカメラ(カメラ101A,101B)による撮像との関係を示す模式図である。図5中、符号102A,102Bは、カメラ101A,101Bの撮影レンズ系の撮像面を示す。103A,103Bは、カメラ101A,101Bの画像センサの撮像面を示す。また、符号OJ’は画像センサの撮像面103A,103Bに結像されたオブジェクトOJの像を示す。この図5に示すように、オブジェクトOJの撮像対象点Oは、カメラ101A,101Bの撮影レンズ系の撮像面102A、102Bにより、CMOS等の画像センサの撮像面103A,103Bに結像される。
この撮影レンズ系の撮像面102A,102Bの焦点距離をfとし、撮影レンズ系の撮像面102A,102Bの光軸間距離(基線長)をDとし、カメラ101A,101BからオブジェクトOJまでの距離をZとし、結像中心からのずれ量をそれぞれΔ1、Δ2とすると、視差(視差値)dは、下記式(1)を用いて算出することができる。なお、ずれ量Δ1、Δ2は、画像センサの撮像面103A,103B上における撮像対象点Oの結像位置によって求まる。
d=Δ1+Δ2 (1)
また、図5において、カメラ101A,101BからオブジェクトOJまでの距離Zと視差dとの関係は、d:f=D:Zで表される。したがって、カメラ101A,101BからオブジェクトOJまでの距離Zは、下記式(2)を用いて算出することができる。
Z=D×(f/d) (2)
視差演算部210は、上記式(1)を用いて画素毎に視差を算出する。なお、視差演算部210において、上記式(2)を用いてオブジェクトOJの撮像対象点Oまでの距離まで算出してもよい。
視差演算部210により算出される視差画像データは、基準画像データ(補正画像データa’)上の各画像部分について算出される視差値に応じた画素値を、それぞれの画像部分の画素値として表した視差画像を示すものである。視差演算部210が出力した視差画像データは、垂直視差図作成部220、水平視差図作成部240および立体物検出部250に送られる。また、視差演算部210が出力したオブジェクトOJの距離は、視差画像データとともに立体物検出部250に送られる。
垂直視差図作成部220は、視差演算部210から出力される視差画像データを用いて、横軸に視差値をとり、縦軸に画像垂直座標(画像上端を0とする。)をとった垂直視差図のデータ(垂直視差図データ)を作成する。垂直視差図は、この画像垂直座標(縦軸)と視差値(横軸)とで定義される直交座標系において、視差画像の各画素値(視差値)を分布させたものである。この垂直視差図のデータは、移動面位置検出部230に送られる。
図6(a)に基準画像データ(補正画像データa’)の一例を、図6(b)に垂直視差図の一例を示す。図6(a)に示す符号10は、自車両400に搭載された撮像ユニット100で自車両進行方向の前方領域(撮像領域)を撮像したときの基準画像データ(ここでは、補正後の補正画像データa’)の一例を示す。図6(b)に示す符号20は、この基準画像データに対応する垂直視差図のデータを直線近似処理した垂直視差図を示す。垂直視差図20の横軸xは視差値(Disparity)であり、縦軸y(Vertical Axis)は画像垂直座標である。なお、垂直視差図作成部220において作成される垂直視差図は、図6(b)に示すものに限定されることはなく、画像垂直座標と視差値との関係(撮像画像の縦軸における視差値の分布)がわかるデータであればよい。
移動面位置検出部230は、垂直視差図作成部220が作成した垂直視差図のデータに基づいて、視差画像データ中の路面領域(移動面としての路面RSを映し出す領域)を検出する処理を行う。詳しく説明すると、カメラ101A,101Bでは、自車両前方領域を撮像するため、撮像画像上の路面領域は、図6(a)に示すように、画像下部において路面領域の占有率が高い。また、視差画像データ上においては、画像上方へ向かうほど路面領域の視差値が略一定の割合で小さくなり、かつ、同じ画像垂直座標内(画像中の同じ横方向ライン上)において路面領域を構成する画素はほぼ同じ視差値を持つことになる。したがって、主に視差画像データ中の画像下部において路面領域を構成する画素は、垂直視差図上では、右下がりの直線状に分布するという特徴がある。移動面位置検出部230は、この特徴に合致する画素を検出するため、垂直視差図上に分布した画素の中で右下がりの直線近傍に分布する画素(図6(b)に示す右下がりの直線に近似される画素)を、撮像領域内における路面RSを映し出す画素(路面領域を構成する画素)であると検出する。また、図6(b)には、他車両A,B,Cに対応する画素も示している。他車両等の立体物は、所定の高さを有しているが、垂直方向での視差値がほとんど変わらないため、ほぼ垂直な直線で表される。
移動面位置検出部230は、さらに、上記で検出した路面RSの路面高さhを出力する。この路面高さhは、ステレオカメラからの距離(x座標)に対する路面の高さ(y座標)である。具体的には、図6(b)の垂直視差図20に示すように、ステレオカメラからの距離x10(具体的には、例えば、距離10m)における路面高さhは、h10となる。また、距離がx20(具体的には、例えば、距離20m)における路面高さhは、h20となる。
水平視差図作成部240では、視差演算部210から出力される視差画像データを用いて、横軸x(Horizontal axis)に画像水平座標(画像左端を「0(原点)」とする。)をとり、縦軸yに視差値(Disparity)をとった水平視差図のデータ(水平視差図データ)を作成する。この水平視差図のデータを作成するとき、水平視差図作成部240は、移動面位置検出部230から出力される路面高さhを利用して、路面から「Δh」だけ高い路面付近(移動面付近)の水平視差図、つまり、高さ「h−Δh(h10−Δh,h20−Δh,・・・)」の水平視差図を作成する。路面からの高さ「Δh」、「h−Δh(h10−Δh,h20−Δh)」の位置は、図6(b)に例示したとおりである。なお、画像左端を原点としているため、路面から「Δh」だけ高い位置のy座標は、「h−Δh(Δh>0)」となる。
また、この路面からの高さ「Δh」は、建物や電柱等を排除して、撮影対象となる立体物(例えば、車両、歩行者、ガードレール等)が検出できる高さに設定する。「Δh」の実寸法としては、約15cm〜100cmとするのが好適である。また、路面からの高さ「Δh」は、1つに限定されることはなく、数種類の路面からの高さ「Δh1」、「Δh2」、・・・を設定して、他車両用の水平視差図、歩行者用の水平視差図、ガードレール用の水平視差図をそれぞれ作成してもよい。
図7(a),(b)に、補正画像データa’10と、この水平視差図作成部240により作成された、補正画像データa’10に対応する水平視差図30とを示す。この図7(a),(b)に示すように、路面RS上の立体物部分(図7(b)の水平視差図30の場合は、他車両A,B,C、側面のガードレール等)に視差が出る。画像上の手前(近距離、画像下部)の立体物の視差は大きく、画像の奥(遠距離、画像上部)の立体物の視差は小さく出ている。なお、水平視差図作成部240において作成される水平視差図は、図7(b)に示すものに限定されることはなく、画像水平座標と視差値との関係(撮像画像の横軸における視差値の分布)がわかるデータであればよい。
立体物検出部250は、水平視差図作成部240から出力された水平視差図のデータと、視差演算部210から出力された視差画像データと、画像補正部110から出力された補正画像データa’とに基づいて、水平視差図のデータ中の立体物(例えば、車両、歩行者、ガードレール等)を検出する。以下、図4を用いて立体物検出部250について詳細に説明する。図4に示すように、立体物検出部250は、ガードレール検出部251と、ガードレール類似物領域指定部252と、歩行者検出部253と、を備えて構成されている。
ガードレール検出部251は、水平視差図作成部240から出力された図7(b)の水平視差図30のデータに対して、最小二乗法またはハフ変換(Hough変換)処理を用いて、直線近似する処理を行う。この直線近似したデータに基づいて、撮像画像上において、画像端部から消失点の方向に向かって延びる立体物、すなわち、縦軸方向で画像下部から画像上部に向かうに従い横軸方向では画像端部から画像中央に向かう特徴を有する立体物を検出する。なお、縦軸方向とは、図7(b)に示すy軸方向であり、横軸方向とは、同図のx軸方向である。画像下部は、自車両400から近い位置を表し、画像上部は、自車両400から遠い位置を表す。画像端部は、画像の左右方向(水平方向)の端部を表す。このような特徴を有する立体物は、具体的には、路面等の移動面の一側または両側(側部)に、当該移動面に沿って設けられたガードレールや、ガードレールに類似する立体物(以下、これらを総称して「ガードレール類似物」と呼ぶ)である。路面に沿って進行方向に長尺に設けられたガードレール類似物は、三次元空間を二次元に透視変換した撮像画像上では、画像端部から消失点の方向に向かって延びる(収束する)直線(または曲線)として表れる。したがって、視差画像上では、ガードレール類似物は、所定の長さと所定の角度とを有する直線として表れる。ガードレール検出部251は、直線近似したデータ中の立体物の直線の傾きおよび長さが、メモリ202等に予め設定したガードレールについての値の範囲であれば、この直線部分の画素を「ガードレール類似物」(ガードレール類似物を構成する画素)として検出する。この「ガードレール類似物」の検出結果は、ガードレール類似物領域指定部252に出力される。なお、「ガードレール類似物」とは、ガードレールそのものは勿論、ガードパイプ、ガードワイヤ、柵、塀等の車両用の防護柵、防護柵以外の柵、塀、生垣、植林等を含み、路面等の移動面の一側または両側(側部)に、当該移動面に沿って設けられ、歩行者がその付近にいることで歩行者の一部が隠れたり、歩行者の像と重なったりして、歩行者と区別がつきにくい立体物をいう。
ガードレール類似物領域指定部252は、ガードレール検出部251で検出した「ガードレール類似物」が存在する領域の上下左右に+αの領域を指定し、「ガードレール類似物領域」(ガードレール類似物領域を構成する画素)を設定する。例えば、図7(b)の水平視差図30において、一点鎖線で囲った領域がガードレール類似物領域指定部252により「ガードレール類似物領域」として設定された領域である。この「+α」は、実施例1では、プログラム等に予め設定した定数としているが、後述の変形例1で説明するように、検出されたガードレールの距離と、歩行者の大きさとを見積もった変数値としてもよい。実施例1では、この歩行者の検出の際に、特に「ガードレール類似物領域」に着目し、ガードレール類似物の近辺に存在する歩行者を重点的に検出する。そのため、この「ガードレール類似物領域」を、歩行者等の検出対象物を検出する「検出領域β」とする。
歩行者検出部253は、ガードレール類似物領域指定部252で指定された「検出領域β」に対して、歩行者の存在を判定し、その判定結果(検出結果)を出力する。この歩行者の存在の判定は、水平視差図を利用して行われる。この判定手順の詳細については後述する。
車両制御ユニット300は、画像処理装置1のステレオ画像処理部200からの検出結果に基づいて、自車両400の移動を制御する。この車両制御ユニット300には、ステレオ画像処理部200から、歩行者の検出結果が、画像データ(例えば、補正画像データa’)とともに逐次入力される。これらの情報に基づいて、車両制御ユニット300では、例えば、自車両400が歩行者等の立体物(検出対象物)に衝突することを回避するための自動ブレーキ機能、ハンドル操舵機能等を実現する。また、歩行者の存在をモニタ画面に表示する、警告音やアナウンス等を発する等により、歩行者等の存在をドライバーに警告する機能を実現する。これにより、歩行者等への衝突等の回避効果を向上させることができる。
[立体物検出方法]
以下、上記画像処理装置1を用いた歩行者検出のための立体物検出処理(立体物検出方法)の流れについて、図9に示すフローチャートを参照しながら説明する。まず、撮像ユニット100の画像補正部110は、各カメラ101A,101Bからの画像データa,bの入力を受け付ける(ステップS1)。画像補正部110は、この画像データa,bに対して、倍率補正、画像中心補正、歪補正等の補正処理を行い(ステップS2)、ステレオ画像処理部200に向けて補正画像データa’,b’を出力する。図6(a)に、補正画像データa’10の一例を示す。
ステレオ画像処理部200では、この補正画像データa’,b’の入力を受け付ける(ステップS3)。ステレオ画像処理部200で入力を受け付けた補正画像データa’,b’は、視差演算部210へ送られる。視差演算部210では、まず、入力された基準画像データとしての補正画像データa’を用いて、その基準画像データ上の各画素についての視差値を演算して、その視差値を画素値としてもつ視差画像を生成可能な視差画像データを計算(生成)する(ステップS4)。視差画像は、各画素の画素値が、視差値が大きいほど(距離が近いほど)、大きな値(高い画像輝度)をもつように表現される。
視差画像のデータ生成処理としては、例えば、次のような処理を採用することができる。まず、基準画像データ(補正画像データa’)の任意の行について、一の注目画素を中心とした複数画素(例えば5画素×5画素)からなるブロックを定義する。一方、比較画像データ(補正画像データb’)における当該注目画素と同じ行において、定義した基準画像データのブロックと同じサイズのブロックを1画素ずつ横ライン方向(画像左右方向)へずらす。そして、基準画像データにおいて定義したブロックの画素値の特徴を示す特徴量と比較画像データにおける各ブロックの画素値の特徴を示す特徴量との相関を示す相関値を、それぞれ算出する。次に、算出した相関値に基づき、比較画像データにおける各ブロックの中で、基準画像データのブロックと最も相関があった比較画像データのブロックを選定するマッチング処理を行う。その後、基準画像データのブロックの注目画素と、マッチング処理で選定された比較画像データのブロックの対応画素との位置ズレ量を視差値dとして算出する。このような視差値dを算出する処理を基準画像データの全域または特定の一領域について行うことで、視差画像データを得ることができる。
マッチング処理に用いるブロックの特徴量としては、例えば、ブロック内の各画素の値(輝度値)を用いることができる。相関値としては、例えば、基準画像データ(補正画像データa’)のブロック内の各画素の値(輝度値)と、これらの画素にそれぞれ対応する比較画像データ(補正画像データb’)のブロック内の各画素の値(輝度値)との差分の絶対値の総和を用いることができる。この場合、当該総和が最も小さくなるブロックが最も相関があると言える。
このようにして生成された視差画像データは、垂直視差図作成部220、水平視差図作成部240および立体物検出部250に送られる。まず、垂直視差図作成部220では、この視差画像データに基づいて、上述したように、垂直視差図のデータを作成する処理を行う(ステップS5)。図6(b)に、基準画像データ(補正画像データa’)10に対応する垂直視差図20の一例を示す。この垂直視差図20のデータは、移動面位置検出部230に送られる。
移動面位置検出部230では、垂直視差図作成部220が作成した垂直視差図のデータに基づいて、上述したように、視差画像データ中の路面(移動面)領域を検出して、移動面としての路面RSの位置(路面高さh)を検出する処理を行う(ステップS6)。この路面高さhは、水平視差図作成部240に送られる。水平視差図作成部240では、視差演算部210からの視差画像のデータおよび移動面位置検出部230からの路面高さhに基づいて、上述したように路面の高さh−Δhの水平視差図のデータを作成する処理を行う(ステップS7)。この水平視差図のデータは、立体物検出部250に送られる。
立体物検出部250では、水平視差図作成部240から出力された水平視差図のデータ、視差演算部210からの視差画像データおよび画像補正部110からの補正画像データa’に基づいて、水平視差図のデータ中の立体物(例えば、車両、歩行者、ガードレール等)を検出する処理を行う(ステップS8)。このステップS8の処理を詳細に説明すると、まず、ガードレール検出部251が、ガードレールを検出する処理を行う(ステップS81)。このガードレール検出処理では、水平視差図のデータに対して、最小二乗法またはハフ変換(Hough変換)処理を用いて直線近似を行い、この直線近似した水平視差図データに基づいて立体物を検出する。この検出された立体物の中から、「ガードレール類似物」を検出する。
この検出のため、立体物を表す直線の長さを算出する。この直線の長さを取得するには、まず、当該直線に係る立体物の視差平均値から、当該立体物と自車両400との距離を、前述の図5および式(1)、(2)を用いて説明したように、三角測量の原理を用いて算出する。そして、算出した距離に基づいて、立体物の上下方向の長さを、実寸法に換算する。
また、立体物の視差画像上でのサイズsとこれに対応する立体物の実サイズSとの関係は、下記式(3)に示すとおりである。この式(3)を実サイズSについて解くと、下記式(4)が得られる。この式(4)より、立体物の実サイズSを計算することができる。下記式(3)、(4)中、fは、撮影レンズ系の撮像面102A,102Bの焦点距離を、Dは撮影レンズ系の撮像面102A,102Bの光軸間距離(基線長)を、Zは、立体物までの距離を示す。
S : Z = s : f (3)
S = s × Z / f (4)
上述のようにして得られた直線(立体物)の長さと、視差画像から得られる角度とを、メモリ202等に予め設定したガードレールについての値と比較する。これらの値が一致した場合、この直線(立体物)を「ガードレール類似物」と認識し、その検出結果をガードレール類似物領域指定部252に対して出力する。なお、「ガードレール類似物」が検出されなかった場合には、ステップS82、S83の処理はスキップして、ステップS9に進む。
ガードレール検出部251からの検出結果に基づいて、ガードレール類似物領域指定部252では、「ガードレール類似物領域」を設定(指定)する処理を行う(ステップS82)。具体的には、図7(b)に一点鎖線で示したように、「ガードレール類似物」が存在する領域の上下左右に+αの領域を指定し、この領域を「ガードレール類似物領域」とする。実施例1では、ガードレール等に注目して、その近辺の歩行者等を重点的に検出することから、一点鎖線で囲った「ガードレール類似物領域」を「検出領域β」に設定する。
次に、歩行者検出部253が、ガードレール類似物領域指定部252で設定された「検出領域β」すなわち「ガードレール類似物領域」に対して、歩行者の存在を判定する歩行者判定処理を行う(ステップS83)。このステップS83では、以下のように、水平視差図を利用して「ガードレール類似物領域」での歩行者の存在を判定する。歩行者検出部253は、「ガードレール類似物領域」での歩行者の存在だけでなく、ガードレール類似物とは離れた場所に存在する歩行者、例えば、道路を横切る歩行者等の存在も判定してもよい。それには、例えば、ガードレール検出部251が検出した立体物のうち、ガードレール以外の立体物について、メモリ202等に予め設定した歩行者のサイズに一致するか否かを判定する。一致したときには、路面(移動面)上に「歩行者の存在あり」と判定し、一致しないときは、移動面上に「歩行者の存在なし」と判定する。
<水平視差図を利用した歩行者の存在判定>
以下、ステップS83で行われる水平視差図を利用した「ガードレール類似物領域」での歩行者の存在の判定方法を、図8に示す説明図、および、図10に示すフローチャートを用いて説明する。図8は、歩行者が存在しない場面(シーン)、歩行者が遠くに存在する場面、歩行者が近くに存在する場面といった、各場面における補正画像データa’とこれに対応する水平視差画像の概略図である。図8(a)は歩行者が存在せず、ガードレール類似物のみが存在する場面の補正画像データa’(10a)と水平視差図30aとを示す。図8(b)、(c)はガードレール類似物のそばであって、ガードレール類似物と車道との間に歩行者が存在する場面を示す。図8(b)は自車両400から遠い位置に歩行者が存在する場面の補正画像データa’(10b)と水平視差図30bとを示す。図8(c)は自車両400から近い位置に歩行者が存在する場面の補正画像データa’(10c)と水平視差図30cとを示す。なお、図8(b),(c)では、いずれの場合も、歩行者はガードレール類似物の手前、つまり、車道側に存在している。図10は、歩行者検出部253による歩行者判定処理の流れ(図9のステップS83の詳細)を示すフローチャートである。
歩行者検出部253では、まず、水平視差図に対する最小二乗法またはハフ変換処理の結果、つまり、ガードレール類似物領域指定部252からの「ガードレール類似物領域」の入力を受け付ける(ステップS831)。この「ガードレール類似物領域」は、最小二乗法またはハフ変換処理後の水平視差図に基づいて、ガードレール類似物領域指定部252によって、「ガードレール類似物」の領域の上下左右に+αの領域が指定された領域である(図7(b)参照)。歩行者検出部253は、「ガードレール類似物領域」を参照して、ガードレールに対応する直線が連続した直線か否かを判定する(ステップS832)。つまり、図8(a)に示すように、ガードレール類似物のみが存在する場合、その水平視差図のガードレール部分は直線になっている。一方、図8(b),(c)の補正画像データa’(10b,10c)において楕円で囲ったように、ガードレール類似物のそばに歩行者が存在する場合、その水平視差図30b,30cのガードレールの像が、歩行者の像によって途切れ、直線が連続でない部分が生じる。さらに、この連続でない部分から水平方向(横軸方向)に逸脱する線分、すなわち、ガードレール類似物のそばに存在する歩行者の視差が生じる。そのため、ガードレール類似物の近辺の歩行者の有無を、まずはガードレール類似物の直線が連続しているか否かで判断するものである。このステップS832の判定で、連続した直線であると判定した場合(Yes)、「ガードレール類似物領域での歩行者の存在なし」と判定し、その検出結果を出力して(ステップS833)、歩行者判定処理を終了する。
これに対して、ステップS832の判定で、ガードレール類似物に対応する直線において、連続でない部分が存在すると判定した場合(No)、この連続でない不連続部分(不連続直線)の近傍について水平視差図を参照する(ステップS834)。そして、前述したように、この不連続直線部分の距離に基づいて、そのサイズを算出し、このサイズが、メモリ202等に予め設定した歩行者のサイズに一致するか否かを判定する(ステップS835)。歩行者のサイズに一致したと判定した場合(Yes)、「ガードレール類似物領域での歩行者の存在あり」と判定し、その検出結果を出力して(ステップS836)、判定処理を終了する。一方、歩行者のサイズに一致しない場合(ステップS835の判定がNo)には、「ガードレール類似物領域での歩行者の存在なし」と判定し、その検出結果を出力して(ステップS833)、歩行者判定処理を終了する。
以上のように、水平視差画像を用いた判定方法では、水平視差画像に対して最小二乗法またはハフ変換処理を用いて直線近似を行い、ガードレールに対応する直線が不連続な直線の場合、歩行者の存在を探索している。なお、本願がこの実施例に限定されることはなく、変形例として、以下のような判定方法を用いてもよい。
<水平視差図を利用した歩行者の存在判定の変形例>
まず、水平視差図に対して最小二乗法またはハフ変換処理を行い、その結果が連続する直線の場合、水平視差画像で直線近傍に直線から逸脱する線分があるか判定する。逸脱する線分がある場合は、この線分を歩行者と判定する。また、この逸脱する線分のサイズを算出し、メモリ202等に予め設定した歩行者のサイズに一致するか否かを判定した上で、歩行者の存在を判定してもよい。
前述の判定方法、つまり、不連続な直線の存在により歩行者の存在を判定する方法は、ガードレール類似物の手前(ガードレールと車道との間)に歩行者が存在する場合に有効である。その理由は、歩行者が車道側に存在すると、図8(b),(c)のように、歩行者の像によってガードレール類似物の直線が途切れ、不連続となるからである。また、変形例の判定方法、つまり、連続する直線から逸脱する線分の存在により歩行者の存在を判定する方法は、ガードレールの奥(歩道側)に歩行者が存在する場合に有効である。その理由は、歩行者がガードレール類似物よりも奥の歩道側に存在するため、歩行者の像によってガードレール類似物の直線が途切れることはないが、ガードレール類似物の直線から逸脱する線分(歩行者)がみられるからである。
上述のように、歩行者判定処理(ステップS83)が終了すると、図9のフローチャートに戻り、歩行者検出部253により検出された歩行者検出結果(判定結果)が、ステレオ画像処理部200から、画像データ(視差画像データ、補正画像データ(輝度画像データ))とともに出力データとして出力される(ステップS9)。ガードレール検出処理(ステップS81)で「ガードレール類似物」が検出されなかった場合には、その旨が検出結果として出力される。なお、実施例1では、歩行者の検出の際に、「ガードレール類似物領域」に着目し、ガードレール類似物の近辺に存在する歩行者を重点的に検出している。そのため、歩行者検出結果(判定結果)として、「ガードレール類似物領域」すなわち「検出領域β」に存在する歩行者等の検出結果が出力される。なお、出力される検出結果が、「検出領域β」での検出結果のみに限定されることはなく、さらに、道路を横切る歩行者等、「ガードレール類似物」の内側に存在する歩行者等の検出結果を併せて出力してもよい。ステレオ画像処理部200からの出力データは、例えば、車両制御ユニット300等に送信される。この車両制御ユニット300では、これらのデータに基づいて、例えば、ブザー等の警告音や音声アナウンス等によって運転者に対して歩行者の存在を喚起する。また、自動ブレーキの作動やハンドルの自動操舵等により、歩行者等を回避するようにしてもよい。
以上、実施例1の画像処理装置1を用いた立体物検出方法によれば、2つのカメラ101A,101Bにより撮像される2つの撮像画像(画像データa、画像データb)から、歩行者等の検出対象物を精度よく検出することができる。つまり、道路を横切る歩行者等、他の立体物と区別しやすい歩行者を検出することは勿論、ガードレール等の立体物の付近に存在することで、ガードレール等と像が重なって、歩行者とガードレール等との区別がつきにくい場合でも、歩行者等の検出対象物を容易に検出することができる。このように、ガードレール等の立体物の影に一部隠れている歩行者や、立体物のすぐそばに存在する歩行者等も精度よく検出することができる。以上説明したように、実施例1では、歩行者等を検知する必要性の高いガードレール等の立体物に着目し、ガードレール等の立体物を含む範囲を検出領域に設定している。そのため、この検出領域内に存在する歩行者等の検出対象物を、より効率よく検出することが可能となる。
なお、実施例1および以降の変形例では、検出対象物として歩行者の検出を行っているが、本願がこれらの実施例に限定されることはなく、自車両等の移動体の移動に影響する検出対象物であればよい。このような検出対象物として、例えば、ガードレールに沿って走行する自転車、バイク等を検出してもよいし、ガードレールのそばに停車している他車両等を検出してもよい。また、歩行者等の検出対象物を遮って、検出しにくくする立体物として、ガードレール類似物を挙げているが、本願がこれに限定されることはない。例えば、中央分離帯等を立体物として認識し、これらの立体物の付近に存在し、当該立体物と区別しにくい歩行者等の検出対象物を検出するようにしてもよい。
(実施例1の変形例1)
次に、実施例1に係る画像処理装置1の一変形例(以下、「変形例1」という。)について、図11を用いて説明する。図11は、変形例1の画像処理装置における、立体物検出部250Aの機能構成を示す機能ブロック図である。この図11に示すように、変形例1の画像処理装置は、立体物検出部250A内に領域範囲テーブル254をさらに備えていること以外は、実施例1の画像処理装置1と同様の基本構成を有している。そのため、実施例1と同様の構成については、同一の符号を付し、詳細な説明は省略する。この領域範囲テーブル254は、メモリ202中に保持(記憶)され、ガードレール類似物領域指定部252によって参照される。
以下、変形例1の画像処理装置の立体物検出部250Aでの処理を詳細に説明する。まず、上記実施例1では、ガードレール類似物領域指定部252は、「ガードレール類似物領域」の上下左右に+αの領域を指定する際に、αとして定数を使用している。これに対して、変形例1では、メモリ202から読み出した領域範囲テーブル254から取得したα(変数値)を用いている。この領域範囲テーブル254には、「ガードレール類似物」の距離と、変数値αとが対応づけられて記憶されている。ガードレール類似物領域指定部252は、「ガードレール類似物」の距離に対応する変数値αを領域範囲テーブル254から取得し、ガードレール類似物領域+αの領域を設定する。「ガードレール類似物領域」において、自車両400からの距離が大きい(遠距離)ほど、αの値は小さくなり、自車両400からの距離が小さい(近距離)ほど、αの値は大きくなる。つまり、自車両400から遠い位置に存在する歩行者は、幅、高さともに小さく、水平視差図におけるサイズも小さいため、ガードレール類似物の近傍を参照すればよい。これに対して、自車両400から近い位置に存在する歩行者はサイズが大きく、ガードレール類似物から広い範囲を参照する必要があるためである。
このように指定された「ガードレール類似物領域」を用いて、実施例1と同様に、ガードレールに対応する直線が不連続な直線か否かで、または、直線から逸脱する直線があるか否かで、歩行者の存在を検出する。以上のように、変形例1では、自車両400からの距離に応じて、歩行者を検出する領域を拡縮しているため、より精度よく、かつ、より効率的に歩行者を検出することができる。
(実施例1の変形例2)
次に、実施例1に係る画像処理装置1の他の変形例(以下、「変形例2」という。)について、図12を用いて説明する。図12は、変形例2の立体物検出部250Bの機能構成を示す機能ブロック図である。この図12に示すように、変形例2の画像処理装置は、認識辞書入力部255および歩行者検証部256を追加したこと以外は、実施例1の画像処理装置1と同様の基本構成を有している。そのため、実施例1と同様の構成については、同一の符号を付し、詳細な説明は省略する。
上記実施例1において、立体物検出部250の歩行者検出部253では、「ガードレール類似物領域」に対して歩行者の存在を判定する場合、水平視差図を用いて行っている。これに対して、変形例2では、歩行者検出部253で水平視差図を用いて検出した歩行者(歩行者らしさ)に対して、さらに歩行者検証部256で輝度画像データ(例えば、補正画像データa’)を用いて、その検証を行う機能を有している。この検証機能により、平視差図を利用した歩行者の存在の判定結果の精度を向上させている。
認識辞書入力部255は、メモリ202中に保持(記憶)された歩行者の検証に用いる認識辞書(図示せず)を読み出し、歩行者検証部256に出力する。この認識辞書は、機械学習方法により、事前に認識した歩行者パターンの画像サンプル学習データを用いて作成されたものであり、歩行者の撮影画像のパターンマッチング用の様々なテンプレートデータ(人物の形状パターン)が記憶されている。このテンプレートデータは、歩行者の全体像に対応したものであってもよいし、ガードレール等の遮蔽物に一部隠れた歩行者を検出する目的で、頭部、胴部、脚部等の歩行者の一部に対応するものであってもよい。また、歩行者の向き(例えば、横向き、正面向き等)や身長(大人、子供、老人等)に対応するものであってもよいし、自転車、バイク等の二輪車、車椅子等に載る歩行者の像に対応するものであってもよい。また、これらのテンプレートを、年齢別、性別等に分類して認識辞書に記憶しておいてもよい。
以下、歩行者検証部256での検証処理について説明する。歩行者検証部256では、補正画像データa’、歩行者検出部253の結果および認識辞書入力部255からの認識辞書を入力して、歩行者検出部253の検出結果の歩行者らしさを検証する。まず、歩行者検出部253の検出結果から、歩行者らしい立体物の存在領域がわかるので、歩行者検証部256は、この歩行者の存在領域に対応する領域を、補正画像データa’上に設定する。そして、この領域と認識辞書に保持している歩行者データとを照合する。次に、補正画像データa’上の歩行者の存在領域の距離から、歩行者と判定された立体物の寸法を求める。そして、この寸法に基づいて、この歩行者の存在領域に対して、認識辞書に記憶された歩行者データを用いてパターンマッチング(照合)を行う。この照合の結果、一致率が所定値以上の場合、立体物が歩行者(検出対象物)であると認識し、その検出結果を出力する。
以上、変形例2では、水平視差図を利用して歩行者の存在を判定した後、補正画像データa’を利用して、この歩行者と判定された立体物の形状と、認識辞書に記憶された歩行者の様々なテンプレートデータとを照合し、検出結果を検証している。したがって、変形例2では、歩行者(検出対象物)の存在を、より精度よく検出することができる。
以上、本願の実施例1および変形例1、2について説明した。この実施例1、変形例1、2では、歩行者の検出結果として、歩行者が存在する、または存在しない、といった判定のみ出力しているが、本願がこれらに限定されることはなく、確からしさを表す信頼度を付加してもよい。また、実施例1、変形例1では、水平視差図を利用した歩行者の判定結果(検出結果)を出力し、変形例2では、その検出結果に対して、輝度画像を利用して検証した検証結果を出力し、いずれか一方の結果のみ出力している。しかし、本願がこれに限定されることはなく、水平視差図を利用した歩行者の判定結果(検出結果)、および、輝度画像を利用して検証した検証結果の双方を出力してもよい。
以下、信頼度の付加について説明する。信頼度の付加方法としては、例えば、次のような方法で行うことができる。まず、歩行者検出部253は、入力された「ガードレール類似物領域」の視差画像データ上で3×3画素のブロックを定義し、そのブロックを視差画像上下方向中央において左端から右端までずらしていき、各ブロック内の画素値(視差値)の分散を算出する。そして、各ブロックの分散の合計値を信頼度として用い、その合計値が規定数未満である場合には当該視差画像データの信頼度が高い(規定値以上である)と判断する。その合計値が規定数以上である場合には当該視差画像データの信頼度が低い(規定値未満である)と判断する。なお、この処理において各ブロック内に映し出される物体(歩行者)は、自車両から同一距離にある物体であることが多いので、適正な視差値が算出されていれば各ブロックの分散は小さな値をとる。しかし、適正な視差値が算出されていない場合には各ブロックの分散は大きな値をとることになる。この違いを見ることで、視差画像データの信頼度を判定し、この判定結果に基づいて、歩行者の存在の判定に信頼度を付加する。なお、信頼度の付加は、このような方法に限定されることはなく、照度自体の高低、輝度のコントラストの大小などを用いることによって、信頼度の判定を行ってもよい。
(実施例2)
次に、実施例2に係る画像処理装置について、図13〜図16を用いて説明する。上記実施例1およびその変形例では、ガードレール類似物に注目し、その近辺の歩行者を重点的に検出しているが、この実施例2では、ガードレール類似物の内側に注目し、その内側の歩行者を重点的に検出するものである。この実施例2の画像処理装置も、図2に示すような移動体制御システムに適用することができる。図13は、実施例2に係る画像処理装置としてのステレオ画像処理部1200の機能構成を示す機能ブロック図である。この図13に示すように、実施例2のステレオ画像処理部1200は、立体物検出部250を立体物検出部1250に代えたこと以外は、図3に示す実施例1のステレオ画像処理部1200と同様の基本構成を有している。そのため、実施例1と同様の構成については、同一の符号を付し、詳細な説明は省略する。図13に示すように、実施例2のステレオ画像処理部200は、撮像ユニット100から入力される補正画像データa’,b’に対して画像処理を行うものであり、主に、視差演算部210と、垂直視差図作成部220と、移動面位置検出部230と、水平視差図作成部240と、立体物検出部1250と、を備えて構成されている。
視差演算部210による視差画像データ生成処理、垂直視差図作成部220による垂直視差図作成、移動面位置検出部230による移動面位置検出処理、水平視差図作成部240による水平視差図作成処理については、図9を用いて説明した実施例1のステップS1〜S7と同様であるため、詳細な説明は省略する。以下では、立体物検出部1250の構成と、立体物検出部1250の各部で実行される立体物検出処理について説明する。
図14は、実施例2の立体物検出部1250の機能構成を示す機能ブロック図である。この図14に示すように、実施例2の立体物検出部1250は、ガードレール検出部1251と、ガードレール類似物連続性判定部1252と、検出対象物検出領域指定部1253と、歩行者検出部1254と、を備えて構成されている。
ガードレール検出部1251は、水平視差図作成部240から出力された水平視差図(例えば、図7(b)に示す水平視差図)のデータに対して、最小二乗法またはハフ変換(Hough変換)処理を用いて、直線近似する処理を行う。この直線近似したデータに基づいて、立体物の直線の傾きおよび長さが、メモリ202等に予め設定したガードレールについての値の範囲であれば、この直線部分の画素を「ガードレール類似物」として検出する。この検出結果は、ガードレール類似物連続性判定部1252に出力される。
次に、ガードレール類似物連続性判定部1252は、ガードレール検出部1251で検出した「ガードレール類似物」が連続しているか否かを判定する。それには、ガードレール検出部1251が水平視差図を、最小二乗法やハフ変換処理などにより近似した直線の連続性から判定する。
検出対象物検出領域指定部1253では、ガードレール類似物連続性判定部1252で判定した連続性の有無を利用して、歩行者等の検出対象物を検出する検出領域を指定する。直線に連続性があると判断した場合、図15に網掛けで示すように、横軸方向において「ガードレール類似物」で区切られた路面内(以下、「ガードレール類似物の内側」という)を「検出領域β」とする。一方、連続性がないと判断した場合、図16に網掛けで示すように、「ガードレール類似物」の内側+αを「検出領域β」とする。この「+α」の範囲は、より詳細には、図16に示した「d1」および「d2」分、ガードレール類似物から外側に突出した範囲である。つまり、ガードレール類似物が途切れた箇所では、ガードレール類似物の端部から、それぞれ、縦方向(より正確にはガードレール類似物と平行な方向)に「d1」、横方向(より正確にはガードレール類似物と垂直な方向)に「d2」だけ外側の領域までも、検出領域βに含めている。
この「d1」および「d2」は、メモリ等に予め設定している値である。実施例2では、「d1」および「d2」の値を、カメラ101A,101Bからの距離に対応して変化するように設定しており、近距離ほど大きく、遠距離ほど小さく設定している。このように設定することで、近距離ほど、ガードレール類似物の途切れ目を注視して、重点的に歩行者の検出を行うことができる。なお、連続性の有無にかかわらず、「検出領域β」の縦軸方向の上限は、図15、図16上で「最遠検出領域」と表示した位置、すなわち、画像上の路面の上端(自車両400から最も遠い位置)である。
歩行者検出部1254では、検出対象物検出領域指定部1253で指定した検出領域βにおいて、歩行者(検出対象物)の存在を判定し、その判定結果(検出結果)を出力する。実施例2でも、実施例1と同様に、この歩行者の検出の際に、「ガードレール類似物領域」に着目し、ガードレール類似物の近辺に存在する歩行者を重点的に検出するものである。この歩行者の存在の判定は、以下のように、水平視差図を利用して行われる。
水平視差図を利用した歩行者の存在の判定について、一例として、図7(b)の水平視差図30を用いて説明する。この図7(b)に示すように、水平視差図30では、路面RS上の立体物部分(この場合は、他車両A,B,C、側面のガードレール等)に視差が出る。画像上の手前(近距離)の立体物の視差は大きく、画像の奥(遠距離)の立体物の視差は小さく出ている。歩行者検出部1254は、検出領域β内で検出された立体物の視差と自車両400からの距離とに基づいて、前出の式(4)を用いて直線(視差)の長さ(実サイズS)を算出する。この長さをメモリ等に予め記憶していた歩行者のサイズと比較し、歩行者に該当する立体物を検出する。立体物検出部1250は、歩行者検出部1254で検出した「検出領域β」での歩行者の検出結果を出力するとともに、必要に応じて画像データ(視差画像データ、補正画像データ(輝度画像データ))を出力する。これらの出力データが、車両制御ユニット等で利用される。
以上説明したように、実施例2では、ガードレール類似物の内側を、歩行者等の検出対象物を検出する検出領域βとしている。また、ガードレール類似物が途切れている場合は、途切れている箇所(不連続部分)よりも外側も検出領域βに含めている。そのため、ガードレール類似物の途切れ目に存在する歩行者等の検出対象物も、早い段階で検出することができる。このように、実施例2でも、ガードレール等の立体物だけでなく、この立体物の途切れ目に着目して検出領域を設定している。これにより、歩行者等を検知する必要性の高い領域に存在する歩行者等の検出対象物、特に、立体物の途切れ目に存在する検出対象物を、効率よく検出することができる。
また、実施例2でも、上記実施例1の変形例2のように、検出した歩行者等の検出対象物を、認識辞書を用いて検証してもよく、判定結果の精度をより向上させることができる。また、ガードレール付近での歩行者等の検出の際に、実施例1のように、不連続な直線から逸脱する線分の存在により歩行者の存在を判定してもよいし、連続する直線から逸脱する線分の存在により歩行者の存在を判定してもよい。これにより、ガードレール付近の歩行者を効率的に検出することができる。さらに、実施例2でも、実施例1で述べたように、ガードレールに沿って走行する自転車、バイク等を検出対象物として検出してもよいし、ガードレールのそばに停車している他車両等を検出対象物として検出してもよい。このような検出対象物がガードレール等の立体物の近辺に存在した場合でも、効率よく検出することができる。さらに、判定結果に、確からしさを表す信頼度を付加してもよいし、検証結果として、水平視差図を利用した歩行者の判定結果(検出結果)、および、輝度画像を利用して検証した検証結果の双方または一方を出力してもよい。
(実施例3)
次に、実施例2に係る画像処理装置について、図17〜図19を用いて説明する。上記各実施例または変形例では、立体物としてガードレール類似物を検出し、このガードレール類似物に基づいて歩行者を検出しているが、実施例3では、立体物として自車両の前方を走行する「車両(前方車両)」を検出し、この車両近辺の歩行者を重点的に検出するものである。「車両」としては、移動面を走行または停車している自動車、バイク、自転車等の他車両、路肩等の移動面付近に停車している他車両等が挙げられる。また、道路際のビル、標識等、歩行者が隠れている可能性のある「車両類似物」等も「車両」に含まれる。この実施例3の画像処理装置も、図2に示すような移動体制御システムに適用することができる。
実施例3に係る画像処理装置としてのステレオ画像処理部は、立体物検出部250に代えて図17に示す立体物検出部2250を備えたこと以外は、図3に示す実施例1と同様の基本構成を有している。そのため、実施例1と同様の構成については、同一の符号を付し、詳細な説明は省略する。
視差演算部210による視差画像データ生成処理、垂直視差図作成部220による垂直視差図作成、移動面位置検出部230による移動面位置検出処理、水平視差図作成部240による水平視差図作成処理については、図9を用いて説明した実施例1のステップS1〜S7と同様であるため、詳細な説明は省略する。以下では、立体物検出部2250の構成と、立体物検出部2250の各部で実行される立体物検出処理について説明する。
図17のブロック図に示すように、実施例3の立体物検出部2250は、車両検出部2251と、検出対象物検出領域指定部としての車両領域指定部2252と、歩行者検出部2253と、を備えて構成されている。
実施例3の立体物検出部2250での歩行者の存在の判定方法を、図18、図19に示す説明図、および、図20に示すフローチャートを用いて説明する。図18(a)は補正画像データa’10を示し、図18(b)は水平視差図作成部240により作成された水平視差図30を示す。図19(a)は車両のそばに歩行者が存在しない場面(シーン)の補正画像データa’(10a)と水平視差図30aとを示す。図19(b)は車両(他車両)のそばに歩行者が存在する場面の補正画像データa’(10b)と水平視差図30bとを示す。図20は、立体物検出部2250による歩行者判定処理の流れを示すフローチャートである。
車両検出部2251は、水平視差図作成部240から出力された水平視差図、例えば、図18(a)の補正画像データa’から作成された図18(b)に示す水平視差図のデータに対して、最小二乗法またはハフ変換(Hough変換)処理を用いて、直線近似する処理を行う。この直線近似したデータに基づいて、車両サイズの立体物を探索する(ステップS181)。すなわち、立体物の長さが、メモリ202等に予め設定した車両についての値の範囲であれば、この直線部分の画素を「車両」として検出し、その「車両位置」(例えば座標)を出力する。図18(b)では、立体物「A」、「B」および「C」が「車両」として検出された。このように、「車両」が検出された場合(ステップS182の判定でYes)は、この検出結果が、車両領域指定部2252に出力され、ステップS183に進む。「車両」が検出されなかった場合(ステップS182の判定でNo)は、その旨が検出結果として立体物検出部2250から出力される。
ステップS183では、車両領域指定部2252が、「車両位置」情報に基づいて、車両検出部2251で検出された「車両」の上下左右(すなわち、「車両」の前方、後方、左側および右側)に+αの領域を指定し、「車両領域」(車両領域を構成する画素)を設定する。例えば、図18(b)の水平視差図30において、立体物「A」、「B」および「C」近傍の一点鎖線で囲った領域が、車両領域指定部2252により「車両領域」として設定された領域である。この「+α」は、実施例3では、プログラム等に予め設定した定数としているが、後述の変形例1で説明するように、検出されたガードレールの距離と、歩行者の大きさとを見積もった変数値としてもよい。実施例3では、この「車両領域」を、歩行者等の検出対象物を検出する「検出領域β」とする。なお、「車両」の前方は、必ずしも「検出領域β」に含めなくてもよく、歩行者が存在する確率の高い「車両」の後方、左側および右側を「検出領域β」とすることもでき、より高速な検出が可能となる。
次に、歩行者検出部2253では、車両領域指定部2252で設定された「検出領域β」すなわち「車両領域」に歩行者が存在するか否かを判定する(歩行者判定処理)。この判定の一例を、図19を用いて説明するが、本願がこの例に限定されることはない。歩行者検出部2253は、「検出領域β」を参照して、「車両」を示す線分に「凸」部分があるか否かを検出する(ステップS184)。「凸」部分とは、具体的には、例えば、「車両」を示す線分から垂直方向(上下方向)に突出する部分や、水平方向(左右方向)に突出(逸脱)する部分等が挙げられる。このような「凸」部分は、「車両」の後方や左右に存在する歩行者である可能性が高い。さらに、「車両」を示す線分に切れ目(不連続)があるか否かを検出してもよい。このような切れ目部分も、歩行者である可能性が高い。図19(a)に示すように、「車両」に対して「凸」部分が検出されない場合(No)は、「車両のみ存在する(歩行者の存在なし)」と判定し、その検出結果を出力して、歩行者判定処理を終了する(ステップS185)。
これに対して、図19(b)に示すように、「凸」部分が存在する場合は、次に、この「凸」部分のサイズを算出し、このサイズが、メモリ202等に予め設定した歩行者のサイズに一致するか否かを判定する(ステップS186)。歩行者のサイズに一致したと判定した場合(Yes)、「車両と歩行者の存在あり」と判定し、ステップS187で、その検出結果(判定結果)を出力して、判定処理を終了する。一方、歩行者のサイズに一致しない場合(No)には、「車両のみ存在する(歩行者の存在なし)」と判定し、ステップS185で、その検出結果(判定結果)を出力して、歩行者判定処理を終了する。
上述のように、歩行者判定処理が終了すると、立体物検出部2250から出力された歩行者検出結果(判定結果)が、ステレオ画像処理部200から、画像データ(視差画像データ、補正画像データ(輝度画像データ))とともに出力データとして出力される。
ステレオ画像処理部200からの出力データは、例えば、車両制御ユニット300等に送信される。この車両制御ユニット300では、これらのデータに基づいて、例えば、ブザー等の警告音や音声アナウンス等によって運転者に対して歩行者の存在を喚起する。また、自動ブレーキの作動やハンドルの自動操舵等により、歩行者等を回避する。
以上、実施例3では、立体物として「車両」を検出し、この「車両」近辺の歩行者を重点的に検出している。そのため、歩行者等を検知する必要性の高い「車両」の近辺に存在する歩行者等を、効率よく検出することが可能となる。
なお、本願の実施例3および後述の変形例1〜3でも、歩行者検出結果(判定結果)に、確からしさを表す信頼度を付加することができる。また、検証結果として、水平視差図を利用した歩行者の判定結果(検出結果)、輝度画像を利用して検証した検証結果の双方または一方を出力することもできる。また、検出結果として「車両領域」に存在する歩行者等の検出結果だけでなく、道路を横切る歩行者等の検出や、実施例1、2、実施例1の変形例と組み合わせて、「ガードレール類似物」の近辺や内側に存在する歩行者の検出も行うようにして、その検出結果を併せて出力することもできる。
(実施例3の変形例1)
次に、実施例3に係る画像処理装置の一変形例(以下、「変形例1」という。)について、図21を用いて説明する。図21は、実施例3の変形例1の立体物検出部2250Aの機能構成を示す機能ブロック図である。この図21に示すように、変形例1の立体物検出部2250Aは、領域範囲テーブル2254をさらに備えていること以外は、実施例3の立体物検出部2250と同様の基本構成を有している。そのため、実施例3と同様の構成については、同一の符号を付し、詳細な説明は省略する。この領域範囲テーブル2254は、メモリ202(図2参照)中に保持(記憶)され、車両領域指定部2252によって参照される。
上記実施例3では、車両領域指定部2252は、「車両」の上下左右に+αの領域を指定する際に、αとして定数を使用している。これに対して、変形例1では、メモリ202から読み出した領域範囲テーブル254から取得したα(変数値)を用いている。この領域範囲テーブル2254には、自車両400から「車両」までの距離と、変数値αとが対応づけられて記憶されている。車両領域指定部2252は、「車両」の距離に対応する変数値αを領域範囲テーブル254から取得し、車両領域+αの領域を設定する。自車両400から「車両」までの距離が大きい(遠距離)ほど、歩行者の幅、高さともに小さいため、αの値は小さくなる。撮像ユニット100を搭載した自車両400から「車両」までの距離が小さい(近距離)ほど、歩行者の幅、高さともに大きいため、αの値は大きくなる。
このように指定された「車両領域(検出領域β)」を用いて、例えば実施例3と同様に、「車両」を示す線分に対して、「凸」部分があるか否かによって歩行者の存在を検出する。以上、変形例1では、自車両400からの距離に応じて、歩行者を検出する領域を拡縮しているため、より精度よく、かつ、より効率的に歩行者を検出することができる。
(実施例3の変形例2)
次に、実施例3に係る画像処理装置の他の変形例(以下、「変形例2」という。)について、図22を用いて説明する。図22は、変形例2の立体物検出部2250Bの機能構成を示す機能ブロック図である。この図22に示すように、変形例2の立体物検出部2250Bは、認識辞書入力部2255および歩行者検証部2256を追加したこと以外は、実施例3の立体物検出部2250と同様の基本構成を有している。そのため、実施例3と同様の構成については、同一の符号を付し、詳細な説明は省略する。
変形例2では、実施例3と同様にして、水平視差図を用いて歩行者検出部2253で歩行者を検出し、検出した歩行者(歩行者らしさ)に対して、さらに輝度画像データ(例えば、補正画像データa’)を用いて、歩行者検証部2256によって、その検証を行う機能を有している。
認識辞書入力部2255は、実施例1の変形例2における認識辞書入力部255と同様に、メモリ202中に保持(記憶)された歩行者の検証に用いる認識辞書(図示せず)を読み出し、歩行者検証部2256に出力する。この認識辞書も、実施例1の変形例2で説明したように、歩行者の撮影画像のパターンマッチング用の様々なテンプレートデータ(人物の形状パターン)が記憶されている。
歩行者検出部2253の検出結果から、歩行者らしい立体物の存在領域がわかるので、歩行者検証部2256では、実施例1の変形例2における歩行者検証部256と同様に、補正画像データa’を利用して、歩行者検出部2253で歩行者と判定された立体物の形状と、認識辞書に記憶された歩行者の様々なテンプレートデータとを照合し、検出結果を検証している。したがって、実施例3の変形例2では、歩行者(検出対象物)の存在を、より精度よく検出することができる。
(実施例3の変形例3)
次に、実施例3に係る画像処理装置の他の変形例(以下、「変形例3」という。)について説明する。変形例3では、撮像装置としての撮像ユニット100(撮像装置搭載車両)と立体物である「車両」との位置関係によって、歩行者を探索する「車両領域(検出領域β)」を変更している。歩行者が存在する確率の高い領域を重点的に探索することで、歩行者の検出精度を向上させるためである。
以下、図23を用いて変形例3での「車両領域(検出領域β)」の設定方法を説明する。図23(a)、(b)、(c)は、それぞれ撮像ユニット100と「車両」との位置関係に対応して設定される「車両領域(検出領域β)」を示す概略図である。
図23(a)に示すように、「車両」が撮像ユニット100を搭載した自車両と同じ走行車線を走行するなど、撮像ユニット100のほぼ正面に「車両」が存在する場合は、「車両」の左右および後方(図面の下方)を「車両領域(検出領域β)」とする。この位置関係では、「車両」と重なっている歩行者や、「車両」の左右から飛び出す可能性のある歩行者に注意する必要があるためである。
これに対して、図23(b)に示すように、「車両」が自車両の右側の車線を走行するなどにより、撮像ユニット100の右前方に「車両」が存在する場合は、「車両」の左側および後方を「車両領域(検出領域β)」とする。この位置関係では、「車両」の左側から飛び出す可能性のある歩行者や、「車両」と重なる歩行者に注意する必要があり、このような歩行者をより迅速に検出するためである。
また、図23(c)に示すように、「車両」が自車両の左側の車線を走行するなどにより、撮像ユニット100の左前方に「車両」が存在する場合は、「車両」の右側および後方を「車両領域(検出領域β)」とする。この位置関係では、「車両」の右側から飛び出す可能性のある歩行者や、「車両」と重なる歩行者に注意する必要があり、このような歩行者をより迅速に検出するためである。
以上のように、注意すべき歩行者が存在する確率の高い領域を「車両領域(検出領域β)」とすることで、余計なものを認識してしまうなどの誤認識を低減することができる。また、限定した領域を探索するので、運転にとって危険な歩行者をより早く認識することができる。
以上、本発明の実施例および変形例を図面により詳述してきたが、上記各実施例等は本発明の例示にしか過ぎないものであり、本発明は上記各実施例等の構成にのみ限定されるものではない。本発明の要旨を逸脱しない範囲の設計の変更等があっても、本発明に含まれる。