(57)【要約】【課題】周囲の路面が複数の平面から構成されている場合であっても、高精度な外部パラメータのキャリブレーションが可能である。【解決手段】キャリブレーション装置は、路面を走行する車両に搭載されるカメラと、カメラで撮影して得られた撮影画像から特徴点を抽出する特徴点抽出部と、特徴点抽出部が抽出する特徴点を追跡する追跡部と、特徴点の追跡によって得られる特徴点の軌跡を記憶する記憶部と、特徴点の軌跡を用いて車両が走行する平面を推定する路面推定部と、推定された平面に基づきキャリブレーションに用いる特徴点の軌跡であるキャリブレーション用軌跡を算出する算出部と、キャリブレーション用軌跡を用いてカメラの外部パラメータのキャリブレーションを実行する外部パラメータ推定部とを備える。【選択図】図２
2020154742.tif 000002
【特許請求の範囲】
【請求項１】
路面を走行する車両に搭載されるカメラと、
前記カメラで撮影して得られた撮影画像から特徴点を抽出する特徴点抽出部と、
前記特徴点抽出部が抽出する前記特徴点を追跡する追跡部と、
前記特徴点の追跡によって得られる前記特徴点の軌跡を記憶する記憶部と、
前記特徴点の軌跡を用いて前記車両が走行する平面を推定する路面推定部と、
推定された前記平面に基づきキャリブレーションに用いる前記特徴点の軌跡であるキャリブレーション用軌跡を算出する算出部と、
前記キャリブレーション用軌跡を用いて前記カメラの外部パラメータのキャリブレーションを実行する外部パラメータ推定部とを備えるキャリブレーション装置。
【請求項２】
請求項１に記載のキャリブレーション装置において、
前記算出部は、前記記憶部に記憶された前記特徴点の軌跡のうち、前記車両の接地面と同一の平面上に存在する前記特徴点の軌跡を前記キャリブレーション用軌跡として算出するキャリブレーション装置。
【請求項３】
請求項１に記載のキャリブレーション装置において、
前記算出部は、前記記憶部に記憶された前記特徴点の軌跡のうち、前記車両の接地面と同一の平面上に存在しない前記特徴点の軌跡を構成する座標を、前記車両の接地面と同一の平面上の座標に補正することで前記キャリブレーション用軌跡として算出するキャリブレーション装置。
【請求項４】
請求項３に記載のキャリブレーション装置において、
前記算出部は、前記特徴点の軌跡の分布から複数の近似直線を算出して、該複数の近似直線同士の交点から、前記車両の接地面である第１面と、前記交点に対して該第１面と反対側の第２面とのなす角度差を算出するキャリブレーション装置。
【請求項５】
請求項１に記載のキャリブレーション装置において、
前記路面推定部は、前記路面の形状を２つの平面の組み合わせと仮定して、前記車両が走行する平面を推定するキャリブレーション装置。
【請求項６】
請求項１に記載のキャリブレーション装置において、
前記路面推定部は、前記車両が走行する領域における前記特徴点の軌跡を用いて前記車両が走行する平面を推定するキャリブレーション装置。
【請求項７】
路面を走行する車両に搭載され、カメラおよび記憶部を備えるキャリブレーション装置が実行するキャリブレーション方法であって、
前記カメラで撮影して得られた撮影画像から特徴点を抽出し前記特徴点を追跡することと、
前記特徴点の追跡によって得られる前記特徴点の軌跡を前記記憶部に記憶することと、
前記特徴点の軌跡を用いて前記車両が走行する平面を推定することと、
推定された前記平面に基づきキャリブレーションに用いる前記特徴点の軌跡であるキャリブレーション用軌跡を算出することと、
前記キャリブレーション用軌跡を用いて前記カメラの外部パラメータのキャリブレーションを実行することとを含むキャリブレーション方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャリブレーション装置およびキャリブレーション方法に関する。
【背景技術】
【０００２】
ドライバーの支援や自動運転の目的で車載カメラの普及が進んでいる。車載カメラは設計に基づいた位置および姿勢で車両に取り付けられるが、取り付けに誤差が生じることが避けられない。車載カメラにより撮影して得られた画像を用いて距離計算などを行う際には、この取り付け誤差が距離精度に大きな影響を与える。そのため、車載カメラの取り付けの誤差を外部パラメータとしてあらかじめ推定し、距離計算などを行う際にカメラの外部パラメータを考慮することが広く行われている。外部パラメータは、工場出荷前に工場内にて所定のテストパターンなどを用いて算出することも可能であるが、乗車人員の増減や車両中の重量物の移動などにより車両の姿勢が変化するため、厳密には外部パラメータも変化することが知られている。そのため車両が道路を走行中に外部パラメータを推定すること、すなわち外部パラメータのキャリブレーションが求められている。なお走行中に外部パラメータをキャリブレーションができれば工場出荷前の外部パラメータの算出を省略でき、作業工程の削減にも資する。特許文献１には、車載カメラと、前記車載カメラによって撮影され、画像処理によって認識される路面標示の特徴量から、撮影時における前記車載カメラの設置高および角度からなるカメラパラメータを算出するカメラパラメータ算出部と、前記カメラパラメータ算出部により出力されるカメラパラメータにより、前記車載カメラの光軸補正制御を行うカメラパラメータ補正部と、を備えたことを特徴とする車載カメラのキャリブレーション装置が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−１１１７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載されている発明では、周囲の路面が平坦でない場合に高精度な外部パラメータのキャリブレーションが困難である。
【課題を解決するための手段】
【０００５】
本発明の第１の態様によるキャリブレーション装置は、路面を走行する車両に搭載されるカメラと、前記カメラで撮影して得られた撮影画像から特徴点を抽出する特徴点抽出部と、前記特徴点抽出部が抽出する前記特徴点を追跡する追跡部と、前記特徴点の追跡によって得られる前記特徴点の軌跡を記憶する記憶部と、前記特徴点の軌跡を用いて前記車両が走行する平面を推定する路面推定部と、推定された前記平面に基づきキャリブレーションに用いる前記特徴点の軌跡であるキャリブレーション用軌跡を算出する算出部と、前記キャリブレーション用軌跡を用いて前記カメラの外部パラメータのキャリブレーションを実行する外部パラメータ推定部とを備える。
本発明の第２の態様によるキャリブレーション方法は、路面を走行する車両に搭載され、カメラおよび記憶部を備えるキャリブレーション装置が実行するキャリブレーション方法であって、前記カメラで撮影して得られた撮影画像から特徴点を抽出し前記特徴点を追跡することと、前記特徴点の追跡によって得られる前記特徴点の軌跡を前記記憶部に記憶することと、前記特徴点の軌跡を用いて前記車両が走行する平面を推定することと、推定された前記平面に基づきキャリブレーションに用いる前記特徴点の軌跡であるキャリブレーション用軌跡を算出することと、前記キャリブレーション用軌跡を用いて前記カメラの外部パラメータのキャリブレーションを実行することとを含む。
本発明の第３の態様によるキャリブレーションプログラムは、路面を走行する車両に搭載され、カメラおよび記憶部を備えるキャリブレーション装置に、前記カメラで撮影して得られた撮影画像から特徴点を抽出し前記特徴点を追跡することと、前記特徴点の追跡によって得られる前記特徴点の軌跡を前記記憶部に記憶することと、前記特徴点の軌跡を用いて前記車両が走行する平面を推定することと、推定された前記平面に基づきキャリブレーションに用いる前記特徴点の軌跡であるキャリブレーション用軌跡を算出することと、前記キャリブレーション用軌跡を用いて前記カメラの外部パラメータのキャリブレーションを実行することとを実行させる。
【発明の効果】
【０００６】
本発明によれば、周囲の路面が複数の平面から構成されている場合であっても、高精度な外部パラメータのキャリブレーションが可能である。
【図面の簡単な説明】
【０００７】
【図１】キャリブレーション装置１００を備える車両Ｐの構成を示すブロック図
【図２】図２（ａ）は追跡点情報１０２Ａの一例を示す図、図２（ｂ）は補正済み追跡点情報１０２Ｂの一例を示す図
【図３】走行中キャリブレーションプログラム１０３Ａの機能ブロック図
【図４】図４（ａ）は道路の平面図、図４（ｂ）は道路の断面図、図４（ｃ）は特徴点の移動速度を示す図
【図５】図５（ａ）は道路の断面図、図５（ｂ）は算出特徴点位置を示す図
【図６】特徴点抽出部２０２の動作を表すフローチャート
【図７】追跡部２０３の動作を表すフローチャート
【図８】路面推定部２０５の動作を表すフローチャート
【図９】算出部２０６の動作を表すフローチャート
【図１０】外部パラメータ推定部２０８の動作を表すフローチャート
【図１１】第２の実施の形態における路面推定部２０５の動作を説明する図
【図１２】第２の実施の形態における路面推定部２０５の動作を示すフローチャート
【発明を実施するための形態】
【０００８】
―第１の実施の形態―
以下、図１〜図１０を参照して、本発明にかかるキャリブレーション装置の第１の実施の形態を説明する。
【０００９】
図１は、本発明にかかるキャリブレーション装置１００、およびキャリブレーション装置１００を備える車両Ｐの構成を示すブロック図である。なお本実施の形態では、車両Ｐを他の車両と区別するために「自車両」Ｐと呼ぶこともある。
【００１０】
車両Ｐは、キャリブレーション装置１００と、車両Ｐの前方を撮影するカメラ１１１と、キャリブレーション装置１００の出力に基づき運転者へ情報を提示する表示装置１０４と、車両Ｐの速度を測定する車速センサ１０５と、車両Ｐの舵角を測定する舵角センサ１０６とを備える。カメラ１１１、車速センサ１０５、および舵角センサ１０６が取得した情報は、キャリブレーション装置１００に送信される。
【００１１】
カメラ１１１はたとえば車両Ｐの前方に取り付けられ、車両Ｐの周囲を撮影する。カメラ１１１の撮影範囲には、車両Ｐが走行する路面が含まれる。カメラ１１１の車両Ｐとの位置・姿勢関係の設計値は、外部パラメータ初期値１０３Ｃとして後述するフラッシュメモリ１１２に格納される。ただし、カメラ１１１の車両Ｐへの取り付けが設計値からずれが生じることは避けられず、実際の取り付け状態に対応する理想的な外部パラメータと、設計値である外部パラメータ初期値１０３Ｃとは一致しない。
【００１２】
カメラ１１１はレンズおよび撮像素子を備え、これらの特性、たとえばレンズの歪みを示すパラメータであるレンズ歪み係数、光軸中心、焦点距離、撮像素子の画素数および寸法が内部パラメータ初期値としてＲＯＭ１０３に格納される。また、後述するキャリブレーションプログラムにより算出された外部パラメータ１１２Ａがフラッシュメモリ１１２に保存される。
【００１３】
キャリブレーション装置１００は、中央演算装置であるＣＰＵ１０１と、読み書き可能な記憶装置であるＲＡＭ１０２と、読み出し専用の記憶装置であるＲＯＭ１０３と、フラッシュメモリ１１２とを備える。ＣＰＵ１０１は、ＲＡＭ１０２、ＲＡＭ１０３、およびフラッシュメモリ１１２と信号線により接続される。
【００１４】
ＣＰＵ１０１は、ＲＯＭ１０３に格納されるプログラムをＲＡＭ１０２に展開して実行する。ＲＡＭ１０２には、後述するプログラムが利用する追跡点情報１０２Ａ、補正済み追跡点情報１０２Ｂ、および外部パラメータ１０２Ｃが格納される。追跡点情報１０２Ａおよび補正済み追跡点情報１０２Ｂの構造は後述する。外部パラメータ１０２Ｃは、キャリブレーション過程における途中の値であり、キャリブレーション終了まで書き換えられながら使用される。
【００１５】
ＲＯＭ１０３には、走行中キャリブレーションプログラム１０３Ａと、外部パラメータ初期値１０３Ｃと、カメラ利用プログラム１０３Ｄとが格納される。走行中キャリブレーションプログラム１０３Ａは、車両Ｐの走行中に外部パラメータをキャリブレーションする。走行中キャリブレーションプログラム１０３Ａの動作は後述する。
【００１６】
外部パラメータ初期値１０３Ｃは、前述のとおり外部パラメータの設計値である。カメラ利用プログラム１０３Ｄとは、カメラ１１１を利用するプログラムであり、たとえばカメラ１１１が撮影して得られた画像を用いて自車両Ｐと周囲の車両との距離を算出し、その距離が所定の距離以下の場合は表示装置１０４に警告を表示する。カメラ利用プログラム１０３Ｄは、実行のためにカメラ１１１の外部パラメータおよび内部パラメータを必要としており、これらをフラッシュメモリ１１２から読み込む。カメラ利用プログラム１０３Ｄは、フラッシュメモリ１１２に外部パラメータ１１２Ａおよび内部パラメータが保存されていない場合は、ＲＯＭ１０３に保存されている内部パラメータ初期値および外部パラメータ初期値１０３Ｃを用いる。
【００１７】
フラッシュメモリ１１２は不揮発性記憶媒体であり、フラッシュメモリ１１２には走行中キャリブレーションプログラム１０３Ａが出力する外部パラメータ１１２Ａが格納される。なお本実施の形態では外部パラメータのキャリブレーションのみを説明するが、キャリブレーション装置１００は内部パラメータのキャリブレーションも行ってもよい。
【００１８】
（追跡点情報１０２Ａ）
図２（ａ）は、ＲＡＭ１０２に保存される追跡点情報１０２Ａの一例を示す図である。追跡点情報１０２Ａには、特徴点ごとに、座標および状態の情報が格納される。ただし特徴点ごとの座標の情報は時刻ごとに記録される。すなわち・・には特徴点が移動した座標が記録されるので、・・に記録されている特徴点を以下では「特徴点軌跡」と呼ぶこともある。
【００１９】
図２（ａ）の行は個別の特徴点を表し、列は撮影時刻ｔ１〜ｔ５における特徴点の撮影画像上の座標、および特徴点の追跡の状態を表す。以下では、撮影画像上の座標を「画像座標系」の座標とも呼ぶ。本実施の形態では画像座標系は、撮影画像の左上を原点とし、右をＸ軸の正方向、下をＹ軸の正方向と定義する。
【００２０】
なお撮影時刻は、後述する特徴点軌跡の移動速度の算出に十分な情報があればよい。たとえば撮影時刻は、現実の時刻、たとえば「２０１９年１月２日３時４５分１２．３４５秒」などでもよいし、所定の時刻、たとえばキャリブレーション装置１００が直前に電源がオンにされてからの経過時刻でもよい。
【００２１】
特徴点に付した番号、すなわち１００１、１００２などは、特徴点を識別する識別子であり、ここでは便宜的に抽出された順番に通し番号で付した番号を用いている。図２（ａ）は、時刻ｔ１に撮影された撮影画像からは特徴点が３つ抽出されたことを示しており、同様に時刻ｔ２、ｔ３、ｔ４に撮影された撮影画像からは４つ、時刻ｔ５に撮影された撮影画像からは１つ特徴点が抽出され、追跡に成功したことが示されている。時刻ｔ２、ｔ３の撮影画像から抽出された４つの特徴点のうち３つ、すなわち特徴点１００１と特徴点１００２と特徴点１００３は、時刻ｔ１から追跡が継続されていることを表している。
【００２２】
時刻ｔ５に撮影された撮影画像からは、特徴点１００１、１００３、１００４が抽出されなかったので図２（ａ）では「ｘ」マークを付している。なお図２（ａ）に示す例では時刻ｔ１〜ｔ５のみを表示しているが、時刻はこれに限定されない。時刻を増やすと無限にテーブルサイズが無限に大きくなりメモリを圧迫するため、公知のリングバッファ技術等により、テーブルを循環的に活用する。
【００２３】
追跡点情報１０２Ａの「状態」の列は、特徴点の追跡が完了したか否かを示す情報が格納される。図２（ａ）に示す例では、特徴点の追跡が完了した特徴点の状態の欄には「ＯＫ」が格納され、特徴点の追跡が完了していない特徴点の状態の欄には「未」が格納される。
【００２４】
（補正済み追跡点情報１０２Ｂ）
図２（ｂ）は、ＲＡＭ１０２に保存される補正済み追跡点情報１０２Ｂの一例を示す図である。補正済み追跡点情報１０２Ｂには、特徴点ごとに、時刻ごとの補正された座標が記録される。補正済み追跡点情報１０２Ｂに記載される座標は、追跡点情報１０２Ａと同様に撮影画像系における座標である。
【００２５】
補正済み追跡点情報１０２Ｂには追跡点情報１０２Ａに記載されている特徴点のうち、追跡が完了している特徴点の情報が記載される。また、後述するように補正が不要な特徴点も存在するので、その特徴点の座標は追跡点情報１０２Ａと同様である。たとえば図２（ｂ）に示す例では、特徴点１００１、１００３、１００４を示しているが、そのうち特徴点１００１は補正が不要なので追跡点情報１０２Ａと座標が同一である。その一方で特徴点１００３、１００４は補正が行われて特徴点の座標が補正されている。たとえば特徴点１００３の時刻ｔ１の座標は、追跡点情報１０２Ａでは（ｘ３１、ｙ３１）であったが、補正済み追跡点情報１０２Ｂでは（ｘ３１ａ、ｙ３１ａ）に補正されている。
【００２６】
図３は、ＣＰＵ１０１が実行する走行中キャリブレーションプログラム１０３Ａが有する機能を機能ブロックとして表し、機能ブロック同士、および機能ブロックとＲＡＭ１０２とのデータの流れを示す図である。
【００２７】
走行中キャリブレーションプログラム１０３Ａは、その機能として画像取得部２０１と、特徴点抽出部２０２と、追跡部２０３と、蓄積部２０４と、路面推定部２０５と、算出部２０６と、実施判定部２０７と、外部パラメータ推定部２０８と、採否判定部２０９と、車両運動取得部２１０とを備える。なお車両運動取得部２１０は、図３では作図の都合により走行中キャリブレーションプログラム１０３Ａの外部に示されている。画像取得部２０１、特徴点抽出部２０２、および追跡部２０３は、カメラ１１１が画像を撮影するたびに実行される。
【００２８】
カメラ１１１は、連続して高い頻度、たとえば毎秒３０回撮影する。カメラ１１１が撮影して得られた画像（以下、撮影画像）は、撮影するたびにキャリブレーション装置１００に送信される。画像取得部２０１は、カメラ１１１から撮影画像を受信し、受信した撮影画像を特徴点抽出部２０２、および追跡部２０３に出力する。画像取得部２０１は、たとえば、カメラ１１１から撮影画像が入力されるたびに特徴点抽出部２０２と追跡部２０３に撮影画像を出力する。ただし、処理負荷低減等を目的として、画像取得部２０１は１回おきに出力する構成としてもよい。
【００２９】
車両運動取得部２１０は、車速センサ１０５および舵角センサ１０６から送信される自車両Ｐの速度および舵角を車両運動情報として走行中キャリブレーションプログラム１０３Ａに出力する。ただし車両運動取得部２１０は、得られた情報を瞬時値として出力してもよいし、得られた情報を演算して、たとえば積分して出力してもよい。
【００３０】
特徴点抽出部２０２は、画像取得部２０１から入力される撮影画像に対して画像処理を施して特徴点を抽出する。ここでいう特徴点とは、たとえば画像中の壁の角、縁石の角、破線の角、横断歩道の角、などのエッジの交点、すなわちコーナー特徴点である。コーナー特徴点は、たとえば公知の技術であるハリスオペレータを適用することにより抽出できる。特徴点抽出部２０２は、抽出した特徴点の画像座標系における座標をＲＡＭ１０２に出力する。特徴点抽出部２０２により抽出された特徴点の情報は、ＲＡＭ１０２に保存される。
【００３１】
追跡部２０３は、ＲＡＭ１０２から読み込む、直前の撮影画像から得られた特徴点、すなわち前フレームの特徴点を対象として、画像取得部２０１から入力される最新の撮影画像を用いて追跡処理を行う。すなわち追跡部２０３は、異なる時刻に撮影された撮影画像中の特徴点を追跡して特徴点の軌跡を算出する。特徴点の追跡には、既知の追跡手法であるＳＡＤ（Sum  of  Absolute  Difference）やＳＳＤ（Sum  of  Squared  Difference）、ＬＫ（Lucas‐Kanade）法などを用いることができる。そして、追跡した特徴点に関する情報を追跡部２０３に出力する。
【００３２】
蓄積部２０４は、追跡部２０３から出力された特徴点軌跡の情報をＲＡＭ１０２に追跡点情報１０２Ａとして記録する。さらに蓄積部２０４は、追跡部２０３から出力された特徴点軌跡の情報を路面推定部２０５に出力する。路面推定部２０５は、ＲＡＭ１０２に記録された特徴点軌跡の情報を用いて自車両Ｐが走行する道路の路面を算出する。算出部２０６は、ＲＡＭ１０２に記録された特徴点軌跡の情報を用いて、キャリブレーションに適した特徴点軌跡を算出し補正済み追跡点情報１０２ＢとしてＲＡＭ１０２に記録する。路面推定部２０５および算出部２０６の詳細は後述する。
【００３３】
実施判定部２０７は、キャリブレーション実施の可否を判断をする。特徴点軌跡の総数が少ない状態で実施すると、誤差系列が含まれていた場合に大きく誤ったキャリブレーション結果となる。そこで、特徴点軌跡があらかじめ定めた所定の数以上蓄積された段階でキャリブレーションを実施する。また、キャリブレーションを実施するには、自車中心から見て、進行方向の左側と右側の領域にそれぞれ特徴点軌跡が必要となる。実施判定部２０７は補正済み追跡点情報１０２Ｂを参照して、自車中心から見て、左側と右側の領域にそれぞれあらかじめ定めた所定の数の特徴点軌跡が得られている場合に、外部パラメータ推定部２０８に実行指令を出す。
【００３４】
外部パラメータ推定部２０８は、得られた特徴点の軌跡が同一平面上に存在すると仮定してカメラ１１１の外部パラメータを算出する。外部パラメータ推定部２０８は、算出部２０６が算出した特徴点軌跡の位置、すなわち補正済み追跡点情報１０２Ｂに記録されている特徴点の位置を現在の外部パラメータ１０２Ｃを用いて自車両Ｐの上部から見下ろしたように俯瞰変換する。そして外部パラメータ推定部２０８は、俯瞰視点での特徴点軌跡の角度や長さを用いて、カメラの３軸角度および高さを推定する。３軸角度とは、カメラのロール角、ピッチ角、およびヨー角である。取得した特徴点の軌跡は、車両Ｐが直進している際に、車両Ｐが接地する路面平面から取得した特徴点軌跡なので、カメラの３軸角度と高さが演算に使用した外部パラメータ１０２Ｃと一致するならば、俯瞰視点での複数の特徴点軌跡は平行かつ俯瞰映像縦方向に垂直であり、所定の長さとなる。この特徴点軌跡が理想軌跡である。
【００３５】
カメラの３軸角度と高さが、演算子に使用した外部パラメータ１０２Ｃと一致しない場合、すなわち外部パラメータ１０２Ｃに誤差があるは、俯瞰視点での特徴点軌跡が理想軌跡に対してそれぞれ特徴的な差異が生じる。ピッチ角に誤差がある場合は、俯瞰視点での特徴点軌跡がハの字状に開く。ヨー角に誤差がある場合は、俯瞰視点での自車両Ｐの左右の特徴点軌跡に、長さの差が生じる。ロール角に誤差がある場合は、特徴点軌跡全体が斜めに回転する。カメラ高さに誤差がある場合は、特徴点軌跡の長さが所定の長さから差異が生じる。
【００３６】
外部パラメータ推定部２０８は各パラメータを変化させ、理想軌跡に近づくように公知の最適化技術を用いて各パラメータを補正することで、キャリブレーションを実現する。詳細は後述する。最適化処理による推定終了後、外部パラメータ１０２Ｃを採否判定部２０９に出力する。
【００３７】
採否判定部２０９は、外部パラメータ推定部２０８から出力を受け取り、そのパラメータを最終パラメータとして採用してよいか判断する。最終パラメータとして採用してよいと判断された場合は、その外部パラメータ１０２Ｃは外部パラメータ１１２Ａとしてフラッシュメモリ１１２に書き込まれる。最終パラメータとして不採用と判断された場合は、推定途中の外部パラメータ１０２ＣとしてＲＡＭ１０２に書き込まれ、次の画像が入力される際に初期値として利用される。
【００３８】
採否判定部２０９は、最終パラメータとして判断してよいか否かを、収束性判定、回数判定、および画像判定の３つの観点で判断する。収束性判定とは、過去値と比較して十分変動が小さくなっているか否かの判定である。回数判定とは、複数回検証して所定の範囲内で同じ値が得られている否かの判定である。画像判定とは、俯瞰画像上で検証して、正しい俯瞰図とみなせる映像になっている否かの判定である。
【００３９】
採否判定部２０９は、収束性判定、回数判定、および画像判定の全てを満たす場合に、最終パラメータとして採用してよいと判断し、フラッシュメモリ１１２に書き込む。採否判定部２０９は、収束性判定および画像判定のみ満足すると判断する場合は、回数判定を満たした回数をカウントアップし、ＲＡＭ１０２に記憶されている特徴点列と演算途中の外部パラメータ１０２Ｃをクリアし、初期状態から再開始する。
【００４０】
（路面推定部２０５の動作概要）
図４は、路面推定部２０５による路面の推定処理の概念を説明する図である。図４（ａ）は道路の平面図、図４（ｂ）は道路の断面図、図４（ｃ）は特徴点の移動速度を示す図である。図４（ａ）〜図４（ｃ）では共通するＸＹＺ軸を定義する。ただし画像座標系におけるＸ軸およびＹ軸と区別するために、図４に示す座標系を「空間座標系」と呼ぶ。空間座標系において、Ｘ軸は道路の幅方向に平行であり、Ｙ軸は自車両Ｐの進行方向に平行であり、Ｚ軸は天地方向を示す。図４（ａ）において自車両は符号Ｐで示す車両であり、車道には白線Ｌ１０１と、中央線Ｌ１０２と、白線Ｌ１０３とが描画されている。中央線Ｌ１０２を挟んで自車両Ｐの逆側には、対向車両Ｑが走行している。破線Ｍは勾配の頂点であり詳しくは後述する。
【００４１】
車両Ｐが走行する車道は、雨水の排水などを目的として、法令により車道の幅方向に数％の勾配、すなわち横断勾配を有することが定められている。そのため、車道の中央部が高く、道路の幅方向に向かってなだらかに低くなる構成を有することが多い。ただし横断勾配の頂点位置と、中央線Ｌ１０２の幅方向中央部とが一致しないこともある。図４に示す例では、中央線Ｌ１０２よりも図示右側に勾配の頂点Ｍが位置している。
【００４２】
図４（ｂ）は道路の断面図であり、図示横方向の位置は図４（ａ）と対応している。図４ｂ）の図示上下方向は天地方向に対応しており、図示左右端の白線Ｌ１０１および白線Ｌ１０３の位置が最も低く、道路の中央部ほど高い。ただし中央線Ｌ１０２よりも少し右の頂点Ｍが最も高い。図４に示す例では断面の形状はＹ方向に関わらず一様であり、すなわち図４に示す道路は頂点Ｍの左側の第１面Ｓ１１と、頂点Ｍの右側の第２面Ｓ１２とから構成される。第１面Ｓ１１は、車両Ｐが接地している面ともいえる。以下では、第１面Ｓ１１を頂点Ｍを超えて延伸させて形成される平面を、仮想第２面Ｓ１２Ａと呼ぶ。第２面Ｓ１２と仮想第２面Ｓ１２Ａとのなす角を角度差θと呼ぶ。
【００４３】
図４（ｃ）は、検出された特徴点軌跡の位置と移動速度の関係を示す概念図である。ただし図４（ｃ）では全ての特徴点が自車両Ｐの接地面と同一平面上、すなわち第１面Ｓ１１または仮想第２面Ｓ１２Ａに存在すると仮定している。図４（ｃ）に示すそれぞれの白丸が特徴点軌跡であり、図示上方に存在するほど移動速度が速いことを示している。自車両Ｐと同一の平面である第１面Ｓ１１に存在する特徴点は、自車両Ｐが移動するとその特徴点は地面に固定されているので、自車両Ｐからは自車両Ｐの移動とは逆方向に同じ速度で移動したように観測される。しかし第２平面Ｓ１２に存在する特徴点は、仮想第２面Ｓ１２Ａに存在すると仮定されているため、仮想第２面Ｓ１２に射影した位置として算出され、実際よりも移動速度が遅いように観測される。
【００４４】
図４（ｃ）ではこれらの特徴点軌跡の分布を２本の直線、ＬＶ１とＬＶ２で近似している。なおＬＶ１とＬＶ２の交点の道路幅方向の位置は、頂点Ｍの位置と一致する。ＬＶ１とＬＶ２の傾きの差は、第１面Ｓ１１と第２面Ｓ１２のなす角、換言すると角度差θに対応する。
【００４５】
すなわち特徴点軌跡の速度を評価することで、路面推定部２０５は、頂点Ｍの位置および第１面Ｓ１１と第２面Ｓ１２のなす角を算出できる。具体的にはＬＶ１およびＬＶ２の各点からそれぞれ最小二乗法などで近似直線を求め、ＬＶ１から得られる近似直線を、
v = a1 * x + b1  ・・・式１
LV2から得られる近似直線を、
v = a2 * x + b2  ・・・式２
とすると、交点Mのx座標は、
M=-(b1-b2)/(a1-a2)   ・・・式３
で得られる。また、
θ= k * (arctan(a1) - arctan(a2))   ・・・式４
で求められる。ここで、kは比例定数で車種によるカメラ配置によって異なる値である。また、arctanは正接関数（タンジェント）の逆関数である。この計算式により、図４（ｃ）に示すＬＶ１とＬＶ２の関係から図４（ｂ）に示す角度差θが算出できる。
【００４６】
（算出部２０６の動作概要）
図５は、算出部２０６が算出する特徴点を示す概念図である。算出部２０６は、ＲＡＭ１０２に記録された特徴点軌跡のうち、第１面Ｓ１１に存在する特徴点軌跡はそのまま出力し、第１面Ｓ１１以外に存在する特徴点軌跡を構成する特徴点の位置を修正して出力する。算出部２０６は、特徴点軌跡が第１面Ｓ１１に存在するか否かは、特徴点のＸ座標、自車両ＰのＸ座標、および頂点ＭのＸ座標に基づき判断する。具体的には、頂点ＭのＸ座標で２分した領域のうち自車両Ｐが存在する側の領域が第１面Ｓ１１と判断できる。第１面Ｓ１１以外に存在する特徴点の位置の修正を以下で説明する。
【００４７】
図５（ａ）に示す自車両Ｐ、第１面Ｓ１１、第２面Ｓ１２、仮想第２面Ｓ１２Ａ、および頂点Ｍは図４（ｂ）と同様である。符号１１１は、キャリブレーション装置１００のカメラ１１１である。符号Ｃ１で示す丸印は特徴点の真の位置を示し、以下では「真の特徴点位置」Ｃ１と呼ぶ。符号Ｃ２で示す三角形は、簡易に算出した特徴点の位置を示し、以下では「簡易特徴点位置」Ｃ２と呼ぶ。符号Ｃ３で示す四角形は、キャリブレーション用に算出する特徴点の位置を示し、以下では「算出特徴点位置」Ｃ３と呼ぶ。
【００４８】
特徴点はカメラ１１１の撮影画像から抽出されるが、１つの撮影画像だけからは奥行きが算出できない。特徴点が第１平面Ｓ１１および第１平面Ｓ１１を含む平面上に存在すると仮定すると、特徴点Ｃ１は位置Ｃ２に存在するように算出される。しかし路面推定部２０５の算出により、特徴点Ｃ１が存在する平面である第２面Ｓ１２と、第１平面Ｓ１１がなす角との関係が明らかになった。そのため算出部２０６は、Ｃ３に示す特徴点の位置を算出できる。位置Ｃ３は、位置Ｃ３を始点とし仮想第２面Ｓ１２Ａに直交する直線Ｌ１３が特徴点Ｃ１に交わる位置として定義される。
【００４９】
（特徴点抽出部２０２のフローチャート）
図６は特徴点抽出部２０２の動作を表すフローチャートである。特徴点抽出部２０２は、画像取得部２０１から撮影画像が送信されるたびに以下の動作を実行する。以下に説明する各ステップの実行主体はＣＰＵ１０１である。
【００５０】
ステップＳ３０１では特徴点抽出部２０２は、車両Ｐの進行方向、および車両Ｐの進行方向に対するカメラ１１１の撮影方向に基づき、特徴点抽出部２０２が特徴点を抽出する撮影画像中の領域を決定する。たとえば車両Ｐが前方に進む場合は、カメラ１１１は車両Ｐの前方に取り付けられているので、車両Ｐに近い位置で特徴点を抽出してもすぐにカメラ１１１の画角から特徴点が外れてしまうため追跡できる時間が短い。処理領域は広ければ広いほど計算処理に時間がかかるため、リアルタイム処理で計算するためには、このような無駄な部分の計算処理負荷を低減する必要がある。そこで、車両Ｐから離れた場所の特徴点を抽出するように処理領域を設定する。なお、カメラ１１１が車両Ｐの後方を撮影するように取り付けられている場合は、車両Ｐが前方に進行する際に車両Ｐに近い側に処理領域を設定する。次にステップＳ３０２に進む。
【００５１】
ステップＳ３０２では特徴点抽出部２０２は、ステップＳ３０１において設定した特徴点抽出領域を対象として特徴点を抽出する。特にエッジの交点であるコーナー特徴点を抽出することが好ましい。特徴点抽出部２０２は、ステップＳ３０１において設定された領域に対して、ハリスオペレータなどを適用してコーナー特徴点を抽出し、ステップＳ３０３に進む。ステップＳ３０３では特徴点抽出部２０２は、ステップＳ３０２において抽出された特徴点の座標をＲＡＭ１０２に出力し、図６のフローチャートを終了する。
【００５２】
（追跡部２０３のフローチャート）
図７は、追跡部２０３の動作を表すフローチャートである。追跡部２０３は、画像取得部２０１から撮影画像が送信されるたびに以下の動作を実行する。以下に説明する各ステップの実行主体はＣＰＵ１０１である。
【００５３】
ステップＳ４０１では追跡部２０３は、特徴点の追跡処理の対象とする処理領域を設定する。すなわち、カメラ１１１により直前に撮影された撮影画像において、特徴点抽出部２０２により特徴点が抽出された座標、および車両運動取得部２１０が取得する車両Ｐの運動情報を用いて、直前の撮影画像において抽出された特徴点が移動する方向および距離を推定する。そして特徴点が移動すると推定した方向および距離に対応する領域を、追跡部２０３が特徴点を追跡する撮影画像中の領域として決定する。次にステップＳ４０２に進む。
【００５４】
ただし、特徴点が移動する方向および距離を推定するために用いる撮影画像は直前の撮影画像に限定されず、複数の撮影画像を用いて推定してもよいし、直前以外の撮影画像を用いて推定してもよい。すなわち、より早い時間に撮影された撮影画像を用いて特徴点が移動する方向および距離を推定してもよい。
【００５５】
次に説明するステップＳ４０２〜Ｓ４０５は、直前の撮影画像において抽出された特徴点に対応する回数だけ繰り返し実行される。ステップＳ４０２では追跡部２０３は、前述のＳＡＤやＬＫ法などの公知の手法により、追跡対象であるＲＡＭ１０２から読み込んだ直前の撮影画像における特徴点の追跡を行い、ステップＳ４０３に進む。ステップＳ４０３では追跡部２０３は、追跡対象である直前の撮影画像における特徴点の追跡が継続できたか否かを判断する。
【００５６】
たとえば追跡部２０３は、ＳＡＤなどによる照合度があらかじめ定めた閾値以下であれば、カメラの画角から外れたなどの理由で追跡ができないと判断する。また追跡部２０３は、特徴点が画像中のあらかじめ定めた一定のラインを通過した場合や所定の領域から外れた場合は、強制的に追跡終了とする。強制的に追跡を終了する理由は、次の撮影画像ではカメラ１１１の画角から外れることが想定されるから、または被写体との距離が遠くなり追跡する必要性がないからである。追跡部２０３は、追跡が継続できたと判断する場合はステップＳ４０４に進み、追跡終了と判断する場合はステップＳ４０５に進む。
【００５７】
ステップＳ４０４では追跡部２０３は、追跡点情報１０２Ａにおける処理対象の特徴点の行であって、処理対象の撮影画像が撮影された時刻の列に、追跡した特徴点の座標を記録する。ステップＳ４０５では追跡部２０３は、追跡点情報１０２Ａにおける処理対象の特徴点の行であって、処理対象の撮影画像が撮影された時刻の列に、追跡が終了したマーク、たとえば「ｘ」を記録する。ステップＳ４０４またはステップＳ４０５の実行が完了すると、直前の撮影画像において抽出された特徴点についてステップＳ４０２〜Ｓ４０５が実行されたか否かを判断し、未処理の特徴点がある場合はステップＳ４０２に戻り、全ての特徴点について処理が完了したと判断する場合は図７のフローチャートを終了する。
【００５８】
（路面推定部２０５のフローチャート）
図８は、路面推定部２０５の動作を表すフローチャートである。路面推定部２０５は、蓄積部２０４から特徴点列が送信されるたびに、以下の動作を実行する。以下に説明する各ステップの実行主体はＣＰＵ１０１である。
【００５９】
路面推定部２０５は、ＲＡＭ１０２の特徴点情報１０２Ａに記録されている、追跡終了した全軌跡を対象として以下に説明するＳ５０１〜Ｓ５０３を実行する。たとえば追跡点情報１０２Ａが図２（ａ）に示すものであり、時刻ｔ５の直後の処理では路面推定部２０５は、特徴点１００１、特徴点１００３、および特徴点１００４のそれぞれを処理対象の特徴点軌跡としてＳ５０１〜Ｓ５０３を実行する。ステップＳ５０１では路面推定部２０５は、処理対象の軌跡を構成する特徴点の座標を現在の外部パラメータ１０２Ｃで俯瞰変換してステップＳ５０２に進む。なお外部パラメータ１０２Ｃが理想的な外部パラメータと一致しない場合は、俯瞰変換した軌跡は理想軌跡とは一致しないが、概ね俯瞰視点に近い軌跡となる。
【００６０】
ステップＳ５０２では路面推定部２０５は、処理対象の軌跡の移動速度を算出する。具体的には路面推定部２０５は、ステップＳ５０１において算出した座標の差と、それぞれの撮影時刻の差とを用いて移動速度を算出する。たとえば追跡点情報１０２Ａが図２（ａ）に示す例のものである場合に、特徴点１００１は４つの座標が記録されているので座標の差と撮影時刻の差との組み合わせが３組算出される。そしてそれぞれの座標の差をそれぞれの撮影時刻の差で除して移動速度を３つ算出し、たとえばその３つの平均を特徴点１００１の移動速度とする。ただしこの際に単純平均ではなく、撮影時刻の差の大きさに基づき重みづけを行ってもよい。
【００６１】
ステップＳ５０３では路面推定部２０５は、図４（ｃ）に示すように、処理対象の軌跡の道路の幅方向の位置と、移動速度の関係をプロットする。ただし実際にはプロットを行うことは必須ではなく、プロットを行う代わりに道路の幅方向の位置と移動速度とを対応させてＲＡＭ１０２に保存してもよい。
【００６２】
路面推定部２０５は、特徴点情報１０２Ａに記録されている追跡終了した全軌跡についてステップＳ５０１〜Ｓ５０３の実行が完了すると、ステップＳ５０４を実行する。ステップＳ５０４では路面推定部２０５は、道路の断面を２つの直線に近似する。図４（ｃ）に示す例では、ステップＳ５０４の処理は直線ＬＶ１と直線ＬＶ２の式を算出することに相当する。
【００６３】
続くステップＳ５０５では路面推定部２０５は、ステップＳ５０４において算出した直線の交点の位置を算出する。詳述すると路面推定部２０５は、２つの直線が道路の幅方向のどの位置において交わるかを算出する。図４（ｃ）に示す例では、ステップＳ５０５の処理は頂点Ｍの空間座標系におけるＸ座標を算出することに相当する。なお以下では、道路の幅方向において２つの直線が交わる位置を「頂点位置」と呼ぶ。続くステップＳ５０６では路面推定部２０５は、算出部２０６に実行指令を出力して図８に示す処理を終了する。
【００６４】
（算出部２０６のフローチャート）
図９は、算出部２０６の動作を表すフローチャートである。算出部２０６は、路面推定部２０５から実行指令が送信されるたびに、以下の動作を実行する。以下に説明する各ステップの実行主体はＣＰＵ１０１である。
【００６５】
算出部２０６は、ＲＡＭ１０２の特徴点情報１０２Ａに記録されている追跡終了した全軌跡を対象として以下に説明するステップＳ６０１〜Ｓ６０３を実行する。ステップＳ６０１では算出部２０６は、処理対象の特徴点軌跡が頂点位置よりも自車両側に存在するか否かを判断する。算出部２０６は具体的には、路面推定部２０５が座標変換した処理対象の特徴点軌跡の空間座標系におけるＸ座標が、路面推定部２０５がステップＳ５０５において算出した頂点位置よりも自車両Ｐの側に存在するか否かを判断する。算出部２０６は、処理対象の特徴点軌跡が頂点位置よりも自車両側に存在すると判断する場合はステップＳ６０２に進み、否定判断する場合はステップＳ６０３に進む。
【００６６】
ステップＳ６０２では算出部２０６は、処理対象の特徴点軌跡の座標をそのまま出力して、換言すると追跡点情報１０２Ａから補正済み追跡点情報１０２Ｂにそのまま転記する。ステップＳ６０３では算出部２０６は、処理対象の軌跡を構成する特徴点の座標を、自車両Ｐが存在する平面に射影した射影座標を算出する。具体的には算出部２０６は、図２（ａ）に示したように、追跡点情報１０２Ａには特徴点Ｃ１についてＣ２に対応する座標が記録されているが、射影座標であるＣ３の座標を算出する。
【００６７】
続くステップＳ６０４では算出部２０６は、ステップＳ６０３において算出した射影座標を画像座標系の座標に変換して補正済み追跡点情報１０２Ｂに出力する。算出部２０６は、追跡終了した全軌跡を対象としてステップＳ６０２またはＳ６０４の処理が終了すると図９に示す処理を終了する。
【００６８】
（外部パラメータ推定部２０８の動作）
図１０は、外部パラメータ推定部２０８の動作を表すフローチャートである。外部パラメータ推定部２０８は、実施判定部２０７から実行指令を受けるたびに、以下の動作を実行する。以下に説明する各ステップの実行主体はＣＰＵ１０１である。
【００６９】
ステップＳ７０１では外部パラメータ推定部２０８は、ピッチ角推定を行う。外部パラメータ推定部２０８は、補正済み追跡点情報１０２Ｂに格納されている特徴点軌跡の情報と、ＲＡＭ１０２に格納されている外部パラメータ１０２Ｃとを演算に用いる。外部パラメータ推定部２０８は、特徴点軌跡の平行性を評価する目的関数を設計し、その目的関数を公知の技術によりピッチ角に関して最小化することでピッチ角推定を実現する。
【００７０】
ステップＳ７０１における目的関数は、２本の特徴点軌跡の平行性を評価する関数を基本とする。外部パラメータ推定部２０８は２本の特徴点軌跡のペアを複数作成し、その全ての目的関数の総和をピッチ角推定の目的関数として設計する。したがって、特徴点軌跡全体が、できるだけ平行になるようにピッチ角が補正される。
【００７１】
なお特徴点軌跡のペアは、進行方向の左側の軌跡から１つを選択し、自車中心から左側の軌跡と右側の軌跡、換言すると進行方向の左側の軌跡と進行方向の右側の軌跡を組み合わせる。特徴点軌跡のペアは、考えられる全ての組み合わせでもよいし、その中から幾つか選択したもののみでもよい。外部パラメータ推定部２０８は、読み込んだ外部パラメータ１０２Ｃのピッチ角をステップＳ７０１で推定したピッチ角で書き換えて、ＲＡＭ１０２に格納する。換言するとステップＳ７０１の処理によりＲＡＭ１０２に格納されている外部パラメータ１０２Ｃは更新される。
【００７２】
ステップＳ７０２では外部パラメータ推定部２０８は、ヨー角推定を行う。外部パラメータ推定部２０８は、補正済み追跡点情報１０２Ｂに格納されている特徴点軌跡の情報と、ステップＳ７０１の処理により更新された外部パラメータ１０２Ｃとを演算に用いる。
【００７３】
外部パラメータ推定部２０８は、特徴点軌跡の垂直性、すなわち軌跡が俯瞰図において進行方向に沿う程度を評価する目的関数を設計する。そして外部パラメータ推定部２０８は、その目的関数を公知の技術によりヨー角に関して最小化することで、ヨー角推定を実現する。ステップＳ７０２における目的関数は、１本の特徴点軌跡の垂直性を評価する関数を基本とし、全ての特徴点軌跡に関する目的関数の総和をピッチ角推定の目的関数として設計する。したがって、特徴点軌跡全体が、できるだけ垂直方向を向くようにヨー角が算出される。外部パラメータ推定部２０８は、読み込んだ外部パラメータ１０２Ｃのヨー角をステップＳ７０２で推定したヨー角で書き換えて、ＲＡＭ１０２に格納する。
【００７４】
ステップＳ７０３では外部パラメータ推定部２０８は、ロール角推定を行う。外部パラメータ推定部２０８は、補正済み追跡点情報１０２Ｂに格納されている特徴点軌跡の情報と、ステップＳ７０２の処理により更新された外部パラメータ１０２Ｃとを演算に用いる。
【００７５】
外部パラメータ推定部２０８は、自車中心から左側の軌跡と右側の軌跡の特徴点軌跡の長さの差を評価する目的関数を設計し、その目的関数を公知の技術によりロール角に関して最小化することで、ロール角推定を実現する。ステップＳ７０３における目的関数は、自車左側の全ての特徴点軌跡長さの平均値と、自車右側の全ての特徴点軌跡長さの平均値の差を最小化するものとして設計する。したがって、自車左側の特徴点軌跡全体と右側の特徴点軌跡全体の長さの差ができるだけ小さくなるように、すなわち理想俯瞰視点に近づくようにロール角が補正される。外部パラメータ推定部２０８は、読み込んだ外部パラメータ１０２Ｃのロール角をステップＳ７０３で推定したロール角で書き換えて、ＲＡＭ１０２に格納する。
【００７６】
ステップＳ７０４では外部パラメータ推定部２０８は、高さ推定を行う。外部パラメータ推定部２０８は、補正済み追跡点情報１０２Ｂに格納されている特徴点軌跡の情報と、ステップＳ７０３の処理により更新された外部パラメータ１０２Ｃとを演算に用いる。
【００７７】
外部パラメータ推定部２０８は、特徴点軌跡の長さと、車両運動情報から予想される理想軌跡の長さの差をあらわす目的関数を、公知の技術により高さに関して最小化することで高さ推定を実現する。目的関数は、全特徴点軌跡の長さと理想軌跡の長さの差を最小化するものとして設計する。したがって、特徴点軌跡全体と理想軌跡の長さの差ができるだけ小さくなるように、すなわち理想俯瞰視点に近づくように高さが補正される。外部パラメータ推定部２０８は、読み込んだ外部パラメータ１０２Ｃの高さをステップＳ７０４で推定した高さで書き換えて、ＲＡＭ１０２に格納する。
【００７８】
上述した第１の実施の形態によれば、次の作用効果が得られる。
（１）キャリブレーション装置１００は、路面を走行する車両Ｐに搭載されるカメラ１１１と、カメラ１１１で撮影して得られた撮影画像から特徴点を抽出する特徴点抽出部２０２と、特徴点抽出部２０２が抽出する特徴点を追跡する追跡部２０３と、特徴点の追跡によって得られる特徴点の軌跡を記憶するＲＡＭ１０２（記憶部）と、特徴点の軌跡を用いて車両が走行する平面を推定する路面推定部２０５と、推定された平面に基づきキャリブレーションに用いる特徴点の軌跡であるキャリブレーション用軌跡を算出する算出部２０６と、キャリブレーション用軌跡を用いてカメラの外部パラメータのキャリブレーションを実行する外部パラメータ推定部２０８とを備える。そのため車両Ｐの周囲の路面が、図４（ｂ）に示すように複数の平面から構成されている場合であっても、外部パラメータのキャリブレーションを高精度に行うことができる。
【００７９】
（２）算出部２０６は、追跡点情報１０２Ａに記憶された特徴点の軌跡のうち、車両Ｐの接地面と同一の平面上に存在する特徴点の軌跡をキャリブレーション用軌跡として算出する（図９のＳ６０１：ＹＥＳ、Ｓ６０２）。そのため確実に同一平面上に存在する特徴点の軌跡を外部パラメータのキャリブレーション用に提供できる。
【００８０】
（３）算出部２０６は、追跡点情報１０２Ａに記憶された特徴点の軌跡のうち、車両の接地面と同一の平面上に存在しない特徴点の軌跡を構成する座標を、車両の接地面と同一の平面上の座標に補正することでキャリブレーション用軌跡として算出する（図９のＳ６０１：ＮＯ、Ｓ６０３、Ｓ６０４）。そのため車両の接地面と同一平面上にない特徴点の軌跡、たとえば図４（ｂ）の第２面Ｓ１２に存在する特徴点の軌跡もキャリブレーションに用いることができる。
【００８１】
（４）路面推定部２０５は、路面の形状を２つの平面の組み合わせと仮定して、車両Ｐが走行する平面を推定する。そのため簡易な計算で路面を推定できる。
【００８２】
（５）算出部２０６は式１〜式４に示したように、特徴点の軌跡の分布から複数の近似直線を算出して、複数の近似直線同士の交点から、車両Ｐの接地面である第１面Ｓ１１と、交点に対して第１面Ｓ１１と反対側の第２面Ｓ１２とのなす角度差θを算出する。そのため角度差θを用いて特徴点の座標を補正できる。
【００８３】
（変形例１）
上述した実施の形態では、キャリブレーション装置１００の車両運動取得部２１０は、車速センサ１０５および舵角センサ１０６から出力を受けた。しかし車両運動取得部２１０は、自車両Ｐの位置情報を入力として受け付けてもよい。たとえば自車両ＰがＧＰＳ受信機を備える場合は、車両運動取得部２１０はＧＰＳ受信機から車両Ｐの位置情報が入力され、車両運動取得部２１０は入力されたその位置情報をそのまま車両運動情報として走行中キャリブレーションプログラム１０３Ａに出力してもよい。なおＧＰＳ受信機は、衛星航法システムを構成する複数の衛星から電波を受信し、その電波に含まれる信号を解析することで自車両Ｐの位置、すなわち緯度と経度を算出する。
【００８４】
（変形例２）
キャリブレーション装置１００は、実施判定部２０７および採否判定部２０９のいずれか一方を備えなくてもよいし、両方を備えなくてもよい。それぞれがキャリブレーション装置１００に備えられない場合は、備えられない構成が肯定的な判断を行った場合と同様に処理が実行される。たとえば実施判定部２０７および採否判定部２０９の両方がキャリブレーション装置１００に備えられない場合は、蓄積部２０４が特徴点軌跡をＲＡＭ１０２に記録すると次の処理が行われる。すなわち外部パラメータ推定部２０８が外部パラメータ１０２Ｃを推定し、外部パラメータ推定部２０８が推定した外部パラメータ１０２Ｃがそのまま外部パラメータ１１２Ａとしてフラッシュメモリ１１２に記録される。
【００８５】
（変形例３）
算出部２０６は、射影座標の算出を行わなくてもよい。この場合は算出部２０６は、図９のステップＳ６０１において否定判断する場合にステップＳ６０３およびＳ６０４の処理を実行せずに、次の追跡終了軌跡を処理対象とする。本変形例によれば、車両Ｐの接地面と同一平面上に存在する特徴点のみをキャリブレーションに用い、射影座標の算出による計算量を削減できる利点を有する。
【００８６】
（変形例４）
算出部２０６は、路面を３以上の平面から構成されると仮定して路面を算出してもよい。
【００８７】
（変形例５）
カメラ１１１は、キャリブレーション装置１００に内蔵されてもよい。
【００８８】
―第２の実施の形態―
図１１〜図１２を参照して、本発明にかかるキャリブレーション装置の第２の実施の形態を説明する。以下の説明では、第１の実施の形態と同じ構成要素には同じ符号を付して相違点を主に説明する。特に説明しない点については、第１の実施の形態と同じである。本実施の形態では、主に、車両が接地している路面の算出方法が第１の実施の形態と異なる。
【００８９】
本実施の形態におけるキャリブレーション装置１００、およびキャリブレーション装置１００を備える車両Ｐの構成は第１の実施の形態と同様である。ただし算出部２０６の動作が第１の実施の形態と異なる。
【００９０】
本実施の形態では路面推定部２０５は、車両Ｐが走行する領域、換言すると道路の全幅のうち車両Ｐの横幅の領域に存在する特徴点（以下、「車両下特徴点」と呼ぶ）の軌跡を用いて、車両Ｐが走行する平面を推定する。そして路面推定部２０５は、車両Ｐが走行しない領域に存在する軌跡のうち、位置と移動速度との関係が車両下特徴点と一致する軌跡は車両Ｐが走行する平面に存在し、その関係が車両下特徴点と一致しない軌跡は車両Ｐが走行する平面に存在しないと判断する。
【００９１】
図１１は、第２の実施の形態における路面推定部２０５の動作を説明する図である。図１１（ａ）および図１１（ｂ）のそれぞれは、第１の実施の形態における図４（ｂ）および図４（ｃ）に相当する。ただし図１１（ａ）には、タイヤの外側の座標を示すＸ１およびＸ２が追記されている。なおＸ１およびＸ２は、Ｘ座標の値である。図１１（ｂ）は、図４（ｃ）に示す直線ＬＶ１の代わりに直線ＬＶ１１〜ＬＶ１３が追加されている。
【００９２】
本実施の形態では算出部２０６は、車両Ｐが走行する領域における特徴点の軌跡を用いて、Ｘ方向位置と速度との関係を示す直線ＬＶ１１を算出する。図１１（ｂ）に示す例では算出部２０６は、車両Ｐのタイヤの領域およびその内側の領域に存在する特徴点軌跡Ｃ２１〜Ｃ２３の位置および速度を用いて、たとえば回帰分析により直線ＬＶ１１を算出する。そして算出部２０６は、算出した直線ＬＶ１１をＸ軸のプラス方向とマイナス方向のそれぞれに延伸し、特徴点軌跡との乖離が所定値以下である範囲を特定する。図１１（ｂ）に示す例では、直線ＬＶ１１をＸ軸のマイナス方向に延伸したものを直線ＬＶ１２と呼び、直線ＬＶ１１をＸ軸のプラス方向に延伸したものを直線ＬＶ１３と呼んでいる。
【００９３】
算出部２０６は、図１１（ｂ）の左端から図１１（ｂ）の中央付近の特徴点軌跡Ｃ２６までは、直線ＬＶ１１との距離が所定値以下であり、特徴点軌跡Ｃ２７および特徴点軌跡Ｃ２７よりも図示右側の特徴点軌跡は直線ＬＶ１１との距離が所定値よりも大きいと判断する。そのため路面推定部２０５は、直線ＬＶ１３の延伸を特徴点軌跡Ｃ２６までとする。そして特徴点軌跡Ｃ２７および特徴点軌跡Ｃ２７よりも図示右側の特徴点軌跡を直線近似して直線ＬＶ２を算出する。最後に路面推定部２０５は、直線ＬＶ１１を延伸した直線と直線ＬＶ２の交点を頂点Ｍとする。ただし路面推定部２０５は、特徴点軌跡Ｃ２６と特徴点軌跡Ｃ２７の中間のＸ座標を頂点Ｍの座標としてもよい。
【００９４】
（路面推定部２０５のフローチャート）
図１２は、第２の実施の形態における路面推定部２０５の動作を示すフローチャートである。図１２では第１の実施の形態と同様の処理には同一のステップ番号を付し、説明を省略する。路面推定部の前半の処理、すなわち全ての追跡が終了した軌跡を対象にステップＳ５０１〜Ｓ５０３の処理を行う点は第１の実施の形態と同様なので説明を省略する。次に路面推定部２０５はステップＳ５２１において、自車両Ｐの内側のプロットを直線で近似する。ステップＳ５２１の処理は、図１１（ｂ）に示す例において、特徴点軌跡Ｃ２１〜Ｃ２３を用いて、直線ＬＶ１１を算出することに相当する。
【００９５】
続くステップＳ５２２では路面推定部２０５は、ステップＳ５２１において算出した直線から所定の距離よりも遠い特徴点軌跡を用いて他の直線を算出する。ステップＳ５２２の処理は、図１１（ｂ）に示す例において、特徴点軌跡Ｃ２７および特徴点軌跡Ｃ２７よりも図示右側の特徴点軌跡を用いて直線ＬＶ２を算出することに相当する。続くステップＳ５０５では路面推定部２０５は、直線ＬＶ１１および直線ＬＶ２の交点、すなわち交点位置を算出する。続くステップＳ５０６では路面推定部２０５は、算出部２０６に実行指令を出力して図１２に示す処理を終了する。
【００９６】
上述した第２の実施の形態によれば、次の作用効果が得られる。
（６）路面推定部２０５は、車両Ｐが走行する領域における特徴点の軌跡を用いて車両Ｐが走行する平面を推定する。そのため車両Ｐの乗員や積み荷の分布に偏りがあり、車両Ｐが路面に対して傾いている場合でも、車両Ｐの接地面を含む平面を正確に算出できる。
【００９７】
上述した各実施の形態および変形例において、プログラムはＲＯＭ１０３に格納されるとしたが、プログラムはフラッシュメモリ１１２に格納されていてもよい。また、キャリブレーション装置１００が不図示の入出力インタフェースを備え、必要なときに入出力インタフェースとキャリブレーション装置１００が利用可能な媒体を介して、他の装置からプログラムが読み込まれてもよい。ここで媒体とは、たとえば入出力インタフェースに着脱可能な記憶媒体、または通信媒体、すなわち有線、無線、光などのネットワーク、または当該ネットワークを伝搬する搬送波やディジタル信号、を指す。また、プログラムにより実現される機能の一部または全部がハードウエア回路やＦＰＧＡにより実現されてもよい。
【００９８】
上述した各実施の形態および変形例は、それぞれ組み合わせてもよい。上記では、種々の実施の形態および変形例を説明したが、本発明はこれらの内容に限定されるものではない。本発明の技術的思想の範囲内で考えられるその他の態様も本発明の範囲内に含まれる。
【符号の説明】
【００９９】
１００…キャリブレーション装置
１０２Ａ…追跡点情報
１０２Ｂ…補正済み追跡点情報
１０２Ｃ、１１２Ａ…外部パラメータ
１０３Ｃ…外部パラメータ初期値
１１１…カメラ
１１２…フラッシュメモリ
２０１…画像取得部
２０２…特徴点抽出部
２０３…追跡部
２０４…蓄積部
２０５…路面推定部
２０６…算出部
２０７…実施判定部
２０８…外部パラメータ推定部
【図１】
2020154742.tif 000003
【図２】
2020154742.tif 000004
【図３】
2020154742.tif 000005
【図４】
2020154742.tif 000006
【図５】
2020154742.tif 000007
【図６】
2020154742.tif 000008
【図７】
2020154742.tif 000009
【図８】
2020154742.tif 000010
【図９】
2020154742.tif 000011
【図１０】
2020154742.tif 000012
【図１１】
2020154742.tif 000013
【図１２】
2020154742.tif 000014