(57)【要約】【課題】様々な場所で容易な水平調整を可能とする画像水平調整装置を提供する。【解決手段】画像水平調整装置３０は、ＢＯＸオブジェクト及び補助線を設定するパラメータ設定手段３１と、ＢＯＸオブジェクト調整計算基礎式及び補助線調整計算基礎式を非線形最小二乗法で解くことで、全天球カメラ１０の姿勢及び位置を計算する調整計算手段３３と、全天球カメラ１０の姿勢及び位置が収束条件を満たすか否かを判定する収束判定手段３４と、全天球カメラ１０の姿勢及び位置を用いて、水平調整を行う水平調整手段３５とを備える。【選択図】図４
2019190962.tif 000002
【特許請求の範囲】
【請求項１】
画像計測の対象となる画像計測対象空間を撮影したカメラの姿勢及び位置を推定し、水平調整を行う画像水平調整装置であって、
キュービックパノラマ画像において、前記画像計測対象空間の形状を表す箱状オブジェクト、及び、所定の補助線を設定するパラメータ設定手段と、
前記箱状オブジェクトの端点の座標が反映された箱状オブジェクト調整計算基礎式、及び、前記補助線の長さを拘束条件とした補助線調整計算基礎式を非線形最小二乗法で解くことで、前記カメラの姿勢及び位置を計算する調整計算手段と、
前記調整計算手段で計算されたカメラの姿勢及び位置が予め設定された収束条件を満たすか否かを判定し、前記収束条件を満たさない場合、前記調整計算手段に前記カメラの姿勢及び位置の再計算を指令し、前記収束条件を満たす場合、前記調整計算手段で計算されたカメラの姿勢及び位置を出力する収束判定手段と、
前記収束判定手段が出力したカメラの姿勢及び位置を用いて、水平調整を行う水平調整手段と、
を備えることを特徴とする画像水平調整装置。
【請求項２】
前記調整計算手段は、
前記キュービックパノラマ画像を構成する各画像の回転角を表す回転行列Ｍ、及び、前記カメラの焦点距離ｆが含まれる式（Ａ）を用いて、前記パラメータ設定手段で設定された箱状オブジェクトの端点の座標（ｕ，-ｆ，ｖ）を画像座標系における前記端点の座標（ｘｉ，ｙｉ，ｚｉ）に変換し、
【数１】
2019190962.tif 000026
ローカル座標系における前記カメラから前記端点までの距離Ｌ、及び、前記画像座標系における前記カメラから前記端点までの距離ｌが含まれる式（Ｂ）を用いて、前記画像座標系における端点の座標（ｘｉ，ｙｉ，ｚｉ）をカメラ座標系における端点の座標（ｘ，ｙ，ｚ）に変換し、
【数２】
2019190962.tif 000027
前記ローカル座標系における前記端点の座標（Ｘ，Ｙ，Ｚ）、前記カメラの姿勢を表す回転行列Ｒ、及び、前記カメラ座標系における前記カメラの位置（ｘＯ，ｙＯ，ｚＯ）が含まれる式（Ｃ）を、前記箱状オブジェクト調整計算基礎式として非線形最小二乗法で解き、
【数３】
2019190962.tif 000028
前記補助線の長さを拘束条件とすることで定まる式（Ｄ）と、前記端点の縮尺係数λ及び前記回転行列Ｒの要素ｒ３１〜ｒ３３が含まれる式（Ｅ）とを、前記補助線調整計算基礎式として非線形最小二乗法で解く、
【数４】
2019190962.tif 000029
【数５】
2019190962.tif 000030
ことを特徴とする請求項１に記載の画像水平調整装置。
【請求項３】
前記パラメータ設定手段は、前記箱状オブジェクトの辺、又は、前記キュービックパノラマ画像上の任意の基準線の少なくとも一方を前記補助線として設定し、
前記調整計算手段は、前記基準線が設定された場合、設定された前記基準線の長さを拘束条件とした前記補助線調整計算基礎式を非線形最小二乗法で解くことを特徴とする請求項１又は請求項２に記載の画像水平調整装置。
【請求項４】
前記収束判定手段は、前記収束条件として、前記カメラの姿勢及び位置がゼロを基準とした所定範囲内に収まるか否かを判定することを特徴とする請求項１から請求項３の何れか一項に記載の画像水平調整装置。
【請求項５】
前記画像計測対象空間は、手動の水平調整が困難な狭隘空間であることを特徴とする請求項１から請求項４の何れか一項に記載の画像水平調整装置。
【請求項６】
コンピュータを、請求項１から請求項５の何れか一項に記載の画像水平調整装置として機能させるためのプログラム。
【請求項７】
画像計測の対象となる画像計測対象空間を撮影するカメラと、画像計測により前記画像計測対象空間の３次元モデルを生成する画像計測装置と、前記画像計測装置が生成した３次元モデルから前記画像計測対象空間の図面を生成する図面生成装置と、を備える図面生成システムであって、
前記画像計測装置は、
請求項１から請求項５の何れか一項に記載の画像水平調整装置と、
前記画像水平調整装置が水平調整したキュービックパノラマ画像を画像計測することで、前記画像計測対象空間の３次元モデルを生成する画像計測手段と、
を備えることを特徴とする図面生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カメラの姿勢及び位置を推定したうえ画像の水平調整を行う画像水平調整装置及びそのプログラム、並びに、その画像水平調整装置を用いる図面生成システムに関する。
【背景技術】
【０００２】
従来より、屋内で撮影された全天球画像を元に画像計測を行う手法が提案されている（例えば、特許文献１）。特許文献１に記載の手法は、全天球画像をキュービックパノラマ画像に変換し、手動で水平調整を行った後、三次元画像計測を行うものである。ここで、特許文献１に記載の手法では、レーザ墨出し器、レーザ光源等の計測機材で水平又は垂直な基準線を照射し、手動で水平調整を行う必要がある。また、特許文献１に記載の手法では、計測機材がない場合、屋内の柱及び壁や床の境界を基準線として代用できる。
【０００３】
なお、画像計測の際、カメラの姿勢（傾き）が不明なため、カメラが傾いていないと仮定することが多い。だが実際にはカメラが傾いていることが多く、全天球画像も傾いてしまう。このため、水平方向に対するカメラの傾きを推定し、その傾きにあわせてキュービックパノラマ画像を回転させる水平調整が必要となる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−１２５００２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、特許文献１に記載の手法では、例えば天井裏のように、基準線を照射する計測機材の設置が難しく、かつ、基準線として代用できる柱等が配管等に隠れてしまう場所では、水平調整を容易に行えないという問題がある。
【０００６】
そこで、本発明は、様々な場所で容易な水平調整を可能とする画像水平調整装置及びそのプログラム、並びに、図面生成システムを提供することを課題とする。
【課題を解決するための手段】
【０００７】
前記した課題に鑑みて、本発明に係る画像水平調整装置は、画像計測の対象となる画像計測対象空間を撮影したカメラの姿勢及び位置を推定し、水平調整を行う画像水平調整装置であって、キュービックパノラマ画像において、画像計測対象空間の形状を表す箱状オブジェクト、及び、所定の補助線を設定するパラメータ設定手段と、箱状オブジェクトの端点の座標が反映された箱状オブジェクト調整計算基礎式、及び、補助線の長さを拘束条件とした補助線調整計算基礎式を非線形最小二乗法で解くことで、カメラの姿勢及び位置を計算する調整計算手段と、調整計算手段で計算されたカメラの姿勢及び位置が予め設定された収束条件を満たすか否かを判定し、収束条件を満たさない場合、調整計算手段にカメラの姿勢及び位置の再計算を指令し、収束条件を満たす場合、調整計算手段で計算されたカメラの姿勢及び位置を出力する収束判定手段と、収束判定手段が出力したカメラの姿勢及び位置を用いて、水平調整を行う水平調整手段と、を備える構成とした。
【発明の効果】
【０００８】
本発明によれば、以下のような優れた効果を奏する。
本発明に係る画像水平調整装置は、キュービックパノラマ画像上に箱状オブジェクトを設定し、その箱状オブジェクトを利用した調整計算により、カメラの姿勢及び位置を推定することができる。従って、本発明に係る画像水平調整装置は、計測機材を必要とすることがなく、キュービックパノラマ画像を撮影可能な空間であれば、容易に水平調整を行うことができる。
【図面の簡単な説明】
【０００９】
【図１】実施形態に係る図面生成システムの概要を説明する説明図である。
【図２】実施形態に係る全天球カメラの外観図である。
【図３】図２の全天球カメラで撮影された全天球画像の一例を説明する説明図である。
【図４】図１の画像計測装置の構成を示すブロック図である。
【図５】実施形態において、キュービックパノラマ画像の一例を説明する説明図であり、（ａ）が前面であり、（ｂ）が右面であり、（ｃ）が左面であり、（ｄ）が後面であり、（ｅ）が下面であり、（ｆ）が上面である。
【図６】実施形態において、キュービックパノラマ画像の表示例を説明する説明図である。
【図７】実施形態において、キュービックパノラマ画像上でＢＯＸオブジェクトや基準線の設定を説明する説明図である。
【図８】実施形態において、ＢＯＸオブジェクト設定画面の一例を説明する説明図である。
【図９】実施形態において、基準線設定画面の一例を説明する説明図である。
【図１０】実施形態において、（ａ）は座標系を説明する説明図であり、（ｂ）は水平調整を説明する説明図である。
【図１１】図４の画像水平調整装置の動作を示すフローチャートである。
【発明を実施するための形態】
【００１０】
（実施形態）
［図面生成システムの概要］
以下、本発明の実施形態について、適宜図面を参照しながら詳細に説明する。なお、実施形態において、同一の手段には同一の符号を付し、説明を省略した。
図１を参照し、本発明の実施形態に係る図面生成システム１の概要について説明する。
図１に示すように、図面生成システム１は、天井裏９などの屋内図面を生成するものであり、全天球カメラ１０と、画像計測装置２０と、図面生成装置４０とを備える。
【００１１】
最初に、図面生成システム１を用いた図面生成方法について説明する。
本実施形態では、図１に示すように、画像計測の対象となる画像計測対象空間が天井裏９であることとする。例えば、天井裏９には、室内との境界になる天井（底面）に、正方形の点検口９０が設けられている。また、天井裏９には、奥側にＬ字状の配管９１が配置され、中央右側に屋内設備９２，９３が隣接配置され、手前側の天面にも屋内設備９４が配置されている。このように、天井裏９は、高さが十分でなく、配管９１や屋内設備９２〜９５が配置されているため、計測機材の設置が困難である。さらに、天井裏９では、柱及び壁や天井の境界が、配管９１や屋内設備９２〜９５に隠れてしまうので、基準線の代用も困難である。
【００１２】
なお、図１では、図面を見やすくするために、天井裏９に配置される配管や屋内設備を一部のみ図示した。
また、図１では、天井裏９において、基準線として代用可能な境界のうち、全天球カメラ１０から見て、配管９１や屋内設備９２〜９５に隠れる箇所を破線で図示した。
また、図１では、天井裏９の下に位置する室内を一点鎖線で図示した。
【００１３】
まず、計測員は、全天球カメラ１０を点検口９０から天井裏９に挿入する。そして、計測員は、全天球カメラ１０で天井裏９の全天球画像を撮影し、その全天球画像を画像計測装置２０に出力する。すると、画像計測装置２０は、全天球画像をキュービックパノラマ画像に変換する。さらに、計測員は、マウス、キーボード等の操作手段２３を操作して、ディスプレイ等の表示手段２４に表示されたキュービックパノラマ画像上に、ＢＯＸオブジェクト（箱状オブジェクト）や基準線を設定する。すると、画像計測装置２０は、ＢＯＸオブジェクトや基準線を利用して水平調整を行った後、画像計測により３次元モデルを生成する。このように、図面生成システム１では、計測機材を必要とせずに、天井裏９でも容易に水平調整を行うことができる。
その後、図面生成装置４０は、画像計測装置２０が生成した３次元モデルから天井裏９の図面を生成する。
【００１４】
次に、図面生成システム１の構成について説明する。
全天球カメラ１０は、天井裏９の全天球画像を撮影し、撮影した全天球画像を画像計測装置２０に出力するものである。例えば、全天球カメラ１０は、ＳＤカード等の記録媒体を介して、又は、無線通信を用いて、全天球画像を画像計測装置２０に出力する。
【００１５】
図２に示すように、全天球カメラ１０は、全天球画像を撮影する全天球カメラ本体１１と、全天球カメラ本体１１を載置する一脚１３とを備える。天井裏９の全天球画像は、図３に示すように、全天球カメラ本体１１を中心として、全周３６０°、上下１８０°の全周が含まれる。一脚１３は、計測員が下側を把持した際に、上端の全天球カメラ本体１１を点検口９０から天井裏９に挿入可能な長さを有する。
なお、図面生成システム１で利用可能なカメラは、キュービックパノラマ画像に変換可能な画像を撮影できるものであれば、全天球カメラ１０に限定されない。
【００１６】
画像計測装置２０は、全天球カメラ１０から入力された全天球画像をキュービックパノラマ画像に変換し、変換したキュービックパノラマ画像を用いて天井裏９の画像計測を行って天井裏９の３次元モデルを生成するものである。このとき、画像計測装置２０は、キュービックパノラマ画像上に設定されたＢＯＸオブジェクトや基準線を用いて、調整計算により水平調整を行う。
その後、画像計測装置２０は、図示を省略した無線通信又は有線通信を介して、天井裏９の３次元モデルを図面生成装置４０に出力する。
【００１７】
図面生成装置４０は、無線通信又は有線通信を介して、画像計測装置２０からの３次元モデルをＢＩＭ（Building Information Modeling）ソフトウェアに取り込んで、天井裏９の図面（屋内図面）を生成するものである。例えば、図面生成装置４０としては、無線通信、有線通信等の通信機能を有し、一般的なＢＩＭソフトウェアがインストールされたコンピュータをあげることができる。
【００１８】
［画像計測装置の構成］
図４を参照し、画像計測装置２０の構成について説明する。
図４に示すように、画像計測装置２０は、キュービックパノラマ画像変換手段２１と、画像計測手段２２と、画像水平調整装置３０とを備える。
【００１９】
キュービックパノラマ画像変換手段２１は、全天球カメラ１０から入力された全天球画像をキュービックパノラマ画像に変換するものである。図５に示すように、全天球画像は、歪んでいるため、画像計測に適していない。このため、キュービックパノラマ画像変換手段２１は、全天球画像を、歪みの少ないキュービックパノラマ画像に変換する。
【００２０】
図５に示すように、キュービックパノラマ画像は、正六面体の各面（上面、下面、左面、右面、前面、後面）の内側に全天球画像を投影した画像である。例えば、キュービックパノラマ画像は、図５に示すように、正六面体の各面内側に全天球画像を貼り付けたものとなる。図５（ａ）がキュービックパノラマ画像の前面であり、図５（ｂ）がキュービックパノラマ画像の右面であり、図５（ｃ）がキュービックパノラマ画像の左面である。また、図５（ｄ）がキュービックパノラマ画像の後面であり、図５（ｅ）がキュービックパノラマ画像の下面であり、図５（ｆ）がキュービックパノラマ画像の上面である。
以後、図５（ａ）〜（ｆ）のように、キュービックパノラマ画像の各面を構成する画像のそれぞれを構成画像と呼ぶ。
【００２１】
画像計測手段２２は、後記する画像水平調整装置３０が水平調整したキュービックパノラマ画像を画像計測することで天井裏９の３次元モデルを生成し、その３次元モデルを図面生成装置４０に出力するものである。
本実施形態では、画像計測手段２２は、水平調整されたキュービックパノラマ画像に計測点を設定し、その計測点を３次元計測（画像計測）する。具体的には、画像計測手段２２は、各計測点を高さが既知の水平面上へ逆投影することで、水平面上の計測点の座標を３次元計測する。また、画像計測手段２２は、計測済みの計測点の鉛直線上に位置する点をこの鉛直線に逆投影することで、計測点の高さ方向の座標を３次元計測する。そして、画像計測手段２２は、水平面と高さ方向の座標を組み合わせて、各計測点の３次元座標を求める。
なお、３次元計測の詳細は、例えば、特開２０１５−１２５００２号公報に記載されているため、これ以上の説明を省略する。
【００２２】
［画像水平調整装置の構成］
画像水平調整装置３０は、図４に示すように、画像計測装置２０に内蔵されており、パラメータ設定手段３１と、初期値設定手段３２と、調整計算手段３３と、収束判定手段３４と、水平調整手段３５とを備える。
【００２３】
パラメータ設定手段３１は、水平調整に必要な各種パラメータとして、ＢＯＸオブジェクトや基準線を設定するものである。本実施形態では、パラメータ設定手段３１は、計測員からＢＯＸオブジェクトや基準線の設定（入力）を受け付けて、計測員が設定したＢＯＸオブジェクトや基準線を初期値設定手段３２及び調整計算手段３３に出力する。
【００２４】
＜ＢＯＸオブジェクト、基準線の設定＞
ここで、ＢＯＸオブジェクト及び基準線の設定について説明する。
パラメータ設定手段３１は、図６に示すように、キュービックパノラマ画像変換手段２１が変換したキュービックパノラマ画像を表示手段２４に表示する。すると、計測員は、操作手段２３を操作して、図７に示すように、キュービックパノラマ画像上にＢＯＸオブジェクトＯｂｊを設定する。図７では、天井裏９の一部しか表示手段２４に表示されていないので、ＢＯＸオブジェクトＯｂｊの一部しか設定できない。そこで、計測員は、キュービックパノラマ画像を回転させ、ＢＯＸオブジェクトＯｂｊの残りの部分を設定すればよい。このとき、計測員は、キュービックパノラマ画像に表示された天井裏９とＢＯＸオブジェクトＯｂｊとの四隅（端点Ｐ１〜Ｐ４）を一致させて、天井裏９の形状を表すようにＢＯＸオブジェクトＯｂｊを設定するとよい。
なお、図７では、ＢＯＸオブジェクトＯｂｊ及び基準線Ｂｌを太線で図示し、ＢＯＸオブジェクトＯｂｊの端点Ｐ（Ｐ１〜Ｐ４）を図示した。
【００２５】
全天球カメラ１０の姿勢及び位置を推定する調整計算を行うため、少なくとも１本の補助線の長さが既知になっている必要がある。この補助線とは、天井裏９において、距離（長さ）が既知の線分のことであり、ＢＯＸオブジェクトの辺、又は、キュービックパノラマ画像上の任意の基準線の何れかである。
【００２６】
例えば、天井裏９の寸法が既知の場合を考える。この場合、計測員は、操作手段２３を操作して、図８のＢＯＸオブジェクト設定画面を表示する。そして、計測員は、天井裏９の長手方向、短手方向及び天井高をＢＯＸオブジェクトの寸法として入力し、「計測値」をチェックする。すると、「計測値」をチェックされた辺が、補助線としてパラメータ設定手段３１に設定される。図８では、ＢＯＸオブジェクトの長手方向の辺が補助線として設定されている。
【００２７】
天井裏９の寸法が分からずとも、点検口９０の寸法は既知であることが多い。この場合、計測員は、図７のキュービックパノラマ画像において、点検口９０の一辺に基準線Ｂｌを設定する。次に、計測員は、操作手段２３を操作して、図９の基準線設定画面を表示する。そして、計測員は、設定した基準線Ｂｌの種類を選択し、点検口９０の一辺の長さを入力し、点検口９０が底面（天井）に接するので、「床面に接する」をチェックする。すると、図７の基準線Ｂｌが、補助線としてパラメータ設定手段３１に設定される。
なお、パラメータ設定手段３１は、図８のＢＯＸオブジェクト設定画面又は図９の基準線設定画面で補助線が１本も設定されていない場合、その旨のメッセージを表示し、計測員に補助線の設定を促すことが好ましい。
【００２８】
図４に戻り、画像水平調整装置３０の構成について、説明を続ける。
初期値設定手段３２は、パラメータ設定手段３１で設定されたＢＯＸオブジェクトについて、調整計算に必要な初期値を設定するものである。本実施形態では、パラメータ設定手段３１は、計測員から初期値の設定（入力）を受け付けて、計測員が設定した初期値を調整計算手段３３に出力する。
例えば、ＢＯＸオブジェクトの初期値としては、ローカル座標系におけるＢＯＸオブジェクトの各端点の座標（Ｘ，Ｙ，Ｚ）、ＢＯＸオブジェクトの寸法Ｗ，Ｄ，Ｈ、キュービックパノラマ画像の回転角（全天球カメラ１０の姿勢）θ，φ，κがあげられる。
【００２９】
調整計算手段３３は、ＢＯＸオブジェクト調整計算基礎式（箱状オブジェクト調整計算基礎式）及び補助線調整計算基礎式を非線形最小二乗法で解くことで、全天球カメラ１０の姿勢及び位置を計算するものである。そして、調整計算手段３３は、計算した全天球カメラ１０の姿勢及び位置を収束判定手段３４に出力する。
ＢＯＸオブジェクト調整計算基礎式とは、ＢＯＸオブジェクトの端点の座標が反映された基礎式のことである。また、補助線調整計算基礎式とは、補助線の長さを拘束条件とした基礎式のことである。
【００３０】
収束判定手段３４は、調整計算手段３３から入力された全天球カメラ１０の姿勢及び位置が、予め設定された収束条件を満たすか否かを判定するものである。
収束条件を満たさない場合、収束判定手段３４は、調整計算手段３３に全天球カメラ１０の姿勢及び位置の再計算を指令する。
収束条件を満たす場合、収束判定手段３４は、推定結果として、調整計算手段３３から入力された全天球カメラ１０の姿勢及び位置を水平調整手段３５に出力する。
以下、調整計算の前提となる座標系の定義、ＢＯＸオブジェクト調整計算基礎式、補助線調整計算基礎式、非線形最小二乗法による解法を順に説明する。
【００３１】
＜座標系の定義＞
ローカル座標系は、画像計測対象空間の座標系であり、Ｘ−Ｙ−Ｚで表す。図１０（ａ）に示すように、ローカル座標系は、Ｚ軸方向が天井裏９の鉛直方向と一致し、Ｘ−Ｙ平面が天井裏９の底面（水平面）と平行になる。
全天球カメラ座標系（カメラ座標系）は、全天球カメラ１０の位置（光学主点）を原点とする座標系であり、ｘ−ｙ−ｚで表す。全天球カメラ座標系は、全天球カメラ１０の傾きをそのまま表し、ｚ軸方向が全天球カメラ１０の上方となる。つまり、全天球カメラ座標系は、ローカル座標系の原点を全天球カメラ１０の視点高さまで上げたうえ、ローカル座標系に全天球カメラ１０の傾きを与えたものとなる。
全天球画像座標系は、全天球カメラ座標系に配置されたキュービックパノラマ画像面上の座標系であり、ｘｉ−ｙｉ−ｚｉで表す。つまり、キュービックパノラマ画像上のある１点の座標は、全天球画像座標系で（ｘｉ，ｙｉ，ｚｉ）となる。なお、添え字ｉは、キュービックパノラマ画像の前面や右面などの各構成画像を表す（１≦ｉ≦６）。
【００３２】
前記したように、画像計測の際、全天球カメラ１０が傾いていないと仮定すること多い。だが実際には、全天球カメラ１０が傾いていることが多く、図１０（ａ）に示すように、キュービックパノラマ画像も傾いてしまう。従って、キュービックパノラマ画像における視点位置の水平面αは、図１０（ｂ）のように実際には傾いてしまう。このままでは正確な画像計測を行えないので、全天球カメラ１０の傾きを推定し、その傾きに合わせてキュービックパノラマ画像を回転させる（撮影時の傾きを再現する）ことが、水平調整の意味するところである。
【００３３】
＜ＢＯＸオブジェクト調整計算基礎式＞
ＢＯＸオブジェクトは、直方体状の箱型であり、８個の端点を有する。ＢＯＸオブジェクトの長手方向の長さをＷ、短手方向の長さをＤ、高さをＨとする。また、ＢＯＸオブジェクトの底面の１点をローカル座標系の原点Ｏとする。この場合、ＢＯＸオブジェクトの各端点の座標は、ローカル座標系において、（０，０，０）、（Ｗ，０，０）、（Ｗ，Ｄ，０）、（０，Ｄ，０）、（０，０，Ｈ）、（Ｗ，０，Ｈ）、（０，Ｄ，Ｈ）、（Ｗ，Ｄ，Ｈ）で表される。
【００３４】
全天球カメラ座標系において、ＢＯＸオブジェクトの各端点の座標を表す場合を考える。ローカル座標系の原点Ｏが全天球カメラ座標系で（ｘＯ，ｙＯ，ｚＯ）であり、回転行列Ｒが全天球カメラ座標系とローカル座標系との回転角を表すこととする。この場合、全天球カメラ座標系における端点（ｘ，ｙ，ｚ）と、ローカル座標系における端点（Ｘ，Ｙ，Ｚ）との座標変換式は、以下の式（１）で表される。
【００３５】
【数１】
2019190962.tif 000003
【００３６】
ここで、回転行列Ｒは、オイラー角、すなわち、水平角（全天球カメラ１０のパン角）θ、鉛直角（全天球カメラ１０のチルト角）φ、正面方向で光軸回りの角（全天球カメラ１０のロール角）κからなる。この場合、回転行列Ｒは、その成分をｒ１１〜ｒ３３とすると、以下の式（２）で表される。
【００３７】
【数２】
2019190962.tif 000004
【００３８】
ローカル座標系の原点Ｏや回転行列Ｒは未知であるが、それらの初期値は、初期値設定手段３２に設定されている。
ローカル座標系において、全天球カメラ１０の視点位置Ｃの座標（ＸＣ，ＹＣ，ＺＣ）は、全天球カメラ座標系の原点に対応する。また、全天球カメラ１０の視点位置Ｃの座標（ＸＣ，ＹＣ，ＺＣ）は、式（１）にｘ＝０、ｙ＝０、ｚ＝０を代入することで、以下の式（３）で算出できる。
【００３９】
【数３】
2019190962.tif 000005
【００４０】
全天球カメラ１０の視点位置Ｃから各端点までの距離Ｌは、以下の式（４）で表される。つまり、距離Ｌは、ローカル座標系において、全天球カメラ１０から端点までの距離を表す。
【００４１】
【数４】
2019190962.tif 000006
【００４２】
ここで、全天球カメラ１０の視点位置Ｃから各端点までの距離Ｌは、構成画像上においても同一であると考えられる。従って、この距離Ｌを用いることで、構成画像上の２次元座標を、３次元座標である全天球画像座標系に展開（変換）できる。キュービックパノラマ画像のうち、正面の構成画像上の端点の座標（ｕ，ｖ）、は、全天球カメラ１０の焦点距離をｆとすると、全天球画像座標系で（ｕ，−ｆ，ｖ）と表される。また、正面以外の構成画像に端点が写っている場合、その端点の座標（ｘｉ，ｙｉ，ｚｉ）は、回転行列Ｍを用いて、以下の式（５）で表される。
【００４３】
【数５】
2019190962.tif 000007
【００４４】
なお、回転行列Ｍは、正面の構成画像を基準とした、各構成画像の回転を表す回転行列である。この回転行列Ｍは、構成画像の画像面ごとに異なり、正面の構成画像に対する水平角Θ及び鉛直角Φを用いて、以下の式（６）で表される（但し、Θ＝０，π／２，−π／２であり、Φ＝０，π／２，−π／２である）。
【００４５】
【数６】
2019190962.tif 000008
【００４６】
以上のように、構成画像上の端点は、全天球画像座標系の３次元座標で表される。だが実際には、この端点の３次元座標は、構成画像上の位置を表すものであり、奥行き方向の距離が天井裏９での距離と全く異なるので、距離Ｌを用いて、正しい座標に展開（変換）する。
【００４７】
ここで、全天球画像座標系において、全天球カメラ１０から端点までの距離ｌは、以下の式（７）で表される。
【００４８】
【数７】
2019190962.tif 000009
【００４９】
よって、全天球カメラ座標系における端点の座標（ｘ，ｙ，ｚ）は、以下の式（８）で表される。
【００５０】
【数８】
2019190962.tif 000010
【００５１】
従って、全天球カメラ座標系における端点の座標（ｘ，ｙ，ｚ）を式（１）に代入し、未知変数として、全天球カメラ１０の姿勢（θ，φ，κ）と、全天球カメラ１０の位置（ｘＯ，ｙＯ，ｚＯ）とを非線形最小二乗法で求めればよい。
【００５２】
なお、ＢＯＸオブジェクトの寸法Ｗ，Ｄ，Ｈの何れか１以上が未知の場合、それも未知変数として解く必要がある。さらに、ＢＯＸオブジェクトの寸法Ｗ，Ｄ，Ｈの寸法によって距離Ｌも影響を受けるので、未知変数Ｗ，Ｄ，Ｈを解いた結果をもとに距離Ｌを再計算し、繰り返し演算を行う必要がある。
【００５３】
＜補助線調整計算基礎式＞
補助線調整計算基礎式は、２つの端点の座標（ｘｉ１，ｙｉ１，ｚｉ１）、（ｘｉ２，ｙｉ２，ｚｉ２）の差から計算されるベクトルに関する直交変換式である。両端点の縮尺変数をλ（λ１，λ２）とし、ローカル座標系で両端点のベクトルを（ｖＸ  ｖＹ  ｖＺ）とすると、補助線調整計算基礎式は、以下の式（９）で表される。なお、添え字Ｔは転置行列を表し、縮尺変数λ＝Ｌ／ｌとする。
【００５４】
【数９】
2019190962.tif 000011
【００５５】
補助線の長さをＳとする。Ｘ軸、Ｙ軸、Ｚ軸に平行な３本の線分を補助線とする場合、それぞれのベクトルは、（ｖＸ  ｖＹ  ｖＺ）＝（Ｓ  ０  ０），（０  Ｓ  ０），（０  ０  Ｓ）となる。補助線の長さＳが与えられている場合、式（９）において、回転行列Ｒ以外の未知変数はλ１，λ２の２つである。そして、式（９）は３つの式から成り立っているので、１つの拘束条件を与えることができる。
【００５６】
個々の端点については、式（１）において補助線の長さＳを拘束条件とすることで、以下の式（１０）が成り立つ。補助線の端点が底面に接している場合、Ｚ＝０となるので、式（１０）は、以下の式（１１）で表される。
【００５７】
【数１０】
2019190962.tif 000012
【００５８】
【数１１】
2019190962.tif 000013
【００５９】
式（１１）の第３式は、Ｚ座標に関するものであり、これを展開すると、以下の式（１２）で表される。この式（１２）から、縮尺変数λの関係式が得られる。これにより、式（９）における未知変数を１つ減らすことができる。両端点が底面に接している場合、未知変数をさらに減らすことができる。
【００６０】
【数１２】
2019190962.tif 000014
【００６１】
ここで、補助線が底面でなく上面に接する場合、Ｚ＝Ｈとして式（１０）を解けばよい。また、補助線が壁面に接する場合、Ｘ＝０、Ｘ＝Ｗ、Ｙ＝０又はＹ＝Ｄとして式（１０）を解けばよい。
なお、補助線の長さＳが与えられておらず、何れの端点も壁面等に接していない場合、Ｓ，λ１，λ２の３つが未知変数となるため、拘束条件とならない。
【００６２】
補助線が鉛直線の場合、構成画像の平面と天井裏９の壁面との関係から、以下の式（１３）が成り立つ。この式（１３）は、構成画像上の鉛直線のベクトルと、実際の鉛直線のベクトルが同じ方向を向いていることを表す。なお、２つの端点の座標を（ｕ１，ｖ１）、（ｕ２，ｖ２）とする。
【００６３】
【数１３】
2019190962.tif 000015
【００６４】
ここで、補助線の長さＳについても、その縮尺変数ｓ＝λ／Ｓが成り立つので、式（１３）は、以下の式（１４）で表される。この式（１４）では、ｓが未知変数であり、第２式がゼロとなる実質無効な式となる。つまり、式（１４）では、２つの式が有効であり、未知変数ｓを除去すると、実質的に１つの拘束条件が成立する。
【００６５】
【数１４】
2019190962.tif 000016
【００６６】
＜非線形最小二乗法による解法＞
非線形最小二乗法による解法としては、全ての未知変数について連立して調整計算する手法（以後、第１解法）と、未知変数と関係式を減らしてから調整計算する手法（以後、第２解法）の２つが考えられる。
【００６７】
第１解法は、関係式が比較的簡素な形となり、異なる拘束条件でも基本的に共通の関係式を利用できる一方、未知変数と関係式の数が多くなり、計算効率が低下する。この第１解法では、適切な初期値が必要となるため、初期値の算出において条件分離して個別に解く必要がある。初期値の算出だけであれば、式（１２）のようにさほど複雑にならないので、本実施形態では第１解法を適用する。
【００６８】
この第１解法では、全ての未知変数について連立させるので、以下の式（１５）〜式（１７）のような簡素な関係式となる。拘束条件の影響を受けるのは、式（１５）の左辺だけである。例えば、補助線が鉛直線の場合、（ｖＸ  ｖＹ  ｖＺ）＝（０  ０  Ｓ）となり、補助線がＸ軸方向の線の場合、（ｖＸ  ｖＹ  ｖＺ）＝（Ｓ  ０  ０）となるだけで、関係式は基本的に変わらない。
【００６９】
【数１５】
2019190962.tif 000017
【００７０】
【数１６】
2019190962.tif 000018
【００７１】
【数１７】
2019190962.tif 000019
【００７２】
テーラー展開による線形化を行う場合、例えば、式（１５）を以下の式（１８）とすれば、θの偏微分は、以下の式（１９）で表される。この式（１９）では、補助線の向きがＸ軸方向であれ、Ｙ軸方向であれ、Ｚ軸方向であれ、（ｖＸ  ｖＹ  ｖＺ）がθを含まないベクトルなので、共通したものを利用できる。
【００７３】
【数１８】
2019190962.tif 000020
【００７４】
【数１９】
2019190962.tif 000021
【００７５】
ここで、未知変数θの初期値をθ０として、未知変数θの補正値をΔθとすると、θ＝θ０＋Δθが成り立つ。各未知変数の初期値を代入した関数ｆをｆ０とすると、式（１５）は、以下の式（２０）で表される。
【００７６】
【数２０】
2019190962.tif 000022
【００７７】
式（１６）及び式（１７）についても、式（１５）と同様の式が成り立ち、それがＢＯＸオブジェクトの端点と補助線について成立するため、Σｅが最小となるように解けばよい。すなわち、以下の式（２１）を解くことになる。
【数２１】
2019190962.tif 000023
【００７８】
ここで、以下の式（２２）のように、得られるのは未知変数の補正値Δであるから、その補正値Δがほぼゼロになるまで繰り返し演算を行う。
【００７９】
【数２２】
2019190962.tif 000024
【００８０】
以上の調整計算をまとめると、調整計算手段３３は、式（５）を用いて、ＢＯＸオブジェクトの端点の座標を全天球画像座標系に変換する。そして、調整計算手段３３は、式（８）を用いて、全天球画像座標系における端点の座標を全天球カメラ座標系に変換する。さらに、調整計算手段３３は、全天球カメラ座標系における端点の座標が含まれる式（１）を、ＢＯＸオブジェクト調整計算基礎式として非線形最小二乗法で解く。さらに、調整計算手段３３は、式（１０）及び式（１２）を、補助線調整計算基礎式として非線形最小二乗法で解き、全天球カメラ１０の姿勢θ，φ，κ及び位置ｘＯ，ｙＯ，ｚＯの補正値Δを求める。
【００８１】
収束判定手段３４は、補正値Δがゼロを基準とした所定範囲内に収まるか否かという収束条件を判定する。そして、収束判定手段３４は、この拘束条件を満たすまで、調整計算手段３３に補正値Δの再計算を指令する。
なお、収束条件は、任意に設定可能である。例えば、収束条件は、正値Δが予め設定された回数以上更新されなくなった場合、調整計算を終了するという条件であってもよい。
【００８２】
図４に戻り、画像水平調整装置３０の構成について、説明を続ける。
水平調整手段３５は、収束判定手段３４から入力された推定結果（全天球カメラ１０の姿勢及び位置）を用いて、水平調整を行うものである。例えば、水平調整手段３５は、収束判定手段３４から入力された全天球カメラ１０の姿勢θ，φ，κに合わせて、キュービックパノラマ画像を回転させる。このとき、水平調整手段３５は、収束判定手段３４から入力された全天球カメラ１０の位置ｘＯ，ｙＯ，ｚＯに応じて、キュービックパノラマ画像を移動させてもよい。そして、水平調整手段３５は、回転後のキュービックパノラマ画像を画像計測手段２２に出力する。
【００８３】
［画像水平調整装置の動作］
図１１を参照し、画像水平調整装置３０の構成について説明する（適宜図４参照）。
図１１に示すように、パラメータ設定手段３１は、ＢＯＸオブジェクトの設定を行う。具体的には、パラメータ設定手段３１は、キュービックパノラマ画像を表示手段２４に表示し、計測員がＢＯＸオブジェクトを設定する。また、パラメータ設定手段３１は、計測員の操作に応じて、図８のＢＯＸオブジェクト設定画面を表示し、計測員がＢＯＸオブジェクトの辺を補助線として設定する（ステップＳ１）。
【００８４】
パラメータ設定手段３１は、基準線の設定を行う。具体的には、パラメータ設定手段３１は、計測員の操作に応じて、図９の基準線設定画面を表示し、計測員が基準線を設定する（ステップＳ２）。
なお、ステップＳ１においてＢＯＸオブジェクトに補助線が設定されている場合、このステップＳ２の処理は必須でない。
【００８５】
初期値設定手段３２は、ステップＳ２で設定されたＢＯＸオブジェクトについて、調整計算に必要な初期値を設定する（ステップＳ３）。
調整計算手段３３は、ステップＳ２で設定したＢＯＸオブジェクト及びＢＯＸオブジェクトの補助線について、ＢＯＸオブジェクト調整計算基礎式及び補助線調整計算基礎式を非線形最小二乗法で解くことで、全天球カメラ１０の姿勢及び位置を計算する（ステップＳ４）。
【００８６】
収束判定手段３４は、ステップＳ４の推定結果が収束条件を満たすか否かを判定する（ステップＳ５）。
収束条件を満たさない場合（ステップＳ５でＮｏ）、画像水平調整装置３０は、ステップＳ４の処理に戻る。
収束条件を満たす場合（ステップＳ５でＹｅｓ）、画像水平調整装置３０は、ステップＳ６の処理に進む。
このように、画像水平調整装置３０は、収束条件を満たすまで、ステップＳ４の調整計算を繰り返す。
【００８７】
調整計算手段３３は、ステップＳ３で基準線が設定されているか否かを判定する（ステップＳ６）。
基準線が設定されている場合（ステップＳ６でＹｅｓ）、画像水平調整装置３０は、ステップＳ７の処理に進む。
調整計算手段３３は、ステップＳ３で設定した基準線を加え、ＢＯＸオブジェクト調整計算基礎式及び補助線調整計算基礎式を非線形最小二乗法で解くことで、全天球カメラ１０の姿勢及び位置を計算する（ステップＳ７）。
【００８８】
収束判定手段３４は、ステップＳ７の推定結果が収束条件を満たすか否かを判定する（ステップＳ８）。
収束条件を満たさない場合（ステップＳ８でＮｏ）、画像水平調整装置３０は、ステップＳ７の処理に戻る。
収束条件を満たす場合（ステップＳ８でＹｅｓ）、画像水平調整装置３０は、ステップＳ９の処理に進む。
このように、画像水平調整装置３０は、収束条件を満たすまで、ステップＳ７の調整計算を繰り返す。
【００８９】
基準線が設定されていない場合（ステップＳ６でＮｏ）、又は、ステップＳ８の処理に続いて、水平調整手段３５は、ステップＳ４又はステップＳ７の推定結果を用いて、水平調整を行う（ステップＳ９）。
【００９０】
［作用・効果］
以上のように、画像水平調整装置３０は、キュービックパノラマ画像上にＢＯＸオブジェクトを設定し、そのＢＯＸオブジェクトを利用した調整計算により、全天球カメラ１０の姿勢及び位置を推定することができる。従って、画像水平調整装置３０は、計測機材を必要とすることがなく、キュービックパノラマ画像を撮影可能な空間であれば、容易に水平調整を行うことができる。
【００９１】
さらに、画像水平調整装置３０は、基準線を追加的に設定すれば、その推定精度をより向上させることができる。このとき、画像水平調整装置３０は、寸法が既知の点検口などを基準線として代用できるので、基準線の設定自体も容易である。
さらに、画像水平調整装置３０は、天井裏９のような画像計測対象空間全体にＢＯＸオブジェクトを設定するので、局所的な画像歪の影響を受けにくく、推定誤差を抑制することがきる。
【００９２】
（変形例）
以上、本発明の実施形態を詳述してきたが、本発明は前記した実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
前記した実施形態では、初期値を手動で設定することとして説明したが、既知の手法により初期値を計算してもよい。
【００９３】
前記した実施形態では、全ての未知変数について連立して解く手法を説明したが（第１解法）、非線形最小二乗法の解法が特に限定されない。
例えば、本発明に係る画像水平調整装置は、未知変数と関係式を減らしてから解いてもよい（第２解法）。具体的には、式（１２）を補助線調整計算基礎式である式（１０）に代入すると、以下の式（２３）が得られる。そして、式（２３）をテーラー展開し、θなどの未知変数毎にまとめればよい。
【００９４】
【数２３】
2019190962.tif 000025
【００９５】
前記した実施形態では、画像計測対象空間が天井裏であることとして説明したが、画像計測対象空間は、特に制限されない。特に、本発明に係る画像水平調整装置は、設備や配管が多数配置されているため又は空間自体が狭いため、手動の水平調整が困難な狭隘空間の画像計測に最適である。
【００９６】
前記した実施形態では、本発明に係る画像水平調整装置が画像計測装置に内蔵されていることとして説明したが、これに限定されない。例えば、本発明に係る画像水平調整装置は、独立した装置であってもよい。さらに、本発明は、コンピュータが備えるＣＰＵ、メモリ、ハードディスク等のハードウェア資源を、前記した画像水平調整装置として協調動作させるプログラムで実現することもできる。これらのプログラムは、通信回線を介して配布してもよく、ＣＤ−ＲＯＭやフラッシュメモリ等の記録媒体に書き込んで配布してもよい。
【符号の説明】
【００９７】
１  図面生成システム
１０  全天球カメラ
２０  画像計測装置
２１  キュービックパノラマ画像変換手段
２２  画像計測手段
３０  画像水平調整装置
３１  パラメータ設定手段
３２  初期値設定手段
３３  調整計算手段
３４  収束判定手段
３５  水平調整手段
４０  図面生成装置
【図１】
2019190962.tif 000031
【図２】
2019190962.tif 000032
【図３】
2019190962.tif 000033
【図４】
2019190962.tif 000034
【図５】
2019190962.tif 000035
【図６】
2019190962.tif 000036
【図７】
2019190962.tif 000037
【図８】
2019190962.tif 000038
【図９】
2019190962.tif 000039
【図１０】
2019190962.tif 000040
【図１１】
2019190962.tif 000041