【実施例】
【0021】
以下、図面を参照して本発明の好適な実施例について説明する。
【0022】
[システム構成]
図1は、本実施例に係る信号認識システムの構成例を示す。
図1に示すように、信号認識システムは、車両Veに搭載されるナビゲーション装置1と、車両Veの前方に向けて設置されたカメラ2とを備える。ナビゲーション装置1と、カメラ2とは、有線又は無線により電気的に接続している。
【0023】
ナビゲーション装置1は、出発地から目的地までの経路案内を行う機能などを有する。また、本実施例では、ナビゲーション装置1は、カメラ2が生成した画像に基づき、信号機の表示を認識する。
【0024】
カメラ2は、車両Veの前方に向けて固定され、所定の間隔ごとに車両Veの前方を撮影した画像(「画像Im」とも呼ぶ。)を生成する。カメラ2は、地面から所定の高さ(「カメラ設置高Hc」とも呼ぶ。)に固定され、かつ、所定の画角「θv」を有する。好適には、カメラ2の向きは、画像Im中の消失点(即ち無限遠点)が画像Imの縦方向での中心位置になるように、略水平方向に向けられる。カメラ14は、生成した画像Imをナビゲーション装置1へ供給する。カメラ14は、本発明における「撮像手段」として機能する。
【0025】
[ナビゲーション装置の構成]
図2は、ナビゲーション装置1の概略構成を示す。ナビゲーション装置1は、例えば据置型のナビゲーション装置やルート案内を行う携帯端末であって、
図2に示すように、自立測位装置10、GPS受信機18、システムコントローラ20、ディスクドライブ31、データ記憶ユニット36、通信用インタフェース37、通信装置38、表示ユニット40、音声出力ユニット50及び入力装置60を備える。
【0026】
自立測位装置10は、加速度センサ11、角速度センサ12及び距離センサ13を備える。加速度センサ11は、例えば圧電素子からなり、車両の加速度を検出し、加速度データを出力する。角速度センサ12は、例えば振動ジャイロからなり、車両の方向変換時における車両の角速度を検出し、角速度データ及び相対方位データを出力する。距離センサ13は、車両の車輪の回転に伴って発生されているパルス信号からなる車速パルスを計測する。
【0027】
GPS受信機18は、複数のGPS衛星から、測位用データを含む下り回線データを搬送する電波19を受信する。測位用データは、緯度及び経度情報等から車両の絶対的な位置を検出するために用いられる。
【0028】
システムコントローラ20は、インタフェース21、CPU(Central Processing Unit)22、ROM(Read Only Memory)23及びRAM(Random Access Memory)24を含んでおり、ROM23などに記憶された制御プログラムを実行することで、ナビゲーション装置1全体の制御を行う。
【0029】
例えば、システムコントローラ20は、現在位置情報及び後述する地図データに含まれる信号機の位置情報に基づき、車両Veの前方所定距離以内に信号機があることを認識した場合、画像Imに基づき当該信号機の信号認識を行う。このとき、システムコントローラ20は、画像Imから画像処理により信号機の表示領域を検出する領域(「解析領域Rtag」とも呼ぶ。)を決定する。これについては、[解析領域の決定]のセクションで詳しく説明する。
【0030】
インタフェース21は、加速度センサ11、角速度センサ12及び距離センサ13並びにGPS受信機18とのインタフェース動作を行う。そして、これらから、車速パルス、加速度データ、相対方位データ、角速度データ、GPS測位データ、絶対方位データ等をシステムコントローラ20に入力する。CPU22は、システムコントローラ20全体を制御する。ROM23は、システムコントローラ20を制御する制御プログラム等が格納された図示しない不揮発性メモリ等を有する。RAM24は、入力装置60を介して使用者により予め設定された経路データ等の各種データを読み出し可能に格納したり、CPU22に対してワーキングエリアを提供したりする。
【0031】
システムコントローラ20、CD−ROMドライブ又はDVD−ROMドライブなどのディスクドライブ31、データ記憶ユニット36、通信用インタフェース37、表示ユニット40、音声出力ユニット50及び入力装置60は、バスライン30を介して相互に接続されている。
【0032】
ディスクドライブ31は、システムコントローラ20の制御の下、CD又はDVDといったディスク33から、音楽データ、映像データなどのコンテンツデータを読み出し、出力する。なお、ディスクドライブ31は、CD−ROMドライブ又はDVD−ROMドライブのうち、いずれか一方としてもよいし、CD及びDVDコンパチブルのドライブとしてもよい。
【0033】
データ記憶ユニット36は、例えば、HDDなどにより構成され、地図データなどのナビゲーション処理に用いられる各種データを記憶するユニットである。地図データは、道路に相当するリンクと、道路の接続部分(交差点)に相当するノードとにより表された道路データや、各施設に関する施設情報などを含む。また、地図データには、各信号機の位置情報が記憶されている。また、データ記憶ユニット36は、信号機が設置される地上からの高さ(「信号機高Hs」とも呼ぶ。)、カメラ2の画角θv、及びカメラ設置高Hcの情報を記憶する。なお、システムコントローラ20は、これらの情報を、入力装置60へのユーザの入力に基づき生成し、データ記憶ユニット36に記憶させてもよい。
【0034】
通信装置38は、例えば、FMチューナやビーコンレシーバ、携帯電話や専用の通信カードなどにより構成され、通信用インタフェース37を介して、VICS(登録商標、Vehicle Information Communication System)センタから配信される渋滞や交通情報などの道路交通情報、その他の情報を受信する。また、通信装置38は、所定間隔ごとにカメラ2から画像Imを受信し、システムコントローラ20へ供給する。
【0035】
表示ユニット40は、システムコントローラ20の制御の下、各種表示データをディスプレイなどの表示装置に表示する。具体的には、システムコントローラ20は、データ記憶ユニット36から地図データを読み出す。表示ユニット40は、システムコントローラ20によってデータ記憶ユニット36から読み出された地図データなどを表示画面上に表示する。表示ユニット40は、バスライン30を介してCPU22から送られる制御データに基づいて表示ユニット40全体の制御を行うグラフィックコントローラ41と、VRAM(Video RAM)等のメモリからなり即時表示可能な画像情報を一時的に記憶するバッファメモリ42と、グラフィックコントローラ41から出力される画像データに基づいて、液晶、CRT(Cathode Ray Tube)等のディスプレイ44を表示制御する表示制御部43と、ディスプレイ44とを備える。ディスプレイ44は、画像表示部として機能し、例えば対角5〜10インチ程度の液晶表示装置等からなり、車内のフロントパネル付近に装着される。
【0036】
音声出力ユニット50は、システムコントローラ20の制御の下、CD−ROMドライブ31又はDVD−ROM32、若しくはRAM24等からバスライン30を介して送られる音声デジタルデータのD/A(Digital to Analog)変換を行うD/Aコンバータ51と、D/Aコンバータ51から出力される音声アナログ信号を増幅する増幅器(AMP)52と、増幅された音声アナログ信号を音声に変換して車内に出力するスピーカ53とを備えて構成されている。
【0037】
入力装置60は、各種コマンドやデータを入力するための、キー、スイッチ、ボタン、リモコン、音声入力装置等から構成されている。入力装置60は、車内に搭載された当該車載用電子システムの本体のフロントパネルやディスプレイ44の周囲に配置される。また、ディスプレイ44がタッチパネル方式の場合、ディスプレイ44の表示画面上に設けられたタッチパネルも入力装置60として機能する。
【0038】
なお、システムコントローラ20は、本発明における「第1取得手段」、「第2取得手段」、「検出手段」、「第3取得手段」、「第4取得手段」及び「コンピュータ」として機能する。
【0039】
[解析領域の決定方法]
次に、解析領域Rtagの決定方法について説明する。概略的には、システムコントローラ20は、現在位置情報及び信号機の位置情報等に基づき、カメラ2の向きに対する信号機の仰角(「仰角θtag」とも呼ぶ。)を算出し、当該仰角θtagから解析領域Rtagを決定する。
【0040】
まず、仰角θtagの算出方法について、
図3を参照して説明する。
図3は、車両Veと、信号認識の対象となる信号機70とを側面視した図である。
【0041】
図3に示すように、仰角θtagは、カメラ2の向きに沿って水平に伸びる線90と、カメラ2と信号機70とを結ぶ線91とがなす角に相当する。ここで、
図3に示す線90の長さは、カメラ2と信号機70との水平方向での距離(「信号機距離D」とも呼ぶ。)に相当する。また、線90及び線91と共に直角三角形を形成する線92の長さは、信号機高Hsにカメラ設置高Hcを引いた長さとなる。
【0042】
この場合、仰角θtagは、線90と線91と線92とを辺とする直角三角形に基づき、三角関数を用いて式(1)に示すように表される。
【0043】
tanθ=(Hs−Hc)/D 式(1)
従って、システムコントローラ20は、式(1)を参照することで、カメラ設置高Hcと、信号機高Hsと、信号機距離Dとに基づき、仰角θtagを算出することができる。例えば、カメラ設置高Hcが「1m」、信号機高Hsが「5m」、信号機距離Dが「50m」とすると、式(1)により、仰角θtagは、約4.6°となる。
【0044】
次に、仰角θtagから解析領域Rtagを決定する方法について説明する。システムコントローラ20は、画角θvに対する仰角θtagの比率に基づき、画像Imの縦方向での信号機70の推定される表示位置(「推定表示位置」とも呼ぶ。)を算出することで、解析領域Rtagを決定する。これについて、
図4、
図5を参照して具体的に説明する。
【0045】
図4は、カメラ2の撮影範囲と信号機70の位置との関係を示す図である。
図4では、画角θvが60°、かつ、仰角θtagが4.6°であるものとし、画像Imの縦方向の画素数(「縦画素数Nv」とも呼ぶ。)が1000画素であるものとする。また、画像Imでの消失点は、画像Imの縦方向での中心位置と一致するものとする。
【0046】
この場合、
図4に示すように、カメラ2の水平線より上側の視野角は、画角θvの半分(ここでは30°)に相当する。従って、この場合、画像Imは、縦画素数Nvのうち、上半分の画素(ここでは500画素)により、カメラ2の水平線より上側の視野を表現することになる。
【0047】
従って、この場合、システムコントローラ20は、信号機70の推定表示位置が、画角θvの半分に対する仰角θtagの比率に応じた画素分だけ画像Imの縦方向の中央から上にあると認識する。具体的には、システムコントローラ20は、信号機70の推定表示位置が、画像Imの縦方向の中央から以下の式(2)により求まる画素だけ上の位置であると認識する。
【0048】
{θtag/(θv/2)}×(Nv/2) 式(2)
図4の例では、システムコントローラ20は、式(2)に基づき、信号機70の推定表示位置が77(≒(4.6/30)×500)画素分だけ画像Imの縦方向の中央から上の位置にあると認識する。
【0049】
そして、システムコントローラ20は、式(2)により求めた画像Imの縦方向での信号機70の表示位置の近傍範囲を、解析領域Rtagに定める。これについて、
図5を参照して説明する。
【0050】
図5は、
図4の例における画像Imの表示例を示す。
図5に示すように、この場合、システムコントローラ20は、画像Imの縦方向における信号機70の推定表示位置が、消失点である地平線から77画素分だけ上に位置すると判断する。そして、この場合、システムコントローラ20は、解析領域Rtagを、画像Imの縦方向において、信号機70の推定表示位置の上下所定画素分(ここでは50画素分)の範囲に定める。上述の所定画素は、例えば、式(2)に基づき算出した信号機70の推定表示位置の想定される誤差の上限値に設定される。
【0051】
このように、システムコントローラ20は、仰角θtagに基づき、信号機70の表示領域を含むように、解析領域Rtagを好適に設定することができる。これにより、信号認識の処理負荷を低減させると共に、信号機70の誤検出を抑制することができる。
【0052】
図6は、信号機70の近傍に、赤色の看板710を有する建物71がある場合の画像Imの表示例である。
図6の例では、画像Im中に、赤色の信号灯と近似した色を有する看板710が表示されている。この場合であっても、システムコントローラ20は、信号機70の仰角θtagに基づき解析領域Rtagを設定することで、看板710の表示領域を、信号認識を行う対象範囲である解析領域Rtagから除外することができる。従って、この場合、システムコントローラ20は、看板710が赤色の信号灯であると誤って検出するのを好適に抑制することができる。
【0053】
[処理フロー]
図7は、本実施例における信号認識処理のフローチャートである。システムコントローラ20は、
図7に示す処理を、繰り返し実行する。
【0054】
まず、システムコントローラ20は、認識すべき信号機があるか否か判定する(ステップS101)。そして、システムコントローラ20は、認識すべき信号機があると判断した場合(ステップS101;Yes)、ステップS102へ処理を進める。例えば、システムコントローラ20は、GPS受信機18等が検出した車両Veの現在位置と進行方向の情報、および地図データに含まれる信号機の位置情報と道路形状データに基づき、車両Veの前方へ所定距離以内に信号機があると判断した場合、認識すべき信号機があると判断し、ステップS102へ処理を進める。なお、システムコントローラ20は、車両Veの停車時にのみステップS102以降の処理を実行すべきと判断してもよい。一方、認識すべき信号機がない場合(ステップS101;No)、システムコントローラ20は、フローチャートの処理を終了する。
【0055】
次に、システムコントローラ20は、認識対象の信号機に対する仰角θtagを算出する(ステップS102)。具体的には、まず、システムコントローラ20は、カメラ設置高Hcと、信号機高Hsとをデータ記憶ユニット36から取得する。また、システムコントローラ20は、GPS受信機18等が計測した現在位置情報と、地図データに含まれる認識対象の信号機の位置情報とに基づき、信号機距離Dを算出する。そして、システムコントローラ20は、カメラ設置高Hcと、信号機高Hsと、信号機距離Dとに基づき、上述した式(1)を参照して仰角θtagを算出する。
【0056】
そして、システムコントローラ20は、仰角θtagに基づき、画像Im中での解析領域Rtagを決定する(ステップS103)。具体的には、システムコントローラ20は、式(2)を用いて、画角θv及び縦画素数Nvに基づき、画像Imの縦方向での信号機の推定表示位置を求め、当該位置から上下所定画素分の範囲を解析領域Rtagに定める。
【0057】
その後、システムコントローラ20は、解析領域Rtag内で信号機の表示領域を検出し、当該信号機の信号表示を認識する(ステップS104)。この場合、システムコントローラ20は、信号機の推定表示位置に基づく解析領域Rtagに限定して画像の解析を行うため、信号機の表示領域の誤検出を抑制することができる。また、システムコントローラ20は、信号認識に必要な解析処理の負荷を低減することができる。
【0058】
以上説明したように、本実施例に係るナビゲーション装置1は、車両Veの前方風景を撮像するカメラ2により撮像された画像Im中から、信号機を検出する。このとき、システムコントローラ20は、車両Veの現在位置に関する情報をGPS受信機18等から受信する。また、システムコントローラ20は、信号機の位置情報をデータ記憶ユニット36から取得する。そして、システムコントローラ20は、現在位置情報と信号機の位置情報とに応じた画像Im中の解析領域Rtagから信号機に相当する画像を検出する。これにより、システムコントローラ20は、信号機の表示領域の誤検出を抑制することができると共に、信号認識に必要な解析処理の負荷を低減することができる。
【0059】
[変形例]
以下、実施例の各変形例について説明する。なお、これらの各変形例は、組み合わせて上述の実施例に適用してもよい。
【0060】
(変形例1)
ナビゲーション装置1は、地域ごとの信号機の設置位置についての法令に基づいた信号機の位置情報を取得してもよい。一例として地域ごとに法令に応じた信号機高Hsをデータ記憶ユニット36に記憶し、車両Veが走行中の地域によって仰角θtagを求めるために使用する信号機高Hsの値を変更してもよい。これにより、ナビゲーション装置1は、走行中の地域に応じて式(1)で用いる信号機高Hsを適切に設定し、仰角θtag及び解析領域Rtagを高精度に定める。
【0061】
一般に、地域ごとの法令によって信号機高Hsは異なる。例えば、豪雪地帯では、積雪時に対応するために、他の地域よりも信号機が高い場所に設置される。以上を勘案し、ナビゲーション装置1は、地域ごとの信号機高Hsをデータ記憶ユニット36に記憶しておく。この場合、例えば、ナビゲーション装置1は、国ごとや都道府県ごとや市町村ごとなどの所定の地域ごとに、信号機高Hsをデータ記憶ユニット36に記憶しておく。なお、ナビゲーション装置1は、データ記憶ユニット36に記憶する地域ごとの信号機高Hsの情報を、通信装置38を介して所定のサーバから取得してもよく、入力装置60への入力に基づき取得してもよい。
【0062】
図8(A)は、信号機高Hsが低い地域を走行中の車両Veと信号機70Aとを側面から観察した図であり、
図8(B)は、信号機高Hsが高い地域を走行中の車両Veと信号機70Bとを側面から観察した図である。また、
図9(A)は、
図8(A)の例での画像Imの表示例を示し、
図9(B)は、
図8(B)の例での画像Imの表示例を示す。
【0063】
図8(A)、(B)の例では、まず、システムコントローラ20は、GPS受信機18等が計測した現在位置に基づき、車両Veが走行中の地域を認識する。そして、システムコントローラ20は、認識した地域に応じた信号機高Hsをデータ記憶ユニット36から取得し、式(1)を用いて仰角θtagをそれぞれ算出する。
【0064】
この場合、
図8(A)に示す信号機70Aに対する仰角θtagは、
図8(B)に示す信号機70Bに対する仰角θtagよりも小さくなり、信号機70Aの推定表示位置は、信号機70Bの推定表示位置よりも低くなる。従って、
図9(A)、(B)に示すように、システムコントローラ20は、画像Imでの信号機70Aに対する解析領域Rtagを、信号機70Bに対する解析領域Rtagよりも低い位置に設定する。
【0065】
このように、システムコントローラ20は、仰角θtagを求めるために使用する信号機高Hsの値を走行中の地域によって変更することで、解析領域Rtagを高精度に求めることができる。
【0066】
また、好適には、信号機高Hsが異なる地域の境界から所定範囲内を車両Veが走行中の場合、システムコントローラ20は、当該地域の各々に対応する信号機高Hsを用いてそれぞれ解析領域Rtagを算出し、算出した解析領域Rtagをいずれも含む領域内で信号機の表示領域を検出するとよい。上述の所定範囲は、例えば境界からの距離に基づき定められる範囲であってもよく、データ記憶ユニット36に予め記憶されたエリアであってもよい。
【0067】
一般に、信号機高Hsが異なる地域の境界付近では、信号機高Hsが異なる信号機が混在する可能性がある。従って、システムコントローラ20は、信号機高Hsが異なる地域の境界付近では、各地域に対応する解析領域Rtagをいずれも含む領域内で信号機の表示領域を検出する。これにより、画像Im中で信号機を確実に検出することができる。
【0068】
なお、システムコントローラ20は、信号機高Hsが異なる地域の境界を通過後、現在走行中の地域に対応する信号機高Hsに基づく解析領域Rtagにより信号機を検出できた場合、以後では、走行中の地域に対応する信号機高Hsに基づく解析領域Rtagのみを対象にして信号機の検出処理を行ってもよい。
【0069】
(変形例2)
システムコントローラ20は、車両Veの前方所定距離以内に信号機が存在する場合であっても、当該信号機がカメラ2の撮影範囲に含まれない場合には、当該信号機に関する信号認識を実行しなくてもよい。
【0070】
図10(A)は、車両Veの走行道路上に信号機70C、70Dが存在する様子を側面視した図である。そして、
図10(B)は、
図10(A)の場合の画像Imの表示例を示す。
【0071】
図10(A)、(B)に示すように、この場合、車両Veの走行道路上で車両Veに最も近い信号機70Cは、カメラ2の撮影範囲に含まれない。従って、この場合、システムコントローラ20は、信号機70Cの信号認識を行うことができない。一方、車両Veの走行道路上で信号機70Cの次に車両Veに近い信号機70Dは、カメラ2の撮影範囲に含まれる。従って、
図10(A)、(B)の例では、信号機70Cの信号認識を実行しようとして信号機70Dの信号認識を誤って実行してしまう可能性がある。
【0072】
以上を勘案し、システムコントローラ20は、式(1)に基づき仰角θtagを算出後、当該仰角θtagが所定角度(例えば画角θvの半分)以上の場合には、当該仰角θtagに対応する信号機の信号認識を実行しない。これにより、システムコントローラ20は、信号認識の対象とする信号機以外の信号機の信号を誤って認識するのを抑制することができる。
【0073】
(変形例3)
システムコントローラ20は、道路の勾配情報をさらに勘案して解析領域Rtagを定めてもよい。
【0074】
図11は、信号認識の対象となる信号機70Eの位置で勾配を有する道路を車両Veが走行中の様子を側面視した図である。
図11の例では、まず、システムコントローラ20は、例えば地図データに記憶された信号機70Eの位置及び信号機70E付近での道路の勾配(
図11では角度「θa」)の情報に基づき、車両Veに対する信号機70Eの設置位置の相対的な高さを認識する。そして、この場合、システムコントローラ20は、認識した車両Veに対する信号機70Eの設置位置の相対的な高さを、信号機高Hsに加算した後、式(1)により仰角θtagを算出する。これにより、システムコントローラ20は、道路勾配に起因して、信号機の設置位置の標高と、車両Veの現在位置の標高とが異なる場合であっても、好適に仰角θtagを算出し、解析領域Rtagを高精度に算出することができる。
【0075】
また、システムコントローラ20は、車両Veが勾配を有する道路上にいると認識した場合には、式(1)により算出する仰角θtagに対し、道路の勾配に起因してカメラ2が傾いた分だけ加減算を行う。例えば、システムコントローラ20は、車両Veが上り坂にいる場合には、当該上り坂の勾配分だけ仰角θtagを減算し、車両Veが下り坂にいる場合には、当該下り坂の勾配分だけ仰角θtagを加算する。この場合、システムコントローラ20は、地図データ及び測定した現在位置の情報に基づき、車両Veが存在する道路の勾配を認識してもよく、ナビゲーション装置1と接続する図示しない勾配センサの出力に基づき、車両Veが存在する道路の勾配を認識してもよい。
【0076】
(変形例4)
ナビゲーション装置1は、信号機に代えて、又はこれに加えて、画像Imから道路標識を認識してもよい。
【0077】
この場合、ナビゲーション装置1は、地図データとして、各道路標識の位置情報及び道路標識の高さの情報をデータ記憶ユニット36に記憶しておく。そして、ナビゲーション装置1のシステムコントローラ20は、地図データを参照し、車両Veの現在位置から車両Veの前方の所定距離以内に道路標識があると認識した場合には、当該道路標識に対する仰角θtagを算出する。この場合、システムコントローラ20は、信号機高Hsに代えて、道路標識の高さを用いて、式(1)に基づき、仰角θtagを算出する。その後、実施例と同様に、システムコントローラ20は、算出した仰角θtagに基づき、式(2)を用いて道路標識の画像Imの縦方向での推定表示位置を決定し、その近傍範囲を解析領域Rtagに設定する。そして、システムコントローラ20は、解析領域Rtag内で道路標識の表示領域を検出し、当該道路標識が示す内容を任意の画像認識技術により認識する。
【0078】
このように、ナビゲーション装置1は、道路標識を認識する場合であっても、解析領域Rtagを定めることで、画像Im中の道路標識の表示領域の誤検出を好適に抑制することができる。
【0079】
(変形例5)
ナビゲーション装置1が
図7のフローチャートで実行する処理の全部または一部を、ナビゲーション装置1と接続するサーバ装置が実行してもよい。
【0080】
図12は、変形例に係る信号認識システムの概略構成を示す。
図12に示すように、ナビゲーション装置1は、ネットワーク200を介してサーバ装置300と接続する。サーバ装置300は、CPUなどの制御部や、記憶部、及び通信部などを有し、予め記憶されたプログラムを実行することで所定の処理を行う。また、サーバ装置300は、信号機の位置情報や信号機高Hsの情報などを含む地図データを記憶する。
【0081】
そして、サーバ装置300は、ナビゲーション装置1から送信される画像Imや現在位置情報等に基づき、
図7のフローチャートに示す信号認識処理を実行し、その処理結果をナビゲーション装置1に送信する。このように、本変形例によっても、信号認識システムは、好適に信号認識を実行することができる。
【0082】
なお、サーバ装置300は、地図データを記憶するサーバや
図7のフローチャートに示す信号認識処理を実行するサーバなどの複数のサーバから構成されてもよい。この場合、各サーバは、他のサーバと通信を行い、割り当てられた処理を実行する。そして、本変形例では、サーバ装置300は、本発明における「検出装置」の一例である。