(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-05-19
(45)【発行日】2022-05-27
(54)【発明の名称】画像水平調整装置及びそのプログラム、並びに、図面生成システム
(51)【国際特許分類】
G01C 11/06 20060101AFI20220520BHJP
G06T 7/70 20170101ALI20220520BHJP
H04N 5/232 20060101ALI20220520BHJP
G01C 3/06 20060101ALI20220520BHJP
G01B 11/24 20060101ALI20220520BHJP
【FI】
G01C11/06
G06T7/70 Z
H04N5/232 290
G01C3/06 120S
G01B11/24 K
(21)【出願番号】P 2018083145
(22)【出願日】2018-04-24
【審査請求日】2021-04-21
(73)【特許権者】
【識別番号】000206211
【氏名又は名称】大成建設株式会社
(73)【特許権者】
【識別番号】510134237
【氏名又は名称】株式会社ズームスケープ
(74)【代理人】
【識別番号】110001807
【氏名又は名称】特許業務法人磯野国際特許商標事務所
(72)【発明者】
【氏名】柳本 貴司
(72)【発明者】
【氏名】小野 徹
【審査官】櫻井 仁
(56)【参考文献】
【文献】特開2015-125002(JP,A)
【文献】特開平06-258028(JP,A)
【文献】国際公開第2004/088245(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G01C 11/06
G06T 7/70
H04N 5/232
G01C 3/06
G01B 11/24
(57)【特許請求の範囲】
【請求項1】
画像計測の対象となる画像計測対象空間を撮影したカメラの姿勢及び位置を推定し、水平調整を行う画像水平調整装置であって、
キュービックパノラマ画像において、前記画像計測対象空間の形状を表す箱状オブジェクト、及び、所定の補助線を設定するパラメータ設定手段と、
前記箱状オブジェクトの端点の座標が反映された箱状オブジェクト調整計算基礎式、及び、前記補助線の長さを拘束条件とした補助線調整計算基礎式を非線形最小二乗法で解くことで、前記カメラの姿勢及び位置を計算する調整計算手段と、
前記調整計算手段で計算されたカメラの姿勢及び位置が予め設定された収束条件を満たすか否かを判定し、前記収束条件を満たさない場合、前記調整計算手段に前記カメラの姿勢及び位置の再計算を指令し、前記収束条件を満たす場合、前記調整計算手段で計算されたカメラの姿勢及び位置を出力する収束判定手段と、
前記収束判定手段が出力したカメラの姿勢及び位置を用いて、水平調整を行う水平調整手段と、
を備えることを特徴とする画像水平調整装置。
【請求項2】
前記調整計算手段は、
前記キュービックパノラマ画像を構成する各画像の回転角を表す回転行列M、及び、前記カメラの焦点距離fが含まれる式(A)を用いて、前記パラメータ設定手段で設定された箱状オブジェクトの端点の座標(u,-f,v)を画像座標系における前記端点の座標(x
i,y
i,z
i)に変換し、
【数1】
ローカル座標系における前記カメラから前記端点までの距離L、及び、前記画像座標系における前記カメラから前記端点までの距離lが含まれる式(B)を用いて、前記画像座標系における端点の座標(x
i,y
i,z
i)をカメラ座標系における端点の座標(x,y,z)に変換し、
【数2】
前記ローカル座標系における前記端点の座標(X,Y,Z)、前記カメラの姿勢を表す回転行列R、及び、前記カメラ座標系における前記カメラの位置(x
O,y
O,z
O)が含まれる式(C)を、前記箱状オブジェクト調整計算基礎式として非線形最小二乗法で解き、
【数3】
前記補助線の長さを拘束条件とすることで定まる式(D)と、前記端点の縮尺係数λ及び前記回転行列Rの要素r
31~r
33が含まれる式(E)とを、前記補助線調整計算基礎式として非線形最小二乗法で解く、
【数4】
【数5】
ことを特徴とする請求項1に記載の画像水平調整装置。
【請求項3】
前記パラメータ設定手段は、前記箱状オブジェクトの辺、又は、前記キュービックパノラマ画像上の任意の基準線の少なくとも一方を前記補助線として設定し、
前記調整計算手段は、前記基準線が設定された場合、設定された前記基準線の長さを拘束条件とした前記補助線調整計算基礎式を非線形最小二乗法で解くことを特徴とする請求項1又は請求項2に記載の画像水平調整装置。
【請求項4】
前記収束判定手段は、前記収束条件として、前記カメラの姿勢及び位置がゼロを基準とした所定範囲内に収まるか否かを判定することを特徴とする請求項1から請求項3の何れか一項に記載の画像水平調整装置。
【請求項5】
前記画像計測対象空間は、手動の水平調整が困難な狭隘空間であることを特徴とする請求項1から請求項4の何れか一項に記載の画像水平調整装置。
【請求項6】
コンピュータを、請求項1から請求項5の何れか一項に記載の画像水平調整装置として機能させるためのプログラム。
【請求項7】
画像計測の対象となる画像計測対象空間を撮影するカメラと、画像計測により前記画像計測対象空間の3次元モデルを生成する画像計測装置と、前記画像計測装置が生成した3次元モデルから前記画像計測対象空間の図面を生成する図面生成装置と、を備える図面生成システムであって、
前記画像計測装置は、
請求項1から請求項5の何れか一項に記載の画像水平調整装置と、
前記画像水平調整装置が水平調整したキュービックパノラマ画像を画像計測することで、前記画像計測対象空間の3次元モデルを生成する画像計測手段と、
を備えることを特徴とする図面生成システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、カメラの姿勢及び位置を推定したうえ画像の水平調整を行う画像水平調整装置及びそのプログラム、並びに、その画像水平調整装置を用いる図面生成システムに関する。
【背景技術】
【0002】
従来より、屋内で撮影された全天球画像を元に画像計測を行う手法が提案されている(例えば、特許文献1)。特許文献1に記載の手法は、全天球画像をキュービックパノラマ画像に変換し、手動で水平調整を行った後、三次元画像計測を行うものである。ここで、特許文献1に記載の手法では、レーザ墨出し器、レーザ光源等の計測機材で水平又は垂直な基準線を照射し、手動で水平調整を行う必要がある。また、特許文献1に記載の手法では、計測機材がない場合、屋内の柱及び壁や床の境界を基準線として代用できる。
【0003】
なお、画像計測の際、カメラの姿勢(傾き)が不明なため、カメラが傾いていないと仮定することが多い。だが実際にはカメラが傾いていることが多く、全天球画像も傾いてしまう。このため、水平方向に対するカメラの傾きを推定し、その傾きにあわせてキュービックパノラマ画像を回転させる水平調整が必要となる。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、特許文献1に記載の手法では、例えば天井裏のように、基準線を照射する計測機材の設置が難しく、かつ、基準線として代用できる柱等が配管等に隠れてしまう場所では、水平調整を容易に行えないという問題がある。
【0006】
そこで、本発明は、様々な場所で容易な水平調整を可能とする画像水平調整装置及びそのプログラム、並びに、図面生成システムを提供することを課題とする。
【課題を解決するための手段】
【0007】
前記した課題に鑑みて、本発明に係る画像水平調整装置は、画像計測の対象となる画像計測対象空間を撮影したカメラの姿勢及び位置を推定し、水平調整を行う画像水平調整装置であって、キュービックパノラマ画像において、画像計測対象空間の形状を表す箱状オブジェクト、及び、所定の補助線を設定するパラメータ設定手段と、箱状オブジェクトの端点の座標が反映された箱状オブジェクト調整計算基礎式、及び、補助線の長さを拘束条件とした補助線調整計算基礎式を非線形最小二乗法で解くことで、カメラの姿勢及び位置を計算する調整計算手段と、調整計算手段で計算されたカメラの姿勢及び位置が予め設定された収束条件を満たすか否かを判定し、収束条件を満たさない場合、調整計算手段にカメラの姿勢及び位置の再計算を指令し、収束条件を満たす場合、調整計算手段で計算されたカメラの姿勢及び位置を出力する収束判定手段と、収束判定手段が出力したカメラの姿勢及び位置を用いて、水平調整を行う水平調整手段と、を備える構成とした。
【発明の効果】
【0008】
本発明によれば、以下のような優れた効果を奏する。
本発明に係る画像水平調整装置は、キュービックパノラマ画像上に箱状オブジェクトを設定し、その箱状オブジェクトを利用した調整計算により、カメラの姿勢及び位置を推定することができる。従って、本発明に係る画像水平調整装置は、計測機材を必要とすることがなく、キュービックパノラマ画像を撮影可能な空間であれば、容易に水平調整を行うことができる。
【図面の簡単な説明】
【0009】
【
図1】実施形態に係る図面生成システムの概要を説明する説明図である。
【
図2】実施形態に係る全天球カメラの外観図である。
【
図3】
図2の全天球カメラで撮影された全天球画像の一例を説明する説明図である。
【
図4】
図1の画像計測装置の構成を示すブロック図である。
【
図5】実施形態において、キュービックパノラマ画像の一例を説明する説明図であり、(a)が前面であり、(b)が右面であり、(c)が左面であり、(d)が後面であり、(e)が下面であり、(f)が上面である。
【
図6】実施形態において、キュービックパノラマ画像の表示例を説明する説明図である。
【
図7】実施形態において、キュービックパノラマ画像上でBOXオブジェクトや基準線の設定を説明する説明図である。
【
図8】実施形態において、BOXオブジェクト設定画面の一例を説明する説明図である。
【
図9】実施形態において、基準線設定画面の一例を説明する説明図である。
【
図10】実施形態において、(a)は座標系を説明する説明図であり、(b)は水平調整を説明する説明図である。
【
図11】
図4の画像水平調整装置の動作を示すフローチャートである。
【発明を実施するための形態】
【0010】
(実施形態)
[図面生成システムの概要]
以下、本発明の実施形態について、適宜図面を参照しながら詳細に説明する。なお、実施形態において、同一の手段には同一の符号を付し、説明を省略した。
図1を参照し、本発明の実施形態に係る図面生成システム1の概要について説明する。
図1に示すように、図面生成システム1は、天井裏9などの屋内図面を生成するものであり、全天球カメラ10と、画像計測装置20と、図面生成装置40とを備える。
【0011】
最初に、図面生成システム1を用いた図面生成方法について説明する。
本実施形態では、
図1に示すように、画像計測の対象となる画像計測対象空間が天井裏9であることとする。例えば、天井裏9には、室内との境界になる天井(底面)に、正方形の点検口90が設けられている。また、天井裏9には、奥側にL字状の配管91が配置され、中央右側に屋内設備92,93が隣接配置され、手前側の天面にも屋内設備94が配置されている。このように、天井裏9は、高さが十分でなく、配管91や屋内設備92~95が配置されているため、計測機材の設置が困難である。さらに、天井裏9では、柱及び壁や天井の境界が、配管91や屋内設備92~95に隠れてしまうので、基準線の代用も困難である。
【0012】
なお、
図1では、図面を見やすくするために、天井裏9に配置される配管や屋内設備を一部のみ図示した。
また、
図1では、天井裏9において、基準線として代用可能な境界のうち、全天球カメラ10から見て、配管91や屋内設備92~95に隠れる箇所を破線で図示した。
また、
図1では、天井裏9の下に位置する室内を一点鎖線で図示した。
【0013】
まず、計測員は、全天球カメラ10を点検口90から天井裏9に挿入する。そして、計測員は、全天球カメラ10で天井裏9の全天球画像を撮影し、その全天球画像を画像計測装置20に出力する。すると、画像計測装置20は、全天球画像をキュービックパノラマ画像に変換する。さらに、計測員は、マウス、キーボード等の操作手段23を操作して、ディスプレイ等の表示手段24に表示されたキュービックパノラマ画像上に、BOXオブジェクト(箱状オブジェクト)や基準線を設定する。すると、画像計測装置20は、BOXオブジェクトや基準線を利用して水平調整を行った後、画像計測により3次元モデルを生成する。このように、図面生成システム1では、計測機材を必要とせずに、天井裏9でも容易に水平調整を行うことができる。
その後、図面生成装置40は、画像計測装置20が生成した3次元モデルから天井裏9の図面を生成する。
【0014】
次に、図面生成システム1の構成について説明する。
全天球カメラ10は、天井裏9の全天球画像を撮影し、撮影した全天球画像を画像計測装置20に出力するものである。例えば、全天球カメラ10は、SDカード等の記録媒体を介して、又は、無線通信を用いて、全天球画像を画像計測装置20に出力する。
【0015】
図2に示すように、全天球カメラ10は、全天球画像を撮影する全天球カメラ本体11と、全天球カメラ本体11を載置する一脚13とを備える。天井裏9の全天球画像は、
図3に示すように、全天球カメラ本体11を中心として、全周360°、上下180°の全周が含まれる。一脚13は、計測員が下側を把持した際に、上端の全天球カメラ本体11を点検口90から天井裏9に挿入可能な長さを有する。
なお、図面生成システム1で利用可能なカメラは、キュービックパノラマ画像に変換可能な画像を撮影できるものであれば、全天球カメラ10に限定されない。
【0016】
画像計測装置20は、全天球カメラ10から入力された全天球画像をキュービックパノラマ画像に変換し、変換したキュービックパノラマ画像を用いて天井裏9の画像計測を行って天井裏9の3次元モデルを生成するものである。このとき、画像計測装置20は、キュービックパノラマ画像上に設定されたBOXオブジェクトや基準線を用いて、調整計算により水平調整を行う。
その後、画像計測装置20は、図示を省略した無線通信又は有線通信を介して、天井裏9の3次元モデルを図面生成装置40に出力する。
【0017】
図面生成装置40は、無線通信又は有線通信を介して、画像計測装置20からの3次元モデルをBIM(Building Information Modeling)ソフトウェアに取り込んで、天井裏9の図面(屋内図面)を生成するものである。例えば、図面生成装置40としては、無線通信、有線通信等の通信機能を有し、一般的なBIMソフトウェアがインストールされたコンピュータをあげることができる。
【0018】
[画像計測装置の構成]
図4を参照し、画像計測装置20の構成について説明する。
図4に示すように、画像計測装置20は、キュービックパノラマ画像変換手段21と、画像計測手段22と、画像水平調整装置30とを備える。
【0019】
キュービックパノラマ画像変換手段21は、全天球カメラ10から入力された全天球画像をキュービックパノラマ画像に変換するものである。
図5に示すように、全天球画像は、歪んでいるため、画像計測に適していない。このため、キュービックパノラマ画像変換手段21は、全天球画像を、歪みの少ないキュービックパノラマ画像に変換する。
【0020】
図5に示すように、キュービックパノラマ画像は、正六面体の各面(上面、下面、左面、右面、前面、後面)の内側に全天球画像を投影した画像である。例えば、キュービックパノラマ画像は、
図5に示すように、正六面体の各面内側に全天球画像を貼り付けたものとなる。
図5(a)がキュービックパノラマ画像の前面であり、
図5(b)がキュービックパノラマ画像の右面であり、
図5(c)がキュービックパノラマ画像の左面である。また、
図5(d)がキュービックパノラマ画像の後面であり、
図5(e)がキュービックパノラマ画像の下面であり、
図5(f)がキュービックパノラマ画像の上面である。
以後、
図5(a)~(f)のように、キュービックパノラマ画像の各面を構成する画像のそれぞれを構成画像と呼ぶ。
【0021】
画像計測手段22は、後記する画像水平調整装置30が水平調整したキュービックパノラマ画像を画像計測することで天井裏9の3次元モデルを生成し、その3次元モデルを図面生成装置40に出力するものである。
本実施形態では、画像計測手段22は、水平調整されたキュービックパノラマ画像に計測点を設定し、その計測点を3次元計測(画像計測)する。具体的には、画像計測手段22は、各計測点を高さが既知の水平面上へ逆投影することで、水平面上の計測点の座標を3次元計測する。また、画像計測手段22は、計測済みの計測点の鉛直線上に位置する点をこの鉛直線に逆投影することで、計測点の高さ方向の座標を3次元計測する。そして、画像計測手段22は、水平面と高さ方向の座標を組み合わせて、各計測点の3次元座標を求める。
なお、3次元計測の詳細は、例えば、特開2015-125002号公報に記載されているため、これ以上の説明を省略する。
【0022】
[画像水平調整装置の構成]
画像水平調整装置30は、
図4に示すように、画像計測装置20に内蔵されており、パラメータ設定手段31と、初期値設定手段32と、調整計算手段33と、収束判定手段34と、水平調整手段35とを備える。
【0023】
パラメータ設定手段31は、水平調整に必要な各種パラメータとして、BOXオブジェクトや基準線を設定するものである。本実施形態では、パラメータ設定手段31は、計測員からBOXオブジェクトや基準線の設定(入力)を受け付けて、計測員が設定したBOXオブジェクトや基準線を初期値設定手段32及び調整計算手段33に出力する。
【0024】
<BOXオブジェクト、基準線の設定>
ここで、BOXオブジェクト及び基準線の設定について説明する。
パラメータ設定手段31は、
図6に示すように、キュービックパノラマ画像変換手段21が変換したキュービックパノラマ画像を表示手段24に表示する。すると、計測員は、操作手段23を操作して、
図7に示すように、キュービックパノラマ画像上にBOXオブジェクトObjを設定する。
図7では、天井裏9の一部しか表示手段24に表示されていないので、BOXオブジェクトObjの一部しか設定できない。そこで、計測員は、キュービックパノラマ画像を回転させ、BOXオブジェクトObjの残りの部分を設定すればよい。このとき、計測員は、キュービックパノラマ画像に表示された天井裏9とBOXオブジェクトObjとの四隅(端点P1~P4)を一致させて、天井裏9の形状を表すようにBOXオブジェクトObjを設定するとよい。
なお、
図7では、BOXオブジェクトObj及び基準線Blを太線で図示し、BOXオブジェクトObjの端点P(P
1~P
4)を図示した。
【0025】
全天球カメラ10の姿勢及び位置を推定する調整計算を行うため、少なくとも1本の補助線の長さが既知になっている必要がある。この補助線とは、天井裏9において、距離(長さ)が既知の線分のことであり、BOXオブジェクトの辺、又は、キュービックパノラマ画像上の任意の基準線の何れかである。
【0026】
例えば、天井裏9の寸法が既知の場合を考える。この場合、計測員は、操作手段23を操作して、
図8のBOXオブジェクト設定画面を表示する。そして、計測員は、天井裏9の長手方向、短手方向及び天井高をBOXオブジェクトの寸法として入力し、「計測値」をチェックする。すると、「計測値」をチェックされた辺が、補助線としてパラメータ設定手段31に設定される。
図8では、BOXオブジェクトの長手方向の辺が補助線として設定されている。
【0027】
天井裏9の寸法が分からずとも、点検口90の寸法は既知であることが多い。この場合、計測員は、
図7のキュービックパノラマ画像において、点検口90の一辺に基準線Blを設定する。次に、計測員は、操作手段23を操作して、
図9の基準線設定画面を表示する。そして、計測員は、設定した基準線Blの種類を選択し、点検口90の一辺の長さを入力し、点検口90が底面(天井)に接するので、「床面に接する」をチェックする。すると、
図7の基準線Blが、補助線としてパラメータ設定手段31に設定される。
なお、パラメータ設定手段31は、
図8のBOXオブジェクト設定画面又は
図9の基準線設定画面で補助線が1本も設定されていない場合、その旨のメッセージを表示し、計測員に補助線の設定を促すことが好ましい。
【0028】
図4に戻り、画像水平調整装置30の構成について、説明を続ける。
初期値設定手段32は、パラメータ設定手段31で設定されたBOXオブジェクトについて、調整計算に必要な初期値を設定するものである。本実施形態では、パラメータ設定手段31は、計測員から初期値の設定(入力)を受け付けて、計測員が設定した初期値を調整計算手段33に出力する。
例えば、BOXオブジェクトの初期値としては、ローカル座標系におけるBOXオブジェクトの各端点の座標(X,Y,Z)、BOXオブジェクトの寸法W,D,H、キュービックパノラマ画像の回転角(全天球カメラ10の姿勢)θ,φ,κがあげられる。
【0029】
調整計算手段33は、BOXオブジェクト調整計算基礎式(箱状オブジェクト調整計算基礎式)及び補助線調整計算基礎式を非線形最小二乗法で解くことで、全天球カメラ10の姿勢及び位置を計算するものである。そして、調整計算手段33は、計算した全天球カメラ10の姿勢及び位置を収束判定手段34に出力する。
BOXオブジェクト調整計算基礎式とは、BOXオブジェクトの端点の座標が反映された基礎式のことである。また、補助線調整計算基礎式とは、補助線の長さを拘束条件とした基礎式のことである。
【0030】
収束判定手段34は、調整計算手段33から入力された全天球カメラ10の姿勢及び位置が、予め設定された収束条件を満たすか否かを判定するものである。
収束条件を満たさない場合、収束判定手段34は、調整計算手段33に全天球カメラ10の姿勢及び位置の再計算を指令する。
収束条件を満たす場合、収束判定手段34は、推定結果として、調整計算手段33から入力された全天球カメラ10の姿勢及び位置を水平調整手段35に出力する。
以下、調整計算の前提となる座標系の定義、BOXオブジェクト調整計算基礎式、補助線調整計算基礎式、非線形最小二乗法による解法を順に説明する。
【0031】
<座標系の定義>
ローカル座標系は、画像計測対象空間の座標系であり、X-Y-Zで表す。
図10(a)に示すように、ローカル座標系は、Z軸方向が天井裏9の鉛直方向と一致し、X-Y平面が天井裏9の底面(水平面)と平行になる。
全天球カメラ座標系(カメラ座標系)は、全天球カメラ10の位置(光学主点)を原点とする座標系であり、x-y-zで表す。全天球カメラ座標系は、全天球カメラ10の傾きをそのまま表し、z軸方向が全天球カメラ10の上方となる。つまり、全天球カメラ座標系は、ローカル座標系の原点を全天球カメラ10の視点高さまで上げたうえ、ローカル座標系に全天球カメラ10の傾きを与えたものとなる。
全天球画像座標系は、全天球カメラ座標系に配置されたキュービックパノラマ画像面上の座標系であり、x
i-y
i-z
iで表す。つまり、キュービックパノラマ画像上のある1点の座標は、全天球画像座標系で(x
i,y
i,z
i)となる。なお、添え字iは、キュービックパノラマ画像の前面や右面などの各構成画像を表す(1≦i≦6)。
【0032】
前記したように、画像計測の際、全天球カメラ10が傾いていないと仮定すること多い。だが実際には、全天球カメラ10が傾いていることが多く、
図10(a)に示すように、キュービックパノラマ画像も傾いてしまう。従って、キュービックパノラマ画像における視点位置の水平面αは、
図10(b)のように実際には傾いてしまう。このままでは正確な画像計測を行えないので、全天球カメラ10の傾きを推定し、その傾きに合わせてキュービックパノラマ画像を回転させる(撮影時の傾きを再現する)ことが、水平調整の意味するところである。
【0033】
<BOXオブジェクト調整計算基礎式>
BOXオブジェクトは、直方体状の箱型であり、8個の端点を有する。BOXオブジェクトの長手方向の長さをW、短手方向の長さをD、高さをHとする。また、BOXオブジェクトの底面の1点をローカル座標系の原点Oとする。この場合、BOXオブジェクトの各端点の座標は、ローカル座標系において、(0,0,0)、(W,0,0)、(W,D,0)、(0,D,0)、(0,0,H)、(W,0,H)、(0,D,H)、(W,D,H)で表される。
【0034】
全天球カメラ座標系において、BOXオブジェクトの各端点の座標を表す場合を考える。ローカル座標系の原点Oが全天球カメラ座標系で(xO,yO,zO)であり、回転行列Rが全天球カメラ座標系とローカル座標系との回転角を表すこととする。この場合、全天球カメラ座標系における端点(x,y,z)と、ローカル座標系における端点(X,Y,Z)との座標変換式は、以下の式(1)で表される。
【0035】
【0036】
ここで、回転行列Rは、オイラー角、すなわち、水平角(全天球カメラ10のパン角)θ、鉛直角(全天球カメラ10のチルト角)φ、正面方向で光軸回りの角(全天球カメラ10のロール角)κからなる。この場合、回転行列Rは、その成分をr11~r33とすると、以下の式(2)で表される。
【0037】
【0038】
ローカル座標系の原点Oや回転行列Rは未知であるが、それらの初期値は、初期値設定手段32に設定されている。
ローカル座標系において、全天球カメラ10の視点位置Cの座標(XC,YC,ZC)は、全天球カメラ座標系の原点に対応する。また、全天球カメラ10の視点位置Cの座標(XC,YC,ZC)は、式(1)にx=0、y=0、z=0を代入することで、以下の式(3)で算出できる。
【0039】
【0040】
全天球カメラ10の視点位置Cから各端点までの距離Lは、以下の式(4)で表される。つまり、距離Lは、ローカル座標系において、全天球カメラ10から端点までの距離を表す。
【0041】
【0042】
ここで、全天球カメラ10の視点位置Cから各端点までの距離Lは、構成画像上においても同一であると考えられる。従って、この距離Lを用いることで、構成画像上の2次元座標を、3次元座標である全天球画像座標系に展開(変換)できる。キュービックパノラマ画像のうち、正面の構成画像上の端点の座標(u,v)、は、全天球カメラ10の焦点距離をfとすると、全天球画像座標系で(u,-f,v)と表される。また、正面以外の構成画像に端点が写っている場合、その端点の座標(xi,yi,zi)は、回転行列Mを用いて、以下の式(5)で表される。
【0043】
【0044】
なお、回転行列Mは、正面の構成画像を基準とした、各構成画像の回転を表す回転行列である。この回転行列Mは、構成画像の画像面ごとに異なり、正面の構成画像に対する水平角Θ及び鉛直角Φを用いて、以下の式(6)で表される(但し、Θ=0,π/2,-π/2であり、Φ=0,π/2,-π/2である)。
【0045】
【0046】
以上のように、構成画像上の端点は、全天球画像座標系の3次元座標で表される。だが実際には、この端点の3次元座標は、構成画像上の位置を表すものであり、奥行き方向の距離が天井裏9での距離と全く異なるので、距離Lを用いて、正しい座標に展開(変換)する。
【0047】
ここで、全天球画像座標系において、全天球カメラ10から端点までの距離lは、以下の式(7)で表される。
【0048】
【0049】
よって、全天球カメラ座標系における端点の座標(x,y,z)は、以下の式(8)で表される。
【0050】
【0051】
従って、全天球カメラ座標系における端点の座標(x,y,z)を式(1)に代入し、未知変数として、全天球カメラ10の姿勢(θ,φ,κ)と、全天球カメラ10の位置(xO,yO,zO)とを非線形最小二乗法で求めればよい。
【0052】
なお、BOXオブジェクトの寸法W,D,Hの何れか1以上が未知の場合、それも未知変数として解く必要がある。さらに、BOXオブジェクトの寸法W,D,Hの寸法によって距離Lも影響を受けるので、未知変数W,D,Hを解いた結果をもとに距離Lを再計算し、繰り返し演算を行う必要がある。
【0053】
<補助線調整計算基礎式>
補助線調整計算基礎式は、2つの端点の座標(xi1,yi1,zi1)、(xi2,yi2,zi2)の差から計算されるベクトルに関する直交変換式である。両端点の縮尺変数をλ(λ1,λ2)とし、ローカル座標系で両端点のベクトルを(vX vY vZ)とすると、補助線調整計算基礎式は、以下の式(9)で表される。なお、添え字Tは転置行列を表し、縮尺変数λ=L/lとする。
【0054】
【0055】
補助線の長さをSとする。X軸、Y軸、Z軸に平行な3本の線分を補助線とする場合、それぞれのベクトルは、(vX vY vZ)=(S 0 0),(0 S 0),(0 0 S)となる。補助線の長さSが与えられている場合、式(9)において、回転行列R以外の未知変数はλ1,λ2の2つである。そして、式(9)は3つの式から成り立っているので、1つの拘束条件を与えることができる。
【0056】
個々の端点については、式(1)において補助線の長さSを拘束条件とすることで、以下の式(10)が成り立つ。補助線の端点が底面に接している場合、Z=0となるので、式(10)は、以下の式(11)で表される。
【0057】
【0058】
【0059】
式(11)の第3式は、Z座標に関するものであり、これを展開すると、以下の式(12)で表される。この式(12)から、縮尺変数λの関係式が得られる。これにより、式(9)における未知変数を1つ減らすことができる。両端点が底面に接している場合、未知変数をさらに減らすことができる。
【0060】
【0061】
ここで、補助線が底面でなく上面に接する場合、Z=Hとして式(10)を解けばよい。また、補助線が壁面に接する場合、X=0、X=W、Y=0又はY=Dとして式(10)を解けばよい。
なお、補助線の長さSが与えられておらず、何れの端点も壁面等に接していない場合、S,λ1,λ2の3つが未知変数となるため、拘束条件とならない。
【0062】
補助線が鉛直線の場合、構成画像の平面と天井裏9の壁面との関係から、以下の式(13)が成り立つ。この式(13)は、構成画像上の鉛直線のベクトルと、実際の鉛直線のベクトルが同じ方向を向いていることを表す。なお、2つの端点の座標を(u1,v1)、(u2,v2)とする。
【0063】
【0064】
ここで、補助線の長さSについても、その縮尺変数s=λ/Sが成り立つので、式(13)は、以下の式(14)で表される。この式(14)では、sが未知変数であり、第2式がゼロとなる実質無効な式となる。つまり、式(14)では、2つの式が有効であり、未知変数sを除去すると、実質的に1つの拘束条件が成立する。
【0065】
【0066】
<非線形最小二乗法による解法>
非線形最小二乗法による解法としては、全ての未知変数について連立して調整計算する手法(以後、第1解法)と、未知変数と関係式を減らしてから調整計算する手法(以後、第2解法)の2つが考えられる。
【0067】
第1解法は、関係式が比較的簡素な形となり、異なる拘束条件でも基本的に共通の関係式を利用できる一方、未知変数と関係式の数が多くなり、計算効率が低下する。この第1解法では、適切な初期値が必要となるため、初期値の算出において条件分離して個別に解く必要がある。初期値の算出だけであれば、式(12)のようにさほど複雑にならないので、本実施形態では第1解法を適用する。
【0068】
この第1解法では、全ての未知変数について連立させるので、以下の式(15)~式(17)のような簡素な関係式となる。拘束条件の影響を受けるのは、式(15)の左辺だけである。例えば、補助線が鉛直線の場合、(vX vY vZ)=(0 0 S)となり、補助線がX軸方向の線の場合、(vX vY vZ)=(S 0 0)となるだけで、関係式は基本的に変わらない。
【0069】
【0070】
【0071】
【0072】
テーラー展開による線形化を行う場合、例えば、式(15)を以下の式(18)とすれば、θの偏微分は、以下の式(19)で表される。この式(19)では、補助線の向きがX軸方向であれ、Y軸方向であれ、Z軸方向であれ、(vX vY vZ)がθを含まないベクトルなので、共通したものを利用できる。
【0073】
【0074】
【0075】
ここで、未知変数θの初期値をθ0として、未知変数θの補正値をΔθとすると、θ=θ0+Δθが成り立つ。各未知変数の初期値を代入した関数fをf0とすると、式(15)は、以下の式(20)で表される。
【0076】
【0077】
式(16)及び式(17)についても、式(15)と同様の式が成り立ち、それがBOXオブジェクトの端点と補助線について成立するため、Σeが最小となるように解けばよい。すなわち、以下の式(21)を解くことになる。
【数21】
【0078】
ここで、以下の式(22)のように、得られるのは未知変数の補正値Δであるから、その補正値Δがほぼゼロになるまで繰り返し演算を行う。
【0079】
【0080】
以上の調整計算をまとめると、調整計算手段33は、式(5)を用いて、BOXオブジェクトの端点の座標を全天球画像座標系に変換する。そして、調整計算手段33は、式(8)を用いて、全天球画像座標系における端点の座標を全天球カメラ座標系に変換する。さらに、調整計算手段33は、全天球カメラ座標系における端点の座標が含まれる式(1)を、BOXオブジェクト調整計算基礎式として非線形最小二乗法で解く。さらに、調整計算手段33は、式(10)及び式(12)を、補助線調整計算基礎式として非線形最小二乗法で解き、全天球カメラ10の姿勢θ,φ,κ及び位置xO,yO,zOの補正値Δを求める。
【0081】
収束判定手段34は、補正値Δがゼロを基準とした所定範囲内に収まるか否かという収束条件を判定する。そして、収束判定手段34は、この拘束条件を満たすまで、調整計算手段33に補正値Δの再計算を指令する。
なお、収束条件は、任意に設定可能である。例えば、収束条件は、正値Δが予め設定された回数以上更新されなくなった場合、調整計算を終了するという条件であってもよい。
【0082】
図4に戻り、画像水平調整装置30の構成について、説明を続ける。
水平調整手段35は、収束判定手段34から入力された推定結果(全天球カメラ10の姿勢及び位置)を用いて、水平調整を行うものである。例えば、水平調整手段35は、収束判定手段34から入力された全天球カメラ10の姿勢θ,φ,κに合わせて、キュービックパノラマ画像を回転させる。このとき、水平調整手段35は、収束判定手段34から入力された全天球カメラ10の位置x
O,y
O,z
Oに応じて、キュービックパノラマ画像を移動させてもよい。そして、水平調整手段35は、回転後のキュービックパノラマ画像を画像計測手段22に出力する。
【0083】
[画像水平調整装置の動作]
図11を参照し、画像水平調整装置30の構成について説明する(適宜
図4参照)。
図11に示すように、パラメータ設定手段31は、BOXオブジェクトの設定を行う。具体的には、パラメータ設定手段31は、キュービックパノラマ画像を表示手段24に表示し、計測員がBOXオブジェクトを設定する。また、パラメータ設定手段31は、計測員の操作に応じて、
図8のBOXオブジェクト設定画面を表示し、計測員がBOXオブジェクトの辺を補助線として設定する(ステップS1)。
【0084】
パラメータ設定手段31は、基準線の設定を行う。具体的には、パラメータ設定手段31は、計測員の操作に応じて、
図9の基準線設定画面を表示し、計測員が基準線を設定する(ステップS2)。
なお、ステップS1においてBOXオブジェクトに補助線が設定されている場合、このステップS2の処理は必須でない。
【0085】
初期値設定手段32は、ステップS2で設定されたBOXオブジェクトについて、調整計算に必要な初期値を設定する(ステップS3)。
調整計算手段33は、ステップS2で設定したBOXオブジェクト及びBOXオブジェクトの補助線について、BOXオブジェクト調整計算基礎式及び補助線調整計算基礎式を非線形最小二乗法で解くことで、全天球カメラ10の姿勢及び位置を計算する(ステップS4)。
【0086】
収束判定手段34は、ステップS4の推定結果が収束条件を満たすか否かを判定する(ステップS5)。
収束条件を満たさない場合(ステップS5でNo)、画像水平調整装置30は、ステップS4の処理に戻る。
収束条件を満たす場合(ステップS5でYes)、画像水平調整装置30は、ステップS6の処理に進む。
このように、画像水平調整装置30は、収束条件を満たすまで、ステップS4の調整計算を繰り返す。
【0087】
調整計算手段33は、ステップS3で基準線が設定されているか否かを判定する(ステップS6)。
基準線が設定されている場合(ステップS6でYes)、画像水平調整装置30は、ステップS7の処理に進む。
調整計算手段33は、ステップS3で設定した基準線を加え、BOXオブジェクト調整計算基礎式及び補助線調整計算基礎式を非線形最小二乗法で解くことで、全天球カメラ10の姿勢及び位置を計算する(ステップS7)。
【0088】
収束判定手段34は、ステップS7の推定結果が収束条件を満たすか否かを判定する(ステップS8)。
収束条件を満たさない場合(ステップS8でNo)、画像水平調整装置30は、ステップS7の処理に戻る。
収束条件を満たす場合(ステップS8でYes)、画像水平調整装置30は、ステップS9の処理に進む。
このように、画像水平調整装置30は、収束条件を満たすまで、ステップS7の調整計算を繰り返す。
【0089】
基準線が設定されていない場合(ステップS6でNo)、又は、ステップS8の処理に続いて、水平調整手段35は、ステップS4又はステップS7の推定結果を用いて、水平調整を行う(ステップS9)。
【0090】
[作用・効果]
以上のように、画像水平調整装置30は、キュービックパノラマ画像上にBOXオブジェクトを設定し、そのBOXオブジェクトを利用した調整計算により、全天球カメラ10の姿勢及び位置を推定することができる。従って、画像水平調整装置30は、計測機材を必要とすることがなく、キュービックパノラマ画像を撮影可能な空間であれば、容易に水平調整を行うことができる。
【0091】
さらに、画像水平調整装置30は、基準線を追加的に設定すれば、その推定精度をより向上させることができる。このとき、画像水平調整装置30は、寸法が既知の点検口などを基準線として代用できるので、基準線の設定自体も容易である。
さらに、画像水平調整装置30は、天井裏9のような画像計測対象空間全体にBOXオブジェクトを設定するので、局所的な画像歪の影響を受けにくく、推定誤差を抑制することがきる。
【0092】
(変形例)
以上、本発明の実施形態を詳述してきたが、本発明は前記した実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
前記した実施形態では、初期値を手動で設定することとして説明したが、既知の手法により初期値を計算してもよい。
【0093】
前記した実施形態では、全ての未知変数について連立して解く手法を説明したが(第1解法)、非線形最小二乗法の解法が特に限定されない。
例えば、本発明に係る画像水平調整装置は、未知変数と関係式を減らしてから解いてもよい(第2解法)。具体的には、式(12)を補助線調整計算基礎式である式(10)に代入すると、以下の式(23)が得られる。そして、式(23)をテーラー展開し、θなどの未知変数毎にまとめればよい。
【0094】
【0095】
前記した実施形態では、画像計測対象空間が天井裏であることとして説明したが、画像計測対象空間は、特に制限されない。特に、本発明に係る画像水平調整装置は、設備や配管が多数配置されているため又は空間自体が狭いため、手動の水平調整が困難な狭隘空間の画像計測に最適である。
【0096】
前記した実施形態では、本発明に係る画像水平調整装置が画像計測装置に内蔵されていることとして説明したが、これに限定されない。例えば、本発明に係る画像水平調整装置は、独立した装置であってもよい。さらに、本発明は、コンピュータが備えるCPU、メモリ、ハードディスク等のハードウェア資源を、前記した画像水平調整装置として協調動作させるプログラムで実現することもできる。これらのプログラムは、通信回線を介して配布してもよく、CD-ROMやフラッシュメモリ等の記録媒体に書き込んで配布してもよい。
【符号の説明】
【0097】
1 図面生成システム
10 全天球カメラ
20 画像計測装置
21 キュービックパノラマ画像変換手段
22 画像計測手段
30 画像水平調整装置
31 パラメータ設定手段
32 初期値設定手段
33 調整計算手段
34 収束判定手段
35 水平調整手段
40 図面生成装置