以下に、本願の開示する物体検出方法、物体検出プログラムおよび物体検出装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
本実施例に係る物体検出装置の処理について説明する。物体検出装置は、複数時刻の輪郭線から同一物体の輪郭線を統合する一次補間処理と、物体の対称性を用いて、輪郭線を相互補間する二次補間処理を行う。
一次補間処理について説明する。図1は、本実施例に係る物体検出装置が行う一次補間処理を説明するための図である。ある時刻の輪郭線から途切れた輪郭線の補間を行うことは難しいが、別の時刻では移動体の移動によって明るさや物体の見え方が変化するため、物体の見え方が異なり、抽出される輪郭線が時刻によって異なる。物体検出装置は、複数時刻の輪郭線を統合することで、ある時刻では途切れていた箇所を補間することが可能となる。
図1に示す例では、物体検出装置は、時刻t-2のフレームに含まれる物体5から、輪郭線51,52,53を抽出し、途切れ箇所6aが発生する。物体検出装置は、時刻t-1のフレームに含まれる物体5から、輪郭線54,55,56を抽出し、途切れ箇所6bが発生する。物体検出装置は、時刻tのフレームに含まれる物体5から、輪郭線57,58を抽出し、途切れ箇所6cが発生する。
物体検出装置は、複数時刻の各輪郭線51〜58を統合することで、統合輪郭線60を生成する。物体検出装置は、統合輪郭線60と、時刻t-2のフレームの輪郭線51〜53とを比較して、途切れ箇所6aを補間することで、輪郭線61を生成する。物体検出装置は、統合輪郭線60と、時刻t-1のフレームの輪郭線54〜56とを比較して、途切れ箇所6bを補間することで、輪郭線62を生成する。物体検出装置は、統合輪郭線60と、時刻tのフレームの輪郭線57,58とを比較して、途切れ箇所6cを補間することで、輪郭線63を生成する。
しかし、複数時刻の輪郭線を統合しても、途切れ箇所を補間できない場合がある。図2は、途切れ箇所を補間できない複数時刻の輪郭線の一例を示す図である。図2に示す例では、物体検出装置は、時刻t-2のフレームに含まれる物体7から、輪郭線71,72を抽出し、途切れ箇所8aが発生する。物体検出装置は、時刻t-1のフレームに含まれる物体7から輪郭線73,74を抽出し、途切れ箇所8bが発生する。物体検出装置は、時刻tのフレームに含まれる物体7から輪郭線75,76を抽出し、途切れ箇所8cが発生する。
物体検出装置は、複数時刻の各輪郭線71〜76を統合することで、統合輪郭線80を生成する。しかし、統合輪郭線80にも途切れ箇所80a,80bが発生する。このため、係る途切れ箇所80a,80bの影響により、統合輪郭線80を用いても、各時刻の輪郭線を補間することができない。このような場合には、物体検出装置は、二次補間処理を実行する。
図3は、本実施例に係る物体検出装置が行う二次補間処理を説明するための図である。物体検出装置は、同一時刻のフレーム内において、2本の輪郭線が対称であるか否かを判定する。物体検出装置は、2本の輪郭線が対称である場合には、対称となる各輪郭線の形状および端点の位置を同じになるため、各輪郭線の途切れ箇所を補間する。
図3に示す例では、物体検出装置は、ある時刻のフレームに含まれる物体8から、輪郭線85aを抽出し、途切れ箇所86aが発生する。物体検出装置は、物体8から、輪郭線85bを抽出し、途切れ箇所86bが発生する。ここで、物体検出装置は、輪郭線85aと輪郭線85bとが対称であると判定した場合には、途切れ箇所86aを、輪郭線85bによって補間することで、輪郭線87aを生成する。また、物体検出装置は、輪郭線85aと輪郭線85bとが対称であると判定した場合には、途切れ箇所86bを、輪郭線85aによって補間することで、輪郭線87bを生成する。なお、物体検出装置は、各輪郭線が対称性を持たない輪郭線の組については、二次補間処理を実行しない。
上記のように、物体検出装置が、一次補間処理および二次補間処理を実行することで、輪郭線に途切れ箇所や端点位置に誤りがあっても正しく輪郭線を抽出することができ、これにより、立体物を安定して検出することが可能になる。
次に、本実施例に係る物体検出装置の構成について説明する。図4は、本実施例に係る物体検出装置の構成を示す機能ブロック図である。図4に示すように、物体検出装置100は、カメラ90に接続される。物体検出装置100は、記憶部110、映像入力部120、特徴点抽出部130、輪郭線抽出部140、輪郭線統合部150、対称性判定部160、立体物判定部170、結果出力部180を有する。
カメラ90は、車両等の移動体に設置される単眼の撮影装置である。カメラ90は、撮影範囲の映像情報を、物体検出装置100に出力する。映像情報は、時刻毎のフレームを含む。
記憶部110は、輪郭線情報テーブル110aを記憶する。記憶部110は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子などの記憶装置に対応する。
輪郭線情報テーブル110aは、フレームから検出される輪郭線の情報を保持するテーブルである。図5は、輪郭線情報テーブルのデータ構造の一例を示す図である。図5に示すように、この輪郭線情報テーブルは、フレーム識別番号と、輪郭線番号と、始点座標と、終点座標とを対応付ける。フレーム識別番号は、映像情報に含まれるフレームを一意に識別する情報である。輪郭線番号は、輪郭線を一意に識別する情報である。始点座標および終点座標は、輪郭線の始点座標と終点座標を示す情報である。なお、輪郭線情報テーブル110aは、輪郭線に関するその他の情報を対応付けて保持してもよい。
映像入力部120は、カメラ90から映像情報の入力を受け付けるインタフェースである。映像入力部120は、映像情報を特徴点抽出部130に出力する。映像入力部120は、映像情報がアナログ映像である場合には、デジタル変換する。映像入力部120は、映像情報がカラー画像である場合には、モノクロ画像に変換する。映像入力部120は、モノクロ画像のデジタル映像を、特徴点抽出部130に出力する。
特徴点抽出部130は、映像情報に含まれる各画像フレームから、特徴点を抽出する処理部である。特徴点抽出部130は、抽出部の一例である。例えば、特徴点抽出部130は、画像フレームからエッジ抽出を行い、特徴点画像を生成する。特徴点抽出部130は、特徴点画像の情報を、輪郭線抽出部140に出力する。例えば、特徴点画像には、エッジ点毎に、エッジ点の座標、エッジ点の強度の情報が対応付けられる。
特徴点抽出部130は、Sobelのような一般的な微分オペレータを作用させ、微分処理によって得られるエッジの強度と予め定めた強度閾値とを比較し、閾値以上となるエッジを抽出する。特徴点抽出部130は、画像フレームから抽出したエッジについて隣接横画素2つのエッジ強度を比較し、ピーク値となればエッジ点とする細線化を行ってもよい。
輪郭線抽出部140は、特徴点画像を基にして、特徴点座標上のエッジ点をつなげることで、輪郭線を抽出する処理部である。図6は、輪郭線抽出部の処理手順を示すフローチャートである。図6に示すように、輪郭線抽出部140は、特徴点画像上の未処理のエッジ点を選択する(ステップS101)。ステップS101において選択されたエッジ点を、便宜上、エッジ点Aと表記する。
輪郭線抽出部140は、エッジ点Aの1ライン上の隣接画素に接続可能なエッジ点が存在するか否かを判定する(ステップS102)。ステップS101における接続可能なエッジ点を、便宜上、エッジ点Bと表記する。図7は、エッジ点Aの1ライン上の隣接画素を説明するための図である。例えば、エッジ点Aを基準にすると、1ライン上の隣接画素は、図7の領域89aに対応する。図7に示す例では、領域89aに、エッジ点Bが存在している。
図6の説明に戻る。輪郭線抽出部140は、エッジ点Aの1ライン上の隣接画素に接続可能なエッジ点が存在しない場合には(ステップS102,No)、ステップS110に移行する。一方、輪郭線抽出部140は、エッジ点Aの1ライン上の隣接画素に接続可能なエッジ点Bが存在する場合には(ステップS102,Yes)、エッジ点Bが複数存在するか否かを判定する(ステップS103)。
輪郭線抽出部140は、エッジ点Bが複数存在するか否かを判定する(ステップS103)。輪郭線抽出部140は、エッジ点Bが複数存在しない場合には(ステップS103,No)、ステップS105に移行する。一方、輪郭線抽出部140は、エッジ点Bが複数存在する場合には(ステップS103,Yes)、最適なエッジ点Bを選択する。ステップS103において、例えば、輪郭線抽出部140は、複数のエッジ点Bの強度および傾きと、エッジ点Aの強度および傾きとを比較して、エッジ点Aの強度および傾きに最も類似するエッジ点Bを、最適なエッジ点として選択する。例えば、輪郭線抽出部140は、エッジ点Bの傾きは、エッジ点Aとエッジ点Bとを結んだ線分の傾きとし、エッジ点Aの傾きは、かかるエッジ点Aを有する輪郭線上の点と、エッジ点とを結んだ線分の傾きとする。
輪郭線抽出部140は、エッジ点Bの輪郭線番号が未登録であるか否かを判定する(ステップS105)。輪郭線抽出部140は、エッジ点Bの輪郭線番号が未登録でない場合には(ステップS105,No)、ステップS110に移行する。
一方、エッジ点Bの輪郭線番号が未登録である場合には(ステップS105,Yes)、エッジ点Aと同じライン上で、エッジ点Bに接続可能なエッジ点Cが存在するか否かを判定する(ステップS106)。例えば、図7に示す例では、エッジ点Aと同じライン上にエッジ点Cが存在する。また、エッジ点Cの1ライン上の隣接画像は、領域89bとなり、領域89bには、エッジ点Bが存在する。この場合には、エッジ点Aと同じライン上で、エッジ点Bに接続可能なエッジ点Cが存在することになる。
図6の説明に戻る。輪郭線抽出部140は、エッジ点Aと同じライン上でエッジ点Bに接続可能なエッジ点Cが存在する場合には(ステップS106,Yes)、ステップS107に移行する。一方、輪郭線抽出部140は、エッジ点Aと同じライン上でエッジ点Bに接続可能なエッジ点Cが存在しない場合には(ステップS106,No)、ステップS109に移行する。
ステップS107について説明する。輪郭線抽出部140は、エッジ点Bの接続対象として、エッジ点Cの方がより最適であるか否かを判定する(ステップS107)。例えば、輪郭線抽出部140は、エッジ点Aの強度および傾きと、エッジ点Bの強度および傾きと、エッジ点Cの強度および傾きを比較する。輪郭線抽出部140は、エッジ点Bの強度および傾きに対して、エッジ点Cの強度および傾きの方が、エッジ点Aの強度および傾きよりも類似している場合に、エッジ点Cの方がより最適であると判定する。
輪郭線抽出部140は、エッジ点Bの接続対象として、エッジ点Cの方がより最適である場合には(ステップS107,Yes)、エッジ点Bおよびエッジ点Cの情報を更新し(ステップS108)、ステップS110に移行する。ステップS108において、輪郭線抽出部140は、接続元のエッジ点Cに既に輪郭線番号が登録されている場合には、エッジ点Cに登録されている輪郭線番号を、エッジ点Bに登録する。輪郭線抽出部140は、エッジ点Cに輪郭線番号が登録されていない場合には、ユニークな輪郭線番号を、エッジ点Bおよびエッジ点Cに登録する。一方、輪郭線抽出部140は、エッジ点Bの接続対象として、エッジ点Cの方がより最適でない場合には(ステップS107,No)、ステップS109に移行する。
ステップS109について説明する。輪郭線抽出部140は、エッジ点Bおよびエッジ点Aの情報を更新し(ステップS109)、ステップS110に移行する。ステップS109において、輪郭線抽出部140は、接続元のエッジ点Aに既に輪郭線番号が登録されている場合には、エッジ点Aに登録されている輪郭線番号を、エッジ点Bに登録する。輪郭線抽出部140は、エッジ点Aに輪郭線番号が登録されていない場合には、ユニークな輪郭線番号を、エッジ点Aおよびエッジ点Cに登録する。
ステップS110について説明する。輪郭線抽出部140は、処理を終了するか否かを判定する(ステップS110)。輪郭線抽出部140は、処理を終了しない場合には(ステップS110,No)、ステップS101に移行する。一方、輪郭線抽出部140は、処理を終了する場合には(ステップS110,Yes)、輪郭線を抽出する処理を終了する。
輪郭線抽出部140は、図6に示した処理を、特徴点画像上の各エッジ点について行い、最終的なエッジ点の連結数が閾値以上となる線分を、輪郭線として抽出する。輪郭線抽出部140は、抽出した輪郭線の情報を、輪郭線情報テーブル110aに登録する。例えば、輪郭線抽出部140は、フレーム識別番号と、輪郭線番号と、輪郭線の始点座標および終点座標とを対応付けて、輪郭線情報テーブル110aに登録する。なお、輪郭線抽出部140は、輪郭線に含まれる各エッジ点の識別情報と、各エッジ点の座標とを対応付けて、輪郭線情報テーブル110aに登録してもよい。また、輪郭線抽出部140は、現時刻の特徴点画像から抽出した輪郭線の情報を、輪郭線統合部150に出力する。
輪郭線統合部150は、図1を用いて説明した一次補間処理を実行する処理部である。輪郭線統合部150は、一次補間部に対応する。輪郭線統合部150は、現時刻の輪郭線と、輪郭線情報テーブル110aに登録されている輪郭線とを比較して、同一の物体から抽出された輪郭線を統合する補間を行う。輪郭線統合部150は、初期フレームから抽出された輪郭線については、時系列線分として、輪郭線情報テーブル110aに登録されるため、一次補間処理を実行しない。以下の説明では、輪郭線情報テーブル110aに登録される輪郭線の情報を、適宜、時系列線分と表記する。また、現時刻のフレームから抽出した輪郭線を適宜、現在線分と表記する。
輪郭線統合部150は、2フレーム以降のフレームから抽出された輪郭線については、現在線分と、輪郭線情報テーブル110aに登録された時系列線分とを比較して、同一の物体から抽出された輪郭線を統合し、一次補間を行う。
図8は、輪郭線統合部の一次補間処理の処理手順を示すフローチャートである。図8に示すように、輪郭線統合部150は、現時刻のフレームが2フレーム以降であるか否かを判定する(ステップS201)。輪郭線統合部150は、現時刻のフレームが2フレーム以降でない場合には(ステップS201,No)、ステップS208に移行する。
一方、輪郭線統合部150は、現時刻のフレームが2フレーム以降である場合には(ステップS201,Yes)、時系列線分の移動方向を算出する(ステップS202)。ステップS202において、輪郭線統合部150は、移動体の並進量、回転量およびカメラの設置パラメータからエピポーラ拘束と呼ばれる幾何学条件を用いて、時系列線分の移動方向を算出する。輪郭線統合部150は、移動体の並進量および回転量の情報を、移動体から取得するものとする。また、カメラの設置パラメータは、記憶部110に記憶されているものとする。
輪郭線統合部150は、時系列線分の移動方向に現在線分が存在するか否かを判定する(ステップS203)。輪郭線統合部150は、時系列線分の移動方向に現在線分が存在しない場合には(ステップS203,No)、ステップS210に移行する。
一方、輪郭線統合部150は、時系列線分の移動方向に現在線分が存在する場合には(ステップS203,Yes)、類似度判定処理を実行する(ステップS204)。ステップS204の類似度判定処理の具体的な処理については後述する。
輪郭線統合部150は、類似度が閾値以上であるか否かを判定する(ステップS205)。輪郭線統合部150は、類似度が閾値以上でない場合には(ステップS205,No)、ステップS210に移行する。
輪郭線統合部150は、類似度が閾値以上である場合には(ステップS205,Yes)、時系列線分と現在線分とを統合した統合輪郭線を生成し、現在線分を補間する(ステップS206)。輪郭線統合部150は、時系列線分のループ処理が終了したか否かを判定する(ステップS207)。輪郭線統合部150は、時系列線分のループ処理が終了していない場合には(ステップS207,No)、ステップS202に移行する。
一方、輪郭線統合部150は、時系列線分ループ処理が終了した場合には(ステップS207,Yes)、統合されていない現在線分が存在するか否かを判定する(ステップS208)。輪郭線統合部150は、統合されていない現在線分が存在しない場合には(ステップS208,No)、処理を終了する。一方、輪郭線統合部150は、統合されていない現在線分が存在する場合には(ステップS208,Yes)、時系列線分に現在線分を追加し(ステップS209)、処理を終了する。ステップS209において、例えば、輪郭線統合部150は、現在線分の情報を、輪郭線情報テーブル110aに登録する。
ステップS210の説明に移行する。輪郭線統合部150は、時系列線分に対するロスト回数を更新する(ステップS210)。ステップS210において、輪郭線統合部150は、時系列線分に対するロスト回数に1を加算する。輪郭線統合部150は、時系列線分のロスト回数が閾値以上であるか否かを判定する(ステップS211)。
輪郭線統合部150は、時系列線分のロスト回数が閾値以上である場合には(ステップS211,Yes)、時系列線分を輪郭線情報テーブル110aから除去し(ステップS212)、ステップS207に移行する。一方、時系列線分のロスト回数が閾値未満である場合には(ステップS211,No)、ステップS207に移行する。
次に、図8のステップS204に示した類似度判定処理の処理手順について説明する。図9は、類似度判定処理の処理手順を示すフローチャートである。図9に示すように、輪郭線統合部150は、時系列線分と現在線分との重複位置を算出する(ステップS301)。輪郭線統合部150は、時系列線分と現在線分とのスケール調整を行う(ステップS302)。ステップS302において、輪郭線統合部150は、時系線分の端点と現在線分の端点とを比較して、短い方の線分を、長い方の線分に合わせるスケール調整を行う。
輪郭線統合部150は、スケール調整を行った時系列線分と現在線分との重心位置を算出し、時系列線分の重心位置と現在線分の重心位置とを合わせる(ステップS303)。輪郭線統合部150は、y座標を選択し、横方向のずれ量を算出する(ステップS304)。輪郭線統合部150は、y座標の処理が終了したか否かを判定する(ステップS305)。
輪郭線統合部150は、y座標の処理が終了していない場合には(ステップS305,No)、ステップS304に移行する。一方、輪郭線統合部150は、y座標の処理が終了した場合には(ステップS305,Yes)、各y座標のずれ量を基にして、類似度を算出する(ステップS306)。
輪郭線統合部150が、類似度を算出する処理の一例について説明する。図10は、輪郭線統合部が類似度を算出する処理を補足説明するための図である。図10において、線分88aは時系列線分に対応し、線分88bは現在線分に対応する。輪郭線統合部150は、時系列線分88aと現在線分88bとを、各端点が合うようにスケール調整し、重心位置88cで重ね合わる。輪郭線統合部150は、網掛け部分89に示す、ずれ量を算出する。例えば、輪郭線統合部150は、ずれ量が小さいほど、類似度が大きくなるような算出式を用いて、時系列線分と現在線分との類似度を算出する。
輪郭線統合部150が実行する一次補間処理の一例について説明する。図11は、輪郭線統合部が実行する一次補間処理を示す図である。図11に示す線分90aは、時系列線分を示し、線分90bは現在線分を示す。時系列線分90aと現在線分90bとの類似度を閾値以上とする。輪郭線統合部150は、両線分90a,90bの端点の移動方向線と、両線分90a,90bの延長線とが交わる点の内、最上端と最下端との点を、補間後の端点として、各線分90a,90bを補間する。例えば、輪郭線統合部150は、時系列線分90aの端点を、点92aまで延長することで補間し、補間後の時系列線分91aを生成する。輪郭線統合部150は、現在線分90bの端点を、点91bまで延長することで補間し、補間後の現在線分92bを生成する。
図4の説明に戻る。対称性判定部160は、図3を用いて説明した二次補間処理を実行する処理部である。対称性判定部160は、二次補間部に対応する。対称性判定部160は、輪郭線情報テーブル110aに登録された輪郭線の情報を参照し、同一時刻のフレームから抽出された各輪郭線について、対称性の高い輪郭線の組を判定する。対称性判定部160は、対称性の高い輪郭線の組について、それぞれの端点位置を、長い方の端点位置に合わせることで補間を行う。
図12は、対称性判定部の二次補間処理の処理手順を示すフローチャートである。図12に示すように、対称性判定部160は、ある輪郭線Aについて、他の輪郭線Bとの対称度合いを算出する(ステップS401)。ステップS401の対称度合いを算出する具体的な処理については後述する。
対称性判定部160は、輪郭線Aに対する対称度合いが閾値以上となる輪郭線Bが存在するか否かを判定する(ステップS402)。対称性判定部160は、対称度合いが閾値以上となる輪郭線Bが存在しない場合には(ステップS402,No)、ステップS404に移行する。一方、対称性判定部160は、対称度合いが閾値以上となる輪郭線Bが存在する場合には(ステップS402,Yes)、輪郭線B側に輪郭線Aの輪郭線番号を記録する(ステップS403)。ステップS403において、例えば、対称性判定部160は、輪郭線Bに対応付けられる拡張領域に、輪郭線Aの輪郭線番号を記録する。
対称性判定部160は、輪郭線のループ処理が終了したか否かを判定する(ステップS404)。対称性判定部160は、輪郭線のループ処理が終了してない場合には(ステップS404,No)、ステップS401に移行する。
一方、対称性判定部160は、輪郭線のループ処理が終了した場合には(ステップS404,Yes)、各輪郭線の拡張領域に記録された輪郭線番号を参照する(ステップS405)。対称性判定部160は、輪郭線番号が存在するか否かを判定する(ステップS406)。対称性判定部160は、輪郭線番号が存在しない場合には(ステップS406,No)、ステップS411に移行する。
対称性判定部160は、輪郭線番号が存在する場合には(ステップS406,Yes)、複数の輪郭線番号があるか否かを判定する(ステップS407)。対称性判定部160は、複数の輪郭線番号がない場合には(ステップS407,No)、ステップS411に移行する。
一方、対称性判定部160は、複数の輪郭線番号がある場合には(ステップS407,Yes)、輪郭線Aと輪郭線Bとがお互いに接続可能であるか否かを判定する(ステップS408)。ステップS408について、例えば、対称性判定部160は、輪郭線Aの傾きと、輪郭線Bの傾きとの差が、所定の傾き未満である場合に、輪郭線Aと輪郭線Bとが接続可能であると判定する。また、対称性判定部160は、輪郭線Aに含まれる各エッジ点のエッジ強度の平均値と、輪郭線Bに含まれる各エッジ点のエッジ強度の平均値との差が、所定の閾値未満である場合に、輪郭線Aと輪郭線Bとが接続可能であると判定してもよい。
対称性判定部160は、お互いに接続可能でない場合には(ステップS408,No)、ステップS411に移行する。一方、対称性判定部160は、お互いに接続可能である場合には(ステップS408,Yes)、輪郭線Aおよび輪郭線Bを統合する(ステップS409)。対称性判定部160は、対称となった輪郭線全ての端点位置を揃えることで、補間を行う(ステップS410)。
対称性判定部160は、輪郭線のループ処理が終了したか否かを判定する(ステップS411)。対称性判定部160は、輪郭線のループ処理が終了していない場合には(ステップS411,No)、ステップS405に移行する。一方、対称性判定部160は、輪郭線のループ処理が終了している場合には(ステップS411,Yes)、処理を終了する。
次に、図12のステップS401に示した対称性判定部160が、対称度合いを算出する処理の処理手順について説明する。図13は、対称度合いを算出する処理の処理手順を示すフローチャートである。図13に示すように、対称性判定部160は、輪郭線Aおよび輪郭線Bの2輪郭線について、重複位置および重複率を算出する(ステップS501)。
図14は、対称度合いを算出する処理を補足説明するための図(1)である。図14に示す例では、輪郭線200aを、輪郭線Aとし、輪郭線200bを、輪郭線Bとする。この場合には、重複位置は、201に対応する位置となる。また、重複率は、輪郭線200bを基準にすると、輪郭線200bの長さのうち、重複位置201の占める割合を示す。
図13の説明に戻る。対称性判定部160は、2輪郭線に重複位置が存在するか否かを判定する(ステップS502)。対称性判定部160は、2輪郭線に重複位置がない場合には(ステップS502,No)、対称度合いを算出する処理を終了する。
一方、対称性判定部160は、2輪郭線に重複位置が存在する場合には(ステップS502,Yes)、2輪郭線の類似度を算出する(ステップS503)。ステップS503において、対称性判定部160は、例えば、図9に示した処理と同様にして、2輪郭線の類似度を算出する。
対称性判定部160は、重複箇所のy座標を選択し(ステップS504)、横方向の中点を算出する(ステップS505)。対称性判定部160は、中点を基準として、横方向の対称位置について、明るさ差分積分値を算出する(ステップS506)。
図15は、対称度合いを算出する処理を補足説明するための図(2)である。図15に示す例では、輪郭線200aを、輪郭線Aとし、輪郭線200bを、輪郭線Bとする。重複箇所を201とする。また、選択されたy座標に対応するラインを205とし、中点を210とする。対称性判定部160は、対称関係にある中点210から輪郭線200aまでの各画素の明るさと、中点210から輪郭線200bまでの各画素の明るさとの差分をそれぞれ算出し、算出した差分を合計することで、明るさ差分積分値を算出する。対称性判定部160は、ライン毎に明るさ差分積分値を算出し、各明るさ差分積分値を合計したものを、最終的な明るさ差分積分値とする。
図13の説明に戻る。対称性判定部160は、横方向の処理が終了したか否かを判定する(ステップS507)。ステップS507について、例えば、対称性判定部160は、重複箇所に含まれる全てのy座標を選択した場合には、横方向の処理が終了したと判定する。対称性判定部160は、横方向の処理が終了していない場合には(ステップS507,No)、ステップS506に移行する。
一方、対称性判定部160は、横方向の処理が終了した場合には(ステップS507,Yes)、y座標の明るさの平均値を算出する(ステップS508)。
図16は、対称度合いを算出する処理を補足説明するための図(3)である。図16に示す例では、輪郭線200aを、輪郭線Aとし、輪郭線200bを、輪郭線Bとする。重複箇所を201とする。また、重複箇所201には、y座標として、y1〜y5が存在し、y1〜y5に対応するラインをそれぞれライン211〜215とする。対称性判定部160は、ライン211に含まれる画素の明るさの第1平均値を算出する。対称性判定部160は、ライン212〜215についても同様に、明るさの第1平均値を算出する。また、対称性判定部160は、各ライン211〜215の第1平均値を加算し、ライン数で除算することで、ライン全体の第2平均値を算出する。この第2平均値を、y座標の明るさの平均値とする。
図13の説明に戻る。対称性判定部160は、重複箇所の全y座標の処理が終了したか否かを判定する(ステップS509)。対称性判定部160は、重複箇所の全y座標の処理が終了していない場合には(ステップS509,No)、ステップS504に移行する。
一方、対称性判定部160は、重複箇所の全y座標の処理が終了した場合には(ステップS509,Yes)、対称度合いを算出する(ステップS510)。ステップS510について、例えば、対称性判定部160は、式(1)に基づいて、対称度合いを算出する。例えば、式(1)について、明るさの連続性乖離値は、図16で説明した、各ラインの第1平均値と第2平均値との差分値を合計した値に対応する。
対称度合い=重複率−2輪郭線の類似度−明るさ差分積分値−明るさの連続性乖離量・・・(1)
対称性判定部160が実行する二次補間処理の一例について説明する。図17は、対称性判定部が実行する二次補間処理を示す図である。図17に示す例では、輪郭線220aと輪郭線230とが対称性を持ち、輪郭線220bと輪郭線230とが対称性を持つものとする。対称性判定部160は、輪郭線220aと輪郭線220bとの間の途切れ箇所を、輪郭線230によって補うことで、輪郭線240を生成する。対称性判定部160は、輪郭線情報テーブル110aに登録された輪郭線220aおよび輪郭線220bの情報を削除し、代わりに、輪郭線240の情報を、輪郭線情報テーブル110aに登録する。
なお、対称性判定部160が輪郭線の二次補間処理を行った後に、二次補間処理により補間された輪郭線を基にして、輪郭線統合部150が、再度、一次補間処理を実行してもよい。
図4の説明に戻る。立体物判定部170は、輪郭線情報テーブル110aを基にして、立体物が存在するか否かを判定する処理部である。立体物判定部170は、判定結果の情報を、結果出力部180に出力する。例えば、立体物判定部170は、現在線分の端点位置と、時系列線分の端点位置とを比較して、フロー量を算出する。立体物判定部170は、フロー量が閾値以上である場合には、現在線分の抽出元に立体物が存在すると判定する。一方、立体物判定部170は、フロー量が閾値未満である場合には、立体物が存在しないと判定する。
結果出力部180は、立体物判定部170からの判定結果に基づき、輪郭線のうち立体物と判定された輪郭線の情報を、表示装置等に出力する処理部である。
次に、本実施例に係る物体検出装置の処理手順について説明する。図18は、本実施例に係る物体検出装置の処理手順を示すフローチャートである。図18に示すように、物体検出装置100の映像入力部120は、映像入力を受け付ける(ステップS601)。
物体検出装置100の特徴点抽出部130は、画像フレームからエッジ抽出を行い、特徴点画像を生成する(ステップS602)。物体検出装置100の輪郭線抽出部140は、特徴点画像を基にして、輪郭線抽出を実行する(ステップS603)。ステップS603における輪郭線抽出の処理手順は、上述した図6の処理手順に対応する。
物体検出装置100の輪郭線統合部150は、一次補間処理を実行する(ステップS604)。ステップS604における一次補間処理の処理手順は、上述した図11の処理手順に対応する。
物体検出装置100の対称性判定部160は、対称性を判定し、二次補間処理を実行する(ステップS605)。ステップS605における二次補間処理の処理手順は、上述した図12の処理手順に対応する。
物体検出装置100の立体物判定部170は、輪郭線情報テーブル110aを基にして、立体物判定を実行する(ステップS606)。物体検出装置100の結果出力部180は、判定結果を出力する(ステップS607)。
次に、本実施例に係る物体検出装置100の効果について説明する。物体検出装置100は、複数時刻で撮影された同一の被写体の輪郭線を統合する一次補間処理および対称性の輪郭線の組に基づいて輪郭線の途切れを補間する二次補間処理を実行した後に、補間後の輪郭線を基にして、立体物判定を実行する。このため、物体検出装置100によれば、輪郭線の途切れの発生や、端点位置で特徴点が検出されない場合であっても、立体物を安定して検出することができる。
物体検出装置100は、輪郭線の中点を算出し、中点から一方の輪郭線に至る画像の明るさと、中点から他方の輪郭線に至る画像の明るさとの差分値に基づいて、輪郭線の組が対称性を有するか否かを判定する。このため、輪郭線の組が対称性を有するか否かを精度よく判定することができる。
物体検出装置100は、各輪郭線の間の画像について、画像の縦方向の明るさの連続性に基づいて、各輪郭線が対称性を有するか否かを判定する。このため、輪郭線の組が対称性を有するか否かを精度よく判定することができる。
次に、上記実施例に示した物体検出装置100と同様の機能を実現する物体検出プログラムを実行するコンピュータの一例について説明する。図19は、物体検出プログラムを実行するコンピュータの一例を示す図である。
図19に示すように、コンピュータ300は、各種演算処理を実行するCPU301と、ユーザからのデータの入力を受け付ける入力装置302と、ディスプレイ303とを有する。また、コンピュータ300は、記憶媒体からプログラム等を読取る読み取り装置304と、ネットワークを介して他のコンピュータとの間でデータの授受を行うインタフェース装置305と、カメラ306とを有する。また、コンピュータ300は、各種情報を一時記憶するRAM307と、ハードディスク装置308とを有する。そして、各装置301〜308は、バス309に接続される。
ハードディスク装置308は、抽出プログラム308a、一次補間プログラム308b、二次補間プログラム308c、判定プログラム308dを有する。CPU301は、ハードディスク装置308の抽出プログラム308a、一次補間プログラム308b、二次補間プログラム308c、判定プログラム308dを読み出してRAM307に展開する。
抽出プログラム308aは、抽出プロセス307aとして機能する。一次補間プログラム308bは、一次補間プロセス307bとして機能する。二次補間プログラム308cは、二次補間プロセス307cとして機能する。判定プログラム308dは、判定プロセス307dとして機能する。
例えば、抽出プロセス307aは、特徴点抽出部130に対応する。一次補間プロセス307bは、輪郭線統合部150に対応する。二次補間プロセス307cは、対称性判定部160に対応する。判定プロセス307dは、立体物判定部170に対応する。
なお、各プログラム308a〜307dについては、必ずしも最初からハードディスク装置308に記憶させておかなくても良い。例えば、コンピュータ300に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ300が各プログラム308a〜307dを読み出して実行するようにしてもよい。
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)コンピュータが実行する物体検出方法であって、
移動体に設置されたカメラによって撮影された撮影時刻の異なる複数の画像からエッジ特徴をそれぞれ抽出し、
抽出したエッジ特徴を基にして、第1撮影時刻に撮影された第1エッジ特徴に対応する第2撮影時刻に撮影された第2エッジ特徴を判定し、判定した前記第2エッジ特徴を基にして、前記第1エッジ特徴を一次補間し、
前記一次補間を行った複数の第1エッジ特徴を比較して、対称性を持つ第1エッジ特徴の組を判定し、
判定した第1エッジ特徴の組について、第1エッジ特徴の端点位置が同じ端点位置でない場合に、一方の第1エッジ特徴の端点位置に基づいて、他方の端点位置を二次補間し、
前記一次補間または前記二次補間を行った第1エッジ特徴の組を基にして、第1エッジ特徴が立体物のエッジ特徴であるか否かを判定する
処理を実行することを特徴とする物体検出方法。
(付記2)前記対称性を持つ第1エッジ特徴の組を判定する処理は、各第1エッジ特徴の中点を算出し、前記中点から一方の第1エッジ特徴に至る画像の明るさと、前記中点から他方の第1エッジ特徴に至る画像の明るさとの差分値に基づいて、前記各第1エッジ特徴が対称性を有するか否かを判定することを特徴とする付記1に記載の物体検出方法。
(付記3)前記対称性を持つ第1エッジ特徴の組を判定する処理は、各第1エッジ特徴の間の画像について、該画像の縦方向の明るさの連続性に基づいて、前記各第1エッジ特徴が対称性を有するか否かを判定することを特徴とする付記1または2に記載の物体検出方法。
(付記4)コンピュータに、
移動体に設置されたカメラによって撮影された撮影時刻の異なる複数の画像からエッジ特徴をそれぞれ抽出し、
抽出したエッジ特徴を基にして、第1撮影時刻に撮影された第1エッジ特徴に対応する第2撮影時刻に撮影された第2エッジ特徴を判定し、判定した前記第2エッジ特徴を基にして、前記第1エッジ特徴を一次補間し、
前記一次補間を行った複数の第1エッジ特徴を比較して、対称性を持つ第1エッジ特徴の組を判定し、
判定した第1エッジ特徴の組について、第1エッジ特徴の端点位置が同じ端点位置でない場合に、一方の第1エッジ特徴の端点位置に基づいて、他方の端点位置を二次補間し、
前記一次補間または前記二次補間を行った第1エッジ特徴の組を基にして、第1エッジ特徴が立体物のエッジ特徴であるか否かを判定する
処理を実行させることを特徴とする物体検出プログラム。
(付記5)前記対称性を持つ第1エッジ特徴の組を判定する処理は、各第1エッジ特徴の中点を算出し、前記中点から一方の第1エッジ特徴に至る画像の明るさと、前記中点から他方の第1エッジ特徴に至る画像の明るさとの差分値に基づいて、前記各第1エッジ特徴が対称性を有するか否かを判定することを特徴とする付記4に記載の物体検出プログラム。
(付記6)前記対称性を持つ第1エッジ特徴の組を判定する処理は、各第1エッジ特徴の間の画像について、該画像の縦方向の明るさの連続性に基づいて、前記各第1エッジ特徴が対称性を有するか否かを判定することを特徴とする付記4または5に記載の物体検出プログラム。
(付記7)移動体に設置されたカメラによって撮影された撮影時刻の異なる複数の画像からエッジ特徴をそれぞれ抽出する抽出部と、
抽出したエッジ特徴を基にして、第1撮影時刻に撮影された第1エッジ特徴に対応する第2撮影時刻に撮影された第2エッジ特徴を判定し、判定した前記第2エッジ特徴を基にして、前記第1エッジ特徴を一次補間する一次補間部と、
前記一次補間された複数の第1エッジ特徴を比較して、対称性を持つ第1エッジ特徴の組を判定し、判定した第1エッジ特徴の組について、第1エッジ特徴の端点位置が同じ端点位置でない場合に、一方の第1エッジ特徴の端点位置に基づいて、他方の端点位置を二次補間する二次補間部と、
前記一次補間または前記二次補間された第1エッジ特徴の組を基にして、第1エッジ特徴が立体物のエッジ特徴であるか否かを判定する判定部と
を有することを特徴とする物体検出装置。
(付記8)前記第2補間部は、各第1エッジ特徴の中点を算出し、前記中点から一方の第1エッジ特徴に至る画像の明るさと、前記中点から他方の第1エッジ特徴に至る画像の明るさとの差分値に基づいて、前記各第1エッジ特徴が対称性を有するか否かを判定することを特徴とする付記7に記載の物体検出装置。
(付記9)前記第2補間部は、各第1エッジ特徴の間の画像について、該画像の縦方向の明るさの連続性に基づいて、前記各第1エッジ特徴が対称性を有するか否かを判定することを特徴とする付記7または8に記載の物体検出装置。