以下、本発明の第1の実施形態を図面に基づいて説明する。図1は、第1の実施形態によるオフセット補正装置100を備えた車載システム120の構成例を示すブロック図である。図1に示すように、車載システム120は、オフセット補正装置100の他に、撮像部140および角速度センサ160を備えて構成されている。
撮像部140は、車両の左に設置された1つの車載カメラ(魚眼レンズを用いたカメラ)からなる。具体的には、撮像部140は、車両の左側方を撮影するための左サイドカメラを備えて構成されている。なお、撮像部140の車載カメラで撮影したい範囲は、車両周辺の路面上の白線が写る範囲である。そのため、車載カメラは、その撮影範囲に路面上の白線が含まれるような姿勢で車両に設置される。撮像部140は、車両の左周辺を車両周囲画像(左サイドビュー画像)として所定のタイムインターバル(複数枚の画像を撮影する時間間隔)で撮影し、当該車両周囲画像を示す車両周囲画像データをオフセット補正装置100に出力する。
角速度センサ160は、車両の走行に伴って変化する角速度を検出する。また、角速度センサ160は、検出した角速度を積分して一定時間ごとに車両の回転角度(移動方位)を出力する。
次に、オフセット補正装置100の内部構成について説明する。オフセット補正装置100は、撮像部140により撮影された車両周囲画像を用いて、車両に搭載される角速度センサ160のオフセット値を補正するものである。また、オフセット補正装置100は、画像入力部200、パターン記憶部220、直線判定部240、記憶制御部260、画像記憶部280、直進判定部300、オフセット測定部320、補正部340およびオフセット情報記憶部360を備えて構成されている。
画像入力部200は、撮像部140により所定のタイムインターバル毎に撮影された車両周囲画像データを逐次入力する。また、画像入力部200は、入力した車両周囲画像データを直線判定部240に逐次出力する。また、画像入力部200は、入力した車両周囲画像データを直進判定部300に必要に応じて出力する。
パターン記憶部220は、直線状の被写体(本実施形態では、路面上の白線)を表した複数のパターンデータを記憶する記憶部である。具体的には、パターン記憶部220は、撮像部140を備えた車両と路面上の白線との所定距離毎(例えば、50cm毎)に、車両が路面上の白線に対して平行に走行している場合に撮像部140が車両周辺を撮影したときに車両周囲画像に写るであろう白線を表したパターンデータ(撮像部140を構成するカメラの歪特性に考慮して生成されたデータ)を記憶している。
直線判定部240は、画像入力部200より逐次出力された車両周囲画像データのそれぞれについて、直線状の被写体画像部分が存在するか否かを画像認識処理により判定する。具体的には、直線判定部240は、第1類似度算出部400および第1判定部420を備えて構成されている。
第1類似度算出部400は、画像入力部200より出力された車両周囲画像データを入力する。また、第1類似度算出部400は、入力した車両周囲画像データを構成する各画素の輝度値に基づいて、隣接する画素間の輝度差が所定値より大きくなるエッジを抽出する。ここで、車両周囲画像内の複数箇所にエッジが存在すれば、第1類似度算出部400はそれら複数のエッジを抽出する。これらのエッジは、車両周囲画像内に写っている何らかの被写体画像部分に相当する。
また、第1類似度算出部400は、抽出した各エッジの被写体画像部分とパターン記憶部220に記憶されている各種パターンデータとの類似度をそれぞれ算出する。具体的には、第1類似度算出部400は、エッジとして抽出した被写体画像部分の形状とパターンデータの形状との一致度合いからそれらの類似度を算出する。
第1判定部420は、第1類似度算出部400により算出された類似度が所定値以上となった被写体画像部分とパターンデータとの組み合わせが存在するか否かを判定し、存在すると判定した場合、撮像部140により撮影された車両周囲画像の中に直線状の被写体画像部分が存在すると判定する。ここで言う直線状の被写体画像部分とは、パターンデータと略一致する白線の画像部分である。また、第1判定部420は、第1類似度算出部400により各エッジの被写体画像部分について算出された類似度が何れも所定値未満の場合、撮像部140により撮影された車両周囲画像の中に直線状の被写体画像部分が存在しないと判定する。
第1判定部420は、直線状の被写体画像部分(白線画像部分)が存在すると判定した場合、直線状の被写体画像部分が存在する旨を示す直線存在通知情報を記憶制御部260および直進判定部300に出力する。この直線存在通知情報を受けて、記憶制御部260は、当該直線状の被写体画像部分を第1類似度算出部400から取得し、基準画像データとして画像記憶部280に記憶させる。
直進判定部300は、第1判定部420から出力された直線存在通知情報を受けて、車両が直進走行しているか否かについて判定する。具体的には、直進判定部300は、第2類似度算出部440および第2判定部460を備えて構成される。
第2類似度判定部440は、第1判定部420から直線存在通知情報を受けた後、画像入力部200から車両周囲画像データを逐次入力する。ここで入力する車両周囲画像データは、直線判定部240が直線状の被写体画像部分の存在を確認した車両周囲画像の撮影タイミングよりも後のタイミングで撮像部140により撮影された画像データである。第2類似度算出部440は、入力した車両周囲画像データに対して、第1類似度算出部400と同様のエッジ抽出処理を行う。
また、第2類似度算出部440は、抽出した各エッジの被写体画像部分と画像記憶部280に記憶されている基準画像データ(直線状の被写体画像部分)との類似度を算出する。具体的には、第2類似度算出部440は、エッジとして抽出した被写体画像部分の形状と基準画像データの形状との一致度合いから類似度を算出する。
第2判定部460は、第2類似度算出部440により算出された類似度が所定値以上となった被写体画像部分と基準画像データとの組み合わせが存在するか否かを判定し、存在すると判定した場合、車両が直進走行していると判定する。すなわち、前のタイミングで撮影した車両周囲画像から抽出して画像記憶部280に記憶した直線状の被写体画像部分と略一致する被写体画像部分が今回撮影した車両周囲画像にも含まれているということは、直線状の白線と車両との位置関係がほぼ変わっていないということなので、車両が直進走行していると判定できる。この場合、第2判定部460は、車両が直進走行している旨を示す直進判定通知情報をオフセット測定部320に出力する。一方、第2判定部460は、第2類似度算出部440により各エッジの被写体画像部分について算出された類似度が何れも所定値未満の場合、車両が直進走行していないと判定する。
なお、直線状の被写体画像部分(白線画像部分)を画像記憶部280に記憶するときに車両周囲画像内における白線画像部分の位置も記憶しておけば、第2類似度算出部440は、車両周囲画像の全領域ではなく、記憶しておいた位置を含む部分領域だけを対象としてエッジ抽出することができる。つまり、部分領域だけを対象として抽出したエッジと、画像記憶部280に記憶しておいた直線状の被写体画像部分との類似度だけ判定すれば良くなる。そして、第2判定部460は、第2類似度算出部440により算出された類似度が所定値以上となったか否かを判定し、所定値以上であると判定した場合、車両が直進走行していると判定する。
オフセット測定部320は、第2判定部460から直進判定通知情報を入力した場合、角速度センサ160の出力値をオフセット値として測定する。また、オフセット測定部320は、測定した角速度センサ160のオフセット値をオフセット情報として補正部340に出力する。
補正部340は、オフセット測定部320により出力されたオフセット情報をそれまでオフセット情報記憶部360に記憶されていたオフセット情報に代えて記憶させる。なお、角速度センサ160は、角速度センサ160からの出力値とオフセット情報記憶部360に記憶されているオフセット情報により示されるオフセット値との差分に基づき所定の演算を行うことによって車両の角速度を求めている。
次に、第1の実施形態によるオフセット補正装置100が、車両に搭載される角速度センサ160のオフセット値を補正する様子を説明する。図2は、第1の実施形態によるオフセット補正装置100が角速度センサ160のオフセット値を補正する様子を説明する図である。
図2(a)に示すように、オフセット補正装置100を備えた車両800が道路500を道路進行方向520に沿って走行している。このとき、車両800が備える撮像部140(図2(a)では、左サイドカメラ)は、道路500上の白線560を含む領域を車両周囲画像(左サイドビュー画像)として撮影し、当該車両周囲画像を示す車両周囲画像データをオフセット補正装置100に出力する。オフセット補正装置100の画像入力部200は、撮像部140より出力された車両周囲画像データを入力する。
図2(b)は、画像入力部200により入力された車両周囲画像データ580を示す図である。図2(b)に示すように車両周囲画像データ580に写る白線560は、たる型に歪曲し、特にその中心部は歪みが著しい。この歪みは、撮像部140(左サイドカメラ)に設けられた魚眼レンズ等、撮像系の機構に起因して生ずる。
次に、第1類似度算出部400は、画像入力部200により入力された車両周囲画像データ580に対して上述した画像認識処理(エッジ抽出処理)を行い、白線560を含む各エッジ(被写体画像部分)を検出する。なお、車両周囲画像データ580には白線560のエッジのみを図示しているが、これ以外の被写体画像部分として他のエッジが存在する場合もある。なお、図2(c)は、パターン記憶部220に記憶されている複数のパターンデータのうち、第1類似度算出部400により抽出された白線560のエッジ形状に近いパターンデータ600を図示している。
次に、第1類似度算出部400は、図2(c)に示すように、検出した各エッジ(被写体画像部分)の形状とパターン記憶部220に記憶されているパターンデータ600の形状との一致度合いからそれらの類似度を算出する。
次に、第1判定部420は、第1類似度算出部400により各被写体画像部分について算出された類似度の中に所定値以上のものがあるか否かを判定する。第1判定部420は、所定値以上のものがあると判定した場合、撮像部140により撮影された車両周囲画像580の中に直線状の被写体画像部分が存在すると判定する。図2の説明では、第1判定部420は、撮像部140により撮影された車両周囲画像580について直線状の被写体画像部分として白線560が存在すると判定する。このとき、第1判定部420は、直線存在通知情報を記憶制御部260および直進判定部300に出力する。
次に、記憶制御部260は、第1判定部420から出力された直線存在通知情報を受けて、直線状の被写体画像部分(白線560)を第1類似度算出部400から取得し、基準画像データとして画像記憶部280に記憶させる。また、直進判定部300は、第1判定部420から出力された直線存在通知情報を受けて、車両800が直進走行しているか否かについての判定処理を開始する。
図2(d)は、車両800が、図2(a)における車両800の位置から撮影のタイムインターバル後に所定距離(例えば、10[m])だけ直進走行した様子を示している。このとき、車両800が備える撮像部140(左サイドカメラ)は、道路500上の白線620を含む領域を車両周囲画像(左サイドビュー画像)として撮影し、当該車両周囲画像を示す車両周囲画像データ640をオフセット補正装置100に出力する。オフセット補正装置100の画像入力部200は、撮像部140より出力された車両周囲画像データ640を入力する。
次に、直進判定部300が備える第2類似度算出部440は、画像入力部200により入力された車両周囲画像データ640に対して上述した画像認識処理(エッジ抽出処理)を行い、白線620を含む各エッジ(被写体画像部分)を検出する。次に、第2類似度算出部440は、検出した各エッジ(被写体画像部分)の形状と画像記憶部280に記憶されている基準画像データの形状との一致度合いからそれらの類似度を算出する。
次に、第2判定部460は、第2類似度算出部440により各エッジの被写体画像部分について算出された類似度の中に所定値以上のものがあるか否かを判定する。あると判定した場合、車両800が直進走行していると判定する。図2(d)の説明では、車両周囲画像640における白線620の形状が画像記憶部280に記憶した基準画像データの形状、つまり図2(b)の車両周囲画像580における白線560の形状とほぼ一致するため(すなわち、第2類似度算出部440により算出された類似度が所定値以上であるため)、第2判定部460は、車両800が直進走行していると判定する。この場合に第2判定部460は、直進判定通知情報をオフセット測定部320に出力する。
次に、オフセット測定部320は、第2判定部460から出力される直進判定通知情報を受けて、角速度センサ160の出力値をオフセット値として測定し、当該オフセット値を示すオフセット情報を補正部340に出力する。最後に、補正部340は、オフセット測定部320により出力されたオフセット情報をそれまでオフセット情報記憶部360に記憶されていたオフセット情報に代えて記憶させる。
なお、図2(d)の後も、直進判定部300は、所定のタイムインターバル後に撮像部140により撮影された車両周囲画像データを入力して、同様の直進判定処理を行う。このような直進判定処理を、車両が直進していないと判定するまで繰り返す。この一連の直進判定処理を行っている間、直線判定部240は直線判定処理を一時的に中止する。これにより、直進判定部300が直進判定処理を行っている間は、画像記憶部280に記憶される基準画像データは、直線状の被写体画像部分を直線判定部240が最初に検出したときのもの(白線560)に固定されている。
なお、直進判定部300が一連の直進判定処理を行っている間も、直線判定部240の直線判定処理を行うようにしても良い。この場合は、画像記憶部280に記憶される基準画像データはその都度更新される。これにより、直進判定部300は、常に今回撮影された車両周囲画像データと前回撮影された車両周囲画像データとで類似度を判定することになる。
図2(e)は、車両800が、図2(a)における車両800の位置から撮影のタイムインターバル後に所定距離(例えば、10[m])だけ進む間に車線変更(または蛇行)した様子を示している。このとき、車両800が備える撮像部140(左サイドカメラ)は、道路500上の白線620を含む領域を車両周囲画像(左サイドビュー画像)として撮影し、当該車両周囲画像を示す車両周囲画像データ660をオフセット補正装置100に出力する。オフセット補正装置100の画像入力部200は、撮像部140より出力された車両周囲画像データ660を入力する。
次に、直進判定部300が備える第2類似度算出部440は、画像入力部200により入力された車両周囲画像データ660に対して上述した画像認識処理(エッジ抽出処理)を行い、白線620を含む各エッジ(被写体画像部分)を検出する。次に、第2類似度算出部440は、検出した各エッジ(被写体画像部分)の形状と画像記憶部280に記憶されている基準画像データの形状との一致度合いからそれらの類似度を算出する。
次に、第2判定部460は、第2類似度算出部440により各エッジの被写体画像部分について算出された類似度の中に所定値以上のものがあるか否かを判定する。あると判定した場合、車両800が直進走行していると判定する。図2(e)の説明では、車両周囲画像660における白線620の形状が画像記憶部280に記憶した基準画像データの形状、つまり図2(b)の車両周囲画像580における白線560の形状と一致しないため(すなわち、第2類似度算出部440により算出された類似度が所定値未満であるため)、第2判定部460は、車両800が直進走行していないと判定する。この場合、オフセット補正装置100は、車両800に搭載される角速度センサ160のオフセット値を補正しない。
図2(f)は、車両800が、図2(a)における車両800の位置から撮影のタイムインターバル後に所定距離(例えば、10[m])だけ進む間にカーブ区間に差しかかった様子を示している。このとき、車両800が備える撮像部140(左サイドカメラ)は、道路500上の白線620を含む領域を車両周囲画像(左サイドビュー画像)として撮影し、当該車両周囲画像を示す車両周囲画像データ680をオフセット補正装置100に出力する。オフセット補正装置100の画像入力部200は、撮像部140より出力された車両周囲画像データ680を入力する。
次に、直進判定部300が備える第2類似度算出部440は、画像入力部200により入力された車両周囲画像データ680に対して上述した画像認識処理(エッジ抽出処理)を行い、白線620を含む各エッジ(被写体画像部分)を検出する。次に、第2類似度算出部440は、検出した各エッジ(被写体画像部分)の形状と画像記憶部280に記憶されている基準画像データの形状との一致度合いからそれらの類似度を算出する。
次に、第2判定部460は、第2類似度算出部440により各エッジの被写体画像部分について算出された類似度の中に所定値以上のものがあるか否かについて判定する。あると判定した場合、車両800が直進走行していると判定する。図2(f)の説明では、車両周囲画像660における白線620の形状が画像記憶部280に記憶した基準画像データの形状、つまり図2(b)の車両周囲画像580における白線560の形状と一致しないため(すなわち、第2類似度算出部440により算出された類似度が所定値未満であるため)、第2判定部460は、車両800が直進走行していないと判定する。この場合、オフセット補正装置100は、車両800に搭載される角速度センサ160のオフセット値を補正しない。
次に、第1の実施形態におけるオフセット補正装置100の動作について説明する。図3は、第1の実施形態によるオフセット補正装置100の動作例を示すフローチャート図である。図3におけるステップS100の処理は、例えば、車両のイグニッションキー(図示せず)がユーザによって操作されてオフセット補正装置100に電源が投入されることにより開始する。
まず、画像入力部200は、撮像部140により撮影された車両周囲画像データを1枚入力する(ステップS100)。次に、第1類似度算出部400は、画像入力部200により入力した車両周囲画像データに対して画像認識を行うことでエッジ(被写体画像部分)を検出し、当該検出した各エッジとパターン記憶部220に記憶されている各パターンデータとの類似度を算出する(ステップS120)。
次に、第1判定部420は、第1類似度算出部400により算出された類似度が所定値以上の被写体画像部分が車両周囲画像内にあるか否かについて判定する(ステップS140)。もし、第1類似度算出部400により算出された類似度が所定値以上の被写体画像部分が存在しないと第1判定部420にて判定した場合(ステップS140にてNO)、オフセット補正装置100は、車両のイグニッションキーがユーザによって操作されてオフセット補正装置100の電源が停止されたか否かについて判定する(ステップS260)。
もし、車両のイグニッションキーがユーザによって操作されてオフセット補正装置100の電源が停止されたとオフセット補正装置100にて判定した場合(ステップS260にてYES)、オフセット補正装置100は、図3における処理を終了する。一方、車両のイグニッションキーがユーザによって操作されてオフセット補正装置100の電源が停止されていないとオフセット補正装置100にて判定した場合(ステップS260にてNO)、処理はステップS100に遷移する。
一方、第1類似度算出部400により算出された類似度が所定値以上の被写体画像部分が存在すると第1判定部420にて判定した場合(ステップS140にてYES)、記憶制御部260は、類似度が所定値以上になっている直線状の被写体画像部分を基準画像データとして画像記憶部280に記憶させる(ステップS160)。なお、ここでは、車両周囲画像データ内における直線状の被写体画像部分の位置情報もあわせて記憶するものとする。
次に、画像入力部200は、次のタイムインターバル後に撮像部140により撮影された車両周囲画像データを1枚入力する(ステップS180)。そして、第2類似度算出部440は、画像入力部200により入力された車両周囲画像データに対して画像認識を行うことでエッジ(被写体画像部分)を検出し、当該検出したエッジと画像記憶部280に記憶されている基準画像データとの類似度を算出する(ステップS200)。ここでは、第2類似度算出部440は、画像記憶部280に記憶されている位置情報をもとに、当該位置を含む部分領域のみからエッジを抽出し、基準画像データの類似度を算出する。
次に、第2判定部460は、第2類似度算出部440により算出された類似度が所定値以上であるか否かについて判定する(ステップS220)。もし、第2類似度算出部440により算出された類似度が所定値以上でない(すなわち、車両が直進走行していない)と第2判定部440にて判定した場合(ステップS220にてNO)、処理はステップS260に遷移する。
一方、第2類似度算出部440により算出された類似度が所定値以上である(すなわち、車両が直進走行している)と第2判定部440にて判定した場合(ステップS220にてYES)、オフセット測定部320は、角速度センサ160の出力値をオフセット値として測定し、当該オフセット値を示すオフセット情報を補正部340に出力する。補正部340は、オフセット測定部320により出力されたオフセット情報をそれまでオフセット情報記憶部360に記憶されていたオフセット情報に代えて記憶させる(ステップS240)。
次に、オフセット補正装置100は、車両のイグニッションキーがユーザによって操作されてオフセット補正装置100の電源が停止されたか否かについて判定する(ステップS280)。もし、車両のイグニッションキーがユーザによって操作されてオフセット補正装置100の電源が停止されていないとオフセット補正装置100にて判定した場合(ステップS280にてNO)、処理はステップS180に遷移する。一方、車両のイグニッションキーがユーザによって操作されてオフセット補正装置100の電源が停止されたとオフセット補正装置100にて判定した場合(ステップS280にてYES)、オフセット補正装置100は、図3における処理を終了する。
以上詳しく説明したように、第1の実施形態では、パターン記憶部220にあらかじめ記憶されているパターンデータを用いて、撮像部140により撮影された車両周囲画像内に直線状の被写体画像部分(白線)が存在するか否かを判定する。そして、存在すると判定した場合、その後に撮影される車両周囲画像に含まれる被写体画像部分(白線)と最初に検出した直線状の被写体画像部分との類似度を算出し、当該類似度に基づいて車両が直進走行している(すなわち、角速度センサ160の出力が理論上ゼロである状態)か否かを判定するようにしている。
これにより、例えばGPS測位環境が悪い場合や、地図データが存在しない場所を走行している場合などでも、車両の走行中に角速度センサ160のオフセット値を補正することができる。また、地図データが間違っている場合や地図データが合っていて車線変更や蛇行運転した場合にも、角速度センサ160のオフセット値を誤って補正してしまうことをなくすことができる。よって、自立航法の測位精度ひいては自車位置の測位精度を向上させることができる。
また、第1の実施形態では、第2判定部460により車両が直進走行していると判定されている間は、角度センサ160のオフセット値を繰り返し補正している。車両の直進走行が検出されている間に例えば1回のみオフセット値を補正するようにしても良いが、繰り返し補正することにより、角速度センサ160のオフセット誤差が経時的に累積することを防止することができる。
また、第1の実施形態によれば、撮像部140(車載カメラ)により撮影される複数の車両周囲画像を用いて、車両が直進走行している状態を判定しているため、比較的大きな測位誤差を有するGPS受信機により絶対方位として得られるGPS方位から車両が直進走行している状態を判定する従来技術に比べて、当該判定の精度を良くすることができる。
なお、第1の実施形態では、第1判定部420により直線状の被写体画像部分が存在すると判定された場合、記憶制御部260が、当該直線状の被写体画像部分を基準画像データとして画像記憶部280に記憶させる例について説明したが、パターン記憶部240に記憶されている直線状の被写体を表したパターンデータを基準画像データとして画像記憶部280に記憶させても良い。この場合、第2類似度算出部440は、検出した被写体画像部分と画像記憶部280に記憶されている基準画像データ(パターンデータ)との類似度を算出する。
次に、本発明の第2の実施形態を図面に基づいて説明する。図4は、第2の実施形態によるオフセット補正装置100を備えた車載システム120の構成例を示すブロック図である。なお、図4において、図1に示した符号と同一の符号を付した構成要素は同様の機能を有するものであるので、ここでは重複する説明を省略する。
第2の実施形態においては、オフセット補正装置100は、図1のパターン記憶部220の代わりにマッピングテーブル記憶部480を備えている。また、第2の実施形態においては、オフセット補正装置100の直線判定部240は、第1類似度算出部400、第1判定部420の代わりに歪補正部500、直線検出部520を備えている。第2の実施形態は、撮像部140により撮影される車両周囲画像について、撮像部140のレンズ歪による画像のゆがみを補正し、当該補正された車両周囲画像について、直線状の被写体画像部分が存在するか否かを画像認識処理により判定する点に特徴がある。
マッピングテーブル記憶部480は、撮像部140により撮影される車両周囲画像について、撮像部140のレンズ歪による画像のゆがみを補正する際に用いられるマッピングテーブルを記憶する。マッピングテーブルは、撮像部140により撮影された車両周囲画像の画素位置と、レンズ歪による画像のゆがみが補正された車両周囲画像の画素位置との対応関係を記載したテーブルであり、撮影された車両周囲画像のある画素が補正後の車両周囲画像のどの画素に対応するかを示したものである。
歪補正部500は、画像入力部200により出力された車両周囲画像データをメモリ(図示せず)に格納し、マッピングテーブル記憶部480に記憶されているマッピングテーブルを用いて、その車両周囲画像データ上の各画素の移動を行ってレンズ歪による影響を補正する。歪補正部500は、歪補正した車両周囲画像データを直線検出部520に出力する。
直線検出部520は、歪補正部500により出力された車両周囲画像データを入力する。また、直線検出部520は、入力した車両周囲画像データに対して、例えば、公知のHough変換を行うことにより、歪補正した車両周囲画像データ内から直線状の被写体画像部分を検出する。
なお、直線検出の手法としてHough変換は単なる一例であり、これ以外の手法を用いても良い。例えば、直線検出部520は、歪補正部500から入力した車両周囲画像データに対してエッジ抽出処理を行うことにより、車両周囲画像データ内からエッジを抽出する。そして、直線検出部520は、そのエッジを構成する画素が直線状に並んでいるか否かによって、そのエッジが直線状の被写体画像部分か否かを判定する。
直線検出部520は、車両周囲画像から直線状の被写体画像部分を検出できた場合、直線状の被写体画像部分が存在する旨を示す直線存在通知情報を記憶制御部260および直進判定部300に出力する。記憶制御部260は、直線検出部520から直線存在通知情報を受けた場合、当該直線状の被写体画像部分で歪補正が施される前の画像データを歪補正部500のメモリから取得し、基準画像データとして画像記憶部280に記憶させる。
次に、第2の実施形態におけるオフセット補正装置100の動作について説明する。図5は、第2の実施形態によるオフセット補正装置100の動作例を示すフローチャート図である。図5におけるステップS400の処理は、例えば、車両のイグニッションキー(図示せず)がユーザによって操作されてオフセット補正装置100に電源が投入されることにより開始する。
まず、画像入力部200は、撮像部140により撮影された車両周囲画像データを1枚入力する(ステップS400)。次に、歪補正部500は、画像入力部200により入力した車両周囲画像データをメモリに格納し、マッピングテーブル記憶部480に記憶されているマッピングテーブルを用いて、その車両周囲画像データ上の各画素の移動を行ってレンズ歪による影響を補正する(ステップS420)。
次に、直線検出部520は、歪補正部500により歪補正された車両周囲画像データに対してHough変換を行うことにより、歪補正した車両周囲画像データ内から直線状の被写体画像部分を検出する(ステップS440)。もし、歪補正した車両周囲画像データ内から直線状の被写体画像部分を直線検出部520にて検出できなかった場合(ステップS440にてNO)、オフセット補正装置100は、車両のイグニッションキー(図示せず)がユーザによって操作されてオフセット補正装置100の電源が停止されたか否かについて判定する(ステップS560)。
もし、車両のイグニッションキーがユーザによって操作されてオフセット補正装置100の電源が停止されたとオフセット補正装置100にて判定した場合(ステップS560にてYES)、オフセット補正装置100は、図5における処理を終了する。一方、車両のイグニッションキーがユーザによって操作されてオフセット補正装置100の電源が停止されていないとオフセット補正装置100にて判定した場合(ステップS560にてNO)、処理はステップS400に遷移する。
一方、歪補正した車両周囲画像内から直線状の被写体画像部分を直線検出部520にて検出できた場合(ステップS440にてYES)、記憶制御部260は、当該直線状の被写体画像部分で歪補正が施される前の車両周囲画像データを歪補正部500のメモリから取得し、基準画像データとして画像記憶部280に記憶させる(ステップS460)。なお、ここでは、歪補正が施される前の車両周囲画像データ内における直線状の被写体画像部分の位置情報もあわせて記憶するものとする。
次に、画像入力部200は、次のタイムインターバル後に撮像部140により撮影された車両周囲画像データを1枚入力する(ステップS480)。そして、第2類似度算出部440は、画像入力部200により入力された車両周囲画像データに対して画像認識を行うことでエッジ(被写体画像部分)を検出し、当該検出したエッジと画像記憶部280に記憶されている基準画像データとの類似度を算出する(ステップS500)。ここでは、第2類似度算出部440は、画像記憶部280に記憶されている位置情報をもとに、当該位置を含む部分領域のみからエッジを抽出し、基準画像データの類似度を算出する。
次に、第2判定部460は、第2類似度算出部440により算出された類似度が所定値以上であるか否かについて判定する(ステップS520)。もし、第2類似度算出部440により算出された類似度が所定値以上でない(すなわち、車両が直進走行していない)と第2判定部440にて判定した場合(ステップS520にてNO)、処理はステップS560に遷移する。
一方、第2類似度算出部440により算出された類似度が所定値以上である(すなわち、車両が直進走行している)と第2判定部440にて判定した場合(ステップS520にてYES)、オフセット測定部320は、角速度センサ160の出力値をオフセット値として測定し、当該オフセット値を示すオフセット情報を補正部340に出力する。補正部340は、オフセット測定部320により出力されたオフセット情報をそれまでオフセット情報記憶部360に記憶されていたオフセット情報に代えて記憶させる(ステップS540)。
次に、オフセット補正装置100は、車両のイグニッションキーがユーザによって操作されてオフセット補正装置100の電源が停止されたか否かについて判定する(ステップS580)。もし、車両のイグニッションキーがユーザによって操作されてオフセット補正装置100の電源が停止されていないとオフセット補正装置100にて判定した場合(ステップS580にてNO)、処理はステップS480に遷移する。一方、車両のイグニッションキーがユーザによって操作されてオフセット補正装置100の電源が停止されたとオフセット補正装置100にて判定した場合(ステップS580にてYES)、オフセット補正装置100は、図5における処理を終了する。
以上詳しく説明したように、第2の実施形態においても、第1の実施形態と同様に、例えばGPS測位環境が悪い場合や、地図データが存在しない場所を走行している場合などでも、車両の走行中に角速度センサ160のオフセット値を補正することができる。また、地図データが間違っている場合や地図データが合っていて車線変更や蛇行運転した場合にも、角速度センサ160のオフセット値を誤って補正してしまうことをなくすことができる。よって、自立航法の測位精度ひいては自車位置の測位精度を向上させることができる。
また、第2の実施形態では、撮像部140により撮影される車両周囲画像データのゆがみを補正して、その車両周囲画像データ自身を用いて、直線状の被写体画像部分が存在するか否かを判定している。ここで、撮像部140のレンズ歪による画像のゆがみを補正する際に用いられるマッピングテーブルは、撮像部140のレンズ歪の特性に対応したものが1つあれば十分である。
これに対して、第1の実施形態では、直線状の被写体画像部分が存在するか否かを判定する際に用いるパターンデータは、撮像部140を備えた車両と路面上の白線との所定距離毎に複数必要である。つまり、第2の実施形態では、撮像部140により撮影される車両周囲画像について、直線状の被写体画像部分が存在するか否かを判定するために予め登録しておく必要のある情報の記憶容量を第1の実施形態より減らすことができる。
なお、上記第1および第2の実施形態では、直線状の被写体画像部分が路面上の白線である例について説明したが、当該直線状の被写体画像部分は、直進走行している車両に平行な直線状のものであれば何でも良い。例えば、側溝、段差、ガードレールでも良い。この場合は、第1の実施形態では、これらのパターンデータを画像記憶部280に予め記憶しておく。
また、上記第1および第2の実施形態では、撮像部140が車両の左に設置された1つの車載カメラから構成される例について説明したが、撮像部140は、直線状の被写体画像部分を含む車両周囲画像を撮影することが可能な位置に設置された車載カメラから構成されれば良い。例えば、車両の前または後に設置された1つの車載カメラから構成されていても良い。
その他、上記第1および第2の実施形態は、何れも本発明を実施するにあたっての具体化の一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその精神、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。