(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-02-04
(45)【発行日】2022-02-15
(54)【発明の名称】カメラキャリブレーション装置、カメラキャリブレーション方法、およびプログラム
(51)【国際特許分類】
H04N 5/232 20060101AFI20220207BHJP
B60R 99/00 20090101ALI20220207BHJP
G06T 7/70 20170101ALI20220207BHJP
G06T 7/80 20170101ALI20220207BHJP
【FI】
H04N5/232
B60R99/00
G06T7/70 Z
G06T7/80
(21)【出願番号】P 2018008143
(22)【出願日】2018-01-22
【審査請求日】2020-06-04
(73)【特許権者】
【識別番号】502324066
【氏名又は名称】株式会社デンソーアイティーラボラトリ
(73)【特許権者】
【識別番号】000004260
【氏名又は名称】株式会社デンソー
(74)【代理人】
【識別番号】100113549
【氏名又は名称】鈴木 守
(74)【代理人】
【識別番号】100115808
【氏名又は名称】加藤 真司
(74)【代理人】
【識別番号】230121430
【氏名又は名称】安井 友章
(72)【発明者】
【氏名】白井 英樹
(72)【発明者】
【氏名】柳川 博彦
【審査官】吉川 康男
(56)【参考文献】
【文献】特開2014-048803(JP,A)
【文献】特開2017-143417(JP,A)
【文献】特開2010-223619(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 5/232
G06T 7/70
G06T 7/80
B60R 99/00
(57)【特許請求の範囲】
【請求項1】
車両に搭載されたカメラのキャリブレーションを行う装置であって、
キャリブレーション対象の前記カメラにて撮影した画像中の路面領域にある特徴点のフレーム間におけるフロー
と、キャリブレーション対象の前記カメラとの位置関係が既知の第2のカメラにて撮影したフレーム間における特徴点のフローを抽出するフロー抽出部と、
車両センサ信号を受信する受信部と、
前記車両センサ信号から車両座標系における前記フレーム間のカメラ回転量Rvおよび移動量Cvを計算するカメラ移動量計算部と、
車両座標系における前記フレーム間のカメラ回転量Rvおよび移動量Cvと、カメラ姿勢Rcおよび高さhcとを用いて表現されたホモグラフィー行列Hmによって変換される特徴点の位置が
キャリブレーション対象の前記カメラにて撮影した特徴点のフローと整合
し、かつ、前記第2のカメラのカメラ座標系におけるホモグラフィー行列Hiであって、キャリブレーション対象の前記カメラのカメラ回転量Rvおよび移動量Cvと、カメラ間の相対姿勢ΔRiおよび相対位置ΔCi、カメラ姿勢Rcおよび高さhcとを用いて表現されたホモグラフィー行列Hiによって変換される特徴点の位置が、前記第2のカメラで撮影した特徴点のフローと整合するように、カメラ姿勢Rcおよび高さhcの最適解を求めるカメラパラメータ更新部と、
を備えるカメラキャリブレーション装置。
【請求項2】
キャリブレーション前のカメラ姿勢R
c0および高さh
c0のデータを記憶した記憶部を備え、
前記カメラパラメータ更新部は、カメラ姿勢R
c0および高さh
c0を初期値として、カメラ姿勢Rcおよび高さhcの最適解を求め、求めたカメラ姿勢Rcおよび高さhcを前記記憶部に記憶する請求項1に記載のカメラキャリブレーション装置。
【請求項3】
前記車両センサ信号に基づいて前記車両が走行した軌跡を求め、当該軌跡およびカメラ姿勢Rcおよび高さhcに基づいて前記路面領域を特定し、その路面領域に基づいて路面フローを抽出する請求項
1または2に記載のカメラキャリブレーション装置。
【請求項4】
前記カメラで撮影された画像に基づいて、前記カメラのピッチ軸回りの所定の閾値以上の変動を検知するピッチ変動検知部を備え、
前記ピッチ変動検知部にて、所定の閾値以上の変動を検知したときに、当該変動の際に撮影された画像をキャリブレーションの処理から除外する請求項1乃至
3のいずれかに記載のカメラキャリブレーション装置。
【請求項5】
車両に搭載されたカメラのキャリブレーションを行う方法であって、
キャリブレーション対象の前記カメラにて撮影した画像中の路面領域にある特徴点のフレーム間におけるフロー
と、キャリブレーション対象の前記カメラとの位置関係が既知の第2のカメラにて撮影したフレーム間における特徴点のフローを抽出するステップと、
車両センサ信号を受信するステップと、
前記車両センサ信号から車両座標系における前記フレーム間のカメラ回転量Rvおよび移動量Cvを計算するステップと、
車両座標系における前記フレーム間のカメラ回転量Rvおよび移動量Cvと、カメラ姿勢Rcおよび高さhcとを用いて表現されたホモグラフィー行列Hmによって変換される特徴点の位置が、
キャリブレーション対象の前記カメラにて撮影した特徴点のフレーム間におけるフローと整合
し、かつ、前記第2のカメラのカメラ座標系におけるホモグラフィー行列Hiであって、キャリブレーション対象の前記カメラのカメラ回転量Rvおよび移動量Cvと、カメラ間の相対姿勢ΔRiおよび相対位置ΔCi、カメラ姿勢Rcおよび高さhcとを用いて表現されたホモグラフィー行列Hiによって変換される特徴点の位置が、前記第2のカメラで撮影した特徴点のフローと整合するように、カメラ姿勢Rcおよび高さhcの最適解を求めるステップと、
を備えるカメラキャリブレーション方法。
【請求項6】
車両に搭載されたカメラのキャリブレーションを行うためのプログラムであって、コンピュータに、
キャリブレーション対象の前記カメラにて撮影した画像中の路面領域にある特徴点のフレーム間におけるフロー
と、キャリブレーション対象の前記カメラとの位置関係が既知の第2のカメラにて撮影したフレーム間における特徴点のフローを抽出するステップと、
車両センサ信号を受信するステップと、
前記車両センサ信号から車両座標系における前記フレーム間のカメラ回転量Rvおよび移動量Cvを計算するステップと、
車両座標系における前記フレーム間のカメラ回転量Rvおよび移動量Cvと、カメラ姿勢Rcおよび高さhcとを用いて表現されたホモグラフィー行列Hmによって変換される特徴点の位置が、
キャリブレーション対象の前記カメラにて撮影した特徴点のフレーム間におけるフローと整合
し、かつ、前記第2のカメラのカメラ座標系におけるホモグラフィー行列Hiであって、キャリブレーション対象の前記カメラのカメラ回転量Rvおよび移動量Cvと、カメラ間の相対姿勢ΔRiおよび相対位置ΔCi、カメラ姿勢Rcおよび高さhcとを用いて表現されたホモグラフィー行列Hiによって変換される特徴点の位置が、前記第2のカメラで撮影した特徴点のフローと整合するように、カメラ姿勢Rcおよび高さhcの最適解を求めるステップと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、車に搭載されたカメラの路面に対する高さおよび角度のキャリブレーション方法に関する。
【背景技術】
【0002】
従来から、車両に搭載された複数台のカメラの映像を利用して、車両周辺を上から見たような画像(鳥瞰画像)を提供する技術がある(特許文献1)。複数台のカメラ画像から鳥瞰画像を合成するためには、各カメラと路面の関係(カメラの位置と角度)を知る必要がある。
【0003】
カメラの路面に対する位置や角度の推定(本書では「キャリブレーション」という)方法としては、工場の敷地内に規定のキャリブレーション用のボードや白線などを配置しておき、カメラでそれらを撮影した後に、既知のボードや白線などの位置情報に基づいてキャリブレーションを行う方法があった(特許文献2)。しかし、これらは最初の一度しかキャリブレーションを行わないため、例えば実際の走行時に、乗員や荷物の重みなどによって車両が傾いていたりすると、正しい鳥瞰画像が得られないなどの問題がある。
【0004】
こうした問題を解決するために、走行中にキャリブレーションを行う方法も提案されている(特許文献3)。特許文献3では、カメラに映る路面のフローを入力としてホモグラフィー行列を推定し、それを分解することでカメラ姿勢と高さを推定する。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2007-183877
【文献】特開2012-015576
【文献】特開2014-101075
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献3に記載された方法は、4つ以上の路面上のフロー(対応づけられた特徴点)からホモグラフィー行列を計算し、それをまずフレーム間のカメラ回転行列Rcと移動ベクトルTcに分解した後、カメラ姿勢(角度)とカメラ高さを計算する。特許文献3に記載された方法は、フレーム間のカメラ回転行列Rcが単位行列(車両は直進している)であるという制約がある。
【0007】
また、特許文献3に記載された方法では、最初に得られたフレーム間のカメラ回転行列Rcと移動ベクトルTcを分解してカメラ姿勢(角度)とカメラ高さを求めるので、RcとTcの推定誤差の影響を受けやすく精度の低下が懸念される。
【0008】
本発明は、上記背景に鑑み、カメラ画像に映る路面の動き情報と、車両から得られる車両(カメラ)の移動情報から、カメラの高さおよび角度のキャリブレーションを行う装置を提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明のカメラキャリブレーション装置は、車両に搭載されたカメラのキャリブレーションを行う装置であって、前記カメラにて撮影した画像中の路面領域にある特徴点のフレーム間におけるフローを抽出するフロー抽出部と、車両センサ信号を受信する受信部と、前記車両センサ信号から車両座標系における前記フレーム間のカメラ回転量Rvおよび移動量Cvを計算するカメラ移動量計算部と、車両座標系における前記フレーム間のカメラ回転量Rvおよび移動量Cvと、カメラ姿勢Rcおよび高さhcとを用いて表現されたホモグラフィー行列Hmによって変換される特徴点の位置が前記フロー抽出部にて求めた特徴点のフローと整合するように、カメラ姿勢Rcおよび高さhcの最適解を求めるカメラパラメータ更新部とを備える。また、キャリブレーション前のカメラ姿勢Rc0および高さhc0のデータを記憶した記憶部を備え、前記カメラパラメータ更新部は、カメラ姿勢Rc0および高さhc0を初期値として、カメラ姿勢Rcおよび高さhcの最適解を求め、求めたカメラ姿勢Rcおよび高さhcを前記記憶部に記憶してもよい。
【0010】
この構成により、回転運動を含むシーンでも、キャリブレーションを容易に行うことができ、キャリブレーションの適用シーンが拡大する。また、ホモグラフィー行列Hmは、車両座標系におけるカメラ回転量Rvおよび移動量Cvを含む式を用いているので、車両センサ信号から求められる車両座標系におけるカメラ回転量Rvおよび移動量Cvをダイレクトに用いて、計算を行える。
【0011】
本発明のカメラキャリブレーション装置は、車両に搭載されたキャリブレーション対象の前記カメラとの位置関係が既知の第2のカメラにて撮像された画像も用いてキャリブレーションを行ってもよい。具体的には、前記フロー抽出部は、前記第2のカメラにて撮影したフレーム間における特徴点のフローも抽出する。前記カメラパラメータ更新部は、前記第2のカメラのカメラ座標系におけるホモグラフィー行列Hiであって、キャリブレーション対象の前記カメラのカメラ回転量Rvおよび移動量Cvとカメラ間の相対姿勢ΔRiおよび相対位置ΔCi、カメラ姿勢Rcおよび高さhcとを用いて表現されたホモグラフィー行列Hiによって変換される特徴点の位置が、前記第2のカメラで撮影した特徴点のフローとも整合するように、カメラ姿勢Rcおよび高さhcの最適解を求める。
【0012】
この構成により、キャリブレーション対象のカメラだけでなく、第2のカメラに映る特徴点のフローを利用してキャリブレーションができるので、キャリブレーションの精度を向上させることができる。また、一方のカメラで適切に撮影を行なえない場合においても、他方のカメラからの画像に基づいてキャリブレーションを行うことができ、キャリブレーションの適用シーンを拡大することができる。なお、第2のカメラは、複数あってもよい。
【0013】
本発明のカメラキャリブレーション装置は、前記車両センサ信号に基づいて前記車両が走行した軌跡を求め、当該軌跡およびカメラ姿勢Rcおよび高さhcに基づいて前記路面領域を特定し、その路面領域に基づいて路面フローを抽出してもよい。
【0014】
自車が走行してきた領域は、すなわち車や人などの障害物、歩道の路側などの段差などが存在しない領域といえる。このように自車が走行してきた軌跡を利用して路面領域を特定する構成により、路面以外の不要な物体から抽出されるフローを回避し、路面に含まれる特徴点のみを正しく抽出し、そのフローを求めることができる。
【0015】
本発明のカメラキャリブレーション装置は、前記カメラで撮影された画像に基づいて、前記カメラのピッチ軸回りの所定の閾値以上の変動を検知するピッチ変動検知部を備え、前記ピッチ変動検知部にて、所定の閾値以上の変動を検知したときに、当該変動の際に撮影された画像をキャリブレーションの処理から除外してもよい。
【0016】
この構成により、例えば、路面に凹凸がある場合や路面が平面でない場合に撮影された画像は、カメラキャリブレーションの処理から除外できるので、精度の向上が期待できる。
【0017】
また、本発明のカメラキャリブレーション装置は、車両に搭載されたカメラのキャリブレーションを行う装置であって、前記カメラにて撮影した画像中の特徴点のフレーム間におけるフローを抽出するフロー抽出部と、車両センサ信号を受信する受信部と、前記車両センサ信号から車両座標系における前記フレーム間のカメラ回転量Rvおよび移動量Cvを計算するカメラ移動量計算部と、車両座標系における前記フレーム間のカメラ回転量Rvおよび移動量Cvから求まる前記特徴点のフローと、前記フロー抽出部にて求めた特徴点のフローとが整合するように、カメラ姿勢Rcおよび高さhcの最適解を求めるカメラパラメータ更新部とを備える。
【0018】
本発明のカメラキャリブレーション方法は、車両に搭載されたカメラのキャリブレーションを行う方法であって、前記カメラにて撮影した画像中の路面領域にある特徴点のフレーム間におけるフローを抽出するステップと、車両センサ信号を受信するステップと、前記車両センサ信号から車両座標系における前記フレーム間のカメラ回転量Rvおよび移動量Cvを計算するステップと、車両座標系における前記フレーム間のカメラ回転量Rvおよび移動量Cvと、カメラ姿勢Rcおよび高さhcとを用いて表現されたホモグラフィー行列Hmによって変換される特徴点の位置が、特徴点のフレーム間におけるフローと整合するように、カメラ姿勢Rcおよび高さhcの最適解を求めるステップとを備える。
【0019】
本発明のプログラムは、車両に搭載されたカメラのキャリブレーションを行うためのプログラムであって、コンピュータに、前記カメラにて撮影した画像中の路面領域にある特徴点のフレーム間におけるフローを抽出するステップと、車両センサ信号を受信するステップと、前記車両センサ信号から車両座標系における前記フレーム間のカメラ回転量Rvおよび移動量Cvを計算するステップと、車両座標系における前記フレーム間のカメラ回転量Rvおよび移動量Cvと、カメラ姿勢Rcおよび高さhcとを用いて表現されたホモグラフィー行列Hmによって変換される特徴点の位置が、特徴点のフレーム間におけるフローと整合するように、カメラ姿勢Rcおよび高さhcの最適解を求めるステップとを実行させる。
【発明の効果】
【0020】
本発明によれば、車両センサ信号から求めたフレーム間におけるカメラ回転量Rvおよび移動量Cvを用いて、カメラ姿勢Rcおよび高さhcを求めるので、キャリブレーションの精度を向上させることができる。
【図面の簡単な説明】
【0021】
【
図1】第1の実施の形態のカメラキャリブレーション装置の構成を示す図である。
【
図2】アッカーマンモデルによるカメラ移動量の計算例を示す図である。
【
図3】カメラパラメータ更新部によるパラメータ更新処理の原理を示す図である。
【
図4】車両座標系とカメラ座標系の違いを説明するための図である。
【
図5】車両座標系とカメラ座標系の変換式の導出方法について説明するための図である。
【
図6】第1の実施の形態のカメラキャリブレーション装置の動作を示すフローチャートである。
【
図7】第2の実施の形態のカメラキャリブレーション装置の構成を示す図である。
【
図8】リアカメラ座標系とフロントカメラ座標系の変換式の導出方法について説明するための図である。
【
図9】第2の実施の形態のカメラキャリブレーション装置の動作を示すフローチャートである。
【
図10】第3の実施の形態のカメラキャリブレーション装置の構成を示す図である。
【
図11】第4の実施の形態のカメラキャリブレーション装置の構成を示す図である。
【発明を実施するための形態】
【0022】
以下、本発明の実施の形態のカメラキャリブレーション装置について説明する。
(第1の実施の形態)
図1は、第1の実施の形態のカメラキャリブレーション装置1の構成を示す図である。カメラキャリブレーション装置1は、カメラの姿勢および路面からの高さのキャリブレーションを行う。カメラキャリブレーション装置1は、キャリブレーション対象のリアカメラ22と接続されており、リアカメラ22にて撮影された画像を取得する。また、カメラキャリブレーション装置1は、車載エリアネットワーク(CAN)21に接続されており、CAN21から車両センサ信号を受信する。
【0023】
カメラキャリブレーション装置1は、車両センサ信号を受信する受信部10と、カメラ移動量計算部11と、路面フロー抽出部12と、カメラパラメータ更新部13と、カメラパラメータ記憶部14とを有している。
【0024】
受信部10は、車両センサ信号として、ステアリング角度θ
S、左後輪移動量D
L、右後輪移動量D
Rのデータを受信する。カメラ移動量計算部11は、アッカーマンモデルに基づいて、カメラ移動量と回転角を求める。
図2は、アッカーマンモデルによるカメラ移動量の計算例を示す図である。本実施の形態では、説明の便宜上、カメラ移動量計算部11は、時刻t-1から時刻tの間におけるカメラ移動量Rvと回転角Cvを求めるものとする。
【数1】
【0025】
路面フロー抽出部12は、リアカメラ22から取得した画像中の路面領域にある特徴点のフローを抽出する。時刻t-1から時刻tまでの間に、路面上にある特徴点がどのように移動したかを求める。路面領域にある特徴点は、例えば、アスファルトのテクスチャ(模様)や道路標示のコーナ点等である。
【0026】
カメラパラメータ記憶部14には、カメラの姿勢および路面からの高さのデータが記憶されている。記憶されているのは、キャリブレーション前のデータである。本実施の形態のカメラキャリブレーション装置1によるキャリブレーションがまだ行われていないときには、出荷時に計測されたカメラの姿勢および高さのデータが記憶されている。
【0027】
カメラパラメータ更新部13は、カメラパラメータ記憶部14に記憶されているカメラパラメータを更新する。
図3は、カメラパラメータ更新部13によるパラメータ更新処理の原理を示す図である。
図3における点u
past、点u
now及び点u
predは、カメラ画像上の点を示す。点u
pastは時刻t-1における特徴点の位置を示し、点u
nowは時刻tにおける特徴点の位置を示している。特徴点が点u
pastが点u
nowに移動したことは、路面フロー抽出部12による路面フローの抽出結果から分かる。
【0028】
点upredは、時刻t-1における点upastにホモグラフィー行列Hmを適用して求めた特徴点の予測位置を示している。具体的には、次式によって点upredを求める。
【0029】
【数2】
ここで、k( )はXYZ座標系を画像座標系に投影する処理を表し、k
-1( )はその逆の処理を表す。
【0030】
ホモグラフィー行列H
m(3×3行列)は、次の式で表される。
【数3】
ここで、R
mはフレーム間のカメラ回転量(3×3行列)、C
mはフレーム間のカメラ移動量(3×1ベクトル)、n
mは路面法線(3×1ベクトル)、h
m(スカラ)は路面からのカメラ高さを表す。ただし、これらはいずれもカメラ座標系で定義された値である。
【0031】
ホモグラフィー行列Hmには、カメラ姿勢および高さのパラメータが含まれている。点upredと点upastとが一致するようなホモグラフィー行列Hmは、正しいカメラ姿勢および高さのパラメータを含んでいるといえる。本実施の形態では、点upredの点upastに対する予測誤差eの二乗誤差を最小にするようなホモグラフィー行列Hmの最適解を求め、これによってカメラの姿勢および路面からの高さを求める。
【0032】
図4は、車両座標系とカメラ座標系の違いを説明するための図である。車両座標系は、路面に対して垂直にY
v軸が定義され、路面に対して平行にX
v軸、Z
v軸が定義される。Z
v軸は車両の進行方向を向いており、X
v軸はZ
v軸に対して垂直である。これに対してカメラ座標系は、カメラの光軸にZ
c軸が定義され、Z
c軸に垂直でかつ車体に対して平行にX
c軸が定義され、Z
c軸及びX
c軸に対して垂直にY
c軸が定義される。
【0033】
車両センサ信号に基づいてアッカーマンモデルで求められるカメラ回転量R
v、カメラ移動量C
vは車両座標系で定義されているため、これらのパラメータをホモグラフィー行列H
mにそのまま適用することはできない。そこで、本実施の形態のカメラキャリブレーション装置1では、次のように座標系の変換を行うことにより、車両座標系のカメラ回転量R
v、カメラ移動量C
vをホモグラフィー行列H
mに適用できるように工夫をしている。これにより、車両センサ信号から求まったカメラ回転量R
v、カメラ移動量C
vをキャリブレーションに用いることができる。
【数4】
上式において、R
cが求めるべきカメラ姿勢のパラメータ(ヨー角、ピッチ角、ロール角)からなる行列(3×3)であり、h
cが求めるべき高さのパラメータである。ヨー角θy、ピッチ角θp、ロール角θrとしたとき、例えばRcは以下の式で表される。
【数5】
【0034】
図5は、上式(5)~(8)の導出方法について説明するための図である。
図5は、時刻t-1と時刻tにおけるカメラ座標系X
cと車両座標系X
vとを変換する際の変換行列を示す図である。例えば、時刻t-1のカメラ座標系X
c(t-1)を時刻tのカメラ座標系X
c(t)に変換するには、時刻t-1のカメラ座標系X
c(t-1)に変換行列T
mを乗じることを示している。
【0035】
時刻tのカメラ座標系X
c(t)を時刻t-1のカメラ座標系X
c(t-1)で表す際には、
図5の右回りと左回りの両方で表現することができ、これを式で表すと、次式のようになる。
【数6】
ここで、
【数7】
であることから、
【数8】
となる。ここで、カメラ座標系と車両座標系の原点は同じであるから(
図4参照)、C
c=0とすると、上式(5)~(8)が得られる。
【0036】
カメラパラメータ更新部13は、観測された現在の特徴点と、ホモグラフィー行列による予測位置の二乗誤差を最小にするカメラ姿勢Rcとカメラ高さhcを求める。カメラパラメータ更新部13は、公知のレーベンバーグ・マーカート法(levenberg-marquardt)によって、カメラ姿勢Rcとカメラ高さhcの最適解を求める。このとき、カメラ回転量Rvとカメラ移動量Cvについてもカメラ姿勢Rcと高さhcと同時に最適化することができる。つまり、アッカーマンモデルで得られたカメラ回転量Rvとカメラ移動量Cvを初期値と利用して、非線形最適化により最適解を求めることができる。これにより、アッカーマンモデルで得られたカメラ回転量Rvとカメラ移動量Cvに誤差が含まれている場合でも、その誤差を低減でき、カメラ姿勢Rcと高さhcの精度向上が期待できる。
【0037】
カメラパラメータをpとして、最小化する誤差Eを示すと以下の式になる。
【数9】
式(13)をパラメータpで偏微分すると下記の式が得られる。
【数10】
【0038】
【0039】
以上、本実施の形態のカメラキャリブレーション装置1の構成について説明したが、上記したカメラキャリブレーション装置1のハードウェアの例は、CPU、RAM、ROM、ハードディスク、ディスプレイ、キーボード、マウス、通信インターフェース等を備えたECUである。上記した各機能を実現するモジュールを有するプログラムをRAMまたはROMに格納しておき、CPUによって当該プログラムを実行することによって、上記したカメラキャリブレーション装置1が実現される。このようなプログラムも本発明の範囲に含まれる。
【0040】
図6は、第1の実施の形態のカメラキャリブレーション装置1の動作を示すフローチャートである。カメラキャリブレーション装置1は、CAN21から車両センサ信号(ステアリング角度θ
S、左後輪移動量D
L、右後輪移動量D
Rのデータ)を受信し(S10)、受信した車両センサ信号に基づいて、車両座標系におけるカメラ回転量Rvとカメラ移動量Cvを求める(S11)。また、カメラキャリブレーション装置1は、リアカメラ22からリアカメラ画像を取得する(S12)。
【0041】
カメラキャリブレーション装置1は、カメラパラメータ記憶部14から、キャリブレーション前のリアカメラ22のカメラ姿勢Rc0と高さhc0を読み込む(S13)。カメラキャリブレーション装置1は、リアカメラ画像に基づいて路面領域にある特徴点のフレーム間におけるフローを抽出する(S14)。
【0042】
続いて、カメラキャリブレーション装置1は、ホモグラフィー行列Hmを計算する(S15)。ホモグラフィー行列Hmは、上述した式(4)~(8)で表されるので、車両センサ信号から求めたカメラ回転量Rvおよび移動ベクトルCvと、カメラパラメータ記憶部14から読み出したカメラ姿勢Rc0と高さhc0を用いて、ホモグラフィー行列Hmを計算する。
【0043】
続いて、カメラキャリブレーション装置1は、式(13)で示した予測誤差および式(14)で示したヤコビアンを計算し(S16)、レーベンバーグ・マーカートB法によって、リアカメラ22の姿勢Rcと高さhcを更新する(S17)。カメラキャリブレーション装置1は、所定の終了条件を満たしたかどうかを判定する(S18)。ここで、終了条件は、例えば、リアカメラ22の姿勢Rcと高さhcの更新回数が所定の繰り返し回数に達したことや、パラメータの更新量が所定の閾値以下になったことである。
【0044】
終了条件を満たしていないと判定された場合には(S18でNO)、カメラキャリブレーション装置1は、更新されたリアカメラ22の姿勢Rcと高さhcを用いて、新しいホモグラフィー行列Hmを計算し(S15)、上記した処理(S16~S18)を繰り返す。終了条件を満たしたと判定された場合には(S18でYES)、リアカメラ22の姿勢Rc、高さhcをカメラパラメータ記憶部14に記憶する(S19)。
【0045】
本実施の形態のカメラキャリブレーション装置によれば、走行中にカメラのキャリブレーションを行うことができ、乗員や荷物の重量によって車体が傾いている場合等にもカメラの姿勢、路面高さを適切な値に設定できる。これにより、例えば、リアカメラ画像に基づいて俯瞰画像を生成する場合等に、キャリブレーション後のカメラパラメータを用いて、適切な俯瞰画像を生成することができる。
【0046】
(第2の実施の形態)
図7は、第2の実施の形態のカメラキャリブレーション装置2の構成を示す図である。第2の実施の形態のカメラキャリブレーション装置2は、キャリブレーション対象のリアカメラ22の他に、フロントカメラ23を備えた車両に適用される。リアカメラ22とフロントカメラ23との相対的な位置関係は事前にキャリブレーションされており既知であるとする。第2の実施の形態では、フロントカメラ23で撮影した映像データをも用いて、リアカメラ22のキャリブレーションを行う。
【0047】
第2の実施の形態のカメラキャリブレーション装置2の基本的な構成は第1の実施の形態と同じである。本実施の形態においては、路面フロー抽出部12は、フロントカメラ23から取得した画像においても路面フローを抽出する。
【0048】
カメラパラメータ更新部13は、第1の実施の形態で説明したホモグラフィー行列Hmのパラメータに加え、フロントカメラ画像のホモグラフィー行列Hiがフロントカメラ画像から求めた路面フローのデータに整合するような最適解を求める。フロントカメラ画像のホモグラフィー行列H
iは、次の式で表される。
【数12】
ここで、R
iはフレーム間のカメラ回転量、C
iはフレーム間のカメラ移動量、n
iは路面法線、h
iは路面からのカメラ高さを表す。ただし、これらはいずれもフロントカメラ座標系で定義された値である。
【0049】
本実施の形態では、次式に示すように、フロントカメラ23のホモグラフィー行列Hiをリアカメラ22の車両座標系におけるカメラ回転量Rvおよびカメラ移動量Cvと、カメラ姿勢Rcおよびカメラ高さhcを用いて表す。これにより、フロントカメラ画像のホモグラフィー行列Hiを利用して、カメラ姿勢Rcおよびカメラ高さhcの最適解を求める。カメラ間の相対姿勢ΔRiおよび相対位置ΔCiは既知とする。
【数13】
【0050】
図8は、上式(18)~(21)の導出方法について説明するための図である。なお、
図8では、便宜上、リアカメラ22を「後カメラ」、フロントカメラ23を「前カメラ」と表現している。
図8は、時刻t-1と時刻tにおける前カメラ座標系X
iと後カメラ座標系X
cとを変換する際の変換行列を示す図である。例えば、時刻t-1の前カメラ座標系X
i(t-1)を時刻t-1の後カメラ座標系X
c(t-1)に変換するには、時刻t-1の前カメラ座標系X
i(t-1)に変換行列ΔT
iを乗じることを示している。
【0051】
時刻tの前カメラ座標系X
i(t)を時刻t-1の前カメラ座標系X
i(t-1)で表す際には、
図8の右回りと左回りの両方で表現することができ、これを式で表すと、次式のようになる。
【数14】
【0052】
ここで、行列Tmは、式(12)で示すとおりであるから、これを式(22)のTmに代入して整理すると、上記の式(18)~式(21)が得られる。
【0053】
カメラパラメータ更新部13は、リアカメラ画像における予測誤差とフロントカメラ画像における予測誤差を最小にするようなリアカメラ22のカメラ姿勢Rcおよび高さhcの最適解をレーベンバーク・マーカートB法で求める。
【0054】
図9は、第2の実施の形態のカメラキャリブレーション装置2の動作を示すフローチャートである。カメラキャリブレーション装置2は、CAN21から車両センサ信号(ステアリング角度θ
S、左後輪移動量D
L、右後輪移動量D
Rのデータ)を受信し(S10)、受信した車両センサ信号に基づいて、車両座標系におけるカメラ回転量Rvとカメラ移動量Cvを求める(S11)。また、カメラキャリブレーション装置1は、リアカメラ22からリアカメラ画像を取得すると共に、フロントカメラ23からフロントカメラ画像を取得する(S12)。
【0055】
カメラキャリブレーション装置2は、カメラパラメータ記憶部14から、キャリブレーション前のリアカメラ22のカメラ姿勢Rc0と高さhc0とリアカメラ22とフロントカメラ23の相対姿勢ΔRiと相対位置ΔCiを読み込む(S13)。
【0056】
カメラキャリブレーション装置2は、リアカメラ画像に基づいて路面領域にある特徴点のフレーム間におけるフローを抽出する(S14a)。続いて、カメラキャリブレーション装置1は、ホモグラフィー行列Hmを計算する(S15a)。ホモグラフィー行列Hmは、上述した式(4)~(8)で表されるので、車両センサ信号から求めたカメラ回転量Rvおよび移動ベクトルCvと、カメラパラメータ記憶部14から読み出したカメラ姿勢Rc0と高さhc0を用いて、ホモグラフィー行列Hmを計算する。続いて、カメラキャリブレーション装置1は、式(13)で示した予測誤差および式(14)で示したヤコビアンを計算する(S16a)。
【0057】
以上にリアカメラ画像を用いた処理を説明したが、フロントカメラ画像についても上記と同様の処理を行い(S14b~S16b)、フロントカメラ画像のホモグラフィー行列Hiと予測誤差およびヤコビアンを計算する。
【0058】
続いて、カメラキャリブレーション装置2は、レーベンバーグ・マーカートB法によって、リアカメラ22の姿勢Rcと高さhcを更新する(S17)。カメラキャリブレーション装置2は、所定の終了条件を満たしたかどうかを判定する(S18)。ここで、終了条件は、例えば、リアカメラ22の姿勢Rcと高さhcの更新回数が所定の繰り返し回数に達したことや、パラメータの更新量が所定の閾値以下になったことである。
【0059】
終了条件を満たしていないと判定された場合には(S18でNO)、カメラキャリブレーション装置2は、更新されたリアカメラ22の姿勢Rcと高さhcを用いて、新しいホモグラフィー行列Hm、Hiを計算し(S15a、S15b)、上記した処理(S16a、S16b~S18)を繰り返す。終了条件を満たしたと判定された場合には(S18でYES)、リアカメラ22の姿勢Rc、高さhcをカメラパラメータ記憶部14に記憶する(S19)。
【0060】
第2の実施の形態のカメラキャリブレーション装置2は、フロントカメラ23の画像も用いてリアカメラ22のキャリブレーションを行うので、キャリブレーションの精度を高めることができる。
【0061】
(第3の実施の形態)
図10は、第3の実施の形態のカメラキャリブレーション装置3の構成を示す図である。第3の実施の形態のカメラキャリブレーション装置3は、第1の実施の形態のカメラキャリブレーション装置1の構成に加え、路面領域特定部15を備えている。
【0062】
路面領域特定部15は、カメラ移動量計算部11にて求められたカメラ回転量Rvとカメラ移動量Cvを用いて、車両が走行してきた軌跡を計算し、求めた軌跡情報と現在のカメラ姿勢Rcと高さhcを用いて画像中における路面領域を特定する。Rcとhcは最終的な値ではなく誤差を含んでいる可能性があるので、それを考慮した路面領域を設定する。路面領域特定部15は、特定した路面領域のデータを路面フロー抽出部12に渡す。路面フロー抽出部12は、フレーム間の画像情報に加えて、路面領域特定部15より取得した路面領域のデータを用いて、路面フローを抽出する。
【0063】
このように車両センサ信号に基づいて特定した路面領域のデータを用いることにより、路面に含まれるフローを適切に抽出することができる。
【0064】
(第4の実施の形態)
図11は、第4の実施の形態のカメラキャリブレーション装置4の構成を示す図である。第4の実施の形態のカメラキャリブレーション装置4は、第1の実施の形態のカメラキャリブレーション装置1の構成に加え、ピッチ変動検知部16を備えている。
【0065】
ピッチ変動検知部16は、カメラがピッチ軸(
図4でいうXc軸)周りに所定の閾値以上の変動をしたことを検知する機能を有する。所定の閾値は、例えば、単位時間あたりの回転角度で規定される。本実施の形態において、ピッチ変動検知部16は、カメラパラメータ更新部13に接続されており、カメラパラメータ更新部13にて求めたカメラパラメータから、ピッチ変動を検知する。
【0066】
ピッチ変動検知部16は、ピッチ変動の検知結果をカメラパラメータ更新部13に入力する。これにより、カメラキャリブレーション装置1は、ピッチ変動検知部16にてピッチ変動が検知された場合には、その変動が起こったときにフレームの画像をキャリブレーションに利用しない。これにより、路面が平面でない、あるいは、路面に凹凸があるような平面でないシーンを除外してカメラのキャリブレーションを行うので、キャリブレーションの精度を向上させることができる。
【0067】
なお、本実施の形態では、カメラパラメータの推定結果を利用してピッチ変動を検知する例を挙げて説明したが、ピッチ変動を検知する方法は、カメラパラメータの推定結果を利用するだけではなく、例えば、車両センサ信号やカメラ画像に基づいてピッチ変動を検知することとしてもよい。画像を用いる場合、例えば画像全体からフローを検出し、そのフローの収束点(FOE)の上下移動があった場合にピッチ変動が検出できる。
【産業上の利用可能性】
【0068】
本発明は、車両に搭載されたカメラのキャリブレーションを行う装置として有用である。
【符号の説明】
【0069】
1~4 カメラキャリブレーション装置
10 受信部
11 カメラ移動量計算部
12 路面フロー抽出部
13 カメラパラメータ抽出部
14 カメラパラメータ記憶部
15 路面領域特定部
16 ピッチ変動検知部
21 CAN
22 リアカメラ
23 フロントカメラ