移動中の車両のカメラによって、過去の時刻で撮影された画像から特定した物体の輪郭線が、現在時刻で撮影された画像のどの位置にどの長さで写るのかを、車両の移動量を用いることで、予測することができる。このとき、以下の特性がある。
特性:物体が路面の模様であると仮定した場合の現在時刻の物体の輪郭線を示す模様予測輪郭線と、物体が立体物であると仮定した場合の現在時刻の物体の輪郭線を示す立体物予測輪郭線とを比較すると、模様予測輪郭線が立体物予測輪郭線よりも常に長くなる。
上記の特性に着目すると、現在時刻の実際の輪郭線の長さと、模様予測輪郭線の長さと、立体物予測輪郭線の長さとの大小関係は、条件に応じて下記に示すようになる。
(1)物体が「路面」の場合、輪郭線の欠けの有無によって、現在時刻の実際の輪郭線の長さと、模様予測輪郭線の長さと、立体物予測輪郭線の長さとの大小関係は、下記の通りとなる。
(1−1)過去の時刻で特定した輪郭線に欠けがない場合:立体物予測輪郭線の長さ<模様予測輪郭線の長さ=現在時刻の実際の輪郭線の長さ
(1−2)過去の時刻で特定した輪郭線に欠けがある場合:立体物予測輪郭線の長さ<模様予測輪郭線の長さ<現在時刻の実際の輪郭線の長さ
図1は、物体が路面の場合において輪郭線に欠けがある場合とない場合との特性を説明するための図である。図1の(1−1)について説明する。輪郭線70は、過去の時刻で特定した欠けの無い輪郭線である。輪郭線71は、現在時刻の実際の輪郭線である。輪郭線72aは、輪郭線70に基づき予測された立体物予測輪郭線である。輪郭線72bは、輪郭線70に基づき予測された模様予測輪郭線である。図1に示すように、輪郭線71の長さは、輪郭線72aの長さよりも、輪郭線72bの長さの方に近くなる。
図1の(1−2)について説明する。輪郭線75は、過去の時刻で特定した欠けのある輪郭線である。輪郭線76は、現在時刻の実際の輪郭線である。輪郭線77aは、輪郭線75に基づき予測された立体物予測輪郭線である。輪郭線77bは、輪郭線75に基づき予測された模様予測輪郭線である。図1に示すように、輪郭線76の長さは、輪郭線77aの長さよりも、輪郭線77bの長さの方に近くなる。
立体物予測輪郭線の長さは、模様予測輪郭線の長さよりも短くなる。過去の時刻で、輪郭線に欠けが無い場合には、模様予測輪郭線の長さと、現在時刻の実際の輪郭線の長さとが等しくなる。過去の時刻で、輪郭線に欠けがある場合には、模様予測輪郭線の長さが、現在時刻の実際の輪郭線の長さよりも短くなるが、立体物予測輪郭線の長さと模様予測輪郭線の長さとの大小関係は変化しない。このため、欠けの有無に関係無く、物体が路面の場合には、立体物予測輪郭線の長さよりも、模様予測輪郭線の長さの方が、現在時刻の実際の輪郭線の長さに近くなる。
(2)物体が「立体物」の場合、輪郭線の欠けの有無によって、現在時刻の実際の輪郭線の長さと、模様予測輪郭線の長さと、立体物予測輪郭線の長さとの大小関係は、下記の通りとなる。
(2−1)過去の時刻で特定した輪郭線に欠けが無い場合:立体物予測輪郭線の長さ=現在時刻の実際の輪郭線の長さ<模様予測輪郭線の長さ
(2−2)過去の時刻で特定した輪郭線に欠けがある場合:立体物予測輪郭線の長さ<現在時刻の実際の輪郭線の長さ<模様予測輪郭線の長さ
図2は、物体が立体物の場合において輪郭線に欠けがある場合と無い場合との特性を説明するための図である。図2の(2−1)について説明する。輪郭線80は、過去の時刻で特定した欠けの無い輪郭線である。輪郭線81は、現在時刻の実際の輪郭線である。輪郭線82aは、輪郭線80に基づき予測された立体物予測輪郭線である。輪郭線82bは、輪郭線80に基づき予測された模様予測輪郭線である。図2に示すように、輪郭線81の長さは、輪郭線82bの長さよりも、輪郭線82aの長さの方に近くなる。
図2の(2−2)について説明する。輪郭線85は、過去の時刻で特定した欠けのある輪郭線である。輪郭線86は、現在時刻の実際の輪郭線である。輪郭線87aは、輪郭線85に基づき予測された立体物予測輪郭線である。輪郭線87bは、輪郭線85に基づき予測された模様予測輪郭線である。図2に示すように、輪郭線86の長さは、輪郭線87bの長さよりも、輪郭線87aの長さの方に近くなる。
物体が立体物であれば、模様物予測輪郭線の長さよりも、立体物予測輪郭線の長さの方が、現在時刻の実際の輪郭線の長さに近くなる。ただし、過去の時刻の輪郭線の欠けが大きく、現在時刻の輪郭線の欠けが無いと状況は現実的にほぼ起こらないため、欠けが小さいものとして、上記(2−2)を定義している。
本実施例1に係る物体検出装置は、上記(1−1)、(1−2)、(2−1)、(2−2)で説明した内容に基づき、物体が立体物であるか路面の模様であるかを下記のように判定する。物体検出装置は、立体物予測輪郭線の長さと、模様予測輪郭線の長さと、現在時刻の実際の輪郭線の長さとを比較し、実際の輪郭線の長さが、立体物予測輪郭線の長さよりも、模様予測輪郭線の長さに近い場合には、物体が路面であると判定する。一方、物体検出装置は、実際の輪郭線の長さが、模様予測輪郭線の長さよりも、立体物予測輪郭線の長さに近い場合には、物体が立体物であると判定する。
次に、本実施例1に係る物体検出装置の構成の一例について説明する。図3は、本実施例1に係る物体検出装置の構成を示す機能ブロック図である。図3に示すように、この物体検出装置100は、カメラ110と、移動量検出部120と、輪郭線DB(database)130と、映像入力部140と、特定部150と、輪郭線照合部160と、算出部170と、判定部180と、出力部190とを有する。
カメラ110は、車両の移動体に設置され、撮像方向の映像を撮影するカメラである。カメラ110は、撮影した映像データを映像入力部140に出力する。例えば、映像データは、時系列順に、複数の画像フレームが連続する情報である。
移動量検出部120は、車両の移動量を検出し、検出した移動量の情報を、輪郭線照合部160、算出部170に出力する。車両の移動量は、車両の移動方向、移動速度が含まれる。移動量検出部120は、車両に設置された各種のセンサを用いて、移動量を検出する。
輪郭線DB130は、各画像フレームから検出される輪郭線の情報を記憶する記憶部である。図4は、本実施例1に係る輪郭線DBのデータ構造の一例を示す図である。図4に示すように、この輪郭線DB130は、輪郭線番号と、始点座標と、終点座標と、フレーム識別番号とを対応付ける。
輪郭線番号は、輪郭線を一意に識別する番号である。始点座標は、輪郭線の始点座標である。終点座標は、輪郭線の終点座標である。フレーム識別番号は、画像フレームを一意に識別する番号である。図4の1行目のレコードに示す例では、輪郭線識別番号「101」の輪郭線の始点座標が「x1,y1」、終点座標が「x2,y2」であり、この輪郭線が、フレーム識別番号「F01」の画像フレームに存在することを示している。
図3の説明に戻る。映像入力部140は、カメラ110から映像データの入力を受け付ける処理部である。映像入力部140は、受け付けた映像データを、特定部150に出力する。映像入力部140は、映像データがアナログの映像データである場合には、デジタルの映像データに変換し、デジタルの映像データを、特定部150に出力する。また、映像入力部140は、映像データがカラーの映像データである場合には、モノクロの映像データに変換し、モノクロの映像データを、特定部150に出力する。
特定部150は、映像データを基にして、第一のタイミングにおいて画像フレームに写る物体の第一輪郭線を特定し、第二のタイミングにおいて画像フレームに写る第二輪郭線を特定する処理部である。例えば、第一のタイミングは、現在時刻から所定時間前の過去の時刻に対応する。第二のタイミングは、現在時刻に対応する。
特定部150は、画像フレームから特徴点を抽出する処理、輪郭線を特定する処理を順に実行する。
特定部150が、画像フレームから特徴点を抽出する処理について説明する。特定部150は、映像入力部140から取得した映像データの各画像フレームに対してエッジ検出を行い、特徴点画像を生成する。特定部150は、Sobel等の一般的な微分オペレータを作用させて、微分処理によって得られるエッジ強度と予め定めたエッジ強度閾値とを比較し、エッジ強度閾値以上となるエッジを抽出する。特定部150は、抽出したエッジについて、隣接する横方向の画素2つのエッジ強度を比較して、ピーク値となればエッジ点とする細線化処理を行う。特定部150は、抽出したエッジ点を特徴点として抽出する。
特定部150が、画像フレームに含まれる物体の輪郭線を特定する処理について説明する。特定部150は、上記処理により抽出した特徴点を繋げることで輪郭線を特定する処理部である。特定部150は、特定した輪郭線の情報を輪郭線DB130に登録する。例えば、特定部150は、輪郭線に、輪郭線番号を付与し、輪郭線番号と、始点座標と、終点座標と、フレーム識別番号とを対応付けて、輪郭線照合部160に出力する。
図5は、本実施例1に係る特定部が輪郭線を特定する処理を示すフローチャートである。図5に示すように、特定部150は、未処理の特徴点Aを選択する(ステップS10)。特定部150は、特徴点Aの1ライン上の隣接画素に接続可能な特徴点Bが存在するか否かを判定する(ステップS11)。
特定部150は、特徴点Aの1ライン上の隣接画素に接続可能な特徴点Bが存在しない場合には(ステップS11,No)、ステップS19に移行する。一方、特定部150は、特徴点Aの1ライン上の隣接画素に接続可能な特徴点Bが存在する場合には(ステップS11,Yes)、特徴点Bが複数であるか否かを判定する(ステップS12)。
特定部150は、特徴点Bが複数でない場合には(ステップS12,No)、ステップS14に移行する。一方、特定部150は、特徴点Bが複数である場合には(ステップS12,Yes)、最適点を複数の特徴点Bから選択する(ステップS13)。ステップS13において、特定部150は、特徴点Bのうち、エッジの強度および傾きが、特徴点Aのエッジの強度および傾きに最も類似するものを、最適点として選択する。
特定部150は、選択した特徴点Bの輪郭線番号が未登録でない場合には(ステップS14,No)、ステップS19に移行する。一方、特定部150は、選択した特徴点Bの輪郭線番号が未登録である場合には(ステップS14,Yes)、特徴点Aと同じライン上で特徴点Bに接続可能な特徴点Cが存在するか否かを判定する(ステップS15)。
特定部150は、特徴点Bと同じライン上で特徴点Bに接続可能な特徴点Cが存在しない場合には(ステップS15,No)、特徴点A,Bに、同一の輪郭線番号を割り当て(ステップS16)、ステップS19に移行する。
一方、特定部150は、特徴点Bと同じライン上で特徴点Bに接続可能な特徴点Cが存在する場合には(ステップS15,Yes)、特徴点Cが特徴点Aよりも、特徴点Bに接続する特徴点として適切であるか否かを判定する(ステップS17)。特定部150は、特徴点Cが特徴点Aよりも適切でない場合には(ステップS17,No)、ステップS16に移行する。例えば、特定部150は、特徴点Bの強度および傾きが、特徴点Cの強度および傾きよりも、特徴点Aの強度および傾きに類似している場合に、特徴点Cが特徴点Aよりも適切でないと判定する。
特定部150は、特徴点Cが特徴点Aよりも適切である場合には(ステップS17,Yes)、特徴点B,Cに同一の輪郭線番号を割り当てる(ステップS18)。
特定部150は、全特徴点について処理が終了していない場合には(ステップS19,No)、ステップS10に移行する。特定部150は、全特徴点について処理が終了した場合には(ステップS19,Yes)、処理を終了する。
図3の説明に戻る。輪郭線照合部160は、特定部150が特定した現在時刻の輪郭線と、輪郭線DB130に格納された過去の輪郭線を車両の移動量に応じて移動させた輪郭線とを比較し、同一の輪郭線が存在するか否かを照合する処理部である。輪郭線照合部160は、同一の輪郭線が存在する場合には、現在時刻の輪郭線の情報を、輪郭線DB130に登録し、照合した過去の輪郭線の情報を、輪郭線DB130から削除する。一方、輪郭線照合部160は、同一の輪郭線が存在せず、輪郭線がロストした場合には、ロストした輪郭線の情報を輪郭線DB130から削除する。
輪郭線照合部160は、照合に成功した現在時刻の輪郭線の情報と、過去の時刻の輪郭線の情報とを、算出部170に出力する。
図6は、本実施例1に係る輪郭線照合部が輪郭線を照合する処理を示すフローチャートである。図6に示すように、輪郭線照合部160は、輪郭線に対応する画像フレームが2フレーム以降であるか否かを判定する(ステップS20)。輪郭線照合部160は、2フレーム以降でない場合には(ステップS20,No)、ステップS30に移行する。一方、輪郭線照合部160は、2フレーム以降である場合には(ステップS20,Yes)、ステップS21に移行する。
輪郭線照合部160は、時系列線分の移動方向を算出する(ステップS21)。例えば、輪郭線照合部160は、車両の移動量(並進量、回転量)およびカメラ110の設置パラメータから、エピポーラ拘束と呼ばれる幾何学条件を用いて、時系列線分の移動量を算出する。
輪郭線照合部160は、移動方向に線分が存在するか否かを判定する(ステップS22)。例えば、輪郭線照合部160は、過去の時刻の輪郭線を基準とした時系列線分の移動方向に、現在時刻の輪郭線が存在する場合には、移動方向に線分が存在すると判定する。
輪郭線照合部160は、移動方向に線分が存在する場合には(ステップS22,Yes)、ステップS23に移行する。輪郭線照合部160は、移動方向に線分が存在しない場合には(ステップS22,No)、ステップS26に移行する。
輪郭線照合部160は、過去の時刻の輪郭線と、現在時刻の輪郭線との類似度を算出する(ステップS23)。輪郭線照合部160は、類似度が閾値以上でない場合には(ステップS24,No)、ステップS26に移行する。一方、輪郭線照合部160は、類似度が閾値以上である場合には(ステップS24,Yes)、過去の時刻の輪郭線と現在時刻の輪郭線とが同一の線分であるとして、輪郭線情報を更新する(ステップS25)。ステップS25において、輪郭線照合部160は、現在の輪郭線の輪郭線識別番号、始点座標、終点座標、フレーム識別番号を、輪郭線DB130に登録する。輪郭線照合部160は、過去の輪郭線の輪郭線識別番号、始点座標、終点座標、フレーム識別番号を、輪郭線DB130から除去する。
ステップS26の説明に移行する。輪郭線照合部160は、ロスト回数を算出する(ステップS26)。例えば、ステップS26において、輪郭線照合部160は、過去の輪郭線について、移動方向に現在時刻の輪郭線が存在しない場合や、類似度が閾値以上でない場合には、過去の輪郭線のロスト回数に所定値を加算する。
輪郭線照合部160は、ロスト回数が閾値以上でない場合には(ステップS27,No)、ステップS29に移行する。一方、輪郭線照合部160は、ロスト回数が閾値以上である場合には(ステップS27,Yes)、輪郭線DB130から、該当輪郭線を除去し(ステップS28)、ステップS29に移行する。
輪郭線照合部160は、ループ処理が終了していない場合には(ステップS29,No)、ステップS21に移行する。一方、輪郭線照合部160は、ループ処理が終了した場合には(ステップS29,Yes)、未対応の現在時刻の輪郭線の情報を輪郭線DB130に新規登録する(ステップS30)。
続いて、図6のステップS23,S24で説明した、輪郭線照合部160が、類似度を算出し、類似度が閾値以上であるか否かを判定する類似度判定処理の処理手順について説明する。図7は、本実施例1に係る輪郭線照合部が実行する類似度判定処理を示すフローチャートである。図7に示すように、輪郭線照合部160は、移動方向に移動させた過去の時刻の輪郭線と、現在時刻の輪郭線との重複位置を算出する(ステップS40)。
輪郭線照合部160は、移動させた過去の時刻の輪郭線のスケール調整を行い(ステップS41)、過去の時刻の輪郭線および現在時刻の輪郭線の重心を算出する(ステップS42)。輪郭線照合部160は、各輪郭線の横方向のずれ量を現在のy座標について算出する(ステップS43)。
輪郭線照合部160は、全てのy座標について処理が終了していない場合には(ステップS44,No)、ステップS43に移行する。輪郭線照合部160は、全てのy座標について処理が終了した場合には(ステップS44,Yes)、ずれ量の合計量が閾値以内であるか否かを判定する(ステップS45)。
輪郭線照合部160は、ずれ量の合計量が閾値以内である場合には(ステップS45,Yes)、該当する過去の時刻の輪郭線と、現在時刻の輪郭線との類似度が閾値以上であると判定する(ステップS46)。一方、ずれ量の合計値が閾値以内でない場合には(ステップS45,No)、類似度が閾値未満であると判定する(ステップS47)。
図3の説明に戻る。算出部170は、過去の時刻の輪郭線の情報と、車両の移動量に関する情報とを基にして、図1および図2等で説明した模様予測輪郭線と、立体物予測輪郭線とを算出する処理部である。移動量に関する情報は、例えば、車両の移動方向、移動速度、フレーム間時間を含む。フレーム間時間は、過去の時刻から現在時刻までの時間に対応する。算出部170は、過去の時刻の輪郭線の情報と、模様予測輪郭線の情報と、立体物予測輪郭線の情報とを、判定部180に出力する。
算出部170が、過去の時刻の輪郭線に基づいて、模様予測輪郭線を算出する処理の一例について説明する。なお、過去の時刻の輪郭線は、現在時刻の輪郭線と照合に成功した、過去の時刻の輪郭線とする。
算出部170は、物体が路面の模様であると仮定し、過去の時刻の輪郭線の下端および上端の3次元座標を算出する。例えば、算出部170は、過去の時刻の輪郭線の画像フレームと、この画像フレームの次の画像フレームに含まれる同一の輪郭線とを用いて、ステレオ画像の原理を基にして、過去の時刻の輪郭線の下端および上端の3次元座標を算出する。
算出部170は、車両の移動速度とフレーム間時間とを乗算することで、移動距離を算出し、移動距離および移動方向に合わせて、過去の時刻の輪郭線の下端および上端を移動させることで、現在時刻の輪郭線の下端および上端を算出する。算出部170は、算出した下端および上端を結んだ線分を、模様予測輪郭線として算出する。
算出部170が、過去の時刻の輪郭線に基づいて、立体物予測輪郭線を算出する処理の一例について説明する。算出部170は、路面が立体物であると仮定し、過去の時刻の輪郭線の下端および上端の3次元座標を算出する。輪郭線の下端の3次元座標を算出する処理は、上記の模様予測輪郭線を算出する処理と同様である。
算出部170は、過去の時刻の輪郭線の下端を算出した後に、下端と上端との3次元座標の奥行きが同じであるという制約を設けて、上端の3次元座標を算出する。例えば、下端および上端の3次元座標のx軸の値、y軸の値は同じ値となる。算出部170は、ステレオ画像の原理を基に上端のz軸の値を算出しても良いし、カメラ設定パラメータと、画像フレーム上の座標位置とを基にした幾何学的な関係から、z軸の値を算出しても良い。
算出部170は、車両の移動速度とフレーム間時間とを乗算することで、移動距離を算出し、移動距離および移動方向に合わせて、過去の時刻の輪郭線の下端および上端を移動させることで、現在時刻の輪郭線の下端および上端を算出する。算出部170は、算出した下端および上端を結んだ線分を、立体物予測輪郭線として算出する。
図8は、本実施例1に係る算出部が予測輪郭線を算出する処理を示すフローチャートである。予測輪郭線は、模様予測輪郭線、立体物予測輪郭線に対応する。図8に示すように、算出部170は、選択した過去の時刻の輪郭線が、輪郭線照合に成功しているか否かを判定する(ステップS50)。算出部170は、輪郭線照合に成功していない場合には(ステップS50,No)、ステップS57に移行する。
一方、算出部170は、選択した過去の時刻の輪郭線が、輪郭線照合に成功している場合には(ステップS50,Yes)、過去の時刻の輪郭線の下端を路面とした場合の3次元座標を算出する(ステップS51)。算出部170は、過去の時刻の輪郭線の上端を路面とした場合の3次元座標を算出する(ステップS52)。
算出部170は、過去の時刻の輪郭線の上端を立体物とした場合の3次元座標を算出する(ステップS53)。算出部170は、過去の時刻の3次元座標から現在時刻の3次元座標を算出する(ステップS54)。算出部170は、現在時刻の3次元座標から画像位置を算出する(ステップS55)。
算出部170は、上端・下端の画像位置を結んだ線分を予測輪郭線とする(ステップS56)。算出部170は、輪郭線DB130の輪郭線のループ処理を終了するか否かを判定する(ステップS57)。算出部170は、ループ処理を終了しない場合には(ステップS57,No)、ステップS50に移行する。算出部170は、ループ処理を終了する場合には(ステップS57,Yes)、処理を終了する。
図3の説明に戻る。判定部180は、現在時刻の輪郭線の長さと、模様予測輪郭線の長さと、立体物予測輪郭線の長さとを比較して、現在時刻の輪郭線が、路面の模様であるか、立体物であるかを判定する処理部である。判定部180は、判定結果を、出力部190に出力する。
判定部180は、現在時刻の輪郭線の長さが、立体物予測輪郭線の長さよりも模様予測輪郭線の長さに近い場合に、現在時刻の輪郭線が、路面の模様であると判定する。一方、判定部180は、現在時刻の輪郭線の長さが、模様予測輪郭線の長さよりも立体物予測輪郭線の長さに近い場合に、現在時刻の輪郭線が、立体物であると判定する。
具体的に、判定部180は、現在時刻の輪郭線の長さと、模様予測輪郭線の長さとの第1差分値を算出する。判定部180は、現在時刻の輪郭線の長さと、立体物予測輪郭線の長さとの第2差分値を算出する。判定部180は、第1差分値が、第2差分値よりも小さい場合に、現在時刻の輪郭線が、路面の模様であると判定する。判定部180は、第2差分値が、第1差分値よりも小さい場合に、現在時刻の輪郭線が、立体物であると判定する。
図9は、本実施例1に係る判定部の処理を示すフローチャートである。図9に示すように、判定部180は、過去の時刻の輪郭線が照合に成功していない場合には(ステップS60,No)、ステップS64に移行する。一方、判定部180は、過去の時刻の輪郭線が照合に成功している場合には(ステップS60,Yes)、ステップS61に移行する。
判定部180は、立体物予測輪郭線の長さが、模様予測輪郭線の長さより、現在時刻の輪郭線の長さに近い場合には(ステップS61,Yes)、輪郭線が立体物の輪郭線であると判定し(ステップS62)、ステップS64に移行する。
判定部180は、立体物予測輪郭線の長さが、模様予測輪郭線の長さより、現在時刻の輪郭線の長さに近くない場合には(ステップS61,No)、輪郭線が路面の模様の輪郭線であると判定し(ステップS63)、ステップS64に移行する。
判定部180は、輪郭線DB130の輪郭線のループ処理を終了しない場合には(ステップS64,No)、ステップS60に移行する。判定部180は、輪郭線DB130の輪郭線のループ処理を終了する場合には(ステップS64,Yes)、処理を終了する。
図3の説明に戻る。出力部190は、判定部180から判定結果を取得し、現在時刻の輪郭線のうち、立体物と判定された輪郭線の情報を外部装置に出力する装置である。
次に、本実施例1に係る物体検出装置100の処理手順について説明する。図10は、本実施例1に係る物体検出装置の処理手順を示すフローチャートである。図10に示すように、物体検出装置100は、カメラ110から映像データを取得する(ステップS101)。物体検出装置100の特定部150は、特徴点を抽出し(ステップS102)、輪郭線を抽出する(ステップS103)。
物体検出装置100の算出部170は、模様予測輪郭線と立体物予測輪郭線とを作成する(ステップS104)。物体検出装置100の判定部180は、輪郭線が立体物であるか路面の模様であるかを判定する(ステップS105)。
判定部180は、判定結果を出力する(ステップS106)。物体検出装置100は、処理を継続する場合には(ステップS107,Yes)、ステップS101に移行する。物体検出装置100は、処理を継続しない場合には(ステップS107,No)、処理を終了する。
次に、本実施例1に係る物体検出装置100の効果について説明する。物体検出装置100は、立体物予測輪郭線の長さと、模様予測輪郭線の長さと、現在時刻の実際の輪郭線の長さとを比較し、実際の輪郭線の長さが、立体物予測輪郭線の長さよりも、模様予測輪郭線の長さに近い場合には、物体が路面であると判定する。一方、物体検出装置100は、実際の輪郭線の長さが、模様予測輪郭線の長さよりも、立体物予測輪郭線の長さに近い場合には、物体が立体物であると判定する。これにより、画像から特定した物体の輪郭線の一部に欠けがある場合であっても、対象が路面上の模様か、静止立体物かを判定することができる。
図11は、本実施例2に係る物体検出装置の構成を示す機能ブロック図である。図11に示すように、この物体検出装置200は、カメラ210と、移動量検出部220と、輪郭線DB(database)230と、映像入力部240と、特定部250と、輪郭線照合部260と、算出部270と、判定部280と、出力部290とを有する。
図11において、カメラ210、移動量検出部220、輪郭線DB230、映像入力部240に関する説明は、図3に示したカメラ110、移動量検出部120、輪郭線DB130、映像入力部140に関する説明と同様である。また、特定部250、輪郭線照合部26に関する説明は、図3に示した特定部150、輪郭線照合部160に関する説明と同様である。
算出部270は、過去の時刻の輪郭線の情報と、車両の移動量に関する情報を基にして、模様予測輪郭線と、立体物予測輪郭線とを算出する処理部である。算出部270が、模様予測輪郭線および立体物予測輪郭線を算出する処理は、実施例1で説明した算出部170が、模様予測輪郭線および立体物予測輪郭線を算出する処理と同様である。
算出部270は、上記処理に加えて、過去の時刻の輪郭線の輝度値を基にして、模様予測輪郭線の輝度値および立体物予測輪郭線の輝度値を予測する。
算出部270は、過去の時刻の輪郭線の情報と、模様予測輪郭線の情報と、立体物予測輪郭線の情報とを、判定部280に出力する。
算出部270が、過去の時刻の輪郭線の輝度値を基にして、模様予測輪郭線の輝度値を予測する処理の一例について説明する。図12は、本実施例2に係る算出部の処理を説明するための図(1)である。図12に示す輪郭線90は、過去の時刻の輪郭線を示し、輪郭線94は、模様予測輪郭線を示す。説明の便宜上、輪郭線90は、ピクセル90a〜90eを有し、輪郭線94は、ピクセル94a〜94mを有するものとする。輪郭線90の各ピクセル90a〜90eには、過去の時刻の画像フレームに基づく輝度値が設定されている。輪郭線94の各ピクセル94a〜94mの輝度値は、初期状態では、ブランクとなる。
算出部270は、輪郭線90の各ピクセル90a〜90eの輝度値を、輪郭線94の各ピクセル94a〜94mに均等の間隔で分布させる。図12に示す例では、算出部270は、ピクセル90aの輝度値を、ピクセル94aの輝度値に設定し、ピクセル90bの輝度値を、ピクセル94dの輝度値に設定し、ピクセル90cの輝度値を、ピクセル94gの輝度値に設定する。算出部270は、ピクセル90dの輝度値を、ピクセル94jの輝度値に設定し、ピクセル90eの輝度値を、ピクセル94mの輝度値に設定する。
算出部270は、輪郭線94の各ピクセル94a〜94mのうち、ブランクとなっているピクセルの輝度値については、前後のピクセルの輝度値に基づく補間演算により、輝度値を算出する。例えば、算出部270は、ピクセル94b,94cの輝度値を、ピクセル94aの輝度値と、ピクセル94dの輝度値との補間演算により算出する。
続いて、算出部270が、過去の時刻の輪郭線の輝度値を基にして、立体物予測輪郭線の輝度値を予測する処理の一例について説明する。図13は、本実施例2に係る算出部の処理を説明するための図(2)である。図13に示す輪郭線90は、過去の時刻の輪郭線を示し、輪郭線95は、立体物予測輪郭線を示す。説明の便宜上、輪郭線90は、ピクセル90a〜90eを有し、輪郭線95は、ピクセル95a〜95iを有するものとする。輪郭線90の各ピクセル90a〜90eには、過去の時刻の画像フレームに基づく輝度値が設定されている。輪郭線95の各ピクセル95a〜95iの輝度値は、初期状態では、ブランクとなる。
算出部270は、輪郭線90の各ピクセル90a〜90eの輝度値を、輪郭線95の各ピクセル95a〜95iに均等の間隔で分布させる。図13に示す例では、算出部270は、ピクセル90aの輝度値を、ピクセル95aの輝度値に設定し、ピクセル90bの輝度値を、ピクセル95cの輝度値に設定し、ピクセル90cの輝度値を、ピクセル95eの輝度値に設定する。算出部270は、ピクセル90dの輝度値を、ピクセル95gの輝度値に設定し、ピクセル90eの輝度値を、ピクセル95iの輝度値に設定する。
算出部270は、輪郭線95の各ピクセル95a〜95iのうち、ブランクとなっているピクセルの輝度値については、前後のピクセルの輝度値に基づく補間演算により、輝度値を算出する。例えば、算出部270は、ピクセル95bの輝度値を、ピクセル95aの輝度値と、ピクセル95cの輝度値との補間演算により算出する。
算出部270が、図12および図13で説明した処理を実行することで、模様予測輪郭線の輝度値および立体物予測輪郭線の輝度値を算出する。一般的に、模様予測輪郭線が、立体物予測輪郭線より長いため、模様予測輪郭線の方が立体物予測輪郭線よりもぼやけた輪郭線となる。
図14は、本実施例2に係る算出部が予測輪郭線を算出する処理を示すフローチャートである。図14に示すように、算出部270は、選択した過去の時刻の輪郭線が、輪郭線照合に成功しているか否かを判定する(ステップS70)。算出部270は、輪郭線照合に成功していない場合には(ステップS70,No)、ステップS76に移行する。
一方、算出部270は、選択した過去の時刻の輪郭線が、輪郭線照合に成功している場合には(ステップS70,Yes)、過去の時刻の画像フレームに含まれる輪郭線の輝度値を記録する(ステップS71)。
算出部270は、過去の時刻の輪郭線について、立体物/路面とした場合の輪郭線の3次元座標を算出する(ステップS72)。算出部270は、過去の時刻の輪郭線の3次元座標から、現在時刻の下端・上端の3次元座標を算出する(ステップS73)。
算出部270は、現在時刻の下端・上端の3次元座標から模様予測輪郭線および立体物予測輪郭線の輝度値を算出部する(ステップS74)。算出部270は、模様予測輪郭線の輝度値および立体物予測輪郭線の輝度値を算出する(ステップS75)。
算出部270は、輪郭線DB230の輪郭線のループ処理を終了するか否かを判定する(ステップS76)。算出部270は、ループ処理を終了しない場合には(ステップS76,No)、ステップS70に移行する。算出部270は、ループ処理を終了する場合には(ステップS76,Yes)、処理を終了する。
図11の説明に戻る。判定部280は、現在時刻の輪郭線と、模様予測輪郭線とを比較して、第1重複率と、第1輝度差を算出し、第1重複率および第1輝度差から第1スコアを算出する。判定部280は、現在時刻の輪郭線と、立体物予測輪郭線とを比較して、第2重複率と、第2輝度差を算出し、第2重複率および第2輝度差から第2スコアを算出する。判定部280は、第1スコアおよび第2スコアを基にして、現在時刻の輪郭線が、立体物であるか路面の模様であるかを判定する。判定部280は、判定結果を出力部290に出力する。
判定部280が、第1スコアを算出する処理について説明する。判定部280は、現在時刻の輪郭線と、模様予測輪郭線との重複位置を摂動範囲内で調整し、最も重複率が高くなる位置を特定する。判定部280は、特定した最も高い重複率を第1重複率とする。判定部280は、第1重複率と、重複スコアテーブルとを比較して、第1重複率のスコアを算出する。重複スコアテーブルは、重複率をスコアに変換するテーブルであり、重複率が大きいほど、大きなスコアを与える。
判定部280は、最も重複率が高くなる現在時刻の輪郭線と、模様予測輪郭線とを固定し、現在時刻の輪郭線と模様予測輪郭線との輝度値の差分値をピクセル毎に算出し、各差分値を合計することで、第1輝度差を算出する。判定部280は、第1輝度差と、輝度差スコアテーブルとを比較して、第1輝度差のスコアを算出する。輝度差スコアテーブルは、輝度差をスコアに変換するテーブルであり、輝度差が小さいほど、大きなスコアを与える。
判定部280は、上記により求めた第1重複率のスコアと、第1輝度差のスコアとを合計することで、第1スコアを算出する。
判定部280が、第2スコアを算出する処理について説明する。判定部280は、現在時刻の輪郭線と、立体物予測輪郭線との重複位置を摂動範囲内で調整し、最も重複率が高くなる位置を特定する。判定部280は、特定した最も高い重複率を第2重複率とする。判定部280は、第2重複率と、重複スコアテーブルとを比較して、第2重複率のスコアを算出する。
判定部280は、最も重複率が高くなる現在時刻の輪郭線と、立体物予測輪郭線とを固定し、現在時刻の輪郭線と立体物予測輪郭線との輝度値の差分値をピクセル毎に算出し、各差分値を合計することで、第2輝度差を算出する。判定部280は、第2輝度差と、輝度差スコアテーブルとを比較して、第2輝度差のスコアを算出する。
判定部280は、上記により求めた第2重複率のスコアと、第2輝度差のスコアとを合計することで、第2スコアを算出する。
判定部280は、第1スコアが第2スコアよりも大きい場合には、現在時刻の輪郭線が、路面の模様であると判定する。一方、判定部280は、第1スコアが第2スコアよりも大きくない場合には、現在時刻の輪郭線が立体物であると判定する。
図15は、本実施例2に係る判定部の処理を示すフローチャートである。図15に示すように、判定部280は、過去の時刻の輪郭線が照合に成功していない場合には(ステップS80,No)、ステップS88に移行する。一方、判定部280は、過去の時刻の輪郭線が照合に成功している場合には(ステップS80,Yes)、ステップS81に移行する。
判定部280は、現在時刻の輪郭線と、模様予測輪郭線とを比較して、第1重複率および第1輝度差を算出する(ステップS81)。判定部280は、第1重複率および第1輝度差を基にして、第1スコアを算出する(ステップS82)。
判定部280は、現在時刻の輪郭線と、立体物予測輪郭線とを比較して、第2重複率および第2輝度差を算出する(ステップS83)。判定部280は、第2重複率および第2輝度差を基にして、第2スコアを算出する(ステップS84)。
判定部280は、第1スコアが第2スコアよりも大きいか否かを判定する(ステップS85)。判定部280は、第1スコアが第2スコアよりも大きい場合には(ステップS85,Yes)、現在時刻の輪郭線が路面の模様であると判定し(ステップS86)、ステップS88に移行する。
一方、判定部280は、第1スコアが第2スコアよりも大きくない場合には(ステップS85,No)、現在時刻の輪郭線が立体物であると判定し(ステップS87)、ステップS88に移行する。
判定部280は、輪郭線DB230の輪郭線のループ処理を終了していない場合には(ステップS88,No)、ステップS80に移行する。一方、判定部280は、輪郭線DB230の輪郭線のループ処理を終了した場合には(ステップS88,Yes)、処理を終了する。
次に、本実施例2に係る物体検出装置200の処理手順について説明する。図16は、本実施例2に係る物体検出装置の処理手順を示すフローチャートである。図16に示すように、物体検出装置200は、カメラ210から映像データを取得する(ステップS201)。物体検出装置200の特定部250は、特徴点を抽出し(ステップS202)、輪郭線を抽出する(ステップS203)。
物体検出装置200の算出部270は、模様予測輪郭線と立体物予測輪郭線とを作成する(ステップS204)。物体検出装置200の判定部280は、第1スコアおよび第2スコアを基にして、輪郭線が立体物であるか路面の模様であるかを判定する(ステップS205)。
判定部280は、判定結果を出力する(ステップS206)。物体検出装置200は、処理を継続する場合には(ステップS207,Yes)、ステップS201に移行する。物体検出装置200は、処理を継続しない場合には(ステップS207,No)、処理を終了する。
次に、本実施例2に係る物体検出装置200の効果について説明する。物体検出装置200は、第1重複率および第1輝度差を基にして模様予測輪郭線の第1スコアを算出し、第2重複率および第2輝度差を基にして立体物予測輪郭線の第2スコアを算出し、第1スコアおよび第2スコアを基にして、物体が立体物であるか路面の模様であるかを判定する。実施例2の物体検出装置200は、実施例1の処理に加えて、各輪郭線の輝度値の差を更に用いて、判定を行うため、より正確に、物体が立体物であるか路面の模様であるかを判定することができる。
次に、上記実施例に示した物体検出装置100,200と同様の機能を実現する物体検出プログラムを実行するコンピュータの一例について説明する。図17は、物体検出プログラムを実行するコンピュータの一例を示す図である。
図17に示すように、コンピュータ300は、各種演算処理を実行するCPU301と、ユーザからのデータの入力を受け付ける入力装置302と、ディスプレイ303とを有する。また、コンピュータ300は、記憶媒体からプログラム等を読み取る読み取り装置304と、ネットワークを介して他のコンピュータとの間でデータの授受を行うインターフェース装置305と、カメラ306とを有する。また、コンピュータ300は、各種情報を一時記憶するRAM307と、ハードディスク装置308とを有する。そして、各装置301〜308は、バス309に接続される。
ハードディスク装置308は、特定プログラム308a、照合プログラム308b、算出プログラム308c、判定プログラム308dを有する。CPU301は、特定プログラム308a、照合プログラム308b、算出プログラム308c、判定プログラム308dを読み出してRAM307に展開する。
特定プログラム308aは、特定プロセス307aとして機能する。照合プログラム308bは、照合プロセス307bとして機能する。算出プログラム308cは、算出プロセス307cとして機能する。判定プログラム308dは、判定プロセス307dとして機能する。
特定プロセス307aの処理は、特定部150,250の処理に対応する。照合プロセス307bの処理は、輪郭線照合部160,260の処理に対応する。算出プロセス307cの処理は、算出部170,270の処理に対応する。判定プロセス307dの処理は、判定部180,280の処理に対応する。
なお、特定プログラム308a、照合プログラム308b、算出プログラム308c、判定プログラム308dについては、必ずしも最初からハードディスク装置308に記憶させておかなくても良い。例えば、コンピュータ300に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ300が各プログラム308a〜308dを読み出して実行するようにしてもよい。
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)第一のタイミングで撮像された画像に写る対象物の第一輪郭線を特定し、前記第一のタイミングとは異なる第二のタイミングで撮像された画像に写る対象物の第二輪郭線を特定する特定部と、
車両の移動方向、移動速度、及び、前記第一のタイミングと前記第二のタイミングとの時間差を用いて、対象物が路面の模様の場合に前記第一輪郭線が前記第二のタイミングで撮影されるべき模様予測輪郭線と、対象物が立体物の場合に前記第一輪郭線が前記第二のタイミングで撮影されるべき立体物予測輪郭線とを算出する算出部と、
前記模様予測輪郭線と前記立体物予測輪郭線の内、前記模様
予測輪郭線の長さが前記立体物予測輪郭線の長さよりも前記第二輪郭線の長さに近い場合には対象物を路面の模様と判定し、前記立体物予測輪郭線の長さが前記模様予測輪郭線の長さよりも前記第二輪郭線の長さに近い場合には対象物を立体物と判定する判定部と
を有することを特徴とする物体検出装置。
(付記2)前記特定部は、前記第一輪郭線の輝度値および前記第二輪郭線の輝度値を更に特定し、前記算出部は、前記第一輪郭線の輝度値を基にして、前記模様予測輪郭線の輝度値および前記立体物予測輪郭線の輝度値を更に算出し、前記判定部は、前記模様予測輪郭線の輝度値および前記立体物予測輪郭線の輝度値を更に用いて、対象物が路面の模様であるか立体物であるかを判定することを特徴とする付記1に記載の物体検出装置。
(付記3)前記判定部は、前記第二輪郭線と前記模様予測輪郭線との重複率、および、前記第二輪郭線の輝度値と前記模様予測輪郭線の輝度値との差分値から第1スコアを算出し、前記第二輪郭線と前記立体物予測輪郭線との重複率、および、前記第二輪郭線の輝度値と前記立体物予測輪郭線の輝度値との差分値から第2スコアを算出し、前記第1スコアと前記第2スコアとを基にして、対象物が路面の模様であるか立体物であるかを判定することを特徴とする付記2に記載の物体検出装置。
(付記4)コンピュータが実行する物体検出方法であって、
第一のタイミングで撮像された画像に写る対象物の第一輪郭線を特定し、
前記第一のタイミングとは異なる第二のタイミングで撮像された画像に写る対象物の第二輪郭線を特定し、
車両の移動方向、移動速度、及び、前記第一のタイミングと前記第二のタイミングとの時間差を用いて、対象物が路面の模様の場合に前記第一輪郭線が前記第二のタイミングで撮影されるべき模様予測輪郭線と、対象物が立体物の場合に前記第一輪郭線が前記第二のタイミングで撮影されるべき立体物予測輪郭線とを算出し、
前記模様予測輪郭線と前記立体物予測輪郭線の内、前記模様予測輪郭線の長さが前記立体物予測輪郭線の長さよりも前記第二輪郭線の長さに近い場合には対象物を路面の模様と判定し、
前記立体物予測輪郭線の長さが前記模様予測輪郭線の長さよりも前記第二輪郭線の長さに近い場合には対象物を立体物と判定する
処理を実行することを特徴とする物体検出方法。
(付記5)前記コンピュータは、前記第一輪郭線の輝度値および前記第二輪郭線の輝度値を更に特定し、前記算出する処理は、前記第一輪郭線の輝度値を基にして、前記模様予測輪郭線の輝度値および前記立体物予測輪郭線の輝度値を更に算出し、前記判定する処理は、前記模様予測輪郭線の輝度値および前記立体物予測輪郭線の輝度値を更に用いて、対象物が路面の模様であるか立体物であるかを判定することを特徴とする付記4に記載の物体検出方法。
(付記6)前記コンピュータは、前記第二輪郭線と前記模様予測輪郭線との重複率、および、前記第二輪郭線の輝度値と前記模様予測輪郭線の輝度値との差分値から第1スコアを算出し、前記第二輪郭線と前記立体物予測輪郭線との重複率、および、前記第二輪郭線の輝度値と前記立体物予測輪郭線の輝度値との差分値から第2スコアを算出し、前記第1スコアと前記第2スコアとを基にして、対象物が路面の模様であるか立体物であるかを判定することを特徴とする付記5に記載の物体検出方法。