(57)【要約】【課題】ＭＭＳにおけるカメラのキャリブレーションを容易に行える技術の提供を目的とする。【解決手段】カメラが撮影した画像に写った太陽の前記画像の画面上における位置を特定する太陽の画面中での位置特定部１１５と、太陽軌道情報に基づき、前記画像の画面上における前記太陽の推定位置を算出する太陽位置算出部１１３と、太陽の画面中での位置特定部１１５が特定した前記太陽の前記画面上における位置と、前記太陽位置算出部１１３が算出した前記太陽の前記画面上における前記推定位置との差に基づいて前記カメラの姿勢を算出するカメラの姿勢算出部１１６とを備える。【選択図】図２
2017009555.tif 000002
【特許請求の範囲】
【請求項１】
カメラが撮影した画像に写った太陽の前記画像の画面上における位置を特定する太陽位置特定部と、
太陽軌道情報に基づき、前記画像の画面上における前記太陽の推定位置を算出する太陽推定位置算出部と、
前記太陽位置特定部が特定した前記太陽の前記画面上における位置と、前記太陽推定位置算出部が算出した前記太陽の前記画面上における前記推定位置との差に基づいて前記カメラの前記姿勢を算出するカメラの姿勢算出部と
を備えることを特徴とするカメラのキャリブレーション装置。
【請求項２】
前記カメラの姿勢算出部は、前記差が最小となる条件、前記差が特定の値以下となる条件、および前記差を決める補正量が特定の値に収束する条件の一または複数を用いて前記カメラの前記姿勢を算出することを特徴とする請求項１に記載のカメラのキャリブレーション装置。
【請求項３】
前記カメラの姿勢算出部は、
前記画像に写った前記太陽の方向を規定する第１のベクトルと前記太陽の前記推定位置の方向を規定する第２のベクトルとの差を評価し、
前記第２のベクトルは、前記カメラの姿勢の設定値の情報を含んでいることを特徴とする請求項１または２に記載のカメラのキャリブレーション装置。
【請求項４】
カメラが撮影した画像に写った太陽の前記画像の画面上における位置を特定する太陽位置特定ステップと、
太陽軌道情報に基づき、前記画像の画面上における前記太陽の推定位置を算出する太陽推定位置算出ステップと、
前記太陽位置特定ステップで特定した前記太陽の前記画面上における位置と、前記太陽推定位置算出ステップで算出した前記太陽の前記画面上における前記推定位置との差に基づいて前記カメラの前記姿勢を算出するカメラの姿勢算出ステップと
を備えることを特徴とするカメラのキャリブレーション方法。
【請求項５】
コンピュータに読み取らせて実行させるプログラムであって、
コンピュータに
カメラが撮影した画像に写った太陽の前記画像の画面上における位置を特定する太陽位置特定ステップと、
太陽軌道情報に基づき、前記画像の画面上における前記太陽の推定位置を算出する太陽推定位置算出ステップと、
前記太陽位置特定ステップで特定した前記太陽の前記画面上における位置と、前記太陽推定位置算出ステップで算出した前記太陽の前記画面上における前記推定位置との差に基づいて前記カメラの前記姿勢を算出するカメラの姿勢算出ステップと
を実行させることを特徴とするカメラのキャリブレーションを行うためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カメラのキャリブレーションを行う技術に関する。
【背景技術】
【０００２】
ＭＭＳ（モバイルマッピングシステム）が知られている。ＭＭＳとは、 ＧＮＳＳ装置、カメラ、レーザスキャナ、ＩＭＵ（慣性航法装置）等を車両に搭載し、走行しながら周辺の３次元データと映像を取得し、走行した環境の三次元データを取得するシステムである。ＭＭＳで得た三次元データは、例えば都市計画、土木工事、防災計画等に利用される。
【０００３】
ＭＭＳでは、車両に対するカメラの外部標定要素（位置と姿勢）の精度が重要である。車両に対するカメラの外部標定要素を求める作業をキャリブレーションという。初めからカメラが車両に固定されている形態であれば、車両の出荷時にキャリブレーションを行えばよいが、後付で車両にカメラを取り付けた場合やカメラの位置や姿勢を変更した場合はユーザの側でキャリブレーションを行う必要がある。ＭＭＳにおけるカメラのキャリブレーションに関しては、例えば特許文献１に記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−２４２３１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
カメラのキャリブレーションは専用の標定点を用意する必要があり、その作業も煩雑である。このような背景において、本発明は、ＭＭＳにおけるカメラのキャリブレーションを容易に行える技術の提供を目的とする。
【課題を解決するための手段】
【０００６】
請求項１に記載の発明は、カメラが撮影した画像に写った太陽の前記画像の画面上における位置を特定する太陽位置特定部と、太陽軌道情報に基づき、前記画像の画面上における前記太陽の推定位置を算出する太陽推定位置算出部と、前記太陽位置特定部が特定した前記太陽の前記画面上における位置と、前記太陽推定位置算出部が算出した前記太陽の前記画面上における前記推定位置との差に基づいて前記カメラの前記姿勢を算出するカメラの姿勢算出部とを備えることを特徴とするカメラのキャリブレーション装置である。
【０００７】
請求項１に記載の発明によれば、天球面上における位置を正確に求めることができる太陽を標定点として利用して、カメラの姿勢を求めるキャリブレーションが行なわれる。カメラが写した画面中における太陽の位置を太陽の軌道情報から算出する場合、カメラの姿勢（どの方向に向いているか）の情報が利用される。よって、カメラの姿勢の情報に誤差が含まれていると、画面中における計算上の太陽の位置と実際にその画面に写り込んだ太陽の位置とが一致しなくなる。従って、画面上における両者の位置の違いが解消するように、カメラの姿勢を決めるパラメータを探索することで、カメラの姿勢が求められる。
【０００８】
請求項２に記載の発明は、請求項１に記載の発明において、前記カメラの姿勢算出部は、前記差が最小となる条件、前記差が特定の値以下となる条件、および前記差を決める補正量が特定の値に収束する条件の一または複数を用いて前記カメラの前記姿勢を算出することを特徴とする。
【０００９】
請求項３に記載の発明は、請求項１または２に記載の発明において、前記カメラの姿勢算出部は、前記画像に写った前記太陽の方向を規定する第１のベクトルと前記太陽の前記推定位置の方向を規定する第２のベクトルとの差を評価し、前記第２のベクトルは、前記カメラの姿勢の設定値の情報を含んでいることを特徴とする。
【００１０】
請求項４に記載の発明は、カメラが撮影した画像に写った太陽の前記画像の画面上における位置を特定する太陽位置特定ステップと、太陽軌道情報に基づき、前記画像の画面上における前記太陽の推定位置を算出する太陽推定位置算出ステップと、前記太陽位置特定ステップで特定した前記太陽の前記画面上における位置と、前記太陽推定位置算出ステップで算出した前記太陽の前記画面上における前記推定位置との差に基づいて前記カメラの前記姿勢を算出するカメラの姿勢算出ステップとを備えることを特徴とする。
【００１１】
請求項５に記載の発明は、コンピュータに読み取らせて実行させるプログラムであって、コンピュータにカメラが撮影した画像に写った太陽の前記画像の画面上における位置を特定する太陽位置特定ステップと、太陽軌道情報に基づき、前記画像の画面上における前記太陽の推定位置を算出する太陽推定位置算出ステップと、前記太陽位置特定ステップで特定した前記太陽の前記画面上における位置と、前記太陽推定位置算出ステップで算出した前記太陽の前記画面上における前記推定位置との差に基づいて前記カメラの前記姿勢を算出するカメラの姿勢算出ステップとを実行させることを特徴とするカメラのキャリブレーションを行うためのプログラムである。
【発明の効果】
【００１２】
本発明によれば、ＭＭＳにおけるカメラのキャリブレーションを容易に行える技術が提供される。
【図面の簡単な説明】
【００１３】
【図１】カメラを搭載した車両の一例を示す図である。
【図２】実施例における演算装置のブロック図である。
【図３】処理の手順の一例を示すフローチャートである。
【図４】画面上における太陽の計算位置と写り込んだ位置との一例を示す概念図である。
【図５】画面上における太陽の計算位置と写り込んだ位置との一例を示す概念図である。
【図６】画面上における太陽の計算位置と写り込んだ位置との一例を示す概念図である。
【発明を実施するための形態】
【００１４】
（概要）
本実施形態では、カメラが撮影した画像に写り込んでいる太陽を利用して当該カメラの姿勢（向き）を求めるキャリブレーションを行う。以下、簡単に原理を説明する。図４には、太陽の方向を撮影した静止画面中における計算上の太陽の画面位置と、実際に写り込んだ太陽の画面位置が示されている。撮影に用いたカメラの姿勢に誤差が含まれていると、計算上の太陽の位置が真値からずれるので、太陽の計算上の位置と実際に写った太陽の位置とにずれが生じる。そこで、カメラの姿勢を規定するパラメータに補正量δを導入し、上記の位置のずれが収束条件（例えば、位置のずれが最少となる）を満たす補正量δを求める。概念的にいうと、複数の画像において図５に示すように計算位置と観測位置にずれがある状態から、図６に示すように計算位置と観測位置にずれがない状態となるように補正量δを繰り返し設定し（言い換えると探索し）、補正量δを真値に追い込んでゆく処理を行う。
【００１５】
（構成）
図１には、車両１００が示されている。車両１００には、アンテナ１０１、ＩＭＵ１０２、演算装置１０３、およびカメラ１０４が搭載されている。アンテナ１０１は、ＧＰＳ衛星等の航法衛星からの航法信号を受信する。航法信号には、航法信号の発信時刻、航法衛星の軌道情報、航法信号の伝搬時間等の測定に利用されるコード情報等が含まれている。利用する航法衛星は、ＧＰＳ衛星に限定されず、他の形態の航法衛星であってもよい。航法衛星として、ＧＰＳシステムを補完する航法衛星を用いることもできる。この例としては、準天頂衛星システム(Qusai-Zenith Satellite System)で運行される航法衛星が挙げられる。
【００１６】
ＩＭＵ(Inertial Measurement Unit)１０２は、慣性航法装置であり，車両の姿勢の変化、車両に加わる加速度を検出する。演算装置１０３は、コンピュータとして機能するハードウェアであり、後述する図２に示す構成を有し、また図３に示す処理を行う。カメラ１０４は、全周カメラであり、上方向も含めて周囲全周（２π空間）の動画を撮影する。全周カメラについては、例えば特開２０１２−２０４９８２号公報や特開２０１４−７１８６０号公報に記載されている。カメラ１０４は、特定の時間間隔で連続的に静止画像の撮影を行う。カメラ１０４が動画を撮影する形態であってもよい。この場合、動画を構成するフレーム画像が静止画像として取り扱われる。
【００１７】
図示省略されているが、車両１００には、カメラ１０４に加えてレーザスキャナが配置されている。カメラ１０４が撮影した画像とレーザスキャナから得られる三次元点群位置データとを用いて車両１００が走行しながら得た周囲環境の三次元データ（例えば、周囲環境の三次元モデルのデータ）が得られる。
【００１８】
ここで、車両１００におけるアンテナ１０１の位置、ＩＭＵ１０２の位置と姿勢は予め測定されており、既知である。そして、初期状態において、カメラ１０４の車両１００に対する位置は測定されており、既知であるが、その車両１００に対する姿勢は大凡の値が判明している状態であり、誤差を含んでいるものとする。
【００１９】
以下、演算装置１０３について説明する。演算装置１０３は、コンピュータとして機能するハードウェアであり、図２に示す各機能部を有する。図２に示す各機能部は、ソフトウェア的に構成されていてもよいし、専用の演算回路によって構成されていてもよい。また、ソフトウェア的に構成された機能部と、専用の演算回路によって構成された機能部が混在していてもよい。例えば、図示する各機能部は、ＣＰＵ（Central Processing Unit）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field Programmable Gate Array）などのＰＬＤ（Programmable Logic Device）により構成される。また、演算装置１０３は、固体電子メモリやハードディスク装置等の記憶装置、各種のインタフェース回路を備えている。
【００２０】
図２には、演算装置１０３のブロック図が示されている。演算装置１０３は、データ取得部１１１、車両位置算出部１１２、太陽位置算出部１１３、太陽位置投影部１１４、太陽の画面中での位置特定部１１５およびカメラの姿勢算出部１１６を備えている。データ取得部１１１は、アンテナ１０１が受信した航法信号、カメラ１０４が撮影した画像データを受け付ける。
【００２１】
車両位置算出部１１２は、アンテナ１０１が受信したＧＮＳＳ航法衛星からの航法信号に基づいて車両１００の位置を算出する。車両１００の位置は、ＩＭＵ１０２の位置を基準として計算される。車両１００の位置の算出において、ＧＮＳＳのデータ加えて、各種のビーコン信号を利用することもできる。このＧＮＳＳに加えて利用可能なシステムとして、ＶＩＣＳ（Vehicle Information and Communication System）（登録商標）が挙げられる。車両の位置と姿勢は、カメラが撮影した動画を用いて算出することもできる。この技術は、例えば特開２０１３−１８６８１６号公報に記載されている。
【００２２】
太陽位置算出部１１３は、車両１００（この場合は、ＩＭＵ１０２の位置）から見た天球面上における太陽の位置を算出する。なお、この場合、太陽は無限遠の位置にあると見なせるので、車両１００から見てもカメラ１０２から見ても、天球面上における位置は同じである。太陽の位置は、車両１００の位置とその時の時刻が決まれば計算できる。太陽の位置の算出には、専用のプログラムが利用される。天球面上における太陽の軌道情報は、公知の天文情報から得られる。太陽の軌道情報は、例えば、米国ジェット推進研究所のwebサイト(http://www.jpl.nasa.gov/)から入手できる。また、太陽の位置を求める方法に関しては、例えば、日本建築学会東北支部研究報告集  第６８号  計画系  出版日：２００５年６月１０日、（news-sv.aij.or.jp/kankyo/s13/OLDHP/matsu0512.pdf）に記載されている。
【００２３】
太陽位置投影部１１４は、太陽が写り込んだ画像中に計算により求めた太陽の位置を投影する。カメラの姿勢算出部１１６は、画像中における計算上の太陽の位置と実際に撮影された太陽の位置との差を利用して、カメラ１０４の姿勢を求める。太陽の画面中での位置特定部１１５は、着目している静止画像中に写り込んだ太陽の当該静止画像中での位置（画面位置）を取得する。具体的には、当該静止画像が写った画面における太陽像の座標の情報を取得する。
【００２４】
（処理の一例）
図３には、演算装置１０３で行われる処理の手順の一例が示されている。図３の処理を実行するためのプログラムは、演算装置１０３内のメモリや適当な記憶媒体に記憶され、演算装置１０３によって実行される。まず、時刻ｔにおける車両１００の位置と姿勢の情報を取得する（ステップＳ１０１）。この処理は、データ取得部１１１によって行われる。車両１００の位置は、車両位置算出部１１２が算出した値を用い、車両１００の姿勢はＩＭＵ１０２から取得する。また、カメラ１０４が時刻ｔに撮影した静止画像の画像データを取得する（ステップＳ１０２）。ここで、当該静止画像は、太陽が写り込んだ画像が選択される。また、太陽光の輝度が大きいので適当なフィルタ処理を施し、太陽の位置を明確に取得できるように当該静止画像の明度を調整する。太陽が写り込んだ画像が選択されたら、太陽像の画面中における位置を取得する。この処理は、太陽の画面中での位置特定部１１５によって行われる。
【００２５】
次に天球面における太陽の位置を算出する（ステップＳ１０３）。この処理は、太陽位置算出部１１３において行われる。太陽の天球面上における位置から、車両１００から見た太陽の方向が判る。太陽の位置をデータベース上から取得する方法、あるいは外部のサーバ等で計算を行い、それを回線経由で取得する方法も可能である。
【００２６】
次にカメラの姿勢の算出を行う（ステップＳ１０４）。この処理は、カメラの姿勢算出部１１６において行われる。以下、ステップＳ１０４で行われる処理の詳細を説明する。まず、時刻tにおける車両１００の位置をPimu(t)とする。ここで、ステップＳ１０１で車両１００の姿勢を取得し、ステップＳ１０３で車両１００から見た太陽の位置が計算されているので、時刻tにおけるＩＭＵ(車両)座標系での太陽方向単位ベクトルSt_imu(t)を得ることができる。ここで、ＩＭＵ(車両)座標系は、ＩＭＵの位置を原点として車両に固定され、車両と共に平行移動および回転する。
【００２７】
太陽方向単位ベクトルSt_imu(t)は、時刻ｔにおけるＩＭＵ座標系における計算上の太陽の方向を規定する単位ベクトルである。
【００２８】
また、ＩＭＵ(車両)座標系におけるカメラ１０４の位置をＴ（並進ベクトル）、姿勢をＲ（回転行列）とする。ここでＲはroll,pitch,yawの三成分により決まる。初めの段階では、車両に対するカメラ１０４の大凡の向きは判るが、厳密な値は判らず、Ｒはキャリブレーション誤差を含んでいる。このキャリブレーション誤差(真値への補正量)を未知パラメータとする。時刻tにおけるカメラ座標系での計算上の太陽の方向を規定する太陽方向単位ベクトルをSt_cam(t)とすると、数１が成り立つ。太陽方向単位ベクトルSt_cam(t)は、時刻ｔにおけるカメラ座標系における計算により得られた太陽の方向を規定する単位ベクトルである。カメラ座標系は、カメラ１０３の位置を原点としてカメラ１０３に固定された座標系であり、カメラ１０３と共に平行移動および回転する。
【００２９】
【数１】
2017009555.tif 000003
【００３０】
一方、ステップＳ１０２で取得したカメラ１０４が撮像した静止画像への映り込みから当該静止画像中における観測された太陽の位置を特定する。この処理は、太陽の画面中での位置特定部１１５によって行われる。カメラ座標系は、カメラ１０４に固定された座標系であるので、上記の静止画像とカメラ座標系との関係は判る。したがって、当該静止画像中における観測された太陽の位置が特定されることで、カメラ座標系における実際に撮影された太陽の方向を規定する太陽方向ベクトルSi_cam(t)を定めることができる。太陽方向ベクトルSi_cam(t)は、時刻ｔのカメラ座標系における実際に撮影された（観察された）太陽の位置の方向を規定する単位ベクトルである。ここで、St_cam(t)とSi_cam(t)の２ベクトルの差を△Sとすると、数２が成り立つ。
【００３１】
【数２】
2017009555.tif 000004
【００３２】
△Sは、着目している静止画像中における太陽の計算上の位置と観測された位置との差を現すパラメータとなる。そして、数１と数２から数３が得られる。
【００３３】
【数３】
2017009555.tif 000005
【００３４】
ここで、未知パラメータroll,pitch,yawの初期値(設計値や最初に設定した大凡の値)からの補正量をδroll, δpitch, δyawとすると、下記数４に示す線形化した式が導ける。ここで[]Tは転置を表し、Jはヤコビ行列である。
【００３５】
【数４】
2017009555.tif 000006
【００３６】
数４において、b=△S、A=J、x=[δroll, δpitch, δyaw]Tとすると、数５が得られる。
【００３７】
【数５】
2017009555.tif 000007
【００３８】
数５が太陽軌道から求めた太陽方向ベクトルと画像への映り込みから求めた太陽方向ベクトルとのベクトル差を評価する観測方程式となる。すなわち、数５は、太陽の軌道データから計算により求めた天球面上における太陽の位置と、実際に観測された天球面上における太陽の位置との差を評価する観測方程式となる。
【００３９】
数５の観測方程式を立てたら、この観測方程式に複数の撮影時刻における各パラメータの値を格納する。例えば、時刻ｔ１、ｔ２、ｔ３、・・・ｔｎにおけるSt_cam(t)とSt_imu(t) が数５の観測方程式に格納される。ここで、選択される時刻の数ｎは、許容できる範囲でなるべく多い方がよい。その後、下記の手順により正規方程式を得る。まず、数５にＡの転置行列ＡＴを左から掛けて数６を得る。
【００４０】
【数６】
2017009555.tif 000008
【００４１】
そして、数６にＡＴＡの逆行列（ＡＴＡ）−１を左から掛けて数７（正規方程式）を得る。
【００４２】
【数７】
2017009555.tif 000009
【００４３】
数７から、初期値からの補正量であるδroll, δpitch, δyawの最小二乗解が得られる。そして、収束条件が満たされていればその際の補正量δroll, δpitch, δyawを採用し処理を終了する。収束条件が満たされていなければ、下記ステップに進む。収束条件としては、ベクトル差△Sが予め定めた閾値以下となった段階やベクトル差△Sがそれ以上小さくならなくなった段階(最小となった段階）が挙げられる。また、補正量δroll, δpitch, δyawが特定の値に収束した段階を収束条件として採用することもできる。ここで述べた収束条件の複数を組み合わせて用いてもよい。例えば、複数の収束条件のうちの少なくとも一つが満たされた場合の補正値を採用する態様や複数の収束条件のうちの少なくとも二つが満たされた場合の補正値を採用する態様等が可能である。
【００４４】
収束条件が満たされない場合、この時点で得られているδroll, δpitch, δyawを新たな補正量として初期値であるＲに加味し、その値を用いて再び太陽軌道から求めた太陽方向ベクトルを生成する。すなわち、この時点で得られているδroll, δpitch, δyawをＲの初期値に組み込み、新たなＲの初期値を設定し、再度△Sを求め、数４以下の計算を再度行う。この処理のループを収束条件が満たされるまで繰り返し行うことで、より真値に近い補正量(δroll, δpitch, δyaw）を得ることができる。こうして、未知であったＲが求まり、車両１００に対するカメラ１０４の姿勢が求められる。通常は、上記の計算のループを繰り返し行い、δroll, δpitch, δyawの値を真値に追い込んでゆく処理が行なわれる。
【００４５】
（優位性）
上記の技術によれば、太陽を標定の基準点として利用することで、車両１００に対するカメラ１０４の姿勢のデータが得られる。この技術では、専用の標定用ターゲットを用いず、また煩雑な作業が必要とされない。そのため、ＭＭＳにおけるカメラのキャリブレーションを容易に行える。
【００４６】
（その他）
本発明は、車両に搭載されたカメラの当該車両に対する姿勢を求める処理に限定されず、航空機や船舶等の移動体に搭載されたカメラに対して適用することもできる。ここで、移動体は、有人であってもよいし無人であってもよい。また、太陽の代わりに月を利用することもできる。この場合、撮影した静止画面上における月軌道情報から得られた計算上の月の投影位置と、実際に写った月の位置とを比較して、上記の太陽を利用する場合と同様の処理を行うことで、移動体におけるカメラの姿勢が求められる。
【図１】
2017009555.tif 000010
【図２】
2017009555.tif 000011
【図３】
2017009555.tif 000012
【図４】
2017009555.tif 000013
【図５】
2017009555.tif 000014
【図６】
2017009555.tif 000015