しかし、特許文献1に開示されているような従来の装置にあっては、道路の側に設置されたカメラで道路上の車両の前方斜め方向から車両を撮像する。このため、カメラの画角などの条件次第で撮像した車両の一部が隣接車線に重なった状態となる。このため、実際には隣接車線を走行する車両が存在しないにも関わらず、隣接車線にも車両が存在すると判定する場合も起こり得る。
本発明は、斯かる事情に鑑みてなされたものであり、従来よりもさらに精度良く移動体を検出することができる移動体検出装置、該移動体検出装置を備える移動体検出システム及び前記移動体検出装置をコンピュータで実現するためのコンピュータプログラムを提供することを目的とする。
第1発明に係る移動体検出装置は、撮像装置で撮像して得られた撮像画像を用いて移動体を検出する移動体検出装置において、透視変換行列を用いて撮像画像を複数の画素で構成される鳥瞰画像に変換する変換手段と、該変換手段で変換した鳥瞰画像の画素値に基づいて該鳥瞰画像上の移動体候補領域を抽出する抽出手段と、前記移動体候補領域の境界の近傍で列状をなした列状画素それぞれの位置から所定の向きで走査した所定数の画素のうち前記移動体候補領域内に含まれる画素数に基づいて、前記配置画素を移動体の一部として検出する検出手段とを備えることを特徴とする。
第2発明に係る移動体検出装置は、第1発明において、前記移動体候補領域の一部又は全部を縦横四辺で囲む矩形領域の下辺で列状をなす下辺画素それぞれの位置から移動体の高さ方向に対応する向きに第1所定数の画素を走査して前記移動体候補領域内に含まれる画素数を計数する第1計数手段と、該第1計数手段で計数した画素数が第1閾値以上である下辺画素の位置を特定する第1特定手段と、前記矩形領域の下辺で列状をなす下辺画素それぞれの位置から移動体の長さ方向に対応する向きに第2所定数の画素を走査して前記移動体候補領域内に含まれる画素数を計数する第2計数手段と、該第2計数手段で計数した画素数が第2閾値以上である下辺画素の位置を特定する第2特定手段とを備え、前記検出手段は、前記第1特定手段及び第2特定手段で特定した下辺画素の位置に基づいて移動体の幅を検出するように構成してあることを特徴とする。
第3発明に係る移動体検出装置は、第2発明において、前記検出手段で検出した移動体の幅の右端から縦方向に列状をなした右端画素それぞれの位置から移動体の高さ方向に対応する向きに前記第1所定数の画素を走査して前記移動体候補領域内に含まれる画素数を計数する第3計数手段と、該第3計数手段で計数した画素数が前記第1閾値以上である右端画素の位置を特定する第3特定手段と、前記移動体の幅の左端から縦方向に列状をなした左端画素それぞれの位置から移動体の高さ方向に対応する向きに前記第1所定数の画素を走査して前記移動体候補領域内に含まれる画素数を計数する第4計数手段と、該第4計数手段で計数した画素数が前記第1閾値以上である左端画素の位置を特定する第4特定手段とを備え、前記検出手段は、前記第3特定手段及び第4特定手段で特定した右端画素及び左端画素の位置に基づいて移動体の長さを検出するように構成してあることを特徴とする。
第4発明に係る移動体検出装置は、第2発明において、前記検出手段で検出した移動体の幅の右端から縦方向に列状をなした右端画素それぞれの位置から移動体の高さ方向に対応する向きに前記第1所定数の画素を走査して前記移動体候補領域内に含まれる画素数を計数する第3計数手段と、該第3計数手段で計数した画素数が前記第1閾値以上である右端画素の位置を特定する第3特定手段と、前記移動体の幅の右端から縦方向に列状をなした右端画素それぞれの位置から左横方向に第3所定数の画素を走査して前記移動体候補領域内に含まれる画素数を計数する第5計数手段と、該第5計数手段で計数した画素数が第3閾値以上である右端画素の位置を特定する第5特定手段とを備え、前記検出手段は、前記第3特定手段及び第5特定手段で特定した右端画素の位置に基づいて移動体の長さを検出するように構成してあることを特徴とする。
第5発明に係る移動体検出装置は、第2発明において、前記検出手段で検出した移動体の幅の左端から縦方向に列状をなした左端画素それぞれの位置から移動体の高さ方向に対応する向きに前記第1所定数の画素を走査して前記移動体候補領域内に含まれる画素数を計数する第4計数手段と、該第4計数手段で計数した画素数が前記第1閾値以上である左端画素の位置を特定する第4特定手段と、前記移動体の幅の左端から縦方向に列状をなした左端画素それぞれの位置から右横方向に第3所定数の画素を走査して前記移動体候補領域内に含まれる画素数を計数する第6計数手段と、該第6計数手段で計数した画素数が第3閾値以上である左端画素の位置を特定する第6特定手段とを備え、前記検出手段は、前記第4特定手段及び第6特定手段で特定した左端画素の位置に基づいて移動体の長さを検出するように構成してあることを特徴とする。
第6発明に係る移動体検出装置は、第1発明において、前記移動体候補領域の一部又は全部を縦横四辺で囲む矩形領域の右辺で列状をなす右辺画素それぞれの位置から移動体の高さ方向に対応する向きに第1所定数の画素を走査して前記移動体候補領域内に含まれる画素数を計数する第7計数手段と、該第7計数手段で計数した画素数が第1閾値以上である右辺画素の位置を特定する第7特定手段と、前記矩形領域の右辺で列状をなす右辺画素それぞれの位置から左横方向に第3所定数の画素を走査して前記移動体候補領域内に含まれる画素数を計数する第8計数手段と、該第8計数手段で計数した画素数が第3閾値以上である右辺画素の位置を特定する第8特定手段とを備え、前記検出手段は、前記第7特定手段及び第8特定手段で特定した右辺画素の位置に基づいて移動体の長さを検出するようにしてあり、前記検出手段で検出した移動体の長さの下端から横方向に列状をなした下端画素それぞれの位置から移動体の高さ方向に対応する向きに前記第1所定数の画素を走査して前記移動体候補領域内に含まれる画素数を計数する第9計数手段と、該第9計数手段で計数した画素数が前記第1閾値以上である下端画素の位置を特定する第9特定手段と、前記移動体の長さの上端から横方向に列状をなした上端画素それぞれの位置から移動体の高さ方向に対応する向きに前記第1所定数の画素を走査して前記移動体候補領域内に含まれる画素数を計数する第10計数手段と、該第10計数手段で計数した画素数が前記第1閾値以上である上端画素の位置を特定する第10特定手段とをさらに備え、前記検出手段は、前記第9特定手段及び第10特定手段で特定した下端画素及び上端画素の位置に基づいて移動体の幅を検出するように構成してあることを特徴とする。
第7発明に係る移動体検出装置は、第1発明において、前記移動体候補領域の一部又は全部を縦横四辺で囲む矩形領域の左辺で列状をなす左辺画素それぞれの位置から移動体の高さ方向に対応する向きに第1所定数の画素を走査して前記移動体候補領域内に含まれる画素数を計数する第11計数手段と、該第11計数手段で計数した画素数が第1閾値以上である左辺画素の位置を特定する第11特定手段と、前記矩形領域の左辺で列状をなす左辺画素それぞれの位置から右横方向に第3所定数の画素を走査して前記移動体候補領域内に含まれる画素数を計数する第12計数手段と、該第12計数手段で計数した画素数が第3閾値以上である左辺画素の位置を特定する第12特定手段とを備え、前記検出手段は、前記第11特定手段及び第12特定手段で特定した左辺画素の位置に基づいて移動体の長さを検出するようにしてあり、前記検出手段で検出した移動体の長さの下端から横方向に列状をなした下端画素それぞれの位置から移動体の高さ方向に対応する向きに前記第1所定数の画素を走査して前記移動体候補領域内に含まれる画素数を計数する第13計数手段と、該第13計数手段で計数した画素数が前記第1閾値以上である下端画素の位置を特定する第13特定手段と、前記移動体の長さの上端から横方向に列状をなした上端画素それぞれの位置から移動体の高さ方向に対応する向きに前記第1所定数の画素を走査して前記移動体候補領域内に含まれる画素数を計数する第14計数手段と、該第14計数手段で計数した画素数が前記第1閾値以上である上端画素の位置を特定する第14特定手段とをさらに備え、前記検出手段は、前記第13特定手段及び第14特定手段で特定した下端画素及び上端画素の位置に基づいて移動体の幅を検出するように構成してあることを特徴とする。
第8発明に係る移動体検出装置は、第3発明乃至第7発明のいずれか1つにおいて、前記検出手段で検出した幅及び長さに基づいて移動体の存在領域を特定する存在領域特定手段を備えることを特徴とする。
第9発明に係る移動体検出装置は、第3発明乃至第8発明のいずれか1つにおいて、前記検出手段で検出した幅及び長さに基づいて車種を判定する車種判定手段を備えることを特徴とする。
第10発明に係る移動体検出システムは、前述の発明に係る移動体検出装置と、該移動体検出装置へ撮像画像を出力する撮像装置とを備えることを特徴とする。
第11発明に係るコンピュータプログラムは、コンピュータに、撮像装置で撮像して得られた撮像画像を用いて移動体を検出させるためのコンピュータプログラムにおいて、コンピュータに、透視変換行列を用いて撮像画像を複数の画素で構成される鳥瞰画像に変換するステップと、変換した鳥瞰画像の画素値に基づいて該鳥瞰画像上の移動体候補領域を抽出するステップと、前記移動体候補領域の境界の近傍で列状をなした列状画素それぞれの位置から所定の向きで走査した所定数の画素のうち前記移動体候補領域内に含まれる画素数に基づいて、前記配置画素を移動体の一部として検出するステップとを実行させることを特徴とする。
第1発明、第10発明及び第11発明にあっては、変換手段は、透視変換行列を用いて撮像画像を複数の画素で構成される鳥瞰画像に変換する。撮像画像の座標を(u、v)とし、その行列Mで表す。また、ワールド座標を(Xw、Yw、Zw)とし、その行列をWで表す。透視変換行列をPとすると、M=P・Wの関係を有する。ここで、透視変換行列Pは、(3×3)の行列であり、透視変換行列Pの各要素は、ビデオカメラ(撮像装置)の設置高さ、ビデオカメラの張り出し長、ビデオカメラ下から車両の検出(計測)領域の位置(距離)などを計測することにより算出することができる。鳥瞰画像(以下、変換画像とも称する)は、道路を真上から見た画像であり、鳥瞰画像の座標を(x、y)とすると、x=K・Xw、y=K・Ywの関係が成り立つ。すなわち、撮像画像(u、v)から透視変換行列Pを用いてワールド座標(Xw、Yw、Zw)を求め、Xw、Ywから鳥瞰画像(x、y)を求めることができる。
抽出手段は、鳥瞰画像の画素値に基づいて、鳥瞰画像上で移動体候補領域を抽出する。鳥瞰画像には、車両などの移動体以外に路面、白線、影などの情報も含まれているので、これらの車両以外の情報は除外する。例えば、画像上の注目画素とその周辺画素との画素値の差分を符号化した周辺増分符号を用いた画像処理、背景画像との差分を用いる画像処理、時間経過の変化の時間差分を用いる画像処理などを用いて、移動体候補領域を抽出することができる。鳥瞰座標(x、y)は、ワールド座標において高さZw=0であるので、移動体候補領域は、道路の路面上に投影された移動体の候補領域である。
検出手段は、抽出された移動体候補領域の境界の近傍で列状をなした列状画素それぞれの位置から所定の向きで走査した所定数の画素のうち、移動体候補領域内に含まれる画素数に基づいて、列状画素を移動体の一部として検出する。移動体候補領域の境界は、必ずしも直線状ではなく、複数の線分及び曲線で構成される。そこで、例えば、移動体候補領域の全部又は大部分を縦横四辺で囲む矩形状の矩形領域を設定し、矩形領域の境界上で縦(上下)又は横(左右)に列状をなした列状画素を特定する。矩形領域とするのは、路面を上から見た画像上では車両などの移動体の輪郭は矩形状をなすからである。また、所定の向きは、移動体の形状を三次元モデルとして、移動体の高さ方向(鳥瞰画像では斜め上方向)、移動体の長さ方向(鳥瞰画像では縦上方向)、移動体の幅方向(鳥瞰画像では横左右方向)となる。また、所定数の画素は、例えば、移動体の高さ、長さ及び幅に相当する鳥瞰画像上の画素数である。
例えば、列状画素から移動体の高さ方向(車高方向とも称する)に沿って車高相当の画素数(又は画像上の距離)の画素を走査(探索)し、移動体候補領域内に存在する画素数を計数する。計数した画素数が所定の閾値以上である場合、当該列状画素は移動体を構成する画素であると判定することができる。同様に、列状画素から移動体の長さ方向(車長方向とも称する)に沿って車長相当の画素数(又は画像上の距離)の画素を走査(探索)し、移動体候補領域内に存在する画素数を計数する。計数した画素数が所定の閾値以上である場合、当該列状画素は移動体を構成する画素であると判定することができる。また、列状画素から移動体の幅方向(車幅方向とも称する)に沿って車幅相当の画素数(又は画像上の距離)の画素を走査(探索)し、移動体候補領域内に存在する画素数を計数する。計数した画素数が所定の閾値以上である場合、当該列状画素は移動体を構成する画素であると判定することができる。
上述のようにして移動体の一部であるとして検出された列状画素が複数隣接して存在する場合、移動体の幅方向(横方向、左右方向)、長さ方向(縦方向、上下方向)の範囲(寸法)を検出することができ、移動体を路面に投影した高さがゼロの領域を検出することができるので、隣接車線に重なることなく、従来よりもさらに精度良く移動体を検出することができる。
第2発明にあっては、第1計数手段は、抽出された移動体候補領域の一部又は全部を縦横四辺で囲む矩形領域の下辺で列状をなす下辺画素(列状画素)それぞれの位置から移動体の高さ方向に対応する向きに第1所定数の画素を走査して、移動体候補領域内に含まれる画素数を計数する。第1所定数は、移動体の高さ(例えば、1.7mなど)に相当する鳥瞰画像上の画素数とすることができる。高さ方向は、以下のようにして求めることができる。すなわち、撮像画像上の路面(高さが0)上の点Bの座標をB(u1、v1)とし、点Bから移動体の高さ(H)分の位置にある点Cの座標をC(u2、v2)とする。座標B(u1、v1)を透視変換行列Pでワールド座標(Xw1、Yw1)に変換し、変換したワールド座標(Xw1、Yw1)から鳥瞰画像(変換画像)上の座標BB(x1、y1)を求める。次に、点Bに相当するワールド座標(Xw1、Yw1)から、高さHを加味した点Cに相当するワールド座標(Xw1、Yw1、H)を求め、透視変換行列Pを用いて撮像画像上の点Cの座標C(u2、v2)を求める。座標C(u2、v2)を透視変換行列Pでワールド座標(Xw2、Yw2)に変換し、変換したワールド座標(Xw2、Yw2)から鳥瞰画像(変換画像)上の座標CC(x2、y2)を求める。鳥瞰画像上の座標BBから座標CCの向きが、移動体の高さ方向を示し、座標BBと座標CCとの間の画素数が第1所定数となる。
第1特定手段は、計数された画素数が第1閾値以上である下辺画素の位置を特定する。計数した画素数が第1閾値以上である場合、当該下辺画素は、移動体領域を構成する画素であると判定することができ、計数した画素数が第1閾値未満である場合、当該下辺画素は、移動体領域を構成する画素ではないと判定することができる。例えば、計数した画素数が第1閾値以上である下辺画素が隣接して複数存在する場合、特定された下辺画素の範囲が移動体領域(例えば、車頭の部分、車幅方向の輪郭)となる。
第2計数手段は、矩形領域の下辺で列状をなす下辺画素それぞれの位置から移動体の長さ方向に対応する向き(縦方向)に第2所定数の画素を走査して、移動体候補領域内に含まれる画素数を計数する。第2所定数は、移動体の長さ(例えば、4.3mなど)に相当する鳥瞰画像上の画素数とすることができる。第2特定手段は、計数した画素数が第2閾値以上である下辺画素の位置を特定する。計数した画素数が第2閾値以上である場合、当該下辺画素は、移動体領域を構成する画素であると判定することができる。例えば、計数した画素数が第2閾値以上である下辺画素が隣接して複数存在する場合、特定された下辺画素の範囲が移動体領域(例えば、車頭の部分、車幅方向の輪郭)となる。
検出手段は、第1特定手段及び第2特定手段で特定した下辺画素の位置に基づいて移動体の幅(車幅)を検出する。例えば、第1特定手段で特定した下辺画素の範囲(位置)と第2特定手段で特定した下辺画素の範囲(位置)の両方に共通の範囲(位置)を移動体の幅(移動体の一部)として検出する。下辺画素のうち、当該下辺画素の位置から移動体の高さ分の位置までの画素が移動体候補領域にあると判定され、かつ当該下辺画素の位置から移動体の長さ分の位置までの画素が移動体候補領域にあると判定された下辺画素を特定することにより、移動体候補領域内の高さが0の位置にある下辺画素のうち、当該下辺画素の位置に対して車高分の位置及び車長分の位置にある画素も移動体候補領域内にあると判定された下辺画素だけを特定することができるので、高さが0の移動体領域(移動体が路面に投影された画像)を構成する画素を精度良く検出することができる。
第3発明にあっては、第3計数手段は、検出された幅(車幅)の右端から縦方向に列状をなした(画像上で上向きのライン上に存在する)右端画素それぞれの位置から移動体の高さ方向に対応する向きに第1所定数の画素を走査して移動体候補領域内に含まれる画素数を計数する。右端画素は、例えば、車幅の右端から上向きのラインが矩形領域の上辺と交差する位置までに存在する画素とすることができる。矩形領域内で探索すれば十分であるからである。高さ方向及び第1所定数は、前述と同様、鳥瞰画像上の座標BBから座標CCの向きが、移動体の高さ方向を示し、座標BBと座標CCとの間の画素数が第1所定数となる。
第3特定手段は、計数された画素数が第1閾値以上である右端画素の位置を特定する。計数した画素数が第1閾値以上である場合、当該右端画素は、移動体領域を構成する画素であると判定することができ、計数した画素数が第1閾値未満である場合、当該右端画素は、移動体領域を構成する画素ではないと判定することができる。例えば、計数した画素数が第1閾値以上である右端画素が隣接して複数存在する場合、特定された右端画素の範囲が移動体領域(例えば、車長の部分、車長方向の輪郭)となる。
第4計数手段は、検出された幅(車幅)の左端から縦方向に列状をなした(画像上で上向きのライン上に存在する)左端画素それぞれの位置から移動体の高さ方向に対応する向きに第1所定数の画素を走査して移動体候補領域内に含まれる画素数を計数する。左端画素は、例えば、車幅の左端から上向きのラインが矩形領域の上辺と交差する位置までに存在する画素とすることができる。矩形領域内で探索すれば十分であるからである。
第4特定手段は、計数された画素数が第1閾値以上である左端画素の位置を特定する。計数した画素数が第1閾値以上である場合、当該左端画素は、移動体領域を構成する画素であると判定することができ、計数した画素数が第1閾値未満である場合、当該左端画素は、移動体領域を構成する画素ではないと判定することができる。例えば、計数した画素数が第1閾値以上である左端画素が隣接して複数存在する場合、特定された左端画素の範囲が移動体領域(例えば、車長の部分、車長方向の輪郭)となる。
検出手段は、第3特定手段及び第4特定手段で特定した右端画素及び左端画素の位置に基づいて移動体の長さ(車長)を検出する。例えば、第3特定手段で特定した右端画素の範囲(上下方向の位置)と第4特定手段で特定した左端画素の範囲(上下方向の位置)の両方に共通の範囲(上下方向の位置)を移動体の長さ、すなわち車長(移動体の一部)として検出する。右端画素のうち、当該右端画素の位置から移動体の高さ分の位置までの画素が移動体候補領域にあると判定された右端画素、かつ左端画素のうち、当該左端画素の位置から移動体の高さ分の位置までの画素が移動体候補領域にあると判定された左端画素を特定することにより、移動体候補領域内の高さが0の位置にある車長方向に沿った右端画素及び左端画素のうち、当該右端画素及び左端画素の位置に対して車高分の位置にある画素も移動体候補領域内にあると判定された右端画素及び左端画素だけを特定することができるので、高さが0の移動体領域(移動体が路面に投影された画像)を構成する画素を精度良く検出することができる。
第4発明にあっては、第3計数手段は、検出された幅(車幅)の右端から縦方向に列状をなした(画像上で上向きのライン上に存在する)右端画素それぞれの位置から移動体の高さ方向に対応する向きに第1所定数の画素を走査して移動体候補領域内に含まれる画素数を計数する。右端画素は、例えば、車幅の右端から上向きのラインが矩形領域の上辺と交差する位置までに存在する画素とすることができる。矩形領域内で探索すれば十分であるからである。高さ方向及び第1所定数は、前述と同様、鳥瞰画像上の座標BBから座標CCの向きが、移動体の高さ方向を示し、座標BBと座標CCとの間の画素数が第1所定数となる。
第3特定手段は、計数された画素数が第1閾値以上である右端画素の位置を特定する。計数した画素数が第1閾値以上である場合、当該右端画素は、移動体領域を構成する画素であると判定することができ、計数した画素数が第1閾値未満である場合、当該右端画素は、移動体領域を構成する画素ではないと判定することができる。例えば、計数した画素数が第1閾値以上である右端画素が隣接して複数存在する場合、特定された右端画素の範囲が移動体領域(例えば、車長の部分、車長方向の輪郭)となる。
第5計数手段は、検出された幅(車幅)の右端から縦方向に列状をなした(画像上で上向きのライン上に存在する)右端画素それぞれの位置から左横方向に第3所定数の画素を走査して移動体候補領域内に含まれる画素数を計数する。右端画素は、例えば、車幅の右端から上向きのラインが矩形領域の上辺と交差する位置までに存在する画素とすることができる。第3所定数は、移動体の幅(例えば、1.8mなど)に相当する鳥瞰画像上の画素数とすることができる。
第5特定手段は、計数された画素数が第3閾値以上である右端画素の位置を特定する。計数した画素数が第3閾値以上である場合、当該右端画素は、移動体領域を構成する画素であると判定することができ、計数した画素数が第3閾値未満である場合、当該右端画素は、移動体領域を構成する画素ではないと判定することができる。例えば、計数した画素数が第3閾値以上である右端画素が隣接して複数存在する場合、特定された右端画素の範囲が移動体領域(例えば、車長の部分、車長方向の輪郭)となる。
検出手段は、第3特定手段及び第5特定手段で特定した右端画素の位置に基づいて移動体の長さ(車長)を検出する。例えば、第3特定手段で特定した右端画素の範囲(位置)と第5特定手段で特定した右端画素の範囲(位置)の両方に共通の範囲(位置)を移動体の車長(移動体の一部)として検出する。右端画素のうち、当該右端画素の位置から移動体の高さ分の位置までの画素が移動体候補領域にあると判定され、かつ当該右端画素の位置から移動体の車幅分の位置までの画素が移動体候補領域にあると判定された右端画素を特定することにより、移動体候補領域内の高さが0の位置にある右端画素のうち、当該右端画素の位置に対して車高分の位置及び車幅分の位置にある画素も移動体候補領域内にある右端画素だけを特定することができるので、高さが0の移動体領域(移動体が路面に投影された画像)を構成する画素を精度良く検出することができる。
第5発明にあっては、第4計数手段は、検出された幅(車幅)の左端から縦方向に列状をなした(画像上で上向きのライン上に存在する)左端画素それぞれの位置から移動体の高さ方向に対応する向きに第1所定数の画素を走査して移動体候補領域内に含まれる画素数を計数する。左端画素は、例えば、車幅の左端から上向きのラインが矩形領域の上辺と交差する位置までに存在する画素とすることができる。矩形領域内で探索すれば十分であるからである。
第4特定手段は、計数された画素数が第1閾値以上である左端画素の位置を特定する。計数した画素数が第1閾値以上である場合、当該左端画素は、移動体領域を構成する画素であると判定することができ、計数した画素数が第1閾値未満である場合、当該左端画素は、移動体領域を構成する画素ではないと判定することができる。例えば、計数した画素数が第1閾値以上である左端画素が隣接して複数存在する場合、特定された左端画素の範囲が移動体領域(例えば、車長の部分、車長方向の輪郭)となる。
第6計数手段は、検出された幅(車幅)の左端から縦方向に列状をなした(画像上で上向きのライン上に存在する)左端画素それぞれの位置から右横方向に第3所定数の画素を走査して移動体候補領域内に含まれる画素数を計数する。検出された車幅の左端から上向きのライン上に存在する左端画素それぞれの位置から右横方向に第3所定数の画素を走査して移動体候補領域内に含まれる画素数を計数する。左端画素は、例えば、車幅の左端から上向きのラインが矩形領域の上辺と交差する位置までに存在する画素とすることができる。第3所定数は、移動体の幅(例えば、1.8mなど)に相当する鳥瞰画像上の画素数とすることができる。
第6特定手段は、計数された画素数が第3閾値以上である左端画素の位置を特定する。計数した画素数が第3閾値以上である場合、当該左端画素は、移動体領域を構成する画素であると判定することができ、計数した画素数が第3閾値未満である場合、当該左端画素は、移動体領域を構成する画素ではないと判定することができる。例えば、計数した画素数が第3閾値以上である左端画素が隣接して複数存在する場合、特定された左端画素の範囲が移動体領域(例えば、車長の部分、車長方向の輪郭)となる。
検出手段は、第4特定手段及び第6特定手段で特定した左端画素の位置に基づいて移動体の長さ(車長)を検出する。例えば、第4特定手段で特定した左端画素の範囲(位置)と第6特定手段で特定した左端画素の範囲(位置)の両方に共通の範囲(位置)を移動体の車長(移動体の一部)として検出する。左端画素のうち、当該左端画素の位置から移動体の高さ分の位置までの画素が移動体候補領域にあると判定され、かつ当該左端画素の位置から移動体の車幅分の位置までの画素が移動体候補領域にあると判定された左端画素を特定することにより、移動体候補領域内の高さが0の位置にある左端画素のうち、当該左端画素の位置に対して車高分の位置及び車幅分の位置にある画素も移動体候補領域内にある左端画素だけを特定することができるので、高さが0の移動体領域(移動体が路面に投影された画像)を構成する画素を精度良く検出することができる。
第6発明にあっては、第7計数手段は、移動体候補領域の一部又は全部を縦横四辺で囲む矩形領域の右辺で列状をなす右辺画素(列状画素)それぞれの位置から移動体の高さ方向に対応する向きに第1所定数の画素を走査して移動体候補領域内に含まれる画素数を計数する。第1所定数は、移動体の高さ(例えば、1.7mなど)に相当する鳥瞰画像上の画素数とすることができる。高さ方向は、以下のようにして求めることができる。すなわち、撮像画像上の路面(高さが0)上の点Bの座標をB(u1、v1)とし、点Bから移動体の高さ(H)分の位置にある点Cの座標をC(u2、v2)とする。座標B(u1、v1)を透視変換行列Pでワールド座標(Xw1、Yw1)に変換し、変換したワールド座標(Xw1、Yw1)から鳥瞰画像(変換画像)上の座標BB(x1、y1)を求める。次に、点Bに相当するワールド座標(Xw1、Yw1)から、高さHを加味した点Cに相当するワールド座標(Xw1、Yw1、H)を求め、透視変換行列Pを用いて撮像画像上の点Cの座標C(u2、v2)を求める。座標C(u2、v2)を透視変換行列Pでワールド座標(Xw2、Yw2)に変換し、変換したワールド座標(Xw2、Yw2)から鳥瞰画像(変換画像)上の座標CC(x2、y2)を求める。鳥瞰画像上の座標BBから座標CCの向きが、移動体の高さ方向を示し、座標BBと座標CCとの間の画素数が第1所定数となる。
第7特定手段は、計数された画素数が第1閾値以上である右辺画素の位置を特定する。計数した画素数が第1閾値以上である場合、当該右辺画素は、移動体領域を構成する画素であると判定することができ、計数した画素数が第1閾値未満である場合、当該右辺画素は、移動体領域を構成する画素ではないと判定することができる。例えば、計数した画素数が第1閾値以上である右辺画素が隣接して複数存在する場合、特定された右辺画素の範囲が移動体領域(例えば、車長の部分、車長方向の輪郭)となる。
第8計数手段は、矩形領域の右辺で列状をなす右辺画素それぞれの位置から左横方向に第3所定数の画素を走査して移動体候補領域内に含まれる画素数を計数する。第8特定手段は、計数された画素数が第3閾値以上である前記右辺画素の位置を特定する。計数した画素数が第3閾値以上である場合、当該右辺画素は、移動体領域を構成する画素であると判定することができ、計数した画素数が第3閾値未満である場合、当該右辺画素は、移動体領域を構成する画素ではないと判定することができる。例えば、計数した画素数が第3閾値以上である右辺画素が隣接して複数存在する場合、特定された右辺画素の範囲が移動体領域(例えば、車長の部分、車長方向の輪郭)となる。
検出手段は、第7特定手段及び第8特定手段で特定した右辺画素の位置に基づいて移動体の長さ(車長)を検出する。例えば、第7特定手段で特定した右辺画素の範囲(位置)と第8特定手段で特定した右辺画素の範囲(位置)の両方に共通の範囲(位置)を移動体の車長(移動体の一部)として検出する。右辺画素のうち、当該右辺画素の位置から移動体の高さ分の位置までの画素が移動体候補領域にあると判定され、かつ当該右辺画素の位置から移動体の幅分の位置までの画素が移動体候補領域にあると判定された右辺画素を特定することにより、移動体候補領域内の高さが0の位置にある右辺画素のうち、当該右辺画素の位置に対して車高分の位置及び車幅分の位置にある画素も移動体候補領域内にあると判定された右辺画素だけを特定することができるので、高さが0の移動体領域(移動体が路面に投影された画像)を構成する画素を精度良く検出することができる。
第9計数手段は、検出された長さ(車長)の下端から横方向に列状をなした(画像上で左向きのライン上に存在する)下端画素それぞれの位置から移動体の高さ方向に対応する向きに第1所定数の画素を走査して移動体候補領域内に含まれる画素数を計数する。下端画素は、例えば、車長の下端から左向きのラインが矩形領域の左辺と交差する位置までに存在する画素とすることができる。矩形領域内で探索すれば十分であるからである。
第9特定手段は、計数された画素数が第1閾値以上である下端画素の位置を特定する。計数した画素数が第1閾値以上である場合、当該下端画素は、移動体領域を構成する画素であると判定することができ、計数した画素数が第1閾値未満である場合、当該下端画素は、移動体領域を構成する画素ではないと判定することができる。例えば、計数した画素数が第1閾値以上である下端画素が隣接して複数存在する場合、特定された下端画素の範囲が移動体領域(例えば、車頭の部分、車幅方向の輪郭)となる。
第10計数手段は、検出された長さ(車長)の上端から横方向に列状をなした(画像上で左向きのライン上に存在する)上端画素それぞれの位置から移動体の高さ方向に対応する向きに第1所定数の画素を走査して移動体候補領域内に含まれる画素数を計数する。上端画素は、例えば、車長の上端から左向きのラインが矩形領域の左辺と交差する位置までに存在する画素とすることができる。矩形領域内で探索すれば十分であるからである。
第10特定手段は、計数された画素数が第1閾値以上である上端画素の位置を特定する。計数した画素数が第1閾値以上である場合、当該上端画素は、移動体領域を構成する画素であると判定することができ、計数した画素数が第1閾値未満である場合、当該上端画素は、移動体領域を構成する画素ではないと判定することができる。例えば、計数した画素数が第1閾値以上である上端画素が隣接して複数存在する場合、特定された上端画素の範囲が移動体領域(例えば、車尾の部分、車幅方向の輪郭)となる。
検出手段は、第9特定手段及び第10特定手段で特定した下端画素及び上端画素の位置に基づいて移動体の車幅を検出する。例えば、第9特定手段で特定した下端画素の範囲(左右方向の位置)と第10特定手段で特定した上端画素の範囲(上下方向の位置)の両方に共通の範囲(上下方向の位置)を移動体の車幅(移動体の一部)として検出する。下端画素のうち、当該下端画素の位置から移動体の高さ分の位置までの画素が移動体候補領域にあると判定された下端画素、かつ上端画素のうち、当該上端画素の位置から移動体の高さ分の位置までの画素が移動体候補領域にあると判定された上端画素を特定することにより、移動体候補領域内の高さが0の位置にある車幅方向に沿った下端画素及び上端画素のうち、当該下端画素及び上端画素の位置に対して車高分の位置にある画素も移動体候補領域内にあると判定された下端画素及び上端画素だけを特定することができるので、高さが0の移動体領域(移動体が路面に投影された画像)を構成する画素を精度良く検出することができる。
第7発明にあっては、第11計数手段は、移動体候補領域の一部又は全部を縦横四辺で囲む矩形領域の左辺で列状をなす左辺画素(列状画素)それぞれの位置から移動体の高さ方向に対応する向きに第1所定数の画素を走査して移動体候補領域内に含まれる画素数を計数する。第1所定数は、移動体の高さ(例えば、1.7mなど)に相当する鳥瞰画像上の画素数とすることができる。高さ方向は、以下のようにして求めることができる。すなわち、撮像画像上の路面(高さが0)上の点Bの座標をB(u1、v1)とし、点Bから移動体の高さ(H)分の位置にある点Cの座標をC(u2、v2)とする。座標B(u1、v1)を透視変換行列Pでワールド座標(Xw1、Yw1)に変換し、変換したワールド座標(Xw1、Yw1)から鳥瞰画像(変換画像)上の座標BB(x1、y1)を求める。次に、点Bに相当するワールド座標(Xw1、Yw1)から、高さHを加味した点Cに相当するワールド座標(Xw1、Yw1、H)を求め、透視変換行列Pを用いて撮像画像上の点Cの座標C(u2、v2)を求める。座標C(u2、v2)を透視変換行列Pでワールド座標(Xw2、Yw2)に変換し、変換したワールド座標(Xw2、Yw2)から鳥瞰画像(変換画像)上の座標CC(x2、y2)を求める。鳥瞰画像上の座標BBから座標CCの向きが、移動体の高さ方向を示し、座標BBと座標CCとの間の画素数が第1所定数となる。
第11特定手段は、計数された画素数が第1閾値以上である左辺画素の位置を特定する。計数した画素数が第1閾値以上である場合、当該左辺画素は、移動体領域を構成する画素であると判定することができ、計数した画素数が第1閾値未満である場合、当該左辺画素は、移動体領域を構成する画素ではないと判定することができる。例えば、計数した画素数が第1閾値以上である左辺画素が隣接して複数存在する場合、特定された左辺画素の範囲が移動体領域(例えば、車長の部分、車長方向の輪郭)となる。
第12計数手段は、矩形領域の左辺で列状をなす左辺画素それぞれの位置から右横方向に第3所定数の画素を走査して移動体候補領域内に含まれる画素数を計数する。第12特定手段は、計数された画素数が第3閾値以上である左辺画素の位置を特定する。計数した画素数が第3閾値以上である場合、当該左辺画素は、移動体領域を構成する画素であると判定することができ、計数した画素数が第3閾値未満である場合、当該左辺画素は、移動体領域を構成する画素ではないと判定することができる。例えば、計数した画素数が第3閾値以上である左辺画素が隣接して複数存在する場合、特定された左辺画素の範囲が移動体領域(例えば、車長の部分、車長方向の輪郭)となる。
検出手段は、第11特定手段及び第12特定手段で特定した左辺画素の位置に基づいて移動体の長さ(車長)を検出する。例えば、第11特定手段で特定した左辺画素の範囲(位置)と第12特定手段で特定した左辺画素の範囲(位置)の両方に共通の範囲(位置)を移動体の車長(移動体の一部)として検出する。左辺画素のうち、当該左辺画素の位置から移動体の高さ分の位置までの画素が移動体候補領域にあると判定され、かつ当該左辺画素の位置から移動体の幅分の位置までの画素が移動体候補領域にあると判定された左辺画素を特定することにより、移動体候補領域内の高さが0の位置にある左辺画素のうち、当該左辺画素の位置に対して車高分の位置及び車幅分の位置にある画素も移動体候補領域内にあると判定された左辺画素だけを特定することができるので、高さが0の移動体領域(移動体が路面に投影された画像)を構成する画素を精度良く検出することができる。
第13計数手段は、検出された長さ(車長)の下端から横方向に列状をなした(画像上で右向きのライン上に存在する)下端画素それぞれの位置から移動体の高さ方向に対応する向きに第1所定数の画素を走査して移動体候補領域内に含まれる画素数を計数する。下端画素は、例えば、車長の下端から右向きのラインが矩形領域の右辺と交差する位置までに存在する画素とすることができる。矩形領域内で探索すれば十分であるからである。
第13特定手段は、計数された画素数が第1閾値以上である下端画素の位置を特定する。計数した画素数が第1閾値以上である場合、当該下端画素は、移動体領域を構成する画素であると判定することができ、計数した画素数が第1閾値未満である場合、当該下端画素は、移動体領域を構成する画素ではないと判定することができる。例えば、計数した画素数が第1閾値以上である下端画素が隣接して複数存在する場合、特定された下端画素の範囲が移動体領域(例えば、車頭の部分、車幅方向の輪郭)となる。
第14計数手段は、検出された長さ(車長)の上端から横方向に列状をなした(画像上で右向きのライン上に存在する)上端画素それぞれの位置から移動体の高さ方向に対応する向きに第1所定数の画素を走査して移動体候補領域内に含まれる画素数を計数する。上端画素は、例えば、車長の上端から右向きのラインが矩形領域の右辺と交差する位置までに存在する画素とすることができる。矩形領域内で探索すれば十分であるからである。
第14特定手段は、計数された画素数が第1閾値以上である上端画素の位置を特定する。計数した画素数が第1閾値以上である場合、当該上端画素は、移動体領域を構成する画素であると判定することができ、計数した画素数が第1閾値未満である場合、当該上端画素は、移動体領域を構成する画素ではないと判定することができる。例えば、計数した画素数が第1閾値以上である上端画素が隣接して複数存在する場合、特定された上端画素の範囲が移動体領域(例えば、車尾の部分、車幅方向の輪郭)となる。
検出手段は、第13特定手段及び第14特定手段で特定した下端画素及び上端画素の位置に基づいて移動体の幅(車幅)を検出する。例えば、第13特定手段で特定した下端画素の範囲(左右方向の位置)と第14特定手段で特定した上端画素の範囲(上下方向の位置)の両方に共通の範囲(上下方向の位置)を移動体の車幅(移動体の一部)として検出する。下端画素のうち、当該下端画素の位置から移動体の高さ分の位置までの画素が移動体候補領域にあると判定された下端画素、かつ上端画素のうち、当該上端画素の位置から移動体の高さ分の位置までの画素が移動体候補領域にあると判定された上端画素を特定することにより、移動体候補領域内の高さが0の位置にある車幅方向に沿った下端画素及び上端画素のうち、当該下端画素及び上端画素の位置に対して車高分の位置にある画素も移動体候補領域内にあると判定された下端画素及び上端画素だけを特定することができるので、高さが0の移動体領域(移動体が路面に投影された画像)を構成する画素を精度良く検出することができる。
第8発明にあっては、検出した幅(車幅)及び長さ(車長)に基づいて移動体の存在領域を特定する。検出した車幅及び車長により囲まれる領域が移動体の存在領域である。これにより、例えば、道路上の計測領域(例えば、感知ループ)に移動体が存在するか否かを精度良く判定することができる。
第9発明にあっては、検出した幅(車幅)及び長さ(車長)に基づいて車種を判定する。例えば、車幅が2.4m以上であって車長が6m以上の車両は大型と判定することができ、車幅が2.4m未満又は車長が6m未満の車両は小型と判定することができる。
本発明によれば、移動体を路面に投影した高さがゼロの領域を検出することができるので、隣接車線に重なることなく、従来よりもさらに精度良く移動体を検出することができる。
以下、本発明を実施の形態を示す図面に基づいて説明する。図1は本実施の形態の移動体検出システムの構成の一例を示すブロック図である。移動体検出システムは、移動体検出装置100及び撮像装置200などを備える。なお、撮像装置200は、複数備える構成でもよい。移動体検出装置100は、装置全体を制御する制御部101、インタフェース部102、鳥瞰画像生成部103、移動体候補領域抽出部104、画素計数部105、画素位置特定部106、移動体検出部107、移動体存在領域特定部108、移動体種別判定部109、記憶部110などを備える。なお、移動体検出装置100は、撮像装置200と一体をなす構成であってもよい。
撮像装置200は、例えば、ビデオカメラ又はカメラであり、道路を視野として、所定の高さ、レンズの光軸方向(例えば、俯角及び回転角)などの撮像条件が設定された状態で道路付近の所要の地点に設置してある。撮像装置200は、撮像して得られた撮像データを映像信号(アナログ信号)としてインタフェース部102へ送出する。
インタフェース部102は、入力された映像信号をデジタル信号に変換し、変換したデジタル信号を撮像画像(入力画像データ)として記憶部110に記憶する。インタフェース部102を介して撮像装置200から入力された撮像画像は、撮像装置200のフレームレート(撮像時点の間隔、例えば、1秒間に30フレーム)と同期して、1フレーム単位の画像データとして記憶部110に記憶される。
図2は撮像画像の一例を示す説明図である。図2の例では、撮像装置200を道路の路肩近傍から所要の高さに設けてあり、道路を走行する車両の左前方から車両を撮像する。なお、撮像装置200の設置個所は、図2の例に限定されるものではなく、また、道路を走行する車両の右前方から車両を撮像してもよく、あるいは車両の進行方向前方から撮像することもできる。
図2中、破線で示した矩形状の領域Sは、後述の透視変換行列により鳥瞰画像(変換画像)に変換される領域を示す。また、撮像画像の右下を原点として撮像画像の座標を座標(u、v)で表す。撮像画像の限定は図2の例に限定されない。また、撮像画像の大きさ(サイズ)は、例えば、240×320画素であるが、撮像画像の大きさはこれに限定されるものではない。
鳥瞰画像生成部103は、撮像画像を鳥瞰画像に変換する変換手段としての機能を有する。鳥瞰画像生成部103は、透視変換行列Pを用いて撮像画像を複数の画素で構成される鳥瞰画像に変換する。
図3は鳥瞰画像の一例を示す説明図である。図3に示すように、鳥瞰画像は、路面を真上から見た画像である。鳥瞰画像の右下を原点として鳥瞰画像の座標を座標(x、y)で表す。鳥瞰画像は、図1の撮像画像のうち、破線Sで示した範囲を真上から見た画像に射影変換したものである。図3においては、実線の領域で示すように、図1の撮像画像上での車両、路面の白線、影などが変換されて映っている。また、図3において、破線Pで示した範囲は、車両などの移動体の存在を計測する計測領域(例えば、感知ループ)である。なお、本実施の形態では、鳥瞰画像を変換画像とも称する。
透視変換行列による画像変換について説明する。なお、透視変換行列は透視投影行列とも称する。また変換は射影変換とも称する。撮像画像の座標を(u、v)とし、その行列を式(1)のようにMで表す。
また、ワールド座標を(Xw、Yw、Zw)とし、その行列を式(2)のようにWで表す。透視変換行列をPとすると、式(3)のようにM=P・Wの関係を有する。ここで、透視変換行列Pは、式(4)で示すように、(3×3)の行列であり、透視変換行列Pの各要素は、ビデオカメラ(撮像装置)の設置高さ、ビデオカメラの張り出し長、ビデオカメラ下から車両の検出(計測)領域の位置(距離)などを計測することにより算出することができる。
鳥瞰画像は、道路を真上から見た画像であり、鳥瞰画像の座標を(x、y)とし、その行列を式(5)のようにVで表す。鳥瞰画像の座標(x、y)については、式(6)で表すように、x=K・Xw、y=K・Ywの関係が成り立つ。ここで、Kは適宜設定される係数である。すなわち、撮像画像(u、v)から透視変換行列Pを用いてワールド座標(Xw、Yw、Zw)を求め、Xw、Ywから鳥瞰画像(x、y)を求めることができる。
移動体候補領域抽出部104は、鳥瞰画像上で移動体候補領域を抽出する抽出手段としての機能を有し、鳥瞰画像の画素値に基づいて、鳥瞰画像上で移動体候補領域を抽出する。鳥瞰画像には、車両などの移動体以外に路面、白線、影などの情報も含まれているので、これらの車両以外の情報は除外する。なお、移動体候補領域は、車両候補領域とも称する。
図4は鳥瞰画像上で抽出された移動体候補領域の一例を示す説明図である。図4において、符号Vで示される領域が移動体候補領域であり、図3の鳥瞰画像と比較すると、路面上の白線、影などが除外されていることが分かる。
移動体候補領域の抽出には、例えば、画像上の注目画素とその周辺画素との画素値の差分を符号化した周辺増分符号を用いた画像処理、背景画像との差分を用いる画像処理、時間経過の変化の時間差分を用いる画像処理などを用いて、移動体候補領域を抽出することができる。鳥瞰座標(x、y)は、ワールド座標において高さZw=0であるので、移動体候補領域は、道路の路面上に投影された移動体の候補領域である。以下、一例として、周辺増分符号を用いた例について説明する。
図5は鳥瞰画像の一部を示す説明図であり、図6は注目画素を含む周辺画素の輝度値の一例を示す説明図であり、図7は注目画素の周辺増分符号の算出例を示す説明図であり、図8は注目画素の周辺増分符号を模式的に表した説明図である。図5は、図2に示す鳥瞰画像の一部を取り出したものである。図中、斜線部は路面であり、白抜きの部分は路面に描かれた図柄の一部である。また、図5中の中央の画素を注目画素とする。
図6は、注目画素とその周辺画素の輝度値を示す。図6の例では、周辺画素は、注目画素に隣接する8画素(注目画素を中心とする3×3画素から注目画素を除いた画素)である。輝度値は、例えば、0から255までの数値で表すことができ、数値が大きいほど輝度が高い。図6の例では、注目画素の輝度値が140であり、その周辺画素の輝度値は、右隣接画素から反時計周りの順に、217、216、110、134、129、130、119、211である。なお、輝度値は一例であって、これに限定されるものではない。
周辺増分符号の算出は、注目画素の輝度値と、注目画素の8近傍の周辺画素の輝度値とを比較し、それぞれの周辺画素の輝度値aが、注目画素の輝度値wとの間で、w+α<aであれば、その周辺画素の位置に対応する符号成分を1(有効)とする。また、w+α≧aであれば、その周辺画素の位置に対応する符号成分を0(無効)とする。ここで、αは差分閾値であって適宜設定することができ、例えば、α=20とすることができる。
上述の算出方法に従った場合、図6の例で示す注目画素の周辺増分符号は、図7に示すようになる。すなわち、注目画素の8近傍の周辺画素を右隣接画素から反時計周りの順に、A1、A2、…A8とする。図6及び図7から、周辺画素A1の輝度値aは217であり、注目画素wの輝度値は140であるから、w+α<aの関係を満たす。従って、周辺画素A1に対応する符号成分は1(有効)となる。同様にして他の周辺画素の符号成分を求めると、注目画素の周辺増分符号(A8 A7 …A1)は、(11000001)となり、8ビットの情報を用いて符号化したものとなる。8ビットの二進符号を10進符号に変換することで、周辺増分符号は、193として表すこともできる。
図7に示すように、8近傍の周辺画素のうち、右隣の周辺画素A1と、右上及び右下の周辺画素A8の符号成分が1(有効)であるので、これを模式的に表すと、図8のようになる。すなわち、周辺増分符号を、注目画素を中心として、符号成分が有効である周辺画素の方向に放射状に伸びた線分で表すこともできる。このようにして、撮像画像上の注目画素を順番に走査することで、撮像画像上のすべての画素を符号化することができる。
上述のように、撮像画像差分符号としての周辺増分符号は、注目画素とその周辺の各周辺画素との差分(輝度値の差分)の大小に応じた有効又は無効を示す符号成分を有する。そして、差分の符号化は、周辺画素のそれぞれに対応させて、差分(a−w)が所定の差分閾値αより大きい場合には、有効(例えば、1)、差分(a−w)が差分閾値α以下の場合には、無効(例えば、0)というようにすることができる。なお、上述の例では、差分(a−w)を増分として符号化したものであるが、これに限定されるものではなく、差分(w−a)を減分として符号化することもできる。
記憶部110は、背景画像差分符号としてのマスク符号を記憶している。マスク符号は、周辺増分符号と同様の方法で生成することができる。すなわち、マスク符号は、車両が存在しないときに撮像された背景画像の任意の画素毎に、当該任意の画素とその周辺の周辺画素との画素値の差分を符号化したものである。そして、マスク符号は、周辺増分符号と同様に、任意の画素と各周辺画素との差分の大小に応じた有効又は無効を示す符号成分を有する。
移動体候補領域抽出部104は、注目画素の周辺増分符号(撮像画像周辺差分符号)を、当該注目画素に対応する背景画像上の画素のマスク符号(背景画像周辺差分符号)でマスク処理する。以下、マスク処理の方法について説明する。
図9はマスク処理の一例を示す説明図である。図9Aは入力画像(鳥瞰画像)の周辺増分符号の一例を示し、図9Bは背景画像(マスク符号画像)のマスク符号の一例を示し、図9Cはマスク処理後画像の周辺増分符号を示す。また、図中、各画素に記載された放射状の線分は、図8で例示した周辺増分符号を模式化したものである。図9の例では、入力画像(鳥瞰画像)注目画素の周辺増分符号の有効成分と、当該注目画素に対応する背景画像上の画素のマスク符号の有効成分とがすべて同一である場合(完全一致に相当する)、当該有効成分をすべて除去して、入力画像の各注目画素の周辺増分符号をマスク処理する。例えば、8個の符号成分を(A8、A7、…A1)とした場合に、周辺増分符号の有効成分をA4、A3、A2、A1とし、マスク符号の有効成分をA4、A3、A2としたときには、両者の有効成分がすべて一致しないので、周辺増分符号は除去されず、マスク処理を行った後のマスク処理後撮像画像周辺差分符号の有効成分は、A4、A3、A2、A1すべてが残る。これにより、鳥瞰画像の特徴量である周辺増分符号が除去されにくくなり、マスク処理後の移動体の特徴量を残すことができ、精度良く移動体候補領域を抽出することができる。
図10は移動体候補領域の抽出方法の一例を示す説明図である。図10は便宜上、鳥瞰画像の一部を示し、図10において、升目の1つは画素を示す。また、横線が付された画素は、周辺増分符号が除去されずに残存している画素を示す。移動体候補領域抽出部104は、鳥瞰画像内の画素のうち、周辺増分符号が除去されずに残存する画素の数に応じて、移動体候補領域を抽出する。例えば、図10に示すように、周辺増分符号が残っている画素は、移動体候補領域であるとし、周辺増分符号が残っていない画素は、移動体候補領域ではないと判定し、周辺増分符号が残っている画素を連結して移動体候補領域を抽出する。
このように、本実施の形態のマスク処理は、入力画像(鳥瞰画像)中に、背景と考えられる周辺増分符号が存在する場合に、当該周辺増分符号を除外(無効、又は有効でないものと)する。背景画像そのものではなく背景画像のマスク符号を用いることにより、従来の差分処理に比べて、車両などの移動体の検出の精度が向上する。
移動体検出部107は、移動体を検出する検出手段としての機能を有し、移動体候補領域抽出部104で抽出された移動体候補領域の境界の近傍で列状をなした列状画素それぞれの位置から所定の向きで走査した所定数の画素のうち、移動体候補領域内に含まれる画素数に基づいて、列状画素を移動体の一部として検出する。
移動体候補領域の境界は、必ずしも直線状ではなく、複数の線分及び曲線で構成される。そこで、例えば、移動体候補領域の全部又は大部分を縦横四辺で囲む矩形状の矩形領域を設定し、矩形領域の境界上で縦(上下)又は横(左右)に列状をなした列状画素を特定する。矩形領域とするのは、路面を上から見た鳥瞰画像上では車両などの移動体の輪郭は矩形状(例えば、長方形)をなすからである。また、所定の向きは、移動体の形状を三次元モデルとして、移動体の高さ方向(鳥瞰画像では斜め上方向)、移動体の長さ方向(鳥瞰画像では縦上方向)、移動体の幅方向(鳥瞰画像では横左右方向)となる。また、所定数の画素は、例えば、移動体の高さ、長さ及び幅に相当する鳥瞰画像上の画素数である。
例えば、列状画素から移動体の高さ方向(車高方向とも称する)に沿って車高相当の画素数(又は鳥瞰画像上の距離)の画素を走査(探索)し、移動体候補領域内に存在する画素数を計数する。計数した画素数が所定の閾値以上である場合、当該列状画素は移動体を構成する(例えば、移動体の輪郭の一部の)画素であると判定することができる。
同様に、列状画素から移動体の長さ方向(車長方向とも称する)に沿って車長相当の画素数(又は画像上の距離)の画素を走査(探索)し、移動体候補領域内に存在する画素数を計数する。計数した画素数が所定の閾値以上である場合、当該列状画素は移動体を構成する(例えば、移動体の輪郭の一部の)画素であると判定することができる。
また、列状画素から移動体の幅方向(車幅方向とも称する)に沿って車幅相当の画素数(又は画像上の距離)の画素を走査(探索)し、移動体候補領域内に存在する画素数を計数する。計数した画素数が所定の閾値以上である場合、当該列状画素は移動体を構成する(例えば、移動体の輪郭の一部の)画素であると判定することができる。
上述のようにして移動体の一部であるとして検出された列状画素が複数隣接して存在する場合、移動体の幅方向(横方向、左右方向)、長さ方向(縦方向、上下方向)の範囲(寸法)を検出することができ、移動体を路面に投影した高さがゼロの領域を検出することができるので、隣接車線に重なることなく、従来よりもさらに精度良く移動体を検出することができる。
以下、移動体の検出方法について説明する。移動体の検出処理は、抽出された移動体候補領域の中から移動体(車両)の範囲を決定するための処理であり、(1)車両の高さ方向の算出、(2)有効車幅の算出、(3)有効車長の算出などの処理を含む。
まず、車両の高さ方向の算出について説明する。車両の高さ方向の算出とは、高さが0(路面上)の点(鳥瞰画像上の点)に対する車高分の位置にある点(鳥瞰画像上の点)の座標を算出することである。なお、車両の高さ方向を算出するのは、前述のように、列状画素から移動体の高さ方向に沿って車高相当の画素数の画素を走査(探索)するので、走査(探索)の方向と終点を特定するためである。なお、車両の高さ方向の算出は、移動体検出部107で行うことができる。
図11は車両の高さ方向の算出方法の一例を示す模式図である。図11に示すように、座標(u、v)で表される撮像画像と、撮像画像を変換し、座標(x、y)で表される鳥瞰画像を模式的に示す。撮像画像上では、一例として車両が映っている。撮像画像上で点Bは車両の高さが0の位置を示す点であり、点Cは、点Bに対して車高分の位置を示す。また、撮像画像上の点B、Cに対応する鳥瞰画像上の点をBB、CCとする。車両の高さ方向の算出とは、点BBの座標が分かっているときに、点CCの座標を求めることである。以下、その方法を説明する。
図11に示すように、撮像画像上の点B(u1、v1)は、投影変換行列Pによりワールド座標(Xw1、Yw1)に変換することができる。点Bは高さが0であるので、ワールド座標の高さ成分Zw1は0となる。そして、ワールド座標(Xw1、Yw1)から鳥瞰画像上の点BB(x1、y1)を求めることができる。
次に点Cの座標を求めるため、ワールド座標(Xw1、Yw1)をワールド座標(Xw1、Yw1、H)とする。Hは、車高分の高さであり、例えば、1.7mである。ワールド座標(Xw1、Yw1、H)は、投影変換行列Pにより撮像画像上の点C(u2、v2)に変換することができる。
そして、撮像画像上の点C(u2、v2)は、投影変換行列Pによりワールド座標(Xw2、Yw2、Zw2)に変換することができ、ワールド座標(Xw2、Yw2)から鳥瞰画像上の点CC(x2、y2)を求めることができる。このようにして、鳥瞰画像上の任意の点の座標に対する車高分の位置の座標を求めることができる。
次に、有効車幅の算出方法について説明する。画素計数部105は、列状画素(例えば、下辺画素、左辺画素、右辺画素、上端画素、下端画素、左端画素、右端画素など)それぞれの位置から所定の向き(例えば、車高方向、車長方向、車幅方向など)で走査(探索)した所定数の画素のうち移動体候補領域内に含まれる画素数を計数する計数手段としての機能を有する。
画素位置特定部106は、画素計数部105で、それぞれの列状画素について画素数を計数した結果、計数された画素数が所定の閾値以上である列状画素の位置(範囲)を特定する特定手段としての機能を有する。
図12は下辺画素から車高方向へ画素を計数する一例を示す模式図であり、図13は下辺画素から車長方向へ画素を計数する一例を示す模式図である。図12及び図13に示す処理により有効車幅を算出することができる。図12及び図13においては、移動体候補領域を便宜上、図示のように簡略化している。また、移動体候補領域の全部を囲むように矩形領域を設定する。なお、矩形領域は、移動体候補領域の全部ではなく、一部(大部分)を囲むように設定することもできる。
図12に示すように、画素計数部105は、矩形領域の下辺で列状をなす下辺画素(列状画素)それぞれの位置から移動体の高さ方向に対応する向きに第1所定数の画素を走査して、移動体候補領域内に含まれる画素数を計数する。図12の例では、便宜上、下辺画素をG1、G2、…、G9の9画素とした。第1所定数は、移動体の高さ(例えば、1.7mなど)に相当する鳥瞰画像上の画素数とすることができる。高さ方向は、前述の図11に例示した方法で求めることができる。すなわち、図11において、鳥瞰画像上の座標BBから座標CCの向きが、移動体の高さ方向を示し、座標BBと座標CCとの間の画素数が第1所定数となる。
画素位置特定部106は、計数された画素数が第1閾値以上である下辺画素の位置を特定する。計数した画素数が第1閾値以上である場合、当該下辺画素は、移動体領域を構成する画素であると判定することができ、計数した画素数が第1閾値未満である場合、当該下辺画素は、移動体領域を構成する画素ではないと判定することができる。第1閾値は、車高方向に対応する方向に画素を走査(探索)する場合の閾値であり、例えば、第1所定数の80%、あるいは計数された画素数の平均値の80%、あるいは両方の条件を満足する値とすることができる。
例えば、計数した画素数が第1閾値以上である下辺画素が隣接して複数存在する場合、特定された下辺画素の範囲が移動体領域(例えば、車頭の部分、車幅方向の輪郭)となる。図12の例では、下辺画素G1、…、G9のうち、計数した画素数が第1閾値以上である下辺画素がG4、G5、…、G9であるとすると、下辺画素G4〜G9で構成される線分を車両の輪郭の一部(車幅)として検出することができる。
次に、図13に示すように、画素計数部105は、矩形領域の下辺画素それぞれの位置から移動体の長さ方向に対応する向き(画像上縦上向き)に第2所定数の画素を走査して、移動体候補領域内に含まれる画素数を計数する。第2所定数は、移動体の長さ(例えば、4.3mなど)に相当する鳥瞰画像上の画素数とすることができる。
画素位置特定部106は、計数された画素数が第2閾値以上である下辺画素の位置を特定する。計数した画素数が第2閾値以上である場合、当該下辺画素は、移動体領域を構成する画素であると判定することができる。第2閾値は、車長方向に対応する方向に画素を走査(探索)する場合の閾値であり、例えば、第2所定数の80%、あるいは計数された画素数の平均値の80%、あるいは両方の条件を満足する値とすることができる。
例えば、計数した画素数が第2閾値以上である下辺画素が隣接して複数存在する場合、特定された下辺画素の範囲が移動体領域(例えば、車頭の部分、車幅方向の輪郭)となる。図13の例では、下辺画素G1、…、G9のうち、計数した画素数が第2閾値以上である下辺画素がG3、G5、…、G8であるとすると、下辺画素G3〜G8で構成される線分を車両の輪郭の一部(車幅)として検出することができる。
移動体検出部107は、画素位置特定部106で特定した下辺画素の位置に基づいて移動体の幅(車幅)を検出する。例えば、図12に例示するように車高方向に沿って走査(探索)することにより特定された下辺画素の範囲(位置)と、図13に示すように車長方向に沿って走査(探索)することにより特定された下辺画素の範囲(位置)との両方に共通の範囲(位置)を移動体の車幅(移動体の一部)として検出する。図12では、G4〜G9が有効な範囲として特定され、図13ではG3〜G8が有効な範囲として特定されているので、両者で共通の範囲であるG4〜G8が車両の車幅であると検出することができる。
下辺画素のうち、当該下辺画素の位置から移動体の高さ分の位置までの画素が移動体候補領域にあると判定され、かつ当該下辺画素の位置から移動体の長さ分の位置までの画素が移動体候補領域にあると判定された下辺画素を特定することにより、移動体候補領域内の高さが0の位置にある下辺画素のうち、当該下辺画素の位置に対して車高分の位置及び車長分の位置にある画素も移動体候補領域内にあると判定された下辺画素だけを特定することができるので、高さが0の移動体領域(移動体が路面に投影された画像)を構成する画素を精度良く検出することができる。
次に、有効車長の算出方法について説明する。有効車長の算出には、図12、図13で求めた有効車幅を用いる。
図14は右端画素から車高方向へ画素を計数する一例を示す模式図であり、図15は左端画素から車高方向へ画素を計数する一例を示す模式図である。図14及び図15において、移動体候補領域及び矩形領域は、図12及び図13において例示したものと同一である。
図14に示すように、画素計数部105は、図12及び図13で例示した処理により検出された幅(車幅)の右端から縦方向に列状をなした(画像上で上向きのライン上に存在する)右端画素それぞれの位置から移動体の高さ方向に対応する向きに第1所定数の画素を走査して移動体候補領域内に含まれる画素数を計数する。右端画素は、例えば、車幅の右端から上向きのラインが矩形領域の上辺と交差する位置までに存在する画素とすることができる。矩形領域内で探索すれば十分であるからである。高さ方向及び第1所定数は、図12及び図13で例示した処理と同様である。
画素位置特定部106は、計数された画素数が第1閾値以上である右端画素の位置を特定する。計数した画素数が第1閾値以上である場合、当該右端画素は、移動体領域を構成する画素であると判定することができ、計数した画素数が第1閾値未満である場合、当該右端画素は、移動体領域を構成する画素ではないと判定することができる。
例えば、計数した画素数が第1閾値以上である右端画素が隣接して複数存在する場合、特定された右端画素の範囲が移動体領域(例えば、車長の部分、車長方向の輪郭)となる。図14の例では、右端画素G1、…、G11のうち、計数した画素数が第1閾値以上である右端画素がG1、G2、…、G8であるとすると、右端画素G1〜G8で構成される線分を車両の輪郭の一部(車長)として検出することができる。
次に、図15に示すように、画素数計数部105は、検出された車幅(車頭幅)の左端から縦方向に列状をなした(画像上で上向きのライン上に存在する)左端画素それぞれの位置から移動体の高さ方向に対応する向きに第1所定数の画素を走査して移動体候補領域内に含まれる画素数を計数する。左端画素は、例えば、車幅の左端から上向きのラインが矩形領域の上辺と交差する位置までに存在する画素とすることができる。矩形領域内で探索すれば十分であるからである。
画素位置特定部106は、計数された画素数が第1閾値以上である左端画素の位置を特定する。計数した画素数が第1閾値以上である場合、当該左端画素は、移動体領域を構成する画素であると判定することができ、計数した画素数が第1閾値未満である場合、当該左端画素は、移動体領域を構成する画素ではないと判定することができる。
例えば、計数した画素数が第1閾値以上である左端画素が隣接して複数存在する場合、特定された左端画素の範囲が移動体領域(例えば、車長の部分、車長方向の輪郭)となる。図15の例では、左端画素G1、…、G11のうち、計数した画素数が第1閾値以上である左端画素がG1、G2、…、G9であるとすると、左端画素G1〜G9で構成される線分を車両の輪郭の一部(車長)として検出することができる。
移動体検出部107は、画素位置特定部106で特定した右端画素及び左端画素の位置に基づいて移動体の長さ(車長)を検出する。例えば、図14に例示するように車高方向に沿って走査(探索)することにより特定された右端画素の範囲(位置)と、図15に示すように、車高方向に沿って走査(探索)することにより特定された左端画素の範囲(位置)との両方に共通の範囲(位置)を移動体の車幅(移動体の一部)として検出する。図14では、G1〜G8が有効な範囲として特定され、図15ではG1〜G9が有効な範囲として特定されているので、両者で共通の範囲であるG1〜G8が車両の車長であると検出することができる。
右端画素のうち、当該右端画素の位置から移動体の高さ分の位置までの画素が移動体候補領域にあると判定された右端画素、かつ左端画素のうち、当該左端画素の位置から移動体の高さ分の位置までの画素が移動体候補領域にあると判定された左端画素を特定することにより、移動体候補領域内の高さが0の位置にある車長方向に沿った右端画素及び左端画素のうち、当該右端画素及び左端画素の位置に対して車高分の位置にある画素も移動体候補領域内にあると判定された右端画素及び左端画素だけを特定することができるので、高さが0の移動体領域(移動体が路面に投影された画像)を構成する画素を精度良く検出することができる。
移動体存在領域特定部108は、検出された幅(車幅)及び長さ(車長)に基づいて移動体の存在領域を特定する。図16は本実施の形態の移動体検出装置100により特定された車両領域の一例を示す説明図である。図16に示すように、車両領域(移動体領域)は、検出した車幅及び車長により囲まれる領域であり、当該領域が移動体の存在領域である。これにより、例えば、道路上の計測領域(例えば、感知ループ)に移動体が存在するか否かを精度良く判定することができる。
移動体種別判定部109は、検出された幅(車幅)及び長さ(車長)に基づいて車種を判定する。例えば、車幅が2.4m以上であって車長が6m以上の車両は大型と判定することができ、車幅が2.4m未満又は車長が6m未満の車両は小型と判定することができる。なお、車種の判定条件は、上述の例に限定されるものではない。
次に、本実施の形態の移動体検出装置100の動作について説明する。図17及び図18は本実施の形態の移動体検出装置100の移動体検出の第1例の処理手順を示すフローチャートである。以下の説明では便宜上、処理の主体を制御部101として説明する。
制御部101は、撮像画像を取得し(S11)、取得した撮像画像を鳥瞰画像に変換する(S12)。制御部101は、鳥瞰画像上で車両候補領域(移動体候補領域)を抽出し(S13)、抽出した車両候補領域を囲む矩形領域を設定する(S14)。
制御部101は、矩形領域の下辺の各画素(下辺画素)から車高方向に所定数の画素を走査(探索)して車両候補領域内の画素数を計数する(S15)。制御部101は、矩形領域の下辺の各画素(下辺画素)から車長方向に所定数の画素を走査(探索)して車両候補領域内の画素数を計数する(S16)。
制御部101は、車高方向及び車長方向それぞれの車両候補領域内の画素数が所定の閾値(第1閾値及び第2閾値)以上である下辺の画素(下辺画素)の範囲を車幅として検出する(S17)。
制御部101は、検出した車幅の右端から画像上で縦上方に沿った右端ラインの各画素(右端画素)から車高方向に所定数の画素を走査して車両候補領域内の画素数を計数する(S18)。制御部101は、検出した車幅の左端から画像上で縦上方に沿った左端ラインの各画素(左端画素)から車高方向に所定数の画素を走査して車両候補領域内の画素数を計数する(S19)。
制御部101は、車高方向の車両候補領域内の画素数が所定の閾値以上である右端ライン及び左端ラインの画素(右端画素及び左端画素)の範囲を車長として検出する(S20)。制御部101は、検出した車幅及び車長に基づいて、車両領域を特定するとともに(S21)、車種を判定し(S22)、処理を終了する。
移動体検出装置100は、CPU、RAMなどを備えた汎用コンピュータを用いて実現することもできる。すなわち、図17及び図18に示すような、各処理手順を定めたコンピュータプログラムをDVDなどの記録媒体に記録しておく。そして、当該記録媒体に記録したコンピュータプログラムを光ディスク装置等で読み込ませることにより、コンピュータに備えられたRAMにロードし、コンピュータプログラムをCPUで実行することにより、コンピュータ上で移動体検出装置を実現することができる。
上述の図12〜図15で例示した処理(第1例)は、矩形領域の下辺に存在する下辺画素から車高方向及び車長方向に走査(探索)して車幅を検出し、検出した車幅の右端ライン上に存在する右端画素及び検出した車幅の左端ライン上に存在する左端画素から車高方向に走査(探索)して車長を検出するものであったが、車幅及び車長の検出方法は、これに限定されるものではない。以下、他の例について説明する。
第2例は、第1例と異なり、矩形領域の下辺で列状をなす下辺画素から車高方向及び車長方向に走査(探索)して車幅を検出し、検出した車幅の右端ライン上に存在する右端画素から車高方向及び車幅方向に走査(探索)して車長を検出するものである。
図19は下辺画素から車高方向へ画素を計数する一例を示す模式図であり、図20は下辺画素から車長方向へ画素を計数する一例を示す模式図である。図19は図12と同一であり、図20は図13と同様であるので、車幅の検出方法の説明は省略する。
図19及び図20の場合も図12及び図13の場合と同様に、移動体検出部107は、画素位置特定部106で特定した下辺画素の位置に基づいて移動体の車幅を検出する。例えば、図19に例示するように車高方向に沿って走査(探索)することにより特定された下辺画素の範囲(位置)と、図20に示すように車長方向に沿って走査(探索)することにより特定された下辺画素の範囲(位置)との両方に共通の範囲(位置)を移動体の車幅(移動体の一部)として検出する。図19では、G4〜G9が有効な範囲として特定され、図20ではG3〜G8が有効な範囲として特定されているので、両者で共通の範囲であるG4〜G8が車両の車幅であると検出することができる。
図21は右端画素から車高方向へ画素を計数する一例を示す模式図であり、図22は右端画素から車幅方向へ画素を計数する一例を示す模式図である。図21及び図22において、移動体候補領域及び矩形領域は、図19及び図20において例示したものと同一である。
図21に示すように、画素計数部105は、図12及び図13で例示した処理により検出された幅(車幅)の右端から縦方向に列状をなした(画像上で上向きのライン上に存在する)右端画素それぞれの位置から移動体の高さ方向に対応する向きに第1所定数の画素を走査して移動体候補領域内に含まれる画素数を計数する。右端画素は、例えば、車幅の右端から上向きのラインが矩形領域の上辺と交差する位置までに存在する画素とすることができる。矩形領域内で探索すれば十分であるからである。高さ方向及び第1所定数は、図12及び図13で例示した処理と同様である。
画素位置特定部106は、計数された画素数が第1閾値以上である右端画素の位置を特定する。計数した画素数が第1閾値以上である場合、当該右端画素は、移動体領域を構成する画素であると判定することができ、計数した画素数が第1閾値未満である場合、当該右端画素は、移動体領域を構成する画素ではないと判定することができる。
例えば、計数した画素数が第1閾値以上である右端画素が隣接して複数存在する場合、特定された右端画素の範囲が移動体領域(例えば、車長の部分、車長方向の輪郭)となる。図21の例では、右端画素G1、…、G11のうち、計数した画素数が第1閾値以上である右端画素がG1、G2、…、G8であるとすると、右端画素G1〜G8で構成される線分を車両の輪郭の一部(車長)として検出することができる。
次に、図22に示すように、画素計数部105は、検出された車幅の右端から縦方向に列状をなした(画像上で上向きのライン上に存在する)右端画素それぞれの位置から左横方向に第3所定数の画素を走査して移動体候補領域内に含まれる画素数を計数する。第3所定数は、移動体の幅(例えば、1.8mなど)に相当する鳥瞰画像上の画素数とすることができる。
画素位置特定部106は、計数された画素数が第3閾値以上である右端画素の位置を特定する。計数した画素数が第3閾値以上である場合、当該右端画素は、移動体領域を構成する画素であると判定することができ、計数した画素数が第3閾値未満である場合、当該右端画素は、移動体領域を構成する画素ではないと判定することができる。
例えば、計数した画素数が第3閾値以上である右端画素が隣接して複数存在する場合、特定された右端画素の範囲が移動体領域(例えば、車長の部分、車長方向の輪郭)となる。図22の例では、右端画素G1、…、G11のうち、計数した画素数が第3閾値以上である右端画素がG1、G2、…、G9であるとすると、右端画素G1〜G9で構成される線分を車両の輪郭の一部(車長)として検出することができる。
移動体検出部107は、画素位置特定部106で特定した右端画素の位置に基づいて移動体の車長を検出する。例えば、図21に例示するように車高方向に沿って走査(探索)することにより特定された右端画素の範囲(位置)と、図22に示すように、車幅方向に沿って走査(探索)することにより特定された右端画素の範囲(位置)との両方に共通の範囲(位置)を移動体の車幅(移動体の一部)として検出する。図21では、G1〜G8が有効な範囲として特定され、図22ではG1〜G9が有効な範囲として特定されているので、両者で共通の範囲であるG1〜G8が車両の車長であると検出することができる。
右端画素のうち、当該右端画素の位置から移動体の高さ分の位置までの画素が移動体候補領域にあると判定され、かつ当該右端画素の位置から移動体の車幅分の位置までの画素が移動体候補領域にあると判定された右端画素を特定することにより、移動体候補領域内の高さが0の位置にある右端画素のうち、当該右端画素の位置に対して車高分の位置及び車幅分の位置にある画素も移動体候補領域内にある右端画素だけを特定することができるので、高さが0の移動体領域(移動体が路面に投影された画像)を構成する画素を精度良く検出することができる。
図23及び図24は本実施の形態の移動体検出装置100の移動体検出の第2例の処理手順を示すフローチャートである。以下の説明では便宜上、処理の主体を制御部101として説明する。
制御部101は、撮像画像を取得し(S31)、取得した撮像画像を鳥瞰画像に変換する(S32)。制御部101は、鳥瞰画像上で車両候補領域(移動体候補領域)を抽出し(S33)、抽出した車両候補領域を囲む矩形領域を設定する(S34)。
制御部101は、矩形領域の下辺の各画素(下辺画素)から車高方向に所定数の画素を走査(探索)して車両候補領域内の画素数を計数する(S35)。制御部101は、矩形領域の下辺の各画素(下辺画素)から車長方向に所定数の画素を走査(探索)して車両候補領域内の画素数を計数する(S36)。
制御部101は、車高方向及び車長方向それぞれの車両候補領域内の画素数が所定の閾値(第1閾値、第2閾値)以上である下辺の画素(下辺画素)の範囲を車幅として検出する(S37)。
制御部101は、検出した車幅の右端から画像上で縦上方に沿った右端ラインの各画素(右端画素)から車高方向に所定数の画素を走査して車両候補領域内の画素数を計数する(S38)。制御部101は、前述の右端ラインの各画素(右端画素)から車幅方向(横左向き)に所定数の画素を走査して車両候補領域内の画素数を計数する(S39)。
制御部101は、車高方向及び車幅方向の車両候補領域内の画素数が所定の閾値以上(第1閾値及び第3閾値)である右端ラインの画素(右端画素)の範囲を車長として検出する(S40)。制御部101は、検出した車幅及び車長に基づいて、車両領域を特定するとともに(S41)、車種を判定し(S42)、処理を終了する。
次に、第3例として、矩形領域の右辺で列状をなす右辺画素から車高方向及び車幅方向に走査(探索)して車長を検出し、検出した車長の下端ライン上に存在する下端画素及び検出した車長の上端ライン上に存在する上端画素から車高方向に走査(探索)して車幅を検出することもできる。以下、第3例について説明する。
図25は右辺画素から車高方向へ画素を計数する一例を示す模式図であり、図26は右辺画素から車幅方向へ画素を計数する一例を示す模式図である。図25に示すように、画素計数部105は、矩形領域の右辺で列状をなす右辺画素それぞれの位置から移動体の高さ方向に対応する向きに第1所定数の画素を走査して移動体候補領域内に含まれる画素数を計数する。高さ方向及び第1所定数は、図12及び図13で例示した処理と同様である。
画素位置特定部106は、計数された画素数が第1閾値以上である右辺画素の位置を特定する。計数した画素数が第1閾値以上である場合、当該右辺画素は、移動体領域を構成する画素であると判定することができ、計数した画素数が第1閾値未満である場合、当該右辺画素は、移動体領域を構成する画素ではないと判定することができる。第1閾値は、第1所定数の80%、あるいは計数された画素数の平均値の80%、あるいは両方の条件を満足する値とすることができる。
例えば、計数した画素数が第1閾値以上である右辺画素が隣接して複数存在する場合、特定された右辺画素の範囲が移動体領域(例えば、車長の部分、車長方向の輪郭)となる。図25の例では、右辺画素G1、…、G11のうち、計数した画素数が第1閾値以上である右辺画素がG1、G2、…、G7であるとすると、右辺画素G1〜G7で構成される線分を車両の輪郭の一部(車長)として検出することができる。
次に、図26に示すように、画素計数部105は、矩形領域の右辺で列状をなす右辺画素それぞれの位置から左横方向に第3所定数の画素を走査して移動体候補領域内に含まれる画素数を計数する。第3所定数は、移動体の幅(例えば、1.8mなど)に相当する鳥瞰画像上の画素数とすることができる。
画素位置特定部106は、計数された画素数が第3閾値以上である右辺画素の位置を特定する。計数した画素数が第3閾値以上である場合、当該右辺画素は、移動体領域を構成する画素であると判定することができ、計数した画素数が第3閾値未満である場合、当該右辺画素は、移動体領域を構成する画素ではないと判定することができる。第3閾値は、例えば、第3所定数の80%、あるいは計数された画素数の平均値の80%、あるいは両方の条件を満足する値とすることができる。
例えば、計数した画素数が第3閾値以上である右辺画素が隣接して複数存在する場合、特定された右辺画素の範囲が移動体領域(例えば、車長の部分、車長方向の輪郭)となる。図26の例では、右辺画素G1、…、G11のうち、計数した画素数が第3閾値以上である右辺画素がG1、G2、…、G9であるとすると、右辺画素G1〜G9で構成される線分を車両の輪郭の一部(車長)として検出することができる。
移動体検出部107は、画素位置特定部106で特定した右辺画素の位置に基づいて移動体の長さ(車長)を検出する。例えば、図25に例示するように車高方向に沿って走査(探索)することにより特定された右辺画素の範囲(位置)と、図26に示すように、車幅方向に沿って走査(探索)することにより特定された右辺画素の範囲(位置)との両方に共通の範囲(位置)を移動体の車長(移動体の一部)として検出する。図25では、G1〜G7が有効な範囲として特定され、図26ではG1〜G9が有効な範囲として特定されているので、両者で共通の範囲であるG1〜G7が車両の車長であると検出することができる。
右辺画素のうち、当該右辺画素の位置から移動体の高さ分の位置までの画素が移動体候補領域にあると判定され、かつ当該右辺画素の位置から移動体の車幅分の位置までの画素が移動体候補領域にあると判定された右辺画素を特定することにより、移動体候補領域内の高さが0の位置にある右辺画素のうち、当該右辺画素の位置に対して車高分の位置及び車幅分の位置にある画素も移動体候補領域内にある右辺画素だけを特定することができるので、高さが0の移動体領域(移動体が路面に投影された画像)を構成する画素を精度良く検出することができる。
次に、有効車幅の算出方法について説明する。有効車幅の算出には、図25及び図26で求めた有効車長を用いる。
図27は下端画素から車高方向へ画素を計数する一例を示す模式図であり、図28は上端画素から車高方向へ画素を計数する一例を示す模式図である。図27及び図28において、移動体候補領域及び矩形領域は、図25及び図26において例示したものと同一である。
画素計数部105は、検出された長さ(車長)の下端から横方向に列状をなした(画像上で左向きのライン上に存在する)下端画素それぞれの位置から移動体の高さ方向に対応する向きに第1所定数の画素を走査して移動体候補領域内に含まれる画素数を計数する。下端画素は、例えば、車長の下端から左向きのラインが矩形領域の左辺と交差する位置までに存在する画素とすることができる。矩形領域内で探索すれば十分であるからである。
画素位置特定部106は、計数された画素数が第1閾値以上である下端画素の位置を特定する。計数した画素数が第1閾値以上である場合、当該下端画素は、移動体領域を構成する画素であると判定することができ、計数した画素数が第1閾値未満である場合、当該下端画素は、移動体領域を構成する画素ではないと判定することができる。
例えば、計数した画素数が第1閾値以上である下端画素が隣接して複数存在する場合、特定された下端画素の範囲が移動体領域(例えば、車頭の部分、車幅方向の輪郭)となる。図27の例では、下端画素G1、…、G9のうち、計数した画素数が第9閾値以上である下端画素がG4、G5、…、G9であるとすると、下端画素G4〜G9で構成される線分を車両の輪郭の一部(車幅)として検出することができる。
画素計数部105は、検出された車長の上端から横方向に列状をなした(画像上で左向きのライン上に存在する)上端画素それぞれの位置から移動体の高さ方向に対応する向きに第1所定数の画素を走査して移動体候補領域内に含まれる画素数を計数する。上端画素は、例えば、車長の上端から左向きのラインが矩形領域の左辺と交差する位置までに存在する画素とすることができる。矩形領域内で探索すれば十分であるからである。
画素位置特定部106は、計数された画素数が第1閾値以上である上端画素の位置を特定する。計数した画素数が第1閾値以上である場合、当該上端画素は、移動体領域を構成する画素であると判定することができ、計数した画素数が第1閾値未満である場合、当該上端画素は、移動体領域を構成する画素ではないと判定することができる。
例えば、計数した画素数が第1閾値以上である上端画素が隣接して複数存在する場合、特定された上端画素の範囲が移動体領域(例えば、車尾の部分、車幅方向の輪郭)となる。図28の例では、上端画素G1、…、G9のうち、計数した画素数が第1閾値以上である上端画素がG3、G5、…、G7であるとすると、上端画素G3〜G7で構成される線分を車両の輪郭の一部(車幅)として検出することができる。
移動体検出部107は、特定された下端画素及び上端画素の位置に基づいて移動体の幅(車幅)を検出する。例えば、図27に例示するように車高方向に沿って走査(探索)することにより特定された下端画素の範囲(位置)と、図28に示すように、車高方向に沿って走査(探索)することにより特定された上端画素の範囲(位置)との両方に共通の範囲(位置)を移動体の車幅(移動体の一部)として検出する。図27では、G4〜G9が有効な範囲として特定され、図28ではG3〜G7が有効な範囲として特定されているので、両者で共通の範囲であるG4〜G7が車両の車幅であると検出することができる。
下端画素のうち、当該下端画素の位置から移動体の高さ分の位置までの画素が移動体候補領域にあると判定された下端画素、かつ上端画素のうち、当該上端画素の位置から移動体の高さ分の位置までの画素が移動体候補領域にあると判定された上端画素を特定することにより、移動体候補領域内の高さが0の位置にある車幅方向に沿った下端画素及び上端画素のうち、当該下端画素及び上端画素の位置に対して車高分の位置にある画素も移動体候補領域内にあると判定された下端画素及び上端画素だけを特定することができるので、高さが0の移動体領域(移動体が路面に投影された画像)を構成する画素を精度良く検出することができる。
図29及び図30は本実施の形態の移動体検出装置100の移動体検出の第3例の処理手順を示すフローチャートである。以下の説明では便宜上、処理の主体を制御部101として説明する。
制御部101は、撮像画像を取得し(S51)、取得した撮像画像を鳥瞰画像に変換する(S52)。制御部101は、鳥瞰画像上で車両候補領域(移動体候補領域)を抽出し(S53)、抽出した車両候補領域を囲む矩形領域を設定する(S54)。
制御部101は、矩形領域の右辺の各画素(右辺画素)から車高方向に所定数の画素を走査(探索)して車両候補領域内の画素数を計数する(S55)。制御部101は、矩形領域の右辺の各画素(右辺画素)から車幅方向に所定数の画素を走査(探索)して車両候補領域内の画素数を計数する(S56)。
制御部101は、車高方向及び車幅方向それぞれの車両候補領域内の画素数が所定の閾値(第1閾値及び第3閾値)以上である右辺の画素(右辺画素)の範囲を車長として検出する(S57)。
制御部101は、検出した車長の下端から左方(横左方)に沿った下端ラインの各画素(下端画素)から車高方向に所定数の画素を走査して車両候補領域内の画素数を計数する(S58)。制御部101は、検出した車長の上端から左方(横左方)に沿った上端ラインの各画素(下端画素)から車高方向に所定数の画素を走査して車両候補領域内の画素数を計数する(S59)。
制御部101は、車高方向の車両候補領域内の画素数が所定の閾値(第1閾値)以上である下端ラインの画素(下端画素)の範囲及び上端ラインの画素(上端画素)の範囲を幅(車幅)として検出する(S60)。制御部101は、検出した車幅及び車長に基づいて、車両領域を特定するとともに(S61)、車種を判定し(S62)、処理を終了する。
上述の実施の形態では、図2に例示するように、走行する車両を左前方から撮像して得られた撮像画像を用いるので、車両の前方と左側方(鳥瞰画像では移動体候補領域を囲む矩形領域の下辺及び右辺)部分が他の輪郭よりも一層鮮明に映し出すことができる。このため、上述の例では、矩形領域の下辺画素、右辺画素、あるいは右端画素を基準にして画素を走査(探索)する構成を用いた。しかし、撮像装置の設置条件は、図2の例に限定されるものではない。
図31は撮像画像の他の例を示す説明図である。図31の例では、撮像装置200を道路の路肩近傍から所要の高さに設けてあり、道路を走行する車両の右前方から車両を撮像した場合を示す。図31中、破線で示した矩形状の領域Sは、透視変換行列により鳥瞰画像(変換画像)に変換される領域を示す。また、撮像画像の左下を原点として撮像画像の座標を座標(u、v)で表す。
図31で例示する撮像画像の場合、鳥瞰画像上で抽出した移動体候補領域は、図4に例示するような座標yの増加方向に沿って左方向へ傾くような形状ではなく、座標yの増加方向に沿って右方向へ傾くような形状となる。すなわち、車両の前方と右側方(鳥瞰画像では移動体候補領域を囲む矩形領域の下辺及び左辺)部分が他の輪郭よりも一層鮮明に映し出すことができる。
従って、撮像画像が図31のような場合には、図21及び図22で例示した右端画素に代えて、左端画素を用いればよい。
すなわち、画素計数部105は、検出された車幅の左端から縦方向に列状をなした(画像上で上向きのライン上に存在する)左端画素それぞれの位置から移動体の高さ方向に対応する向きに第1所定数の画素を走査して移動体候補領域内に含まれる画素数を計数する。左端画素は、例えば、車幅の左端から上向きのラインが矩形領域の上辺と交差する位置までに存在する画素とすることができる。矩形領域内で探索すれば十分であるからである。
画素位置特定部106は、計数された画素数が第1閾値以上である左端画素の位置を特定する。計数した画素数が第1閾値以上である場合、当該左端画素は、移動体領域を構成する画素であると判定することができ、計数した画素数が第1閾値未満である場合、当該左端画素は、移動体領域を構成する画素ではないと判定することができる。例えば、計数した画素数が第1閾値以上である左端画素が隣接して複数存在する場合、特定された左端画素の範囲が移動体領域(例えば、車長の部分、車長方向の輪郭)となる。
また、画素計数部105は、検出された車幅の左端から縦方向に列状をなした(画像上で上向きのライン上に存在する)左端画素それぞれの位置から右横方向に第3所定数の画素を走査して移動体候補領域内に含まれる画素数を計数する。検出された車幅の左端から上向きのライン上に存在する左端画素それぞれの位置から右横方向に第3所定数の画素を走査して移動体候補領域内に含まれる画素数を計数する。第3所定数は、移動体の幅(例えば、1.8mなど)に相当する鳥瞰画像上の画素数とすることができる。
画素位置特定部106は、計数された画素数が第3閾値以上である左端画素の位置を特定する。計数した画素数が第3閾値以上である場合、当該左端画素は、移動体領域を構成する画素であると判定することができ、計数した画素数が第3閾値未満である場合、当該左端画素は、移動体領域を構成する画素ではないと判定することができる。例えば、計数した画素数が第3閾値以上である左端画素が隣接して複数存在する場合、特定された左端画素の範囲が移動体領域(例えば、車長の部分、車長方向の輪郭)となる。
移動体検出部107は、特定された左端画素の位置に基づいて移動体の長さ(車長)を検出する。例えば、車高方向に沿って走査して特定した左端画素の範囲(位置)と、車幅方向に沿って走査して特定した左端画素の範囲(位置)の両方に共通の範囲(位置)を移動体の車長(移動体の一部)として検出することができる。
左端画素のうち、当該左端画素の位置から移動体の高さ分の位置までの画素が移動体候補領域にあると判定され、かつ当該左端画素の位置から移動体の車幅分の位置までの画素が移動体候補領域にあると判定された左端画素を特定することにより、移動体候補領域内の高さが0の位置にある左端画素のうち、当該左端画素の位置に対して車高分の位置及び車幅分の位置にある画素も移動体候補領域内にある左端画素だけを特定することができるので、高さが0の移動体領域(移動体が路面に投影された画像)を構成する画素を精度良く検出することができる。
同様に、撮像画像が図31のような場合には、図25及び図26で例示した右辺画素に代えて、左辺画素を用いればよい。
すなわち、画素計数部105は、矩形領域の左辺で列状をなす左辺画素それぞれの位置から移動体の高さ方向に対応する向きに第1所定数の画素を走査して移動体候補領域内に含まれる画素数を計数する。
画素位置特定部106は、計数された画素数が第1閾値以上である左辺画素の位置を特定する。計数した画素数が第1閾値以上である場合、当該左辺画素は、移動体領域を構成する画素であると判定することができ、計数した画素数が第1閾値未満である場合、当該左辺画素は、移動体領域を構成する画素ではないと判定することができる。例えば、計数した画素数が第1閾値以上である左辺画素が隣接して複数存在する場合、特定された左辺画素の範囲が移動体領域(例えば、車長の部分、車長方向の輪郭)となる。
画素計数部105は、矩形領域の左辺で列状をなす左辺画素それぞれの位置から右横方向に第3所定数の画素を走査して移動体候補領域内に含まれる画素数を計数する。
画素位置特定部106は、計数された画素数が第3閾値以上である左辺画素の位置を特定する。計数した画素数が第3閾値以上である場合、当該左辺画素は、移動体領域を構成する画素であると判定することができ、計数した画素数が第3閾値未満である場合、当該左辺画素は、移動体領域を構成する画素ではないと判定することができる。例えば、計数した画素数が第3閾値以上である左辺画素が隣接して複数存在する場合、特定された左辺画素の範囲が移動体領域(例えば、車長の部分、車長方向の輪郭)となる。
移動体検出部107は、特定した左辺画素の位置に基づいて移動体の長さ(車長)を検出する。例えば、車高方向に沿って走査して特定した左辺画素の範囲(位置)と車幅方向に沿って走査して特定した左辺画素の範囲(位置)の両方に共通の範囲(位置)を移動体の車長(移動体の一部)として検出することができる。
そして、検出した長さ(車長)に基づいて車幅を求める場合は、以下の処理を行うことができる。すなわち、画素計数部105は、検出された車長の下端から横方向に列状をなした(画像上で右向きのライン上に存在する)下端画素それぞれの位置から移動体の高さ方向に対応する向きに第1所定数の画素を走査して移動体候補領域内に含まれる画素数を計数する。下端画素は、例えば、車長の下端から右向きのラインが矩形領域の右辺と交差する位置までに存在する画素とすることができる。矩形領域内で探索すれば十分であるからである。
画素位置特定部106は、計数された画素数が第1閾値以上である下端画素の位置を特定する。計数した画素数が第1閾値以上である場合、当該下端画素は、移動体領域を構成する画素であると判定することができ、計数した画素数が第1閾値未満である場合、当該下端画素は、移動体領域を構成する画素ではないと判定することができる。例えば、計数した画素数が第1閾値以上である下端画素が隣接して複数存在する場合、特定された下端画素の範囲が移動体領域(例えば、車頭の部分、車幅方向の輪郭)となる。
そして、画素計数部105は、検出された車長の上端から横方向に列状をなした(画像上で右向きのライン上に存在する)上端画素それぞれの位置から移動体の高さ方向に対応する向きに第1所定数の画素を走査して移動体候補領域内に含まれる画素数を計数する。上端画素は、例えば、車長の上端から右向きのラインが矩形領域の右辺と交差する位置までに存在する画素とすることができる。矩形領域内で探索すれば十分であるからである。
画素位置特定部106は、計数された画素数が第1閾値以上である上端画素の位置を特定する。計数した画素数が第1閾値以上である場合、当該上端画素は、移動体領域を構成する画素であると判定することができ、計数した画素数が第1閾値未満である場合、当該上端画素は、移動体領域を構成する画素ではないと判定することができる。例えば、計数した画素数が第1閾値以上である上端画素が隣接して複数存在する場合、特定された上端画素の範囲が移動体領域(例えば、車尾の部分、車幅方向の輪郭)となる。
移動体検出部107は、特定した下端画素及び上端画素の位置に基づいて移動体の幅(車幅)を検出する。例えば、特定した下端画素の範囲(左右方向の位置)と特定した上端画素の範囲(上下方向の位置)の両方に共通の範囲(上下方向の位置)を移動体の車幅(移動体の一部)として検出することができる。
下端画素のうち、当該下端画素の位置から移動体の高さ分の位置までの画素が移動体候補領域にあると判定された下端画素、かつ上端画素のうち、当該上端画素の位置から移動体の高さ分の位置までの画素が移動体候補領域にあると判定された上端画素を特定することにより、移動体候補領域内の高さが0の位置にある車幅方向に沿った下端画素及び上端画素のうち、当該下端画素及び上端画素の位置に対して車高分の位置にある画素も移動体候補領域内にあると判定された下端画素及び上端画素だけを特定することができるので、高さが0の移動体領域(移動体が路面に投影された画像)を構成する画素を精度良く検出することができる。
以上に開示された実施の形態及び実施例は、全ての点で例示であって制限的なものではないと考慮されるべきである。本発明の範囲は、以上の実施の形態及び実施例ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内での全ての修正や変形を含むものと意図される。