(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024145734
(43)【公開日】2024-10-15
(54)【発明の名称】測量方法、測量システムおよびプログラム
(51)【国際特許分類】
G01C 11/36 20060101AFI20241004BHJP
【FI】
G01C11/36
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2023058216
(22)【出願日】2023-03-31
(71)【出願人】
【識別番号】000220343
【氏名又は名称】株式会社トプコン
(74)【代理人】
【識別番号】100096884
【弁理士】
【氏名又は名称】末成 幹生
(72)【発明者】
【氏名】佐々木 剛
(72)【発明者】
【氏名】重田 将宏
(57)【要約】
【課題】移動体に搭載したカメラの撮影画像に基づく三次元データの精度を高める。
【解決手段】重機100に搭載された状態で移動するカメラ101が撮影した撮影画像の画像データを得、カメラ101に対して固定された特定の部分である反射プリズム102の位置がトータルステーション200により測定され、測定された反射プリズム102の位置に基づきカメラ101の位置を算出し、反射プリズム102の位置の測定時刻とカメラ101の撮影時刻にはズレがあり、カメラ101の位置の算出では、カメラ101の位置を未知数とした調整計算が行われ、この調整計算は、前記時刻のズレに対応した補正量が加えられた反射プリズム101の測定位置に基づいて行われる。
【選択図】
図1
【特許請求の範囲】
【請求項1】
移動するカメラが撮影した撮影画像の画像データを得、
前記カメラに対して固定された特定の部分の位置が測定され、
前記特定の部分の前記測定された位置に基づき前記カメラの位置を算出し、
前記特定の部分の位置の測定時刻と前記撮影画像の撮影時刻にはズレがあり、
前記カメラの位置の算出では、前記カメラの位置を未知数とした調整計算が行われ、
前記調整計算は、前記時刻のズレに対応した補正量が加えられた前記特定の部分の位置に基づいて行われる測量方法。
【請求項2】
前記調整計算の初期値を求める処理が行われ、
前記初期値を求める処理では、
前記カメラの撮影画像に基づき算出されたローカル座標系における前記カメラの位置と、前記特定の部分のグローバル座標系における位置の動き始めおよび/または動き終わりの対応関係を求める処理が行われる請求項1に記載の測量方法。
【請求項3】
前記調整計算の初期値を求める処理が行われ、
前記初期値を求める処理では、
前記カメラの撮影画像に基づき算出されたローカル座標系における前記カメラの位置の変化と、前記特定の部分のグローバル座標系における位置の変化の対応関係が求められる請求項1に記載の測量方法。
【請求項4】
前記位置の変化は、第1の位置と第2の位置を結ぶ第1の直線と、第2の位置と第3の位置を結ぶ第2の直線とのなす角度によって評価される請求項3に記載の測量方法。
【請求項5】
移動するカメラが撮影した撮影画像の画像データを得る手段と、
前記カメラに対して固定された特定の部分の位置を測定する手段と、
前記特定の部分の前記測定された位置に基づき前記カメラの位置を算出する手段と
を有し、
前記特定の部分の位置の測定時刻と前記撮影画像の撮影時刻にはズレがあり、
前記カメラの位置の算出では、前記カメラの位置を未知数とした調整計算が行われ、
前記調整計算は、前記時刻のズレに対応した補正量が加えられた前記特定の部分の位置に基づいて行われる測量システム。
【請求項6】
コンピュータに読み取らせて実行させるプログラムであって、
コンピュータに
移動するカメラが撮影した撮影画像の画像データの取得と、
前記カメラに対して固定された特定の部分の位置の測定データの取得と、
前記特定の部分の前記測定された位置に基づき前記カメラの位置の算出と
を実行させ、
前記特定の部分の位置の測定時刻と前記撮影画像の撮影時刻にはズレがあり、
前記カメラの位置の算出では、前記カメラの位置を未知数とした調整計算が行われ、
前記調整計算は、前記時刻のズレに対応した補正量が加えられた前記特定の部分の位置に基づいて行われるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、測量技術に関する。
【背景技術】
【0002】
測量装置を用いて重機の位置を測定する技術が知られている(例えば、特許文献1を参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
重機にカメラを搭載し、sfm(Structure from Motion)により周囲の三次元データを得る場合、カメラの位置を定める必要がある。本発明は、移動体に搭載したカメラの撮影画像に基づく三次元データの精度を高めることを目的とする。
【課題を解決するための手段】
【0005】
本発明は、移動するカメラが撮影した撮影画像の画像データを得、前記カメラに対して固定された特定の部分の位置が測定され、前記特定の部分の前記測定された位置に基づき前記カメラの位置を算出し、前記特定の部分の位置の測定時刻と前記撮影画像の撮影時刻にはズレがあり、前記カメラの位置の算出では、前記カメラの位置を未知数とした調整計算が行われ、前記調整計算は、前記時刻のズレに対応した補正量が加えられた前記特定の部分の位置に基づいて行われる測量方法である。
【0006】
本発明において、前記調整計算の初期値を求める処理が行われ、前記初期値を求める処理では、前記カメラの撮影画像に基づき算出されたローカル座標系における前記カメラの位置と、前記特定の部分のグローバル座標系における位置の動き始めおよび/または動き終わりの対応関係を求める処理が行われる態様が挙げられる
【0007】
本発明において、前記調整計算の初期値を求める処理が行われ、前記初期値を求める処理では、前記カメラの撮影画像に基づき算出されたローカル座標系における前記カメラの位置の変化と、前記特定の部分のグローバル座標系における位置の変化の対応関係が求められる態様が挙げられる。
【0008】
本発明において、前記位置の変化は、第1の位置と第2の位置を結ぶ第1の直線と、第2の位置と第3の位置を結ぶ第2の直線とのなす角度によって評価される態様が挙げられる。
【0009】
本発明は、移動するカメラが撮影した撮影画像の画像データを得る手段と、前記カメラに対して固定された特定の部分の位置を測定する手段と、前記特定の部分の前記測定された位置に基づき前記カメラの位置を算出する手段とを有し、前記特定の部分の位置の測定時刻と前記撮影画像の撮影時刻にはズレがあり、前記カメラの位置の算出では、前記カメラの位置を未知数とした調整計算が行われ、前記調整計算は、前記時刻のズレに対応した補正量が加えられた前記特定の部分の位置に基づいて行われる測量システムである。
【0010】
本発明は、コンピュータに読み取らせて実行させるプログラムであって、コンピュータに移動するカメラが撮影した撮影画像の画像データの取得と、前記カメラに対して固定された特定の部分の位置の測定データの取得と、前記特定の部分の前記測定された位置に基づき前記カメラの位置の算出とを実行させ、前記特定の部分の位置の測定時刻と前記撮影画像の撮影時刻にはズレがあり、前記カメラの位置の算出では、前記カメラの位置を未知数とした調整計算が行われ、前記調整計算は、前記時刻のズレに対応した補正量が加えられた前記特定の部分の位置に基づいて行われるプログラムである。
【発明の効果】
【0011】
本発明によれば、移動体に搭載したカメラの撮影画像に基づく三次元データの精度を高めることができる。
【図面の簡単な説明】
【0012】
【
図2】カメラ位置とプリズム位置の関係を示す概念図である。
【
図5】処理の手順の一例を示すフローチャートである。
【発明を実施するための形態】
【0013】
1.第1の実施形態
(概要)
図1には、土木作業を行う重機100、重機100の位置の測定を行う測量装置であるトータルステーション200が示されている。重機100の稼働中に、搭載するカメラ101による撮影を行い、sfm(Structure from Motion)の原理により、重機100周囲の3Dデータを取得する。この際、トータルステーション200は、重機100に搭載した反射プリズム102を追尾しつつ繰り返し継続してその位置の測定を行う。この反射プリズム102の位置の測定値に基づいて、上記3Dデータをグローバル座標系におけるデータとして得る。sfmの原理については、例えば特開2013-186816号公報に記載されている。グローバル座標系は、地図やGNSSで用いられる座標系である。
【0014】
(重機)
重機100は、パワーシャベルである。パワーシャベルは一例であり、土木作業を行う重機であれば、重機の種類は特に限定されない。重機100は、無限軌道により地上を走行するベース部120と、ベース部120上で水平回転する回転部110を備えている。回転部110は、運転席とアーム151を備え、アーム151の先端にはバケット152が配置されている。これらの構造は、通常のパワーシャベルと同じである。
【0015】
回転部110の上部には、カメラ101と反射プリズム102が固定配置されている。回転部110におけるカメラ101の位置および/または反射プリズム102の位置は、既知であってもよいし未知であってよい。また、位置が既知であっても、それは凡そであり、誤差を含んでいてもよい。カメラ101の位置および/または反射プリズム102の位置が未知である場合や誤差を含んでいる場合、調整計算時に当該位置が最適化される。
【0016】
カメラ101は、連続して繰り返し静止画像を撮影するデジタルスチールカメラである。重機100の稼働中において、重機100は走行し、また回転部110が回転するので、カメラ101はいろいろな方向を向く。そのため、重機100の稼働中にカメラ101により、重機100の周囲の撮影が行われる。カメラ101としてデプスカメラを採用することもできる。カメラ101として動画撮影用のカメラを利用し、動画を構成するフレーム画像を静止画像として利用する形態も可能である。
図1には、1台のカメラ101を重機100に配置する例を示すが、多方向に向けた複数台のカメラを配置することも可能である。また、ステレオカメラを用いることもできる。
【0017】
反射プリズム102は、レーザー光を用いた測量に利用される光学反射ターゲットである。ここでは、反射プリズム102として全周反射プリズムが利用される。反射プリズム102は、入射光を180°向きを変えて反射する。光学反射ターゲットとしては、反射プリズム以外に再帰反射特性を有する反射ターゲットを利用することができる。
【0018】
重機100の位置は、重機の重心の位置で把握される。重機100の位置をカメラ101や反射プリズム102の位置、回転部110の回転中心軸上のどこかの点、その他重機100のどこかの位置で把握することも可能である。
【0019】
重機100は、演算部300を備える。演算部300はコンピュータである。演算部300を重機100の外部に用意することもできる。演算部300は、カメラ101が撮影した画像に基づく撮影対象の三次元モデルの作成に係る処理を行う。この処理の中にカメラ101の位置の算出に係る処理が含まれる。演算部300の構成および処理の詳細は後述する。
【0020】
(トータルステーション)
トータルステーション200は、位置の測定が可能な測量装置の一例である。トータルステーション200は、レーザー光を用いた測位機能、カメラ、時計、測量したデータの記憶装置、通信インターフェース、ユーザーインターフェース、測量対象(反射プリズム102)を探索する機能および測量対象が移動してもそれを追尾する機能を備える。トータルステーション200は、一般的に入手できる機種を利用できる。
【0021】
処理に先立ち、グローバル座標系におけるトータルステーション200の位置と姿勢は取得され、既知のデータとされている。なお、トータルステーション200の位置は、測距を行うための光学系の光学原点の位置で把握される。
【0022】
トータルステーション200が反射プリズム102を視準し、ロックした状態で重機100の作業が開始される。重機100の作業中において、トータルステーション200は、反射プリズム102を追尾しつつ、その位置の測定を繰り返し行う。測定の間隔は、0.05秒(20Hz)~5秒(0.2Hz)程度とする。
【0023】
(基本的な処理の流れ)
以下の原理により、重機100に搭載したカメラ101が撮影した画像に基づく、撮影対象の3Dデータの作成が行われる。カメラ101は、繰り返し連続して静止画像の撮影を行う。重機100の稼働中にカメラ101の位置と姿勢は変化するが、その際に時間軸上で隣接する撮影画像が重複するように、カメラ101の撮影間隔は決定される。具体的な撮影の間隔は、数Hz~30Hz程度とする。基本的には、下記の処理により、重機101の稼働中にカメラが撮影した画像に基づくsfmを利用した撮影対象の三次元モデルの作成が行われる。
【0024】
(1)相互標定
カメラ101が撮影した撮影画像に基づく任意スケールの相対三次元モデルの作成を行い、複数の画像間で特定された特徴点と各画像の撮影時におけるカメラ101の位置および姿勢の相対関係を特定する。具体的には、ステレオ画像間で共通する特徴点を抽出し、複数の視点(撮影位置)におけるカメラの位置と姿勢、および特徴点の相対関係を特定する。
【0025】
(2)調整計算
バンドル調整計算および反射プリズム102とカメラ101の位置関係と測定時刻のズレを考慮した調整計算を同時に行い、グローバル座標系におけるカメラ101の位置と姿勢および特徴点の位置の最適化を行う。これにより、グローバル座標系上での特徴点の位置が記述された点群データが得られる。
【0026】
(3)3Dモデルの作成
上記調整計算により最適化された点群データに基づき、対象の3Dモデルを作成する。3Dモデルとしては、対象の輪郭線をデータ化したもの、DEM(Digital Elevation Model)、TIN(Triangulated Irregular Network)等が挙げられる。点群データに基づく3Dモデルの作成については、例えば、WO2011/070927号公報、特開2012-230594号公報、特開2014-35702号公報に記載されている。
【0027】
(時刻が同期していない問題に対する対応)
この例では、カメラ101の撮影を制御する制御系の時計(処理を行うための時刻の特定機能)と、トータルステーション200の位置の測定に係る動作を制御する制御系の時計が同期していない。例えば、コストを抑えた場合や簡便な構成などを採用した場合、この状況があり得る。
【0028】
上記のカメラ101とトータルステーション200の同期が確保されていない場合、両者の動作タイミングの差に起因する誤差が上記の調整計算時に生じる。すなわち、カメラ101は、移動しながら撮影を行うので、カメラ101の撮影時刻とトータルステーション200による反射プリズム102の測定時刻が同期していないと、計算結果に誤差が生じる。
【0029】
本実施形態では、この問題に対応するために以下の工夫を行う。
図2には、反射プリズム102の位置とカメラ101の位置(撮影時の位置)の関係が示されている。実線の丸印(p
i、T
pi)(i=1,2,3・・)がトータルステーション200(測量装置)により測定された反射プリズム102の位置とその測定時刻である。
【0030】
反射プリズム102の位置とその測定時刻を示す破線の丸印(pti、Tpti)は、時系列を考慮(時刻の同期のズレを考慮)した場合における反射プリズム102の位置と時刻である。これは、時間が同期していれば、測定されるであろうと予想される反射プリズム102の位置と時刻である。つまり、実線の丸印(pi、Tpi)は、実際に測定される反射プリズム102の位置と時刻であり、破線の丸印(pti、Tpti)は、仮に同期がとれていれば測定されると予想される反射プリズム102の位置と時刻である。
【0031】
ここでは、上記の同期がとれていないことによる誤差を低減するために、下記数1の拘束条件式を用いた調整計算を行う。
【0032】
【0033】
ここで、-p´
tiは、トータルステーション200が測定したグローバル座標系における反射プリズム102の位置、カメラ101の撮影時刻および反射プリズム102の測位時刻の関数であり、両時刻の差に比例した補正項が含まれている。この補正項により、
図2の実線の丸印の位置p
i(実際に測定される反射プリズム102の位置)に基づく、破線の丸印の位置p
tiを定めている。(-p´
ti-L´)は、トータルステーション200による反射プリズム102の位置の測定値から算出した同期のズレの時系列を考慮したローカル座標系上でのカメラ位置となる。
【0034】
ここで、ローカル座標系は、カメラ101の位置および姿勢と、カメラ101の撮影画像の中から抽出された特徴点との位置関係を記述する座標系である。
【0035】
上記の拘束条件式は、ローカル座標系上において立てられており、トータルステーション200による反射プリズム102の位置の測定値から算出した同期のズレの時系列を考慮したカメラ位置(-p´ti-L´)と、最終的に求める未知数となるカメラ位置t´iの差を各カメラの位置において求め、その総和を求める式である。
【0036】
以下、時系列を考慮した反射プリズム102の位置-p´tiについて説明する。ここでは、トータルステーション200が測定したi番目の反射プリズム102の位置は、対応するカメラ101の撮影画像の撮影時における反射プリズム102の位置に対して、少しズレがあると考える。このズレは、利用する時刻情報(時計)の非同期に起因する。
【0037】
このズレは、
図2に示すように、トータルステーション200が測定した反射プリズム102のi番目の位置とi+1番目との差よりも小さくなると考える。反射プリズム102のi番目の位置とi+1番目の位置の差は微小であるので、このズレは反射プリズム102の測位の時刻とカメラ101の撮影時刻の差に対応すると考える。
【0038】
具体的には、トータルステーション200が測定した反射プリズム102のi番目の位置からi+1番目の位置の方向に上記のズレ量で移動した位置に撮影時刻時の反射プリズム102があると考える。このズレ量は、反射プリズム102の測位の時刻とカメラ101の撮影時刻の差に比例する補正項として定義される。すなわち、この補正項の分、トータルステーション200が測定したi番目のプリズム位置からi+1番目のプリズム位置の方に寄った位置に、対応する撮影時刻時のプリズム位置があると考える。
【0039】
こうして、トータルステーション200による反射プリズム102の位置の測定値から算出したカメラ101の位置(-p´ti-L´)と、カメラ101の撮影時刻におけるカメラ101の位置t´iを定量的に比較できる数式が得られる。これが、上記の数1の拘束条件式である。
【0040】
この拘束条件式を用いたバンドル調整計算により、グローバル座標系におけるカメラ101の姿勢と位置が求められる。バンドル調整計算では、撮影対象の撮影画像から得た特徴点、撮影画像上の点、投影中心の3点を結ぶ光束(バンドル)が同一直線上になければならないという共線条件に基づき、各画像の光束1本毎に下記数2の観測方程式を立て、最小二乗法により特徴点の座標(Xj,Yj,Zj)とカメラ101の位置と姿勢のパラメータ(Xoi,Yoi,Zoi,a11i~a33i)の同時調整が行われる。
【0041】
本実施形態における調整計算では、前述した数1の拘束条件式と下記数2の観測方程式を立て、最小二乗法による各パラメータ(特徴点(Xj,Yj,Zj)およびカメラ101の位置(Xoi,Yoi,Zoi)と姿勢(a11i~a33i(回転行列)))の最適化が行われる。
【0042】
【0043】
c:画面距離(焦点距離)
(Xj,Yj,Zj):着目した特徴点の三次元座標
(xij,yij):画像i上における点jの画像上(画面上)の座標
(Xoi,Yoi,Zoi):写真iの撮影時におけるカメラ101の位置
(a11i~a33i):写真iの撮影時におけるカメラ101の姿勢を示す回転行列
【0044】
上記の数2において、(Xj,Yj,Zj)の初期値は、sfmにより得られたローカル座標系における特徴点の三次元座標を用いる。(Xoi,Yoi,Zoi)と(a11i~a33i)は未知数であり、数1と数2を用いた調整計算により求められる。なお、(Xoi,Yoi,Zoi)と(a11i~a33i)は未知数であるが、初期値として後述する初期値合わせの結果が利用される。また、初期値合わせにより、ローカル座標系とグローバル座標系の大雑把な関係は求められているので、(Xj,Yj,Zj)の初期値も誤差を含むがグローバル座標系におけるある程度真値に近い値となっている。これらの事情により、調整計算の収束性と精度を高めている。(Xpi,Ypi,Zpi)は、トータルステーション200が測定した反射プリズム102の位置を用いる。
【0045】
本実施形態における調整計算では、前述した数1の拘束条件式と下記数2の観測方程式を立て、最小二乗法による各パラメータ(特徴点(Xj,Yj,Zj)およびカメラ101の位置(Xoi,Yoi,Zoi)と姿勢(a11i~a33i(回転行列)))の最適化が行われる。なお、数1の調整計算を行った後に数2の調整計算を行う方法も可能である。
【0046】
数1と数2を用いた調整計算では、特徴点(Xj,Yj,Zj)、外部標定要素(Xoi,Yoi,Zoi,a11i~a33i(姿勢を示す回転行列))および(LX,LY,LZ)をパラメータとして、数1および数2の残差を算出する。この際、最小二乗法により上記の残差が収束するような(Xj,Yj,Zj),(Xoi,Yoi,Zoi,a11i~a33i),(LX,LY,LZ)の組み合わせを探索する。ここで、(LX,LY,LZ)は、カメラ101の位置と反射プリズム102の位置のX、Y、Z各方向のオフセット量である。
【0047】
具体的には、数1および数2で示される残差が小さくなるように、各パラメータ(Xj,Yj,Zj),(Xoi,Yoi,Zoi,a11i~a33i),(LX,LY,LZ)に補正量を加えて数1および数2の同時計算を行うことを繰り返す。そして、数1および数2が収束条件を満たす未知パラメータ(Xj,Yj,Zj),(Xoi,Yoi,Zoi,a11i~a33i),(LX,LY,LZ)の組み合わせを求める。収束条件としては、残差が十分に小さい、前回の計算からの残差の変動が十分に小さい(計算結果の変動が収束した状態)を用いる。
【0048】
(演算部の構成)
図3は、演算部300のブロック図である。演算部300は、コンピュータであり、CPU、記憶装置、各種のインターフェースを備えている。演算部300は、画像データ取得部301、反射プリズムの位置取得部302、相互標定部303、初期値合わせ部304、時系列を考慮した調整計算部305、三次元モデル作成部306、カメラ制御部307を備える。
【0049】
これら機能部は、演算部300を構成するコンピュータによりソフトウェア的に実現される。上記機能部の一部または全部を専用のハードウェアにより構成することもできる。演算部300を重機100の外部に用意する形態も可能である。例えば、インターネット接続された処理サーバ上で演算部300を用意し、そこで演算を行う形態等も可能である。
【0050】
画像データ取得部301は、カメラ101が撮影した撮影画像の画像データを受け付ける。画像データは、撮影時刻と関連付けされている。撮影時刻は、カメラ制御部309が備える時計の時刻が用いられる。反射プリズムの位置取得部302は、トータルステーション200が測定した反射プリズム102の位置のデータを受け付ける。このデータの測定時刻は、トータルステーション200が備える時計の時刻が用いられる。トータルステーション200は、グローバル座標系における位置と姿勢が既知であり、反射プリズム102の位置データは、グローバル座標系上で得られる。
【0051】
相互標定部303は、sfmの原理により、カメラ101の撮影画像から抽出された多数の特徴点とカメラ101の位置と向きの関係を算出する。この関係は、ローカル座標系上で特定される。以下、この処理の原理を簡単に説明する。いま、カメラ101が第1の位置で撮影した撮影画像1と、第1の位置から少しずれた第2の位置から撮影した撮影画像2があるとする。また、撮影画像1と撮影画像2は、撮影範囲が重複しているとする。この重複した範囲から抽出した多数の特徴点、第1の位置および第2の位置の位置関係、さらに第1の位置と第2の位置におけるカメラの姿勢の関係が三次元写真測量(ステレオ写真計測)の原理から求まる。これが、相互標定の処理となる。
【0052】
この処理により、ローカル座標系の各撮影視点位置におけるカメラ101の位置と姿勢が求まる。なお、スケールを与えない場合、ローカル座標系は、スケールが未知であり相対位置関係を記述する座標系となる。スケールの付与は必須でないが、撮影画像中にスケールが写るようにすれば、当該ローカル座標系にスケールが与えられる。
【0053】
初期値合わせ部304は、ローカル座標系で記述されるカメラ101の位置および時刻と、グローバル座標系で記述される反射プリズム102の位置および時刻の対応関係の初期値を特定する。この初期値を用いて前述の調整計算が行われる。この初期値合わせは、上述した相互標定で用いたローカル座標系とグローバル座標系の凡その関係を求める処理ともいえる。
【0054】
以下、初期値合わせ部304での処理の一例を説明する。初期値合わせは、下記の3段階の処理により行われる。第1段階の処理では、カメラ101の位置の動き始めと、反射プリズム102の位置の動き始めに着目し、両位置の対応関係が特定される。この処理では、移動の開始点に着目して両者の対応する点(位置)を特定する。また、逆に移動の終了点(停止した点)に着目して対応する点を特定することもできる。
【0055】
この処理では、トータルステーション200による反射プリズム102の測定位置(グローバル座標系における位置)と、カメラ101の撮影画像に基づくカメラ101の算出位置(ローカル座標系における位置)に係り、その動き始めおよび/または動きが終わるタイミングの対応関係が求められる。
【0056】
第1段階の処理の後に第2段階の処理が行われる。第2段階の処理では、位置の変化に着目した処理が行われる。
図4(A)に原理を示す。
図4(A)において、〇印はカメラ101の位置または反射プリズム102の位置である。この場合、連続して並ぶ3点のなす角度を全点(全てのカメラ位置と反射プリズム位置)に関して計算する。そして、カメラ側のなす角度と反射プリズム側のなす角度を比較し、差分の絶対値の和が最小となる組み合わせを探索する。
【0057】
例えば、カメラ101の位置に関する上記なす角度がθc1、θc2、θc3、θc4・・・θcnであり、反射プリズム102の位置に関する上記なす角度がθp1、θp2、θp3、θp4・・・θpnであるとする。この場合、組み合わせを変えながら、θc1、θc2、θc3、θc4・・・θcnとθp1、θp2、θp3、θp4・・・θpnの各なす角度間の差分をとり、その絶対値の和を求める。この和が最小となる組み合わせ位置を対応する組み合わせとして採用する。
【0058】
例えば、θp1-θc1、θp2-θc2、θp3-θc3・・・の絶対値の和、θp2-θc1、θp3-θc2、θp4-θc3・・・の絶対値の和、θp3-θc1、θp4-θc2、θp5-θc3・・・の絶対値の和、・・・を全て計算し、その中で当該和が最小の組み合わせを探す。
【0059】
この方法によれば、グローバル座標系における反射プリズム102の位置の変化と、ローカル座標系におけるカメラ101の位置の変化が比較され、両者の対応関係が特定される。この対応関係が求まることで、第1段階から更に精度を高めた初期値合わせが行われる。
【0060】
第2段階の処理では、カメラ101の位置の計算間隔と反射プリズム102の位置の測定間隔とが極力近い(理想的には同一)ことが望まれる。
図4(C)には、カメラ101の位置の計算間隔が1秒(1Hz)であり、反射プリズム102の位置の測定間隔が0.2秒(5Hz)である場合が示されている。この場合、反射プリズム102の位置の測定点の取得を5点に一点の割合とし(つまりサンプリング周波数を1/5とし)、カメラ101の位置の計算間隔に合わせる。この位置の測定間隔をそろえることで比較を行い易くする。この方法は、第1段階の処理においても有効である。
【0061】
図4(B)は、なす角度の算出を、間隔を空けた3点とした場合である。
図4(B)のようにすることで、なす角度の差がより顕著に生じ易くでき、比較の精度を高めることができる。
【0062】
第2段階の処理の後に第3段階の処理が行われる。第3段階の処理では、カメラ位置と反射プリズム位置の対応関係を最小二乗法により求める。この処理では、ローカル座標系→グローバル座標系への変換行列が求まる。この変換行列を用いて、ローカル座標系となっているもの(特徴点、カメラ位置姿勢)がグローバル座標系に変換される。ここで求めた変換行列および当該変換行列によって変換した結果が次の調整計算の初期値として用いられる。
【0063】
以上の3段階の位置合わせ処理により、相互標定によって得た各撮影画像のカメラ位置と特徴点の関係を記述したローカル座標系と、グローバル座標系との関係の初期値が得られる。
【0064】
時系列を考慮した調整計算部305は、
図2に関連して説明した数1および数2を用いた調整計算を行う。この調整計算は、上記の初期値合わせの結果を用いて行われる。
【0065】
三次元モデル作成部306は、調整計算の結果得られた各特徴点のグローバル座標系における位置のデータである点群データに基づき、撮影対象の三次元モデルを作成する。この例では、重機100の作業中に撮影した重機100周囲の地形の三次元モデルの作成が行われる。この三次元モデルの時間軸上の変化を追うことで、重機100が行った作業の内容(地形の変化)をデータ化できる。
【0066】
カメラ制御部307は、カメラ101の撮影タイミングを決める制御を行う。カメラ101自体にこの制御を行う機能がある場合、カメラ制御部307は、カメラの撮影の開始および停止を指示する信号を出力する。
【0067】
(処理の一例)
図5は、
図3の演算装置300において行われる処理の手順の一例を示すフローチャートである。
図5の処理を実行するプログラムは、演算装置300を構成するコンピュータの記憶装置や適当な記憶媒体に記憶され、当該コンピュータにより実行される。
【0068】
まず、処理の前提を説明する。ここでは、重機100にカメラ101と反射プリズム102は固定され、カメラ101と反射プリズム102の離間距離Lは既知であるとする。Lは正確でなくてもよい。またLは未知でもよい。この場合、調整計算により、Lは求められる。
【0069】
重機100上におけるカメラ101の位置と反射プリズム102の位置は未知とする。
また、重機100の稼働中において、カメラ101は繰り返し撮影を行う。トータルステーション200は、反射プリズム102の位置を継続して繰り返し測定する。トータルステーション200のグローバル座標系における位置と姿勢は既知である。また、カメラの撮影時刻とトータルステーションによる反射プリズム101の測位の時刻は同期していない。
【0070】
図5の処理は、重機100の稼働終了後に行われる。重機100の稼働中に
図5の処理を行ってもよい。例えば、5分毎や10分毎に
図4の処理を行うバッチ処理も可能である。また、リアルタイムに
図5の処理を行う形態も可能である。
【0071】
まず、カメラ101が撮影した画像データを取得する(ステップS101)。この処理は、
図3の画像データ取得部301において行われる。次に、トータルステーション200が測定した反射プリズム102の位置のデータを取得する(ステップS102)。この処理は、
図3の反射プリズムの位置取得部302において行われる。
【0072】
次に、sfmの原理により、カメラが撮影した画像に基づくローカル座標系における特徴点の位置、カメラ101の位置と姿勢の算出を行う(ステップS103)。この処理は、
図3の相互標定部303において行われる。
【0073】
撮影画像中にスケール(例えば、離間距離が既知の2点のターゲット)が写っていれば、上記ローカル座標系にスケールが与えられるが、スケールの付与は必須ではない。なお、撮影画像中にグローバル座標系上で位置が特定された基準点が複数写っていれば、上記ローカル座標系をグローバル座標系として扱うことができるが、必須ではない。
【0074】
ステップS103において、撮影画像中から抽出した多数の特徴点のローカル座標系における位置が求まる。スケールと基準点が与えられていない場合、ステップS103により、カメラの位置と姿勢(これらはカメラが移動中に得られた撮影画像の数だけある)と多数の特徴点の相対的な三次元関係が得られる。
【0075】
次に、初期値合わせを行う(ステップS104)。この処理は、
図3の初期値合わせ部304において行われる。この初期値合わせを行うことで、ローカル座標系上におけるカメラ101の位置・時刻と、グローバル座標系上におけるカメラ101の位置・時刻の凡その関係が与えられる。
【0076】
次に、数1と数2を用いた調整計算(時系列を考慮した調整計算)を行う(ステップS105)。この調整計算は、カメラ101の側の時刻と、トータルステーション200の側の時刻のズレを考慮した調整計算である。この調整計算により、グローバル座標系におけるカメラ101の位置と姿勢、およびステップS103において得た撮影画像から得た多数の特徴点のグローバル座標系における位置が特定される。この処理は、
図3の時系列を考慮した調整計算部305において行われる。
【0077】
次に、撮影画像から得た特徴点に基づく三次元モデルの作成を行う(ステップS106)。この処理は、
図3の三次元モデル作成部306において行われる。こうして、重機100に搭載したカメラ101が撮影した対象の三次元モデルがグローバル座標系上において得られる。
【0078】
(摘要)
重機100に搭載された状態で移動するカメラ101が撮影した撮影画像の画像データを得、カメラ101に対して固定された特定の部分である反射プリズム102の位置がトータルステーション200により測定され、測定された反射プリズム102の位置に基づきカメラ101の位置を算出し、反射プリズム102の位置の測定時刻とカメラ101の撮影時刻にはズレがあり、前記カメラ101の位置の算出では、カメラ101の位置を未知数とした調整計算が行われ、この調整計算は、前記時刻のズレに対応した補正量が加えられた反射プリズム101の測定位置に基づいて行われる。
【0079】
(優位性)
本実施形態によれば、重機100に搭載したカメラ101の撮影画像に基づく撮影対象の三次元モデルの作成において、カメラ101の撮影時刻と反射プリズム102の測位時刻が同期していなくても、その影響による誤差を抑えることができる。このため、移動体に搭載したカメラの撮影画像に基づく三次元データの精度を高めることができる。
【0080】
2.第2の実施形態
重機100にGNSS位置測定装置を搭載し、このGNSS位置測定装置を用いて重機上のカメラ101の位置を特定することもできる。この場合、反射プリズムとトータルステーションを不要とすることができる(勿論、併用も可能である)。GNSSを用いた位置の測定は誤差を含むが、調整計算によりGNSSの誤差を抑えることができる。調整計算では、
図1の反射プリズム102の代わりに、GNSS位置測定装置のアンテナが設置されているとして計算が行われる。また、RTK法等の相対測位を用いることで、測定誤差を抑えることができる。特徴点の取り扱い、各種の標定、その他データの処理に関しては、第1の実施形態の内容と同じである。
【符号の説明】
【0081】
100…重機、101…カメラ、102…反射プリズム、110…回転部、120…ベース部、151…アーム部、152…バケット、200…トータルステーション、300…演算装置。