【解決手段】カメラECU100(立柱検出装置)は、時系列的に異なるタイミングで撮影された一方の対象画像における縦エッジを検出する縦エッジ検出部34と、縦エッジに、鉛直方向に沿って並ぶ複数の追跡点を設定する追跡点設定部35と、追跡点に対応する対応点を他方の対象画像において検出する対応点検出部36と、対象画像において、対応点が鉛直方向に並んだ縦エッジを特定する縦エッジ特定部37と、2つの対象画像において対応する交点の各座標位置と各対象画像が撮影されたときの車両の位置とに基づいて、縦エッジの立柱の位置を検出する立柱位置検出部40と、を備える。
前記縦エッジ特定部は、前記対応点が鉛直方向に並んだ、前記他方の円筒面画像における前記縦エッジを特定するに際して、前記縦エッジ検出部により検出された前記縦エッジに対して前記追跡点設定部により設定された複数の前記追跡点の数の過半数の前記対応点に基づいて前記縦エッジを特定する請求項1から3のうちいずれか1項に記載の立柱検出装置。
【発明を実施するための形態】
【0011】
以下、本発明に係る立柱検出装置及び立柱検出方法の具体的な実施の形態について、図面を参照して説明する。
【0012】
(構成)
図1は本発明の一例であるカメラECU(Electronic Control Unit)100を含む立柱検出システムを示すブロック図である。
【0013】
図1に示したカメラECU100は、本発明に係る立柱検出装置の一実施形態であり、カメラECU100の動作は、本発明に係る立柱検出方法の一実施形態である。
【0014】
ここで、カメラECU100により処理される画像paは、車両に設けられたカメラ200により撮影された画像である。カメラ200は、車両の所定の高さ位置Hに設けられている。カメラ200は、例えば画角が180[°]程度という広角のレンズを備えている。したがって、カメラ200により撮影して得られた画像paは、特に周囲部分が歪んだ画像となる。
【0015】
一方、カメラ200は、光軸が水平方向を向くように設定されている。したがって、カメラ200が撮影した画像paのうち、画像paの中心(光軸に対応)を通る水平線上には、カメラ200の光軸と同じ高さ位置Hに存在する被写体の画像が撮像される。
【0016】
カメラECU100は、画像記憶部31と、円筒歪補正部32と、処理範囲設定部33と、縦エッジ検出部34と、追跡点設定部35と、対応点検出部36と、縦エッジ特定部37と、車両位置取得部38と、記憶部39と、を備えている。
【0017】
画像記憶部31は、カメラ200によって所定の時間間隔で撮影された画像paを記憶する。円筒歪補正部32は、カメラ200により撮影され画像記憶部31に記憶された画像paを読み出して、実空間において鉛直方向に延びた円筒面に投影したと仮定して得られる円筒面画像pに変換する。
【0018】
円筒歪補正部32には、画像paを円筒面画像pに変換するためのパラメータが記憶されている。このパラメータは、上述したカメラ200に設けられたレンズ等の光学的なデータに基づいて予め求められている。
【0019】
画像paは、特に中心から離れた部分において歪んだ画像であるが、円筒歪補正部32は、実空間において鉛直方向に延びた被写体については、鉛直方向(縦方向)に延びた画像(円筒面画像p)となるように、歪んだ画像paを変換する。これにより、実空間において鉛直方向に延びた被写体である立柱は、円筒面画像pにおいて縦方向に直線状に延びた像となる。
【0020】
図2は画像paを円筒歪補正部32により補正して得られた円筒面画像pの一例(円筒面画像p1)である。円筒歪補正部32は、
図2に示すように、画像paを円筒面画像p1に変換する。
【0021】
処理範囲設定部33は、円筒歪補正部32により補正して得られた円筒面画像pのうち、鉛直方向の所定の範囲の一部分を処理の対象とする対象画像Pとして設定する。具体的には、円筒面画像pのうち、縦方向の中心を含む上下所定の長さまでの矩形の範囲を対象画像Pとして設定する。
【0022】
図3は円筒面画像p1のうち、縦方向の中心を含む上下所定の長さまでの矩形の範囲Rの対象画像P1の一例である。処理範囲設定部33は、
図3に示すように、円筒面画像p1のうち、縦方向の中心を含む上下所定の長さまでの矩形の範囲Rの対象画像P1を対象画像P1に変換する。
【0023】
処理範囲設定部33が、円筒面画像p1を対象画像P1に狭めたことにより、カメラECU100が画像に対して行う後述の処理の対象を少なくすることができ、処理の負荷を抑制することができる。
【0024】
なお、
図3における円筒面画像p1の縦方向の中心には、カメラ200の高さ位置Hに存在する被写体の像が存在する。
【0025】
図4は対象画像P1において検出された縦エッジ11,12,…,18を示す図である。縦エッジ検出部34は、
図4に示すように、対象画像P1に基づいて、実空間において鉛直方向に延びた、対象画像P1における縦エッジ11,12,…,18を検出する。縦エッジ11,12,…,18は、主に、縦方向に延びた立柱61,62,63,64の側縁に対応している。
【0026】
縦エッジ検出部34による縦エッジ11等の検出処理は、対象画像P1を、
図4の横方向であるx方向に主走査しつつ、縦方向であるy方向に副走査して、対象画像P1を構成する画素の信号値の急激な変化が生じる部分をエッジとして検出する公知の処理である。
【0027】
なお、縦エッジ検出部34は、
図4に示した対象画像P1に実際に存在する縦エッジ部分と、その縦エッジ部分を対象画像P1の上下端まで延長した延長線(画像としての縦エッジ部分ではない)も含めて、縦エッジ11等としている。
【0028】
縦エッジ検出部34は、例えば
図4に示すように8本の縦エッジ11,12,…,18(延長線を含む)を検出するが、例えば縦エッジ11のように縦方向の長さが短い縦エッジ部分(画像として実際に存在する縦エッジ)は、対象画像P1において、車両から遠く離れているために、画像としては小さく映ったエッジである可能性があり、車両に近い立柱として検出する必要がない。
【0029】
そこで、縦エッジ検出部34は、検出された縦エッジ11,12,…,18のうち、縦方向にある程度の長さがある縦エッジだけを、後の処理の対象とするために、検出された各縦エッジ11,12,…,18上の画素の信号値を、縦エッジ11,12,…,18ごとに累積し、その累積した値が予め設定された閾値を超えた縦エッジだけを、実際に長い縦エッジ部分が存在するものとして抽出し、閾値を超えない縦エッジを抽出しない。
【0030】
図5は検出された縦エッジ11,12,…,18について、縦エッジ11,12,…,18ごとの、y方向(縦方向)に沿った画素の信号値の累積値Iを示すグラフである。具体的には、縦エッジ検出部34は、
図5に示すように、予め設定された閾値I
0を記憶していて、累積値Iが閾値I
0を超えた7つの縦エッジ12,…,18を縦エッジとして抽出し、累積値Iが閾値I
0を超えない縦エッジ11を縦エッジとして抽出しない。
【0031】
閾値I
0は、後の処理の対象である縦エッジの数を少なくするために設定された値であるが、検出された縦エッジの全てを後の処理の対象としてもよい。したがって、縦エッジ検出部34は、検出された縦エッジに対して、閾値I
0との大小比較による抽出を行わなくてもよい。
【0032】
図6は抽出された縦エッジ12〜18に対して、縦方向に沿った等間隔で追跡点12a,12b,…,12gを設定した状態を示す図である。追跡点設定部35は、
図6に示すように、抽出された縦エッジ12に、縦方向に沿った等間隔で追跡点12a,12b,…,12gを設定する。追跡点設定部35は、他の縦エッジ13〜18に対しても、縦エッジ12と同様に、同一の等間隔で7つずつの追跡点13a等を設定する。なお、追跡点設定部35が設定する複数の追跡点は等間隔でなくてもよく、縦方向に沿って並んだ複数の追跡点であればよい。
【0033】
図7は、カメラ200によって、上述した追跡点設定部35により追跡点12a等が設定された対象画像P1とは時系列的に異なる時点で撮影された別の対象画像P2(例えば、対象画像P1を過去画像としたとき、対象画像P1よりも時系列的に新しい現在画像)を示す模式図である。
【0034】
図8は、2つの対象画像P1,P2を重ね合わせた図であり、破線は対象画像P1を、実線は対象画像P2を、それぞれ示す。
【0035】
対応点検出部36は、カメラ200によって、上述した追跡点設定部35により追跡点12a等が設定された対象画像P1よりも時系列的に新しい現在画像である対象画像P2(
図7参照)における、対象画像P1に対して追跡点設定部35により設定された追跡点12a等にそれぞれ対応する対応点12a′等を検出する。
【0036】
なお、対象画像P1から対象画像P2が取得されるまでの間に、車両は移動しているため、対象画像P1と対象画像P2は、互いに異なった画像となっている。
【0037】
例えば、
図8に示すように、対応点検出部36による対象画像P1における追跡点12dに対応する対象画像P2における対応点12d′の検出は、対象画像P1において、追跡点12dを中心とした、例えば、縦9画素×横9画素からなる81画素の矩形の小領域(ブロック)を設定し、この小領域の画素の信号値パターンをテンプレートとして、対象画像P2において、小領域の信号値パターンと同一又は類似する信号値パターンを有する対応領域を検出する。そして、その対応領域の中心となる画素を、対応点12d′として検出する。
【0038】
なお、本実施形態のように、対象画像P1と対象画像P2とに写った被写体の像のサイズが異なることもあり、一方の対象画像P1で設定した小領域の信号値パターンが、対象画像P2においてはサイズが小さいため、適切な対応領域が検出できない場合も起こりうる。
【0039】
この場合、対象画像P1,P2に写った被写体の像のサイズの違いに対応するために、対象画像P1において設定した小領域を対象画像P2において探索する際に、小領域を拡大又は縮小した、サイズの異なる複数のテンプレートを設定して、対象画像P2において、そのサイズの異なる複数のテンプレートで探索し、適切に対応領域を検出して対応点を検出すればよい。
【0040】
対応点検出部36は、縦エッジ12上に設定された他の追跡点12a,12b,12c,12e,12f,12gについても、追跡点12dと同様に、対象画像P2における対応点12a′,12b′,12c′,12e′,12f′,12g′を求める。
【0041】
なお、
図8に示すように、対応点が正常に検出された場合は、縦エッジ12上に一直線上に並んだ追跡点12a〜12gの対応点12a′〜12g′も同一線上に並ぶが、実際には、対象画像P1と対象画像P2とは異なる像であるため、対象画像P2に、対応点が存在しない場合もある。この場合、本来の対応点とは異なる位置に、比較的類似する対応点が検出されることになり、そのように検出された対応点は、同一線上には並ばない場合が多い。
【0042】
そこで、対応点検出部36は、対象画像P2において検出された対応点12a′〜12g′のx方向の座標値の平均値を算出し、この平均値に対して、x方向の座標値が、予め設定された閾値よりも差の大きい対応点12a′〜12g′については、適切に検出された対応点ではないものと判定して削除する。これにより、x方向の座標値が平均値に近い対応点だけが残り、これらの対応点は、鉛直方向に一直線上に延びた線上に並び得る。
【0043】
対応点検出部36は、他の縦エッジ13,…,18上に設定された他の追跡点18d等についても、同様に対応点18d′等を検出し、鉛直方向に一直線上に延びた線上に並び得る対応点を検出する。
【0044】
縦エッジ特定部37は、対応点検出部36により検出された対応点が鉛直方向に並んだ、対象画像P2における縦エッジを特定する。すなわち、縦エッジ特定部37は、
図8に示すように対応点12c′、12d′,12e′が一直線上に並んだ、その直線を、対象画像P1の縦エッジ12に対応する縦エッジ12′として特定する。
【0045】
縦エッジ特定部37は、対象画像P1の他の縦エッジ13〜18に対応する、対象画像P2における縦エッジ13′〜18′についても、縦エッジ12′と同様に特定する。
【0046】
車両位置取得部38は、対象画像P1,P2がそれぞれ撮影されたときの、実空間における車両の位置をGPS300から取得している。記憶部39は、車両に設けられたカメラ200の光軸の実空間における高さ位置Hを記憶している。
【0047】
図9は、
図8に示した対象画像P1,P2における各縦エッジ12,12′,13,13′,…,18,18′とカメラ200の高さ位置Hとの交点12x,12x′,…,18x,18x′を示す模式図である。
【0048】
立柱位置検出部40は、
図9に示すように、対象画像P1,P2において、各縦エッジ12,12′,13,13′,…,18,18′と、記憶部39に記憶されたカメラ200の高さ位置Hの一点鎖線で示す線との交点12x,12x′,…,18x,18x′の、各対象画像P1,P2における座標位置を求める。
【0049】
ここで、例えば交点12xは、対象画像P1が撮影されたときの車両の位置において、対象画像P1に写った縦エッジ12上のカメラ200の高さ位置Hとの交点という被写体である。同様に、交点12x′は、対象画像P2が撮影されたときの車両の位置において、対象画像P2に写った縦エッジ12′上のカメラ200の高さ位置Hとの交点という被写体である。そして、両交点12x,12x′は、同一の被写体である立柱61の側縁に対応した像である。
【0050】
立柱位置検出部40は、車両の既知の過去の位置において撮影された対象画像P1における特定の被写体の像である交点12xの座標位置と、車両の既知の現在の位置において撮影された対象画像P2における同一被写体の像である交点12x′の座標位置と、車両のそれらの実空間における既知の過去の位置及び既知の現在の位置とに基づいて、三角測量の原理により、実空間おける被写体(交点12x,12x′)の座標位置を求める。
【0051】
さらに、立柱位置検出部40は、求められた被写体の実空間における座標位置を路面上に鉛直方向に投影した座標位置を求める。このように求められた被写体の路面上に投影された座標位置は、実空間における被写体である立柱61の縦エッジに対応した位置となる。
【0052】
立柱位置検出部40は、他の縦エッジ13〜18に対応する縦エッジ13′〜18′に対応する立柱62〜63の座標位置も求める。
【0053】
(作用)
図10は、カメラECU100の処理の流れを説明するフローチャートである。上述のように構成されたカメラECU100の動作について、
図10に示したフローチャートを参照して説明する。
【0054】
車両に設けられたカメラ200は、例えば、1秒間に60フレーム(60[fps])の周期で画像を撮影し、画像記憶部31は、カメラ200により撮影された画像を取得し(図)10におけるS1)、記憶する(S2)。
【0055】
次いで、円筒歪補正部32は、記憶されているパラメータに基づいて。画像記憶部に記憶された画像を順次、円筒歪を補正した円筒面画像pに変換する(S3)。
【0056】
処理範囲設定部33は、円筒面画像pの一部を、後の処理の範囲の対象とする対象画像Pに設定する(S4)。
【0057】
次いで、縦エッジ検出部34は、過去画像である対象画像P1に基づいて、実空間において鉛直方向に延びた、対象画像P1における縦エッジ12,…,18を検出する(S5)。
【0058】
追跡点設定部35は、各縦エッジ12〜18に対して、追跡点12a〜18gを設定する(S6)。
【0059】
次いで、対応点検出部36は、過去画像である対象画像P1とは異なるタイミングで撮影された現在画像である対象画像P2に、追跡点設定部35により設定された各追跡点12a等に対応する対応点12a′等を検出する(S7)。
【0060】
縦エッジ特定部37は、対応点検出部36により検出された対応点12a′等に基づいて、縦エッジ12等に対応する縦エッジ12′等を特定する(S8)。
【0061】
縦エッジ特定部37は、対象画像P1の他の縦エッジ13〜18に対応する、対象画像P2における縦エッジ13′〜18′についても、縦エッジ12′と同様に特定する。
【0062】
立柱位置検出部40は、対象画像P1,P2において、各縦エッジ12,12′,13,13′,…,18,18′に、対象画像P1,P2間で同一被写体となる、カメラ200の高さ位置Hとの交点12x,12x′,…,18x,18x′の座標位置を特定する(S9)。
【0063】
そして、立柱位置検出部40は、各交点12x,12x′,…,18x,18x′の座標位置と車両の実空間での座標位置とに基づいて、実空間における立柱61〜64の座標位置を検出し、各立柱61〜64が路面と交わる接地位置を検出する(S10)。
【0064】
以上の通り、本実施形態のカメラECU100によれば、コーナ部を検出することができない立柱61〜64であっても、実空間における立柱61〜64の路面に接した接地位置の座標位置を特定することができ、車両との位置関係を特定することができる。
【0065】
これにより、本実施形態のカメラECU100によれば、2つの立柱の間の距離を精度よく検出することができ、車両が2つの立柱の間を通過できるか否かを判定したり、車両が2つの立柱の間に駐車することができるか否かを判定したりすることができる。
【0066】
なお、本実施形態のカメラECU100により検出することができる立柱は、細長い柱状の立柱62〜64だけでなく、側縁において縦エッジを有する立壁の側端部も立柱61として検出することができる。
【0067】
本実施形態のカメラECU100は、縦エッジ特定部37が縦エッジ12等を特定するに際して、3つの対応点12c′,12d′,12e′により特定したが、複数の対応点に基づいて縦エッジ12′等を特定するに際しては、対応する縦エッジ12上に設定された追跡点12a等の数(本実施形態では7つ)の過半数の数(4つ以上)の対応点で縦エッジを特定することが、信頼性を向上させる上で好ましい。なお、本発明に係る立柱検出装置は、本実施形態のように、設定された追跡点の数の過半数未満の対応点に基づいて縦エッジを特定してもよい。
【0068】
本実施形態のカメラECU100は、処理範囲を小さくすることにより処理の負荷を低減するために、円筒面画像の一部を対象画像としたが、本発明に係る立柱検出装置は、円筒面画像をそのまま処理の対象として用いてもよい。したがって、本発明に係る立柱検出装置は、処理範囲設定部33を備えなくてもよい。