以下、本発明の実施形態について、図1から図25を参照して具体的に説明する。
なお、本発明の物体検出装置の実施形態として、車載用の安全支援システムを例として以下に説明するが、これに限定されることはなく、物体の検出を行う情報処理装置全般に適用することができる。
(実施例1)
図1は、実施例1における、物体検出装置の機能ブロック図の一例を示す図である。図1に示すように、物体検出装置100は、例えばコンピュータなどの情報処理装置によって実現され、車両などの移動体に設置されている。物体検出装置100は、撮像部11と、画像入力部12と、時系列画像DB(database)13と、特徴点抽出部14と、物体候補抽出部15と、観測フロー量算出部16と、移動量検出部17と、仮想路面フロー量算出部18と、フロー差分布生成部19と、モデル照合部20と、出力部21とを備えている。以下、各部の機能について説明する。
撮像部11は、画像を撮影する機能を有する装置である。撮像部11は、移動体の外界の画像を撮影することができる。
画像入力部12は、撮像部11によって撮影された移動体の外界の画像の情報を画像情報として受信する。また、画像入力部12は、受信した画像情報を必要に応じてデジタル画像の情報に変換した後、時系列画像DB13に格納するとともに、画像情報を特徴点抽出部14に出力する。
時系列画像DB13は、画像入力部12が取得した画像情報を格納するDBである。一般的に、時系列画像DB13に保存できる情報の容量は有限である。このため、時系列画像DB13は、例えば移動体が移動する際に、一定の距離(例えば50cm)毎に画像を時系列画像DB13に格納するように管理されることが好ましい。あるいは、時系列画像DB13に格納されている画像のうち、最も古い画像を撮影した位置からの移動量が所定の値(例えば3m)になった場合に、当該最も古い画像を消去するように管理されることが好ましい。このような方法で時系列画像DB13に格納した画像を管理することによって、時系列画像DB13の容量を有効的に活用することができる。
特徴点抽出部14は、画像入力部12から受信した画像から、画像中の特徴点を抽出する。特徴点とは、画像の中の物体の境界、物体の輪郭線の屈折部および屈曲部などの特徴を点で示したものである。特徴点の抽出方法については後述する。特徴点抽出部14は、抽出した特徴点の情報を物体候補抽出部15に送信する。
物体候補抽出部15は、特徴点抽出部14から受信した特徴点の情報に基づいて、物体検出装置が検出対象とする立体物の候補である物体候補を抽出する。立体物とは、例えば移動体が移動する路面(移動面)などの上に突出して存在する物体である。物体候補は、グループ化された複数の特徴点によって構成される。物体候補の抽出方法については後述する。
観測フロー量算出部16は、物体候補抽出部15によって抽出された物体候補に含まれる複数の特徴点の各々について、最新時刻t2と過去の時刻t1からなる2つの時刻間における特徴点の画像上の移動量を、観測フロー量として算出する。観測フロー量の抽出方法については後述する。
移動量検出部17は、上述の2つの時刻間における移動体の移動量を検出する。移動量検出部17によって取得された情報は、後述する仮想路面フロー量を算出する際に用いられる。移動量検出部17は、例えば車速センサまたは舵角センサなどによって実現することができる。
仮想路面フロー量算出部18は、移動量検出部17によって検出された移動体の移動量の情報を用いて、特徴点が路面にあると仮定した場合の、当該特徴点の位置ずれ量である仮想路面フロー量を算出する。仮想路面フロー量の算出方法については後述する。
フロー差分布生成部19は、物体候補に含まれる複数の特徴点の各々について、観測フロー量算出部16で算出された観測フロー量と、仮想路面フロー量算出部18で算出された仮想路面フロー量との差であるフロー差を算出する。そして、フロー差分布生成部19は、例えば画像内の物体候補の高さ方向を縦軸とし、フロー差を横軸として、物体候補のフロー差の分布であるフロー差分布を生成する。
モデル照合部20は、画面上における物体候補の位置座標に基づいて、物体候補の種類と路面の傾斜状態の種類との組み合わせ毎に、複数のフロー差分布モデルを生成する。ここで、物体候補の種類とは、例えば立体物および路面の模様(路面模様)の2種類である。路面模様とは、移動体が移動する路面(移動面)に沿って存在する物体であり、例えば路面に施されたラインなどの塗装である。また、路面の傾斜状態の種類とは、例えば平坦な路面、上り勾配、下り勾配の3種類である。なお、物体候補の種類および路面の傾斜状態の種類は、種類の数も含め、上述の例に限定されるものではない。例えば、勾配の角度が異なる複数の上り勾配毎にフロー差分布モデルを生成することもできる。
また、モデル照合部20は、フロー差分布生成部19によって生成された物体候補のフロー差分布を、モデル照合部20によって生成された複数のフロー差分布モデルの各々と照合する。そして、モデル照合部20は、複数のフロー差分布モデルのうち、物体候補のフロー差分布に最も類似するフロー差分布モデルを、物体候補に対応するフロー差分布モデルとして決定する。そして、決定されたフロー差分布モデルのタイプから、物体候補が立体物か否かを判別することができる。なお、モデル照合部20は、物体候補のフロー差分布を複数のフロー差分布モデルの各々と照合する照合部と、照合の結果、立体物か否かを判定する判定部に分けることもできる。
出力部21は、物体検出装置100による処理結果を出力する装置である。出力部21は、モデル照合部20による照合処理の結果、物体候補が立体物であると判定された場合に、その旨を出力する。物体検出装置100のユーザは、例えば移動体を後退させている最中に、出力された情報を取得することにより、移動体の進路上に立体物が存在することを認識することができる。
次に、物体検出装置100のハードウェア構成について説明する。
図2は、物体検出装置100のハードウェア構成の一例を示す図である。図2に示すように、物体検出装置100は、カメラ30、入力装置31、CPU(Central Processing Unit)32、ROM(Read Only Memory)33、RAM(Random Access Memory)34、ストレージ装置35、ディスプレイ36、スピーカ37、及び媒体駆動装置38等を備えている。
カメラ30は、図1に示す撮像部11の一例であり、例えば移動体の少なくとも前後左右のいずれかに固定される単眼の撮影装置である。なお、移動体に設置されるカメラ30は、1台であることに限定されず、複数台とすることもできる。
入力装置31は、物体検出装置100のユーザによって操作が行われたときに、その操作によって入力された情報を取得し、当該情報をCPU32に送信する装置である。入力装置31は、例えばキーボード、マウスまたはタッチパネル等である。
CPU32は、物体検出装置100全体の動作を制御する処理を実行する演算処理装置である。図1に示す機能ブロックの各々の動作は、CPU32によって実現される。なお、CPU32は、MPU(Micro Processing Unit)によって実現することもできる。
ROM33は、物体検出装置100の動作を制御するプログラム(情報処理プログラムを含む)を格納することができる不揮発性の記憶装置である。RAM34は、プログラムを実行する際に、必要に応じて作業領域として使用することができる揮発性の記憶装置である。ストレージ装置35は、例えばHDD(Hard Disk Drive)などの記憶装置である。ストレージ装置35は、CPU32により実行される各種制御プログラムや、取得したデータを記憶することができる。
ディスプレイ36は、図1に示す出力部21の一例である。ディスプレイ36は、外界を撮影して得られた画像を表示したり、物体検出装置100による処理の結果を表示したりすることができる表示装置である。ディスプレイ36として、例えば液晶ディスプレイ、プラズマディスプレイ、または有機ELディスプレイ等を用いることができる。スピーカ37は、図1に示す出力部21の一例であり、音声情報を出力するための部品である。スピーカ37は、例えば移動体の進路上に立体物を検知したことをユーザに音声で通知することができる。
媒体駆動装置38は、可搬型記憶媒体40への書き込み、または可搬型記憶媒体40から読み出したデータを実行する装置である。なお、前述のCPU32は、可搬型記憶媒体40に格納されている所定の制御プログラムを、媒体駆動装置38を介して読み出して実行することによって、物体検出装置100の各動作を制御する処理を行うこともできる。可搬型記憶媒体40は、例えばCD(Compact Disk)−ROM、DVD(Digital Versatile Disk)またはUSB(Universal Serial Bus)メモリ等である。
物体検出装置100の構成各部は、バス39に接続されている。バス39は、ハードウェア間でデータのやり取りを行うための通信経路である。
次に、物体検出装置100による立体物の検出方法について説明する。
図3は、実施例1における、物体検出装置による立体物の検出方法の一例を示すフローチャートである。
まず、移動体に取り付けられた撮像部11は、移動体の外界の画像を撮影する。そして、画像入力部12は、撮影によって得られた画像情報を撮像部11から受信する(S101)。画像入力部12は、受信した画像情報がアナログ画像であればデジタル画像に変換する。また、画像入力部12は、受信した画像情報がカラー画像であれば、アナログ画像をデジタル画像に変換した後に、モノクロ画像に変換する。画像入力部12は、取得したデジタル画像の画像情報を、撮影した時刻と関連付けて時系列画像DB13に格納する。
続いて、特徴点抽出部14は、画像情報から特徴点を抽出する(S102)。S102において、特徴点抽出部14は、時系列画像DB13から画像情報を読み出し、エッジ抽出を行う。具体的には、例えば一般的なSobelオペレータを用いて、画像情報に対して微分処理を実行する。そして、微分処理により得られるエッジ強度と、所定のエッジ強度の閾値とを比較し、閾値以上のエッジを抽出する。次に、抽出したエッジについて隣接横画素2つのエッジ強度と比較し、抽出したエッジがピーク値となればエッジ点と見做す細線化処理を実行する。そして、細線化処理により得られた複数のエッジ点の各々を特徴点として、複数の特徴点の情報を物体候補抽出部15に出力する。
続いて、物体候補抽出部15は、特徴点抽出部14から受信した複数の特徴点の情報に基づいて、特徴点同士を仮想的に接続することによって複数の特徴点をグループ化し、物体候補を抽出する(S103)。以下、物体候補の抽出方法について説明する。
図4は、実施例1における、物体候補の抽出方法の一例を示すフローチャートである。図5は、物体候補の抽出方法を説明するための図である。図5に示されている正方形の各セルは、画像を構成する画素を示している。図5に示すように、複数の画素がマトリクス状に2次元配列されている。複数の画素のうち、斜線が施された1個の画素は、1個の特徴点(エッジ点)を示している。以降の説明では、図5中のX軸に平行に配列された画素の集合を「行」と定義する。すなわち、共通のY座標を有する各画素は、同一の行に属する。また、図5中のY軸に平行に配列された画素の集合を「列」と定義する。すなわち、共通のX座標を有する各画素は、同一の列に属する。
まず、物体候補抽出部15は、図5(a)に示すように、複数の画素(特徴点)の中から未選択の特徴点Aを選択する(S201)。
続いて、物体候補抽出部15は、Y軸の座標の値が大きくなる側で、特徴点Aが属する行に隣接する行に属し、特徴点Aに隣接する3つの画素の中に、特徴点が存在するか否かを判定する(S202)。図5(a)の例では、画素(1),(2),(3)が上述の3つの画素に該当する。特徴点Aに隣接する3つの画素の中に特徴点が存在しないと判定された場合(S202否定)、S210に移行する。一方、エッジAに隣接する3つの画素の中に特徴点が存在すると判定された場合(S202肯定)、物体候補抽出部15は、連結可能な特徴点の数が複数か否かを判定する(S203)。図5(a)の例では、画素(1)および画素(3)が特徴点(斜線)であるため、S202肯定と判定され、S203に移行する。
S203において、連結可能な特徴点の数が複数でないと判定された場合(S203否定)、S205に移行する。一方、連結可能な特徴点の数が複数であると判定された場合(S203肯定)、物体候補抽出部15は、特徴点Aと連結した際に生じる線と特徴点Aで終端される他の線との角度を、連結候補の特徴点同士で比較する。そして、図5(b)に示すように、物体候補抽出部15は、連結候補の複数の特徴点の中から、特徴点Aと連結する場合に最適となる点を特徴点Bとして選択する(S204)。
図5(b)の例では、連結可能な特徴点の数が2個であるため、S203肯定と判定され、S204へ移行する。S204では、画素(1)および画素(3)が特徴点Bの候補となる。また、特徴点Aの左下には特徴点Zが存在し、この特徴点Zは、特徴点Aと連結すべき特徴点として特定されている。この場合、物体候補抽出部15は、連結した際に描かれる線が特徴点Aで90度屈曲する画素(1)でなく、特徴点Zから特徴点Aを介して直線的に連結され得る画素(3)を、特徴点Bとして選択する。S204の後、S205に移行する。
S205において、物体候補抽出部15は、特徴点Bの物体番号が物体番号DBに登録されているか否かを判定する(S205)。
図6は、物体番号DBの一例を示す図である。図6に示すように、物体番号DBには、画素の位置情報を示す座標(X,Y)と、物体番号とが対応付けられて登録されている。座標欄には全ての画素の座標が格納されており、物体番号が未登録である場合、対応する物体番号欄は空欄となっている。例えば、X座標が「1223」、Y座標が「0905」の画素には、物体番号として「0214」が登録されている。一方、X座標が「1970」、Y座標が「1110」の画素には、物体番号が登録されておらず、空欄となっている。
特徴点Bの物体番号が物体番号DBに登録されている場合(S205肯定)、点Bは他の物体を構成する点として登録済みであるため、S210に移行する。一方、特徴点Bの物体番号が物体番号DBに登録されていない場合(S205否定)、物体候補抽出部15は、点Aと同一の行に、特徴点Bに連結可能な特徴点、すなわち特徴点Bに隣接する特徴点Cが存在するか否かを判定する(S206)。点Bに連結可能な特徴点Cが存在すると判定された場合(S206肯定)、物体候補抽出部15は、特徴点Bと連結する特徴点として、特徴点Cは特徴点Aよりも最適か否かを判定する(S207)。S207では、物体候補抽出部15は、特徴点Cと特徴点Bとを連結した際に生じる線と特徴点Cで終端される他の線との角度を、特徴点Aと連結した際に生じる線と特徴点Aで終端される他の線との角度と比較することによって判定する。比較方法は、S204で用いられる比較方法と同様である。特徴点Cが特徴点Aよりも最適であると判定された場合(S207肯定)、物体候補抽出部15は、特徴点Cと特徴点Bとが連結されるものとして、物体番号DB中の特徴点Cおよび特徴点Bの情報を更新する(S208)。具体的には、特徴点Cの物体番号が登録されている場合は、特徴点Bにも特徴点Cと同一の物体番号を割り当て、物体番号DBに登録する。一方、特徴点Cの物体番号が登録されていない場合は、特徴点Cと特徴点Bとに対して新規の物体番号を割り当て、物体番号DBに登録する。S208の処理の後、S210に移行する。
一方、S206において、点Bに連結可能な特徴点Cが存在しないと判定された場合(S206否定)、または、S207において、特徴点Aの方が特徴点Cよりも最適であると判定された場合(S207否定)、物体候補抽出部15は、特徴点Aと特徴点Bとが連結されるものとして、物体番号DB中の特徴点Aおよび特徴点Bの情報を更新する(S209)。具体的には、特徴点Aにはまだ物体番号が登録されていないため、特徴点Aと特徴点Bとについて、新たに同一の物体番号を割り当て、物体番号DBに登録する。S209の処理の後、S210に移行する。
S210では、特徴点抽出部14が抽出した全ての特徴点を選択したか否かを判定する。全ての特徴点を選択していないと判定された場合(S210否定)、S201に戻り、S201以降の処理を実行する。
一方、全ての特徴点を選択したと判定された場合(S210肯定)、物体番号に基づいて物体候補を抽出する(S211)。S211では、例えば物体番号DBに登録されている物体番号を参照し、登録されている物体番号が共通する特徴点を連結することによって生成される線分のうち、連結される特徴点の数が所定の閾値以上の線分を物体候補として抽出する。所定の閾値は、例えば10点である。S211の処理の後、S103の処理を終了し、S104へ移行する。
以上のようにして、物体候補抽出部15は、1又はそれ以上の物体候補を抽出する処理を実行する。
図7は、抽出された物体候補の一例を示す図である。図7は、前述の所定の閾値を8点とした例である。図7に示すように、画像50には、路面55上に設けられた物体候補51、52の像が含まれている。物体候補51の右側の点線の枠53内には、立体物51の輪郭に沿った複数の特徴点が存在する。また、物体候補52の右側の点線の枠54内には、物体候補52の輪郭に沿った複数の特徴点が存在する。図7の例では、S103の処理により、画像50から2個の物体候補51,52が抽出されている。
図3に戻り、S103の処理の後、観測フロー量算出部16は、S103で抽出した物体候補を構成する各特徴点について、観測フロー量を算出する(S104)。観測フロー量は、既に述べたように、2つの時刻間における特徴点の画像上の位置ずれ量である。ここで、観測フロー量について説明する。
図8は、観測フロー量を説明するための図である。路面61上に立体物62が配置されており、立体物62の上端を点Lとする。時刻t1における、車両60に備えられたカメラ30から点Lへの視線は、視線56で表される。一方、車両60が移動して時刻t2になったとき、カメラ30から点Lへの視線は、視線56から視線57に変化する。この視差の変化が、カメラ30によって撮像された画面上において特徴点の位置ずれをもたらし、観測フロー量として観測される。
以下、観測フローを算出する処理について説明する。
図9は、実施例1における、観測フロー量の算出方法の一例を示すフローチャートである。
まず、観測フロー量算出部16は、S103で抽出した全ての物体候補の中から、未選択の物体候補を選択する(S301)。
続いて、観測フロー量算出部16は、S301で選択した物体候補について、最新時刻t2の画像から、未選択の特徴点を選択する(S302)。
続いて、観測フロー量算出部16は、最新時刻t2よりも前の時刻t1に取得した画像の情報を時系列画像DB13から読み出し、当該画像上の、S302で選択した特徴点に対応する最も照合度が高い特徴点の位置を特定する(S303)。具体的には、最新時刻t2の特徴点について、当該特徴点の周囲の領域の画像をテンプレートとして、最新時刻t2の直前の時刻t1の画像とマッチングを行う。マッチング方法としては、例えばSAD(Sum of Absolute Difference)またはSSD(Sum of Squared Difference)などの類似度指標を用いた、一般的なテンプレートマッチングによって、最も照合度が高い特徴点の位置を特定する方法を用いることができる。
続いて、観測フロー量算出部16は、最新時刻t2の特徴点の位置と、S303で特定した時刻t1の特徴点の位置とに基づいて、観測フロー量を算出する(S304)。
続いて、観測フロー量算出部16は、S301で選択した物体候補を構成する全ての特徴点を選択済みか否か、を判定する(S305)。全ての特徴点を選択済みでないと判定された場合(S305否定)、S302に戻り、S302以降の処理を再び実行する。一方、全ての特徴点を選択済みであると判定された場合(S305肯定)、観測フロー量算出部16は、全ての物体候補を選択済みか否か、を判定する(S306)。
全ての物体候補を選択済みでないと判定された場合(S306否定)、S301に戻り、S301以降の処理を再び実行する。一方、全ての物体候補を選択済みであると判定された場合(S306肯定)、S104の処理を終了し、S105に移行する。以上のようにして、観測フロー量算出部16は、観測フロー量を算出する処理を実行する。
図3に戻り、S104の処理の後、仮想路面フロー量算出部18は、特徴点が路面にあると仮定した場合の、当該特徴点の2つの時刻間の位置ずれ量である仮想路面フロー量を算出する(S105)。
図10は、仮想路面フロー量を説明するための図である。路面61上に立体物62が配置されており、立体物62の上端に位置する点を点Lとする。時刻t1における、車両60に備えられたカメラ30から点Lへの視線は、視線56で表される。そして、点Lを通る視線56が路面61と交わる点が、点Mである。すなわち、点Lが路面にあると仮定した場合、立体物62は路面模様63であると仮定され、時刻t1のときのカメラ30の位置から見える立体物62の上端は、路面模様63の先端の点Mの位置にあると仮定される。一方、車両60が移動して時刻t2になったとき、カメラ30の位置から点Mを見たときの視線は視線56から視線58に変化する。この視差の変化が画面上における位置ずれとなり、仮想路面フロー量として観測される。
以下、仮想路面フロー量を算出する処理について説明する。
図11は、移動体座標系およびカメラ座標系を説明するための図である。図11に示すように、移動体である車両60にカメラ30が固定されており、車両60が路面61上を走行する場合を例にして説明する。このとき、車両60のある一点から路面61への垂線の足を原点Oとし、路面61に垂直に交わる方向にZ軸、車両60の進行方向に平行な方向にY軸、Z軸およびY軸に垂直な方向にX軸をとる直交座標系O−XYZを、移動体座標系と呼ぶ。この車両60のある一点は、例えば、車両60の重心、路面に平行な断面における中心などとするようにしてもよい。
一方、車両60に備えられたカメラ30の所定の位置(例えば、カメラ30の対物レンズの中心点)を原点oとし、光軸をz軸とする直交座標系o−xyzをカメラ座標系と呼ぶ。なお、前述の原点oの位置をカメラ位置と呼ぶことがある。このとき、カメラ座標系において、z軸に垂直で、カメラ位置から矢印64のようにカメラの焦点距離f離れた面を、撮像面65とする。
矢印66は、移動体座標系とカメラ座標系との変換を示している。矢印66に示すように、移動体座標系とカメラ座標系との変換は、移動体座標系において、回転行列Rw、並進ベクトルTwにより表されるものとする。回転行列Rwとは、例えば、移動体座標系の各軸に対するカメラ座標系の各軸のなす角を用いて表される3行3列の行列である。並進ベクトルTwとは、例えば、移動体座標系の原点に対するカメラ座標系の原点の位置を表す3行1列の行列である。回転行列Rwおよび並進ベクトルTwは、いずれも図1の移動量検出部17によって取得される情報である。
回転行列Rw、並進ベクトルTwで表される車両60の移動量(Rw,Tw)は、移動体座標系で記述されたものである。また、画像を取得した時刻のうち、最新時刻t2の前の時刻である時刻t1での移動体座標系で表した、特徴点に対応する三次元位置の位置ベクトルをXw1、最新時刻t2での移動体座標系で表した、特徴点に対応する三次元位置の位置ベクトルをXw2とする。更に、これら2つの位置をカメラ座標系で表した三次元位置の位置ベクトルをそれぞれxh1、xh2とする。また、時刻t1から時刻t2までの移動体の移動量を回転行列Rm、並進ベクトルTmで表すものとする。
移動体座標系Xw(X,Y,Z)からカメラ座標系xh(x,y,z)への変換は、回転行列Rw、並進ベクトルTwを用いて、以下のように表すことができる。なお、「*」は乗算を表す。
xh=Rw*(Xw−Tw)・・・(式1)
また、式1を変形すると、
Xw=RwT*xh+Tw・・・(式2)
と表すこともできる。RwTはRwの転置行列である。
図12は、カメラ座標系における特徴点の位置と三次元位置との関係を示す図である。ここでも、カメラの焦点距離をfとする。図12に示すように、任意の時刻における特徴点nは撮像面65上にあり、カメラ位置を原点oとするカメラ座標系xhにおいて、以下の座標を有するものとする。すなわち、撮像面65上の特徴点nの位置は、カメラ位置を基準とした位置ベクトルで表される。
n=(px,py,f)・・・(式3)
このとき、特徴点nの位置ベクトルの延長線にある点が、実際の物体候補の三次元位置となる。三次元位置をPとし、カメラ位置からPまでの距離をlとすると、カメラ座標系xhにおけるPの位置ベクトル(座標)は、
P=l*n=(l*px,l*py,l*f)・・・(式4)
と表すことができる。
続いて、カメラ座標系xhにおけるPの座標を、移動体座標系Xw(X,Y,Z)における座標へ変換する。このとき、路面の場合、高さが零、すなわちZ=0となるため、式1および式4を用いると、Z=0を満足する距離lを算出することができる。そして、算出された距離lを用いて、残りのXおよびYを算出することができる。
次に、移動体座標系Xwにおける時刻t1のときの座標Xw1と時刻t2のときの座標Xw2との関係は、移動体の回転行列Rwおよび並進ベクトルTwを用いて、
Xw2=Rw*Xw1+Tw・・・(式5)
と表されるとする。
式1を用いると、カメラ座標系xhにおける時刻t1のときの座標xh1は、
xh1=Rw*(Xw1−Tw)・・・(式6)
と表され、カメラ座標系xhにおける時刻t2のときの座標xh2は、
xh2=Rw*(Xw2−Tw)・・・(式7)
と表すことができる。
ここで、座標xh1が既知である場合、座標xh1と、移動体の回転行列Rwおよび並進ベクトルTwとを式6に代入することによって、座標xh1から移動体座標系Xwにおける座標Xw1へ変換することができる。そして、座標Xw1が算出されると、座標Xw1と、移動体の回転行列Rwおよび並進ベクトルTwとを式5に代入することによって、座標Xw2を算出することができる。更に、Xw2が算出されると、座標Xw2と、移動体の回転行列Rwおよび並進ベクトルTwとを式7に代入することによって、xh2を算出することができる。
座標xh1は、特徴点が路面であるとした場合の、時刻t1における画像上の特徴点の位置(x1,y1)を表している。座標xh2は、特徴点が路面であるとした場合の時刻t2における画像上の特徴点の位置(x1,y1)を表している。よって、仮想路面フロー量算出部18は、座標間の距離を求める以下の式8により、仮想路面フロー量を算出することができる。
sqrt((x2−x1)^2+(y2−y1)^2)・・・(式8)
ここで、sqrt(A)は、Aの平方根を表している。以上のようにして、仮想路面フロー量算出部18は、仮想路面フロー量を算出する処理を実行する。
図10に示すように、カメラ30から見たときの、2つの時刻間における立体物62の視差は、路面模様63の視差よりも大きい。このため、画面上のある特徴点が立体物である場合、2つの時刻間における動きは路面模様よりも大きくなるため、当該特徴点の観測フロー量は仮想路面フロー量よりも大きくなる。一方、画面上のある特徴点が路面模様63である場合、当該特徴点の観測フロー量は仮想路面フロー量と等しくなる。すなわち、観測フロー量と仮想路面フロー量との差を調べることによって、物体候補が立体物と路面模様のいずれであるのかを識別することができる。以降では、観測フロー量と仮想路面フロー量との差を、フロー差と呼称する。このフロー差は、換言すれば、2つの時刻間における、画像に含まれる路面の位置ずれ量に対する、物体の位置ずれ量の相対値を示す指標である。また、フロー差の、画面上における高さ方向(y軸方向と呼称することがある)の分布を、フロー差分布と呼称する。
図3に戻り、S105の処理の後、フロー差分布生成部19は、S104で算出された観測フロー量とS105で算出された仮想路面フロー量とを用いて、物体候補のフロー差分布を生成する(S106)。以下、フロー差分布を生成する処理について説明する。
図13は、実施例1における、フロー差分布を生成する処理の一例を示すフローチャートである。
まず、フロー差分布生成部19は、S103で抽出した全ての物体候補の中から、未選択の物体候補を選択する(S401)。
続いて、フロー差分布生成部19は、物体候補を構成する特徴点毎にフロー差を算出し、フロー差分布を生成する(S402)。具体的には、フロー差分布生成部19は、ある特徴点について、S104で特徴点毎に算出された観測フロー量と、S105で算出された仮想路面フロー量との差分を求めることにより、フロー差を算出する。この算出処理を特徴点毎に実行することにより、物体候補の路面からの高さに対するフロー差の分布を得ることができる。
続いて、フロー差分布生成部19は、フロー差分布の連続性を考慮しながら、フロー差分布のノイズを除去する(S403)。具体的には、フロー差分布生成部19は、まずフロー差の移動平均を算出する。その後、フロー差分布生成部19は、移動平均とフロー差との差分の値が所定の閾値以上となる箇所を除外することにより、ノイズを除去する。
続いて、フロー差分布生成部19は、ノイズが除去されたフロー差分布に対してスムージング処理を実行する(S404)。具体的には、フロー差分布生成部19は、まずノイズが除去されたフロー差に対して、再度移動平均を算出する。その後、フロー差分布生成部19は、S403で設定した閾値よりも小さい閾値を用いて閾値を超えた箇所を除外することにより、スムージング処理を実行する。なお、S403およびS404を同一ステップとして実行することも可能であり、またはS402で生成されたフロー差分布の連続性の状態によっては、S404の処理を省略することも可能である。
続いて、フロー差分布生成部19は、全ての物体候補を選択済みか否かを判定する(S405)。全ての物体候補を選択済みでないと判定された場合(S405否定)、S401に戻り、S401以降の処理を再び実行する。一方、全ての物体候補を選択済みであると判定された場合(S405肯定)、S106の処理を終了し、S107に移行する。以上のようにして、フロー差分布生成部19は、フロー差分布を生成する処理を実行する。
図3に戻り、S106の処理の後、モデル照合部20は、S106で生成したフロー差分布を複数のフロー差分布モデルと照合し、物体候補に対応するフロー差分布モデルを決定する(S107)。この処理をモデル照合処理と呼称する。以下、モデル照合処理について説明する。
図14は、実施例1における、モデル照合処理の一例を示すフローチャートである。
まず、モデル照合部20は、S103で抽出した全ての物体候補の中から、未選択の物体候補を選択する(S501)。続いて、モデル照合部20は、物体候補の画像上の位置に基づいて、物体候補の種類と路面の傾斜状態の種類との組み合わせ毎に、複数のフロー差分布モデルを生成する(S502)。ここで、フロー差分布モデルの生成方法について説明する。
まず、モデル照合部20は、最新時刻t2における撮像画面から、カメラ座標系xhにおける物体候補の特徴点の座標xh2を抽出する。その後、モデル照合部20は、抽出された座標xh2と、図1の移動量検出部17によって取得された移動体の回転行列Rwおよび並進ベクトルTwとを式7に代入することにより、座標xh2から移動体座標系Xwにおける座標Xw2へ変換する。
続いて、モデル照合部20は、算出された座標Xw2と、回転行列Rwおよび並進ベクトルTwとを式5に代入することにより、時刻t1のときの座標Xw1を算出する。
続いて、モデル照合部20は、算出された座標Xw1と、回転行列Rwおよび並進ベクトルTwとを式6に代入することにより、座標Xw1からカメラ座標系xhにおける座標xh1へ変換する。
その後、モデル照合部20は、座標xh1と座標xh2との差分を求めることにより、当該特徴点におけるフロー量を算出する。そして最後に、モデル照合部20は、算出されたフロー量と、S105で得られた仮想路面フロー量との差分を求めることにより、当該特徴点におけるフロー差を算出する。
以上の処理を、物体候補の各特徴点について実行する。これによりモデル照合部20は、画面の高さとフロー差との関係のモデルである、フロー差分布のモデルを生成することができる。以降では、このモデルをフロー差分布モデルと呼称する。本実施形態では、勾配の角度に応じて補正した式5、式6および式7を用いることにより、物体候補の種類(立体物または路面模様)と、路面の傾斜状態(平坦な路面、上り勾配の路面および下り勾配の路面)との組み合わせ毎に、複数のフロー差分布モデルを生成する。各式の補正は、勾配の角度に基づく係数または補正項で座標の値を補正する、公知の数学(幾何学)を用いた方法によって行うことができる。
図15は、平坦な路面におけるフロー差分布モデルの一例を示す図である。図16は、平坦な路面の一例を示す図である。
図15(a)は、平坦な路面の画像の一例を示す図である。画像50aには、路面55a上に設けられた立体物51aおよび路面模様52aの像が含まれている。立体物51aの右側の点線の枠53a内には、立体物51aの輪郭に沿った複数の特徴点が存在するが、図15(a)では省略されている。また、路面模様52aの右側の点線の枠54a内には、路面模様52aの輪郭に沿った複数の特徴点が存在するが、図15(a)では同様に省略されている。
図15(b)は、平坦な路面における、立体物のフロー差分布モデルの一例である。このフロー差分布モデルは、枠53a内の複数の特徴点に基づいて生成されたものである。また、このフロー差分布モデルは、図16に示すように、路面55aに対する立体物51aの上端の高さが、路面55aに対するカメラ30の高さと等しい場合の例である。立体物51aの上端の高さとカメラ30の高さとが等しい場合、車両60が立体物51aの方向に移動しても、立体物51aの上端の特徴点の位置は変化しない。このため、当該特徴点の観測フロー量は零となる。さらに、立体物の上端が路面であると仮定した場合、カメラ30から立体物51aの上端までの視線は路面55aと平行となるため、車両60が立体物51aの方向に移動しても、立体物51aの上端に対応する路面上の点は存在しない。このため、立体物51aの上端にある特徴点に対応する仮想路面フロー量は零と見做すことができる。よって、観測フロー量と仮想路面のフロー量との差分であるフロー差は、零と算出される。
一方、図16に示すように、立体物51aの下端は路面55a上にある。このため、移動体が立体物51aの方向に移動した場合における立体物51aの下端にある特徴点の観測フロー量と、立体物51aの下端が路面55a上にあると仮定した場合における、立体物51aの下端にある特徴点の仮想路面フロー量とは等しくなる。よって、観測フロー量と仮想路面のフロー量との差分であるフロー差は、零と算出される。
以上のことから、図15(a)に示すような、立体物51aの上端と下端におけるフロー差が零で、立体物51aの上端と下端との間でフロー差が極大となるフロー差分布モデルを得ることができる。なお、立体物のフロー差分布モデルのプロファイルは固定されたものではなく、立体物の位置、大きさ、形状、または立体物とカメラ30との位置関係に応じて生成されるものである。
図15(c)は、平坦な路面における、路面模様のフロー差分布モデルの一例である。このフロー差分布モデルは、枠54a内の複数の特徴点に基づいて生成されたものである。路面模様52aを構成する全ての特徴点は路面55a上にある。したがって、平坦な路面55aでは、路面模様52aの全ての特徴点において、観測フロー量と、当該特徴点が路面上にあると仮定した場合の仮想路面フロー量とは等しくなる。よって、観測フロー量と仮想路面のフロー量との差分であるフロー差は、路面55a上の位置に関わらず零と算出される。
以上のことから、図15(c)に示すような、路面模様52aの上端から下端までフロー差が零となるフロー差分布モデルを得ることができる。路面模様のフロー差分布モデルのプロファイルは、路面が平坦である場合は、立体物の大きさによって高さ方向の長さが変動するものの、路面模様によらず略同様である。
図17は、上り勾配を有する路面におけるフロー差分布モデルの一例を示す図である。図18は、上り勾配を有する路面の一例を示す図である。
図17(a)は、上り勾配を有する路面の画像の一例を示す図である。画像50bには、上り勾配を有する路面55b上に設けられた立体物51bおよび路面模様52bの像が含まれている。立体物51bの右側の点線の枠53b内には、立体物51bの輪郭に沿った複数の特徴点が存在するが、図17(a)では省略されている。また、路面模様52bの右側の点線の枠54b内には、路面模様52bの輪郭に沿った複数の特徴点が存在するが、図17(a)では同様に省略されている。
図17(b)は、上り勾配を有する路面における、立体物のフロー差分布モデルの一例である。このフロー差分布モデルは、枠53b内の複数の特徴点に基づいて生成されたものである。
路面55bが上り勾配を有する場合、立体物51bの輪郭に含まれる複数の特徴点のうち、車両60の直下の路面61に対するカメラ30の高さと等しい高さにある特徴点では、車両60が立体物51bの方向に移動しても、特徴点の位置は変化しない。このため、当該特徴点の観測フロー量は零となる。
さらに、カメラ30の高さと等しい高さにある立体物51b中の特徴点が路面であると仮定した場合、車両60が立体物51bの方向に移動しても、当該特徴点に対応する路面55b上の点は変化しない。このため、当該特徴点に対応する仮想路面フロー量も零となる。よって、観測フロー量と仮想路面のフロー量との差分であるフロー差は、零と算出される。
以上のことから、図17(b)に示すような、立体物51bの上端と下端との間にフロー差が零となる点が存在し、立体物51bの上端または下端に行くにしたがってフロー差が大きくなるフロー差分布モデルを得ることができる。
図17(c)は、上り勾配を有する路面における、路面模様のフロー差分布モデルの一例である。このフロー差分布モデルは、枠54b内の複数の特徴点に基づいて生成されたものである。また、このフロー差分布モデルは、図18に示すように、路面模様52bのうち、カメラ30から最も遠方に位置する特徴点の高さ、すなわち画像50bに含まれる路面模様52bの上端にある特徴点が、カメラ30の高さと等しい場合の例である。
路面55bが上り勾配を有する場合、図18に示すように、路面模様52b全体が、車両60の直下の路面61よりも高い位置にある。すなわち、路面模様52bは、路面55bが仮に平坦であれば、立体物と見做せる高さにある。そして、2つの時刻間の、路面模様52bの上端の視差の変化は零であり、路面模様52bの下端に行くほど視差の変化が大きくなる。このため、図17(c)に示すような、路面模様52bの上端におけるフロー差が零で、下端に行くほどフロー差が大きくなるフロー差分布モデルを得ることができる。
図19は、下り勾配を有する路面におけるフロー差分布モデルの一例を示す図である。図20は、下り勾配を有する路面の一例を示す図である。
図19(a)は、下り勾配を有する路面の画像の一例を示す図である。画像50cには、下り勾配を有する路面55c上に設けられた立体物51cおよび路面模様52cの像が含まれている。立体物51cの右側の点線の枠53c内には、立体物51cの輪郭に沿った複数の特徴点が存在するが、図19(a)では省略されている。また、路面模様52cの右側の点線の枠54c内には、路面模様52cの輪郭に沿った複数の特徴点が存在するが、図19(a)では同様に省略されている。
図19(b)は、下り勾配を有する路面における、立体物のフロー差分布モデルの一例である。このフロー差分布モデルは、枠53c内の複数の特徴点に基づいて生成されたものである。
路面が下り勾配を有する場合、図20の例では、立体物51cの一部は車両60の直下の路面61よりも低い位置にある。また、立体物51cの上端は、カメラ30の高さよりも低い位置にある。このため、フロー差分布モデルとしては、図19(b)に示すように、車両60の直下の路面61と同じ高さにある特徴点でフロー差が零となる。そして、当該特徴点から上端へ向かう方向では、上端に行くにつれてフロー差が極大となり、その後フロー差が小さくなるものの、立体物51cの上端ではフロー差が零とはならないプロファイルが得られる。そして、当該特徴点から下端へ向かう方向では、下端に行くにつれてフロー差がマイナス方向に大きくなるプロファイルを得ることができる。
図19(c)は、下り勾配を有する路面における、路面模様のフロー差分布モデルの一例である。
路面55cが下り勾配を有する場合、車両60が路面模様52cの方向に移動したときの視差の変化は、路面模様52cが平坦な路面61にある場合よりも小さい。また、仮想路面フロー量は、路面模様52cに含まれる特徴点が、路面55cでなく平坦な路面61上にあると仮定した場合のフロー量である。したがって、路面模様52cが下り勾配を有する路面55c上にある場合は、観測フロー量よりも仮想路面フロー量の方が大きくなり、観測フロー量と仮想路面フロー量との差分であるフロー差はマイナスとなる。このため、図19(c)に示すような、路面模様52cの上端におけるフロー差が零に限りなく近くなり、下端に行くほどフロー差がマイナス方向に大きくなるフロー差分布モデルが得られる。
以上のようにして、S502において、モデル照合部20は、路面の傾斜状態および対象物の組み合わせ毎に複数のフロー差分布モデルを生成する。図15、図17および図19には、2種類の物体候補(立体物および路面模様)と3種類の路面の傾斜状態(平坦な路面、上り勾配の路面および下り勾配の路面)との組み合わせによる6種類のフロー差分布モデルが示されている。但し、実際の路面の傾斜状態は無限に存在するため、6種類には限定されない。S502では、予め想定される勾配の角度を設定しておき、設定された角度に基づいて処理を実行することが好ましい。
図14に戻り、S502で複数のフロー差分布モデルを生成した後、モデル照合部20は、物体候補を構成する特徴点の中から、未選択の特徴点を選択する(S503)。S503では、物体候補を構成する特徴点のうち、最も路面に近い側、すなわち画面上のy座標が最も小さい位置から順に選択していくことが好ましい。例えば、図7に示す高さ方向へ向かって、順次特徴点を選択していくことが好ましい。あるいは、物体候補を構成する特徴点のうち、最も路面から遠い側、すなわち画面上のy座標が最も大きい位置から順に選択していくことが好ましい。例えば、図7に示す高さ方向の逆方向へ向かって、順次特徴点を選択していくことが好ましい。これらの方法によれば、画面上のy座標の値の昇順または降順に従って特徴点を選択していくため、後述する乖離量が大きく変化する位置を特定しやすく、物体候補を2つに分離する処理を容易に行うことができる。物体候補を2つに分離する処理については後述する。
続いて、モデル照合部20は、選択された特徴点の位置における、物体候補のフロー差分布と複数のフロー差分布モデルの各々との乖離量を算出する(S504)。
続いて、モデル照合部20は、選択済みの特徴点の数が所定の数以上であるか否かを判定する(S505)。選択済みの特徴点の数が所定の数以上でないと判定された場合(S505否定)、S501に戻り、S501以降の処理を再び実行する。一方、選択済みの特徴点の数が所定の数以上であると判定された場合(S505肯定)、モデル照合部20は、複数のフロー差分布モデルから、物体候補のフロー差分布との乖離量が最も小さいフロー差分布モデルを選択する(S506)。具体的には、モデル照合部20は、特徴点毎に算出した乖離量の積算値または平均値を乖離量と見做し、フロー差分布モデル同士で比較することにより、乖離量が最も小さいフロー差分布モデルを選択する。
続いて、モデル照合部20は、S506の処理で用いた乖離量が、閾値未満であるか否かを判定する(S507)。乖離量が、閾値未満であると判定された場合(S507肯定)、モデル照合部20は、S506で選択したフロー差分布モデルを、物体候補に対応するフロー差分布モデルとして決定する。このように、選択されたフロー差分布モデルの乖離量を閾値と比較してから、物体候補に対応するフロー差分布モデルとして決定する。これにより、フロー差分布モデルの決定を誤りなく実行することができる。また、後述するように、物体候補が複数の物体によって構成されていることを検知することができる。
一方、乖離量が、閾値未満でないと判定された場合(S507否定)、物体候補が複数の物体によって構成されていると見做され、物体候補を分離する処理を実行する(S508)。ここで、物体候補を分離する処理について説明する。
図21は、路面模様および立体物の像が画面上で重なったときの、画像、物体候補およびフロー差分布の一例を示す図である。図21(a)に示すように、画像50dには立体物51d、路面模様52d、および路面55dの像が含まれている。路面模様52dの上に立体物51dが存在する場合、またはカメラ30から見て立体物51dの背後に路面模様52dが存在する場合は、図21(a)に示すように、立体物51dと路面模様52dとが繋がった物体の画像が取得される。このため、図21(b)に示すように、立体物51dと路面模様52dとが繋がったときにできる輪郭を有する物体候補59が、S103で抽出される可能性がある。
このような場合、物体候補59のフロー差分布として、例えば図21(c)に示すようなフロー差分布70が、S106で生成されることとなる。このフロー差分布70は、路面模様52dのフロー差分布と立体物51dのフロー差分布の複合体であるため、これを用いてS107における照合処理を実行すると、類似するフロー差分布モデルを見つけることが困難となる。そこでモデル照合部20は、このような物体候補59が検出された場合には、立体物と路面模様とを区別して検出するため、物体候補を2つに分離する。
図22は、路面模様および立体物によって構成される物体候補の検出例および分離方法の一例を示す図である。
図22(a)に示すように、画面上のy座標の値が小さい順にフロー差分布70のy座標を選択していくと、処理の初期段階では路面模様を構成する特徴点のy座標が選択される。この場合、選択されたy座標に対応するフロー差と、路面模様のフロー差分布モデルの当該y座標に対応するフロー差とは略一致するため、乖離量は略零となる。
ところが、選択されるy座標の値の増加に伴って、立体物を構成する特徴点のy座標の選択が開始されると、図22(b)に示すように、その開始点を境に、選択されたy座標に対応するフロー差と、路面模様のフロー差分布モデルの当該y座標に対応するフロー差との間の乖離量が急に大きくなる。そこで、モデル照合部20は、図22(c)に示すように、開始点でフロー差分布70を上下に分離し、図22(d)に示すように、フロー差分布71,72を生成する。このフロー差分布71,72が、物体候補59を分離して得られた2つの物体候補のフロー差分布に対応する。
その後、2つの物体候補の各々について、フロー差分布モデルを決定するS107の処理を実行する。図15,図17および図19に示す複数のフロー差分布モデルを参照すると、下側のフロー差分布72は路面模様のフロー差分布に類似する。このため、路面模様のフロー差分布モデルが下側の物体候補に対応するフロー差分布モデルとして決定される。一方、図15,図17および図19に示す複数のフロー差分布モデルを参照すると、上側のフロー差分布71は立体物のフロー差分布に類似する。このため、立体物のフロー差分布モデルが上側の物体候補に対応するフロー差分布モデルとして決定される。このように、物体候補59が立体物と路面模様とによって構成されている場合、物体候補59を分離することにより、立体物と路面模様とを区別して検出することが可能となる。
図14に戻り、S508において、モデル照合部20は、S504で算出した乖離量の情報に基づいて、物体候補を分離する。具体的には、モデル照合部20は、y座標の値の増加に伴う乖離量の変化を参照し、乖離量が所定の閾値よりも低いレベルから高いレベルに推移する位置で、物体候補を上下に分離する。S508の処理の後、S501に戻り、S501以降の処理を再び実行する。
一方、S507において、乖離量が、閾値未満であると判定された場合(S507肯定)、モデル照合部20は、全ての物体候補について選択済みか否かを判定する(S509)。全ての物体候補について選択済みでないと判定された場合(S509否定)、S501に戻り、S501以降の処理を再び実行する。一方、全ての物体候補について選択済みであると判定された場合(S509肯定)、S107の処理を終了し、S108に移行する。以上のようにして、モデル照合部20は、モデル照合処理を実行する。
図3に戻り、S107の処理の後、出力部21は、S103で抽出した物体候補の中に立体物であると判定された物体候補が存在する場合に、判定結果を出力する(S108)。具体的には、出力部21は、S107の処理の結果、立体物のフロー差分布モデルに対応する物体候補が物体候補の中に存在する場合に、立体物が検出された旨を出力する。
以上のようにして、物体検出装置100による立体物を検出する処理を実行する。
図23は、路面の勾配を考慮せずに立体物の検出処理を行った場合の問題点を説明する図である。図23(a)は、平坦な路面における、立体物のフロー差分布モデルの一例を示す図である。図23(b)は、平坦な路面における、路面模様のフロー差分布モデルの一例を示す図である。図23(c)は、上り勾配を有する路面における、路面模様のフロー差分布モデルの一例を示す図である。図23(d)は、下り勾配を有する路面における、路面模様のフロー差分布モデルの一例を示す図である。
図23(a)〜図23(d)の各々に示されている2本の点線は、立体物であるか否かを判定するために用いるフロー差の閾値を示している。物体候補のフロー差分布モデルのプロファイルが2本の点線の内側に収まる場合、物体候補は立体物ではないと判定される。一方、物体候補のフロー差分布モデルのプロファイルが2本の点線の内側に収まらない場合、すなわち、プロファイルの少なくとも一部が点線から外側にはみ出ている場合は、立体物であると判定される。
例えば、図23(a)の例では、プロファイルが右側の点線よりも右側にはみ出していることから、立体物であると判定される。一方、図23(b)の例の場合は、プロファイルが2本の点線の内側に収まっていることから、立体物でないと判定される。このように、上述の判定方法は、路面が平坦な場合では立体物を検出する上で有効である。
しかしながら、路面に勾配がある場合は、路面模様であるにも関わらず、立体物として誤って検出されてしまう可能性がある。例えば、上り勾配を有する路面の場合、図23(c)に示すように、路面模様のフロー差分布モデルのプロファイルが、右側の点線から外側にはみ出している。このため、実際は路面模様であるにも関わらず、立体物として検出されてしまう。また、下り勾配を有する路面の場合、図23(d)に示すように、路面模様のフロー差分布モデルのプロファイルが、左側の点線から外側にはみ出している。このため、実際は路面模様であるにも関わらず、立体物として検出されてしまう。
実施例1の実施形態によれば、取得された画像中の物体候補の位置に基づいて、物体候補の種類および路面の傾斜状態の組み合わせ毎に、プロファイルの異なる複数のフロー差分布モデルを生成する。そして、物体候補のフロー差分布に最も類似するフロー差分布モデルを、生成された複数のフロー差分布モデルの中から抽出して決定する。この方法により、上述の誤検出の問題を解決することができ、路面の傾斜状態に関わらず、路面模様と区別して立体物の存在を検知することが可能となる。
(実施例2)
次に、実施例2について説明する。実施例1では、図3のS107において、全ての物体候補について、複数のフロー差分布モデルの中から、取得したフロー差分布に類似するモデルを選択、決定した後、S108において、立体物であると判定された物体候補が存在するか否かを判定している。これに対して実施例2では、物体候補に対応するフロー差分布モデルが決定される度に、当該物体候補が立体物であるか否かを判定することを特徴としている。なお、実施例2を実現するための物体検出装置は、図1および図2に例示されている物体検出装置の構成を用いることができるため、説明を省略する。
図24は、実施例2における、物体検出装置による立体物の検出方法の一例を示すフローチャートである。
S101からS106までの処理は、実施例1で行う処理と同様であるので、説明は省略する。S106の後、モデル照合部20は、S106で生成したフロー差分布を複数のフロー差分布モデルと照合し、物体候補に対応するフロー差分布モデルを決定する。そして、決定されたモデルが立体物に関連する場合、立体物が検出された旨を出力する(S107a)。以下、S107aの処理について説明する。
図25は、実施例2における、モデル照合処理および立体物を検出する処理の一例を示すフローチャートである。
S501からS506までの処理は、実施例1で行う処理と同様であるので、説明は省略する。S506の後、モデル照合部20は、S506の処理で用いた乖離量が、閾値未満であるか否かを判定する(S507)。乖離量が、閾値未満でないと判定された場合(S507否定)、物体候補を分離する処理を実行する(S508)。S508の処理は、実施例1で行う処理と同様であるので、説明は省略する。
一方、乖離量が、閾値未満であると判定された場合(S507肯定)、モデル照合部20は、S506で選択したフロー差分布モデルを、物体候補に対応するフロー差分布モデルとして決定する。そして、出力部21は、決定されたフロー差分布モデルが立体物に関連する場合、立体物が検出された旨を出力する(S508a)。その後、モデル照合部20は、全ての物体候補について選択済みか否かを判定する(S509)。全ての物体候補について選択済みでないと判定された場合(S509否定)、S501に戻り、S501以降の処理を再び実行する。一方、全ての物体候補について選択済みであると判定された場合(S509肯定)、物体検出装置100による立体物を検出する一連の処理を終了する。
以上のようにして、実施例2における、立体物を検出する処理を実行する。
実施例2の実施形態によれば、物体候補に対応するフロー差分布モデルが決定される度に、当該物体候補が立体物であるか否かを判定する。この方法によれば、全ての物体候補についてのフロー差分布モデルを決定する処理が終了するのを待つことなく、立体物が検出され次第、その旨をすぐに出力することができる。よって、立体物の検出結果を出力するタイミングを実施例1よりも早めることができる。
以上、本発明の好ましい実施例について詳述したが、本発明は特定の実施例に限定されるものではなく、種々の変形や変更が可能である。例えば、路面模様のフロー差分布モデルは、取得した画像の中に既知の路面模様を示す画像がある場合は、当該画像に基づいて生成するようにしてもよい。また、これまで説明した実施形態では、画像入力部12が撮像部11から画像を受信する度に、画像内の物体候補に応じた複数のフロー差分布モデルを生成した。しかし、物体の種類や路面の傾斜状態に応じた典型的なフロー差分布モデルを予めメモリなどに複数種類格納しておき、これらを参照しながらモデル照合処理を実行するようにすることもできる。この方法によれば、複数のフロー差分布モデルを生成する処理を省略することができるため、物体の検知速度の向上を図ることができる。また、本実施形態における立体物として、例えば建築物の屋内の天井から突出した物体若しくは吊り下げられた物体、または建築物の屋内の側壁から突出した物体を含めることもできる。
なお、前述した物体検出装置および情報処理方法をコンピュータに実行させるコンピュータプログラム、およびそのプログラムを記録した、非一時的なコンピュータ読み取り可能な記録媒体は、本発明の範囲に含まれる。ここで、非一時的なコンピュータ読み取り可能な記録媒体は、例えばSDメモリカードなどのメモリカードである。なお、前記コンピュータプログラムは、前記記録媒体に記録されたものに限られず、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク等を経由して伝送されるものであってもよい。