[ブロックマッチング処理を用いた測距方法の概略]
まず、図1〜3を用いて、ブロックマッチング処理による測距方法の概略について説明する。
(測距の原理)
図1は、撮像部から物体までの距離を導き出す原理を説明する図である。図1を参照しながら、ステレオマッチング処理により、ステレオカメラから物体に対する視差を導出し、この視差を示す視差値によって、ステレオカメラから物体までの距離を測定する原理について説明する。
図1に示す撮像システムは、平行等位に配置された撮像部10a(第1撮像手段)と撮像部10b(第2撮像手段)とを有するものとする。撮像部10a、10bは、それぞれ、入射する光を屈折させて物体の像を固体撮像素子である画像センサに結像させる撮像レンズ11a、11bを有する。撮像部10aおよび撮像部10bによって撮像された各画像を、それぞれ基準画像Ia(第1撮像画像)および比較画像Ib(第2撮像画像)とする。図1において、3次元空間内の物体E上の点Sは、基準画像Iaおよび比較画像Ibそれぞれにおいて、撮像レンズ11aと撮像レンズ11bとを結ぶ直線と平行な直線上の位置に写像される。ここで、各画像に写像された点Sを、基準画像Iaにおいて点Sa(x,y)とし、比較画像Ibにおいて点Sb(X,y)とする。このとき、視差値dpは、基準画像Ia上の座標における点Sa(x,y)と比較画像Ib上の座標における点Sb(X,y)とを用いて、以下の(式1)のように表される。
dp=X−x (式1)
また、図1において、基準画像Iaにおける点Sa(x,y)と撮像レンズ11aから撮像面上におろした垂線の交点との距離をΔaとし、比較画像Ibにおける点Sb(X,y)と撮像レンズ11bから撮像面上におろした垂線の交点との距離をΔbにすると、視差値dpは、dp=Δa+Δbと表すこともできる。
次に、視差値dpを用いることにより、撮像部10a、10bと物体Eとの間の距離Zを導出する。ここで、距離Zは、撮像レンズ11aの焦点位置と撮像レンズ11bの焦点位置とを結ぶ直線から物体E上の点Sまでの距離である。図1に示すように、撮像レンズ11aおよび撮像レンズ11bの焦点距離f、撮像レンズ11aと撮像レンズ11bとの間の長さである基線長B、および視差値dpを用いて、下記の(式2)により、距離Zを算出することができる。
Z=(B×f)/dp (式2)
この(式2)により、視差値dpが大きいほど距離Zは小さく、視差値dpが小さいほど距離Zは大きくなることがわかる。
(ブロックマッチング処理)
次に、図2および3を用いて、ブロックマッチング処理による測距方法について説明する。
図2は、基準画像における基準画素に対応する比較画像における対応画素を求める場合の説明図である。図3は、マッチング処理結果のグラフの一例を示す図である。
図2および3を参照しながら、コスト値C(p,d)の算出方法について説明する。なお、以降、C(p,d)は、C(x,y,d)を表すものとして説明する。
図2のうち、図2(a)は、基準画像Iaにおける基準画素pおよび基準領域pbを示す概念図を示し、図2(b)は、図2(a)に示す基準画素pに対応する比較画像Ibにおける対応画素の候補を順次シフトしながら(ずらしながら)、コスト値Cを算出する際の概念図である。ここで、対応画素とは、基準画像Iaにおける基準画素pに最も類似する比較画像Ibにおける画素を示す。また、コスト値Cとは、基準画像Iaにおける基準画素pに対する、比較画像Ibにおける各画素の類似度または非類似度を表す評価値(一致度)である。以下に示すコスト値Cは、値が小さいほど、比較画像Ibにおける画素が基準画素pと類似していることを示す非類似度を表す評価値であるものとして説明する。
図2(a)に示すように、基準画像Iaにおける基準画素p(x,y)、および、基準画素p(x,y)に対する比較画像Ibにおけるエピポーラ線EL上の対応画素の候補である候補画素q(x+d,y)の各輝度値(画素値)に基づいて、基準画素p(x,y)に対する対応画素の候補画素q(x+d,y)のコスト値C(p,d)が算出される。dは、基準画素pと候補画素qとのシフト量(ずれ量)であり、シフト量dは、画素単位でシフトされる。すなわち、候補画素q(x+d,y)を予め指定された範囲(例えば、0<d<25)において順次一画素分シフトしながら、候補画素q(x+d,y)と基準画素p(x,y)との輝度値の非類似度であるコスト値C(p,d)が算出される。また、基準画素pの対応画素を求めるためマッチング処理として、本実施の形態ではブロックマッチング(テンプレートマッチング)処理を行う。ブロックマッチング処理では、基準画像Iaの基準画素pを中心とする所定領域である基準領域pbと、比較画像Ibの候補画素qを中心とする候補領域qb(大きさは基準領域pbと同一)との非類似度を求める。基準領域pbと候補領域qbとの非類似度を示すコスト値Cとしては、SAD(Sum of Absolute Difference)、SSD(Sum of Squared Difference)、または、SSDの値から各ブロックの平均値を減算したZSSD(Zero−mean−Sum of Squared Difference)等が用いられる。これらの評価値は、相関が高い(類似の度合いが高い)ほど、値が小さくなるので非類似度を示す。
なお、上述のように、撮像部10a、10bは、それぞれ平行等位に配置されるため、基準画像Iaおよび比較画像Ibも、それぞれ平行等位の関係にある。したがって、基準画像Iaにおける基準画素pに対応する比較画像Ibにおける対応画素は、図2に紙面視横方向の線として示されるエピポーラ線EL上に存在することになり、比較画像Ibにおける対応画素を求めるためには、比較画像Ibのエピポーラ線EL上の画素を探索すればよい。
このようなブロックマッチング処理で算出されたコスト値C(p,d)は、シフト量dとの関係で、例えば、図3に示すグラフにより表される。図3の例では、コスト値Cは、シフト量d=7の場合が最小値となるため、視差値dp=7として導出される。
以下に、図4〜21を参照しながら、本発明に係る画像処理装置、物体認識装置、機器制御システム、画像処理方法およびプログラムの実施の形態を詳細に説明する。また、以下の実施の形態によって本発明が限定されるものではなく、以下の実施の形態における構成要素には、当業者が容易に想到できるもの、実質的に同一のもの、およびいわゆる均等の範囲のものが含まれる。さらに、以下の実施の形態の要旨を逸脱しない範囲で構成要素の種々の省略、置換、変更および組み合わせを行うことができる。
[第1の実施の形態]
以下、図4〜15を用いて、第1の実施の形態の具体的な説明をする。ここでは、ブロックマッチング処理を行う物体認識装置1が自動車に搭載される場合を例に説明する。
(物体認識装置の動作の概要)
図4は、物体認識装置の動作の概要を説明する図である。図4を参照しながら、まず、本実施の形態に係る物体認識装置1において、車両の認識画像上で部分認識された部分認識画像を棄却するか否かの動作の概要について説明する。
本実施の形態に係る物体認識装置1は、正認識された車両の認識画像(対象画像)上で部分認識された部分認識画像(部分画像)を棄却するか否かを判定する。本実施の形態では、例えば、図4(a)に示すように、物体認識装置1により正認識された車両の認識画像700上で部分認識された部分認識画像800が、正認識でない、すなわち、人と認識した画像ではない場合を想定する。この場合、正認識ではない部分認識画像800をトラッキング(追跡)処理の対象としてしまうと、認識画像700の車両に対してトラッキング処理を行うことができなくなる。そのため、認識画像700の車両に対してトラッキング処理を行うことができるように、図4(a)に示す部分認識画像800は、誤認識であるものとして棄却する必要がある。
また、本実施の形態では、図4(b)に示すように、物体認識装置1により正認識された車両の認識画像701上で部分認識された部分認識画像801が、正認識である、すなわち、人を認識した画像である場合を想定する。この場合、部分認識画像801は、人を認識した画像、すなわち、正認識した画像なので、部分認識画像801の人に対してトラッキング処理を行う必要があり、棄却されるべきではない。なお、図4(b)に示す場面において、部分認識画像801の人のみをトラッキング処理の対象としてもよく、または、認識画像701および部分認識画像801はいずれも正認識であるので、認識画像701の車両、および部分認識画像801の人のいずれもトラッキング処理の対象としてもよい。
なお、図4においては、車両の認識画像に、部分認識画像が完全に含まれる例を示したが、これに限定されるものではなく、車両の認識画像に、少なくとも一部が重複した認識画像についても部分認識画像として扱うものとする。
(物体認識装置を備えた車両の概略構成)
図5は、第1の実施の形態に係る機器制御システムを車両に搭載した例を示す図である。図5を参照しながら、本実施の形態に機器制御システム60を搭載した車両70について説明する。図5のうち、図5(a)は、機器制御システム60を搭載した車両70の側面図であり、図5(b)は、車両70の正面図である。
図5に示すように、自動車である車両70は、機器制御システム60を搭載している。機器制御システム60は、車両70の居室空間である車室に設置された物体認識装置1と、車両制御装置6(制御装置)と、ステアリングホイール7と、ブレーキペダル8と、を備えている。
物体認識装置1は、車両70の進行方向を撮像する撮像機能を有し、例えば、車両70のフロントウィンドウ内側のバックミラー近傍に設置される。物体認識装置1は、詳細は後述するが、本体部2と、本体部2に固定された撮像部10aと、撮像部10bとを備えている。撮像部10a、10bは、車両70の進行方向の被写体を撮像できるように本体部2に固定されている。
車両制御装置6は、物体認識装置1から受信した認識情報に基づいて、認識した物体のトラッキング動作等を行うことにより各種車両制御を実行するECU(Electronic Control Unit)である。車両制御装置6は、車両制御の例として、物体認識装置1から受信した認識情報に基づいて、ステアリングホイール7を含むステアリング系統(制御対象)を制御して障害物を回避するステアリング制御、または、ブレーキペダル8(制御対象)を制御して車両70を減速および停止させるブレーキ制御等を実行する。
このような物体認識装置1および車両制御装置6を含む機器制御システム60のように、ステアリング制御またはブレーキ制御等の車両制御が実行されることによって、車両70の運転の安全性を向上することができる。
なお、上述のように、物体認識装置1は、車両70の前方を撮像するものとしたが、これに限定されるものではない。すなわち、物体認識装置1は、車両70の後方または側方を撮像するように設置されるものとしてもよい。この場合、物体認識装置1は、車両70の後方の後続車および人、または側方の他の車両および人等の位置を検出することができる。そして、車両制御装置6は、車両70の車線変更時または車線合流時等における危険を検知して、上述の車両制御を実行することができる。また、車両制御装置6は、車両70の駐車時等におけるバック動作において、物体認識装置1によって出力された車両70の後方の障害物についての認識情報に基づいて、衝突の危険があると判断した場合に、上述の車両制御を実行することができる。
(物体認識装置の構成)
図6は、第1の実施の形態に係る物体認識装置の外観の一例を示す図である。図6に示すように、物体認識装置1は、上述のように、本体部2と、本体部2に固定された撮像部10aと、撮像部10bとを備えている。撮像部10a、10bは、本体部2に対して平行等位に配置された一対の円筒形状のカメラで構成されている。また、説明の便宜上、図6に示す撮像部10aを「右」のカメラと称し、撮像部10bを「左」のカメラと称するものとする。
<物体認識装置のハードウェア構成>
図7は、第1の実施の形態に係る物体認識装置のハードウェア構成の一例を示す図である。図7を参照しながら、物体認識装置1のハードウェア構成について説明する。
図7に示すように、物体認識装置1は、本体部2内に視差値導出部3および認識処理部5を備えている。
視差値導出部3は、物体Eを撮像して得られた複数の画像から、物体Eに対する視差を示す視差値dpを導出し、各画素における視差値dpを示す視差画像を出力する。認識処理部5は、視差値導出部3から出力された視差画像に基づいて、撮像画像に写り込んでいる人および車等の物体の認識処理等を行い、認識処理の結果を示す情報である認識情報を、車両制御装置6に出力する。
図7に示すように、視差値導出部3は、撮像部10aと、撮像部10bと、信号変換部20aと、信号変換部20bと、画像処理部30と、を備えている。
撮像部10aは、前方の被写体を撮像してアナログの画像信号を生成する処理部である。撮像部10aは、撮像レンズ11aと、絞り12aと、画像センサ13aと、を備えている。
撮像レンズ11aは、入射する光を屈折させて物体の像を画像センサ13aに結像させるための光学素子である。絞り12aは、撮像レンズ11aを通過した光の一部を遮ることによって、画像センサ13aに入力する光の量を調整する部材である。画像センサ13aは、撮像レンズ11aに入射し、絞り12aを通過した光を電気的なアナログの画像信号に変換する半導体素子である。画像センサ13aは、例えば、CCD(Charge Coupled Devices)またはCMOS(Complementary Metal Oxide Semiconductor)等の固体撮像素子によって実現される。
撮像部10bは、前方の被写体を撮像してアナログの画像信号を生成する処理部である。撮像部10bは、撮像レンズ11bと、絞り12bと、画像センサ13bと、を備えている。なお、撮像レンズ11b、絞り12bおよび画像センサ13bの機能は、それぞれ上述した撮像レンズ11a、絞り12aおよび画像センサ13aの機能と同様である。また、撮像レンズ11aおよび撮像レンズ11bは、左右のカメラが同一の条件で撮像されるように、それぞれのレンズ面が互いに同一平面上にあるように設置されている。
信号変換部20aは、撮像部10aにより生成されたアナログの画像信号を、デジタル形式の画像データに変換する処理部である。信号変換部20aは、CDS(Correlated Double Sampling)21aと、AGC(Auto Gain Control)22aと、ADC(Analog Digital Converter)23aと、フレームメモリ24aと、を備えている。
CDS21aは、画像センサ13aにより生成されたアナログの画像信号に対して、相関二重サンプリング、横方向の微分フィルタ、または縦方向の平滑フィルタ等によりノイズを除去する。AGC22aは、CDS21aによってノイズが除去されたアナログの画像信号の強度を制御する利得制御を行う。ADC23aは、AGC22aによって利得制御されたアナログの画像信号をデジタル形式の画像データに変換する。フレームメモリ24aは、ADC23aによって変換された画像データを記憶する。
信号変換部20bは、撮像部10bにより生成されたアナログの画像信号を、デジタル形式の画像データに変換する処理部である。信号変換部20bは、CDS21bと、AGC22bと、ADC23bと、フレームメモリ24bと、を備えている。なお、CDS21b、AGC22b、ADC23bおよびフレームメモリ24bの機能は、それぞれ上述したCDS21a、AGC22a、ADC23aおよびフレームメモリ24aの機能と同様である。
画像処理部30は、信号変換部20aおよび信号変換部20bによって変換された画像データに対して画像処理をする装置である。画像処理部30は、FPGA(Field Programmable Gate Array)31と、CPU(Central Processing Unit)32と、ROM(Read Only Memory)33と、RAM(Random Access Memory)34と、I/F(Interface)35と、バスライン39と、を備えている。
FPGA31は、集積回路であり、ここでは、画像データに基づく画像における視差値dpを導出する処理を行う。CPU32は、視差値導出部3の各機能を制御する。ROM33は、CPU32が視差値導出部3の各機能を制御するために実行する画像処理用プログラムを記憶している。RAM34は、CPU32のワークエリアとして使用される。I/F35は、認識処理部5におけるI/F55と、通信線4とを介して通信するためのインターフェースである。バスライン39は、図7に示すように、FPGA31、CPU32、ROM33、RAM34およびI/F35が互いに通信可能となるように接続するアドレスバスおよびデータバス等である。
なお、画像処理部30は、視差値dpを導出する集積回路としてFPGA31を備えるものとしているが、これに限定されるものではなく、ASIC(Application Specific Integrated Circuit)等の集積回路であってもよい。
図7に示すように、認識処理部5は、FPGA51と、CPU52と、ROM53と、RAM54と、I/F55と、CAN(Controller Area Network)I/F58と、バスライン59と、を備えている。
FPGA51は、集積回路であり、ここでは、画像処理部30から受信した視差画像に基づいて、物体に対する認識処理を行う。CPU52は、認識処理部5の各機能を制御する。ROM53は、CPU52が認識処理部5の認識処理を実行する認識処理用プログラムを記憶している。RAM54は、CPU52のワークエリアとして使用される。I/F55は、画像処理部30のI/F35と、通信線4とを介してデータ通信するためのインターフェースである。CANI/F58は、外部コントローラ(例えば、図7に示す車両制御装置6)と通信するためのインターフェースであり、例えば、自動車のCAN等に接続されるバスライン59は、図7に示すように、FPGA51、CPU52、ROM53、RAM54、I/F55およびCANI/F58が互いに通信可能となるように接続するアドレスバスおよびデータバス等である。
このような構成により、画像処理部30のI/F35から通信線4を介して認識処理部5に視差画像が送信されると、認識処理部5におけるCPU52の命令によって、FPGA51が、視差画像に基づいて、撮像画像に写り込んでいる人および車等の物体の認識処理等を実行する。
なお、上述の各プログラムは、インストール可能な形式または実行可能な形式のファイルで、コンピュータで読み取り可能な記録媒体に記録して流通させてもよい。この記録媒体は、CD−ROM(Compact Disc Read Only Memory)またはSD(Secure Digital)メモリカード等である。
<物体認識装置の機能ブロックの構成および動作>
図8は、第1の実施の形態に係る物体認識装置の機能ブロック構成の一例を示す図である。図9は、第1の実施の形態に係る物体認識装置の視差値演算処理部の機能ブロック構成の一例を示す図である。図10は、第1の実施の形態に係る物体認識装置の棄却部の機能ブロック構成の一例を示す図である。図8〜10を参照しながら、物体認識装置1の要部の機能ブロックの構成および動作について説明する。
図7でも上述したが、図8に示すように、物体認識装置1は、視差値導出部3と、認識処理部5と、を備えている。このうち、視差値導出部3は、画像取得部100と、変換部200と、視差値演算処理部300(生成手段)と、を有する。
画像取得部100は、左右2台のカメラにより前方の被写体を撮像して、それぞれアナログの画像信号を生成し、各画像信号に基づく画像である2つの輝度画像を得る機能部である。画像取得部100は、図7に示す撮像部10aおよび撮像部10bによって実現される。
変換部200は、画像取得部100により得られた2つの輝度画像の画像データに対して、ノイズを除去し、デジタル形式の画像データに変換して出力する機能部である。ここで、変換部200が出力する2つの輝度画像の画像データ(以下、単に、輝度画像と称する)のうち、画像取得部100の右のカメラ(撮像部10a)により撮像された基準画像Iaの画像データ(以下、単に、基準画像Iaと称する)とし、左のカメラ(撮像部10b)により撮像された比較画像Ibの画像データ(以下、単に、比較画像Ibと称する)とする。すなわち、変換部200は、画像取得部100から出力された2つの輝度画像に基づいて、基準画像Iaおよび比較画像Ibを出力する。変換部200は、図7に示す信号変換部20a、20bによって実現される。
視差値演算処理部300は、変換部200から受信した基準画像Iaおよび比較画像Ibに基づいて、基準画像Iaの各画素についての視差値を導出し、基準画像Iaの各画素に視差値を対応させた視差画像を生成する機能部である。視差値演算処理部300は、生成した視差画像を、認識処理部5に出力する。
認識処理部5は、クラスタリング部400(抽出手段)と、棄却部500と、トラッキング判定部550と、を有する。
クラスタリング部400は、視差値導出部3から出力された視差画像および基準画像Iaに基づいて、基準画像から、人および車等の物体を認識して、これらの物体を含む認識画像を抽出するクラスタリング処理を行う機能部である。なお、クラスタリング処理の詳細については、後述する。クラスタリング部400は、図7に示すFPGA51によって実現される。
なお、クラスタリング部400は、ハードウェア回路であるFPGA51ではなく、ROM53に記憶されているプログラムがCPU52によって実行されることによって実現されるものとしてもよい。また、クラスタリング処理の対象となるのは基準画像Iaに限定されるものではなく、比較画像Ibを対象とするものとしてもよい。
棄却部500は、視差値導出部3から出力された基準画像Ia、およびクラスタリング部400から出力された認識画像を示す情報(例えば、基準画像Iaでの位置を示す座標、およびサイズ等)(以下、単に「認識画像情報」という)に基づいて、認識画像情報で示される認識画像について棄却判定処理を実行する機能部である。なお、棄却判定処理については、後述する。
トラッキング判定部550は、棄却部500からの棄却判定処理結果に基づいて、認識画像の物体に対してトラッキングを行うか否かを判定する機能部である。例えば、トラッキング判定部550は、棄却部500で棄却と判定されなかった物体に対してトラッキングを行うものと判定し、その物体の認識画像情報にトラッキングを行う旨の情報を含め、認識情報として車両制御装置6に出力する。トラッキング判定部550は、図7に示すFPGA51によって実現される。
なお、トラッキング判定部550は、ハードウェア回路であるFPGA51ではなく、ROM53に記憶されているプログラムがCPU52によって実行されることによって実現されるものとしてもよい。
なお、図8に示す視差値導出部3の画像取得部100、変換部200および視差値演算処理部300、ならびに認識処理部5のクラスタリング部400、棄却部500およびトラッキング判定部550は、機能を概念的に示したものであって、このような構成に限定されるものではない。例えば、図8に示す視差値導出部3および認識処理部5で独立した機能部として図示した複数の機能部を、1つの機能部として構成してもよい。一方、図8に示す視差値導出部3および認識処理部5で1つの機能部が有する機能を複数に分割し、複数の機能部として構成するものとしてもよい。
図9に示すように、視差値演算処理部300は、コスト算出部301と、決定部302と、生成部303と、を有する。
コスト算出部301は、基準画像Iaにおける基準画素p(x,y)の輝度値、および、基準画素p(x,y)に基づく比較画像Ibにおけるエピポーラ線EL上で、基準画素p(x,y)の位置に相当する画素からシフト量dでシフトすることにより特定される、対応画素の候補である候補画素q(x+d,y)の各輝度値に基づいて、各候補画素q(x+d,y)のコスト値C(p,d)を算出する機能部である。具体的には、コスト算出部301は、ブロックマッチング処理により、基準画像Iaの基準画素pを中心とする所定領域である基準領域pbと、比較画像Ibの候補画素qを中心とする候補領域qb(大きさは基準領域pbと同一)との非類似度をコスト値Cとして算出する。
決定部302は、コスト算出部301により算出されたコスト値Cの最小値に対応するシフト量dを、コスト値Cの算出の対象となった基準画像Iaの画素についての視差値dpとして決定する機能部である。
生成部303は、決定部302により決定された視差値dpに基づいて、基準画像Iaの各画素の輝度値を、その画素に対応する視差値dpで表した画像である視差画像を生成する機能部である。
図9に示すコスト算出部301、決定部302および生成部303は、それぞれ図7に示すFPGA31によって実現される。なお、コスト算出部301、決定部302および生成部303の一部または全部は、ハードウェア回路であるFPGA31ではなく、ROM33に記憶されているプログラムがCPU32によって実行されることによって実現されるものとしてもよい。
なお、図9に示す視差値演算処理部300のコスト算出部301、決定部302および生成部303は、機能を概念的に示したものであって、このような構成に限定されるものではない。例えば、図9に示す視差値演算処理部300で独立した機能部として図示した複数の機能部を、1つの機能部として構成してもよい。一方、図9に示す視差値演算処理部300で1つの機能部が有する機能を複数に分割し、複数の機能部として構成するものとしてもよい。
図10に示すように、棄却部500は、入力部501(入力手段)と、画像認識部502と、棄却判定部503(判定手段)と、出力部504(出力手段)と、を有する。
入力部501は、視差値導出部3から出力された基準画像Ia、およびクラスタリング部400から出力された認識画像情報を入力する機能部である。なお、入力部501は、視差値導出部3およびクラスタリング部400から、それぞれ基準画像Iaおよび認識画像情報を入力することに限定されず、例えば、図7に示すRAM34、RAM54、CD(Compact Disc)、DVD(Digital Versatile Disc)もしくはHDD(Hard Disk Drive)等の記憶メディア、またはネットワークストレージに記憶されている基準画像Iaまたは認識画像情報を読み出して入力するものとしてもよい。また、入力部501は、認識画像情報を入力する代わりに、クラスタリング部400から認識画像そのものを入力するものとしてもよい。
画像認識部502は、入力部501により入力された入力情報(基準画像Iaおよび認識画像情報)に基づいて、認識画像情報により特定される基準画像Ia上での認識画像の物体が車両であるか否かを認識し、さらに、その車両の認識画像上で部分認識が発生しているか否かを認識する機能部である。画像認識部502は、図10に示すように、車両認識部502a(第1認識手段)と、部分認識部502b(第2認識手段)と、を有する。
車両認識部502aは、入力部501より入力された認識画像情報が示す認識画像が、認識された物体が車両であるか否かを認識(以下、「車両認識」という場合がある)する機能部である。車両認識の方法として、車両であるか否かを認識できる方法であれば、任意の方法を使用することができる。例えば、車両用のテンプレートを事前に用意しておき、対象の認識画像に対してテンプレートマッチングさせることで認識する方法が一例として挙げられる。また、SIFT(Scale−Invariant Feature Transform)等の局所特徴量を量子化したベクトルを用いて認識に利用するBag−of−Visual−Words法、または、ニューラルネットを多層化した「Deep Learning」を用いる方法等も例として挙げられる。車両認識部502aは、認識画像が車両を示すと認識した場合、その旨、およびその認識画像情報を部分認識部502bに送る。
部分認識部502bは、車両認識部502aにより車両と認識された認識画像上で部分認識が発生しているか否か、すなわち、認識画像上に部分認識画像が重複しているか否かを認識する機能部である。部分認識部502bは、車両の認識画像上で部分認識が発生しているか否かの結果と、認識画像情報(車両の認識画像、およびそれに重複している部分認識画像を示す情報)とを認識結果として棄却判定部503に送る。なお、部分認識部502bは、車両の認識画像上で重複する部分認識画像は1つとは限られず、複数の部分認識画像が認識される場合もある。
なお、基準画像Iaは、グレースケールの画像であっても、RGB等のカラー画像であってもよい。カラー画像である場合、特定の成分のみを車両認識および部分認識の対象としてもよく、成分ごとにそれぞれ車両認識および部分認識を行い、最後にその結果を統合するものとしてもよい。また、RGB形式をYIQ形式などの異なる表色系に変換して、明度成分(Yチャネル)等の特定の成分を車両認識および部分認識の対象とするものとしてもよい。以下では、画像認識部502の車両認識および部分認識の対象とする基準画像Iaは、例えば、8ビットのグレースケールの輝度値の画素で構成されているものとして説明する。
棄却判定部503は、画像認識部502から出力された認識結果から、以下に示す所定の条件を満たすか否かに基づいて、認識結果に含まれる認識画像情報が示す部分認識画像を棄却するか否かを判定する機能部である。具体的には、棄却判定部503は、認識画像上に部分認識画像が重複している場合、車両70(図5参照)の速度(以下、「自車速度」という場合がある)の情報(車速情報)を、例えば、CANI/F58経由で取得し、所定の条件として自車速度が所定速度以上である場合、車両70が高速道路を走行中であると判断(すなわち、人が歩行中の状態ではないと予測)し、その部分認識画像を棄却する。この場合、車両70が高速道路を走行中であると判断するためには、上述の所定速度を高めに設定しておくことが望ましい。一方、棄却判定部503は、自車速度が所定速度未満である場合、車両70が高速道路を走行中でないと判断(すなわち、人が歩行中の状態である可能性があると予測)し、その部分認識画像を棄却しない。棄却判定部503は、棄却の判定結果を出力部504に出力する。
なお、棄却判定部503は、車両の認識画像上に部分認識画像が複数重複している場合、すべての部分認識画像に対して棄却の判定をしてもよく、一部の部分認識画像に対して棄却の判定をしてもよい。例えば、棄却の判定の対象とする部分認識画像は、サイズ、または認識画像上における相対位置等に基づいて決定するものとしてもよい。また、棄却判定部503は、棄却判定部503の棄却の判定のタイミングで計測された自車速度を取得してもよく、クラスタリング部400のクラスタリング処理により対象の部分認識画像が抽出されたタイミングで計測された自車速度を取得してもよく、または、画像取得部100により輝度画像が取得されたタイミングで計測された自車速度を取得してもよい。また、棄却判定部503は、例えば、CANI/F58経由で自車速度を取得し、取得した自車速度に基づいて車両70が高速道路を走行中であると判断するものとしているが、これに限定されるものではなく、例えば、GPS(Global Positioning System)によって車両70の現在位置の状態を示す情報を取得し、取得した情報に基づいて高速道路を走行中であるか否かを判断するものとしてもよい。
出力部504は、棄却判定部503から出力された棄却の判定結果、すなわち、その部分認識画像を棄却するか否かを示す棄却フラグを認識画像情報に含めて、トラッキング判定部550に送る。この棄却フラグを含む認識画像情報は、図8では認識処理部5の認識情報として示されている。なお、出力部504は、部分認識画像を棄却するか否かを示す棄却フラグを含む認識画像情報と、部分認識画像が重複した車両の認識画像を棄却するか否かを示す棄却フラグを含む認識画像情報と、を別々に送るものとしてもよい。上述のように、部分認識画像が棄却される場合、車両の認識画像は棄却すべきではないので、部分認識画像の棄却フラグはONとし、車両の認識画像の棄却フラグはOFFとする。一方、部分認識画像が棄却されない場合、部分認識画像および車両の認識画像のいずれの棄却フラグもOFFとする。ただし、物体認識装置1に求められる仕様によっては、部分認識画像が棄却されない場合(すなわち、部分認識画像が人を示す場合)、部分認識画像に対する処理(例えば、トラッキング処理)を優先し、部分認識画像の棄却フラグのみをOFFとし、車両の認識画像の棄却フラグはONとするものとしてもよい。
なお、本発明に係る「画像処理装置」は、棄却部500であってもよく、棄却部500を含む認識処理部5であってもよい。
図10に示す入力部501、画像認識部502、棄却判定部503および出力部504は、それぞれ図7に示すFPGA51によって実現される。なお、入力部501、画像認識部502、棄却判定部503および出力部504の一部または全部は、ハードウェア回路であるFPGA51ではなく、ROM53に記憶されているプログラムがCPU52によって実行されることによって実現されるものとしてもよい。
なお、図10に示す棄却部500の入力部501、画像認識部502、棄却判定部503および出力部504は、機能を概念的に示したものであって、このような構成に限定されるものではない。例えば、図10に示す棄却部500で独立した機能部として図示した複数の機能部を、1つの機能部として構成してもよい。一方、図10に示す棄却部500で1つの機能部が有する機能を複数に分割し、複数の機能部として構成するものとしてもよい。
(視差値導出部のブロックマッチング処理)
図11は、第1の実施の形態に係る視差値導出部のブロックマッチング処理の動作の一例を示すフローチャートである。図11を参照しながら、物体認識装置1の視差値導出部3のブロックマッチング処理の動作の流れについて説明する。
<ステップS1−1>
視差値導出部3の画像取得部100は、左のカメラ(撮像部10b)により前方の被写体を撮像して、それぞれアナログの画像信号を生成し、その画像信号に基づく画像である輝度画像を得る。これによって、後段の画像処理の対象となる画像信号が得られることになる。そして、ステップS2−1へ移行する。
<ステップS1−2>
視差値導出部3の画像取得部100は、右のカメラ(撮像部10a)により前方の被写体を撮像して、それぞれアナログの画像信号を生成し、その画像信号に基づく画像である輝度画像を得る。これによって、後段の画像処理の対象となる画像信号が得られることになる。そして、ステップS2−2へ移行する。
<ステップS2−1>
視差値導出部3の変換部200は、撮像部10bにより撮像されて得られたアナログの画像信号に対して、ノイズを除去し、デジタル形式の画像データに変換する。このように、デジタル形式の画像データに変換することによって、その画像データに基づく画像に対して画素ごとの画像処理が可能となる。そして、ステップS3−1へ移行する。
<ステップS2−2>
視差値導出部3の変換部200は、撮像部10aにより撮像されて得られたアナログの画像信号に対して、ノイズを除去し、デジタル形式の画像データに変換する。このように、デジタル形式の画像データに変換することによって、その画像データに基づく画像に対して画素ごとの画像処理が可能となる。そして、ステップS3−2へ移行する。
<ステップS3−1>
変換部200は、ステップS2−1において変換したデジタル形式の画像データに基づく画像をブロックマッチング処理における比較画像Ibとして出力する。これによって、ブロックマッチング処理において視差値を求めるための比較対象となる画像を得る。そして、ステップS4へ移行する。
<ステップS3−2>
変換部200は、ステップS2−2において変換したデジタル形式の画像データに基づく画像をブロックマッチング処理における基準画像Iaとして出力する。これによって、ブロックマッチング処理において視差値を求めるための基準となる画像を得る。そして、ステップS4へ移行する。
<ステップS4>
視差値導出部3の視差値演算処理部300のコスト算出部301は、基準画像Iaにおける基準画素p(x,y)の輝度値、および、基準画素p(x,y)に基づく比較画像Ibにおけるエピポーラ線EL上で、基準画素p(x,y)の位置に相当する画素からシフト量dでシフトすることにより特定される、対応画素の候補画素q(x+d,y)の各輝度値に基づいて、各候補画素q(x+d,y)のコスト値C(p,d)を算出することにより取得する。具体的には、コスト算出部301は、ブロックマッチング処理により、基準画像Iaの基準画素pを中心とする所定領域である基準領域pbと、比較画像Ibの候補画素qを中心とする候補領域qb(大きさは基準領域pbと同一)との非類似度をコスト値Cとして算出する。そして、ステップS5へ進む。
<ステップS5>
視差値導出部3の視差値演算処理部300の決定部302は、コスト算出部301により算出されたコスト値Cの最小値に対応するシフト量dを、コスト値Cの算出の対象となった基準画像Iaの画素についての視差値dpとして決定する。そして、視差値導出部3の視差値演算処理部300の生成部303は、決定部302により決定された視差値dpに基づいて、基準画像Iaの各画素の輝度値を、その画素に対応する視差値dpで表した画像である視差画像を生成する。生成部303は、生成した視差画像を、認識処理部5に出力する。
なお、上述のステレオマッチング処理は、ブロックマッチング処理を例として説明したが、これに限定されるものではなく、SGM(Semi−Global Matching)法を用いた処理であってもよい。
(認識処理部のクラスタリング処理)
図12は、第1の実施の形態に係る認識処理部のクラスタリング部のクラスタリング処理の動作を説明する図である。図13は、第1の実施の形態に係る認識処理部のクラスタリング部のクラスタリング処理の動作を説明する図である。図14は、クラスタリング処理により抽出された認識画像の例を示す図である。図12〜14を参照しながら、認識処理部5のクラスタリング部400におけるクラスタリング処理の動作について説明する。
クラスタリング部400は、まず、視差値導出部3から出力された視差画像および基準画像Ia(例えば、図12(a)に示す基準画像Ia、または図13(a)に示す基準画像Ia)を受信する。図12(a)に示す基準画像Iaには、例えば、路面600と、電柱601と、車602とが写り込んでいる。クラスタリング部400は、クラスタリング処理として、基準画像Iaから路面を検出するために、図12(b)に示すV−DisparityマップであるVマップVMを作成する。ここで、V−Disparityマップとは、縦軸を基準画像Iaのy軸とし、横軸を視差画像の視差値dpとした二次元ヒストグラムである。図12(a)に示す基準画像Iaの路面600は、VマップVMにおいては路面部600aに対応し、電柱601は、電柱部601aに対応し、車602は、車部602aに対応する。
クラスタリング部400は、作成したVマップVMから、路面と推定される位置を直線近似する。路面が平坦な場合は、1本の直線で近似可能であるが、勾配が変わる路面の場合は、VマップVMの区間を分割して精度よく直線近似する必要がある。直線近似としては、公知技術であるハフ変換または最小二乗法等が利用できる。VマップVMにおいて、検出された路面部600aより上方に位置する塊である電柱部601aおよび車部602aは、それぞれ路面上の物体である電柱601および車602に相当する。クラスタリング部400は、後述するU−Disparityマップを作成する際に、ノイズ除去のため路面より上方の情報のみを用いる。
次に、クラスタリング部400は、クラスタリング処理として、VマップVMで検出された路面より上方に位置する情報のみを利用、すなわち、図13(a)に示す基準画像Iaでは左ガードレール611、右ガードレール612、車613および車614の情報を利用して、ガードレール、壁および車等の物体の存在を推定するために、図13(b)に示すU−DisparityマップであるUマップUMを作成する。ここで、U−Disparityマップとは、横軸を基準画像Iaのx軸として、縦軸を視差画像の視差値dpとした二次元ヒストグラムである。図13(a)に示す基準画像Iaの左ガードレール611は、UマップUMにおいては左ガードレール部611aに対応し、右ガードレール612は、右ガードレール部612aに対応し、車613は、車部613aに対応し、車614は、車部614aに対応する。
また、クラスタリング部400は、クラスタリング処理として、作成したUマップUMから、物体の視差画像におけるx軸方向の位置および幅(xmin,xmax)を特定できる。また、クラスタリング部400は、作成したUマップUMでの物体の高さの情報(dmin,dmax)から物体の実際の奥行きを特定できる。また、クラスタリング部400は、作成したVマップVMから、物体の視差画像におけるy軸方向の位置および高さ(ymin=「最大視差値の路面からの最大高さに相当するy座標」,ymax=「最大視差値から得られる路面の高さを示すy座標」)を特定できる。また、クラスタリング部400は、視差画像において特定した物体のx軸方向の幅(xmin,xmax)、y軸方向の高さ(ymin,ymax)およびそれぞれに対応する視差値dpから、物体の実際のx軸方向およびy軸方向のサイズが特定できる。以上のように、クラスタリング部400は、VマップVMおよびUマップUMを利用して、基準画像Iaでの物体の位置、ならびに実際の幅、高さおよび奥行きを特定することができる。また、クラスタリング部400は、基準画像Iaでの物体の位置が特定されるので、視差画像における位置も定まり、物体までの距離も特定できる。
そして、クラスタリング部400は、クラスタリング処理として、物体について特定した実際のサイズ(幅、高さ、奥行き)から、下記の(表1)を用いて、物体が何であるかを特定することができる。例えば、物体の幅が900[mm]、高さが1800[mm]、奥行きが500[mm]である場合、物体は「歩行者」であると特定できる。なお、(表1)のような幅、高さおよび奥行きと、物体の種類(物体タイプ)とを関連付ける情報をテーブルとして、RAM54等に記憶させておくものとすればよい。ただし、(表1)により物体のタイプを特定するのは、あくまでクラスタリング処理で抽出した認識画像の物体のサイズから特定するだけであって、実際に認識画像が、例えば、車両を示すか否かを認識するには、上述の車両認識部502aの動作で説明したように、別のアルゴリズムによる処理が必要である。
そして、クラスタリング部400は、クラスタリング処理として、特定した物体の実際のサイズ(幅、高さ、奥行き)、物体の種類、ならびに、基準画像Iaでの特定した物体を含む矩形状の部分画像の位置(例えば、左上の座標)、幅および高さ等を含む情報を、認識画像情報として生成して棄却部500に出力する。なお、認識画像は矩形状に限定されず、円形、楕円形、またはその他多角形であってもよい。
以上のように、クラスタリング部400によるクラスタリング処理は、基準画像Iaから写り込んでいる物体を特定して、その物体を含む画像である認識画像を抽出する処理である。クラスタリング部400によるクラスタリング処理によって抽出された認識画像の例を、図14に示す。図14(a)は、車両の認識画像の例であり、図14(b)は、人の認識画像の例であり、図14(c)は、道路の脇に沿って設置されたガードレールの認識画像の例である。また、図14(d)は、車両の認識画像上に人の認識画像(部分認識画像)が重複した例である。
図14(a)および(b)のように、人および他の車両の認識画像は、衝突を回避するための車両の自動制御のために用いられるべき認識画像であるので、車両制御装置6における自動制御の対象とするために棄却するべきではない。図14(d)に示す車両の後方に歩行者が写り込んだ状態で抽出された認識画像についても、同様に、人が含まれるので、棄却するべきではないということになる。このように、車両の認識画像上に、他の物体(図14(d)の例では人)の部分認識画像が重複して抽出された場合に、この部分認識画像を棄却するか否かを判定する棄却判定処理を、次の図15で説明する。
なお、図12および13で上述した処理は、クラスタリング処理の一例であり、基準画像から物体を含む認識画像を抽出できる処理であれば、どのようなクラスタリング処理であってもよい。
(棄却部の棄却判定処理)
図15は、第1の実施の形態に係る認識処理部の棄却部の棄却判定処理の動作の一例を示すフローチャートである。図15を参照しながら、認識処理部5の棄却部500の棄却判定処理の動作の一例の流れについて説明する。
<ステップS11>
入力部501は、視差値導出部3から出力された基準画像Ia、およびクラスタリング部400から出力された認識画像情報を入力する。そして、入力部501は、基準画像Iaから認識画像情報が示す認識画像を特定する(読み込む)。そして、ステップS12へ移行する。
<ステップS12>
画像認識部502は、入力部501により特定された基準画像Ia上での認識画像の物体が車両であるか否かを認識し、さらに、その車両の認識画像上で部分認識が発生しているか否かを認識する。なお、基準画像Iaから認識画像情報が示す認識画像を特定するのは、画像認識部502により行われてもよい。具体的には、まず、画像認識部502の車両認識部502aが、認識画像で認識された物体が車両であるか否かを車両認識する。車両認識の結果、認識画像で認識された物体が車両でない場合、棄却判定処理を終了する。そして、画像認識部502の部分認識部502bは、車両認識部502aにより対象の認識画像が車両であると認識された場合、認識画像上で部分認識が発生しているか否か、すなわち、認識画像上に部分認識画像が重複しているか否かを認識する。認識画像上に部分認識画像が重複していない場合、棄却判定処理を終了する。一方、部分画像が重複している場合、部分認識部502bは、車両の認識画像上で部分認識が発生しているか否かの結果と、認識画像情報(車両の認識画像、およびそれに重複している部分認識画像を示す情報)とを認識結果として棄却判定部503に送り、ステップS13へ移行する。
<ステップS13>
棄却判定部503は、画像認識部502から出力された認識結果に基づいて、認識結果に含まれる認識画像情報が示す部分認識画像を棄却するか否かを判定する。具体的には、棄却判定部503は、認識画像上に部分認識画像が重複している場合、自車速度の情報(車速情報)を取得し、自車速度が所定速度以上である場合、車両70が高速道路を走行中であると判断(すなわち、人が歩行中の状態ではないと予測)し、その部分認識画像を棄却するものと判定する。一方、棄却判定部503は、自車速度が所定速度未満である場合、車両70が高速道路を走行中でないと判断(すなわち、人が歩行中の状態である可能性があると予測)し、その部分認識画像を棄却しないものと判定する。棄却判定部503は、棄却の判定結果を出力部504に出力する。そして、ステップS14へ移行する。
<ステップS14>
出力部504は、棄却判定部503から出力された棄却の判定結果、すなわち、その部分認識画像を棄却するか否かを示す棄却フラグを認識画像情報に含めて、トラッキング判定部550に送る。なお、出力部504は、部分認識画像を棄却することを示す認識画像情報をトラッキング判定部550に出力するものとしているが、これに限定されるものでない。例えば、棄却判定部503の棄却判定処理の結果、棄却しない認識画像(部分認識画像を含む)の認識画像情報のみをトラッキング判定部550に送り、棄却する認識画像の認識画像情報を送信しないものとしてもよい。この場合、車両制御装置6では、棄却する認識画像の認識画像情報は受信しないので、この認識画像(部分認識画像を含む)が各種車両制御に利用されないようにすることができる。
以上のステップS11〜S14の処理を、クラスタリング部400により抽出された認識画像ごとに実行する。
以上のように、棄却判定部503は、画像認識部502により、車両の認識画像上で部分認識画像が発生していると認識された場合に、自車速度を取得し、自車速度が所定速度以上である場合、車両70が高速道路を走行中であると判断し、その部分認識画像を棄却判定するものとしている。これによって、人を認識したものではない部分認識画像の物体をトラッキングすることを抑制することができ、かつ、正認識(ここでは、車両の認識)された認識画像の物体(車両)のトラッキングをすることができる。また、部分認識画像が人を認識した場合は、棄却することなく、その部分認識画像に基づいて人をトラッキングすることができる。
[第2の実施の形態]
第2の実施の形態に係る物体認識装置について、第1の実施の形態に係る物体認識装置1と相違する点を中心に説明する。本実施の形態では、認識画像上で部分認識が発生している場合に、部分認識画像をテンプレートとして、認識画像内で部分認識画像と類似する画像が見つかった場合、その部分認識画像を棄却する動作について説明する。なお、本実施の形態に係る物体認識装置のハードウェア構成および機能ブロック構成、および、視差値演算処理部300の機能ブロック構成は、第1の実施の形態で説明した構成と同様である。また、本実施の形態に係る視差値導出部3のブロックマッチング処理、および、クラスタリング部400におけるクラスタリング処理も、第1の実施の形態で説明した動作と同様である。
(物体認識装置の機能ブロックの構成および動作)
図16は、第2の実施の形態に係る物体認識装置の棄却部の機能ブロック構成の一例を示す図である。図16を参照しながら、本実施の形態の認識処理部5の棄却部500aの機能ブロックの構成および動作について説明する。
本実施の形態の認識処理部5は、第1の実施の形態の認識処理部5が有する棄却部500の代わりに、棄却部500aを有する。図16に示すように、棄却部500aは、入力部501(入力手段)と、画像認識部502と、第1照合部505(第1照合手段)と、棄却判定部503a(判定手段)と、出力部504(出力手段)と、を有する。なお、本実施の形態の入力部501、画像認識部502および出力部504の動作は、第1の実施の形態で説明した動作と同様である。
第1照合部505は、画像認識部502から出力された認識結果に基づいて、認識結果に含まれる認識画像情報が示す部分認識画像をテンプレートとして、部分認識画像と類似する画像が、その部分認識画像が重複する認識画像に含まれるか否かを照合するテンプレートマッチングを行う機能部である。例えば、車両の認識画像に重複する部分認識画像が、車両の一部を認識した画像である場合、車両の認識画像内に、部分認識画像と類似する画像が見つかる可能性が高い。例えば、車両の一方のテールランプ近傍の領域が認識されて部分認識画像として抽出された場合、他方のテールランプ近傍の領域の画像が、その部分認識画像と類似する可能性が高い。一方、人を認識して部分認識画像として抽出された場合、車両の認識画像内に、人の部分認識画像と類似する画像が見つかる可能性は低い。そして、第1照合部505は、テンプレートマッチングによる照合の結果と、認識画像情報(車両の認識画像、およびそれに重複している部分認識画像を示す情報)とを照合結果として棄却判定部503aに送る。例えば、第1照合部505は、テンプレートマッチングによる照合の結果として、テンプレートである部分認識画像と最も類似している画像の類似度を、照合結果に含める。
棄却判定部503aは、第1照合部505から出力された照合結果から、以下に示す所定の条件を満たすか否かに基づいて、照合結果に含まれる認識画像情報が示す部分画像情報を棄却するか否かを判定する機能部である。具体的には、棄却判定部503aは、所定の条件として、第1照合部505によるテンプレートマッチングの結果、照合結果に、部分認識画像と類似する画像が認識画像に含まれる旨を示す情報が含まれている場合、その部分認識画像を棄却する。例えば、棄却判定部503aは、照合結果に含まれる類似度が所定値以上である場合、部分認識画像と類似する画像が認識画像に含まれていると判断し、すなわち、部分認識画像は車両の一部を認識した画像であると判断し、その部分認識画像を棄却する。一方、棄却判定部503aは、照合結果に、部分認識画像と類似する画像が認識画像に含まれない旨を示す情報が含まれている場合、その部分認識画像を棄却しない。例えば、棄却判定部503aは、照合結果に含まれる類似度が所定値未満である場合、部分認識画像と類似する画像は認識画像に含まれていないと判断し、すなわち、部分認識画像は人を認識した画像であると判断し、その部分認識画像を棄却しない。そして、棄却判定部503aは、棄却の判定結果を出力部504に出力する。
図16に示す入力部501、画像認識部502、第1照合部505、棄却判定部503aおよび出力部504は、それぞれ図7に示すFPGA51によって実現される。なお、入力部501、画像認識部502、第1照合部505、棄却判定部503aおよび出力部504の一部または全部は、ハードウェア回路であるFPGA51ではなく、ROM53に記憶されているプログラムがCPU52によって実行されることによって実現されるものとしてもよい。
なお、図16に示す棄却部500aの入力部501、画像認識部502、第1照合部505、棄却判定部503aおよび出力部504は、機能を概念的に示したものであって、このような構成に限定されるものではない。例えば、図16に示す棄却部500aで独立した機能部として図示した複数の機能部を、1つの機能部として構成してもよい。一方、図16に示す棄却部500aで1つの機能部が有する機能を複数に分割し、複数の機能部として構成するものとしてもよい。
(棄却部の棄却判定処理)
図17は、第2の実施の形態に係る認識処理部の棄却部の棄却判定処理の動作の一例を示すフローチャートである。図18は、第2の実施の形態の棄却部の第1照合部のテンプレートマッチングの動作を説明する図である。図17および18を参照しながら、認識処理部5の棄却部500aの棄却判定処理の動作の一例の流れについて説明する。
<ステップS21、S22>
図15に示すステップS11、S12と同様である。そして、ステップS23へ移行する。
<ステップS23>
第1照合部505は、画像認識部502から出力された認識結果に基づいて、認識結果に含まれる認識画像情報が示す部分認識画像をテンプレートとして、部分認識画像と類似する画像が、その部分認識画像が重複する認識画像に含まれるか否かを照合するテンプレートマッチングを行う。具体的には、第1照合部505は、部分認識画像であるテンプレートを、認識画像内でスライドさせながらテンプレートマッチングを行う。例えば、図18に示すように、第1照合部505は、車両の認識画像702内で、認識画像702に重複する部分認識画像802に類似する画像が含まれるか否かを照合する。この場合、図18に示すように、第1照合部505は、認識画像702内で右方向にテンプレート(部分認識画像802)をスライドさせながら照合してもよく、または、上下左右の任意の方向、または、任意の間隔(1画素以上)でスライドさせながら照合してもよい。
なお、テンプレートマッチングとしては、テンプレートの輝度値と、比較対象となる領域の画像の輝度値との差を合算する方法、ユークリッド距離を算出する方法、または、任意の特徴量を抽出して照合する方法等のいずれの方式を使用するものとしてもよい。また、輝度画像ではなく、画素ごとに視差値を格納している視差画像を使って同様の処理を行ってもよく、または、双方の結果を平均等して統合してもよい。
そして、第1照合部505は、テンプレートマッチングによる照合の結果と、認識画像情報(車両の認識画像、およびそれに重複している部分認識画像を示す情報)とを照合結果として棄却判定部503aに送る。
次に、棄却判定部503aは、第1照合部505から出力された照合結果に基づいて、照合結果に含まれる認識画像情報が示す部分画像情報を棄却するか否かを判定する。具体的には、棄却判定部503aは、第1照合部505によるテンプレートマッチングの結果、照合結果に、部分認識画像と類似する画像が認識画像に含まれる旨を示す情報が含まれている場合、その部分認識画像を棄却する。一方、棄却判定部503aは、照合結果に、部分認識画像と類似する画像が認識画像に含まれない旨を示す情報が含まれている場合、その部分認識画像を棄却しない。棄却判定部503aは、棄却の判定結果を出力部504に出力する。そして、ステップS24へ移行する。
<ステップS24>
図15に示すステップS14と同様である。
以上のステップS21〜S24の処理を、クラスタリング部400により抽出された認識画像ごとに実行する。
以上のように、第1照合部505は、部分認識画像をテンプレートとして、部分認識画像と類似する画像が、その部分認識画像が重複する認識画像に含まれるか否か照合するテンプレートマッチングを行う。そして、棄却判定部503aは、第1照合部505によるテンプレートマッチングの結果、部分認識画像と類似する画像が認識画像に含まれる場合、その部分認識画像を棄却判定するものとしている。これによって、第1の実施の形態と同様、人を認識したものではない部分認識画像の物体をトラッキングすることを抑制することができ、かつ、正認識(ここでは、車両の認識)された認識画像の物体(車両)のトラッキングをすることができる。また、部分認識画像が人を認識した場合は、棄却することなく、その部分認識画像に基づいて人をトラッキングすることができる。さらに、自車速度に関わらず、例えば、低速時においても、人を認識したものではない部分認識画像を棄却することができる。
[第3の実施の形態]
第3の実施の形態に係る物体認識装置について、第1の実施の形態に係る物体認識装置1と相違する点を中心に説明する。本実施の形態では、対象フレーム(基準画像)の中心位置に対応する1つ前のフレーム(以下、単に「前フレーム」という)の位置を中心とした所定の領域(探索範囲)に、対象フレームの車両の認識画像が存在する場合、その認識画像に重複する部分認識画像を棄却する動作について説明する。なお、本実施の形態に係る物体認識装置のハードウェア構成および機能ブロック構成、および、視差値演算処理部300の機能ブロック構成は、第1の実施の形態で説明した構成と同様である。また、本実施の形態に係る視差値導出部3のブロックマッチング処理、および、クラスタリング部400におけるクラスタリング処理も、第1の実施の形態で説明した動作と同様である。
(物体認識装置の機能ブロックの構成および動作)
図19は、第3の実施の形態に係る物体認識装置の棄却部の機能ブロック構成の一例を示す図である。図20は、第3の実施の形態の棄却部の第2照合部の車両を探索する動作を説明する図である。図19および20を参照しながら、本実施の形態の認識処理部5の棄却部500bの機能ブロックの構成および動作について説明する。
本実施の形態の認識処理部5は、第1の実施の形態の認識処理部5が有する棄却部500の代わりに、棄却部500bを有する。図19に示すように、棄却部500bは、入力部501(入力手段)と、画像認識部502と、第2照合部506(第2照合手段)と、前フレーム記憶部507(記憶手段)と、棄却判定部503b(判定手段)と、出力部504(出力手段)と、を有する。なお、本実施の形態の入力部501、画像認識部502および出力部504の動作は、第1の実施の形態で説明した動作と同様である。
第2照合部506は、前フレーム記憶部507に記憶されている前フレーム(1つ前の基準画像)(前画像)を読み出し、前フレーム上の特定した探索範囲内に、対象フレーム上で認識された車両の認識画像と類似する画像が含まれるか否かを照合するテンプレートマッチングを行う機能部である。ここで、第2照合部506は、図20に示すように、対象フレームI1上で認識された車両の認識画像の中心位置に対応する前フレームI0上の位置を中心とする所定の範囲を探索範囲SAとして特定する。例えば、自車よりも前方を走行している他の車両が相対的に自車の速度と近い速度で走行している場合、前フレームI0上の他の車両の認識画像と、対象フレームI1上の他の車両の認識画像とは近い位置に出現する可能性が高い。すなわち、前フレームI0の探索範囲SA内で、対象フレームI1の車両の認識画像と類似した画像が見つかる可能性が高い。一方、自車よりも前方を走行している他の車両が相対的に自車の車両と大きく異なる速度で走行している場合、前フレームI0上の他の車両の認識画像と、対象フレームI1上の他の車両の認識画像とは離れた位置に出現する可能性が高い。すなわち、前フレームI0の探索範囲SA内で、対象フレームI1の車両の認識画像と類似した画像が見つからない可能性が高い。そして、第2照合部506は、テンプレートマッチングによる照合の結果と、認識画像情報(車両の認識画像、およびそれに重複している部分認識画像を示す情報)とを照合結果として棄却判定部503bに送る。例えば、第2照合部506は、テンプレートマッチングによる照合の結果として、テンプレートである車両の認識画像と最も類似している画像の類似度を、照合結果に含める。また、第2照合部506は、対象フレームを前フレーム記憶部507に記憶させる。この前フレーム記憶部507に記憶された対象フレームは、次のフレームに対する照合処理で前フレームとして使用される。
なお、第2照合部506は、対象フレーム上で認識された車両の認識画像の中心位置に対応する前フレーム上の位置を中心とする所定の範囲を探索範囲として特定するものとしたが、これに限定されるものではなく、対象フレームで認識された車両の認識画像の任意の位置に対応する前フレーム上の位置を中心とする所定の範囲を探索範囲として特定するものとしてもよい。
前フレーム記憶部507は、第2照合部506が画像認識部502から受けた基準画像(フレーム)を記憶する機能部である。前フレーム記憶部507は、図7に示すRAM54によって実現される。
棄却判定部503bは、第2照合部506から出力された照合結果から、以下に示す所定の条件を満たすか否かに基づいて、照合結果に含まれる認識画像情報が示す部分認識画像を棄却するか否かを判定する機能部である。具体的には、棄却判定部503bは、所定の条件として、第2照合部506によるテンプレートマッチングの結果、照合結果に、車両の認識画像と類似する画像が前フレームの探索範囲に含まれる旨を示す情報が含まれている場合、その認識画像上の部分認識画像を棄却する。例えば、棄却判定部503bは、照合結果に含まれる類似度が所定値以上である場合、前フレームの探索範囲に、対象フレームの車両の認識画像が含まれていると判断し、すなわち、認識画像の他の車両が自車と近い速度で走行し、部分認識画像も一緒に移動していて、車両の一部を認識した画像であると判断し、その部分認識画像を棄却する。一方、棄却判定部503bは、照合結果に、車両の認識画像と類似する画像が前フレームの探索範囲に含まれない旨を示す情報が含まれている場合、その認識画像上の部分認識画像を棄却しない。例えば、棄却判定部503bは、照合結果に含まれる類似度が所定値以上である場合、前フレームの探索範囲に、対象フレームの車両の認識画像が含まれていないと判断し、すなわち、認識画像の他の車両が自車と大きく異なる速度で走行し、車両の一部を認識した画像でない可能性があると判断し、その部分認識画像を棄却しない。そして、棄却判定部503bは、棄却の判定結果を出力部504に出力する。
なお、上述の前フレーム上の探索範囲(例えば、図20に示す探索範囲SA)は、所定値を設定しておいてもよいし、または、自車速度もしくはフレームレートから動的に算出して設定してもよい。例えば、自車速度が速い場合、自車と前方の他の車両との相対速度が少し異なるだけでもフレーム間で連続して現れる車両が探索範囲内に入らなくなる可能性が高い。したがって、探索範囲を大きく設定する必要がある。一方、自車速度が遅い場合、探索範囲を広く設定していると、停止している車両であっても探索範囲に入ってしまう可能性があり、この場合、停止している車両の前にいる人の部分認識画像を誤って棄却してしまうおそれがある。したがって、探索範囲を狭く設定する必要がある。
また、探索範囲は、上述のように輝度画像(フレーム)上に設定しているが、これに限定されるものではなく、例えば、視差画像が存在する場合は、物体までの実距離を用いて、実距離に基づく探索範囲を設定し、奥行方向の距離を使用するものとしてもよい。なお、テンプレートマッチングではなく、視差画像(または、輝度画像)の認識画像に対応する領域の画素値(視差値)の中央値または平均値等を使用して、前フレームに対応する視差画像に、その中央値または平均値等を基準にした所定の範囲に含まれる値が存在するか否かを判定するものとしてもよい。これによって、テンプレートマッチングを行う場合よりも高速に処理が可能となる。
また、第2照合部506は、対象フレームの車両の認識画像を照合する対象として前フレームを使用するものとしたが、対象フレームより前の複数のフレームを照合する対象として用いるものとしてもよい。この場合、前フレーム記憶部507には、複数のフレーム分の情報を記憶させておく必要がある。
図19に示す入力部501、画像認識部502、第2照合部506、棄却判定部503bおよび出力部504は、それぞれ図7に示すFPGA51によって実現される。なお、入力部501、画像認識部502、第2照合部506、棄却判定部503bおよび出力部504の一部または全部は、ハードウェア回路であるFPGA51ではなく、ROM53に記憶されているプログラムがCPU52によって実行されることによって実現されるものとしてもよい。
なお、図19に示す棄却部500bの入力部501、画像認識部502、第2照合部506、前フレーム記憶部507、棄却判定部503bおよび出力部504は、機能を概念的に示したものであって、このような構成に限定されるものではない。例えば、図19に示す棄却部500bで独立した機能部として図示した複数の機能部を、1つの機能部として構成してもよい。一方、図19に示す棄却部500bで1つの機能部が有する機能を複数に分割し、複数の機能部として構成するものとしてもよい。
(棄却部の棄却判定処理)
図21は、第3の実施の形態に係る認識処理部の棄却部の棄却判定処理の動作の一例を示すフローチャートである。図21を参照しながら、認識処理部5の棄却部500bの棄却判定処理の動作の一例の流れについて説明する。
<ステップS31、S32>
図15に示すステップS11、S12と同様である。そして、ステップS33へ移行する。
<ステップS33>
第2照合部506は、前フレーム記憶部507に記憶されている前フレームを読み出し、前フレーム上の特定した探索範囲内に、対象フレーム上で認識された車両の認識画像と類似する画像が含まれるか否かを照合するテンプレートマッチングを行う。ここで、第2照合部506は、対象フレーム上で認識された車両の認識画像の中心位置に対応する前フレーム上の位置を中心とする所定の範囲を探索範囲として特定する。そして、第2照合部506は、テンプレートマッチングによる照合の結果と、認識画像情報(車両の認識画像、およびそれに重複している部分認識画像を示す情報)とを照合結果として棄却判定部503bに送る。また、第2照合部506は、対象フレームを前フレーム記憶部507に記憶させる。この前フレーム記憶部507に記憶された対象フレームは、次のフレームに対する照合処理で前フレームとして使用される。
次に、棄却判定部503bは、第2照合部506から出力された照合結果に基づいて、照合結果に含まれる認識画像情報が示す部分認識画像を棄却するか否かを判定する。具体的には、棄却判定部503bは、第2照合部506によるテンプレートマッチングの結果、照合結果に、車両の認識画像と類似する画像が前フレームの探索範囲に含まれる旨を示す情報が含まれている場合、その認識画像上の部分認識画像を棄却する。一方、棄却判定部503bは、照合結果に、車両の認識画像と類似する画像が前フレームの探索範囲に含まれない旨を示す情報が含まれている場合、その認識画像上の部分認識画像を棄却しない。そして、棄却判定部503bは、棄却の判定結果を出力部504に出力する。そして、ステップS34へ移行する。
<ステップS34>
図15に示すステップS14と同様である。
以上のステップS31〜S34の処理を、クラスタリング部400により抽出された認識画像ごとに実行する。
以上のように、第2照合部506は、前フレーム記憶部507に記憶されている前フレームを読み出し、前フレーム上の特定した探索範囲内に、対象フレーム上で認識された車両の認識画像と類似する画像が含まれるか否かを照合するテンプレートマッチングを行う。そして、棄却判定部503bは、第2照合部506によるテンプレートマッチングの結果、車両の認識画像と類似する画像が前フレームの探索範囲に含まれる旨を示す情報が含まれている場合、その認識画像上の部分認識画像を棄却判定するものとしている。これによって、第1の実施の形態と同様、人を認識したものではない部分認識画像の物体をトラッキングすることを抑制することができ、かつ、正認識(ここでは、車両の認識)された認識画像の物体(車両)のトラッキングをすることができる。また、自車速度に関わらず、例えば、低速時においても、人を認識したものではない部分認識画像を棄却することができる。
なお、上述の各実施の形態では、コスト値Cは非類似度を表す評価値としているが、類似度を表す評価値であってもよい。この場合、類似度であるコスト値Cが最大(極値)となるシフト量dが視差値dpとなる。
また、上述の各実施の形態では、車両70としての自動車に搭載される物体認識装置について説明したが、これに限定されるものではない。例えば、他の車両の一例としてバイク、自転車、車椅子または農業用の耕運機等の車両に搭載されるものとしてもよい。また、移動体の一例としての車両だけでなく、ロボット等の移動体であってもよい。
さらに、ロボットは、移動体だけでなく、FA(Factory Automation)において固定設置される工業用ロボット等の装置であってもよい。また、固定設置される装置としては、ロボットだけでなく、防犯用の監視カメラ等であってもよい。
また、上述の各実施の形態において、物体認識装置の棄却部500、500a、500bの各機能部の少なくともいずれかがプログラムの実行によって実現される場合、そのプログラムは、ROM等に予め組み込まれて提供される。また、上述の各実施の形態に係る物体認識装置で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。また、上述の各実施の形態の物体認識装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、上述の各実施の形態の物体認識装置で実行されるプログラムを、インターネット等のネットワーク経由で提供または配布するように構成してもよい。また、上述の各実施の形態の物体認識装置で実行されるプログラムは、上述した各機能部のうち少なくともいずれかを含むモジュール構成となっており、実際のハードウェアとしてはCPU52が上述のROM53からプログラムを読み出して実行することにより、上述の各機能部が主記憶装置(RAM54等)上にロードされて生成されるようになっている。