説明

モデリング装置およびカメラパラメータの計算方法

【課題】 本発明の課題は、デジタルカメラで手軽にデータどりができ、撮影時に対象物のデータ欠如があってもモデリングが可能な3次元モデリング装置を提供することにある。
【解決手段】 本発明のモデリング装置は、カメラ1のカメラパラメータを取得する第1の手段2eと、複数の写真画像に撮影された円柱の稜線を指定するための稜線指定手段2dと、複数の写真画像に撮影された1つの円柱に対して稜線指定手段2dによって指定された3本以上の稜線上の点から、該円柱に対応した既算出のパラメータから作成した仮想上の円柱を前記複数の写真画像に射影した稜線上の対応点までの距離の積算値が最小になる条件より、前記複数の写真画像を撮影したカメラ1のカメラパラメータおよび前記撮影された円柱をモデリングするための円柱パラメータを算出し、該カメラパラメータおよび円柱パラメータを用いて3次元の円柱モデルを生成するモデル生成手段2e、2fとを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、円柱状の物体を仮想空間上にモデリングするモデリング装置およびカメラパラメータの計算方法に関する。
【背景技術】
【0002】
従来、化学プラントなどにおいてメンテナンスを効率的に行う必要から、化学プラントにおけるパイプを中心とした部材を計測して、3次元モデルを生成することが要求されている。
【0003】
その方式には、メジャーにより実測する方法や、レーザーを使用して3次元計測を行う方式などがある。
【0004】
なお、本願発明に係る文献公知発明等として下記のものがある。
【特許文献1】特開2004−170277号公報
【非特許文献1】コンピュータビジョン −視覚の幾何学− 佐藤淳著 コロナ社
【発明の開示】
【発明が解決しようとする課題】
【0005】
ところで、上述のメジャーにより実測する方法やレーザーを使用して3次元計測を行う方式は、データの収集、整理に膨大な作業量を要しモデリングが難しく、作業時間およびコストがかかるという問題がある。
【0006】
本発明は上記実状に鑑み、デジタルカメラで手軽にデータどりができ、撮影時に対象物のデータ欠如があってもモデリングが可能な3次元モデリング装置の提供を目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するべく、本発明の請求項1に関わるモデリング装置は、カメラの姿勢、位置、および焦点距離等のカメラパラメータを取得する第1の手段と、複数の写真画像に撮影された円柱の稜線を指定するための稜線指定手段と、複数の写真画像に撮影された1つの円柱に対して前記稜線指定手段によって指定された3本以上の稜線上の点から、該円柱に対応した既算出のパラメータから作成した仮想上の円柱を前記複数の写真画像に射影した稜線上の対応点までの距離の積算値が最小になる条件より、前記複数の写真画像を撮影したカメラの姿勢、位置、および焦点距離等のカメラパラメータおよび前記撮影された円柱をモデリングするための軸ベクトル、位置および半径等の円柱パラメータを算出し、該カメラパラメータおよび円柱パラメータを用いて3次元の円柱モデルを生成するモデル生成手段とを備えることを特徴としている。
【0008】
本発明の請求項2に関わるモデリング装置は、請求項1に記載のモデリング装置において、カメラパラメータを取得する第1の手段は、各写真画像間に共通に映っている8点以上の特徴点を用いるとともにカメラパラメータを未知数とする8つ以上の連立方程式を解いて、前記カメラパラメータを求めることを特徴としている。
【0009】
本発明の請求項3に関わるモデリング装置は、請求項1に記載のモデリング装置において、円柱の稜線を利用してカメラパラメータを算出するときに、請求項2のカメラパラメータを取得する第1の手段として利用した特徴点を含めて最適化計算するようにしたことを特徴としている。
【0010】
本発明の請求項4に関わるモデリング装置は、請求項1に記載のモデリング装置において、カメラパラメータを取得する第1の手段として、ロボットアーム等のカメラの位置姿勢を制御したとき、その制御パラメータからカメラの位置・姿勢のパラメータを算出することを特徴としている。
【0011】
本発明の請求項5に関わるモデリング装置は、請求項1に記載のモデリング装置において、前記稜線指定手段により、前記1つの円柱に対し2枚以上の写真画像に含まれる該円柱の4本以上の稜線を指定し、前記モデル生成手段により、前記指定した4本以上の稜線を用いて1つの3次元の円柱モデルを生成することを特徴としている。
【0012】
本発明の請求項6に関わるモデリング装置は、請求項1に記載のモデリング装置において、前記稜線指定手段により、前記1つの円柱に対し2枚以上の写真画像に含まれる3本の該円柱の稜線を指定し、前記モデル生成手段により、前記指定した3本の円柱の稜線を用いて2つの3次元の円柱モデルを生成し、前記2つの3次元の円柱モデルの中から適切な円柱を選択するための選択手段を有することを特徴としている。
【0013】
本発明の請求項7に関わるモデリング装置は、請求項1に記載のモデリング装置において、円柱の長さ(両端)を決定するときに、指定された稜線全てを含む中で最短になるように決定されることを特徴としている。
【0014】
本発明の請求項8に関わるモデリング装置は、複数の写真画像に撮影された1つの円柱に対し3本以上の稜線を指定することで3次元の円柱モデルを生成する円柱モデリングにおいて、複数の写真画像に撮影された1つの円柱に対する3本以上の稜線上の点から、該円柱に対応した既算出のパラメータから作成した仮想上の円柱を前記複数の写真画像に射影した稜線上の対応点までの距離の積算値が最小になる条件より、前記複数の写真画像を撮影したカメラの姿勢、位置、および焦点距離等のカメラパラメータを算出することを特徴としている。
【発明の効果】
【0015】
以上、詳述した如く、本発明の請求項1〜4に関わるモデリング装置によれば、デジタルカメラで手軽にデータどりができ、モデリング時間を減少することができる。
【0016】
また、精度の高いカメラパラメータおよび円柱パラメータを算出することが可能であり、円柱形状のモデリングを精度高く行なえる。
【0017】
本発明の請求項5に関わるモデリング装置によれば、4本以上の稜線を指定することにより、1つの3次元の円柱モデルを特定して生成することが可能である。
【0018】
本発明の請求項6に関わるモデリング装置によれば、2つの3次元の円柱モデルを生成でき、該2つの3次元の円柱モデルのうちから適切な円柱を選択することが可能である。
【0019】
本発明の請求項7に関わるモデリング装置によれば、円柱の長さは、少なくとも両端1箇所づつ何れかの画像において稜線が指定されていれば決定することが可能である。
【0020】
本発明の請求項8に関わるモデリング装置によれば、カメラパラメータの最適化計算の中に誤差評価を組み込むことにより、円柱形状のモデリングにおけるカメラパラメータを精度よく且つ安定して得ることができる。
【発明を実施するための最良の形態】
【0021】
以下、本発明の実施形態について添付図面を参照して説明する。
【0022】
本発明は、化学プラント工場のような大規模な設備から比較的小規模な装置までの円柱のモデリングを、写真撮影により行うモデリング装置およびその計測システムである。
【0023】
図1は、本発明を適用したモデリングシステムの概略構成図である。図中の1は対象物を撮影するデジタルカメラ(以下、カメラと称す)であり、また、3は主なモデリング対象となる計測対象のプラントであり、プラント3は、図1に示すように、複数の位置からカメラ1により撮影される。そして2はカメラ1により撮影された画像からモデルデータを生成する画像処理・3次元計測演算部であるデータ処理用パソコンである。また、画像表示部4には、撮影した写真画像およびモデリング画像等のモデリングのための各種の表示がなされる。
【0024】
なお、カメラ1は、ロボットアーム等で撮影の位置および姿勢を制御し、計測システムでその制御パラメータからカメラの位置・姿勢のパラメータを算出することが可能である。
【0025】
図2は、画像処理・3次元計測演算部のデータブロック図である。図2に示すように、カメラ1などの撮像部で写真を撮影し、この画像データを画像データ管理部2aで受け取り管理する。画像表示部4では、写真画像を拡大・縮小表示し、オペレータが特徴点や稜線を正確にキーボード(図示せず)から入力できるようにする。そして、対応点入力部2bにて写真画像に共通に写っている特徴点をオペレータのキーボードからの入力により設定し、対応点管理部2cにてこの特徴点の仮想空間上の2次元座標値の対応点の対応リストを管理する。また、円柱の稜線入力部(稜線指定手段)2dも同様にオペレータのキーボードからの入力により円柱の稜線をその仮想空間上の2次元ベクトル等により設定する。カメラ解析3次元座標計算部(第1の手段、モデル生成手段)2eでは、写真画像と対応点リストからカメラ1の外部パラメータ(位置、姿勢)と内部パラメータ(焦点距離、歪み、光軸中心)を計算する。また、カメラ解析3次元座標計算部2eでは、円柱モデリング部(モデル生成手段)2fからのデータ(円柱データと稜線データ)と先ほどの対応点データを全て使って外部パラメータおよび内部パラメータから成るカメラパラメータを計算する。円柱モデリング部2fでは、稜線データと算出したカメラパラメータからモデリング対象の円柱モデルを計算する。
【0026】
そして、CADデータ変換・出力部2gにてIGESやCATIA、SolidWorksなど各CADソフトに対応したCADデータに変換しファイルに出力する。
【0027】
なお、上述の画像データ管理部2a、対応点入力部2b、対応点管理部2c、稜線入力部2d、カメラ解析3次元座標計算部2e、円柱モデリング部2f、およびCADデータ変換・出力部2gは、データ処理用パソコン2内に格納されている。
【0028】
本発明では、まず、数m〜50m四方のモデリング対象の装置乃至プラント設備等を全ての部材が複数の写真に写るように、様々な方向から写真撮影を行う。
【0029】
このように撮影された写真画像は、数十枚から時には1000枚に及ぶ。
【0030】
これらの撮影された画像に対し、カメラ1のパラメータ(撮影位置、撮影姿勢(回転)、焦点距離等)を画像内の特徴点の対応より求め、そして、画像間に共通する部材の特徴点やエッヂ、稜線に、円柱のプリミティブモデルを当てはめることで、設備のモデリングを行い、その結果をCADなどのシステムヘ送るとともに、部材間の寸法などを算出し、コンピュータ上での計測を可能にする。
【0031】
本モデリングにおいては、実物を撮影するカメラ1の内部パラメータ、外部パラメータ(後述)を求める作業を繰り返してパラメータの計算精度を向上させ、実物の仮想空間上へのモデリング精度を向上させて、実物を仮想空間上にモデリングする。
【0032】
次に、モデリングの処理工程について、図3に示すフローチャートを用いて順を追って説明する。 なお、図3は、モデリングの処理工程の流れを示すフローチャートである。
【0033】
1. カメラ1の内部パラメータ(収差など)の事前計測(図3のステップ1)
まず、図4に示すように、撮影対象の諸条件が予め明確なキャリブレーションボードの平面チャートCを用いて、測定に用いるカメラ1の内部パラメータ(焦点距離、画像中心、歪補正パラメータなど)の事前計測を行う。後述のカメラパラメータの計算において、カメラ1の内部パラメータを求めることも出来るが、事前にカメラ1の内部パラメータを求めておくことで後述のカメラパラメータの計算が安定して且つ精度良く計算できるようになる。
【0034】
カメラ内部パラメータの求め方は、図4に示すように、平面チャートCを矢印に示す複数方向からカメラ1で撮影して、このデータを基にカメラ1の内部パラメータである焦点距離、光軸中心、歪補正係数を求める。
【0035】
なお、基本的な考え方は、「A Flexib1e New Technique for Camera Ca1ibration」(Zhengyou Zhang
Microsoft Research)にある。また、この翻訳に相当する解説が「写真から作る3次元CG」(徐剛著 近代科学社)の62〜64頁にある。
【0036】
このキャリプレーションは、計測している点が全て平面チャートCの同一平面上にあることを利用して計算している。
【0037】
撮影する方向は、図4に示すように、大よそ正面と上下左右に30度ほど傾いた角度の複数箇所からカメラ1で撮影を行う。 撮影方向は、あくまで様々な向きから撮影するために指定しているもので、キャリブレーションの計算の中で、正確なカメラ1の向きと位置は計算されるようになっている。
【0038】
入カデータ、既知データ、および出カデータは、下記の通りである。
【0039】
入カデータ : 異なる方向から平面チャートCをカメラ1で撮影した5枚程度の画像
このとき、カメラ1の内部パラメータの一つである焦点距離、すなわちズームとピントは固定である。
【0040】
既知データ : 平面チャートCに描かれた円の中心の平面内での2次元座標値
出カデータ : カメラ1の内部パラメータである焦点距離、画像中心、歪補正パラメータ、および外部パラメータであるカメラ1撮影位置、向き
次に、上述の出カデータを得るための計算を説明する。
【0041】
記号としては、カメラ内部パラメータ、カメラ外部パラメータ、プロジェクションマトリックス、および基礎行列、基本行列がある。
【0042】
a. カメラ内部パラメータ
カメラ内部パラメータとは、カメラ1に固有の内部パラメータをいう。
【0043】
具体的には、以下の焦点距離、および光軸とフィルム面とが交わる座標である光軸中心座標などをいう。
【0044】
f : 焦点距離(どの向きにも同じとしたとき)
x,fy : X軸とY軸方向の焦点距離(X軸(水平)方向とY軸(垂直)方向の焦点距離が異なる場合)
(uo,vo) : 光軸中心座標
s : スキュー(画像傾き)
【数1】

【0045】
k1,k2 : 歪補正係数
b. カメラ外部パラメータ
カメラ外部パラメータとは、カメラ1の基準位置からの相対位置を表すパラメータをいう。この相対位置は、x軸、y軸、z軸の各軸廻りの回転と、x軸、y軸、z軸の各軸に沿った並進移動で表される。
【0046】
R : 回転行列
t : 並進移動ベクトル
【数2】

【0047】
c. プロジェクションマトリックス
【数3】

【0048】
【数4】

【0049】
d. 基礎行列、基本行列
【数5】

【0050】
m,m′は3次元点Xを射影した点。Fを基礎行列(Fundamenta1Matrix)といい、こ
の式をエピポーラ方程式という。
【0051】
【数6】

【0052】
という行列Tを定義したとき、
E=TR
とし、Eを基本行列(Essentia1 Matrix)といい、カメラ外部パラメータで構成される。
【0053】
Eの性質として、Xが各カメラ1に射影されたときの3次元空間座標での点をx′,xとすると
【数7】

【0054】
が成り立ち、これもエピポーラ方程式と呼ぱれる。
【0055】
【数8】

【0056】
となる。
【0057】
上述の記号等を用いたカメラ内部パラメータを求める計算は、以下の通りである。
【0058】
【数9】

【0059】
【数10】

【0060】
となる。n枚の画像について(4)を積み重ねると、
【数11】

【0061】
となり、3枚以上の画像がある場合、bの要素6つについて解が得られる。
【0062】
具体的には、VTVの最小固有値に対応する固有ベクトルとして求められる。Bが求められると、Aの要素であるカメラ内部パラメータは以下のように求められる。
【0063】
【数12】

【0064】
2.設備の撮影(図3のステップ2)
(第1ステップ)で内部パラメータを求めたカメラ1を用いて、例えば、仮想空間上にモデリングする対象のプラント設備の撮影が行なわれる。
【0065】
撮影は、求めた内部パラメータが変更されないように、上述の平面チャートCを撮影したときと同じレンズの状態で行う。
【0066】
撮影のポジションは、出来る限り様々な方向から撮影する。同じ部品を異なる方向から撮影する必要がある。 というのは、微小な移動で撮影しても誤差が測定値に対して相対的に大きくなるため、カメラパラメータ、3次元座標値を精度良く求めることは出来ないからである。
【0067】
そのため、基本的には、カメラ1の位置を変更して撮影する場合に同一部品の共通に撮影できる部分を出来る限り大きく確保できる範囲で、カメラ1位置を大きく移動しながら撮影していくことになる。
【0068】
ここで、プラント設備全体のモデリングを行うときの撮影は、共通に画像に写っているオーバーラップ部分を十分に確保し徐々に移動して行うことになる。 というのは、撮影位置の基準位置からの相対的位置、すなわち各撮影位置の外部パラメータ(後述)を把握するためである。
【0069】
3.画像のグループ化(図3のステップ3)
大規模な設備のモデル化は、カメラ1で撮影する枚数が過大、例えば数10mのプラント設備を対象とする場合には、写真の撮影枚数が1000枚にもなる。
【0070】
そのため、設備を部分に分け、それぞれの部分についてモデリングを行い、最後に統合処理する。これにより、複数のオペレータにより並列処理的に作業を進めることが可能となり、作業効率の向上が図れる。
【0071】
設備を部分ごとのグループに分ける際に、重要なことは隣り合うグループは、共通の画像を保持し、2つのグループを接続するための情報が存在することである。
【0072】
このように、部分のモデリングが十分な画像群と隣接するグループとの共通画像を持つ画像群とを加えた画像群を1つのグループとして構成し、全てのグループを合わせると設備全ての輪郭がモデリングされるようにグループを生成する。
【0073】
以下、この画像のグループ化の過程について、図5を用いて説明する。
【0074】
例えば、図6には画像のグループ化の例として、プロジェクト1、プロジェクト2を示している。
【0075】
まず、カメラ1で撮影するメイン画像を設定する(図5のステップ1)。 このグループが、プロジェクト1の場合、まず、メイン画像g10を設定する。
【0076】
続いて、画像を追加する処理として、メイン画像g10に写された8点以上の特徴点を共通に撮影できる画像g11および画像g12を撮影し追加する(ステップ2)。
【0077】
ここで、特徴点を8点とするのは、カメラ内部パラメータとして、焦点距離f(x方向とy方向の焦点距離は同じとする)、光軸中心のx方向座標u0、y方向座標v0の3つのパラメータを求め、加えて、この画像を撮影するカメラ1の位置と向きを特定するためのカメラ外部パラメータとして、x軸廻りの回転角xθ、y軸廻りの回転角yθ、z軸廻りの回転角zθの3つの外部パラメータと、x軸方向の平行移動t1、y軸方向の平行移動t2の2つの外部パラメータとで5つの外部パラメータを求め、合計8つのパラメータを求めることになるので、少なくとも8つの方程式を立てる必要があるからである。
【0078】
こうして、接続する画像の追加設定では、2つの画像間で対応する点を8個以上指定していき、該8個以上の特徴点を有するような画像を設定し接続する。
【0079】
言い換えれば、画像を追加する接続、例えばメイン画像g10と画像g11との接続(またはメイン画像g10と画像g12との接続)、とは、2つの画像g10、g11(またはg10、g12)を撮影した相対的な位置関係が計算できる対応する点については、3次元の場所の計算ができることを意味する。
【0080】
つまり、2つの画像g10、g11(またはg10、g12)間で、共通の8点以上の対応点があるときにのみカメラパラメータの計算が可能となるため、画像を追加する接続には8点以上の対応点が必要である。
【0081】
続いて、画像をさらに追加する場合(ステップ3)には、例えば図6の画像g11に画像g13を接続する場合には、画像g11、画像g13間で(ステップ2)と同様な処理を行う。
【0082】
すなわち、一つ前の画像g11との間に共通する少なくとも8つの特徴点を有する画像を画像g13とする。
【0083】
以下、画像g11、g14間、或いは、画像g13、g14間、或いは、画像g14、g15間、或いは、画像g14、g16間も同様にして、2つの画像の接続を行うことができる。
【0084】
こうして、画像の追加が終了する(ステップ3)と、接続した画像のグループを1つのプロジェクト、例えばプロジェクト1として、コンピュータに登録する(ステップ4)。
【0085】
続いて、画像の新規グループを作成する(ステップ5)場合には、上述の (ステップ1)〜(ステップ4)の処理を繰り返す。

【0086】
例えば、図6に示すように、プロジェクト2の画像のグループ化を行う場合には、図5に示すように、まず、メイン画像g20 を設定し(ステップ1)、以下、上述と同様に、メイン画像g20と画像g21間の接続、また、メイン画像g20と画像g22間の接続、また、画像g21と画像g23間の接続、また、画像g21と画像g24間の接続、また、画像g24と画像g25間の接続、また、画像g22と画像g26間の接続を行う。

【0087】
このようにして、任意の数の画像のグループ化を行うことができる。
【0088】
こうしてグループ化した画像のグループを統合するには、例えば、図6に示すプロジェクト1の画像グループとプロジェクト2の画像グループとを統合するには、プロジェクト1の画像g12とプロジェクト2の画像g21との間に共通する少なくとも8つの特徴点が、画像g12、g21中にそれぞれ有るようにして接続し、また、プロジェクト1の画像g16とプロジェクト2の画像g25との間に共通する少なくとも8つの特徴点が、画像g16、g25中にそれぞれ有るようにして接続する。
【0089】
4.画像の特徴点の抽出、対応付け(図3のステップ4)
次に、カメラ1で撮影したグループ化した各画像の特徴点の抽出、対応付けを行う。
【0090】
画像における特徴点は、画像中の部品の角の部分や文字、模様などポイントが特定できる部分を選択し、撮影位置が異なる画像からも同一点と認識できるポイントを特徴点として選択する必要がある。 すなわち、画像のグループ化(図3のステップ3)において、前記のような特徴点を共通に有する画像間で画像の接続を行なう。
【0091】
こうして、特徴点の対応付けを接続した画像間で行うが、このとき対応付ける特徴点の和は8点以上で多いほど、内部パラメータおよび外部パラメータの精度が高く求まり、仮想空間上のモデリングの精度が高くなる。
【0092】
また、測定誤差を低くし精度を高めるため、局所的或いは同一平面上に特徴点を選択するのではなく空聞的に広範囲にとり、測定値に対する誤差を小さくすることが肝心である。
【0093】
5.グループ化された撮影画像の特徴点の対応からのカメラパラメータの算出(図3のステップ5)
8点以上の特徴点の対応付けが行われた段階で、画像の接続関係の設定が行われる。
【0094】
画像の接続関係は、1枚の画像を基本としたツリー構造を定義している(図6参照)。
【0095】
基準位置からの各画像を撮影したカメラ1の回転・並進移動位置を表すカメラ外部パラメータは、まず、初期値として接続関係のある2枚の組についてその相対的な回転・並進位置が計算される。
【0096】
そして、全ての画像のカメラ1回転・並進位置を全体での最適化を行い、基本とした画像からの相対位置で求める。これは、いわゆるバンドル調整という手法に相当する。(コンピュータビジョンー視覚の幾何学一 佐藤淳薯 参照)。
【0097】
カメラ1のセルフキャリブレーションは、以下の図7のステップを経て計算される。(「コンピュータビジョン」 佐藤淳 著 93頁〜96頁参照)
まず、2枚の画像間において、8点以上の特徴点を対応付ける(図7のステップ1)。
【0098】
続いて、8点対応からの基礎行列の算出(図7のステップ2)を以下のように行う。
【0099】
基礎行列は、エピポーラ幾何から下記の式を満たすものである。
【0100】
【数13】

【0101】
各要素を陽にして表すと、
【数14】

【0102】
さらに、
【数15】

【0103】
Fの未知数は9個であるが、定数倍の不定性があるため自由度は8である。1組の対応から(2)式ができるため、8個以上の対応点があれば全ての未知数が解ける。
【0104】
【数16】

【0105】
この式を
【数17】

【0106】
とおくと、‖f‖=1の条件下でfは、行列MTMの最小固有値に対応する固有ベクトルとして求めることができる。
【0107】
続いて、基礎行列から基本行列を算出する。(図7のステップ3)
【数18】

【0108】
あらわす。tとRXとX′は同一平面状にあるから、
X′TTRX=0 (4)
となる。内部パラメータAを2枚の画像で共通とすると、X=A-1uであるから(4)式は
u′T-TTRA-1u=0
と表される。従って、 F=A-TTRA-1 であり E=TRとおくと
E=ATFA
となる。 平面を使ったカメラキヤリブレーションによりカメラ内部パラメータは求められているので、Aは既知である。さらに(ステップ2)により基礎行列Fが求まっているので、Eが求まる。
【0109】
続いて、(ステップ4)として、基本行列をカメラ内部パラメータと外部パラメータに分離し、回転行列(R)と並進行列(T)を算出する。
【0110】
定義より、ET=RTTとなる。 さらにTTt=0であるからRTTt=0となり、従って、ETt=0であるから
【数19】

【0111】
これを満たすtは、EETの最小固有値に対応する固有ベクトルとして求めることができる。 tが求まればTも求まるため、E=TRよりR=T-1Eとして求めることができる。
【0112】
ただし、Rは回転行列であるから det(R)=1 かつ RTR=Iとなるように修正する。
【0113】
これは、Rを次のように特異値分解し
R=VΛUT (ただし、V、Uは直交行列で、Λは非負の対角要素(特異値)とならべた対角行列)とし、V、Uを求め、
【数20】

【0114】
とで回転行列Rが求まる。
【0115】
これらの結果より、射影行列は、P=A(R│t)として求められる。
【0116】
6. 円柱プリミティブの当て嵌め (図3のステップ6)
円柱のあてはめは次のようにして行う。 もっとも標準的な手法は、1つの円柱の稜線が2本とも写っているカメラパラメータが図3のステップ5までに算出されている2枚の画像について、各画像の円柱の2本の稜線をそれぞれ直線で指定する。この結果、4本の稜線が指定されたことになる。
【0117】
このとき、求められたカメラパラメータおよび指定された4本の円柱の稜線に誤差がなければ、1つの円柱が一意に決定される。(図8参照) このとき、カメラパラメータも指定された稜線も誤差を含んでいる。 このため、最適化法を用い、最も適切な円柱を求める。 最適化は、生成された円柱を各画像に射影したときに得られる稜線と、あらかじめ画像から指定されている撮影された稜線との比較により行う。
【0118】
この比較は、画像から指定されている撮影された稜線上の点から既算出のパラメータによりモデリングされた仮想モデルを該画像に射影されたときに得られる稜線までの距離の積算値により得られる。 4本の稜線に対し同様に計算しその合計が最小になるような円柱を求めることで、最適な円柱が求められる。2枚以上が画像にわたり4本以上の稜線が得られた場合は、同様にして全ての距離の合計を最小にすることで最適な円柱を得ることができる。
【0119】
次に、図9に示すように、1枚の画像に1つの円柱の稜線が2本ともうひとつの画像に同じ円柱の稜線が1つのみ写っている場合について説明する。
【0120】
誤差がまったくない場合でも円柱は2つの可能性がある。従って、ユーザーにどちらの円柱を生成するか選択させるようにする。選択の方法には、例えば稜線の引く方向を読み取り稜線のプラスの方向に向かって右側の円柱を選択する方法などがある。そして、3本の稜線について、先述の4本の稜線と同様の計算を行い、最適な円柱を求める。3枚の画像に対し1つの稜線が1本づつ撮影されているときも同様に2つの可能性があるためユーザに選択させた上で、最適な円柱を計算することになる。
【0121】
以下、円柱の計算方法の一例について、図11を用いて説明する。
【0122】
図10に示すように、円柱の稜線が各画像に射影される。
【0123】
まず、撮影された画像上の円柱の稜線を3本以上入力する(図11のステップ1)。
【0124】
続いて、次のようにして初期値となる円柱を計算する(図11のステップ2)。
【0125】
円柱の稜線が各画像に射影されており、この射影稜線を含み円柱に接する平面を
ix+biy+ciz+di=0 (1)
とすると、このとき円柱の軸の方向ベクトルをV(v123)とすると、円柱に接する平面と軸は平行であるため、平面の法線(aiii)と軸の方向ベクトルは直交する。従って、
【数21】

【0126】
とすると、 MTMV=0となり、MTMの最小固有ベクトルがVの解となる。
【0127】
また、円柱の軸上の点をP(p123)とすると、この点から各射影円柱の稜線を含む平面までの距離は同じである。稜線を含む平面までの距離は、
i1+bi2+ci3+di (3)
となる。平面の法線ベクトルが、円柱側を向くようにした場合は、以下の式が成り立つ。
【0128】
【数22】

【0129】
それぞれK,Dとおき、Kの擬似逆行列をK-とおくとP=K-Dとなり、最小自乗法によりPが求まる。
【0130】
さらに、Pから平面までの距離は、円柱の半径に相当する。従って、全ての平面までの距離の平均を円柱の半径とすることができる。
【0131】
続いて、初期値として計算された円柱を使用し、最適化計算(マーカート法)を用いて最適化を図る(図11のステップ3)。
【0132】
円柱のパラメータは、3次元軸方向ベクトル、半径、位置、長さである。
【0133】
評価値は、射影画像面上でのユーザ設定稜線と仮想円柱の射影稜線の距離の積算値である。
【0134】
この評価値の最小化計算、すなわちマーカート法による繰り返し計算を行い、円柱のパラメータである3次元軸方向ベクトル、半径、位置、長さの最適化を図る。
【0135】
7. 円柱の稜線を含めたカメラパラメータの再計算 (図3のステップ7)
特徴点の対応から求められたカメラパラメータは、対応点の数が十分に、なおかつ十分に空間的に広く取られている場合には高い精度で得られているが、不十分な場合は誤差が多く含まれ精度が劣化している。
【0136】
精度が劣化しているカメラパラメータで円柱を求めた場合、求められた円柱もまた低い精度で求められている。
【0137】
そこで、カメラパラメータ:カメラ1姿勢(回転)、カメラ1位置、カメラ1の焦点距離 と、円柱のパラメータ:円柱の軸ベクトル、円柱の位置、円柱の長さ、円柱の半径 の両方を含んだ最適化計算を行う。
【0138】
図12に示すように、6.において計算した円柱の最適化計算をカメラパラメータの計算に組み込み(図12のステップ1)、より高い精度でのカメラパラメータの算出が可能になり、同時に円柱も高い精度で最適化計算が行われる。
【0139】
続いて、(図12のステップ2)の処理は下記の如く行なわれる。
【0140】
カメラパラメータの最適化は、3次元空間中の特徴点Xiがj番目の画像上で得られた特徴点、すなわち撮影された画像上の特徴点をmijとし、m1jからminにより仮想的に求められた3次元空間中のポイントX′iとしたとき、このポイントを各画像に射影したときの各画像上のポイントをm′ijとすると、最適化は、
【数23】

【0141】
となり、(2)の式のJを最小にするPjとX′を求めることになる。
【0142】
この手法は、一般的にバンドル調整(Bundle Adjustment)と呼ばれ、各画像を撮影したカメラパラメータP(すなわち、カメラ1の内部パラメータと外部パラメータ)及び3次元空間中のポイントX′をパラメータとする非線形の最適化問題となる。 ここで、円柱の最適化も加えると(2)式は、以下のようになる。
【0143】
撮影された画像に写っている円柱の稜線をlijとしその端点をt1ij、t2ijとすると、l1jからlinにより求められた3次元空間中の円柱をL′iとしたとき、この円柱を各画像に射影したときの各画像上の稜線の端点t1ij、t2ijからの垂線を下ろした点をt′1ij、t′2ijとすると、
【数24】

【0144】
となり、(4)の式のJを最小にするPjとL′iを求めることになる。
【0145】
これにより、円柱を含めたカメラパラメータの再計算を行うことができ、精度の高いカメラパラメータおよび円柱パラメータを求めることができる。
【0146】
続いて、求めた精度の高いカメラパラメータおよび円柱パラメータで既計算のカメラパラメータと円柱パラメータを更新し、仮想空間上で再描画を行う(図12のステップ3)。
【0147】
上記構成によれば、従来のプラントのモデリング手法に比べ、デジタルカメラ1で手軽にデータどりができ、撮影のとき多少のオクルージョンによる対象物のデータ欠如があっても、モデリングができるため、トータルのモデリング時間が減少できる。
【0148】
また、写真測量の技術を応用し、複数枚の写真から3次元モデルを生成し、計測を行う方式を採用するので、例え、円柱形状の両側の稜線が見えていなくても、複数の写真にわたって、3本以上の稜線を指定することで円柱モデルを生成できる。 また、円柱の長さの指定も指定した稜線の最大長を取るようになっており、簡単にできる。 また、生成された円柱をカメラパラメータの最適化に使用することで、カメラパラメータの計算精度、ロバスト性が向上する。
【0149】
従って、実空間上の円柱(既設のプラント設備の配管等)を、高い精度で仮想空間上の円柱(仮想空間上のプラント設備の配管等)としてモデリングすることができる。
【図面の簡単な説明】
【0150】
【図1】本発明に係る実施例のモデリングシステムを示す概略構成図。
【図2】実施例の画像処理・3次元計測演算部のデータブロック図。
【図3】本発明におけるモデリングの処理の流れを示すフローチャート。
【図4】本発明のキャリブレーションボードの平面チャートの撮影状態を示す図。
【図5】画像のグループ化の処理の流れを示すフローチャート。
【図6】画像のグループ化の1例を示す図。
【図7】セルフキャリブレーションによるカメラパラメータ算出の処理手順を示すフローチャート。
【図8】4本の円柱の稜線によって1つの円柱が一意に決定されることを示す図。
【図9】3本の円柱の稜線によって2つの円柱が一意に決定されることを示す図。
【図10】円柱の稜線が1つの画像に射影された状態を示す図。
【図11】円柱の当てはめ計算を示すフローチャート。
【図12】カメラパラメータと円柱のパラメータの両方を含んだ最適化計算を示すフローチャート。
【符号の説明】
【0151】
1…デジタルカメラ(カメラ)、
2d…稜線入力部(稜線指定手段)、
2e…カメラ解析3次元座標計算部(第1の手段、モデル生成手段)、
2f…円柱モデリング部(モデル生成手段)。

【特許請求の範囲】
【請求項1】
カメラの姿勢、位置、および焦点距離等のカメラパラメータを取得する第1の手段と、
複数の写真画像に撮影された円柱の稜線を指定するための稜線指定手段と、
複数の写真画像に撮影された1つの円柱に対して前記稜線指定手段によって指定された3本以上の稜線上の点から、該円柱に対応した既算出のパラメータから作成した仮想上の円柱を前記複数の写真画像に射影した稜線上の対応点までの距離の積算値が最小になる条件より、前記複数の写真画像を撮影したカメラの姿勢、位置、および焦点距離等のカメラパラメータおよび前記撮影された円柱をモデリングするための軸ベクトル、位置、および半径等の円柱パラメータを算出し、該カメラパラメータおよび円柱パラメータを用いて3次元の円柱モデルを生成するモデル生成手段と
を備えることを特徴とするモデリング装置。
【請求項2】
請求項1において、カメラパラメータを取得する第1の手段は、各写真画像間に共通に映っている8点以上の特徴点を用いるとともにカメラパラメータを未知数とする8つ以上の連立方程式を解いて、前記カメラパラメータを求めることを特徴とするモデリング装置。
【請求項3】
請求項1において、前記円柱に対応した既算出のパラメータから作成した仮想上の円柱を前記複数の写真画像に射影した稜線上の対応点までの距離の積算値と、各写真画像間に共通に映っている特徴点の既算出のパラメータから作成した仮想上の3次元点を前記複数の写真画像に射影した点の特徴点までの距離の総和を足した値が最小になる条件より、複数の写真画像を撮影したカメラの姿勢(回転)、位置、および焦点距離等のカメラパラメータおよび前記撮影された円柱をモデリングするための軸ベクトル、位置、および半径等の円柱パラメータを算出することを特徴とするモデリング装置。
【請求項4】
請求項1において、カメラパラメータを取得する第1の手段は、ロボットアーム等でカメラの位置および姿勢を制御し、該制御パラメータからカメラの位置・姿勢のパラメータを算出することを特徴とするモデリング装置。
【請求項5】
前記稜線指定手段により、前記1つの円柱に対し2枚以上の写真画像に含まれる該円柱の4本以上の稜線を指定し、
前記モデル生成手段により、前記指定した4本以上の稜線を用いて1つの3次元の円柱モデルを生成する
ことを特徴とする請求項1に記載のモデリング装置。
【請求項6】
前記稜線指定手段により、前記1つの円柱に対し2枚以上の写真画像に含まれる3本の該円柱の稜線を指定し、
前記モデル生成手段により、前記指定した3本の円柱の稜線を用いて2つの3次元の円柱モデルを生成し、
前記2つの3次元の円柱モデルの中から適切な円柱を選択するための選択手段を有する
ことを特徴とする請求項1に記載のモデリング装置。
【請求項7】
円柱の長さを決定するに際して、前記写真画像のモデリングされた円柱の指定された全ての稜線を含み、且つ、その中で最短となるように前記円柱の長さが決定される
ことを特徴とする請求項1に記載のモデリング装置。
【請求項8】
複数の写真画像に撮影された1つの円柱に対し3本以上の稜線を指定することで3次元の円柱モデルを生成する円柱モデリングにおいて、
複数の写真画像に撮影された1つの円柱に対する3本以上の稜線上の点から、該円柱に対応した既算出のパラメータから作成した仮想上の円柱を前記複数の写真画像に射影した稜線上の対応点までの距離の積算値が最小になる条件より、前記複数の写真画像を撮影したカメラの姿勢、位置、および焦点距離等のカメラパラメータを算出する
ことを特徴とするカメラパラメータの計算方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate


【公開番号】特開2007−122160(P2007−122160A)
【公開日】平成19年5月17日(2007.5.17)
【国際特許分類】
【出願番号】特願2005−310015(P2005−310015)
【出願日】平成17年10月25日(2005.10.25)
【出願人】(592179403)日揮プランテック株式会社 (2)
【出願人】(505399007)アイディンシステム株式会社 (3)
【Fターム(参考)】