(58)【調査した分野】(Int.Cl.,DB名)
前記特徴点判定部は、第一のカメラ画像に映る複数の特徴点を第一のカメラ画像から抽出して特徴点毎に特徴量を算出し、第二のカメラ画像に映る複数の特徴点を第二のカメラ画像から抽出して特徴点毎に特徴量を算出し、第一のカメラ画像に映る特徴点の特徴量と前記第二のカメラ画像に映る特徴点の特徴量とを比較し、比較結果に基づいて第一のカメラ画像と第二のカメラ画像とに共通して映る特徴点を判定する
ことを特徴とする請求項1記載のキャリブレーション装置。
前記特徴点座標値算出部は、前記第一のカメラ画像が撮像されたときの前記移動体の三次元の座標値と、前記カメラの取り付け座標値と、前記特徴点の第一のカメラ画像内の座標値とに基づいて前記カメラから前記特徴点への三次元のベクトルを第一のベクトルとして算出し、前記第二のカメラ画像が撮像されたときの前記移動体の三次元の座標値と、前記カメラの取り付け座標値と、前記特徴点の第二のカメラ画像内の座標値とに基づいて前記カメラから前記特徴点への三次元のベクトルを第二のベクトルとして算出し、算出した第一のベクトルと第二のベクトルとに基づいて特徴点座標値を算出する
ことを特徴とする請求項2記載のキャリブレーション装置。
前記特徴点判定部は、先に撮像されたカメラ画像を第一のカメラ画像として含み第一のカメラ画像の後に撮像されたカメラ画像を第二のカメラ画像として含むカメラ画像の複数の組み合わせを生成し、カメラ画像の組み合わせ毎に複数の特徴点を判定する
ことを特徴とする請求項4記載のキャリブレーション装置。
計測領域内の複数の計測点それぞれの三次元の座標値を計測点座標値として記憶する計測点座標値記憶部と、前記計測領域を移動する移動体の特定の取り付け位置に取り付けられるカメラによって異なる地点から撮像された複数のカメラ画像を記憶するカメラ画像記憶部と、前記カメラの取り付け位置を示す座標値として取り付け座標値を含んだ取り付けパラメータを記憶する取り付けパラメータ記憶部と、特徴点判定部と、特徴点座標値算出部と、パラメータ評価値算出部と、取り付けパラメータ判定部と、取り付けパラメータ生成部とを備えるキャリブレーション装置のキャリブレーション方法であって、
前記特徴点判定部が、前記カメラ画像記憶部に記憶される複数のカメラ画像に基づいて、複数のカメラ画像に共通して映る特徴点を判定し、
前記特徴点座標値算出部が、前記取り付けパラメータ記憶部に記憶された取り付けパラメータと前記特徴点判定部の判定結果とに基づいて、取り付けパラメータに含まれる取り付け座標値と特徴点の各カメラ画像内の座標値とを用いた三角測量の計算によって、特徴点の三次元の座標値を特徴点座標値として算出し、
前記パラメータ評価値算出部が、前記特徴点座標値算出部によって算出された特徴点座標値と前記計測点座標値記憶部に記憶された複数の計測点座標値とに基づいて、特徴点と特徴点に対応する計測点との距離に応じた値をパラメータ評価値として算出し、
前記取り付けパラメータ判定部が、前記パラメータ評価値算出部によって算出されたパラメータ評価値に基づいて前記取り付けパラメータに含まれる取り付け座標値が正しい値であるか否かを判定し、
前記取り付けパラメータ生成部が、前記取り付けパラメータ判定部によって前記取り付け座標値が正しい値でないと判定された場合、新たな取り付け座標値を含んだ取り付けパラメータを所定のパラメータ生成アルゴリズムによって生成し、生成した取り付けパラメータを前記パラメータ記憶部に記憶する
ことを特徴とするキャリブレーション装置のキャリブレーション方法。
計測領域内の複数の計測点それぞれの三次元の座標値を計測点座標値として記憶する計測点座標値記憶部と、前記計測領域を移動する移動体の特定の取り付け位置に取り付けられるカメラによって異なる地点から撮像された複数のカメラ画像を記憶するカメラ画像記憶部と、前記カメラの取り付け位置を示す座標値として取り付け座標値を含んだ取り付けパラメータを記憶する取り付けパラメータ記憶部とを備えるキャリブレーション装置を機能させるキャリブレーションプログラムであって、
前記カメラ画像記憶部に記憶される複数のカメラ画像に基づいて、複数のカメラ画像に共通して映る特徴点を判定する特徴点判定部と、
前記取り付けパラメータ記憶部に記憶された取り付けパラメータと前記特徴点判定部の判定結果とに基づいて、取り付けパラメータに含まれる取り付け座標値と特徴点の各カメラ画像内の座標値とを用いた三角測量の計算によって、特徴点の三次元の座標値を特徴点座標値として算出する特徴点座標値算出部と、
前記特徴点座標値算出部によって算出された特徴点座標値と前記計測点座標値記憶部に記憶された複数の計測点座標値とに基づいて、特徴点と特徴点に対応する計測点との距離に応じた値をパラメータ評価値として算出するパラメータ評価値算出部と、
前記パラメータ評価値算出部によって算出されたパラメータ評価値に基づいて前記取り付けパラメータに含まれる取り付け座標値が正しい値であるか否かを判定する取り付けパラメータ判定部と、
前記取り付けパラメータ判定部によって前記取り付け座標値が正しい値でないと判定された場合、新たな取り付け座標値を含んだ取り付けパラメータを所定のパラメータ生成アルゴリズムによって生成し、生成した取り付けパラメータを前記パラメータ記憶部に記憶する取り付けパラメータ生成部として
キャリブレーション装置を機能させるキャリブレーションプログラム。
【発明を実施するための形態】
【0012】
実施の形態1.
MMS(モービルマッピングシステム)で使用する車両に取り付けたカメラの取り付け位置および角度を計測する形態について説明する。
【0013】
図1は、実施の形態1における計測車両100の外観図である。
実施の形態1における計測車両100について、
図1に基づいて説明する。
【0014】
計測車両100(移動体の一例)はMMSで使用する車両である。MMSとは、計測車両100で計測地域を走行し、走行した道路周辺の地物(建物、標識、白線など)の三次元の座標値を計測するシステムである。以下、MMSの計測を「道路周辺計測」という。
【0015】
計測車両100は、3台のGNSS受信機110と、IMU120と、オドメトリ(図示省略)と、2台のレーザスキャナ130と、2台の前方カメラ140と、全周カメラ190とを備える。
これらのセンサ(オドメトリを除く)は、計測車両100の天部に設けた天板101に取り付けられる。
【0016】
GNSS受信機110は、GNSS(Global Navigation Satellite Systems)の衛星から測位信号を受信するアンテナを備える。GPS(Global Positioning System)はGNSSの一例である。
GNSS受信機110は、受信した測位信号に基づいて衛星との疑似距離、測位信号を搬送した搬送波の位相および三次元の座標値を算出する。
例えば、3台のGNSS受信機110のうち2台のGNSS受信機110b・cは天板101の前方の左右の端部に設置し、残りの1台のGNSS受信機110aは天板101の後方の真ん中に設置する。
【0017】
IMU120(Inertial Measurement Unit)は、3軸方向の角速度を計測するジャイロセンサと、3軸方向の加速度を計測する加速度センサとを備える。
【0018】
オドメトリは、計測車両100の走行速度(車速)を計測する。
【0019】
レーザスキャナ130は、計測車両100の幅方向に放射角度を変えながらレーザ光を放射し、放射先に位置する地物に反射したレーザ光を受光する。
レーザスキャナ130は、レーザ光を放射してから受光するまでの時刻を計測し、計測した時刻に光速を乗算して地物との距離を算出する。
例えば、2台のレーザスキャナ130のうち一方のレーザスキャナ130は天板101の前方に斜め下向きに設置し、他方のレーザスキャナ130は天板101の中央部分に斜め上向きに設置する。
【0020】
前方カメラ140は、計測車両100の前方を撮像する。
2台の前方カメラ140のうち一方の前方カメラ140は天板101の前方に正面に向けて設置し、他方の前方カメラ140は天板101の前方に斜め下向きに設置する。
【0021】
全周カメラ190は、五角柱の形状を成し、天面と5つの側面とに合計6つのカメラを備える。
全周カメラ190は、側面に配置した5つのカメラによって計測車両100の周囲全体(360度の範囲)を撮像し、天面に配置したカメラによって計測車両100の上方を撮像する。
全周カメラ190は取り付け棒に取り付けて天板101に設置する。つまり、全周カメラ190は天板101より高い位置に設置する。
全周カメラ190を天板101より高い位置に設置することにより、道路の法面や高層ビルなどの高所の部分を撮像することができる。
【0022】
但し、高い位置に設置される全周カメラ190は、道路周辺計測時以外の走行または駐車には適さないため、道路周辺計測の度に天板101に取り付け、また天板101から取り外した方がよい。
したがって、全周カメラ190の取り付け位置および取り付け角度(姿勢角)は道路周辺計測の度に異なり、道路周辺計測の度に全周カメラ190の取り付け位置および取り付け角度を正しく計測する必要がある。
【0023】
一方、レーザスキャナ130は、走行または駐車の妨げにならないため天板101から取り外す必要はない。
このため、レーザスキャナ130の取り付け位置および取り付け角度は、天板101に取り付けたときにトータルステーションなどの測量機器を用いて一度だけ正確に計測すればよい。
【0024】
図2は、実施の形態1における三次元計測装置200の機能構成図である。
実施の形態1における三次元計測装置200の機能構成について、
図2に基づいて説明する。
【0025】
三次元計測装置200(キャリブレーション装置の一例)は、位置姿勢標定部210、計測点群生成部220、特徴点群生成部230、パラメータ評価部240および計測装置記憶部290を備える。
【0026】
計測装置記憶部290(計測点座標値記憶部、カメラ画像記憶部、取り付けパラメータ記憶部の一例)は、三次元計測装置200で使用するデータを記憶する。
GNSS観測データ281、IMU計測データ282、車速データ283、レーザ計測データ284、前方画像データ285および全周画像データ289は、計測装置記憶部290に記憶するデータの一例である。
位置姿勢データ291、計測点群データ292、特徴点群データ293、パラメータ評価値294およびカメラ外部パラメータ299は、計測装置記憶部290に記憶するデータの一例である。
【0027】
GNSS観測データ281は、計測車両100(
図1参照)のGNSS受信機110によって得られるデータである。
例えば、GNSS観測データ281は、測位信号を受信した時刻(観測時刻)に対応付けて疑似距離と搬送波位相と三次元座標値とを示す。
【0028】
IMU計測データ282は、計測車両100のIMU120によって得られるデータである。
例えば、IMU計測データ282は、計測時刻に対応付けて3軸方向の角速度と3軸の加速度とを示す。
【0029】
車速データ283は、計測車両100のオドメトリによって得られるデータである。
例えば、車速データ283は、計測時刻に対応付けて計測車両100の車速を示す。
【0030】
レーザ計測データ284は、計測車両100のレーザスキャナ130によって得られるデータである。
例えば、レーザ計測データ284は、計測時刻に対応付けて地物との距離(計測距離)とレーザ光の放射角度(計測角度)とを示す。また、レーザ計測データ284は、計測距離と計測角度とに基づいた座標値であって、レーザスキャナ130の取り付け位置を原点とする二次元(または三次元)の座標値を示してもよい。
【0031】
前方画像データ285は、計測車両100の前方カメラ140によって得られるデータである。
例えば、前方画像データ285は、前方カメラ140によって撮像された前方画像を撮像時刻に対応付けて示す。
【0032】
全周画像データ289は、計測車両100の全周カメラ190によって得られるデータである。
全周画像データ289は、全周カメラ190によって撮像された全周画像(以下、カメラ画像という)を撮像時刻に対応付けて示す。
【0033】
位置姿勢データ291(移動体座標値データの一例)は、GNSS観測データ281とIMU計測データ282と車速データ283とに基づいて位置姿勢標定部210によって生成されるデータである。
位置姿勢データ291は、道路周辺計測を行った計測時刻毎に計測車両100の三次元の座標値および姿勢角を世界座標系の値で示す。ENU座標系(East−North−Up)は世界座標系の一例であり、(緯度,経度,高度)は世界座標系の座標値の一例である。
【0034】
計測点群データ292(計測点座標値を含むデータの一例)は、レーザ計測データ284に基づいて計測点群生成部220によって生成されるデータである。
計測点群データ292は、レーザ光を反射した地点(以下、計測点という)毎に三次元の座標値を世界座標系の値で示す。
【0035】
特徴点群データ293(特徴点座標値を含むデータの一例)は、カメラ外部パラメータ299と全周画像データ289とに基づいて特徴点群生成部230によって生成されるデータである。
特徴点群データ293は、カメラ画像に映った特徴点毎に三次元の座標値を世界座標系の値で示す。
【0036】
パラメータ評価値294(パラメータ評価値の一例)は、計測点群データ292と特徴点群データ293とに基づいてパラメータ評価部240によって生成されるデータである。
パラメータ評価値294は、カメラ外部パラメータ299を評価する評価値を示す。
【0037】
カメラ外部パラメータ299(取り付けパラメータの一例)は計測装置記憶部290に予め記憶し、パラメータ評価部240によって更新する。
カメラ外部パラメータ299は、全周カメラ190の取り付け位置を推定した取り付け座標値(X,Y,Z)を示す。また、カメラ外部パラメータ299は、全周カメラ190の取り付け角度として、全周カメラ190を構成するカメラ毎にカメラの姿勢角を推定した取り付け角度(ロール角,ピッチ角,ヨー角)を示す。
例えば、全周カメラ190の取り付け座標値の設計値と全周カメラ190の取り付け角度の設計値とを含んだカメラ外部パラメータ299を初期値として予め記憶しておく。
【0038】
位置姿勢標定部210は、GNSS観測データ281とIMU計測データ282と車速データ283とに基づいて所定の標定処理(航法処理)によって計測車両100の各時刻の三次元の座標値および姿勢角を標定(測位、算出)し、位置姿勢データ291を生成する。
【0039】
例えば、位置姿勢標定部210は、GPS−Gyro/IMU複合航法(GPS/IMU複合航法ともいう)によって計測車両100の各時刻の三次元の座標値および姿勢角を標定する。
【0040】
例えば、位置姿勢標定部210は、以下のように計測車両100の各時刻の三次元座標値および姿勢角を標定する。
位置姿勢標定部210は、IMU計測データ282に含まれる三次元の加速度と三次元の角速度とを用いてストラップダウン演算を行い、計測車両100の座標値と姿勢角と速度とを算出する。
位置姿勢標定部210は、GNSS観測データ281に含まれる座標値、疑似距離または搬送波位相に基づいて航法処理を行い、計測車両100の座標値を算出する。
位置姿勢標定部210は、GNSS観測データ281に含まれる座標値に基づいて第一のGNSS受信機110aから第二のGNSS受信機110bへの基線ベクトルと第一のGNSS受信機110aから第三のGNSS受信機110cへの基線ベクトルとを算出する。位置姿勢標定部210は、二つの基線ベクトルに基づいて計測車両100の姿勢角を算出する。
位置姿勢標定部210は、航法処理で算出した座標値とストラップダウン演算で算出した座標値との差を座標値残差として算出する。位置姿勢標定部210は、基線ベクトルに基づいて算出した姿勢角とストラップダウン演算で算出した姿勢角との差を姿勢角残差として算出する。位置姿勢標定部210は、車速データ283に含まれる速度とストラップダウン演算で算出した速度との差を速度残差として算出する。
位置姿勢標定部210は、座標値残差と姿勢角残差と速度残差との少なくともいずれかを入力として所定のカルマンフィルタ処理を行い、座標値の補正量と姿勢角の補正量とを算出する。
位置姿勢標定部210は、ストラップダウン演算で算出した座標値に座標値の補正量を加算して座標値を補正し、ストラップダウン演算で算出した姿勢角に姿勢角の補正量を加算して姿勢角を補正し、補正した座標値と姿勢角とを標定値として出力する。
【0041】
但し、位置姿勢標定部210は、任意の標定処理によって計測車両100の各時刻の座標値と姿勢角とを標定してもよい。
【0042】
計測点群生成部220は、位置姿勢データ291とレーザ計測データ284とに基づいて計測点群データ292を生成する。
【0043】
レーザ光を反射した計測点の三次元の座標値は、レーザスキャナ130の計測時刻の位置からレーザ光の放射方向へ計測距離だけ離れた地点の座標値として算出される。
レーザスキャナ130の計測時刻の位置は、計測車両100の計測時刻の位置からレーザスキャナ130の取り付け位置の座標値だけ移動した地点の座標値によって示される。
レーザ光の放射方向は、計測車両100の姿勢角からレーザスキャナ130の取り付け角度だけ傾けた角度によって示される。
レーザスキャナ130の取り付け座標値および取り付け角度を設定したレーザ外部パラメータは計測装置記憶部290に予め記憶しておく。
【0044】
例えば、計測点群データ292の生成方法は特許文献1に開示されている。
【0045】
特徴点群生成部230は、カメラ外部パラメータ299と全周画像データ289とに基づいて特徴点群データ293を生成する。
【0046】
特徴点群生成部230は、特徴点抽出部231と特徴点マッピング部232と特徴点測量部233とを備える。
【0047】
特徴点抽出部231(特徴点判定部の一例)は、全周画像データ289に含まれるカメラ画像毎にカメラ画像に映る複数の特徴点をカメラ画像から抽出し、特徴点毎に特徴量を算出する(特徴点抽出処理)。
【0048】
特徴点マッピング部232(特徴点判定部の一例)は、特徴点抽出部231によって抽出された複数の特徴点のうち、複数のカメラ画像に共通して映る特徴点を判定する(特徴点判定処理)。
【0049】
例えば、特徴点マッピング部232は、第一のカメラ画像に映る特徴点の特徴量と第二のカメラ画像に映る特徴点の特徴量とを比較し、比較結果に基づいて第一のカメラ画像と第二のカメラ画像とに共通して映る特徴点を判定する。
【0050】
例えば、特徴点マッピング部232は、先に撮像されたカメラ画像を第一のカメラ画像として含み第一のカメラ画像の後に撮像されたカメラ画像を第二のカメラ画像として含むカメラ画像の複数の組み合わせを生成する。
特徴点マッピング部232は、カメラ画像の組み合わせ毎に複数の特徴点を判定する。
【0051】
特徴点測量部233(特徴点座標値算出部の一例)は、カメラ外部パラメータ299(取り付けパラメータの一例)と特徴点マッピング部232の判定結果とに基づいて、特徴点毎に特徴点の三次元の座標値を特徴点座標値として算出する(特徴点座標値算出処理)。
特徴点測量部233は、特徴点毎に特徴点座標値を示す特徴点群データ293を生成する。
【0052】
このとき、特徴点測量部233は、カメラ外部パラメータ299に含まれる取り付け座標値と特徴点の各カメラ画像内の座標値とを用いた三角測量の計算によって特徴点座標値を算出する。
【0053】
例えば、特徴点測量部233は、以下のように特徴点座標値を算出する。
特徴点測量部233は、第一のカメラ画像が撮像されたときの計測車両100(移動体の一例)の三次元の座標値と、全周カメラ190(カメラの一例)の取り付け座標値と、特徴点の第一のカメラ画像内の座標値とに基づいて、全周カメラ190から特徴点への三次元のベクトルを第一のベクトル(後述する第一のLOSベクトル)として算出する。
特徴点測量部233は、第二のカメラ画像が撮像されたときの計測車両100の三次元の座標値と、全周カメラ190の取り付け座標値と、特徴点の第二のカメラ画像内の座標値とに基づいて、全周カメラ190から特徴点への三次元のベクトルを第二のベクトル(後述する第二のLOSベクトル)として算出する。
特徴点測量部233は、算出した第一のベクトルと第二のベクトルとに基づいて特徴点座標値を算出する。
【0054】
パラメータ評価部240は、計測点群データ292と特徴点群データ293とに基づいてカメラ外部パラメータ299のパラメータ評価値294を算出する。
【0055】
パラメータ評価部240は、パラメータ評価値算出部241とパラメータ判定部242とパラメータ更新部243とを備える。
【0056】
パラメータ評価値算出部241(パラメータ評価値算出部の一例)は、特徴点測量部233によって算出された特徴点座標値と計測点群データ292に含まれる複数の計測点座標値とに基づいて、パラメータ評価値294を算出する(パラメータ評価値算出処理)。パラメータ評価値294は、特徴点と特徴点に対応する計測点との距離に応じた値である。
パラメータ評価値算出部241は、パラメータ更新部243によって生成されたカメラ外部パラメータ299毎にパラメータ評価値を算出する。
【0057】
例えば、パラメータ評価値算出部241は、特徴点毎に特徴点との距離が最も近い計測点を特徴点に対応する計測点として判定する。
また、パラメータ評価値算出部241は、特徴点毎に特徴点と特徴点に対応する計測点との距離を算出し、算出した距離の合計値をパラメータ評価値294として算出する。
【0058】
パラメータ判定部242(取り付けパラメータ判定部の一例)は、パラメータ評価値算出部241によって算出されたパラメータ評価値294に基づいて、カメラ外部パラメータ299に含まれる取り付け座標値が正しい値であるか否かを判定する(取り付けパラメータ判定処理)。
【0059】
例えば、パラメータ判定部242は、パラメータ評価値算出部241によって算出されたパラメータ評価値294のうち極小値を示すパラメータ評価値294に対応するカメラ外部パラメータ299の取り付け座標値を正しい取り付け座標値として判定する。
【0060】
パラメータ更新部243(パラメータ生成部の一例)は、パラメータ判定部242によって取り付け座標値が正しい値でないと判定された場合、新たな取り付け座標値を含んだカメラ外部パラメータ299を所定のパラメータ生成アルゴリズムによって生成する(パラメータ生成処理)。
パラメータ更新部243は、生成したカメラ外部パラメータ299を計測装置記憶部290に記憶する。
【0061】
図3は、実施の形態1におけるカメラ外部パラメータ299のキャリブレーション方法を示すフローチャートである。
カメラ外部パラメータ299を調整するキャリブレーション方法について、
図3に基づいて説明する。
【0062】
まず、カメラ外部パラメータ299を調整するキャリブレーション方法の概要について説明する。
【0063】
特徴点抽出部231は、全周画像データ289のカメラ画像毎に複数の特徴点を抽出し、特徴点毎に特徴量を算出する(S110)。
特徴点マッピング部232は、カメラ画像の複数の組み合わせを生成し(S120)、カメラ画像の組み合わせ毎に対応する特徴点を抽出する(S130)。
特徴点測量部233は、カメラ外部パラメータ299に基づいて、カメラ画像の組み合わせ毎に対応する特徴点の三次元座標値を算出する(S140)。
パラメータ評価値算出部241は、計測点群データ292の計測点の三次元座標値と、カメラ画像の特徴点の三次元座標値とを比較してパラメータ評価値294を算出する(S150)。
パラメータ判定部242は、パラメータ評価値294が適正な値であるか否かを判定する(S160)。
パラメータ評価値294が適正な値でない場合、パラメータ更新部243は新たなカメラ外部パラメータ299を算出し、処理はS140に戻る(S170)。
パラメータ評価値294が適正な値である場合、パラメータ評価値294は、極小値のパラメータ評価値294に対応するカメラ外部パラメータ299を正しいパラメータとして出力する(S180)。
【0064】
次に、キャリブレーション方法の詳細について説明する。
【0065】
S110において、特徴点抽出部231は、SIFT(Scale Invariant Feature Transform)というアルゴリズムによって、全周画像データ289に含まれるカメラ画像毎にカメラ画像から複数の特徴点を抽出する。
さらに、特徴点抽出部231は、SIFTによって特徴点毎に複数の特徴量を算出する。例えば、特徴点抽出部231は128次元の特徴量を算出する。128次元の特徴量とは、1番目の特徴量から128番目の特徴量までの128個の特徴量から成る特徴量の集合である。
【0066】
SIFTは、特徴点を抽出し、回転やスケールや光量などの変化に対して不変な特徴量を記述(算出)するアルゴリズムである。
非特許文献2は、SIFTによる特徴点の抽出および特徴量の記述を開示している。
【0067】
但し、特徴点抽出部231は、SURF(Speeded Up Robust Features)など、その他のアルゴリズムを用いて特徴点の抽出および特徴量の算出を行ってもよい。
【0068】
特徴点抽出部231は、複数の特徴点それぞれの特徴量とカメラ画像内の座標値(以下、画素座標値という)とを示すデータを「特徴点抽出データ」として生成する。特徴点抽出部231は、生成した特徴点抽出データを計測装置記憶部290に記憶する。
【0070】
図4は、実施の形態1におけるカメラ画像201の特徴点を示す図である。
図4に示すように、特徴点抽出部231は、カメラ画像201から複数の特徴点(丸印)を抽出する。また、特徴点抽出部231は、抽出した特徴点毎に特徴量を算出する。
【0071】
図3に戻り、キャリブレーション方法の説明をS120から続ける。
【0072】
S120において、特徴点マッピング部232は、全周画像データ289に含まれる複数のカメラ画像を用いて、カメラ画像の複数の組み合わせを生成する。
【0073】
例えば、特徴点マッピング部232は、N番目(Nは1以上の整数)に撮像されたカメラ画像とN+1番目に撮像されたカメラ画像とを組み合わせて、カメラ画像の複数の組み合わせを生成する。
但し、カメラ画像の組み合わせは、連続する2つのカメラ画像から成る組み合わせでなくても構わない。つまり、N番目のカメラ画像とN+X番目(Xは2以上の整数)のカメラ画像とを組み合わせてもよいし、3つ以上のカメラ画像を組み合わせてもよい。
【0075】
S130において、特徴点マッピング部232は、S110で生成された特徴点抽出データに基づいてカメラ画像の組み合わせ毎にカメラ画像間で各特徴点の特徴量を比較し、カメラ画像間で対応する特徴点(対応特徴点)を判定する。
【0076】
例えば、特徴点マッピング部232は、第一のカメラ画像201aのn番目の特徴点と第二のカメラ画像201bの各特徴点との特徴量のユークリッド距離を算出する。
そして、特徴点マッピング部232は、第二のカメラ画像201bの特徴点のうち最も小さいユークリッド距離に対応する特徴点を第一のカメラ画像201aのn番目の特徴点に対応する特徴点と判定する。
【0077】
以下に、特徴量のユークリッド距離Dを算出する算出式(1)を示す。
【0079】
特徴点マッピング部232は、カメラ画像の組み合わせ毎に「特徴点マッピングデータ」を生成する。特徴点マッピング部232は、特徴点マッピングデータを計測装置記憶部290に記憶する。
特徴点マッピングデータは、カメラ画像間で対応する特徴点の画素座標値をカメラ画像毎に示すデータである。
【0080】
特徴点マッピング部232は、特徴点マッピングデータに基づいてカメラ画像間で対応する複数の特徴点のうち他のカメラ画像の特徴点に誤って対応付けられた誤対応の特徴点をMAPSAC(Maximum a Posteriori Sample Consensus)法を用いて判定する。
非特許文献3は、MAPSAC法について開示している。
【0081】
特徴点マッピング部232は、誤対応の特徴点を特徴点マッピングデータから削除する。
【0082】
特徴点マッピング部232は、特徴点マッピングデータに基づいてカメラ画像間で対応する各特徴点のカメラ画像間の視差(画素の距離)を算出し、カメラ画像間の視差が所定の視差閾値より小さい特徴点を特徴点マッピングデータから削除する。
視差が小さい場合、三角測量による座標値の計測精度が低くなるためである。
【0084】
図5は、実施の形態1におけるカメラ画像間で対応する特徴点を示す図である。
図5に示すように、特徴点マッピング部232は、第一のカメラ画像201aの複数の特徴点(丸印)に対応する第二のカメラ画像201bの複数の特徴点を判定する。
【0085】
図3に戻り、キャリブレーション方法の説明をS140から説明する。
【0086】
S140において、特徴点測量部233は、特徴点マッピングデータ(S130参照)と計測点群データ292とカメラ外部パラメータ299とを用いて三角測量の計算を行う。
特徴点測量部233は、三角測量の計算によって、カメラ画像の組み合わせ毎にカメラ画像間で対応する各特徴点(対応特徴点)の三次元の座標値を算出する。
特徴点測量部233は、カメラ画像の組み合わせ毎に、各特徴点の三次元座標値を示すデータを「特徴点群データ293」として生成する。特徴点測量部233は、生成した特徴点群データ293を計測装置記憶部290に記憶する。
S140の後、S150に進む。
【0087】
図6は、実施の形態1における対応特徴点の三角測量を示す概念図である。
実施の形態1における対応特徴点の三角測量について、
図6に基づいて説明する。
【0088】
対応特徴点p
cの三次元の座標値は、第一のカメラ画像201aを撮像したときのLOS(Line of Sight)ベクトルv1と、第二のカメラ画像201bを撮像したときのLOSベクトルv2との交点の座標値として算出される。
LOSベクトルは、全周カメラ190を構成するカメラのうち当該カメラ画像を撮像したカメラから対応特徴点p
cへの視線方向を表す。
【0089】
図7は、実施の形態1におけるLOSベクトルVを示す概念図である。
実施の形態1におけるLOSベクトルVについて、
図7に基づいて説明する。
【0090】
対応特徴点p
cの画素座標値(u,v)は、カメラの画像平面に対して対応特徴点p
cを投影した場合の投影点の座標値を意味する。カメラの画像平面は、カメラの撮像範囲を表す平面であって、カメラの中心Cからカメラの取り付け角度の方向に焦点距離fだけ離れた平面である。
【0091】
ここで、LOSベクトルは、カメラの中心Cから画像平面に投影された対応特徴点Pcまでの方向および大きさである。
【0092】
図6に戻り、対応特徴点p
cの三角測量について説明を続ける。
【0093】
図6において、「p
1」は第一のカメラ画像201aを撮像したときの全周カメラ190の三次元の座標値(世界座標系)を示し、「p
2」は第二のカメラ画像201bを撮像したときの全周カメラ190の三次元の座標値を示す。
また、「t
1」はLOSベクトルv
1に対する係数であり、「t
2」はLOSベクトルv
2に対する係数である。
【0094】
全周カメラ190の三次元の座標値は、計測車両100の当該時刻の位置から全周カメラ190の取り付け位置のオフセット量だけ移動した地点の座標値として算出される。
カメラ外部パラメータ299は、全周カメラ190の取り付け位置のオフセット量として取り付け座標値と取り付け角度とを示す。
【0095】
以下に、対応特徴点p
cの三次元の座標値を計算するための三角測量の計算式(2)を示す。
【0097】
図3に戻り、キャリブレーション方法の説明をS150から続ける。
【0098】
S150において、パラメータ評価値算出部241は、計測点群データ292と特徴点群データ293とに基づいて、S140で特徴点の三次元の座標値の算出に用いたカメラ外部パラメータ299を評価するパラメータ評価値294を算出する。パラメータ評価値算出部241は、算出したパラメータ評価値294を計測装置記憶部290に記憶する。
以下、計測点群データ292に含まれる計測点の三次元の座標値を「計測点座標値」といい、特徴点群データ293に含まれる特徴点(対応特徴点)の三次元の座標値を「特徴点座標値」という。
【0099】
図8は、実施の形態1における計測点群データ292の計測点と特徴点群データ293の特徴点とを比較している様子を示す図である。
計測点群データ292は複数の計測点それぞれの計測点座標値を示し、複数の計測点を計測点座標値に従って描画すると
図8(1)のような点群画像が得られる。
特徴点群データ293は、
図8(2)のカメラ画像201から抽出された特徴点(対応特徴点)の特徴点座標値を示す。
パラメータ評価値算出部241は、特徴点群データ293に含まれる特徴点を計測点群データ292の各計測点と比較し、特徴点に対応する計測点(対応計測点)を選択し、特徴点と対応計測点との距離に基づいてパラメータ評価値294を算出する。
【0100】
図3に戻り、S150の説明を続ける。
【0101】
パラメータ評価値算出部241は、以下のようにパラメータ評価値294を算出する。
パラメータ評価値算出部241は、特徴点毎に特徴点の特徴点座標値と各計測点の計測点座標値とを比較し、特徴点に最も近い計測点を選択する。つまり、パラメータ評価値算出部241は、ICP(Iterative Closest Point)マッチングを行い、特徴点に対応する計測点を選択する。以下、選択した計測点を「対応計測点」という。但し、対応計測点は、特徴点に最も近い計測点以外の計測点であっても構わない。例えば、対応計測点は、特徴点から所定の距離の範囲内に位置する複数の計測点からランダムに選択しても構わない。
パラメータ評価値算出部241は、特徴点毎に特徴点と対応計測点との距離を距離誤差として算出し、算出した距離誤差の合計値をパラメータ評価値294として算出する。
【0102】
以下に、パラメータ評価値Fを算出する算出式(3)を示す。
【0105】
S160において、計測装置記憶部290は、S150の実行回数と同じ個数のパラメータ評価値294を記憶している。
パラメータ判定部242は、計測装置記憶部290に記憶されている1つまたは複数のパラメータ評価値294のうち極小値を示すパラメータ評価値294を適正なパラメータ評価値294として判定する。
但し、パラメータ判定部242は、極小値以外のパラメータ評価値294を適正なパラメータ評価値294として判定してもよい。例えば、パラメータ判定部242は、S150で新たに算出されたパラメータ評価値294が所定の評価閾値以下である場合、このパラメータ評価値294を適正なパラメータ評価値294として判定してもよい。
適正なパラメータ評価値294が有る場合(YES)、S180に進む。
適正なパラメータ評価値294が無い場合(NO)、S170に進む。
【0106】
S170において、パラメータ更新部243は、S150で用いたカメラ外部パラメータ299とS150で算出したパラメータ評価値294とに基づいて、Nelder−Mead法によって新たなカメラ外部パラメータ299を生成する。パラメータ更新部243は、生成した新たなカメラ外部パラメータ299を計測装置記憶部290に記憶する。
【0107】
Nelder−Mead法は非線形関数の最小化手法である。Nelder−Mead法を利用することにより正しいカメラ外部パラメータ299を少ないループ回数(S140−S170)で得ることができる。
非特許文献4は、Nelder−Mead法について開示している。
【0108】
但し、パラメータ更新部243は、Nelder−Mead法以外のアルゴリズム(パラメータ生成アルゴリズム)によって新たなカメラ外部パラメータ299を生成しても構わない。
例えば、カメラ外部パラメータ299の取り付け座標値(X軸、Y軸またはZ軸の座標値)、または取り付け角度(ロール角、ピッチ角またはヨー角)を所定の変化量だけ変化させることによって、新たなカメラ外部パラメータ299を生成しても構わない。
また、取り付け座標値と取り付け角度との少なくともいずれかが異なる複数のカメラ外部パラメータ299を計測装置記憶部290に予め記憶しておき、ランダムに(または順番)に新たなカメラ外部パラメータ299を選択しても構わない。
【0109】
S170の後、S140に戻る。S140では、新たなカメラ外部パラメータ299に基づいて特徴点の三次元の座標値(特徴点座標値)が新たに算出される。
【0110】
S180において、パラメータ判定部242は、S160で判定した適正なパラメータ評価値294に対応するカメラ外部パラメータ299以外のカメラ外部パラメータ299を不正なカメラ外部パラメータ299として計測装置記憶部290から削除する。
パラメータ判定部242は、適正なパラメータ評価値294に対応するカメラ外部パラメータ299を正しいカメラ外部パラメータ299として出力する。
S180により、キャリブレーション方法の処理は終了する。
【0111】
キャリブレーション方法(
図3参照)によって得られた正しいカメラ外部パラメータ299は、例えば、以下のように利用することができる。
【0112】
三次元点群生成部(図示省略)は、正しいカメラ外部パラメータ299と複数のカメラ画像とを用いてステレオ視の処理を行い、カメラ画像に映る各地点(ピクセル、画素)の三次元の座標値を算出する。
三次元点群生成部は、カメラ画像に映る複数の地点それぞれの三次元の座標値と画素の色情報とを設定した三次元点群データを生成する。
これにより、レーザスキャナで計測することが難しい部分(例えば、道路法面や高層ビル)の正確な三次元座標値を得ることができる。
【0113】
点群画像生成部(図示省略)は、計測点群データ292の計測点に対応する色情報をカメラ画像から取得し、取得した色情報を用いて色付きの点群画像(
図8(1)参照)を生成する。このとき、点群画像生成部は、カメラの画像平面に計測点を投影し、投影した計測点(投影点)の画素の色情報を計測点の色情報として取得する(
図7参照)。
カメラ外部パラメータ299が正しいため、計測点が画像平面内の正しい画素に投影され、計測点の正しい色情報を取得することができる。
色付きの点群画像は、道路周辺の地物を表す三次元モデルとして利用することができる。
【0114】
図9は、実施の形態1における三次元計測装置200のハードウェア資源の一例を示す図である。
図9において、三次元計測装置200は、CPU901(Central Processing Unit)を備えている。CPU901は、バス902を介してROM903、RAM904、通信ボード905、ディスプレイ装置911、キーボード912、マウス913、ドライブ装置914、磁気ディスク装置920などのハードウェアデバイスと接続され、これらのハードウェアデバイスを制御する。ドライブ装置914は、FD(Flexible Disk Drive)、CD(Compact Disc)、DVD(Digital Versatile Disc)などの記憶媒体を読み書きする装置である。
ROM903、RAM904、磁気ディスク装置920およびドライブ装置914は記憶機器の一例である。キーボード912およびマウス913は入力機器の一例である。ディスプレイ装置911は出力機器の一例である。
【0115】
通信ボード905は、有線または無線で、LAN(Local Area Network)、インターネット、電話回線などの通信網に接続している。
【0116】
磁気ディスク装置920には、OS921(オペレーティングシステム)、プログラム群922、ファイル群923が記憶されている。
【0117】
プログラム群922には、実施の形態において「〜部」として説明する機能を実行するプログラムが含まれる。プログラム(例えば、キャリブレーションプログラム)は、CPU901により読み出され実行される。すなわち、プログラムは、「〜部」としてコンピュータを機能させるものであり、また「〜部」の手順や方法をコンピュータに実行させるものである。
【0118】
ファイル群923には、実施の形態において説明する「〜部」で使用される各種データ(入力、出力、判定結果、計算結果、処理結果など)が含まれる。
【0119】
実施の形態において構成図およびフローチャートに含まれている矢印は主としてデータや信号の入出力を示す。
【0120】
実施の形態において「〜部」として説明するものは「〜回路」、「〜装置」、「〜機器」であってもよく、また「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ファームウェア、ソフトウェア、ハードウェアまたはこれらの組み合わせのいずれで実装されても構わない。