(57)【要約】【課題】カメラで画像を撮影した際のカメラの位置及び姿勢を精度良く推定することができるカメラ情報修正装置、カメラ情報修正方法、及びカメラ情報修正プログラムを提供する。【解決手段】実世界のシーンを表す三次元点群から物体が抽出されると共に、抽出された物体の欠損部分が修復される。また、シーン内で撮影された撮影画像から画像エッジが抽出され、シーン内で撮影画像を撮影した際のカメラの位置及び姿勢を示す位置姿勢情報を用いて、復元された物体に対して透視投影を行い物体の輪郭に相当するモデルエッジが抽出され、抽出された画像エッジと、抽出されたモデルエッジとのズレ量に応じて位置姿勢情報が修正される。【選択図】図１
2018067188.tif 000002
【特許請求の範囲】
【請求項１】
実世界のシーンを表す三次元点群から物体を抽出する物体抽出部と、
前記物体抽出部により抽出された前記物体の欠損部分を修復する物体復元部と、
前記シーン内で撮影された撮影画像から画像エッジを抽出する画像エッジ抽出部と、
前記シーン内で撮影画像を撮影した際のカメラの位置及び姿勢を示す位置姿勢情報を用いて、前記物体復元部により復元された前記物体に対して透視投影を行い物体の輪郭に相当するモデルエッジを抽出するモデルエッジ抽出部と、
前記画像エッジ抽出部により抽出された前記画像エッジと、前記モデルエッジ抽出部により抽出された前記モデルエッジとのズレ量に応じて前記位置姿勢情報を修正するカメラ情報修正部と、
を含むカメラ情報修正装置。
【請求項２】
前記物体抽出部は、円柱、角柱、円錐、角錐、球、トーラス、及び平面の何れかの形状の物体を抽出する
請求項１記載のカメラ情報修正装置。
【請求項３】
前記物体抽出部は、全体が円柱の形状の前記物体、又は少なくとも一部に円柱の形状の部分を含む前記物体を抽出する
請求項１又は２記載のカメラ情報修正装置。
【請求項４】
前記物体復元部は、前記物体抽出部により抽出された前記物体を構成する前記三次元点群における点の分布に基づいて、前記物体を分割する必要があるか否かを判断し、前記分割する必要がないと判断した場合には前記物体に最も適合する幾何的プリミティブを当てはめることによって前記物体の前記欠損部分を復元すると共に、前記分割する必要があると判断した場合には前記物体を複数の部分に分割し、分割した前記部分に最も適合する幾何的プリミティブを当てはめることによって前記部分の前記欠損部分を復元する
請求項１〜３の何れか１項記載のカメラ情報修正装置。
【請求項５】
前記モデルエッジ抽出部は、前記物体の輪郭に相当する制御点の集合を抽出し、
前記カメラ情報修正部は、画像平面上に投影された前記物体の輪郭に相当する前記制御点の集合を前記画像エッジに割り当てて前記ズレ量を算出し、算出した前記ズレ量に応じて前記位置姿勢情報を修正する
請求項１〜４の何れか１項記載のカメラ情報修正装置。
【請求項６】
前記カメラ情報修正部は、前記ズレ量、及び前記位置姿勢情報の修正回数の少なくとも一方に基づき前記ズレ量に重み付けを行った状態で、前記位置姿勢情報を修正する
請求項１〜５の何れか１項記載のカメラ情報修正装置。
【請求項７】
物体抽出部、物体復元部、画像エッジ抽出部、モデルエッジ抽出部、及びカメラ情報修正部を含むカメラ情報修正装置におけるカメラ情報修正方法であって、
前記物体抽出部が、実世界のシーンを表す三次元点群から物体を抽出するステップと、
前記物体復元部が、前記物体抽出部により抽出された物体の欠損部分を修復するステップと、
前記画像エッジ抽出部が、前記シーン内で撮影された撮影画像から画像エッジを抽出するステップと、
前記モデルエッジ抽出部が、前記シーン内で撮影画像を撮影した際のカメラの位置及び姿勢を示す位置姿勢情報を用いて、前記物体復元部により復元された前記物体に対して透視投影を行い物体の輪郭に相当するモデルエッジを抽出するステップと、
前記カメラ情報修正部が、前記画像エッジ抽出部により抽出された前記画像エッジと、前記モデルエッジ抽出部により抽出された前記モデルエッジとのズレ量に応じて前記位置姿勢情報を修正するステップと、
を行うカメラ情報修正方法。
【請求項８】
コンピュータを、請求項１〜６の何れか１項記載のカメラ情報修正装置を構成する各部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カメラ情報修正装置、カメラ情報修正方法、及びカメラ情報修正プログラムに係り、特に、画像が撮影された際のカメラの位置及び姿勢を推定するカメラ情報修正装置、カメラ情報修正方法、及びカメラ情報修正プログラムに関する。
【背景技術】
【０００２】
近年、ジャイロセンサ、ＧＰＳ（Global Positioning System）等を搭載したスマートフォン、レーザー計測機器、カメラ等が広く使用されるようになった。また同様に、ＧＰＳ、ＩＭＵ（Inertial Measurement Unit）等の複数のセンサを具備した計測車両も広く使用されるようになった。これらの機器が使用されることにより、カメラで画像を撮影した際のカメラの位置及び姿勢を示す位置姿勢情報が付与された画像が容易に得られるようになった。
【０００３】
しかし、カメラの位置及び姿勢を計測するセンサによる計測結果には、ノイズが含まれていて、位置姿勢情報によって示されるカメラの位置及び姿勢と、実際のカメラの位置及び姿勢との間にズレが発生する。そのため、画像に付与された位置姿勢情報、及び、実世界の光景（シーン）を表す三次元モデルを用いて、実際に撮影された撮影画像と同様の画像を透視投影によって仮想的に復元しようとしても、三次元モデルの画像平面上への投影位置がズレてしまい、実世界のシーンと同じ画像を得ることは難しい。
【０００４】
よって、位置姿勢情報によって示されるカメラの位置及び姿勢と、実際のカメラの位置及び姿勢との間のズレを解消し、三次元モデルを画像平面上へ投影して得られる画像が、撮影画像に限りなく一致するように位置姿勢情報を修正することが望ましい。
【０００５】
ここで、予め用意されたＣＡＤ（computer-aided design）等の三次元モデルと、この三次元モデルに相当する実世界の物体を撮影した撮影画像と、が入力として与えられたとする。このような場合に、上記物体を撮影した際のカメラの位置及び姿勢を推定するという問題に対して、コンピュータビジョン分野において古くから取り組まれている。
【０００６】
このような問題を解決する手法として、三次元モデルによって示される物体と、撮影画像に写っている物体とのそれぞれから、物体の特徴的形状を表すコーナー、エッジ等の形状情報を検出し、三次元モデルによって示される物体を画像平面上に投影した際の特徴的形状の投影位置が、撮影画像から検出した特徴的形状の位置と一致するように、カメラの位置及び姿勢を推定する手法がある（非特許文献１参照）。
【０００７】
ＣＡＤ、メッシュ等のように物体の境界、輪郭、あるいはコーナーが取得しやすい形式によって表現された三次元モデルによって示される物体を用いてカメラの位置及び姿勢を推定する場合には、用いられる三次元モデルはノイズを含まないため、物体の正確な形状情報を取得できる。そのため、三次元モデルによって示される物体を用いてカメラの位置及び姿勢を推定する手法は、カメラの位置及び姿勢を推定する手法に適していると考えられる。
【０００８】
しかし、このようなノイズを含まない三次元モデルを用いた場合であっても、エッジ、輪郭等を除いて、三次元モデル及び撮影画像の双方から自動的に同一の箇所に対応する形状情報を取り出すことは極めて困難であるため、このような手法の実用化はほぼ不可能であると考えられる。
【０００９】
さらに、実世界のシーンを表す三次元点群を三次元モデルとして表すためには、単一の物体のみならず複数の物体が存在する複雑な三次元モデルが必要となることに加え、計測時の制約等によって、実世界の物体が特定の一方向からのみ計測される場合が多い。その結果、実世界のシーンを一方向から見た片面のみの三次元点群しか存在しないことが多い。よって、不完全な三次元点群から物体のエッジ、輪郭等を抽出することになるため、実世界の物体とは異なる誤った形状情報が抽出されてしまう可能性がある。また、このようにして得られた誤った形状情報を撮影画像の形状情報に合わせこんだ結果、推定されるカメラの位置及び姿勢は当然のことながら誤ったものとなる。
【先行技術文献】
【非特許文献】
【００１０】
【非特許文献１】SoftPOSIT: Simultaneous Pose and Correspondence Determination, P. David et al., International Journal of Computer Vision, vol. 59, no. 3, pp. 259-284, 2004.
【発明の概要】
【発明が解決しようとする課題】
【００１１】
一般的に、実世界のシーンを表す三次元点群と、当該シーンを撮影した撮影画像と、が入力された場合、三次元点群及び撮影画像の各々からエッジ、輪郭等を抽出し、三次元点群から抽出されたエッジ、輪郭等を画像平面上に投影した投影位置が、撮影画像から抽出されたエッジ、輪郭等に一致するように、カメラの位置及び姿勢を推定する。
【００１２】
しかし、実世界の物体を計測することにより得られる三次元点群は、実世界において複数の物体が重なり合っていること等により、欠損部分を含んでいることが多い。そのため、三次元点群からエッジ、輪郭等を正確に抽出することは困難であり、上述した欠損部分を含んでいることが、カメラの位置及び姿勢を推定する際の推定精度の低下の要因となっている。
【００１３】
本発明は、以上のような事情に鑑みてなされたものであり、カメラで画像を撮影した際のカメラの位置及び姿勢を精度良く推定することができるカメラ情報修正装置、カメラ情報修正方法、及びカメラ情報修正プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
また、上記目的を達成するために、本発明のカメラ情報修正装置は、実世界のシーンを表す三次元点群から物体を抽出する物体抽出部と、前記物体抽出部により抽出された前記物体の欠損部分を修復する物体復元部と、前記シーン内で撮影された撮影画像から画像エッジを抽出する画像エッジ抽出部と、前記シーン内で撮影画像を撮影した際のカメラの位置及び姿勢を示す位置姿勢情報を用いて、前記物体復元部により復元された前記物体に対して透視投影を行い物体の輪郭に相当するモデルエッジを抽出するモデルエッジ抽出部と、前記画像エッジ抽出部により抽出された前記画像エッジと、前記モデルエッジ抽出部により抽出された前記モデルエッジとのズレ量に応じて前記位置姿勢情報を修正するカメラ情報修正部と、を含む。
【００１５】
また、本発明のカメラ情報修正装置は、前記物体抽出部は、円柱、角柱、円錐、角錐、球、トーラス、及び平面の何れかの形状の物体を抽出するようにしても良い。
【００１６】
また、本発明のカメラ情報修正装置は、前記物体抽出部は、全体が円柱の形状の前記物体、又は少なくとも一部に円柱の形状の部分を含む前記物体を抽出するようにしても良い。
【００１７】
また、本発明のカメラ情報修正装置は、前記物体復元部は、前記物体抽出部により抽出された前記物体を構成する前記三次元点群における点の分布に基づいて、前記物体を分割する必要があるか否かを判断し、前記分割する必要がないと判断した場合には前記物体に最も適合する幾何的プリミティブを当てはめることによって前記物体の前記欠損部分を復元すると共に、前記分割する必要があると判断した場合には前記物体を複数の部分に分割し、分割した前記部分に最も適合する幾何的プリミティブを当てはめることによって前記部分の前記欠損部分を復元するようにしても良い。
【００１８】
また、本発明のカメラ情報修正装置は、前記モデルエッジ抽出部は、前記物体の輪郭に相当する制御点の集合を抽出し、前記カメラ情報修正部は、画像平面上に投影された前記物体の輪郭に相当する前記制御点の集合を前記画像エッジに割り当てて前記ズレ量を算出し、算出した前記ズレ量に応じて前記位置姿勢情報を修正するようにしても良い。
【００１９】
また、本発明のカメラ情報修正装置は、前記カメラ情報修正部は、前記ズレ量、及び前記位置姿勢情報の修正回数の少なくとも一方に基づき前記ズレ量に重み付けを行った状態で、前記位置姿勢情報を修正するようにしても良い。
【００２０】
また、本発明のカメラ情報修正方法は、物体抽出部、物体復元部、画像エッジ抽出部、モデルエッジ抽出部、及びカメラ情報修正部を含むカメラ情報修正装置におけるカメラ情報修正方法であって、前記物体抽出部が、実世界のシーンを表す三次元点群から物体を抽出するステップと、前記物体復元部が、前記物体抽出部により抽出された物体の欠損部分を修復するステップと、前記画像エッジ抽出部が、前記シーン内で撮影された撮影画像から画像エッジを抽出するステップと、前記モデルエッジ抽出部が、前記シーン内で撮影画像を撮影した際のカメラの位置及び姿勢を示す位置姿勢情報を用いて、前記物体復元部により復元された前記物体に対して透視投影を行い物体の輪郭に相当するモデルエッジを抽出するステップと、前記カメラ情報修正部が、前記画像エッジ抽出部により抽出された前記画像エッジと、前記モデルエッジ抽出部により抽出された前記モデルエッジとのズレ量に応じて前記位置姿勢情報を修正するステップと、を行う。
【００２１】
また、上記目的を達成するために、本発明のカメラ情報修正プログラムは、コンピュータを、本発明のカメラ情報修正装置の各部として機能させるためのプログラムである。
【発明の効果】
【００２２】
本発明によれば、カメラで画像を撮影した際のカメラの位置及び姿勢を精度良く推定することが可能となる。
【図面の簡単な説明】
【００２３】
【図１】本発明の実施形態に係る三次元点群に対する画像のカメラ情報修正装置の構成を示すブロック図である。
【図２】本発明の実施形態に係るカメラ情報修正装置の基礎データ記憶部の一例を示す図である。
【図３】本発明の実施形態に係るカメラ情報修正装置のモデルエッジ抽出部の一例を説明する模式図である。
【図４】本発明の実施形態に係るカメラ情報修正装置の三次元物体記憶部の一例を示す図である。
【図５】本発明の実施形態に係るカメラ情報修正装置の物体復元部による物体の復元方法の一例を説明するための模式図である。
【図６】本発明の実施形態に係るカメラ情報修正装置の復元モデル記憶部の一例を示す図である。
【図７】本発明の実施形態に係るカメラ情報修正装置のモデルエッジ記憶部の一例を示す図である。
【図８】本発明の実施形態に係るカメラ情報修正装置の画像エッジ記憶部の一例を示す図である。
【図９】本発明の実施形態に係るカメラ情報修正装置のカメラ情報修正部で用いられるモデルエッジと画像エッジのズレを説明するための模式図である。
【図１０】本発明の実施形態に係るカメラ情報修正装置におけるモデル抽出ルーチンを示すフローチャートである。
【図１１】本発明の実施形態に係るカメラ情報修正装置における係る合わせこみルーチンを示すフローチャートである。
【発明を実施するための形態】
【００２４】
以下、図面を参照して本発明の実施形態を詳細に説明する。
【００２５】
まず、図１を参照して、本実施形態に係るカメラ情報修正装置の構成について説明する。
【００２６】
本実施形態に係るカメラ情報修正装置１００は、装置全体を統括して制御するＣＰＵと、ＣＰＵによる制御に必要なデータを一時的に記憶するＲＡＭと、後述するモデル抽出プログラム及び合わせこみプログラムを含む各種プログラム、各種データ等を記憶したＲＯＭと、を含むコンピュータで構成される。
【００２７】
また、カメラ情報修正装置１００は、入力部１０と、演算部２０と、出力部５０とを備えている。
【００２８】
入力部１０は、実世界の光景（シーン）に相当する三次元点群を示すデータの入力を受け付け、受け付けた三次元点群を示すデータを基礎データ記憶部３０へ格納する。三次元点群を示すデータは、一例として図２に示すように、三次元点群に含まれる各々の制御点を識別するための制御点番号、及びＸＹＺ座標が、制御点毎に対応付けられたデータである。
【００２９】
本実施形態で用いる三次元点群としては、レーザーを用いた計測機器を具備した計測車両を用いて、計測機器により計測車両の屋外を計測することによって得られた三次元点群が例示される。あるいは、このような三次元点群としては、屋外において撮影された大量の画像から三次元再構成技術等を用いて復元された三次元点群等が例示される。
【００３０】
また、入力部１０は、上述した三次元点群によって表されるシーンにおいてカメラにより撮影された撮影画像と、この撮影画像を撮影した際のカメラの位置及び姿勢を表す位置姿勢情報、及びカメラの内部パラメータと、を入力として受け付ける。入力部１０は、受け付けた撮影画像を、画像データ記憶部３１に格納させる。また、入力部１０は、受け付けた位置姿勢情報及び内部パラメータをカメラ情報記憶部３２に格納させる。
【００３１】
受け付けた撮影画像及び位置姿勢情報のペアは、例えば、カメラを有する携帯端末（例えば、スマートフォン）で撮影を行う場合、撮影時のジャイロ情報及びＧＰＳの計測値、あるいはスマートフォンの位置及び姿勢を計測可能な計測機器を具備した計測車両によって取得される。また、カメラの位置姿勢情報は、例えば、３×３のサイズの回転行列Ｒと三次元列ベクトルｔで与えられる。カメラの内部パラメータとしては、少なくとも焦点距離及び画像中心を取得する。しかし、歪み補正等に関するパラメータ等については、必ずしも取得する必要はない。
【００３２】
演算部２０は、前処理部２２と、物体抽出部２４と、物体復元部２６と、基礎データ記憶部３０と、画像データ記憶部３１と、カメラ情報記憶部３２と、三次元物体記憶部３３と、復元モデル記憶部３４と、モデルエッジ記憶部３５と、画像エッジ記憶部３６と、モデルエッジ抽出部４０と、画像エッジ抽出部４２と、カメラ情報修正部４４とを含んで構成される。
【００３３】
前処理部２２は、後述する各部の処理によって、上述した三次元点群から、幾何的合わせこみに利用する三次元物体を抽出する。また、前処理部２２は、抽出した三次元物体を予め用意された三次元モデルに当てはめるモデル当てはめを行うことによって、抽出した三次元物体における欠損部分を復元する。
【００３４】
前処理部２２は、物体抽出部２４と、物体復元部２６とを含んで構成される。
【００３５】
物体抽出部２４は、入力部１０で受け付けられた三次元点群から、合わせこみの際の手がかりとして利用する予め定めた形状で区分的に近似できる物体を抽出する。予め定めた形状としては、円柱、角柱、円錐、角錐、球、トーラス、平面等の幾何的プリミティブが例示され、上述したように、本実施形態では、全体又は一部が円柱の形状の物体が抽出される。
【００３６】
具体的には、全体又は一部が円柱の形状の物体としては、例えば、電柱のように全体が円柱の形状に構成されている物体、細長い円柱をゆるやかに湾曲させることによって構成されるケーブルのような物体等が例示される。なお、幾何学的合わせこみに利用する三次元物体を三次元点群から抽出する技術は盛んに研究されており、このような技術として、例えば、下記参考文献１及び２に開示されている技術を利用することができる。
【００３７】
［参考文献１］特開２０１４−１０６７２５号公報
［参考文献２］特開２０１５−１９０１号公報
【００３８】
また、物体抽出部２４は、抽出した物体を示す三次元点群のデータを三次元物体記憶部３３に記憶させる。なお、ここで抽出されたＮ個の物体を、Ｍ１,…,ＭＮとする。
【００３９】
三次元物体記憶部３３には、物体抽出部２４で抽出された各々の物体を示す三次元点群（三次元座標の集合）のデータが記憶される。これらの三次元点群のデータは、一例として図４に示すように、抽出された各々の物体を識別するための物体番号（Ｎｏ）、分割フラグ、三次元点群を形成する各々の制御点を識別するための制御点番号（Ｎｏ）、及び制御点のＸＹＺ座標が、抽出された物体毎に対応付けられたデータである。ここでの分割フラグは、分割された物体であるか否かを示すフラグであり、分割されている場合には「ｔｒｕｅ」で表され、分割されていない場合には「ｆａｌｓｅ」で表される。
【００４０】
なお、本実施形態では、物体抽出部２４が物体を抽出する際に、Ｎ個の物体Ｍ１,…,ＭＮのそれぞれについて、全体が円柱である場合、すなわち物体が分割されていない場合には、分割フラグを「ｆａｌｓｅ」とし、物体における一部分が円柱である場合、すなわち物体が分割されている場合には、分割フラグを「ｔｒｕｅ」とする場合について説明する。しかし、全体が円柱であるか、物体における一部分が円柱であるかを判断できない場合には、分割フラグについて三次元物体記憶部３３に記憶されなくても良い。
【００４１】
物体復元部２６は、三次元物体記憶部３３に記憶されたＮ個の物体Ｍ１,…,ＭＮのそれぞれについて、分割する必要があるか否かを判定する。この際、本実施形態では、三次元物体記憶部３３に記憶されている分割フラグに基づいて、物体を分割する必要があるか否かを判定する。しかし、三次元物体記憶部３３に分割フラグが記憶されていない場合には、物体を構成する点群が三次元空間上でどのように分布しているかを主成分分析によって求める。具体的には、物体に対して主成分分析を行うと、３つの固有値とこれらの固有値に対応する固有ベクトルが得られる。このうち最も大きな固有値λ１と、２番目に大きな固有値λ２の比率によって、物体を分割する必要があるか否かを判定すれば良い。
【００４２】
物体復元部２６は、物体を分割する必要がない場合には、物体の全体に対して円柱を当てはめる。
【００４３】
一方、物体復元部２６は、物体を分割する必要がある場合には、例えば、下記参考文献３に開示されているクラスタリングの手法を用いて、物体を複数の部分に分割する。
【００４４】
［参考文献３］Voxel cloud connectivity segmentation - supervoxels for point clouds, J. Papon et al., Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2013.
【００４５】
ここでは、物体ＭｉがＫ個の部分Ｐｉ１…ＰｉＫに分割されたとする。なお、分割で得られた各部分も点群であることに注意する。次に、物体復元部２６は、分割で得られた各部分に対して円柱を当てはめる。
【００４６】
なお、円柱を当てはめる手法としては、ハフ変換やＲＡＮＳＡＣを利用した手法等が例示され、これらの手法を利用すれば良い（例えば、下記参考文献４参照）。
【００４７】
［参考文献４］Efficient RANSAC for point-cloud shape detection, R. Schnabel et al., Computer Graphics Forum, vol. 26, no. 2, pp. 214-226, 2007.
【００４８】
このように、三次元点群で示された円柱の形状の物体の部分に対して、円柱の三次元モデルを当てはめることにより、一例として図５に示すように、各部分について、計測によって得られた形状５２における欠損部分５２ａが復元された形状５４が得られる。
【００４９】
物体の部分に円柱を当てはめることにより得られた円柱を、底面に相当する２つの円の中心座標（ｘ１，ｙ１，ｚ１）及び（ｘ２，ｙ２，ｚ２）と、円の半径ｒとで表す。物体復元部２６は、部分Ｐｉｋをこれらの７つのパラメータ（ｘ１，ｙ１，ｚ１，ｘ２，ｙ２，ｚ２，ｒ）で表すと共に、７つのパラメータで表した部分Ｐｉｋを示すデータを復元モデル記憶部３４に記憶させる。
【００５０】
部分Ｐｉｋを示すデータは、一例として図６に示すように、各々の部分Ｐｉｋを識別するための部分番号（Ｎｏ）、及び、上述した７つのパラメータ（ｘ１，ｙ１，ｚ１，ｘ２，ｙ２，ｚ２，ｒ）が、部分Ｐｉｋ毎に対応付けられたデータである。
【００５１】
なお、本実施形態では、三次元点群で示された円柱の形状の物体、又は物体を分割して得られる円柱の形状の部分Ｐｉｋに対して、円柱の幾何的プリミティブが当てはめられる場合について説明したが、これに限らない。例えば、上述した幾何的プリミティブのうち、円柱以外の形状を用いて、三次元点群で示された当該形状の物体、又は物体を分割して得られる当該形状の部分Ｐｉｋに対して、当該形状の幾何的プリミティブが当てはめられれば良い。
【００５２】
モデルエッジ抽出部４０は、カメラ情報記憶部３２に記憶されているカメラの内部パラメータ及び位置姿勢情報に基づき、物体復元部２６によって復元されて復元モデル記憶部３４に記憶された円柱を、画像平面上に透視投影することにより得られる領域の輪郭のうち、円柱側面に対応するエッジを抽出する。
【００５３】
一例として図３に示すように、透視投影を行う際には、まず、円柱の形状の物体４６を表現する上述した７つのパラメータを用いて、物体４６の中心軸を通る鉛直な平面で円柱を切断して得られる長方形５６の頂点５６ａ、５６ｂ、５６ｃ、５６ｄの三次元座標を計算する。ここで、円柱の底面に相当する２つの円盤５８の半径をｒとし、２つの円盤の中心５８ａ、５８ｂの中心座標を（ｘ１，ｙ１，ｚ１）及び（ｘ２，ｙ２，ｚ２）とし、これらの２点の中心座標を結ぶベクトルであって長さを１としたベクトルをｖｄとし、三次元空間内で鉛直方向を向いた単位ベクトルをｎｚとし、これらの２つのベクトルに直交する単位ベクトルをｎ＾とした場合について考える。
【００５４】
ベクトルｖｄと単位ベクトルｎｚとが平行でない場合には、これらの４点は下記（１）式のように表される。
【００５５】
【数１】
2018067188.tif 000003
・・・（１）
【００５６】
ただし、単位ベクトルｎ＾が自身の要素を用いてｎ＾＝［ｎｘ＾  ｎｙ＾  ｎｚ＾］と表される場合には、Ｒ（ｎ＾，θ）は、下記（２）式及び（３）式に示すようにロドリゲスの式で表される３×３の行列である。
【００５７】
【数２】
2018067188.tif 000004
・・・（２）
【００５８】
【数３】
2018067188.tif 000005
・・・（３）
【００５９】
一方、ベクトルｖｄと単位ベクトルｎｚとが平行な場合には、円柱の中心を通り、かつ、画像平面に対して平行な面で円柱を切断して得られる４点を考える。
【００６０】
続いて、長方形５６の４辺のうち、円柱の中心軸を通る平面と円柱の側面との交線６０ａ、６０ｂを、カメラ４８の内部パラメータを用いて画像平面６２上に投影し、投影した画像における交線６０ａ、６０ｂをエッジ（以下、「モデルエッジ」という。）として抽出すると共に、交線６０ａ、６０ｂの両端の画像平面６２上での座標を取得する。
【００６１】
なお、透視投影の詳細な計算方法については下記参考文献５に開示されているため、ここでの説明を省略する。
【００６２】
［参考文献５］コンピュータビジョン―アルゴリズムと応用―、Richard Szeliski 著・玉木 徹・福嶋 慶繁・飯山 将晃・鳥居 秋彦・栗田 多喜夫・波部 斉・林 昌希・野田 雅文訳、共立出版、2013.
【００６３】
このようにして得られた２つのモデルエッジの端点の画像平面６２上の座標（画像座標系における座標）（ｘ，ｙ）と、三次元点群におけるこれらの端点に相当する三次元座標（ｕ，ｖ，ｗ）とを示すモデルエッジ情報を、モデルエッジ記憶部３５に記憶させる。なお、上述した長方形の頂点に相当する三次元座標は位置姿勢情報を更新する際に必要となる。
【００６４】
モデルエッジ情報は、一例として図７に示すように、上述した各々のモデルエッジを識別するためのモデルエッジ番号（Ｎｏ）、モデルエッジにおける一方の端点の画像平面６２上の座標（ｘ１１，ｙ１１）と三次元点群における三次元座標（ｕ１１，ｖ１１，ｗ１１）、及び、モデルエッジにおける他方の端点の画像平面６２上の座標（ｘ１２，ｙ１２）と三次元点群における三次元座標（ｕ１２，ｖ１２，ｗ１２）が、モデルエッジ毎に対応付けられた情報である。
【００６５】
なお、本実施形態では、モデルエッジ情報によりモデルエッジを現すが、これに限らない。例えば、モデルエッジ情報そのものではなく、モデルエッジとの距離が所定の閾値よりも短い制御点の座標と、それらの制御点の画像平面上の座標と、のペアからなる集合を、モデルエッジを現すものとして用いても良い。
【００６６】
画像エッジ抽出部４２は、入力された撮影画像からエッジ（以下、「画像エッジ」という。）を検出する。
【００６７】
撮影画像から画像エッジを検出する手法としては、ハフ変換を用いる手法、確率的ハフ変換を用いる手法、ＬＳＤ（Line Segment Detector）を用いる手法（非特許文献６参照）等が例示され、これらの手法を状況に応じて利用すれば良い。なお、本実施形態では、ＬＳＤを用いる場合について説明する。
【００６８】
［参考文献６］LSD: A Fast Line Segment Detector with a False Detection Control, R. Grompone et al., IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 32, no. 4, pp. 722-732, 2010.
【００６９】
画像エッジ抽出部４２は、検出された画像エッジの端点を表す２つの画像座標（ｘ，ｙ）及び（ｘ’，ｙ’）を画像エッジ情報として画像エッジ記憶部３６に記憶させる。
【００７０】
画像エッジ情報は、一例として図８に示すように、上述した各々の画像エッジを識別するための画像エッジ番号（Ｎｏ）、画像エッジにおける一方の端点の画像座標（ｘ，ｙ）、及び画像エッジにおける他方の端点の画像座標（ｘ’，ｙ’）が、画像エッジごとに対応付けられた情報である。
【００７１】
カメラ情報修正部４４は、画像エッジ記憶部３６に記憶されている画像エッジ情報と、モデルエッジ記憶部３５に記憶されているモデルエッジ情報とを画像平面上で表した場合の画像平面上でのズレ量を求める。また、カメラ情報修正部４４は、求めたズレ量が小さくなるようにモデルエッジの三次元座標情報を利用してカメラの位置姿勢情報を繰り返し更新する。
【００７２】
位置姿勢情報を更新する際には、更新後のカメラの位置及び姿勢における、取得した位置姿勢情報によって示されるカメラの位置及び姿勢からの微小変化量をパラメータとして導入し、ズレ量に基づく誤差を減少させる微小変化量をガウス＝ニュートン法を用いて求める。また、求めた微小変化量を、位置姿勢情報に適用することによって、位置姿勢情報の更新を行う。
【００７３】
続いて、位置姿勢情報の更新量の具体的な計算法について説明する。
【００７４】
まず、モデルエッジ記憶部３５に記憶されている各モデルエッジについて、当該モデルエッジと、画像エッジ記憶部３６に記憶された各画像エッジとのズレ量を計算し、最もズレ量が小さい画像エッジを当該モデルエッジに対応付ける。
【００７５】
一例として図９に示すように、モデルエッジ記憶部３５に記憶されているモデルエッジＥｉ（ただし、１≦ｉ≦ＮＥ）の端点の座標を（ｘ１１，ｙ１１）及び（ｘ１２，ｙ１２）とし、画像エッジ記憶部３６に記憶されている画像エッジＦｊ（ただし、１≦ｊ≦ＮＦ）の端点の座標を（ｘ２１，ｙ２１）及び（ｘ２２，ｙ２２）とする。ただし、ＮＥはモデルエッジの総数であり、ＮＦは画像エッジの総数である。モデルエッジＥｉに直交する法線ベクトルｎＥｉと、画像エッジＦｊに直交する法線ベクトルｎＦｊを下記（４）式及び（５）式に従って計算する。
【００７６】
【数４】
2018067188.tif 000006
・・・（４）
【００７７】
【数５】
2018067188.tif 000007
・・・（５）
【００７８】
また、モデルエッジＥｉの中点ｍＥｉと画像エッジＦｊの中点ｍＦｊを表す２次元列ベクトルを下記（６）式及び（７）式に従って計算する。
【００７９】
【数６】
2018067188.tif 000008
・・・（６）
【００８０】
【数７】
2018067188.tif 000009
・・・（７）
【００８１】
計算した法線ベクトルｎＥｉ、法線ベクトルｎＦｊ、中点ｍＥｉ、及び中点ｍＦｊを用いて、モデルエッジＥｉの画像エッジＦｊに対するズレ量ｅｉｊを下記（８）式に従って計算する。
【００８２】
【数８】
2018067188.tif 000010
・・・（８）
【００８３】
なお、上記（８）式におけるベクトル表記の上付き文字Ｔは、ベクトルの転置を表す。これは、図９が示すように、モデルエッジ及び画像エッジの法線のなす角度の一致度と、モデルエッジの中点ｍＥｉから画像エッジＦｊを含む直線に下した垂線の長さとの２つを、重みｗｅで重み付けを行って足し合わせたものである。
【００８４】
このように、上述した例では、モデルエッジ及び画像エッジのうちの一方のエッジの重心から他方のエッジを含む直線に下した垂線の長さと、モデルエッジ及び画像エッジの傾きの類似度と、を用いて、モデルエッジ及び画像エッジのズレ量を計算しているが、その他の方法としては、一方のエッジの２つの端点から他方のエッジへ下ろした２本の垂線の長さの和を用いる等の方法がある。
【００８５】
また、モデルエッジ情報そのものではなく、モデルエッジとの距離が所定の閾値よりも短い制御点の座標と、それらの制御点の画像平面上の座標とのペアからなる集合を用いる場合は、各制御点の画像平面上の座標から画像エッジへ下した垂線の長さが最も短いエッジに、制御点を割り当て、モデルエッジと画像エッジとのズレ量を算出し、このズレ量がより小さくなるように位置姿勢情報を修正すれば良い。このとき、上記（８）式の右辺の第１項のみを用いるようにして上述した処理を修正すればよい。
【００８６】
各モデルエッジＥｉについて、画像エッジ記憶部３６に記憶されている全ての画像エッジＦｊに対してこのズレ量ｅｉｊを計算し、ズレ量ｅｉｊの最小値をｅｉとすると共に、ズレ量ｅｉｊが最小となった画像エッジＦｊを画像エッジＦｋｉする。この場合、ズレ量ｅｉｊの最小値をｅｉと、ズレ量ｅｉｊが最小となった画像エッジＦｋｉとは、下記（９）式及び（１０）式に示すように表される。
【００８７】
【数９】
2018067188.tif 000011
・・・（９）
【００８８】
【数１０】
2018067188.tif 000012
・・・（１０）
【００８９】
このように定義された最小値ｅｉ及び画像エッジＦｋｉを用いて、カメラの位置及び姿勢を最適化するための誤差Ｄを下記（１１）式に示すように定義する。
【００９０】
【数１１】
2018067188.tif 000013
・・・（１１）
【００９１】
ここで、各最小値ｅｉに対して用いる重みｗｉを、円柱、角柱等の物体の形状のカテゴリ、ズレ量ｅｉｊの最小値ｅｉ、及び位置姿勢情報のパラメータの修正回数の少なくとも１つに基づき決定し、ズレ量ｅｉｊの最小値ｅｉに重み付けを行った状態で、位置姿勢情報を修正するようにしても良い。例えば、αを所与の定数とした場合に、ズレ量ｅｉｊの最小値ｅｉに基づいて、重みｗｉを下記（１２）式に示すように定義すると良い。
【００９２】
【数１２】
2018067188.tif 000014
・・・（１２）
【００９３】
また、位置姿勢情報のパラメータの修正回数を利用して重みｗｊを計算する方法としては、上記（１２）式において、ｔ回の修正回数で得られたズレ量ｅｉｔとし、（ｔ−１）回の修正回数で得られたズレ量ｅｉｔ−１として、上記（１２）式の定数αを、下記（１３）式に示す定数αｉに置き換えると良い。
【００９４】
【数１３】
2018067188.tif 000015
・・・（１３）
【００９５】
なお、重みｗｉを用いる場合には、以下の各式における最小値ｅｉをｗｉｅｉと置き換えると良い。
【００９６】
ここで、位置姿勢情報の変動を表すパラメータｐ１，ｐ２，ｐ３，ｐ４，ｐ５，ｐ６を導入し、これらのパラメータｐ１，ｐ２，ｐ３，ｐ４，ｐ５，ｐ６を用いて位置姿勢情報を下記（１４）式及び（１５）式に示すように修正する。
【００９７】
【数１４】
2018067188.tif 000016
・・・（１４）
【００９８】
【数１５】
2018067188.tif 000017
・・・（１５）
【００９９】
誤差Ｄを減少させるパラメータｐ１，ｐ２，ｐ３，ｐ４，ｐ５，ｐ６をガウス＝ニュートン法によって求める（下記参考文献７参照）。
【０１００】
［参考文献７］バンドルアジャストメント、岡谷貴之、研究報告コンピュータビジョンとイメージメディア（CVIM） 2009-CVIM-167(37), pp. 1-16, 2009.
【０１０１】
ここでは、ガウス＝ニュートン法に基づく方法を用いた場合について説明するが、無論レベンバーグ＝マーカート法に代表されるニュートン法の派生アルゴリズム等、利用するアルゴリズムは他のアルゴリズムであっても良い。ガウス＝ニュートン法によって更新量を求めるには下記（１６）式及び（１７）式で示すベクトルｅ及びベクトルＪが必要である。
【０１０２】
【数１６】
2018067188.tif 000018
・・・（１６）
【０１０３】
【数１７】
2018067188.tif 000019
・・・（１７）
【０１０４】
上記（１７）式で定義したＪの各要素を求めるに当たっては、最小値ｅｉに含まれるモデルエッジの端点がパラメータｐ１，ｐ２，ｐ３，ｐ４，ｐ５，ｐ６から影響を受けることに注意する。モデルエッジの端点が画像座標(ｘ，ｙ)であり、これに対応するものとしてモデルエッジ記憶部３５に記憶された三次元座標が(ｕ，ｖ，ｗ)であるとき、透視投影変換によって(ｘ，ｙ)と(ｕ，ｖ，ｗ)は、下記（１８）式及び（１９）式に示すような関係を持つ。
【０１０５】
【数１８】
2018067188.tif 000020
・・・（１８）
【０１０６】
【数１９】
2018067188.tif 000021
・・・（１９）
【０１０７】
ここで、ｆｕ及びｆｖは、内部パラメータに含まれる画像の水平方向及び鉛直方向の軸に関する焦点距離を表し、ｃｕ及びｃｖは、内部パラメータに含まれる画像の水平方向及び鉛直方向のそれぞれの軸に関する画像座標の値を表す。上記（１８）式及び（１９）式と、ｅｉの定義式を用いてベクトルｅ及びベクトルＪを求めたら、下記（２０）式の方程式をパラメータｐ１，ｐ２，ｐ３，ｐ４，ｐ５，ｐ６について解き、位置姿勢情報の修正量を求める。
【０１０８】
【数２０】
2018067188.tif 000022
・・・（２０）
【０１０９】
以上のようにして求めたパラメータｐ１，ｐ２，ｐ３，ｐ４，ｐ５，ｐ６を用いて、上記（１４）式及び上記（１５）式によって、カメラ情報記憶部３２に記憶された位置姿勢情報を修正する。更新した位置姿勢情報を用いて誤差Ｄを再度計算し、誤差が所定の値以下になるか、あるいは所定の回数だけ繰り返し位置姿勢情報の更新を行ったところで位置姿勢情報の更新を打ち切り、更新を終了した時点で、カメラ情報記憶部３２に記憶された位置姿勢情報を最終的な位置姿勢情報として出力する。
【０１１０】
次に、本発明の実施の形態に係るカメラ情報修正装置１００の作用について説明する。
【０１１１】
はじめに、モデル抽出ルーチンについて説明する。入力部１０において実世界のシーンに相当する三次元点群を示すデータの入力を受け付けて、受け付けられたデータを基礎データ記憶部３０に格納すると、カメラ情報修正装置１００は、図１０に示すモデル抽出ルーチンを実行する。
【０１１２】
なお、本実施形態では、モデル抽出ルーチンのプログラムは予めＲＯＭに記憶されているが、これに限らない。例えば、当該プログラムは、外部装置から受信して実行されても良い。また、ＣＤ−ＲＯＭ等の記録媒体に記録された当該プログラムがＣＤ−ＲＯＭドライブ等で読み込まれることにより、モデル抽出ルーチンが実行されるようにしてもよい。
【０１１３】
ステップＳ１００では、物体抽出部２４が、合わせこみに利用する物体を抽出し、抽出したＮ個の物体をそれぞれ三次元座標の集合として三次元物体記憶部３３に記憶させる。
【０１１４】
ステップＳ１０２では、物体復元部２６が、三次元物体記憶部３３に記憶されているＮ個の物体のそれぞれについて、物体を分割する必要がある場合には、物体を複数の部分に分割し、物体全体あるいは物体の分割された部分に対して、適切に復元しうる物体を当てはめることによって復元された物体全体あるいは物体の分割された部分の形状を、復元モデル記憶部３４に記憶させ、本モデル抽出ルーチンの実行を終了する。
【０１１５】
次に、合わせこみルーチンについて説明する。入力部１０により、シーンにおいてカメラにより撮影された撮影画像と、この撮影画像を撮影した際のカメラの位置及び姿勢を表す位置姿勢情報、及びカメラの内部パラメータと、を受け付けて、撮影画像が画像データ記憶部３１に記憶され、位置姿勢情報とカメラの内部パラメータとがカメラ情報記憶部３２に記憶されると、カメラ情報修正装置１００は、図１１に示す合わせこみルーチンを実行する。
【０１１６】
なお、本実施形態では、合わせこみルーチンのプログラムは予めＲＯＭに記憶されているが、これに限らない。例えば、当該プログラムは、外部装置から受信して実行されても良い。また、ＣＤ−ＲＯＭ等の記録媒体に記録された当該プログラムがＣＤ−ＲＯＭドライブ等で読み込まれることにより、合わせこみルーチンが実行されるようにしてもよい。
【０１１７】
ステップＳ２００では、画像エッジ抽出部４２が、画像データ記憶部３１に記憶されている撮影画像を示す画像情報から画像エッジを抽出し、抽出した情報を画像エッジ記憶部３６に記憶させる。
【０１１８】
ステップＳ２０２では、モデルエッジ抽出部４０が、復元モデル記憶部３４に記憶されているモデルを、カメラ情報記憶部３２に記憶されているカメラの内部パラメータと位置姿勢情報に基づいて画像平面上へ透視投影を行い、モデルの輪郭に相当するエッジを抽出し、抽出した情報をモデルエッジ記憶部３５に記憶させる。
【０１１９】
ステップＳ２０４では、カメラ情報修正部４４が、モデルエッジ記憶部３５に記憶されているモデルエッジと、画像エッジ記憶部３６に記憶されている画像エッジとを比較し、最もズレ量が小さい画像エッジとのズレ量を算出し、上記（１１）で定義された誤差Ｄを計算する。
【０１２０】
ステップＳ２０６では、カメラ情報修正部４４が、誤差Ｄの値が予め定めた閾値以下であるか否かを判定する。ステップＳ２０６で誤差Ｄの値が予め定めた閾値以下であると判定した場合（Ｓ２０６，Ｙ）はステップＳ２１２に移行する。また、ステップＳ２０６で誤差Ｄの値が予め定めた閾値以下でないと判定した場合（Ｓ２０６，Ｎ）はステップＳ２０８に移行する。
【０１２１】
ステップＳ２０８では、カメラ情報修正部４４が、最もズレ量が小さい画像エッジとのズレ量に基づいて、ガウス＝ニュートン法を利用して位置姿勢情報の修正量を求め、カメラ情報記憶部３２に記憶された位置姿勢情報へ反映させる。
【０１２２】
ステップＳ２１０では、カメラ情報修正部４４が、位置姿勢情報の修正回数が予め定めた回数に到達したか否かを判定する。ステップＳ２１０で位置姿勢情報の修正回数が予め定めた回数に到達したと判定した場合（Ｓ２１０，Ｙ）はステップＳ２１２に移行する。また、ステップＳ２１０で位置姿勢情報の修正回数が予め定めた回数に到達していないと判定した場合（Ｓ２１０，Ｎ）はステップＳ２０２に移行し、再度、位置姿勢情報の修正を行う。
【０１２３】
ステップＳ２１２では、カメラ情報修正部４４が、カメラ情報記憶部３２に記憶されている位置姿勢情報を最終的な結果として出力部５０に出力して、本合わせこみルーチンの実行を終了する。
【０１２４】
以上説明したように、本実施形態に係るカメラ情報修正装置１００では、実世界のシーンを表す三次元点群から物体が抽出されると共に、抽出された物体の欠損部分が修復される。また、本実施形態に係るカメラ情報修正装置１００では、シーン内で撮影された撮影画像から画像エッジが抽出され、シーン内で撮影画像を撮影した際のカメラの位置及び姿勢を示す位置姿勢情報を用いて、復元された物体に対して透視投影を行い物体の輪郭に相当するモデルエッジが抽出され、抽出された画像エッジと、抽出されたモデルエッジとのズレ量に応じて位置姿勢情報が修正される。
【０１２５】
これにより、カメラで画像を撮影した際のカメラの位置及び姿勢を精度良く推定することができる。
【０１２６】
以上、本実施形態について図面を参照して詳細に説明したが、具体的な構成は本実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲の設計等も含まれる。
【０１２７】
また、本実施形態では、図１に示す機能の構成要素の動作をプログラムとして構築し、カメラ情報修正装置１００として利用されるコンピュータにインストールして実行させるが、これに限らず、ネットワークを介して流通させても良い。
【０１２８】
また、構築されたプログラムをハードディスクやフレキシブルディスク、ＣＤ−ＲＯＭ等の可搬記憶媒体に格納し、コンピュータにインストールしたり、配布したりしても良い。
【符号の説明】
【０１２９】
１０  入力部
２０  演算部
２２  前処理部
２４  物体抽出部
２６  物体復元部
３０  基礎データ記憶部
３１  画像データ記憶部
３２  カメラ情報記憶部
３３  三次元物体記憶部
３４   復元モデル記憶部
３５  モデルエッジ記憶部
３６  画像エッジ記憶部
４０  モデルエッジ抽出部
４２  画像エッジ抽出部
４４  カメラ情報修正部
５０  出力部
１００  物体特定装置
【図１】
2018067188.tif 000023
【図２】
2018067188.tif 000024
【図３】
2018067188.tif 000025
【図４】
2018067188.tif 000026
【図５】
2018067188.tif 000027
【図６】
2018067188.tif 000028
【図７】
2018067188.tif 000029
【図８】
2018067188.tif 000030
【図９】
2018067188.tif 000031
【図１０】
2018067188.tif 000032
【図１１】
2018067188.tif 000033