(57)【要約】【課題】撮像装置が撮影した物体の画像と、その物体の形状情報とを用いて、簡単な操作で撮像装置の位置及び姿勢を推定する。【解決手段】検出部１１２は、撮像装置が撮影した物体の画像から、複数の特徴線を検出し、受け付け部は、第１指示と第２指示とを受け付ける。第１指示は、複数の特徴線の中から選択された特徴線と、物体の形状情報１２１に含まれる複数の線分の中から選択された線分とを対応付ける指示である。第２指示は、物体の画像内で選択された２つの点と、形状情報１２１に含まれる複数の線分の端点の中から選択された２つの端点とを対応付ける指示である。生成部１１４は、第２指示に基づいて、２つの点を結ぶ第１線分と２つの端点を結ぶ第２線分とを生成する。推定部１１５は、選択された特徴線と選択された線分との組み合わせと、第１線分と第２線分との組み合わせとを用いて、３次元空間内における撮像装置の位置と姿勢とを推定する。【選択図】図１
2019106008.tif 000002
【特許請求の範囲】
【請求項１】
物体の形状を表す複数の線分を含む形状情報を記憶する記憶部と、
撮像装置が撮影した前記物体の画像から、複数の特徴線を検出する検出部と、
前記複数の特徴線の中から選択された特徴線と、前記複数の線分の中から選択された線分とを対応付ける第１指示を受け付けるとともに、前記画像内で選択された２つの点と、前記複数の線分の端点の中から選択された２つの端点とを対応付ける第２指示を受け付ける受け付け部と、
前記２つの点を結ぶ第１線分と前記２つの端点を結ぶ第２線分とを生成する生成部と、
前記選択された特徴線と前記選択された線分との組み合わせと、前記第１線分と前記第２線分との組み合わせとを用いて、３次元空間内における前記撮像装置の位置と姿勢とを推定する推定部と、
を備えることを特徴とする推定装置。
【請求項２】
前記第２指示は、前記２つの点を含む３つ以上の点と、前記２つの端点を含む３つ以上の端点とを対応付ける指示であり、前記生成部は、前記３つ以上の点から前記第１線分を含む複数の線分を生成し、前記３つ以上の端点から前記第２線分を含む複数の線分を生成し、前記推定部は、前記選択された特徴線と前記選択された線分との組み合わせと、前記第１線分を含む複数の線分それぞれと前記第２線分を含む複数の線分それぞれとの組み合わせとを用いて、前記撮像装置の位置と姿勢とを推定することを特徴とする請求項１記載の推定装置。
【請求項３】
前記推定部は、前記撮像装置の位置と姿勢の推定誤差を計算し、前記推定誤差に基づいて追加指示を要求する情報を出力し、前記受け付け部は、追加点と追加端点とを対応付ける第３指示を受け付け、前記生成部は、前記２つの点のいずれか一方と前記追加点とを用いて第１追加線分を生成し、前記２つの端点のいずれか一方と前記追加端点とを用いて第２追加線分を生成し、前記推定部は、前記選択された特徴線と前記選択された線分との組み合わせと、前記第１線分と前記第２線分との組み合わせと、前記第１追加線分と前記第２追加線分との組み合わせとを用いて、前記撮像装置の位置と姿勢とを再度推定することを特徴とする請求項１又は２記載の推定装置。
【請求項４】
前記画像内で前記追加点が選択されるよりも前に、前記複数の線分の端点の中から前記追加端点が選択された場合、前記推定部は、前記追加端点に対応する前記画像内の点の候補を強調して表示する制御を行い、前記受け付け部は、前記点の候補を前記追加点として選択する指示を受け付けることを特徴とする請求項３記載の推定装置。
【請求項５】
前記複数の線分の端点の中から前記追加端点が選択されるよりも前に、前記画像内で前記追加点が選択された場合、前記推定部は、前記追加点に対応する端点の候補を強調して表示する制御を行い、前記受け付け部は、前記端点の候補を前記追加端点として選択する指示を受け付けることを特徴とする請求項３記載の推定装置。
【請求項６】
物体の形状を表す複数の線分を含む形状情報を記憶するコンピュータのための推定プログラムであって、
撮像装置が撮影した前記物体の画像から、複数の特徴線を検出し、
前記複数の特徴線の中から選択された特徴線と、前記複数の線分の中から選択された線分とを対応付ける第１指示を受け付け、
前記画像内で選択された２つの点と、前記複数の線分の端点の中から選択された２つの端点とを対応付ける第２指示を受け付け、
前記２つの点を結ぶ第１線分と前記２つの端点を結ぶ第２線分とを生成し、
前記選択された特徴線と前記選択された線分との組み合わせと、前記第１線分と前記第２線分との組み合わせとを用いて、３次元空間内における前記撮像装置の位置と姿勢とを推定する、
処理を前記コンピュータに実行させるための推定プログラム。
【請求項７】
物体の形状を表す複数の線分を含む形状情報を記憶するコンピュータが、
撮像装置が撮影した前記物体の画像から、複数の特徴線を検出し、
前記複数の特徴線の中から選択された特徴線と、前記複数の線分の中から選択された線分とを対応付ける第１指示を受け付け、
前記画像内で選択された２つの点と、前記複数の線分の端点の中から選択された２つの端点とを対応付ける第２指示を受け付け、
前記２つの点を結ぶ第１線分と前記２つの端点を結ぶ第２線分とを生成し、
前記選択された特徴線と前記選択された線分との組み合わせと、前記第１線分と前記第２線分との組み合わせとを用いて、３次元空間内における前記撮像装置の位置と姿勢とを推定する、
ことを特徴とする推定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、推定装置、推定方法、及び推定プログラムに関する。
【背景技術】
【０００２】
近年、拡張現実（Augmented Reality, ＡＲ）技術を用いて画像を表示するシステムが普及してきている。ＡＲ技術の一例では、パーソナルコンピュータ（ＰＣ）、携帯端末装置等に搭載したカメラを用いて物体が撮影され、物体の画像から３次元空間内におけるカメラの位置及び姿勢が推定される。そして、決定されたカメラの位置及び姿勢を基準にして、画像中の任意の位置にコンテンツ情報が重畳表示される。
【０００３】
ＡＲ技術の応用として、物体の３次元形状を表すComputer-Aided Design（ＣＡＤ）データを画像に重畳表示する技術も知られている（例えば、特許文献１〜特許文献３を参照）。線対面の対応関係又は線の対応関係から、物体の位置及び姿勢を決定する技術も知られている（例えば、非特許文献１及び非特許文献２を参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２０１２／１７３１４１号パンフレット
【特許文献２】特開２０１７−９１０７８号公報
【特許文献３】特開２０１７−１８２３０２号公報
【非特許文献】
【０００５】
【非特許文献１】H. H. Chen,“Pose Determination from Line-to-Plane Correspondences: Existence Condition and Close-form Solutions”, IEEE Transactions on Pattern Analysis and Machine Intelligence VOL. 13, NO. 6, pages 530-541, 1991
【非特許文献２】J. Z. C. Lai,“Sensitivity Analysis of Line Correspondence”, IEEE Transactions on Systems, Man, and Cybernetics VOL. 25, NO. 6, pages 1016-1023, 1995
【発明の概要】
【発明が解決しようとする課題】
【０００６】
物体の画像から検出された複数の特徴線と、その物体のＣＡＤデータに含まれる複数の線分とを対応付けることで、撮像装置の位置及び姿勢を推定することができる。しかしながら、ユーザが目視による手作業で特徴線と線分との組み合わせを選択する場合、適切な組み合わせを選択する操作は困難である。このため、ユーザによる操作に時間がかかるとともに、特徴線と線分との誤った組み合わせが選択される可能性もある。
【０００７】
なお、かかる問題は、ＣＡＤデータから撮像装置の位置及び姿勢を推定する場合に限らず、物体の形状を表す他の形状情報から撮像装置の位置及び姿勢を推定する場合においても生ずるものである。
【０００８】
１つの側面において、本発明は、撮像装置が撮影した物体の画像と、その物体の形状情報とを用いて、簡単な操作で撮像装置の位置及び姿勢を推定することを目的とする。
【課題を解決するための手段】
【０００９】
１つの案では、推定装置は、記憶部、検出部、受け付け部、生成部、及び推定部を含む。
【００１０】
記憶部は、物体の形状を表す複数の線分を含む形状情報を記憶し、検出部は、撮像装置が撮影した物体の画像から、複数の特徴線を検出し、受け付け部は、第１指示と第２指示とを受け付ける。第１指示は、複数の特徴線の中から選択された特徴線と、形状情報に含まれる複数の線分の中から選択された線分とを対応付ける指示である。第２指示は、物体の画像内で選択された２つの点と、形状情報に含まれる複数の線分の端点の中から選択された２つの端点とを対応付ける指示である。
【００１１】
生成部は、第２指示によって指示される２つの点を結ぶ第１線分と、第２指示によって指示される２つの端点を結ぶ第２線分とを生成する。推定部は、選択された特徴線と選択された線分との組み合わせと、第１線分と第２線分との組み合わせとを用いて、３次元空間内における撮像装置の位置と姿勢とを推定する。
【発明の効果】
【００１２】
実施形態によれば、撮像装置が撮影した物体の画像と、その物体の形状情報とを用いて、簡単な操作で撮像装置の位置及び姿勢を推定することができる。
【図面の簡単な説明】
【００１３】
【図１】推定装置の機能的構成図である。
【図２】推定処理のフローチャートである。
【図３】推定装置の具体例を示す機能的構成図である。
【図４】推定処理の具体例を示すフローチャートである。
【図５】多面体の物体に対する推定処理を示す図である。
【図６】仮想線分を特定する選択操作を示す図である。
【図７】実線分対応ペアを選択する選択操作と仮想線分を特定しない選択操作を示す図である。
【図８】仮想線分対応ペアに対応ペアを追加する選択操作を示す図である。
【図９】所定範囲内の特徴点を示す図である。
【図１０】領域の面積に基づく計算方法を示す図である。
【図１１】距離に基づく計算方法を示す図である。
【図１２】情報処理装置の構成図である。
【発明を実施するための形態】
【００１４】
以下、図面を参照しながら、実施形態を詳細に説明する。
特許文献１の技術では、計測対象物を撮影した画像上の３個以上の点と、その計測対象物のＣＡＤデータが表す３Ｄオブジェクト上の３個以上の点とを対応付けることで、画像と３Ｄオブジェクトとが重畳表示される。しかしながら、マウス等を用いて画像及び３Ｄオブジェクト上の点を選択する操作は困難を伴い、ユーザの作業負荷が大きくなる。
【００１５】
特許文献２の技術では、立体構造物を撮影した撮像画像から抽出されたエッジ線と、その立体構造物のモデル画像に含まれる稜線との組み合わせを用いて、画像とモデル画像とが重畳表示される。
【００１６】
この場合、ユーザが選択するエッジ線及び稜線は線分であるため、点よりも視認性が良い。このため、マウス等を用いてエッジ線及び稜線を選択する操作は、点を選択する操作よりも容易であり、ユーザの作業負荷が低減される。しかしながら、特許文献２には、エッジ線と稜線との適切な組み合わせを選択する方法は記載されていない。
【００１７】
特許文献３の技術では、物体を撮影した画像上に、その物体のＣＡＤデータに含まれる複数の候補線を投影した複数の投影線と、画像から検出された複数の特徴線との組み合わせ（初期対応ペア）を用いて、カメラの位置及び姿勢が計算される。そして、計算されたカメラの位置及び姿勢を用いて別の候補線を画像上に投影することで、投影線と特徴線との組み合わせが自動的に追加され、追加された投影線と特徴線との組み合わせを用いて、カメラの位置及び姿勢が再度計算される。
【００１８】
この場合、投影線と特徴線との組み合わせが自動的に追加されるため、ユーザが投影線及び特徴線を選択する負荷が低減される。しかしながら、特許文献３には、初期対応ペアを選択する簡便な選択方法は記載されていない。
【００１９】
特許文献２又は特許文献３のように、物体の画像から検出された特徴線と、その物体のＣＡＤデータに含まれる線分との組み合わせを、ユーザが目視による手作業で選択する場合、次のような問題が発生すると考えられる。
【００２０】
ユーザが熟練者ではない場合、物体の画像とＣＡＤデータが表す物体のモデルとが表示された画面上でモデルを適切な向きに回転させる操作、及び特徴線と線分との適切な組み合わせを選択する操作は、困難を伴う。例えば、カメラの位置及び姿勢の推定精度を向上させるためには、選択される複数の特徴線又は選択される複数の線分に、３本の平行な特徴線又は３本の平行な線分が含まれないことが望ましい。このため、特徴線と線分との適切な組み合わせを選択する操作に時間がかかるとともに、特徴線と線分との誤った組み合わせが選択される可能性もある。
【００２１】
一方、ユーザが初期対応ペアを選択する代わりに、複数の投影線と複数の特徴線との組み合わせを無作為に選択してカメラの位置及び姿勢を推定し、推定誤差が最小となる組み合わせを決定する方法も考えられる。しかしながら、この場合、複数の投影線と複数の特徴線との組み合わせを変更しながら、カメラの位置及び姿勢を推定する処理が繰り返されるため、計算時間が長時間に及ぶことになる。
【００２２】
図１は、実施形態の推定装置の機能的構成例を示している。図１の推定装置１０１は、記憶部１１１、検出部１１２、受け付け部１１３、生成部１１４、及び推定部１１５を含む。記憶部１１１は、物体の形状を表す複数の線分を含む形状情報１２１を記憶する。検出部１１２、受け付け部１１３、生成部１１４、及び推定部１１５は、記憶部１１１が記憶する形状情報１２１を用いて、推定処理を行う。
【００２３】
図２は、図１の推定装置１０１が行う推定処理の例を示すフローチャートである。まず、検出部１１２は、撮像装置が撮影した物体の画像から、複数の特徴線と複数の点とを検出し（ステップ２０１）、受け付け部１１３は、第１指示と第２指示とを受け付ける（ステップ２０２）。第１指示は、複数の特徴線の中から選択された特徴線と、形状情報に含まれる複数の線分の中から選択された線分とを対応付ける指示である。第２指示は、物体の画像内で選択された２つの点と、形状情報に含まれる複数の線分の端点の中から選択された２つの端点とを対応付ける指示である。
【００２４】
生成部１１４は、第２指示によって指示される２つの点を結ぶ第１線分と、第２指示によって指示される２つの端点を結ぶ第２線分とを生成する（ステップ２０３）。推定部１１５は、選択された特徴線と選択された線分との組み合わせと、第１線分と第２線分との組み合わせとを用いて、３次元空間内における撮像装置の位置と姿勢とを推定する（ステップ２０４）。
【００２５】
このような推定装置１０１によれば、撮像装置が撮影した物体の画像と、その物体の形状情報とを用いて、簡単な操作で撮像装置の位置及び姿勢を推定することができる。
【００２６】
図３は、図１の推定装置１０１の具体例を示している。図３の推定装置１０１は、記憶部１１１、検出部１１２、受け付け部１１３、生成部１１４、推定部１１５、画像取得部３１１、抽出部３１２、及び表示部３１３を含む。検出部１１２は、特徴線検出部３２１及び特徴点検出部３２２を含み、推定部１１５は、計算部３４１、判定部３４２、及び評価部３４３を含む。
【００２７】
推定装置１０１は、タブレット、ノート型ＰＣ、スマートデバイス等の携帯端末装置であってもよく、デスクトップ型ＰＣ等の情報処理装置であってもよい。
【００２８】
撮像装置３０１は、例えば、Charged-Coupled Device（ＣＣＤ）、Complementary Metal-Oxide-Semiconductor（ＣＭＯＳ）等の撮像素子を有するカメラであり、物体の画像３５１を撮影する。画像取得部３１１は、撮像装置３０１から画像３５１を取得して、記憶部１１１に格納する。
【００２９】
記憶部１１１は、撮像装置３０１が撮影した物体の形状を表す３次元モデル（３Ｄモデル）３５２を記憶している。３Ｄモデル３５２は、図１の形状情報１２１に対応し、例えば、物体のＣＡＤデータである。３Ｄモデル３５２は、物体の３次元形状を表す複数の頂点の頂点情報と、複数の線分の線分情報とを含む。頂点情報は、物体の各頂点の３次元座標を含み、線分情報は、各線分の両端の頂点である端点を示す識別情報を含む。
【００３０】
特徴線検出部３２１は、画像３５１に対するエッジ検出処理を行って、画像３５１から複数のエッジ線を検出し、検出したエッジ線を特徴線３５３として記憶部１１１に格納する。
【００３１】
特徴点検出部３２２は、画像３５１に対する特徴点検出処理を行って、画像３５１から複数の特徴点３５４を検出し、検出した特徴点３５４を記憶部１１１に格納する。例えば、特徴点検出部３２２は、画像３５１内の着目点の近傍における濃淡変動が大きく、濃淡変動によって画像３５１内における着目点の位置が一意に規定されることを基準として、画像３５１から特徴点を検出することができる。
【００３２】
抽出部３１２は、３Ｄモデル３５２から、物体の３次元形状を表す複数の線分の線分情報を抽出する。表示部３１３は、画像３５１を画面上に表示するとともに、表示された画像３５１上に、複数の特徴線３５３及び複数の特徴点３５４を重畳表示する。さらに、表示部３１３は、抽出部３１２が抽出した線分情報が示す複数の線分を、３Ｄモデル３５２として画面上に表示する。
【００３３】
画像３５１上に複数の特徴線３５３及び複数の特徴点３５４を重畳表示することで、特徴線３５３及び特徴点３５４を選択する選択操作が容易になり、３Ｄモデル３５２の複数の線分を表示することで、線分を選択する選択操作が容易になる。
【００３４】
ユーザは、画像３５１に重畳表示された複数の特徴線３５３の中から１本以上の特徴線３５３を選択し、３Ｄモデル３５２として表示された複数の線分の中から１本以上の線分を選択する。そして、ユーザは、画像３５１内で選択した各特徴線３５３と、３Ｄモデル３５２から選択した各線分とを対応付ける指示を、推定装置１０１に入力し、受け付け部１１３は、その指示を受け付ける。生成部１１４は、ユーザが選択した各特徴線３５３と各線分とを対応付けた組み合わせ（対応ペア）を生成し、生成した対応ペアを実線分対応ペア３５５として記憶部１１１に格納する。
【００３５】
また、ユーザは、画像３５１内における選択可能な複数の点の中から２つ以上の点を選択し、３Ｄモデル３５２として表示された複数の線分の端点の中から２つ以上の端点を選択する。画像３５１内における選択可能な複数の点には、画像３５１に重畳表示された複数の特徴点３５４と、ユーザが目視によって物体の頂点と認識した、特徴点３５４以外の点とが含まれる。そして、ユーザは、画像３５１内で選択した各点と、３Ｄモデル３５２から選択した各端点とを対応付ける指示を、推定装置１０１に入力し、受け付け部１１３は、その指示を受け付ける。
【００３６】
生成部１１４は、ユーザが画像３５１内で選択した２つの点同士を結ぶ仮想線分ＶＬ１と、ユーザが３Ｄモデル３５２から選択した２つの端点同士を結ぶ仮想線分ＶＬ２とを生成する。そして、生成部１１４は、仮想線分ＶＬ１と仮想線分ＶＬ２とを対応付けた対応ペアを生成し、生成した対応ペアを仮想線分対応ペア３５６として記憶部１１１に格納する。
【００３７】
例えば、ユーザは、以下のような選択操作によって、画像３５１内の点と３Ｄモデル３５２に含まれる端点とを選択することができる。
【００３８】
（１）仮想線分を特定する選択操作
ユーザは、１つ以上の対応ペア各々について、仮想線分ＶＬ１の両端の２つの点と仮想線分ＶＬ２の両端の２つの端点とを明示的に指定し、指定した画像３５１内の各点と３Ｄモデル３５２に含まれる各端点とを対応付ける指示を、推定装置１０１に入力する。
【００３９】
そして、生成部１１４は、指定された画像３５１内の２つの点を結ぶ仮想線分ＶＬ１と、指定された３Ｄモデル３５２の２つの端点を結ぶ仮想線分ＶＬ２とを生成する。これにより、仮想線分ＶＬ１と仮想線分ＶＬ２とを対応付けた１つ以上の対応ペアが生成される。
【００４０】
なお、仮想線分ＶＬ２に対応する線分が３Ｄモデル３５２に含まれている場合、ユーザは、その線分を指定することによって、仮想線分ＶＬ２の両端の２つの端点を指定することもできる。
【００４１】
（２）仮想線分を特定しない選択操作
ユーザは、画像３５１内のＭ個（Ｍは２以上の整数）の点と、３Ｄモデル３５２に含まれるＭ個の端点とを選択し、選択した画像３５１内の各点と３Ｄモデル３５２に含まれる各端点とを対応付ける指示を、推定装置１０１に入力する。
【００４２】
そして、生成部１１４は、画像３５１内のＭ個の点から、Ｍ（Ｍ−１）／２通りの２つの点同士の組み合わせを生成し、各組み合わせに含まれる２つの点を結ぶ仮想線分ＶＬ１を生成する。また、生成部１１４は、３Ｄモデル３５２に含まれるＭ個の端点から、Ｍ（Ｍ−１）／２通りの２つの端点同士の組み合わせを生成し、各組み合わせに含まれる２つの端点を結ぶ仮想線分ＶＬ２を生成する。これにより、仮想線分ＶＬ１と仮想線分ＶＬ２とを対応付けたＭ（Ｍ−１）／２個の対応ペアが生成される。
【００４３】
この場合、ユーザは仮想線分の両端を明示的に指定する必要がないため、仮想線分を特定する選択操作と比較して、操作負荷が低減される。
【００４４】
仮想線分対応ペア３５６が生成された後、判定部３４２は、生成された実線分対応ペア３５５及び仮想線分対応ペア３５６から、撮像装置３０１の位置及び姿勢を精度良く推定可能であるか否かを判定する。撮像装置３０１の位置及び姿勢を求めるためには、少なくとも４個の対応ペアを用いることが望ましく、対応ペアの個数が多いほど計算精度は向上する。そこで、判定部３４２は、実線分対応ペア３５５及び仮想線分対応ペア３５６に含まれる対応ペアの総数が４個以上である場合に、撮像装置３０１の位置及び姿勢を精度良く推定可能であると判定してもよい。
【００４５】
また、判定部３４２は、非特許文献１及び非特許文献２の技術を用いて、撮像装置３０１の位置及び姿勢を精度良く推定可能であるか否かを判定してもよい。非特許文献１の技術によれば、画像上の３本の線分と３Ｄモデルの３本の線分との組み合わせから、カメラの位置及び姿勢が推定され、使用する線分の位置関係から、カメラの位置及び姿勢を推定可能であるか否かを判定することができる。どの３個の組み合わせを用いてもカメラの位置及び姿勢が定まらない場合、推定不可能と判定される。
【００４６】
一方、非特許文献２の技術によれば、画像上の線分と３Ｄモデルの線分との位置関係と、おおよそのカメラの位置及び姿勢とを用いて、カメラの位置及び姿勢の推定精度を判定することができる。
【００４７】
撮像装置３０１の位置及び姿勢を精度良く推定可能である場合、計算部３４１は、実線分対応ペア３５５及び仮想線分対応ペア３５６を用いて、３次元空間内における撮像装置３０１の位置及び姿勢を計算する。そして、計算部３４１は、計算した位置及び姿勢を推定結果３５７として記憶部１１１に格納する。例えば、計算部３４１は、特許文献３に記載された計算方法により、撮像装置３０１の位置及び姿勢を計算することができる。
【００４８】
評価部３４３は、推定結果３５７が示す撮像装置３０１の位置及び姿勢の推定誤差を計算し、推定誤差に基づいて追加指示を要求する情報を出力する。例えば、評価部３４３は、特許文献３に記載された計算方法により推定誤差を計算することができ、推定誤差が所定値以上である場合、追加指示を要求する情報を出力することができる。追加指示を要求する情報は、画面上に表示されるマーク又はテキストメッセージであってもよく、音声メッセージであってもよい。
【００４９】
この場合、ユーザは、画像３５１内における選択可能な複数の点の中から１つ以上の追加点を選択し、３Ｄモデル３５２として表示された複数の線分の端点の中から１つ以上の追加端点を選択する。そして、ユーザは、選択した各追加点と選択した各追加端点とを対応付ける指示を、推定装置１０１に入力し、受け付け部１１３は、その指示を受け付ける。
【００５０】
生成部１１４は、これまでにユーザが画像３５１内で選択した点及び追加点の中から、追加点を含む２つの点を選択し、それらの２つの点同士を結ぶ仮想線分ＶＬ３を生成する。また、生成部１１４は、これまでにユーザが３Ｄモデル３５２から選択した端点及び追加端点の中から、追加端点を含む２つの端点を選択し、それらの２つの端点同士を結ぶ仮想線分ＶＬ４を生成する。そして、生成部１１４は、仮想線分ＶＬ３と仮想線分ＶＬ４とを対応付けた対応ペアを生成し、生成した対応ペアを仮想線分対応ペア３５６に追加する。
【００５１】
計算部３４１は、実線分対応ペア３５５と、対応ペアが追加された仮想線分対応ペア３５６とを用いて、撮像装置３０１の位置及び姿勢を再度計算し、計算した位置及び姿勢によって推定結果３５７を更新する。
【００５２】
図３の推定装置１０１によれば、ユーザは、画像３５１内の特徴線３５３と３Ｄモデル３５２の線分との対応ペアを１つだけ選択するだけで済む。また、画像３５１内の点として、画像３５１に重畳表示された特徴点３５４を選択することは容易であり、特徴点３５４として検出されていない物体の頂点も、画像３５１に重畳表示された特徴線３５３を手掛かりに選択することが可能である。さらに、３Ｄモデル３５２に含まれる端点を選択することも容易である。
【００５３】
したがって、複数の適切な対応ペアを指定するための選択操作が簡単化され、ユーザが熟練者ではない場合であっても、操作時間を短縮し、かつ、誤った組み合わせが選択される可能性を低減することが可能になる。また、複数の適切な対応ペアが自動的に生成されるため、無作為に選択した複数の対応ペアを変更しながら、撮像装置３０１の位置及び姿勢を推定する処理を繰り返す必要がなく、計算時間が長時間に及ぶことも回避される。
【００５４】
図４は、図３の推定装置１０１が行う推定処理の具体例を示すフローチャートである。まず、画像取得部３１１は、撮像装置３０１から画像３５１を取得し（ステップ４０１）、特徴線検出部３２１は、画像３５１から複数の特徴線３５３を検出し、特徴点検出部３２２は、画像３５１から複数の特徴点３５４を検出する（ステップ４０２）。
【００５５】
また、抽出部３１２は、記憶部１１１から３Ｄモデル３５２を取得し（ステップ４０３）、３Ｄモデル３５２から複数の線分を抽出する（ステップ４０４）。そして、表示部３１３は、画像３５１、複数の特徴線３５３、複数の特徴点３５４、及び３Ｄモデル３５２を表す複数の線分を画面上に表示する。
【００５６】
次に、ユーザは、画像３５１内で特徴線３５３を選択し、３Ｄモデル３５２から線分を選択し、受け付け部１１３は、選択された特徴線３５３と線分とを対応付ける指示を受け付ける（ステップ４０５）。そして、生成部１１４は、特徴線３５３と線分とを対応付けた実線分対応ペア３５５を生成する。
【００５７】
次に、ユーザは、画像３５１内で２つ以上の点を選択し、３Ｄモデル３５２から２つ以上の端点を選択し、受け付け部１１３は、選択された各点と各端点とを対応付ける指示を受け付ける（ステップ４０６）。そして、生成部１１４は、２つの点同士を結ぶ仮想線分ＶＬ１と２つの端点同士を結ぶ仮想線分ＶＬ２とを生成し、仮想線分ＶＬ１と仮想線分ＶＬ２とを対応付けた仮想線分対応ペア３５６を生成する（ステップ４０７）。
【００５８】
次に、判定部３４２は、実線分対応ペア３５５及び仮想線分対応ペア３５６から、撮像装置３０１の位置及び姿勢を精度良く推定可能であるか否かを判定する（ステップ４０８）。撮像装置３０１の位置及び姿勢を精度良く推定可能ではない場合（ステップ４０８，ＮＯ）、推定装置１０１は、ステップ４０５以降の処理を繰り返す。これにより、新たな対応ペアが生成されて、実線分対応ペア３５５又は仮想線分対応ペア３５６に追加される。
【００５９】
一方、撮像装置３０１の位置及び姿勢を精度良く推定可能である場合（ステップ４０８，ＹＥＳ）、計算部３４１は、実線分対応ペア３５５及び仮想線分対応ペア３５６を用いて、撮像装置３０１の位置及び姿勢を計算する（ステップ４０９）。これにより、推定結果３５７が生成される。
【００６０】
次に、評価部３４３は、撮像装置３０１の位置及び姿勢の推定誤差を計算し（ステップ４１０）、推定誤差を所定の閾値ＴＨと比較する（ステップ４１１）。推定誤差が閾値ＴＨ以上である場合（ステップ４１１，ＮＯ）、評価部３４３は、追加指示を要求する情報の表示を表示部３１３に指示する。そして、計算部３４１は、ステップ４０９において計算した撮像装置３０１の位置及び姿勢を仮の位置及び姿勢として用いて、画像３５１上に３Ｄモデル３５２を投影する。
【００６１】
次に、表示部３１３は、画像３５１上に投影された３Ｄモデル３５２を重畳表示するとともに、追加指示を要求する情報を画面上に表示する（ステップ４１３）。この場合、ユーザは、３Ｄモデル３５２から追加端点又は追加線分を選択することもでき、画像３５１内で追加点又は追加特徴線を選択することもできる。そこで、評価部３４３は、最初に行われた選択操作が、３Ｄモデル３５２又は画像３５１のいずれに対する選択操作であるかを判定する（ステップ４１４）。
【００６２】
最初に行われた選択操作が３Ｄモデル３５２に対する選択操作である場合（ステップ４１４，ＹＥＳ）、ユーザは、追加端点又は追加線分を選択し、受け付け部１１３は、選択された追加端点又は追加線分を受け付ける（ステップ４１５）。次に、計算部３４１は、選択された追加端点又は追加線分に対応する画像３５１内の追加点又は追加特徴線の候補を求め、求めた候補の強調表示を表示部３１３に指示する（ステップ４１６）。
【００６３】
そして、表示部３１３は、画像３５１内の追加点又は追加特徴線の候補を強調表示する。例えば、表示部３１３は、追加点又は追加特徴線の候補を拡大表示したり、追加点又は追加特徴線の候補を含む領域を拡大表示したり、追加点又は追加特徴線の候補の色を変更したりすることで、その候補を強調表示することができる。
【００６４】
次に、ユーザは、強調表示された追加点又は追加特徴線の候補を選択し、選択した追加端点又は追加線分と、選択した追加点又は追加特徴線とを対応付ける指示を、推定装置１０１に入力する（ステップ４１７）。そして、受け付け部１１３は、その指示を受け付ける。
【００６５】
一方、最初に行われた選択操作が画像３５１に対する選択操作である場合（ステップ４１４，ＮＯ）、ユーザは、追加点又は追加特徴線を選択し、受け付け部１１３は、選択された追加点又は追加特徴線を受け付ける（ステップ４１８）。次に、計算部３４１は、選択された追加点又は追加特徴線に対応する３Ｄモデル３５２の追加端点又は追加線分の候補を求め、求めた候補の強調表示を表示部３１３に指示する（ステップ４１９）。そして、表示部３１３は、３Ｄモデル３５２の追加端点又は追加線分の候補を強調表示する。
【００６６】
次に、ユーザは、強調表示された追加端点又は追加線分の候補を選択し、選択した追加点又は追加特徴線と、選択した追加端点又は追加線分とを対応付ける指示を、推定装置１０１に入力する（ステップ４２０）。そして、受け付け部１１３は、その指示を受け付ける。
【００６７】
次に、生成部１１４は、これまでに画像３５１内で選択済みの点と新たな追加点とを結ぶ仮想線分ＶＬ３と、これまでに３Ｄモデル３５２から選択済みの端点と新たな追加端点とを結ぶ仮想線分ＶＬ４とを生成する（ステップ４２１）。そして、生成部１１４は、仮想線分ＶＬ３と仮想線分ＶＬ４とを対応付けた対応ペアを仮想線分対応ペア３５６に追加し、推定装置１０１は、ステップ４０９以降の処理を行う。これにより、仮想線分対応ペア３５６に含まれる対応ペアの個数が増加するため、ステップ４１０において推定誤差が減少することが期待できる。
【００６８】
そして、推定誤差が閾値ＴＨよりも小さい場合（ステップ４１１，ＹＥＳ）、計算部３４１は、計算した撮像装置３０１の位置及び姿勢を用いて、画像３５１上に３Ｄモデル３５２を投影する（ステップ４１２）。そして、表示部３１３は、画像３５１上に３Ｄモデル３５２を重畳表示する。
【００６９】
ステップ４２１において、生成部１１４は、仮想線分ＶＬ３と３Ｄモデル３５２から選択された追加線分とを対応付けた対応ペアを生成してもよく、画像３５１内で選択された追加特徴線と仮想線分ＶＬ４とを対応付けた対応ペアを生成してもよい。
【００７０】
図４の推定処理によれば、撮像装置３０１の位置及び姿勢を精度良く推定可能な実線分対応ペア３５５及び仮想線分対応ペア３５６が生成された時点で、一旦、仮の位置及び姿勢が計算される。そして、仮の位置及び姿勢の推定誤差が大きい場合、仮想線分ＶＬ３と仮想線分ＶＬ４の対応ペアが仮想線分対応ペア３５６に追加され、仮の位置及び姿勢が再度計算される。したがって、所望の推定精度に応じて、ユーザに追加指示を要求するか否かを決定することができる。
【００７１】
また、仮想線分対応ペア３５６を追加するために、３Ｄモデル３５２又は画像３５１のうち一方の操作対象に対する選択操作が行われた場合、他方の操作対象に含まれている選択候補が強調表示される。これにより、他方の操作対象に含まれている多数の選択対象のうち、仮想線分の追加に有効な選択対象が絞り込まれて表示されるため、選択操作が容易になる。
【００７２】
なお、ステップ４１１において、評価部３４３が推定誤差を閾値ＴＨと比較する代わりに、ユーザが目視によって推定誤差を判定してもよい。この場合、計算部３４１は、撮像装置３０１の仮の位置及び姿勢を用いて、画像３５１上に３Ｄモデル３５２を投影し、表示部３１３は、画像３５１上に投影された３Ｄモデル３５２を重畳表示する。
【００７３】
そして、ユーザは、画像３５１と３Ｄモデル３５２とのずれが大きい場合、推定誤差が大きいと判定し、画像３５１と３Ｄモデル３５２とのずれが小さい場合、推定誤差が小さいと判定する。推定誤差が大きいと判定された場合、ステップ４１３以降の処理が行われ、推定誤差が小さいと判定された場合、ステップ４１２の処理が行われる。
【００７４】
図５は、多面体の物体に対する推定処理の例を示している。図５（ａ）は、物体の画像５０１と、画像５０１から検出された特徴線及び特徴点の例を示している。図５（ａ）の線分は特徴線を表し、×印は特徴点を表す。図５（ａ）の９個の特徴点のうち、特徴点５１１は、物体の辺の一部に対応する特徴線の端点に過ぎないため、その物体の３Ｄモデル５０２には、特徴点５１１に対応する端点が含まれていない。
【００７５】
図５（ｂ）は、実線分対応ペア３５５と、ユーザによって画像５０１内で選択された特徴点と、３Ｄモデル５０２から選択された端点の例を示している。この例では、ユーザの指示によって、画像５０１内の特徴線５３１が３Ｄモデル５０２の線分５３２に対応付けられ、実線分対応ペア３５５が生成される。また、仮想線分を特定しない選択操作が行われ、画像５０１内の特徴点５１２、特徴点５１３、及び特徴点５１４が、３Ｄモデル５０２の端点５２１、端点５２２、及び端点５２３にそれぞれ対応付けられる。
【００７６】
図５（ｃ）は、仮想線分対応ペア３５６の例を示している。この例では、以下の６本の仮想線分が生成されている。
【００７７】
仮想線分５４１：特徴点５１２と特徴点５１３を結ぶ線分
仮想線分５４２：特徴点５１３と特徴点５１４を結ぶ線分
仮想線分５４３：特徴点５１４と特徴点５１１を結ぶ線分
仮想線分５５１：端点５２１と端点５２２を結ぶ線分
仮想線分５５２：端点５２２と端点５２３を結ぶ線分
仮想線分５５３：端点５２３と端点５２１を結ぶ線分
【００７８】
これらの６本の仮想線分から、以下の３個の対応ペアが仮想線分対応ペア３５６として生成される。
【００７９】
仮想線分５４１と仮想線分５５１とを対応付けた対応ペア
仮想線分５４２と仮想線分５５２とを対応付けた対応ペア
仮想線分５４３と仮想線分５５３とを対応付けた対応ペア
【００８０】
図５（ｄ）は、ユーザによって画像５０１内で選択された追加特徴点と、３Ｄモデル５０２から選択された追加端点の例を示している。この例では、画像５０１内の特徴点５１５が追加特徴点として選択され、３Ｄモデル５０２の端点５２４が追加端点として選択されている。この場合、以下の６本の仮想線分が新たに生成される。
【００８１】
仮想線分５４４：特徴点５１５と特徴点５１２を結ぶ線分
仮想線分５４５：特徴点５１５と特徴点５１３を結ぶ線分
仮想線分５４６：特徴点５１５と特徴点５１４を結ぶ線分
仮想線分５５４：端点５２４と端点５２１を結ぶ線分
仮想線分５５５：端点５２４と端点５２２を結ぶ線分
仮想線分５５６：端点５２４と端点５２３を結ぶ線分
【００８２】
これらの６本の仮想線分から、以下の３個の対応ペアが仮想線分対応ペア３５６に追加される。
【００８３】
仮想線分５４４と仮想線分５５４とを対応付けた対応ペア
仮想線分５４５と仮想線分５５５とを対応付けた対応ペア
仮想線分５４６と仮想線分５５６とを対応付けた対応ペア
【００８４】
図６は、仮想線分を特定する選択操作の例を示している。図６（ａ）は、画像５０１内の特徴点と３Ｄモデル５０２の端点とを選択する選択操作の例を示している。図６（ａ）の画像５０１内の線分は特徴線を表し、黒丸は特徴点を表す。ユーザは、画像５０１内の特徴点５１２及び特徴点５１５を選択するとともに、３Ｄモデル５０２の端点５２１及び端点５２４を選択する。これにより、生成部１１４は、特徴点５１２と特徴点５１５を結ぶ仮想線分５４４と、端点５２１と端点５２４を結ぶ仮想線分５５４とを生成し、仮想線分５４４と仮想線分５５４とを対応付けた対応ペアを生成する。
【００８５】
図６（ｂ）は、画像５０１内の特徴点と３Ｄモデル５０２の線分を選択する選択操作の例を示している。ユーザは、画像５０１内の特徴点５１２及び特徴点５１３を選択するとともに、３Ｄモデル５０２の線分６０１を選択することで、線分６０１の端点５２１及び端点５２２を指定する。これにより、生成部１１４は、特徴点５１２と特徴点５１３を結ぶ仮想線分５４１と、端点５２１と端点５２２を結ぶ仮想線分５５１とを生成し、仮想線分５４１と仮想線分５５１とを対応付けた対応ペアを生成する。この場合、生成された仮想線分５５１は、線分６０１に一致するため、ユーザは、直接線分６０１を選択してもよい。
【００８６】
図７は、実線分対応ペア３５５を選択する選択操作と仮想線分を特定しない選択操作の例を示している。図７（ａ）は、実線分対応ペア３５５を選択する選択操作の例を示している。図７（ａ）の画像５０１内の線分は特徴線を表し、黒丸は特徴点を表す。ユーザは、画像５０１内の特徴線７０１と３Ｄモデル５０２の線分７０２とを選択し、生成部１１４は、特徴線７０１と線分７０２とを対応付けることで、実線分対応ペア３５５を生成する。
【００８７】
図７（ｂ）は、仮想線分を特定しない選択操作の例を示している。ユーザは、画像３５１内の特徴点５１２、特徴点５１３、及び特徴点７１１を選択し、生成部１１４は、選択された３つの特徴点から、３通りの２つの特徴点同士の組み合わせを生成し、各組み合わせに含まれる２つの特徴点を結ぶ仮想線分を生成する。
【００８８】
また、ユーザは、特徴点５１２、特徴点５１３、及び特徴点７１１に対応する端点として、それぞれ、３Ｄモデル５０２の端点５２１、端点５２２、及び端点７１２を選択し、生成部１１４は、選択された３つの端点から、３通りの２つの端点同士の組み合わせを生成し、各組み合わせに含まれる２つの端点を結ぶ仮想線分を生成する。これにより、以下の６本の仮想線分が生成される。
【００８９】
特徴点５１２と特徴点５１３を結ぶ仮想線分
特徴点５１３と特徴点７１１を結ぶ仮想線分
特徴点７１１と特徴点５１２を結ぶ仮想線分
端点５２１と端点５２２を結ぶ仮想線分
端点５２２と端点７１２を結ぶ仮想線分
端点７１２と端点５２１を結ぶ仮想線分
【００９０】
これらの６本の仮想線分から、３個の対応ペアが仮想線分対応ペア３５６として生成される。
【００９１】
図７（ｃ）は、撮像装置３０１の仮の位置及び姿勢に基づく重畳表示の例を示している。計算部３４１は、図７（ａ）の選択操作によって生成された実線分対応ペア３５５と、図７（ｂ）の選択操作によって生成された仮想線分対応ペア３５６とを用いて、仮の位置及び姿勢を計算する。そして、表示部３１３は、画像５０１と、仮の位置及び姿勢を用いて画像５０１上に投影された３Ｄモデル５０２とを、重畳表示する。この例では、推定誤差が閾値ＴＨ以上であるため、表示部３１３は、追加指示を要求する情報として、マーク７２１を画面上に表示する。
【００９２】
図８は、図７（ｃ）の重畳表示において、仮想線分対応ペア３５６に対応ペアを追加する選択操作の例を示している。図８（ａ）は、対応ペアを追加するための３Ｄモデル５０２に対する選択操作の例を示している。ユーザは、最初に３Ｄモデル５０２の端点８０１を追加端点として選択し、計算部３４１は、選択された端点８０１に対応する画像５０１内の追加点の候補８０２を求める。そして、表示部３１３は、その追加点の候補８０２を含む領域８０３を、ウィンドウ８０４内に拡大表示する。これにより、追加点の候補８０２が強調表示される。
【００９３】
図８（ｂ）は、追加点の候補８０２が選択され、端点８０１と追加点の候補８０２とを対応付けた対応ペアが追加された後に、対応ペアをさらに追加するための画像５０１に対する選択操作の例を示している。ユーザは、最初に画像５０１内の特徴点５１４を追加特徴点として選択し、計算部３４１は、選択された特徴点５１４に対応する３Ｄモデル５０２の追加端点の候補５２３を求める。そして、表示部３１３は、その追加端点の候補５２３を含む領域を、ウィンドウ８１１内に拡大表示する。これにより、追加端点の候補５２３が強調表示される。
【００９４】
図８（ｃ）は、追加端点の候補５２３が選択され、特徴点５１４と追加端点の候補５２３とを対応付けた対応ペアが追加された状態の例を示している。この状態において、実線分対応ペア３５５は、特徴線７０１と線分７０２とを対応付けた対応ペアである。また、仮想線分対応ペア３５６は、特徴点５１２〜特徴点５１４、特徴点７１１、及び点８０２の５個の点と、端点５２１〜端点５２３、端点７１２、及び端点８０１の５個の端点とから生成される、１０個の対応ペアを含む。
【００９５】
図８（ｄ）は、撮像装置３０１の最終的な位置及び姿勢に基づく重畳表示の例を示している。計算部３４１は、図８（ｃ）の状態における実線分対応ペア３５５及び仮想線分対応ペア３５６を用いて、撮像装置３０１の位置及び姿勢を計算し、表示部３１３は、画像５０１と３Ｄモデル５０２とを重畳表示する。この例では、推定誤差が閾値ＴＨよりも小さいため、表示部３１３は、マーク７２１を表示しない。
【００９６】
ところで、図４のステップ４０２において、表示部３１３は、複数の特徴点３５４のうち、選択対象として有効な特徴点３５４のみを画面上に表示することも可能である。この場合、特徴点検出部３２２は、画像３５１から検出した複数の特徴点３５４のうち、複数の特徴線３５３の交点の周囲における所定範囲内の特徴点３５４を特定し、表示部３１３は、特徴点検出部３２２が特定した特徴点３５４のみを表示する。
【００９７】
図９は、特徴線３５３の交点の周囲における所定範囲内の特徴点３５４の例を示している。画像５０１内の領域９０１は、画像５０１から検出された特徴線９１１と特徴線９１２との交点の周囲における所定範囲（近傍領域）に対応し、領域９０１内には、画像５０１から検出された特徴点５１４が含まれている。この場合、表示部３１３は、特徴線９１１と特徴線９１２との交点に対応する選択対象として、領域９０１内の特徴点５１４のみを表示する。
【００９８】
同様にして、表示部３１３は、画像５０１から検出された他の特徴線の交点に対応する選択対象として、その交点の近傍領域内の特徴点のみを表示する。これにより、領域９０２内の特徴点９２１のように、物体の表面の模様又は陰影から検出された特徴点を、選択対象から除外することができる。これにより、選択対象の特徴点の個数が減少するため、操作負荷が低減される。
【００９９】
図４のステップ４１０において、評価部３４３は、特許文献３に記載された計算方法により推定誤差を計算することができる。この場合、評価部３４３は、実線分対応ペア３５５及び仮想線分対応ペア３５６のＮ個（Ｎは２以上の整数）の対応ペアを用いて、各対応ペアに含まれる特徴線３５３の位置と線分の位置の誤差Ｅｉ（ｉ＝１〜Ｎ）を計算する。そして、評価部３４３は、Ｎ個の対応ペアに対する二乗誤差の総和Ｅを、推定誤差として求める。二乗誤差の総和Ｅは、次式により計算される。
【０１００】
【数１】
2019106008.tif 000003
【０１０１】
評価部３４３は、例えば、図１０又は図１１に示すような方法で、誤差Ｅｉを計算することができる。図１０は、特徴線と線分の間の領域の面積に基づく計算方法の例を示している。ｉ番目の対応ペアに含まれる線分が線分１００１であり、特徴線が線分１００２である場合、線分１００１の両端と線分１００２の両端をそれぞれ結ぶ線分１００３及び線分１００４を定義することができる。この場合、線分１００１〜線分１００４によって囲まれた領域の面積Ａｉを、誤差Ｅｉとして用いることができる。
【０１０２】
Ｅｉ＝Ａｉ      （２）
【０１０３】
面積Ａｉが小さいほど、誤差Ｅｉは小さくなり、線分１００１が線分１００２に重なっている場合、誤差Ｅｉは０になる。
【０１０４】
図１１は、特徴線と線分との間の距離に基づく計算方法の例を示している。線分１００２の両端から線分１００１上へ下ろした垂線１１０１及び垂線１１０２の長さを、それぞれ、Ｌｉ１及びＬｉ２とする。この場合、Ｌｉ１及びＬｉ２の和を、誤差Ｅｉとして用いることができる。
【０１０５】
Ｅｉ＝Ｌｉ１＋Ｌｉ２      （３）
【０１０６】
Ｌｉ１及びＬｉ２が短いほど、誤差Ｅｉは小さくなり、線分１００１が線分１００２に重なっている場合、誤差Ｅｉは０になる。
【０１０７】
図１及び図３の推定装置１０１の構成は一例に過ぎず、推定装置１０１の用途又は条件に応じて一部の構成要素を省略又は変更してもよい。例えば、図３の推定装置１０１において、３Ｄモデル３５２から線分を抽出する処理が外部の装置によって行われる場合は、抽出部３１２を省略することができる。画像３５１及び３Ｄモデル３５２を表示する処理が外部の装置によって行われる場合は、表示部３１３を省略することができる。
【０１０８】
ユーザが目視によって画像３５１内の点を選択することができ、特徴点３５４を選択対象として表示する必要がない場合は、特徴点検出部３２２を省略することができる。ＣＡＤデータの代わりに、物体の形状を表す他の形状情報を３Ｄモデル３５２として用いてもよい。
【０１０９】
図２及び図４のフローチャートは一例に過ぎず、推定装置１０１の構成又は条件に応じて一部の処理を省略又は変更してもよい。例えば、図４の推定処理において、特徴点３５４を選択対象として表示する必要がない場合は、ステップ４０２において特徴線３５３のみが検出される。選択候補を強調表示する必要がない場合は、ステップ４１６及びステップ４１９の処理を省略することができる。
【０１１０】
図５〜図９に示した画像５０１、３Ｄモデル５０２、特徴線、特徴点、線分、端点等は一例に過ぎず、画像、３Ｄモデル、特徴線、特徴点、線分、端点等は、撮影対象の物体に応じて変化する。
【０１１１】
図１０及び図１１の誤差の計算方法は一例に過ぎず、推定装置１０１の構成又は条件に応じて別の計算方法を用いてもよい。式（１）〜式（３）の計算式は一例に過ぎず、推定装置１０１の構成又は条件に応じて別の計算式を用いてもよい。
【０１１２】
図１及び図３の推定装置１０１は、例えば、図１２に示すような情報処理装置（コンピュータ）を用いて実装することができる。図１２の情報処理装置は、Central Processing Unit（ＣＰＵ）１２０１、メモリ１２０２、入力装置１２０３、出力装置１２０４、補助記憶装置１２０５、媒体駆動装置１２０６、及びネットワーク接続装置１２０７を含む。これらの構成要素はバス１２０８により互いに接続されている。図３の撮像装置３０１は、バス１２０８に接続されていてもよい。
【０１１３】
メモリ１２０２は、例えば、Read Only Memory（ＲＯＭ）、Random Access Memory（ＲＡＭ）、フラッシュメモリ等の半導体メモリであり、処理に用いられるプログラム及びデータを格納する。メモリ１２０２は、図１及び図３の記憶部１１１として用いることができる。
【０１１４】
ＣＰＵ１２０１（プロセッサ）は、例えば、メモリ１２０２を利用してプログラムを実行することにより、図１及び図３の検出部１１２、受け付け部１１３、生成部１１４、及び推定部１１５として動作する。ＣＰＵ１２０１は、メモリ１２０２を利用してプログラムを実行することにより、図３の画像取得部３１１、抽出部３１２、特徴線検出部３２１、特徴点検出部３２２、計算部３４１、判定部３４２、及び評価部３４３としても動作する。
【０１１５】
入力装置１２０３は、例えば、キーボード、ポインティングデバイス等であり、オペレータ又はユーザからの指示又は情報の入力に用いられる。出力装置１２０４は、例えば、表示装置、プリンタ、スピーカ等であり、オペレータ又はユーザへの問い合わせ又は指示、及び処理結果の出力に用いられる。処理結果は、推定結果３５７であってもよく、画像３５１上に重畳された３Ｄモデル３５２であってもよい。出力装置１２０４は、図３の表示部３１３として用いることができる。
【０１１６】
補助記憶装置１２０５は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク装置、テープ装置等である。補助記憶装置１２０５は、ハードディスクドライブ又はフラッシュメモリであってもよい。情報処理装置は、補助記憶装置１２０５にプログラム及びデータを格納しておき、それらをメモリ１２０２にロードして使用することができる。補助記憶装置１２０５は、図１及び図３の記憶部１１１として用いることができる。
【０１１７】
媒体駆動装置１２０６は、可搬型記録媒体１２０９を駆動し、その記録内容にアクセスする。可搬型記録媒体１２０９は、メモリデバイス、フレキシブルディスク、光ディスク、光磁気ディスク等である。可搬型記録媒体１２０９は、Compact Disk Read Only Memory（ＣＤ−ＲＯＭ）、Digital Versatile Disk（ＤＶＤ）、Universal Serial Bus（ＵＳＢ）メモリ等であってもよい。オペレータ又はユーザは、この可搬型記録媒体１２０９にプログラム及びデータを格納しておき、それらをメモリ１２０２にロードして使用することができる。
【０１１８】
このように、処理に用いられるプログラム及びデータを格納するコンピュータ読み取り可能な記録媒体は、メモリ１２０２、補助記憶装置１２０５、又は可搬型記録媒体１２０９のような、物理的な（非一時的な）記録媒体である。
【０１１９】
ネットワーク接続装置１２０７は、Local Area Network、Wide Area Network等の通信ネットワークに接続され、通信に伴うデータ変換を行う通信インタフェース回路である。情報処理装置は、プログラム及びデータを外部の装置からネットワーク接続装置１２０７を介して受信し、それらをメモリ１２０２にロードして使用することができる。
【０１２０】
なお、情報処理装置が図１２のすべての構成要素を含む必要はなく、用途又は条件に応じて一部の構成要素を省略することも可能である。例えば、可搬型記録媒体１２０９又は通信ネットワークを使用しない場合は、媒体駆動装置１２０６又はネットワーク接続装置１２０７を省略してもよい。
【０１２１】
開示の実施形態とその利点について詳しく説明したが、当業者は、特許請求の範囲に明確に記載した本発明の範囲から逸脱することなく、様々な変更、追加、省略をすることができるであろう。
【０１２２】
図１乃至図１２を参照しながら説明した実施形態に関し、さらに以下の付記を開示する。
（付記１）
物体の形状を表す複数の線分を含む形状情報を記憶する記憶部と、
撮像装置が撮影した前記物体の画像から、複数の特徴線を検出する検出部と、
前記複数の特徴線の中から選択された特徴線と、前記複数の線分の中から選択された線分とを対応付ける第１指示を受け付けるとともに、前記画像内で選択された２つの点と、前記複数の線分の端点の中から選択された２つの端点とを対応付ける第２指示を受け付ける受け付け部と、
前記２つの点を結ぶ第１線分と前記２つの端点を結ぶ第２線分とを生成する生成部と、
前記選択された特徴線と前記選択された線分との組み合わせと、前記第１線分と前記第２線分との組み合わせとを用いて、３次元空間内における前記撮像装置の位置と姿勢とを推定する推定部と、
を備えることを特徴とする推定装置。
（付記２）
前記第２指示は、前記２つの点を含む３つ以上の点と、前記２つの端点を含む３つ以上の端点とを対応付ける指示であり、前記生成部は、前記３つ以上の点から前記第１線分を含む複数の線分を生成し、前記３つ以上の端点から前記第２線分を含む複数の線分を生成し、前記推定部は、前記選択された特徴線と前記選択された線分との組み合わせと、前記第１線分を含む複数の線分それぞれと前記第２線分を含む複数の線分それぞれとの組み合わせとを用いて、前記撮像装置の位置と姿勢とを推定することを特徴とする付記１記載の推定装置。
（付記３）
前記推定部は、前記撮像装置の位置と姿勢の推定誤差を計算し、前記推定誤差に基づいて追加指示を要求する情報を出力し、前記受け付け部は、追加点と追加端点とを対応付ける第３指示を受け付け、前記生成部は、前記２つの点のいずれか一方と前記追加点とを用いて第１追加線分を生成し、前記２つの端点のいずれか一方と前記追加端点とを用いて第２追加線分を生成し、前記推定部は、前記選択された特徴線と前記選択された線分との組み合わせと、前記第１線分と前記第２線分との組み合わせと、前記第１追加線分と前記第２追加線分との組み合わせとを用いて、前記撮像装置の位置と姿勢とを再度推定することを特徴とする付記１又は２記載の推定装置。
（付記４）
前記画像内で前記追加点が選択されるよりも前に、前記複数の線分の端点の中から前記追加端点が選択された場合、前記推定部は、前記追加端点に対応する前記画像内の点の候補を強調して表示する制御を行い、前記受け付け部は、前記点の候補を前記追加点として選択する指示を受け付けることを特徴とする付記３記載の推定装置。
（付記５）
前記複数の線分の端点の中から前記追加端点が選択されるよりも前に、前記画像内で前記追加点が選択された場合、前記推定部は、前記追加点に対応する端点の候補を強調して表示する制御を行い、前記受け付け部は、前記端点の候補を前記追加端点として選択する指示を受け付けることを特徴とする付記３記載の推定装置。
（付記６）
前記検出部は、前記画像から複数の特徴点をさらに検出し、前記２つの点は、前記複数の特徴点の中から選択された２つの特徴点であることを特徴とする付記１乃至５のいずれか１項に記載の推定装置。
（付記７）
前記検出部は、前記複数の特徴点のうち、前記複数の特徴線の交点の周囲における所定範囲内の特徴点を特定し、前記２つの点は、前記所定範囲内の特徴点の中から選択された２つの特徴点であることを特徴とする付記６記載の推定装置。
（付記８）
物体の形状を表す複数の線分を含む形状情報を記憶するコンピュータのための推定プログラムであって、
撮像装置が撮影した前記物体の画像から、複数の特徴線を検出し、
前記複数の特徴線の中から選択された特徴線と、前記複数の線分の中から選択された線分とを対応付ける第１指示を受け付け、
前記画像内で選択された２つの点と、前記複数の線分の端点の中から選択された２つの端点とを対応付ける第２指示を受け付け、
前記２つの点を結ぶ第１線分と前記２つの端点を結ぶ第２線分とを生成し、
前記選択された特徴線と前記選択された線分との組み合わせと、前記第１線分と前記第２線分との組み合わせとを用いて、３次元空間内における前記撮像装置の位置と姿勢とを推定する、
処理を前記コンピュータに実行させるための推定プログラム。
（付記９）
前記第２指示は、前記２つの点を含む３つ以上の点と、前記２つの端点を含む３つ以上の端点とを対応付ける指示であり、前記コンピュータは、前記３つ以上の点から前記第１線分を含む複数の線分を生成し、前記３つ以上の端点から前記第２線分を含む複数の線分を生成し、前記選択された特徴線と前記選択された線分との組み合わせと、前記第１線分を含む複数の線分それぞれと前記第２線分を含む複数の線分それぞれとの組み合わせとを用いて、前記撮像装置の位置と姿勢とを推定することを特徴とする付記８記載の推定プログラム。
（付記１０）
前記コンピュータは、前記撮像装置の位置と姿勢の推定誤差を計算し、前記推定誤差に基づいて追加指示を要求する情報を出力し、追加点と追加端点とを対応付ける第３指示を受け付け、前記２つの点のいずれか一方と前記追加点とを用いて第１追加線分を生成し、前記２つの端点のいずれか一方と前記追加端点とを用いて第２追加線分を生成し、前記選択された特徴線と前記選択された線分との組み合わせと、前記第１線分と前記第２線分との組み合わせと、前記第１追加線分と前記第２追加線分との組み合わせとを用いて、前記撮像装置の位置と姿勢とを再度推定することを特徴とする付記８又は９記載の推定プログラム。
（付記１１）
物体の形状を表す複数の線分を含む形状情報を記憶するコンピュータが、
撮像装置が撮影した前記物体の画像から、複数の特徴線を検出し、
前記複数の特徴線の中から選択された特徴線と、前記複数の線分の中から選択された線分とを対応付ける第１指示を受け付け、
前記画像内で選択された２つの点と、前記複数の線分の端点の中から選択された２つの端点とを対応付ける第２指示を受け付け、
前記２つの点を結ぶ第１線分と前記２つの端点を結ぶ第２線分とを生成し、
前記選択された特徴線と前記選択された線分との組み合わせと、前記第１線分と前記第２線分との組み合わせとを用いて、３次元空間内における前記撮像装置の位置と姿勢とを推定する、
ことを特徴とする推定方法。
（付記１２）
前記第２指示は、前記２つの点を含む３つ以上の点と、前記２つの端点を含む３つ以上の端点とを対応付ける指示であり、前記コンピュータは、前記３つ以上の点から前記第１線分を含む複数の線分を生成し、前記３つ以上の端点から前記第２線分を含む複数の線分を生成し、前記選択された特徴線と前記選択された線分との組み合わせと、前記第１線分を含む複数の線分それぞれと前記第２線分を含む複数の線分それぞれとの組み合わせとを用いて、前記撮像装置の位置と姿勢とを推定することを特徴とする付記１１記載の推定方法。
（付記１３）
前記コンピュータは、前記撮像装置の位置と姿勢の推定誤差を計算し、前記推定誤差に基づいて追加指示を要求する情報を出力し、追加点と追加端点とを対応付ける第３指示を受け付け、前記２つの点のいずれか一方と前記追加点とを用いて第１追加線分を生成し、前記２つの端点のいずれか一方と前記追加端点とを用いて第２追加線分を生成し、前記選択された特徴線と前記選択された線分との組み合わせと、前記第１線分と前記第２線分との組み合わせと、前記第１追加線分と前記第２追加線分との組み合わせとを用いて、前記撮像装置の位置と姿勢とを再度推定することを特徴とする付記１１又は１２記載の推定方法。
【符号の説明】
【０１２３】
１０１  推定装置
１１１  記憶部
１１２  検出部
１１３  受け付け部
１１４  生成部
１１５  推定部
１２１  形状情報
３０１  撮像装置
３１１  画像取得部
３１２  抽出部
３１３  表示部
３２１  特徴線検出部
３２２  特徴点検出部
３４１  計算部
３４２  判定部
３４３  評価部
３５１、５０１  画像
３５２、５０２  ３Ｄモデル
３５３、５３１、７０１、９１１、９１２  特徴線
３５４、５１１〜５１５、７１１、９２１  特徴点
３５５  実線分対応ペア
３５６  仮想線分対応ペア
３５７  推定結果
５２１〜５２４、７１２、８０１  端点
５３２、６０１、７０２、１００１〜１００４  線分
５４１〜５４６、５５１〜５５６  仮想線分
７２１  マーク
８０２  点
８０３、９０１、９０２  領域
８０４、８１１  ウィンドウ
１１０１、１１０２  垂線
１２０１  ＣＰＵ
１２０２  メモリ
１２０３  入力装置
１２０４  出力装置
１２０５  補助記憶装置
１２０６  媒体駆動装置
１２０７  ネットワーク接続装置
１２０８  バス
１２０９  可搬型記録媒体
【図１】
2019106008.tif 000004
【図２】
2019106008.tif 000005
【図３】
2019106008.tif 000006
【図４】
2019106008.tif 000007
【図５】
2019106008.tif 000008
【図６】
2019106008.tif 000009
【図７】
2019106008.tif 000010
【図８】
2019106008.tif 000011
【図９】
2019106008.tif 000012
【図１０】
2019106008.tif 000013
【図１１】
2019106008.tif 000014
【図１２】
2019106008.tif 000015