(57)【特許請求の範囲】
【請求項１】
車両に搭載されるカメラが異なる時刻に撮影して得られた複数の画像が入力される画像取得部と、
前記画像取得部に入力されるそれぞれの画像から特徴点を抽出する特徴点抽出部と、
前記複数の画像間で前記特徴点を追跡する特徴点追跡部と、
前記車両の運動に関する情報を取得する車両運動取得部と、
前記車両運動取得部が取得する情報に基づき、前記車両の移動に応じた前記特徴点の軌跡を推定する軌跡推定部と、
前記特徴点追跡部が追跡した前記特徴点の軌跡と、前記軌跡推定部が推定した前記特徴点の軌跡とに基づき前記カメラの内部パラメータを推定する内部パラメータ推定部とを備えるカメラキャリブレーション装置。
【請求項２】
請求項１に記載のカメラキャリブレーション装置であって、
前記内部パラメータは、前記カメラが備えるレンズの歪みに応じたレンズ歪み係数を含み、
前記内部パラメータ推定部は、前記特徴点追跡部が追跡した前記特徴点の軌跡を前記レンズ歪み係数を用いて変換した特徴点の軌跡と、前記軌跡推定部が推定した前記特徴点の軌跡との差を最小とするように前記レンズの歪みのパラメータを算出するカメラキャリブレーション装置。
【請求項３】
請求項２に記載のカメラキャリブレーション装置であって、
前記特徴点追跡部が追跡した前記特徴点の軌跡を多項式を用いて近似する軌跡近似部と、
前記軌跡近似部が第１の特徴点の軌跡を近似した多項式の係数と、前記軌跡近似部が第２の特徴点の軌跡を近似した多項式の係数との差に基づいて、前記第１の特徴点の軌跡と前記第２の特徴点の軌跡とが一致するか否かを判断する一致判定部とをさらに備え、
前記内部パラメータ推定部は、前記一致判定部が一致すると判断した前記第１の特徴点の軌跡と前記第２の特徴点の軌跡とを用いて前記カメラの内部パラメータを推定するカメラキャリブレーション装置。
【請求項４】
請求項２に記載のカメラキャリブレーション装置であって、
前記内部パラメータ推定部は、前記特徴点追跡部が追跡した前記特徴点の軌跡が前記画像を分割した複数の領域の全てに含まれる場合に、前記カメラの内部パラメータを推定するカメラキャリブレーション装置。
【請求項５】
請求項２に記載のカメラキャリブレーション装置であって、
前記軌跡推定部は、前記車両が直進している場合に、前記特徴点の軌跡を直線と推定するカメラキャリブレーション装置。
【請求項６】
請求項２に記載のカメラキャリブレーション装置であって、
前記軌跡推定部は、前記車両が直進していない場合に、前記カメラの外部パラメータおよび前記車両運動取得部が取得する情報を用いて、前記特徴点の軌跡を推定するカメラキャリブレーション装置。
【請求項７】
請求項１に記載のカメラキャリブレーション装置であって、
前記特徴点抽出部は、前記車両の進行方向、および前記車両の進行方向に対する前記カメラの撮影方向に基づき、前記特徴点を抽出する前記画像中の領域を決定するカメラキャリブレーション装置。
【請求項８】
請求項１に記載のカメラキャリブレーション装置であって、
前記特徴点追跡部は、前記複数の画像のうち先の時刻に撮影された第１の画像において、前記特徴点抽出部により特徴点が抽出された位置、および前記車両運動取得部が取得する情報を用いて、前記複数の画像のうち前記第１の画像よりも後の時刻に撮影された第２の画像において前記特徴点を追跡する領域を決定するカメラキャリブレーション装置。
【請求項９】
請求項１に記載のカメラキャリブレーション装置であって、
前記内部パラメータは、前記カメラが備えるレンズの焦点距離を含み、
前記特徴点の第１の時刻における位置と前記カメラとの距離である第１距離を前記焦点距離に応じて算出する第１距離算出部と、
前記特徴点の第２の時刻における位置と前記カメラとの距離である第２距離を前記焦点距離に応じて算出する第２距離算出部と、
前記車両運動取得部が取得する情報に基づき、前記第１の時刻から前記第２の時刻までに前記車両が移動した距離である移動距離を算出する移動距離算出部とをさらに備え、
前記内部パラメータ推定部は、前記第１距離と前記第２距離との差である第３距離が、前記移動距離と等しくなるように前記焦点距離を算出するカメラキャリブレーション装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カメラキャリブレーション装置に関する。
【背景技術】
【０００２】
近年、安全装備としてカメラの自動車への搭載が進んでいる。カメラは周囲の俯瞰映像の運転者への提示、車線逸脱の防止、歩行者や車両の認識に基づく警報出力、衝突回避など、種々のアプリケーションで用いられ、自動車の安全性と利便性の向上に寄与している。これらのアプリケーションにおいてカメラと被写体との位置関係を算出するためには、カメラの外部パラメータと内部パラメータが必要となる。
外部パラメータとは、車両とカメラの関係を表すパラメータであり、たとえば車両に対するカメラの取り付け位置および姿勢を示すパラメータである。内部パラメータとは、カメラ内部の光学系に関するパラメータであり、たとえば焦点距離やレンズの歪みを示すパラメータである。レンズの生産時にあらかじめ歪みに関するパラメータが測定され、その測定結果を内部パラメータとして用いることもできるが、車載カメラは車内温度の変化や基板の発熱でカメラ筐体が伸縮しレンズの歪み特性が変化する。すなわち、あらかじめ求めた内部パラメータをそのまま用いると不都合が生じる。たとえば、カメラで撮影した画像と内部パラメータを用いて被写体までの距離を算出した場合に、その距離に無視できない誤差が生じる。そのため、車両の走行中の内部パラメータのキャリブレーションが求められる。
特許文献１には、路面の白線を用いて内部パラメータを推定するカメラキャリブレーション装置が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−１８５７５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載されている発明では、路面に白線がなければ内部パラメータのキャリブレーションができない。
【課題を解決するための手段】
【０００５】
本発明の第１の態様によると、カメラキャリブレーション装置は、車両に搭載されるカメラが異なる時刻に撮影して得られた複数の画像が入力される画像取得部と、前記画像取得部に入力されるそれぞれの画像から特徴点を抽出する特徴点抽出部と、異なる時刻に撮影された画像から抽出された特徴点を追跡する特徴点追跡部と、前記車両の運動に関する情報を取得する車両運動取得部と、前記車両運動取得部が取得する情報に基づき、路面上の特徴点が前記カメラに撮影される軌跡を推定する軌跡内部パラメータ推定部と、前記特徴点追跡部が追跡した特徴点の軌跡と、前記軌跡内部パラメータ推定部が推定した軌跡とに基づき前記カメラの内部パラメータを推定する内部パラメータ推定部とを備える。
【発明の効果】
【０００６】
本発明によれば、路面に白線がなくても内部パラメータのキャリブレーションができる。
【図面の簡単な説明】
【０００７】
【図１】カメラキャリブレーション装置１００を備える車両１の構成を示すブロック図
【図２】内部パラメータキャリブレーションプログラムの機能ブロック図
【図３】追跡点情報１０２Ａの一例を示す図
【図４】特徴点抽出部２０２の動作を表すフローチャート
【図５】特徴点追跡部２０３の動作を表すフローチャート
【図６】特徴点軌跡蓄積部２０５の動作を表すフローチャート
【図７】図７（ａ）は、特徴点軌跡の属する画像中のエリア例を示す図、図７（ｂ）は、追跡された特徴点を接続する線分を１つの曲線で近似する例を示す図
【図８】内部パラメータ推定部２０６の動作を表すフローチャート
【図９】図８のステップＳ６０４における処理の詳細を示すサブルーチン
【図１０】第２の実施の形態における内部パラメータキャリブレーションプログラムの機能ブロック図
【図１１】第２の実施の形態における焦点距離推定部の動作を表すフローチャート
【発明を実施するための形態】
【０００８】
（第１の実施の形態）
以下、図１〜図９を参照して、本発明にかかるカメラキャリブレーション装置の第１の実施の形態を説明する。
図１は、本発明にかかるカメラキャリブレーション装置１００、およびカメラキャリブレーション装置１００を備える車両１の構成を示すブロック図である。
車両１は、カメラキャリブレーション装置１００と、車両１の前方を撮影するカメラ１１１と、カメラキャリブレーション装置１００の出力に基づき運転者へ情報を提示する表示装置１０４と、車両１の速度を測定する車速センサ１０５と、車両１の地面までの高さを測定する車高センサ１０７と、車両１の３軸の角速度を測定するジャイロセンサ１０８と、運転者が操作入力を行う入力部１０９とを備える。カメラ１１１、車速センサ１０５、車高センサ１０７、ジャイロセンサ１０８、および入力部１０９が取得した情報は、カメラキャリブレーション装置１００に送信される。
本実施の形態では、車両１が接地している路面の勾配は一定であり、少なくともカメラ１１１により撮影される範囲の路面の勾配は車両が設置している路面の勾配と一致するとする。すなわち、たとえば広い水平面を走行中、または勾配が一定の坂道の中腹を走行中として以下説明を続ける。
【０００９】
カメラ１１１は、車両１の前方に取り付けられ、光軸は車両１の正面であって水平方向よりも下に固定される。カメラ１１１の車両１との位置・姿勢関係は、外部パラメータとして後述するフラッシュメモリ１１２に格納される。カメラ１１１の車両１への取り付けにずれが生じることは避けられないので、既知のキャリブレーション手法により適宜補正される。カメラ１１１はレンズおよび撮像素子を備え、これらの特性、たとえばレンズの歪みを示すパラメータであるレンズ歪み係数、光軸中心、焦点距離、撮像素子の画素数および寸法が内部パラメータ初期値としてＲＯＭ１０３に格納される。また、後述するキャリブレーションプログラムにより算出されたレンズ歪み係数を含む内部パラメータがフラッシュメモリ１１２に保存される。
【００１０】
カメラキャリブレーション装置１００は、演算を行うＣＰＵ１０１と、ＲＡＭ１０２と、ＲＯＭ１０３と、フラッシュメモリ１１２とを備える。
ＣＰＵ１０１は、ＲＡＭ１０２、ＲＡＭ１０３、およびフラッシュメモリ１１２と信号線により接続される。ＣＰＵ１０１は、ＲＯＭ１０３に格納されるプログラムをＲＡＭ１０２に展開して実行する。
ＲＡＭ１０２には、後述するプログラムが利用する追跡点情報１０２Ａ、および作業テーブル１０２Ｂが格納される。追跡点情報１０２Ａの構造は後述する。作業テーブル１０２Ｂは、追跡点情報１０２Ａの一部を複製して加工したものであり、後述する処理により作成される。
【００１１】
ＲＯＭ１０３には、内部パラメータキャリブレーションプログラム１０３Ａと、内部パラメータ初期値１０３Ｂと、カメラ利用プログラム１０３Ｃと、不図示の外部パラメータ初期値とが格納される。内部パラメータキャリブレーションプログラム１０３Ａの動作は、後にフローチャートを用いて説明する。カメラ利用プログラム１０３Ｃとは、カメラ１１１を利用するプログラムであり、たとえばカメラ１１１が撮影して得られた画像を用いて周囲の車両との距離を算出し、その距離が所定の距離以下の場合は表示装置１０４に警告を表示する。カメラ利用プログラム１０３Ｃは、実行のためにカメラ１１１の外部パラメータおよび内部パラメータを必要としており、これらをフラッシュメモリ１１２から読み込む。ただし、フラッシュメモリ１１２に外部パラメータおよび内部パラメータが保存されていない場合はＲＯＭ１０３に保存されている内部パラメータ初期値１０３Ｂおよび外部パラメータ初期値を用いる。
【００１２】
フラッシュメモリ１１２は不揮発性記憶媒体であり、フラッシュメモリ１１２には内部パラメータキャリブレーションプログラム１０３Ａが出力するレンズ歪み係数を含む内部パラメータ１１２Ａと、不図示の外部パラメータとが格納される。
入力部１０９は、スイッチやボタンなどから構成され、ユーザーの操作を受け付ける。キャリブレーション機能のオン／オフ、キャリブレーション結果の初期化、キャリブレーション方法の変更などに利用する。
【００１３】
（機能ブロックと処理の概要）
図２は、ＣＰＵ１０１が実行する内部パラメータキャリブレーションプログラム１０３Ａが有する機能を機能ブロックとして表し、機能ブロック同士、および機能ブロックとＲＡＭ１０２とのデータの流れを示す図である。
内部パラメータキャリブレーションプログラム１０３Ａは、機能ブロックとして画像取得部２０１と、特徴点抽出部２０２と、特徴点追跡部２０３と、車両運動取得部２０４と、特徴点軌跡蓄積部２０５と、内部パラメータ推定部２０６と、を備える。画像取得部２０１、特徴点抽出部２０２、および特徴点追跡部２０３は、カメラ１１１が画像を撮影するたびに実行される。
【００１４】
カメラ１１１は、車両１の走行中は連続して高い頻度、たとえば毎秒６０回撮影する。カメラ１１１が撮影して得られた画像（以下、撮影画像）は、カメラキャリブレーション装置１００に送信される。
画像取得部２０１は、カメラ１１１から撮影画像を受信し、受信した撮影画像を特徴点抽出部２０２と特徴点追跡部２０３とに出力する。カメラ１１１は、車両１の走行中は連続して高い頻度、たとえば毎秒６０回撮影しており、画像取得部２０１はカメラ１１１から撮影画像を受信するたびに、換言するとカメラ１１１から撮影画像が入力されるたびに特徴点抽出部２０２と特徴点追跡部２０３とに撮影画像を出力する。
【００１５】
特徴点抽出部２０２は、画像取得部２０１から入力される撮影画像に対して画像処理を施して特徴点を抽出する。ここでいう特徴点とは、例えば画像中の壁の角、縁石の角、破線の角などのエッジの交点、すなわちコーナー特徴点である。コーナー特徴点は、たとえば公知の技術であるハリスオペレータを適用することにより抽出できる。特徴点抽出部２０２により抽出された特徴点は、たとえばカメラ１１１の撮影画像における座標により特定することができる。本実施の形態では、図７（ｂ）に示すように撮影画像の左上を原点とし、右をＸ軸の正方向、下をＹ軸の正方向と定義する。特徴点抽出部２０２により抽出された特徴点は、ＲＡＭ１０２に保存される。
【００１６】
特徴点追跡部２０３は、ＲＡＭ１０２から読み込む情報であって直前の撮影画像から得られた特徴点を対象として、画像取得部２０１から入力される最新の撮影画像、および車両運動取得部２０４から入力される運動情報を用いて追跡処理を行う。特徴点の追跡には、既知の追跡手法であるＳＡＤ（Sum of Absolute Difference）やＳＳＤ（Sum of Squared Difference）、ＬＫ（Lucas‐Kanade）法などを用いることができる。そして、追跡した特徴点に関する情報を特徴点軌跡蓄積部２０５に出力する。
【００１７】
車両運動取得部２０４は、車速センサ１０５およびジャイロセンサ１０８の出力に基づき車両１の運動情報、たとえば車両１の走行軌跡や速度を算出して特徴点追跡部２０３、および特徴点軌跡蓄積部２０５に出力する。
特徴点軌跡蓄積部２０５は、特徴点追跡部２０３によって得られた特徴点の軌跡をＲＡＭ１０２の追跡点情報１０２Ａに格納する。ここでは、誤った特徴点軌跡を排除したり、信頼度の高い特徴点軌跡のみを残したり、キャリブレーション精度が高くなるものを選定するなどを行う。
内部パラメータ推定部２０６は、特徴点軌跡蓄積部２０５がＲＡＭ１０２に格納した追跡点情報１０２Ａを用いてレンズ歪み係数を推定し、フラッシュメモリ１１２に書きこむ。このとき、ＲＯＭ１０３からレンズ歪み係数以外の内部パラメータを読み込み、フラッシュメモリ１１２にあわせて描き込む。
【００１８】
図３は、ＲＡＭ１０２に保存される追跡点情報１０２Ａの一例を示す図である。図３の行は個別の特徴点を表し、列は撮影時刻ｔ１〜ｔ５における特徴点の撮影画像上の座標、特徴点軌跡の状態、特徴点軌跡が属するエリア、特徴点軌跡の近似式を表す。順番に説明する。
特徴点に付した番号、すなわち１００１、１００２などは、抽出された順番に付した番号である。図３は、時刻ｔ１に撮影された撮影画像からは特徴点が２つ抽出されたことを示しており、同様に時刻ｔ２、ｔ３に撮影された撮影画像からは４つ、時刻ｔ４に撮影された撮影画像からは３つ、時刻ｔ５に撮影された撮影画像からは１つ特徴点が抽出されたことが示されている。時刻ｔ２、ｔ３の撮影画像から抽出された４つの特徴点のうち２つ、すなわち特徴点１００１と特徴点１００２は、時刻ｔ１から追跡が継続されていることを表している。時刻ｔ４に撮影された撮影画像からは、特徴点１００１が抽出されなかったので図３では「ｘ」マークを付している。なお図３に示す例では時刻ｔ１〜ｔ５のみを表示しているが、時刻はこれに限定されない。
【００１９】
追跡点情報１０２Ａの「状態」の列は、特徴点を内部パラメータのキャリブレーションに使用するか否かを判断する際に参照される。この列には、特徴点の追跡が継続している場合には「未」、車両１の動きと特徴点の軌跡が整合しない場合は「不整合」、他に類似する特徴点の軌跡が存在しない場合は「ペアなし」と記入され、それ以外の場合は「ＯＫ」と記入される。追跡点情報１０２Ａの「エリア」の列は、特徴点の軌跡が属するエリアが示される。追跡点情報１０２Ａの「多項近似」の列は、特徴点の軌跡を多項式で近似した式を示す。
【００２０】
以下、各機能ブロックが行う処理をフローチャートを用いて説明する。以下に説明する各フローチャートの実行主体は、カメラキャリブレーション装置１００のＣＰＵ１０１である。
（特徴点抽出部の動作）
図４は特徴点抽出部２０２の動作を表すフローチャートである。特徴点抽出部２０２は、画像取得部２０１から撮影画像が送信されるたびに以下の動作を実行する。
ステップＳ３０１では、車両１の進行方向、および車両１の進行方向に対するカメラ１１１の撮影方向に基づき特徴点抽出部２０２が特徴点を抽出する撮影画像中の領域を決定する。例えば車両１が前方に進む場合は、カメラ１１１は車両１の前方に取り付けられているので、車両１に近い位置で特徴点を抽出してもすぐにカメラ１１１の画角から特徴点が外れてしまうため追跡できる時間が短い。処理領域は広ければ広いほど、計算処理に時間がかかるため、リアルタイム処理で計算するためには、このような無駄な部分の計算処理負荷を低減する必要がある。そこで、車両から離れた場所の特徴点を抽出するように処理領域を設定する。なお、カメラ１１１が車両の後方を撮影するように取り付けられている場合は、車両が前方に進行する際に車両に近い側に処理領域を設定する。次にステップＳ３０２に進む。
【００２１】
ステップＳ３０２では、ステップＳ３０１において設定した特徴点抽出領域を対象として特徴点を抽出する。特にエッジの交点であるコーナー特徴点を抽出することが好ましい。ステップＳ３０１において設定された領域に対して、ハリスオペレータなどを適用してコーナー特徴点を抽出し、ステップＳ３０３に進む。
ステップＳ３０３では、ステップＳ３０２において抽出された特徴点の座標をＲＡＭ１０２に出力し、図４のフローチャートを終了する。
【００２２】
（特徴点追跡部の動作）
図５は、特徴点追跡部２０３の動作を表すフローチャートである。特徴点追跡部２０３は、画像取得部２０１から撮影画像が送信されるたびに以下の動作を実行する。
ステップＳ４０１では、特徴点の追跡処理の対象とする処理領域を設定する。すなわち、カメラ１１１により直前に撮影された撮影画像において、特徴点抽出部２０２により特徴点が抽出された座標、および車両運動取得部２０４が取得する車両１の運動情報を用いて、直前の撮影画像において抽出された特徴点が移動する方向および距離を推定する。そして特徴点が移動すると推定した方向および距離に対応する領域を、特徴点追跡部２０３が特徴点を追跡する撮影画像中の領域として決定する。次にステップＳ４０２に進む。ただし、特徴点が移動する方向および距離を推定するために用いる撮影画像は直前の撮影画像に限定されず、複数の撮影画像を用いて推定してもよいし、直前以外の撮影画像に用いて推定してもよい。すなわち、より早い時間に撮影された撮影画像を用いて特徴点が移動する方向および距離を推定する。
【００２３】
次に説明するステップＳ４０２〜Ｓ４０５は、直前の撮影画像において抽出された特徴点に対応する回数だけ繰り返し実行される。
ステップＳ４０２では、前述のＳＡＤやＬＫ法などの公知の手法により、追跡対象であるＲＡＭ１０２から読み込んだ直前の撮影画像における特徴点の追跡を行い、ステップＳ４０３に進む。
ステップＳ４０３では、追跡対象である直前の撮影画像における特徴点の追跡が継続できたか否かを判断する。たとえば、ＳＡＤなどによる照合度が予め定めた閾値以下であれば、カメラの画角から外れたなどの理由で追跡ができないと判断する。追跡が継続できたと判断する場合はステップＳ４０４に進み、追跡が継続できなかったと判断する場合はステップＳ４０５に進む。
【００２４】
ステップＳ４０４では、追跡点情報１０２Ａにおける処理対象の特徴点の行であって、処理対象の撮影画像が撮影された時刻の列に、追跡した特徴点の座標を記録する。
ステップＳ４０５では、追跡点情報１０２Ａにおける処理対象の特徴点の行であって、処理対象の撮影画像が撮影された時刻の列に、追跡が終了したマーク、たとえば「ｘ」を記録する。
ステップＳ４０４またはステップＳ４０５の実行が完了すると、直前の撮影画像において抽出された特徴点についてステップＳ４０２〜Ｓ４０５が実行されたか否かを判断し、未処理の特徴点がある場合はステップＳ４０２に戻り、全ての特徴点について処理が完了したと判断する場合は図５のフローチャートを終了する。
【００２５】
（特徴点軌跡蓄積部の動作）
図６は、特徴点軌跡蓄積部２０５の動作を表すフローチャートである。
ステップＳ５０１では、ＲＡＭ１０２から追跡点情報１０２Ａを読み込み、車両運動取得部２０４が出力する運動情報と整合しない特徴点軌跡の「状態」の列に「不整合」と記録する。例えば、車両が時速６０ｋｍで走行しているにもかかわらず特徴点軌跡が滞留していたり、進行方向とは逆の軌跡を描いている場合は、その軌跡は路面上の特徴点の軌跡ではないと判断できる。画像処理で特徴点の追跡を行う場合、日照条件の変化や天候の変化、自車両や他車両の影などによって、誤追跡は避けられない。誤追跡結果をキャリブレーションに利用すると、正しいキャリブレーションが行えないため、このような追跡結果をこのステップＳ５０１の処理により排除する。次にステップＳ５０２に進む。
【００２６】
ステップＳ５０２では、特徴点抽出部２０２により抽出された特徴点のそれぞれ、すなわち特徴点の軌跡が属するエリアを特定する。カメラ１１１が撮影して得られる撮影画像は後述するように複数のエリアに分割されており、本ステップでは特徴点軌跡がいずれのエリアに属するかを特定する。内部パラメータの推定に用いる特徴点の軌跡が撮影画像の一部だけに局在している場合は、内部パラメータの推定精度が低くなるため、画像全体にわたって特徴が得られてからキャリブレーションを実施することが望ましい。そのため、本処理によって、特徴点軌跡が撮影画像中のいずれのエリアに属するか判断する。
【００２７】
図７（ａ）は、特徴点軌跡の属する撮影画像中のエリアを示す例である。ここでは、丸のマーカーで示す第１の特徴点軌跡８０１と、三角のマーカーで示す第２の特徴点軌跡８０２が追跡点情報１０２Ａに格納されていたとする。たとえばカメラ１１１の撮影画像を図７（ａ）のように（ア）〜（エ）の４つのエリアに分類する。このとき、特徴点軌跡８０１はエリア（ア）とエリア（ウ）に属し、特徴点軌跡８０２はエリア（エ）に属する。すなわち、図７（ａ）に示す例ではエリア（イ）に属する特徴点軌跡は存在しない。ただしここでは特徴点軌跡とは、追跡された特徴点同士を直線で接続した線分とする。次にステップＳ５０３に進む。
【００２８】
ステップＳ５０３では、追跡された特徴点を接続する複数の直線を、１つの多項式を用いて近似する。たとえば、次の式（１）により表される５次式で近似し、ａ〜ｅのパラメータを求める。
Ｙ＝ａｘ＾５＋ｂｘ＾４＋ｃｘ＾３＋ｄｘ＾２＋ｅｘ＋ｆ・・・・（１）
図７（ｂ）は、追跡された特徴点を接続する線分を１つの曲線で近似する例を示す図である。図７（ｂ）に図示する特徴点の軌跡は、図７（ａ）に示す特徴点の軌跡と同一である。図７（ｂ）では、複数の線分で表された特徴点軌跡８０１を１つの曲線８０１ａで近似し、同様に特徴点軌跡８０２を曲線８０２ａで近似している。次にステップＳ５０４に進む。
【００２９】
ステップＳ５０４では、ステップＳ５０２において算出したそれぞれの特徴点軌跡が属するエリアと、ステップＳ５０３において算出した特徴点軌跡を近似する多項式を追跡点情報１０２Ａに保存してステップＳ５０５に進む。
ステップＳ５０５では、追跡点情報１０２Ａに記録されている近似式のうち、互いに略一致するものがあるか否かを判断し、略一致する多項式が他に存在する場合は追跡点情報１０２Ａの「状態」列に「ＯＫ」を記入し、略一致する多項式が他に存在しない場合は同様に「ペアなし」と記入してステップＳ５０６に進む。
【００３０】
多項式が略一致するか否かは、多項式の係数の差が所定値以内であるか否かにより判断することができる。たとえば、ある２つの特徴点軌跡がそれぞれ次の式（２）、式（３）で近似されるとする。
Ｙ＝ａ１ｘ＾５＋ｂ１ｘ＾４＋ｃ１ｘ＾３＋ｄ１ｘ＾２＋ｅ１ｘ＋ｆ１・・（２）
Ｙ＝ａ２ｘ＾５＋ｂ２ｘ＾４＋ｃ２ｘ＾３＋ｄ２ｘ＾２＋ｅ２ｘ＋ｆ２・・（３）
このとき、（ａ１−ａ２）＜ｔｈ＿ａ、（ｂ１−ｂ２）＜ｔｈ＿ｂ、（ｃ１−ｃ２）＜ｔｈ＿ｃ、（ｄ１−ｄ２）＜ｔｈ＿ｄ、（ｅ１−ｅ２）＜ｔｈ＿ｅ、（ｆ１−ｆ２）＜ｔｈ＿ｆを全て満たす場合に２つの特徴点軌跡が略一致すると判断する。ただし、ｔｈ＿ａ、ｔｈ＿ｂ、ｔｈ＿ｃ、ｔｈ＿ｄ、ｔｈ＿ｅ、およびｔｈ＿ｆは所定の閾値である。
【００３１】
ステップＳ５０６では、追跡点情報１０２Ａを参照し、略一致する特徴点軌跡が所定数以上存在するか否かを判断する。換言すると、追跡点情報１０２Ａの「状態」の列における「ＯＫ」の数が所定数以上であるか否かを判断する。当該条件を満たすと判断するとステップＳ５０７に進み、当該条件を満たさないと判断すると図６に示す処理を終了する。
【００３２】
ステップＳ５０７では、追跡点情報１０２Ａを参照し、追跡点情報１０２Ａの「状態」の列が「ＯＫ」である特徴点軌跡の「エリア」の列に着目し、全てのエリアにわたって少なくとも１つ以上の特徴点軌跡が存在するか否かを判断する。すなわち本ステップでは、内部パラメータの推定に用いる特徴点軌跡が、カメラ１１１の撮影画像において広い範囲に分布しているか否かを判断している。当該条件を満たすと判断するとステップＳ５０８に進み、当該条件を満たさないと判断すると図６に示す処理を終了する。
ステップＳ５０８では、内部パラメータ推定部２０６に実行指令を出力し、図６に示す処理を終了する。
【００３３】
（内部パラメータ推定部の動作）
図８は、内部パラメータ推定部２０６の動作を表すフローチャートである。内部パラメータ推定部２０６は、特徴点軌跡蓄積部２０５から実行指令を受信すると動作を開始する。本フローチャートでは、後述する目的関数を最小にするレンズ歪み係数を繰り返し計算により求める。図８、および次に説明する図９では繰り返し計算の過程で仮に設定するレンズ歪み係数を「仮パラメータ」と呼ぶ。
【００３４】
ステップＳ６０１では、追跡点情報１０２Ａに記録されている特徴点軌跡であって「状態」の列が「ＯＫ」である特徴点軌跡に、平行性の評価が可能な特徴点の組み合わせが存在するか否か、換言すると連続する複数の撮影画像においてＹ座標が略同一である１組以上の特徴点が存在するか否かを判断する。条件を満たす特徴点が存在すると判断する場合はステップＳ６０２に進み、条件を満たす特徴点が存在しないと判断する場合はステップＳ６０３に進む。
ステップＳ６０２では、後述する目的関数を共線性と平行性に基づいて算出することとし、ステップＳ６０４に進む。
【００３５】
ステップＳ６０１において否定判定されると実行されるステップＳ６０３では、後述する目的関数を共線性のみに基づいて算出することとし、ステップＳ６０４に進む。
ステップＳ６０４では、フラッシュメモリ１１２に保存されている内部パラメータ１１２Ａのレンズ歪み係数を仮パラメータとして読み込む。ただし、初回実行時などフラッシュメモリ１１２に内部パラメータ１１２Ａが保存されていない場合は、ＲＯＭ１０３から内部パラメータ初期値１０３Ｂを読み込む。次にステップＳ６０５に進む。
【００３６】
ステップＳ６０５では、仮パラメータ、車両運動取得部２０４が出力する運動情報、追跡点情報１０２Ａに格納された特徴点の軌跡、およびステップＳ６０２またはステップＳ６０３において決定した観点で目的関数を算出する。すなわち共線性と平行性に基づく目的関数、または共線性のみに基づく目的関数を算出する。詳しくは図９を用いて説明する。本ステップにより、目的関数の評価値であるスカラー値が得られる。次にステップＳ６０６に進む。
【００３７】
ステップＳ６０６では、目的関数が収束したか否か、すなわち前回の目的関数と今回の目的関数の差が予め定めた値以下であるか否かを判断する。目的関数が収束したと判断する場合はステップＳ６０８に進み、目的関数が収束していないと判断する場合はステップＳ６０７に進む。ただし、初回実行時には収束したか否かを判断することが不可能なので、本ステップは否定判断を行うこととする。
ステップＳ６０７では、仮パラメータを更新してステップＳ６０５に戻る。たとえば、公知の技術であるレーベンバーグ・マーカート法などを用いることで、目的関数が減少するように仮パラメータを更新することができる。
ステップＳ６０８では、目的関数が収束した際のパラメータを出力し、図８に示す処理を終了する。
【００３８】
（目的関数算出のフローチャート）
図９は、図８のステップＳ６０５における処理の詳細を示すサブルーチンである。
ステップＳ７０１において、追跡点情報１０２Ａに記載された特徴点軌跡であって、「状態」の列が「ＯＫ」である特徴点の軌跡をＲＡＭ１０２に作業テーブル１０２Ｂとして複製する。さらに、作業テーブル１０２Ｂに記載されている特徴点の座標を、仮パラメータを用いて座標変換する。図９に示すフローチャートでは、以下、作業テーブル１０２Ｂに記載された座標変換後の特徴点を用いて計算を行う。次にステップＳ７０２に進む。
ステップＳ７０２では、目的関数の評価値とする変数ｅｖａｌにゼロを代入して初期化し、ステップＳ７０３に進む。
【００３９】
次に説明するステップＳ７０３〜Ｓ７０５は、作業テーブル１０２Ｂに記載されたそれぞれの特徴点について実行される。
ステップＳ７０３では、処理対象の特徴点のもっとも古い時刻での座標を始点として、運動情報に基づく車両１の走行に応じた理想的な特徴点の軌跡を算出する。理想的な特徴点の軌跡とは、カメラ１１１のレンズに歪みがない場合の特徴点の軌跡、すなわちカメラ１１１のレンズ歪みの影響を内部パラメータにより完全に除去できた場合の特徴点の軌跡である。たとえば、車両運動取得部２０４が出力する運動情報に基づき車両１が直進していると判断する場合には、理想的な特徴点の軌跡は直線と推定できる。一方、運動情報に基づき車両１が直進していない、すなわち旋回していると判断する場合は、カメラ１１１の外部パラメータおよび運動情報を用いて路面上の特徴点がカメラ１１１に撮影される軌跡を算出する。次にステップＳ７０４に進む。
【００４０】
ステップＳ７０４では、ステップＳ７０３において算出した理想的な軌跡と、作業テーブル１０２Ｂに記載された軌跡を用いて、共線性の評価値を算出する。ここで、本実施の形態では目的関数を最小とすることを目的としているので、共線性の評価は理想的な軌跡と作業テーブル１０２Ｂに記載された軌跡との距離が短いほど小さな値となるようにする。たとえば、共線性の評価値は、理想的な軌跡に対する作業テーブル１０２Ｂに記載されたそれぞれの特徴点座標との距離の和である。次にステップＳ７０５に進む。
【００４１】
ステップＳ７０５では、変数ｅｖａｌにステップＳ７０４において算出した共線性の評価値を加算する。作業テーブル１０２Ｂに記載の全ての特徴点についてステップＳ７０３〜Ｓ７０５の実行が終了していればステップＳ７０６に進み、まだ実行が完了していない特徴点があればステップＳ７０３に戻る。
ステップＳ７０６では、平行性も評価するか否か、すなわちステップＳ６０１において肯定判定されたか否かを判断する。肯定判定されたと判断する場合はステップＳ７０７に進み、否定判定されたと判断する場合はステップＳ７１０に進む。
【００４２】
次に説明するステップＳ７０７〜Ｓ７０９は、作業テーブル１０２Ｂにおいて平行と判断されているそれぞれの特徴点の組み合わせに対して実行される。
ステップＳ７０７では、平行であると判断された特徴点について、同一時刻の特徴点座標を結ぶ線分を生成し、ステップＳ７０８に進む。
ステップＳ７０８では、ステップＳ７０７において生成した複数の線分の平行性を、車両１の運動情報を考慮して評価する。ここで、本実施の形態では目的関数を最小とすることを目的としているので、平行性の評価は線分同士が平行でないほど大きな値となるようにする。たとえば、線分同士のなす角度から車両の回転角を除いた値を評価値とする。次にステップＳ７０９に進む。
【００４３】
ステップＳ７０９では、変数ｅｖａｌにステップＳ７０８において算出した平行性の評価値を加算する。作業テーブル１０２Ｂに記載の全ての平行な特徴点の組み合わせについてステップＳ７０７〜Ｓ７０９の実行が終了していればステップＳ７１０に進み、まだ実行が完了していない特徴点があればステップＳ７０７に戻る。
ステップＳ７１０では、変数ｅｖａｌを目的関数の値として出力し、作業テーブル１０２ＢをＲＡＭ１０２から削除して図９のフローチャートを終了する。
【００４４】
上述した第１の実施の形態によれば、次の作用効果が得られる。
（１）カメラキャリブレーション装置１００は、車両１に搭載されるカメラ１１１が異なる時刻に撮影して得られた複数の画像が入力される画像取得部２０１と、画像取得部２０１に入力されるそれぞれの画像から特徴点を抽出する特徴点抽出部２０２と、複数の画像間で特徴点を追跡する特徴点追跡部２０３と、車両の運動に関する情報を取得する車両運動取得部２０４と、車両運動取得部２０４が取得する情報に基づき、車両１の移動に応じた特徴点の軌跡を推定する軌跡推定部（図９のステップＳ７０３）と、特徴点追跡部２０３が追跡した特徴点の軌跡と、軌跡推定部が推定した特徴点の軌跡とに基づきカメラ１１１の内部パラメータ、すなわちレンズの歪みを示すパラメータであるレンズ歪み係数を推定する内部パラメータ推定部２０６とを備える。
カメラキャリブレーション装置１００をこのように構成したので、路面に描かれた道路標示などから特徴点を抽出し、レンズ歪み係数のキャリブレーションを行う。換言すると、路面に描かれた線、記号、または文字を利用するので、路面に白線がなくてもレンズ歪み係数のキャリブレーションができる。
【００４５】
（２）内部パラメータは、カメラ１１１が備えるレンズの歪みに応じたレンズ歪み係数を含む。内部パラメータ推定部２０６は、特徴点追跡部２０３が追跡した特徴点の軌跡をレンズの歪み係数を用いて変換した特徴点の軌跡（図９のステップＳ７０１）と、軌跡推定部（図９のステップＳ７０３）が推定した特徴点の軌跡との差を最小とするようにレンズ歪み係数を算出する。
すなわち、カメラ１１１の撮影画像における路面に描かれた道路標識から抽出された特徴点の位置を車両１の運動情報を用いて推定することで、カメラ１１１のレンズ歪み係数を推定することができる。
【００４６】
（３）カメラキャリブレーション装置１００は、特徴点追跡部２０３が追跡した特徴点の軌跡を多項式を用いて近似する軌跡近似部（図６のステップＳ５０３）と、軌跡近似部が第１の特徴点の軌跡を近似した多項式の係数と、軌跡近似部が第２の特徴点の軌跡を近似した多項式の係数との差に基づいて、第１の特徴点の軌跡と第２の特徴点の軌跡とが一致するか否かを判断する一致判定部（図６のステップＳ５０５）とを備える。内部パラメータ推定部２０６は、一致判定部が一致すると判断した第１の特徴点の軌跡と第２の特徴点の軌跡とを用いてカメラ１１１のレンズ歪み係数を推定する。
似ている特徴点軌跡が得られるほど、その特徴点の軌跡はノイズの軌跡ではなく路面の道路標示の軌跡と考えられ信頼度が高い。そのため、近似式が略同一である特徴点軌跡を用いることで、カメラ１１１のレンズ歪み係数を高精度に算出できる。
【００４７】
（４）内部パラメータ推定部２０６は、特徴点追跡部２０３が追跡した特徴点の軌跡が画像を分割した複数の領域の全てに含まれる場合に、カメラ１１１の内部パラメータを推定する（図６のステップＳ５０７）。
特徴点軌跡が撮影画像の一部だけに局在している場合は、レンズ全面の歪みの情報が得られておらず十分なキャリブレーションの精度が得られない。そのため、特徴点が撮影画像の広い範囲に分布していることを内部パラメータ推定の実行条件とすることで、キャリブレーションの精度低下を防止する。
【００４８】
（５）内部パラメータ推定部２０６は、運動情報に基づき車両１が直進していると判断する場合に、特徴点の軌跡を直線と推定する。
そのため、車両１が直進する状況に限定すれば、外部パラメータを用いることなく内部パラメータのキャリブレーションを行うことができる。
（６）内部パラメータ推定部２０６は、運動情報に基づき車両１が直進していないと判断する場合に、カメラ１１１の外部パラメータおよび車両運動取得部２０４が取得する運動情報を用いて、特徴点の軌跡を推定する。
そのため、車両１が旋回している状況であっても、外部パラメータと運動情報を用いて内部パラメータのキャリブレーションを行うことができる。
【００４９】
（７）特徴点抽出部２０２は、車両１の進行方向、および車両１の進行方向に対するカメラ１１１の撮影方向に基づき特徴点を抽出する画像中の領域を決定する。
そのため、追跡を前提として特徴点を抽出するので、仮に抽出してもすぐに追跡が不可能になる領域を処理領域から除外することにより、特徴点抽出部２０２の負荷を軽減することができる。特徴点抽出部２０２は、カメラ１１１が撮影を行うたびに実行され、次にカメラ１１１が撮影を行う前に処理が完了する必要がある。そのため、特徴点抽出部２０２の負荷が増加するとカメラキャリブレーション装置１００のＣＰＵ１０１の処理能力を増強する必要がある。換言すると、特徴点抽出部２０２の負荷を軽減することによりカメラキャリブレーション装置１００のＣＰＵ１０１に処理能力の低い安価な製品を使用することができる。
【００５０】
（８）特徴点追跡部２０３は、複数の画像のうち先の時刻に撮影された第１の画像において、特徴点抽出部２０２により特徴点が抽出された位置、および車両運動取得部２０４が取得する情報を用いて、複数の画像のうち第１の画像よりも後の時刻に撮影された第２の画像において特徴点を追跡する領域を決定する。
そのため、特徴点追跡部２０３の処理領域を限定し、特徴点追跡部２０３の負荷を軽減することができる。特徴点追跡部２０３は、カメラ１１１が撮影を行うたびに実行され、次にカメラ１１１が撮影を行う前に処理が完了する必要がある。そのため、特徴点追跡部２０３の負荷が増加するとカメラキャリブレーション装置１００のＣＰＵ１０１の処理能力を増強する必要がある。換言すると、特徴点追跡部２０３の負荷を軽減することによりカメラキャリブレーション装置１００のＣＰＵ１０１に処理能力の低い安価な製品を使用することができる。
【００５１】
（変形例１）
上述した第１の実施の形態では、特徴点追跡部２０３により追跡が完了した特徴点、すなわち次の撮影画像では特徴点の追跡ができず、追跡点情報１０２Ａには「ｘ」が記録された特徴点のみを内部パラメータのキャリブレーションに用いた。しかし、追跡が完了していない特徴点も内部パラメータのキャリブレーションに用いてもよい。
【００５２】
（変形例２）
上述した第１の実施の形態では、車両１は１台のカメラ１１１のみを備えた。しかし、車両１はカメラを複数台備えてもよい。車両１がカメラを複数台備える場合は、カメラキャリブレーション装置１００をカメラと同数用意してもよいし、カメラキャリブレーション装置１００を１台のみ備えて複数のカメラの内部パラメータを順番にキャリブレーションしてもよい。
なお、車両が備えるカメラの取付け位置およびカメラの撮影方向によらず、第１の実施の形態において説明した内部パラメータキャリブレーションプログラム１０３Ａを適用することができる。
【００５３】
（変形例３）
カメラ１１１が撮像素子にＣＭＯＳセンサーを使用し、シャッターにローリングシャッター方式を採用する場合には、カメラ１１１と被写体の相対速度が大きい場合に撮影画像に歪みが生じる。この場合は、カメラキャリブレーション装置１００が以下のように撮影画像を補正する歪み補正部をさらに備え、歪み補正部が補正した撮影画像を用いて特徴点抽出部２０２や特徴点追跡部２０３が処理を行ってもよい。
【００５４】
ＣＭＯＳセンサーはマトリクス状に配置された複数のフォトダイオードを備え、このフォトダイオードが行ごとに順次露光され読み出される。この行ごとの露光・読み出し時間の差は既知であり、カメラ１１１を搭載する車両１の運動情報は車両運動取得部２０４から得られる。そこで歪み補正部は、ＣＭＯＳセンサーの行ごとの露光・読み出し時間の差、車両１の運動情報、およびカメラ１１１の外部パラメータに基づき、カメラ１１１の撮影画像から歪みを除去して特徴点抽出部２０２および特徴点追跡部２０３に出力する。
この変形例３によれば、メカニカルシャッターを備えることなくＣＭＯＳセンサーの読み出し方式に起因する撮影画像の歪みを除去することができる。
【００５５】
（変形例４）
上述した第１の実施の形態では、車両１が接地している路面の勾配は一定としたが、カメラ１１１により撮影される範囲の路面の勾配が車両が接地している路面の勾配と一致しない場合にも本発明を適用することができる。その場合は、後述する手段により車両１の姿勢に対する撮影範囲の路面の勾配を推定し、理想的な特徴点の軌跡を算出する処理（図９のステップＳ７０３）において、路面の勾配の変化が撮影画像における特徴点軌跡の位置へ及ぼす影響を考慮することにより対応することができる。
車両１の姿勢に対する撮影範囲の路面の勾配を推定する手段は、たとえば衛星測位システムによる車両１の位置および向きと道路勾配の情報を含む地図情報の組み合わせを用いることもできるし、路面に沿って存在する直線状の物体、たとえば白線やガードレール、道路沿いの建物の水平方向のエッジ、道路を走行する他の車両の傾きなどを用いることもできる。
【００５６】
（変形例５）
上述した第１の実施の形態では、内部パラメータのキャリブレーションは常時実行されたが、温度や時間の条件を満たす場合のみ実行してもよい。
たとえば車両１が温度計をさらに備え、内部パラメータのキャリブレーションが行われた際の温度を記録し、その温度から所定の温度以上、たとえば５度以上変化した場合に内部パラメータのキャリブレーションを再度行ってもよい。この場合は温度計が測定する温度はカメラ１１１の温度や外気の温度を測定してもよいし、車両１の乗員室の温度を測定してもよい。また一定時間ごとに内部パラメータのキャリブレーションを行ってもよい。
【００５７】
（変形例６）
上述した第１の実施の形態では、図６のステップＳ５０２において撮影画像を４つのエリアに分割し、特徴点軌跡がいずれのエリアに属するかを判断した。しかし、エリアの分割数および分割方法はこれに限定されない。エリアの分割数は少なくとも２あればよい。エリアの分割はマトリクス状に限定されず、Ｘ方向のみに分割してもよいしＹ方向のみに分割してもよい。さらに、エリアは矩形に限定されず円や不定型でもよくランダムに分割されてもよい。
【００５８】
（変形例７）
上述した第１の実施の形態では、内部パラメータ推定部２０６を動作させる条件の１つを、撮影画像中の全てのエリアに少なくとも１つの特徴点の軌跡が存在することとした（図６のステップＳ５０７）。しかし、当該条件における特徴点の軌跡の数は１に限定されず、２や３以上であってもよい。
【００５９】
（第２の実施の形態）
図１０〜図１１を参照して、本発明にかかるカメラキャリブレーション装置の第２の実施の形態を説明する。以下の説明では、第１の実施の形態と同じ構成要素には同じ符号を付して相違点を主に説明する。特に説明しない点については、第１の実施の形態と同じである。本実施の形態では、主に、レンズ歪みに加えてレンズの焦点距離もキャリブレーションの対象とする点で、第１の実施の形態と異なる。
【００６０】
第２の実施の形態におけるカメラキャリブレーション装置１００のハードウエア構成は第１の実施の形態と同様である。第２の実施の形態ではＲＯＭ１０３に格納される内部パラメータキャリブレーションプログラム１０３Ａの動作が異なる。
図１０は、第２の実施の形態における内部パラメータキャリブレーションプログラム１０３Ａが有する機能を機能ブロックとして表した図である。内部パラメータキャリブレーションプログラム１０３Ａの内部パラメータ推定部２０６Ａは、レンズ歪み係数に加えて焦点距離のキャリブレーションも行う。
【００６１】
（焦点距離のキャリブレーション）
図１１は、内部パラメータ推定部２０６Ａによる焦点距離のキャリブレーション動作を表すフローチャートである。
ステップＳ８０１では、ＲＯＭ１０３からカメラ１１１の内部パラメータの１つである撮像素子サイズ、および外部パラメータを読み込み、ステップＳ８０２に進む。
ステップＳ８０２では、追跡点情報１０２Ａを読み込み、ステップＳ８０３に進む。
次に説明するステップＳ８０３〜Ｓ８０７は、作業テーブル１０２Ｂの「状態」列が「ＯＫ」であるそれぞれの特徴点について実行される。
ステップＳ８０３では、当該特徴点の追跡が開始された撮影時刻（以下、時刻ｔｓ）、および追跡が終了した撮影時刻（以下、時刻ｔｅ）を特定する。たとえば、図３に示す例において特徴点１００１を処理対象とする場合は、追跡が開始された撮影時刻が「ｔ１」であり、追跡が終了した撮影時刻は「ｔ３」である。次にステップＳ８０４に進む。
【００６２】
ステップＳ８０４では、ステップＳ８０３において特定した時刻ｔｓにおける処理対象である特徴点とカメラ１１１との距離を焦点距離ｆの関数として算出する。カメラ１１１の撮像素子サイズは既知なので焦点距離ｆを用いてカメラ１１１の画角を表すことができ、さらに既知である外部パラメータ、すなわち車両に対するカメラ１１１の取付け位置および取付け姿勢を用いることで、処理対象である特徴点とカメラ１１１との距離を焦点距離ｆの関数として算出することができる。以下ではこの距離をｄｔｓと呼ぶ。次にステップＳ８０５に進む。
【００６３】
ステップＳ８０５では、ステップＳ８０３において特定した時刻ｔｅにおける処理対象である特徴点とカメラ１１１との距離を焦点距離ｆの関数として算出する。算出方法はステップＳ８０４と同様である。以下ではこの距離をｄｔｅと呼ぶ。次にステップＳ８０６に進む。
ステップＳ８０６では、車両運動取得部２０４が出力する運動情報を用いて、時刻ｔｓから時刻ｔｅの間に、車両１が移動した直線距離を算出する。以下ではこの直線距離をｄｔｓ−ｔｅと呼ぶ。次にステップＳ８０７に進む。
【００６４】
ステップＳ８０７では、ｆの一次式であるｄｔｓ−ｄｔｅ＝ｄｔｓ−ｔｅを満たす焦点距離ｆを求め、算出結果をＲＡＭ１０２に保存する。作業テーブル１０２Ｂに記載された全ての特徴点について処理が完了している場合はステップＳ８０８に進み、いずれかの特徴点について処理が完了していない場合はステップＳ８０３に戻る。
ステップＳ８０８では、ＲＡＭ１０２に保存された複数の焦点距離ｆの平均値を算出し、ステップＳ８０９に進む。
ステップＳ８０９では、ステップＳ８０８において算出した焦点距離ｆをフラッシュメモリ１１２に内部パラメータとして保存し、図１１のフローチャートを終了する。
【００６５】
上述した第２の実施の形態によれば、次の作用効果が得られる。
（１）カメラキャリブレーション装置１００は、車両１に搭載されるカメラ１１１が異なる時刻に撮影して得られた複数の画像が入力される画像取得部２０１と、画像取得部２０１に入力されるそれぞれの画像から特徴点を抽出する特徴点抽出部２０２と、複数の画像間で特徴点を追跡する特徴点追跡部２０３と、車両の運動に関する情報を取得する車両運動取得部２０４と、車両運動取得部２０４が取得する情報に基づき、車両１の移動に応じた特徴点の軌跡を推定する軌跡推定部（図９のステップＳ７０３）と、特徴点追跡部２０３が追跡した特徴点の軌跡と、軌跡推定部が推定した特徴点の軌跡とに基づきカメラ１１１の内部パラメータ、すなわちレンズ歪み係数および焦点距離を推定する内部パラメータ推定部２０６とを備える。
カメラキャリブレーション装置１００をこのように構成したので、路面に描かれた道路標示などから特徴点を抽出し、レンズ歪み係数および焦点距離のキャリブレーションを行う。換言すると、路面に描かれた線、記号、または文字を利用するので、路面に白線がなくてもレンズ歪み係数および焦点距離のキャリブレーションができる。
【００６６】
（２）内部パラメータは、カメラが備えるレンズの焦点距離を含む。カメラキャリブレーション装置１００は、特徴点の第１の時刻ｔｓにおける位置とカメラ１１１との距離である第１距離ｄｔｓを焦点距離ｆに応じて算出する第１距離算出部（図１１のステップＳ８０４）と、特徴点追跡部２０３が追跡する特徴点の第２の時刻ｔｅにおける位置とカメラ１１１との距離である第２距離ｄｔｅを焦点距離ｆに応じて算出する第２距離算出部（図１１のステップＳ８０５）と、車両運動取得部２０４が取得する情報に基づき、第１の時刻ｔｓから第２の時刻ｔｅまでに車両が移動した距離である移動距離ｄｔｓ−ｔｅを算出する移動距離算出部（図１１のステップＳ８０６）とを備える。内部パラメータ推定部、すなわち内部パラメータ推定部２０６Ａは、第１距離ｄｔｓと第２距離ｄｔｅとの差である第３距離（ｄｔｓ−ｄｔｅ）が、移動距離ｄｔｓ−ｔｅと等しくなるようにカメラ１１１が備えるレンズの焦点距離ｆを算出する。
そのため、白線に限定されない路面上の道路標示を用いて焦点距離ｆを算出することができる。
【００６７】
なお、以上説明した第２の実施の形態では、特徴点の追跡が開始された時刻ｔ５と、追跡が終了した時刻ｔｅにおける特徴点の位置とカメラ１１１の距離を算出したが、他の時刻における特徴点の位置とカメラ１１１の距離を算出し、焦点距離ｆを算出してもよい。
【００６８】
上述した各実施の形態および変形例は、それぞれ組み合わせてもよい。
上記では、種々の実施の形態および変形例を説明したが、本発明はこれらの内容に限定されるものではない。本発明の技術的思想の範囲内で考えられるその他の態様も本発明の範囲内に含まれる。
【符号の説明】
【００６９】
１  …  車両、１００  …  カメラキャリブレーション装置、１０２Ａ  …  追跡点情報、１０３Ａ  …  内部パラメータキャリブレーションプログラム、１１１  …  カメラ、１１２  …  フラッシュメモリ、１１２Ａ  …  内部パラメータ、２０１  …  画像取得部、２０２  …  特徴点抽出部、２０３  …  特徴点追跡部、２０４  …  車両運動取得部、２０５  …  特徴点軌跡蓄積部、２０６、２０６Ａ  …  内部パラメータ推定部
【図１】
0006541590.tif 000002
【図２】
0006541590.tif 000003
【図３】
0006541590.tif 000004
【図４】
0006541590.tif 000005
【図５】
0006541590.tif 000006
【図６】
0006541590.tif 000007
【図７】
0006541590.tif 000008
【図８】
0006541590.tif 000009
【図９】
0006541590.tif 000010
【図１０】
0006541590.tif 000011
【図１１】
0006541590.tif 000012