(57)【要約】【課題】撮像装置の位置及び姿勢を推定する際に、物体の画像と物体の形状を表す形状情報とを対応付けるための計算量を削減する。【解決手段】記憶部１１１は、物体の形状を表す複数の線分を含む形状情報１２１を記憶する。検出部１１２は、撮像装置が撮影した物体の画像から、複数の特徴線を検出する。生成部１１３は、形状情報に含まれる複数の線分のうち所定数の線分の集合を複数個生成し、他の線分よりも長い線分を優先的に選択する長さ優先の選択順序に基づいて、複数個の集合の中から処理対象の集合を選択する。そして、生成部１１３は、処理対象の集合に含まれる所定数の線分それぞれと、複数の特徴線のうち所定数の特徴線それぞれとを対応付けた、所定数の組み合わせを生成する。推定部１１４は、所定数の組み合わせを用いて、３次元空間内における撮像装置の位置と姿勢とを推定する。【選択図】図１
2019159470.tif 000002
【特許請求の範囲】
【請求項１】
物体の形状を表す複数の線分を含む形状情報を記憶する記憶部と、
撮像装置が撮影した前記物体の画像から、複数の特徴線を検出する検出部と、
前記複数の線分のうち所定数の線分の集合を複数個生成し、他の線分よりも長い線分を優先的に選択する長さ優先の選択順序に基づいて、前記複数個の集合の中から処理対象の集合を選択し、前記処理対象の集合に含まれる前記所定数の線分それぞれと、前記複数の特徴線のうち前記所定数の特徴線それぞれとを対応付けた、前記所定数の組み合わせを生成する生成部と、
前記所定数の組み合わせを用いて、３次元空間内における前記撮像装置の位置と姿勢とを推定する推定部と、
を備えることを特徴とする推定装置。
【請求項２】
前記生成部は、前記長さ優先の選択順序と、他の線分ペアよりも距離が離れた線分ペアを優先的に選択する距離優先の選択順序とを組み合わせて、前記処理対象の集合を選択することを特徴とする請求項１記載の推定装置。
【請求項３】
前記生成部は、前記長さ優先の選択順序と、前記距離優先の選択順序と、同じ平面上に存在する線分ペアよりも同じ平面上に存在しない線分ペアを優先的に選択する空間分布優先の選択順序とを組み合わせて、前記処理対象の集合を選択することを特徴とする請求項２記載の推定装置。
【請求項４】
前記生成部は、前記処理対象の集合に含まれる前記所定数の線分を前記画像上に投影して、前記所定数の投影線を生成し、前記所定数の投影線に含まれる投影線同士の角度に基づいて、前記複数の特徴線の中から前記所定数の特徴線を選択することを特徴とする請求項１乃至３のいずれか１項に記載の推定装置。
【請求項５】
前記複数の線分を前記画像上に投影して複数の投影線を生成し、前記複数の投影線のうち前記物体の外周を表す投影線を抽出する外周線抽出部をさらに備え、
前記生成部は、前記物体の外周を表す投影線に対応する線分の中から、前記所定数の線分を選択することを特徴とする請求項１乃至４のいずれか１項に記載の推定装置。
【請求項６】
前記画像内の指定領域を設定する領域設定部をさらに備え、
前記生成部は、前記複数の特徴線のうち、前記指定領域に含まれる複数の特徴線を抽出し、抽出した複数の特徴線の中から前記所定数の特徴線を選択することを特徴とする請求項１乃至５のいずれか１項に記載の推定装置。
【請求項７】
前記複数の線分を前記画像上に投影して複数の投影線を生成し、前記複数の線分から、投影線同士の角度が所定値以内である類似線分のグループを生成する線分分類部をさらに備え、
前記生成部は、前記類似線分のグループ内の複数の線分を含まないように、前記所定数の線分を選択することを特徴とする請求項１乃至６のいずれか１項に記載の推定装置。
【請求項８】
前記複数の特徴線から、特徴線同士の角度が所定値以内である類似特徴線のグループを生成する特徴線分類部をさらに備え、
前記生成部は、前記類似特徴線のグループ内の複数の特徴線を含まないように、前記所定数の特徴線を選択することを特徴とする請求項１乃至７のいずれか１項に記載の推定装置。
【請求項９】
コンピュータが、
撮像装置が撮影した物体の画像から、複数の特徴線を検出し、
前記物体の形状を表す形状情報に含まれる複数の線分のうち、所定数の線分の集合を複数個生成し、
他の線分よりも長い線分を優先的に選択する長さ優先の選択順序に基づいて、前記複数個の集合の中から処理対象の集合を選択し、
前記処理対象の集合に含まれる前記所定数の投影線それぞれと、前記複数の特徴線のうち前記所定数の特徴線それぞれとを対応付けた、前記所定数の組み合わせを生成し、
前記所定数の組み合わせを用いて、３次元空間内における前記撮像装置の位置と姿勢とを推定する、
ことを特徴とする推定方法。
【請求項１０】
撮像装置が撮影した物体の画像から、複数の特徴線を検出し、
前記物体の形状を表す形状情報に含まれる複数の線分のうち、所定数の線分の集合を複数個生成し、
他の線分よりも長い線分を優先的に選択する長さ優先の選択順序に基づいて、前記複数個の集合の中から処理対象の集合を選択し、
前記処理対象の集合に含まれる前記所定数の投影線それぞれと、前記複数の特徴線のうち前記所定数の特徴線それぞれとを対応付けた、前記所定数の組み合わせを生成し、
前記所定数の組み合わせを用いて、３次元空間内における前記撮像装置の位置と姿勢とを推定する、
処理をコンピュータに実行させるための推定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、推定装置、推定方法、及び推定プログラムに関する。
【背景技術】
【０００２】
近年、拡張現実（Augmented Reality，ＡＲ）技術を用いて画像を表示するシステムが普及してきている（例えば、特許文献１を参照）。ＡＲ技術の一例では、パーソナルコンピュータ（Personal Computer，ＰＣ）、携帯端末装置等に搭載したカメラを用いて物体が撮影され、物体の画像から３次元空間内におけるカメラの位置及び姿勢が推定される。そして、決定されたカメラの位置及び姿勢を基準にして、画像中の任意の位置にコンテンツ情報が重畳表示される。
【０００３】
物体の画像から、その物体とカメラとの間の相対的な位置及び姿勢を推定する様々な技術が知られている（例えば、特許文献２〜特許文献４を参照）。カメラキャリブレーション、線分検出、立体の機械知覚、直線対応付けによる姿勢推定、コンピュータ・ビジョンのための多面体表現等の技術も知られている（例えば、非特許文献１〜非特許文献５を参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−１１８６４１号公報
【特許文献２】特開２００７−３３３６７９号公報
【特許文献３】特開２０１５−７６３９号公報
【特許文献４】特開２０１６−１７００５０号公報
【非特許文献】
【０００５】
【非特許文献１】Z. Zhang,“A Flexible New Technique for Camera Calibration”, IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol.22, No.11, pp.1330-1334, November 2000
【非特許文献２】R. G. Gioi et al.,“LSD: a Line Segment Detector”, Image Processing On Line, 2 (2012), pp.35-55, March 2012
【非特許文献３】L. G. Roberts,“Machine perception of three-dimensional solids”, MIT Lincoln Lab. Rep., TR3315, pp.1-82, May 1963
【非特許文献４】C. Xu et al.,“Pose Estimation from Line Correspondences: A Complete Analysis and a Series of Solutions”, IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol.39, No.6, pp.1209-1222, June 2017
【非特許文献５】Bruce G. Baumgart,“A polyhedron representation for computer vision”, Proceedings of the May 19-22, 1975, national computer conference and exposition, pp.589-596, 1975
【発明の概要】
【発明が解決しようとする課題】
【０００６】
カメラにより撮影した物体の画像と、その物体の３次元形状を表すＣＡＤ（Computer-Aided Design）データとを対応付けることで、カメラの位置及び姿勢を推定する場合、対応付けのための計算量が多くなる。
【０００７】
なお、かかる問題は、物体の画像とＣＡＤデータとを対応付ける場合に限らず、物体の画像と他の形状情報とを対応付ける場合においても生ずるものである。
【０００８】
１つの側面において、本発明は、撮像装置の位置及び姿勢を推定する際に、物体の画像と物体の形状を表す形状情報とを対応付けるための計算量を削減することを目的とする。
【課題を解決するための手段】
【０００９】
１つの案では、推定装置は、記憶部、検出部、生成部、及び推定部を含む。記憶部は、物体の形状を表す複数の線分を含む形状情報を記憶する。検出部は、撮像装置が撮影した物体の画像から、複数の特徴線を検出する。
【００１０】
生成部は、形状情報に含まれる複数の線分のうち所定数の線分の集合を複数個生成し、他の線分よりも長い線分を優先的に選択する長さ優先の選択順序に基づいて、複数個の集合の中から処理対象の集合を選択する。そして、生成部は、処理対象の集合に含まれる所定数の線分それぞれと、複数の特徴線のうち所定数の特徴線それぞれとを対応付けた、所定数の組み合わせを生成する。推定部は、所定数の組み合わせを用いて、３次元空間内における撮像装置の位置と姿勢とを推定する。
【発明の効果】
【００１１】
実施形態によれば、撮像装置の位置及び姿勢を推定する際に、物体の画像と物体の形状を表す形状情報とを対応付けるための計算量を削減することができる。
【図面の簡単な説明】
【００１２】
【図１】推定装置の機能的構成図である。
【図２】推定処理のフローチャートである。
【図３】推定装置の第１の具体例を示す機能的構成図である。
【図４】ＣＡＤデータを示す図である。
【図５】画面上に表示された画像を示す図である。
【図６】投影線を示す図である。
【図７】４本組の投影線を示す図である。
【図８】特徴線を示す図である。
【図９】特徴線候補に対する判定結果を示す図である。
【図１０】面積に基づく誤差の計算方法を示す図である。
【図１１】距離に基づく誤差の計算方法を示す図である。
【図１２】推定処理の第１の具体例を示すフローチャートである。
【図１３】３Ｄ線分の４本組のリストを生成する処理を示す図である。
【図１４】推定処理の誤差を示す図である。
【図１５】推定装置の第２の具体例を示す機能的構成図である。
【図１６】指定領域を示す図である。
【図１７】指定領域の外縁部を示す図である。
【図１８】推定処理の第２の具体例を示すフローチャートである。
【図１９】外周線抽出処理のフローチャートである。
【図２０】内部領域を示す図である。
【図２１】推定装置の第３の具体例を示す機能的構成図である。
【図２２】推定処理の第３の具体例を示すフローチャートである。
【図２３】情報処理装置の構成図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照しながら、実施形態を詳細に説明する。
ＡＲ技術の応用として、現場で製造した部材の３次元形状を表すＣＡＤデータを、その部材の画像に重畳表示することで、製造診断が行われることがある。この場合、部材の製造診断を行うのは現場の作業員であり、製造診断が高速かつ容易に行われることが望ましい。
【００１４】
また、部材は人工物であるため、そのＣＡＤデータには多くの直線部分が含まれている。したがって、ＣＡＤデータに含まれる直線部分を用いて、部材に対するカメラの位置及び姿勢を推定することが可能である。この場合、特許文献１又は先願である特願２０１６−１８７５１５号に記載されているように、物体の画像から検出された特徴線と、その物体のＣＡＤデータに含まれる３Ｄ線分とを対応付ける方法が考えられる。
【００１５】
しかしながら、画像から検出された特徴線とＣＡＤデータに含まれる３Ｄ線分とのすべての組み合わせを用いて、総当たり計算を行うと、特徴線及び３Ｄ線分の本数が増加するにつれて、計算量が増大する。例えば、ｍ本の特徴線から４本の特徴線を選択し、ｎ本の３Ｄ線分から４本の３Ｄ線分を選択して、４個の組み合わせ（対応ペア）を生成する場合、組み合わせの総数はｍＣ４×ｎＣ４個になる。３次元形状の複雑度に応じた組み合わせの総数の計算例を以下に示す。
【００１６】
（１）簡単な形状の物体
ｍ＝１２及びｎ＝７である場合、組み合わせの総数は１７３２５個である。
（２）複雑な形状の物体
ｍ＝６３及びｎ＝１３０である場合、組み合わせの総数は６．７５＊１０１２個である。
（３）さらに複雑な形状の物体
ｍ＝３１４及びｎ＝１５８である場合、組み合わせの総数は９．９３＊１０１５個である。
【００１７】
このように、特徴線及び３Ｄ線分の本数が増加すると、組み合わせの総数が膨大になり、対応ペアを生成するための計算量が増大する。このため、４個の対応ペアを用いてカメラの位置及び姿勢を推定するための計算時間を約１０ｍｓとすると、（２）及び（３）の物体の場合、実用的な計算時間である数分以内では、４個の対応ペアの最適解が決定されない。したがって、実用的な計算時間でカメラの位置及び姿勢を推定することは困難である。
【００１８】
図１は、実施形態の推定装置の機能的構成例を示している。図１の推定装置１０１は、記憶部１１１、検出部１１２、生成部１１３、及び推定部１１４を含む。記憶部１１１は、物体の形状を表す複数の線分を含む形状情報１２１を記憶する。
【００１９】
図２は、図１の推定装置１０１が行う推定処理の例を示すフローチャートである。まず、検出部１１２は、撮像装置が撮影した物体の画像から、複数の特徴線を検出する（ステップ２０１）。
【００２０】
次に、生成部１１３は、形状情報１２１に含まれる複数の線分のうち所定数の線分の集合を複数個生成する（ステップ２０２）。そして、生成部１１３は、他の線分よりも長い線分を優先的に選択する長さ優先の選択順序に基づいて、複数個の集合の中から処理対象の集合を選択する（ステップ２０３）。
【００２１】
次に、生成部１１３は、処理対象の集合に含まれる所定数の線分それぞれと、複数の特徴線のうち所定数の特徴線それぞれとを対応付けた、所定数の組み合わせを生成する（ステップ２０４）。そして、推定部１１４は、所定数の組み合わせを用いて、３次元空間内における撮像装置の位置と姿勢とを推定する（ステップ２０５）。
【００２２】
このような推定装置１０１によれば、撮像装置の位置及び姿勢を推定する際に、物体の画像と物体の形状を表す形状情報とを対応付けるための計算量を削減することができる。
【００２３】
図３は、図１の推定装置１０１の第１の具体例を示している。図３の推定装置３０１は、記憶部３１１、画像取得部３１２、特徴線検出部３１３、線分検出部３１４、パラメータ設定部３１５、生成部３１６、パラメータ計算部３１７、誤差計算部３１８、決定部３１９、及び出力部３２０を含む。
【００２４】
記憶部３１１は図１の記憶部１１１に対応し、特徴線検出部３１３は検出部１１２に対応し、生成部３１６は生成部１１３に対応し、パラメータ計算部３１７、誤差計算部３１８、及び決定部３１９は推定部１１４に対応する。
【００２５】
推定装置３０１は、タブレット、ノート型ＰＣ（Personal Computer）、スマートデバイス等の携帯端末装置であってもよく、デスクトップ型ＰＣ等の情報処理装置であってもよい。
【００２６】
記憶部３１１は、ＣＡＤデータ３３１を記憶している。ＣＡＤデータ３３１は、図１の形状情報１２１に対応し、物体の３次元形状を表す複数の頂点の頂点情報と、複数の線分の線分情報とを含む。頂点情報は、物体の各頂点の３次元座標を含み、線分情報は、各線分の両端の頂点を示す識別情報、又は各線分の両端の頂点の３次元座標を含む。ＣＡＤデータ３３１は、ＯＢＪ形式のデータであってもよい。
【００２７】
図４は、ＣＡＤデータ３３１の例を示している。図４のＣＡＤデータ３３１は、ＩＤ、始点、及び終点を含む。ＩＤは、線分の識別情報を表し、始点は、線分の一方の端点の３次元座標を表し、終点は、線分の他方の端点の３次元座標を表す。
【００２８】
撮像装置３０２は、例えば、ＣＣＤ（Charged-Coupled Device）、ＣＭＯＳ（Complementary Metal-Oxide-Semiconductor）等の撮像素子を有するカメラであり、ＣＡＤデータ３３１が表す物体の画像３３２を撮影する。画像取得部３１２は、撮像装置３０２から画像３３２を取得して、記憶部３１１に格納する。
【００２９】
特徴線検出部３１３は、エッジ検出処理を行って、画像３３２から複数のエッジ線を検出し、検出したエッジ線を特徴線３３３として記憶部３１１に格納する。特徴線検出部３１３は、例えば、非特許文献２の技術を用いて、画像３３２からエッジ線を検出することができる。線分検出部３１４は、ＣＡＤデータ３３１に含まれる複数の線分を検出し、検出した複数の線分を複数の３Ｄ線分３３４として記憶部３１１に格納する。
【００３０】
パラメータ設定部３１５は、３次元空間内における撮像装置３０２の初期位置及び初期姿勢を表す初期パラメータ３３５を設定する。まず、パラメータ設定部３１５は、ＣＡＤデータ３３１が表す物体を画像３３２上に投影して、画像３３２及び物体の形状を画面上に表示する。
【００３１】
図５は、画面上に表示された画像３３２及び物体の形状の例を示している。画面中央には、画像３３２に写っている物体５０２が表示されており、物体５０２上には、物体５０２から検出された特徴線３３３が表示されている。また、物体５０２の左下には、ＣＡＤデータ３３１から検出された３Ｄ線分３３４が表す、物体の形状５０１が表示されている。
【００３２】
ユーザは、形状５０１の位置及び姿勢が物体５０２と近似するように、画面上で形状５０１の位置及び姿勢を変更する操作を行う。画面上で形状５０１の位置及び姿勢を変更することで、画面に対する視点の位置及び姿勢が変化する。そこで、パラメータ設定部３１５は、ユーザが決定した形状５０１の位置及び姿勢に対応する視点の位置及び姿勢を、撮像装置３０２の初期位置及び初期姿勢として用いる。そして、パラメータ設定部３１５は、その初期位置及び初期姿勢を表すパラメータを、初期パラメータ３３５として記憶部３１１に格納する。
【００３３】
生成部３１６は、形状５０１に含まれる３Ｄ線分のうち、視点から観察されない３Ｄ線分（隠線）を除去する。生成部３１６は、例えば、非特許文献３の技術を用いて、隠線を除去することができる。
【００３４】
パラメータ設定部３１５は、別の先願である特願２０１７−１９５７８７号に記載された技術を用いて、初期パラメータ３３５を自動的に決定することも可能である。この技術によれば、３次元空間内における複数の視点それぞれから観察される物体の位置及び姿勢を表す姿勢情報と、観察される物体の視点画像と、その視点画像から抽出された特徴量とが、関連付けて記憶部に格納される。そして、撮像装置によって撮影された画像の特徴量と各視点画像の特徴量との間の類似度が計算され、最大の類似度を有する視点画像の姿勢情報が、物体の初期位置及び初期姿勢を表す姿勢情報に決定される。
【００３５】
初期パラメータ３３５が表す初期位置及び初期姿勢は、仮の位置及び姿勢であり、画像３３２を撮影したときの撮像装置３０２の位置及び姿勢と必ずしも一致しているとは限らない。
【００３６】
生成部３１６は、隠線を除去した残りの３Ｄ線分のうち、ｋ本（ｋは４以上の整数）の３Ｄ線分の集合を複数個生成する。以下では、ｋ本の３Ｄ線分の集合を指して、ｋ本組と記載することがある。生成部３１６は、次のような選択順序に基づいて、複数個のｋ本組の中から処理対象のｋ本組を選択する。
（Ｓ１）長さ優先の選択順序
長さ優先の選択順序では、他の３Ｄ線分よりも長い３Ｄ線分が優先的に選択される。３Ｄ線分が長いほど、３Ｄ線分同士の角度に対する計算精度が向上するため、角度を用いた３Ｄ線分と特徴線との対応付けの精度が向上する。
（Ｓ２）距離優先の選択順序
距離優先の選択順序では、他の３Ｄ線分ペアよりも距離が離れた３Ｄ線分ペアが優先的に選択される。２本の３Ｄ線分の間の距離が離れているほど、ｋ本組に含まれる３Ｄ線分の全体的な位置ずれが減少するため、３Ｄ線分と特徴線との対応付けの精度が向上する。
（Ｓ３）空間分布優先の選択順序
空間分布優先の選択順序では、同じ平面上に存在する３Ｄ線分ペアよりも、同じ平面上に存在しない３Ｄ線分ペアが優先的に選択される。２本の３Ｄ線分が同じ平面上に存在する場合、その平面に垂直な方向における位置ずれが増大する。一方、２本の３Ｄ線分が同じ平面上に存在しない場合、その平面に垂直な方向における位置ずれが減少するため、３Ｄ線分と特徴線との対応付けの精度が向上する。
【００３７】
図６は、図５の形状５０１に含まれる３Ｄ線分を画像３３２上に投影した投影線の例を示している。図６（ａ）は、短い３Ｄ線分の投影線６０１と、長い３Ｄ線分の投影線６０２とを示している。長さ優先の選択順序によれば、短い３Ｄ線分よりも長い３Ｄ線分の方が優先的に選択される。
【００３８】
図６（ｂ）は、投影線６０３が表す３Ｄ線分との距離が近い３Ｄ線分の投影線６０４と、投影線６０３が表す３Ｄ線分との距離が遠い３Ｄ線分の投影線６０５とを示している。距離優先の選択順序によれば、投影線６０３及び投影線６０４が表す３Ｄ線分ペアよりも、投影線６０３及び投影線６０５が表す３Ｄ線分ペアの方が優先的に選択される。
【００３９】
図６（ｃ）は、投影線６０３が表す３Ｄ線分と同じ平面上に存在し、その３Ｄ線分と平行な３Ｄ線分の投影線６０６と、投影線６０３が表す３Ｄ線分と同じ平面上に存在しない３Ｄ線分の投影線６０２とを示している。空間分布優先の選択順序によれば、投影線６０３及び投影線６０６が表す３Ｄ線分ペアよりも、投影線６０３及び投影線６０２が表す３Ｄ線分ペアの方が優先的に選択される。
【００４０】
生成部３１６は、長さ優先の選択順序、距離優先の選択順序、及び空間分布優先の選択順序のいずれか１つに基づいて、処理対象のｋ本組を選択してもよく、２つ又は３つの選択順序を組み合わせて、処理対象のｋ本組を選択してもよい。例えば、３つの選択順序の重み付け総和を用いる場合、生成部３１６は、以下の手順で処理対象のｋ本組を選択することができる。
（Ｐ１）隠線を除去した残りの３Ｄ線分の本数がｎ本である場合、生成部３１６は、ｎ本の３Ｄ線分の中から、順序を考慮してｋ本の３Ｄ線分を選択することで、ｎＰｋ個のｋ本組を生成する。
（Ｐ２）生成部３１６は、各ｋ本組に含まれる３Ｄ線分の長さの和を計算し、各ｋ本組に対して長さの和が大きい順に順位Ｇ１を割り当てる。
（Ｐ３）生成部３１６は、各ｋ本組について、ｋＣ２個の３Ｄ線分ペアを生成し、各３Ｄ線分ペアに含まれる２本の３Ｄ線分の間の距離を計算し、各ｋ本組に対してｋＣ２個の距離の和が大きい順に順位Ｇ２を割り当てる。
（Ｐ４）生成部３１６は、各ｋ本組に含まれる３Ｄ線分の方向ベクトルを求め、各方向ベクトルを列ベクトルとする、３行ｋ列の行列を生成する。そして、生成部３１６は、生成した行列の条件数を計算し、各ｋ本組に対して条件数が小さい順に順位Ｇ３を割り当てる。条件数が小さいほど、ｋ本組に含まれる３Ｄ線分同士が同じ平面上に存在する可能性が低くなる。
（Ｐ５）生成部３１６は、順位Ｇ１〜順位Ｇ３の重み付け総和ＧＳを次式により計算し、ｎＰｋ個のｋ本組を重み付け総和ＧＳの小さい順にソートする。
【００４１】
ＧＳ＝Ｗ１＊Ｇ１＋Ｗ２＊Ｇ２＋Ｗ３＊Ｇ３      （１）
【００４２】
式（１）のＷ１〜Ｗ３は、順位Ｇ１〜順位Ｇ３に対する重みをそれぞれ表す。生成部３１６は、順位Ｇ１〜順位Ｇ３のうち重要性の高いものほど重みを小さくし、重要性の低いものほど重みを大きくする。すべての順位の重要性が同程度である場合、生成部３１６は、Ｗ１＝Ｗ２＝Ｗ３＝１に設定する。
【００４３】
次に、生成部３１６は、ソートしたｎＰｋ個のｋ本組のうち、最上位から順にｋ本組を選択し、選択したｋ本組と対応付けるｋ本の特徴線３３３の集合を生成する。このとき、生成部３１６は、初期パラメータ３３５を用いて、ｋ本組に含まれる３Ｄ線分を、次式により画像３３２上に投影する。
【００４４】
【数１】
2019159470.tif 000003
【００４５】
式（２）の（Ｘ，Ｙ，Ｚ）、Ａ、Ｒ、Ｔ、及び（ｕ，ｖ）の定義は、以下の通りである。
【００４６】
（Ｘ，Ｙ，Ｚ）：３Ｄ線分の端点の３次元座標
Ａ：撮像装置３０２の内部パラメータ
Ｒ：初期パラメータ３３５が表す３行３列の回転行列
Ｔ：初期パラメータ３３５が表す並進ベクトル
（ｕ，ｖ）：画像３３２上における投影線の端点の２次元座標
【００４７】
撮像装置３０２の内部パラメータＡは、例えば、非特許文献１の技術を用いて、事前に計測しておくことができる。
【００４８】
画像３３２から検出された特徴線の本数がｍ本である場合、生成部３１６は、ｋ本の投影線に含まれる投影線同士の角度に基づいて、ｍ本の特徴線の中からｋ本の特徴線を選択する。例えば、生成部３１６は、ｍ本の特徴線の中からｋ本の特徴線候補の集合を複数個選択し、投影線同士の角度と、選択した複数個の集合各々に含まれる特徴線候補同士の角度との差分を計算する。そして、生成部３１６は、閾値よりも小さな差分を有する集合を、ｋ本の特徴線として選択する。以下では、ｋ本の特徴線の集合を指して、ｋ本組と記載することがある。
【００４９】
図７は、ｋ＝４の場合に、図５の形状５０１に含まれる３Ｄ線分から生成された４本組の投影線の例を示している。投影線６０１〜投影線６０３及び投影線７０１は、４本組の投影線に対応する。直線７１１は、投影線６０３を含む直線であり、直線７１２は、投影線６０２を含む直線であり、直線７１３は、投影線６０１を含む直線であり、直線７１４は、投影線７０１を含む直線である。この場合、投影線同士の角度は、以下の通りである。
【００５０】
投影線６０３と投影線６０２との間の角度：θ１＝８５°
投影線６０２と投影線６０１との間の角度：θ２＝７５°
投影線６０１と投影線７０１との間の角度：θ３＝６５°
【００５１】
生成部３１６は、ｍ本の特徴線のうち長いものから順に上位ｈ本の特徴線を抽出し、ｈ本の特徴線の中から、順序を考慮してｋ本の特徴線を選択することで、ｈＰｋ個のｋ本組を生成する。そして、生成部３１６は、図７と同様にして、各ｋ本組に含まれる特徴線候補同士の角度を求め、特徴線候補同士の角度を投影線同士の角度と比較することで、そのｋ本組を対応付け対象として採用するか否かを判定する。
【００５２】
図８は、ｋ＝４の場合に、図５の物体５０２に含まれる特徴線から生成された４本組の例を示している。図８（ａ）は、対応付け対象として採用される４本組の例を示している。この４本組に含まれる特徴線候補同士の角度は、以下の通りである。
【００５３】
特徴線候補８０１と特徴線候補８０２との間の角度：α１＝８３°
特徴線候補８０２と特徴線候補８０３との間の角度：α２＝７６°
特徴線候補８０３と特徴線候補８０４との間の角度：α３＝６７°
【００５４】
したがって、投影線同士の角度と特徴線候補同士の角度との差分は、次のように計算される。
【００５５】
｜θ１−α１｜＝２°
｜θ２−α２｜＝１°
｜θ３−α３｜＝２°
【００５６】
例えば、角度の差分に対する閾値が５°である場合、いずれの差分も閾値より小さいため、特徴線候補８０１〜特徴線候補８０４は、対応付け対象の４本組として採用される。
【００５７】
図８（ｂ）は、対応付け対象として採用されない４本組の例を示している。この４本組に含まれる特徴線候補同士の角度は、以下の通りである。
【００５８】
特徴線候補８０１と特徴線候補８０５との間の角度：α１＝２１°
特徴線候補８０５と特徴線候補８０３との間の角度：α２＝１８°
特徴線候補８０３と特徴線候補８０４との間の角度：α３＝６７°
したがって、投影線同士の角度と特徴線候補同士の角度との差分は、次のように計算される。
【００５９】
｜θ１−α１｜＝６４°
｜θ２−α２｜＝５７°
｜θ３−α３｜＝２°
【００６０】
この場合、｜θ１−α１｜及び｜θ２−α２｜が閾値以上であるため、特徴線候補８０１及び特徴線候補８０３〜特徴線候補８０５は、対応付け対象の４本組として採用されない。
【００６１】
図９は、特徴線候補の４本組に対する判定結果の例を示している。順位は、重み付け総和ＧＳの小さい順にソートした３Ｄ線分の４本組の順位を表し、線分ＩＤ１〜線分ＩＤ４は、各４本組に含まれる４本の３Ｄ線分の識別情報を表す。特徴線ＩＤ１〜特徴線ＩＤ４は、特徴線候補の４本組に含まれる４本の特徴線候補の識別情報を表し、判定結果は、各４本組を対応付け対象として採用するか否かを表す。記号“○”は、対応付け対象として採用することを示し、記号“×”は、対応付け対象として採用しないことを示す。
【００６２】
なお、｜θ１−α１｜〜｜θ３−α３｜のすべてを判定に用いる必要はなく、｜θ１−α１｜〜｜θ３−α３｜のうち１つ又は２つの差分のみを判定に用いてもよい。
【００６３】
次に、生成部３１６は、３Ｄ線分のｋ本組に含まれるそれぞれの３Ｄ線分と、対応付け対象として採用されたｋ本組に含まれるそれぞれの特徴線とを対応付けた、ｋ個の組み合わせを生成する。そして、生成部３１６は、生成したｋ個の組み合わせをｋ個の対応ペア３３６として記憶部３１１に格納する。
【００６４】
パラメータ計算部３１７は、最上位の３Ｄ線分のｋ本組を含むｋ個の対応ペアから順に選択し、選択したｋ個の対応ペアを用いて、画像３３２を撮影したときの撮像装置３０２の位置及び姿勢を計算する。そして、パラメータ計算部３１７は、計算した位置及び姿勢を表すパラメータを、パラメータ３３７として記憶部３１１に格納する。パラメータ計算部３１７は、例えば、非特許文献４の技術を用いて、ｋ個の対応ペアから式（２）のＲ及びＴを計算し、計算したＲ及びＴをパラメータ３３７として用いることができる。
【００６５】
パラメータ計算部３１７は、ｋ個の対応ペアの選択を変更しながら、パラメータ３３７を計算する処理を複数回繰り返す。決定部３１９は、パラメータ３３７が計算される度に、そのパラメータ３３７が表すＲ及びＴを用いて、パラメータ計算部３１７が選択したｋ個の対応ペアに含まれる３Ｄ線分を画像３３２上に投影することで、ｋ本の投影線を生成する。
【００６６】
誤差計算部３１８は、決定部３１９が生成した投影線の位置と、その対応ペアに含まれる特徴線の位置との間のずれを表す誤差を計算し、ｋ本の投影線の位置とｋ本の特徴線の位置との間の誤差の総和を求める。そして、誤差計算部３１８は、求めた誤差の総和を指標３３８として記憶部３１１に格納する。投影線の位置と特徴線の位置との間の誤差として二乗誤差を用いた場合、二乗誤差の総和Ｅは、次式により計算される。
【００６７】
【数２】
2019159470.tif 000004
【００６８】
式（３）のＥｉ（ｉ＝１〜ｋ）は、ｉ番目の対応ペアに含まれる投影線の位置と特徴線の位置との間の誤差を表す。
【００６９】
図１０は、投影線と特徴線との間の領域の面積に基づく誤差Ｅｉの計算方法の例を示している。ｉ番目の対応ペアに含まれる投影線が線分１００１であり、特徴線が線分１００２である場合、線分１００１の両端と線分１００２の両端とをそれぞれ結ぶ線分１００３及び線分１００４を定義することができる。この場合、線分１００１〜線分１００４によって囲まれた領域の面積Ａｉを、誤差Ｅｉとして用いることができる。
【００７０】
Ｅｉ＝Ａｉ      （４）
【００７１】
面積Ａｉが小さいほど、誤差Ｅｉは小さくなり、線分１００１が線分１００２に重なっている場合、誤差Ｅｉは０になる。
【００７２】
図１１は、投影線と特徴線との間の距離に基づく誤差Ｅｉの計算方法の例を示している。線分１００２の両端から線分１００１上へ下ろした垂線１１０１及び垂線１１０２の長さを、それぞれ、Ｌｉ１及びＬｉ２とする。この場合、Ｌｉ１及びＬｉ２の和を、誤差Ｅｉとして用いることができる。
【００７３】
Ｅｉ＝Ｌｉ１＋Ｌｉ２      （５）
【００７４】
Ｌｉ１及びＬｉ２が短いほど、誤差Ｅｉは小さくなり、線分１００１が線分１００２に重なっている場合、誤差Ｅｉは０になる。
【００７５】
次に、決定部３１９は、それぞれのパラメータ３３７を用いて計算した指標３３８に基づいて、誤差の総和が最小となるｋ個の対応ペアを決定する。そして、出力部３２０は、決定されたｋ個の対応ペアから計算されたパラメータ３３７を、撮像装置３０２の位置及び姿勢の推定結果として出力する。
【００７６】
図３の推定装置３０１によれば、所定の選択順序に従って３Ｄ線分のｋ本組の順位を決定することで、対応付けの精度が高い順にｋ個の対応ペアを選択することができ、短時間で誤差の小さな推定結果を求めることが可能になる。
【００７７】
また、３Ｄ線分のｋ本組に対して、投影線同士の角度と特徴線同士の角度との差分が閾値よりも小さくなるような特徴線のｋ本組を選択することで、対応付けの精度がさらに向上し、処理対象のｋ個の対応ペアを効果的に絞り込むことができる。
【００７８】
したがって、ｋ個の対応ペアを決定するための計算量が削減され、実用的な計算時間で、撮像装置３０２の位置及び姿勢の準最適解に到達することが可能になる。
【００７９】
図１２は、図３の推定装置３０１が行う推定処理の第１の具体例を示すフローチャートである。まず、画像取得部３１２は、撮像装置３０２から画像３３２を取得し（ステップ１２０１）、特徴線検出部３１３は、画像３３２から複数の特徴線３３３を検出する（ステップ１２０２）。
【００８０】
また、線分検出部３１４は、ＣＡＤデータ３３１から複数の３Ｄ線分３３４を検出し（ステップ１２０３）、パラメータ設定部３１５は、撮像装置３０２の初期位置及び初期姿勢を表す初期パラメータ３３５を設定する（ステップ１２０４）。
【００８１】
次に、生成部３１６は、３Ｄ線分３３４から隠線を除去し、残りの３Ｄ線分から複数個のｋ本組を生成して、それらのｋ本組を重み付け総和ＧＳの小さい順にソートする（ステップ１２０５）。次に、生成部３１６は、ソート後のｋ本組を最上位から順に選択し、選択したｋ本組と対応付ける特徴線のｋ本組を生成する（ステップ１２０６）。そして、生成部６１２は、３Ｄ線分のｋ本組と特徴線のｋ本組とを対応付けたｋ個の対応ペア３３６を複数個生成する（ステップ１２０７）。
【００８２】
次に、パラメータ計算部３１７は、最上位の３Ｄ線分のｋ本組を含むｋ個の対応ペアから順に選択し、選択したｋ個の対応ペアを用いて、パラメータ３３７を計算する（ステップ１２０８）。そして、決定部３１９は、パラメータ３３７を用いて、選択されたｋ個の対応ペアに含まれる３Ｄ線分を画像３３２上に投影することで、ｋ本の投影線を生成する（ステップ１２０９）。
【００８３】
次に、誤差計算部３１８は、ｋ本の投影線の位置とｋ本の特徴線の位置との間の誤差の総和を表す指標３３８を計算する（ステップ１２１０）。
【００８４】
次に、パラメータ計算部３１７は、パラメータ３３７の計算を所定回数行ったか否かをチェックする（ステップ１２１１）。パラメータ３３７の計算を所定回数行っていない場合（ステップ１２１１，ＮＯ）、推定装置３０１は、次の順位の３Ｄ線分のｋ本組を含むｋ個の対応ペアについて、ステップ１２０８以降の処理を繰り返す。
【００８５】
パラメータ３３７の計算を所定回数行った場合（ステップ１２１１，ＹＥＳ）、決定部３１９は、指標３３８が表す誤差の総和が最小となるｋ個の対応ペアを選択する（ステップ１２１２）。そして、出力部３２０は、選択されたｋ個の対応ペアから計算されたパラメータ３３７を、撮像装置３０２の位置及び姿勢の推定結果として出力する（ステップ１２１３）。
【００８６】
ステップ１２１１において、推定装置３０１は、パラメータ３３７の計算を所定回数行った場合に繰り返し処理を打ち切る代わりに、処理開始から所定時間が経過した場合に繰り返し処理を打ち切ってもよい。また、推定装置３０１は、指標３３８が表す誤差の総和が所定値よりも小さくなった場合に繰り返し処理を打ち切ってもよい。
【００８７】
図１２の推定処理によれば、対応付けの精度が高い順にｋ個の対応ペアが選択されて、パラメータ３３７が計算されるため、撮像装置３０２の位置及び姿勢の準最適解を高速に求めることができる。例えば、３０秒間の制限時間を設けた場合、特願２０１６−１８７５１５号の推定処理では、制限時間内にパラメータ３３７を計算可能な３Ｄ線分の４本組の個数は、１個だけである。一方、図１２の推定処理によれば、計算対象の特徴線のｋ本組の個数が削減されるため、制限時間内にパラメータ３３７を計算可能な３Ｄ線分の４本組の個数は、約１０個に増加する。したがって、３Ｄ線分の４本組１個当たりの計算時間は、約１／１０に短縮される。
【００８８】
図１２のステップ１２０５において、生成部３１６は、３Ｄ線分を長さ優先の選択順序でソートしておき、ソート後の３Ｄ線分からｋ本組を生成することも可能である。例えば、ｋ＝４の場合、以下のような手順で３Ｄ線分の４本組が生成される。
（Ｐ１１）生成部３１６は、隠線を除去した残りの３Ｄ線分を、長いものから順にソートする。
（Ｐ１２）生成部３１６は、ｊ＝１に設定する。
（Ｐ１３）生成部３１６は、ソート後の３Ｄ線分のうち１番目〜（ｊ＋３）番目の３Ｄ線分を選択する。
（Ｐ１４）生成部３１６は、１番目〜（ｊ＋２）番目の３Ｄ線分の中から３本の３Ｄ線分を選択して、ｊ＋２Ｃ３個の組み合わせを生成する。
（Ｐ１５）生成部３１６は、各組み合わせに（ｊ＋３）番目の３Ｄ線分を追加して、ｊ＋２Ｃ３個の４本組を生成する。
（Ｐ１６）生成部３１６は、ｊ＋２Ｃ３個の４本組を重み付け総和ＧＳの小さい順にソートし、ソート後の４本組を３Ｄ線分の４本組のリストに追加する。
（Ｐ１７）生成部３１６は、ｊ＝ｊ＋１に設定して（Ｐ１３）以降の処理を繰り返し、すべての３Ｄ線分を選択した場合、処理を終了する。
【００８９】
図１３は、６本の３Ｄ線分から４本組のリストを生成する処理の例を示している。３Ｄ線分ａ〜３Ｄ線分ｆは、長いものから順にソートされている。まず、ｊ＝１の場合、３Ｄ線分ａ〜３Ｄ線分ｆのうち３Ｄ線分ａ〜３Ｄ線分ｄが選択され、ａｂｃｄの４本組が生成されて、４本組のリストに追加される。
【００９０】
次に、ｊ＝２の場合、３Ｄ線分ａ〜３Ｄ線分ｆのうち３Ｄ線分ａ〜３Ｄ線分ｅが選択される。そして、以下の４個の４本組が生成され、重み付け総和ＧＳの小さい順にソートされた後に、４本組のリストに追加される。
【００９１】
ａｂｃｅ，ａｂｄｅ，ａｃｄｅ，ｂｃｄｅ
次に、ｊ＝３の場合、３Ｄ線分ａ〜３Ｄ線分ｆのすべてが選択される。そして、以下の１０個の４本組が生成され、重み付け総和ＧＳの小さい順にソートされた後に、４本組のリストに追加される。
【００９２】
ａｂｃｆ，ａｂｄｆ，ａｂｅｆ，ａｃｄｆ，ａｃｅｆ，
ａｄｅｆ，ｂｃｄｆ，ｂｃｅｆ，ｂｄｅｆ，ｃｄｅｆ
【００９３】
このようなソート方法によれば、３Ｄ線分の長さを重要視するとともに、３Ｄ線分間の距離及び３Ｄ線分の空間分布も考慮しながら、３Ｄ線分の４本組をソートすることができる。
【００９４】
図１４は、３Ｄ線分の４本組のソート方法を変更して推定処理を行った場合の誤差の例を示している。この例では、画像３３２から検出された特徴線のうち、一部の長い特徴線にエッジ欠損が発生しており、対応する長い３Ｄ線分とエッジ欠損が発生した特徴線とを対応付けることが困難な状況を想定している。
【００９５】
図１４（ａ）は、長さ優先の選択順序のみに基づいて、３Ｄ線分の４本組をソートした場合の誤差の例を示している。４本組の欄には、４本の３Ｄ線分それぞれの線分ＩＤが示されており、誤差最小値の欄には、指標３３８が表す誤差の総和の最小値が示されている。この場合、線分ＩＤ“１”の長い３Ｄ線分に対応する物体の長い辺に、エッジ欠損が発生しており、ソート後の上位１０個の４本組には、その３Ｄ線分が含まれている。そのうち上位３個の４本組に対する誤差最小値は、かなり大きな値である。
【００９６】
図１４（ｂ）は、（Ｐ１）〜（Ｐ５）の手順により３Ｄ線分の４本組をソートした場合の誤差の例を示している。この場合も、ソート後の上位５個の４本組には、線分ＩＤ“１”の３Ｄ線分が含まれており、誤差最小値は、かなり大きな値である。
【００９７】
図１４（ｃ）は、（Ｐ１１）〜（Ｐ１７）の手順により３Ｄ線分の４本組をソートした場合の誤差の例を示している。この場合、ソート後の最上位から４番目の４本組に、線分ＩＤ“１”の３Ｄ線分が含まれておらず、４個の対応ペアがすべて正しく対応付けられるため、誤差最小値が小さくなる。したがって、線分ＩＤ“１”の３Ｄ線分に対応する辺にエッジ欠損が発生している場合であっても、推定処理の早い段階で、エッジ欠損が発生していない対応ペアが選択され、短時間で誤差の小さな推定結果を求めることが可能になる。
【００９８】
図１５は、図１の推定装置１０１の第２の具体例を示している。図１５の推定装置１５０１は、図３の推定装置３０１に外周線抽出部１５１１及び領域設定部１５１２を追加した構成を有する。
【００９９】
外周線抽出部１５１１は、隠線を除去した残りの３Ｄ線分を、初期パラメータ３３５を用いて画像３３２上に投影して、複数の投影線を生成し、それらの投影線のうち物体の外周を表す投影線を、外周線として抽出する。
【０１００】
そして、生成部３１６は、外周線に対応する３Ｄ線分の中からｋ本組を選択する。例えば、生成部３１６は、外周線に対応する３Ｄ線分の本数が所定本数よりも多い場合に、それらの３Ｄ線分の中からｋ本組を選択してもよい。一方、外周線に対応する３Ｄ線分の本数が所定本数以下である場合、生成部３１６は、隠線を除去した残りのすべての３Ｄ線分を対象として、ｋ本組を選択する。
【０１０１】
物体の外周線は長いことが多く、かつ、画像３３２の中心から離れて分布していることが多いため、対応付けの精度が向上しやすい。そこで、外周線に対応する３Ｄ線分の優先度を高くして、３Ｄ線分候補を絞り込むことで、対応付けの精度が高い対応ペアを生成することができ、短時間で誤差の小さな推定結果を求めることが可能になる。
【０１０２】
領域設定部１５１２は、画像３３２内の指定領域を設定する。指定領域としては、例えば、ユーザがマウス操作又はタッチ操作によって指定した領域を用いることができる。
【０１０３】
図１６は、画像３３２内の指定領域の例を示している。図１６（ａ）は、矩形の指定領域１６０１を示している。ユーザは、画像３３２に写っている物体５０２の周囲を矩形で囲むことで、指定領域１６０１を指定する。図１６（ｂ）は、多角形の指定領域１６０２を示している。ユーザは、画像３３２に写っている物体５０２の周囲を多角形で囲むことで、指定領域１６０２を指定する。
【０１０４】
そして、生成部３１６は、画像３３２から検出された複数の特徴線のうち、設定された指定領域に含まれる複数の特徴線を抽出し、抽出した特徴線の中からｋ本組を選択する。これにより、特徴線候補が絞り込まれ、対応付けの精度が高い対応ペアが生成されるため、短時間で誤差の小さな推定結果を求めることが可能になる。
【０１０５】
図１７は、指定領域の外縁部の例を示している。領域設定部１５１２は、図１６（ｂ）の指定領域１６０２の外縁部に、所定幅の外縁領域１７０１を設定する。この場合、生成部３１６は、外縁領域１７０１に含まれる複数の特徴線を抽出し、抽出した特徴線の中からｋ本組を選択する。これにより、特徴線候補をさらに絞り込むことができる。
【０１０６】
図１８は、図１５の推定装置１５０１が行う推定処理の第２の具体例を示すフローチャートである。ステップ１８０１、ステップ１８０２、ステップ１８０４、ステップ１８０５、及びステップ１８０７〜ステップ１８１５の処理は、図１２のステップ１２０１〜ステップ１２１３の処理と同様である。
【０１０７】
ステップ１８０３において、領域設定部１５１２は、画像３３２内の指定領域を設定する。ステップ１８０６において、外周線抽出部１５１１は、３Ｄ線分を画像３３２上に投影し、複数の投影線の中から外周線を抽出する。
【０１０８】
ステップ１８０７において、生成部３１６は、外周線に対応する３Ｄ線分の中からｋ本組を選択し、ステップ１８０８において、生成部３１６は、指定領域に含まれる複数の特徴線の中からｋ本組を選択する。
【０１０９】
図１９は、図１８のステップ１８０６における外周線抽出処理の例を示すフローチャートである。まず、外周線抽出部１５１１は、３Ｄ線分を画像３３２上に投影し、複数の投影線のｕ座標の最小値ｕｍｉｎと、ｖ座標の最小値ｖｍｉｎとを求める（ステップ１９０１）。そして、外周線抽出部１５１１は、ベクトル（ｕｍｉｎ，ｖｍｉｎ）に従って、すべての投影線を平行移動させる（ステップ１９０２）。
【０１１０】
次に、外周線抽出部１５１１は、Flood Fillアルゴリズムを用いて、投影線で囲まれた内部領域を塗りつぶす（ステップ１９０３）。
【０１１１】
図２０は、投影線で囲まれた内部領域の例を示している。図２０（ａ）は、物体の形状を表す３Ｄ線分を画像３３２上に投影した投影線の例を示しており、図２０（ｂ）は、Flood Fillアルゴリズムによって塗りつぶされた内部領域の例を示している。
【０１１２】
次に、外周線抽出部１５１１は、膨張処理及び収縮処理を組み合わせたクロージングアルゴリズムを用いて、内部領域を示すマスク領域を求める（ステップ１９０４）。Flood Fillアルゴリズムによって塗りつぶされていない部分が残っている場合に、クロージングアルゴリズムを適用することで、その部分を確実に塗りつぶすことができる。そして、外周線抽出部１５１１は、膨張処理を用いて、マスク領域の外周部分をそのマスク領域から除外する（ステップ１９０５）。
【０１１３】
次に、外周線抽出部１５１１は、投影線に対する外周線判定を行って、外周線候補の投影線を抽出する（ステップ１９０６）。外周線抽出部１５１１は、例えば、非特許文献５の技術を用いて、外周線候補の投影線を抽出することができる。そして、外周線抽出部１５１１は、外周線候補の投影線のうち、外周部分が除外されたマスク領域に含まれている部分の長さが全長の半分以下である投影線を、外周線に決定する（ステップ１９０７）。
【０１１４】
図２１は、図１の推定装置１０１の第３の具体例を示している。図２１の推定装置２１０１は、図３の推定装置３０１に線分分類部２１１１及び特徴線分類部２１１２を追加した構成を有する。
【０１１５】
線分分類部２１１１は、隠線を除去した残りの３Ｄ線分を、初期パラメータ３３５を用いて画像３３２上に投影して、複数の投影線を生成する。そして、線分分類部２１１１は、残りの３Ｄ線分から、投影線同士の角度が所定値以内である類似３Ｄ線分のグループを生成する。例えば、所定値としては、１°〜１０°の範囲の角度を用いることができ、投影線の傾きの分布に応じて、１つ以上のグループが生成される。
【０１１６】
生成部３１６は、同じグループ内の３Ｄ線分を２本以上含まないように、残りの３Ｄ線分の中からｋ本組を選択する。
【０１１７】
ｋ本組の投影線の中に平行に近い複数の投影線が含まれている場合、対応付けの精度が低下しやすい。そこで、他の投影線と傾きが類似する投影線に対応する３Ｄ線分をｋ本組から除外して、３Ｄ線分候補を絞り込むことで、対応付けの精度が高い対応ペアを生成することができ、短時間で誤差の小さな推定結果を求めることが可能になる。
【０１１８】
特徴線分類部２１１２は、画像３３２から検出された複数の特徴線から、特徴線同士の角度が所定値以内である類似特徴線のグループを生成する。例えば、所定値としては、１°〜１０°の範囲の角度を用いることができ、特徴線の傾きの分布に応じて、１つ以上のグループが生成される。
【０１１９】
生成部３１６は、同じグループ内の特徴線を２本以上含まないように、複数の特徴線の中からｋ本組を選択する。これにより、他の特徴線と傾きが類似する特徴線がｋ本組から除外され、特徴線候補が絞り込まれる。したがって、対応付けの精度が高い対応ペアが生成されるため、短時間で誤差の小さな推定結果を求めることが可能になる。
【０１２０】
図２２は、図２１の推定装置２１０１が行う推定処理の第３の具体例を示すフローチャートである。ステップ２２０１、ステップ２２０２、ステップ２２０４、ステップ２２０５、及びステップ２２０７〜ステップ２２１５の処理は、図１２のステップ１２０１〜ステップ１２１３の処理と同様である。
【０１２１】
ステップ２２０３において、特徴線分類部２１１２は、特徴線同士の角度に基づいて、複数の特徴線を分類する。これにより、特徴線同士の角度が所定値以内である類似特徴線が１つのグループに分類される。
【０１２２】
ステップ２２０６において、線分分類部２１１１は、３Ｄ線分の投影線同士の角度に基づいて、複数の３Ｄ線分を分類する。これにより、投影線同士の角度が所定値以内である類似３Ｄ線分が１つのグループに分類される。
【０１２３】
ステップ２２０７において、生成部３１６は、同じグループ内の３Ｄ線分を２本以上含まないように、３Ｄ線分のｋ本組を選択し、ステップ２２０８において、生成部３１６は、同じグループ内の特徴線を２本以上含まないように、特徴線のｋ本組を選択する。
【０１２４】
図１、図３、図１５、及び図２１の推定装置の構成は一例に過ぎず、推定装置の用途又は条件に応じて一部の構成要素を省略又は変更してもよい。例えば、図３、図１５、及び図２１の推定装置において、事前に画像３３２が記憶部３１１に格納されている場合は、画像取得部３１２を省略することができる。ＣＡＤデータ３３１の代わりに、物体の形状を表す他の形状情報を用いてもよい。
【０１２５】
図１５の推定装置１５０１において、外周線抽出部１５１１又は領域設定部１５１２のいずれか一方を省略してもよい。また、図２１の推定装置２１０１において、線分分類部２１１１又は特徴線分類部２１１２のいずれか一方を省略してもよい。
【０１２６】
図２、図１２、図１８、図１９、及び図２２のフローチャートは一例に過ぎず、推定装置の構成又は条件に応じて一部の処理を省略又は変更してもよい。例えば、事前に画像３３２が記憶部３１１に格納されている場合は、図１２のステップ１２０１、図１８のステップ１８０１、及び図２２のステップ２２０１の処理を省略することができる。
【０１２７】
外周線抽出部１５１１が省略される場合は、図１８のステップ１８０６の処理を省略することができる。領域設定部１５１２が省略される場合は、図１８のステップ１８０３の処理を省略することができる。
【０１２８】
線分分類部２１１１が省略される場合は、図２２のステップ２２０６の処理を省略することができる。特徴線分類部２１１２が省略される場合は、図２２のステップ２２０３の処理を省略することができる。
【０１２９】
図４のＣＡＤデータ、図５の３Ｄ線分及び特徴線、図６及び図７の投影線、図８の特徴線は一例に過ぎず、ＣＡＤデータ、３Ｄ線分、投影線、及び特徴線は、撮影対象の物体、推定装置の構成又は条件に応じて変化する。
【０１３０】
図９の判定結果は一例に過ぎず、特徴線候補の４本組に対する判定結果は、撮影対象の物体、推定装置の構成又は条件に応じて変化する。図１０及び図１１の誤差の計算方法は一例に過ぎず、推定装置の構成又は条件に応じて別の計算方法を用いてもよい。
【０１３１】
図１３のソート方法は一例に過ぎず、推定装置の構成又は条件に応じて別のソート方法を用いてもよい。図１４の誤差は一例に過ぎず、推定処理の誤差は、撮影対象の物体、推定装置の構成又は条件に応じて変化する。
【０１３２】
図１６の指定領域、図１７の外縁部、及び図２０の内部領域は一例に過ぎず、指定領域、外縁部、及び内部領域は、撮影対象の物体、推定装置の構成又は条件に応じて変化する。
【０１３３】
式（１）〜式（５）の計算式は一例に過ぎず、推定装置の構成又は条件に応じて別の計算式を用いてもよい。
【０１３４】
図２３は、図１、図３、図１５、及び図２１の推定装置として用いられる情報処理装置（コンピュータ）の構成例を示している。図２３の情報処理装置は、ＣＰＵ（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）等の通信ネットワークに接続され、通信に伴うデータ変換を行う通信インタフェース回路である。情報処理装置は、プログラム及びデータを外部の装置からネットワーク接続装置２３０７を介して受信し、それらをメモリ２３０２にロードして使用することができる。ネットワーク接続装置２３０７は、図３、図１５、及び図２１の出力部３２０として用いることができる。
【０１４４】
なお、情報処理装置が図２３のすべての構成要素を含む必要はなく、用途又は条件に応じて一部の構成要素を省略することも可能である。例えば、可搬型記録媒体２３０９又は通信ネットワークを使用しない場合は、媒体駆動装置２３０６又はネットワーク接続装置２３０７を省略してもよい。
【０１４５】
開示の実施形態とその利点について詳しく説明したが、当業者は、特許請求の範囲に明確に記載した本発明の範囲から逸脱することなく、様々な変更、追加、省略をすることができるであろう。
【０１４６】
図１乃至図２３を参照しながら説明した実施形態に関し、さらに以下の付記を開示する。
（付記１）
物体の形状を表す複数の線分を含む形状情報を記憶する記憶部と、
撮像装置が撮影した前記物体の画像から、複数の特徴線を検出する検出部と、
前記複数の線分のうち所定数の線分の集合を複数個生成し、他の線分よりも長い線分を優先的に選択する長さ優先の選択順序に基づいて、前記複数個の集合の中から処理対象の集合を選択し、前記処理対象の集合に含まれる前記所定数の線分それぞれと、前記複数の特徴線のうち前記所定数の特徴線それぞれとを対応付けた、前記所定数の組み合わせを生成する生成部と、
前記所定数の組み合わせを用いて、３次元空間内における前記撮像装置の位置と姿勢とを推定する推定部と、
を備えることを特徴とする推定装置。
（付記２）
前記生成部は、前記長さ優先の選択順序と、他の線分ペアよりも距離が離れた線分ペアを優先的に選択する距離優先の選択順序とを組み合わせて、前記処理対象の集合を選択することを特徴とする付記１記載の推定装置。
（付記３）
前記生成部は、前記長さ優先の選択順序と、前記距離優先の選択順序と、同じ平面上に存在する線分ペアよりも同じ平面上に存在しない線分ペアを優先的に選択する空間分布優先の選択順序とを組み合わせて、前記処理対象の集合を選択することを特徴とする付記２記載の推定装置。
（付記４）
前記生成部は、前記長さ優先の選択順序と、前記距離優先の選択順序と、前記空間分布優先の選択順序との重み付け総和に基づいて、前記処理対象の集合を選択することを特徴とする付記３記載の推定装置。
（付記５）
前記生成部は、前記処理対象の集合に含まれる前記所定数の線分を前記画像上に投影して、前記所定数の投影線を生成し、前記所定数の投影線に含まれる投影線同士の角度に基づいて、前記複数の特徴線の中から前記所定数の特徴線を選択することを特徴とする付記１乃至４のいずれか１項に記載の推定装置。
（付記６）
前記生成部は、前記複数の特徴線の中から前記所定数の特徴線候補の集合を複数個選択し、前記投影線同士の角度と、選択した複数個の集合各々に含まれる特徴線候補同士の角度との差分を計算し、前記選択した複数個の集合のうち閾値よりも小さな差分を有する集合を、前記所定数の特徴線として選択することを特徴とする付記５記載の推定装置。
（付記７）
前記複数の線分を前記画像上に投影して複数の投影線を生成し、前記複数の投影線のうち前記物体の外周を表す投影線を抽出する外周線抽出部をさらに備え、
前記生成部は、前記物体の外周を表す投影線に対応する線分の中から、前記所定数の線分を選択することを特徴とする付記１乃至６のいずれか１項に記載の推定装置。
（付記８）
前記画像内の指定領域を設定する領域設定部をさらに備え、
前記生成部は、前記複数の特徴線のうち、前記指定領域に含まれる複数の特徴線を抽出し、抽出した複数の特徴線の中から前記所定数の特徴線を選択することを特徴とする付記１乃至７のいずれか１項に記載の推定装置。
（付記９）
前記複数の線分を前記画像上に投影して複数の投影線を生成し、前記複数の線分から、投影線同士の角度が所定値以内である類似線分のグループを生成する線分分類部をさらに備え、
前記生成部は、前記類似線分のグループ内の複数の線分を含まないように、前記所定数の線分を選択することを特徴とする付記１乃至８のいずれか１項に記載の推定装置。
（付記１０）
前記複数の特徴線から、特徴線同士の角度が所定値以内である類似特徴線のグループを生成する特徴線分類部をさらに備え、
前記生成部は、前記類似特徴線のグループ内の複数の特徴線を含まないように、前記所定数の特徴線を選択することを特徴とする付記１乃至９のいずれか１項に記載の推定装置。
（付記１１）
コンピュータが、
撮像装置が撮影した物体の画像から、複数の特徴線を検出し、
前記物体の形状を表す形状情報に含まれる複数の線分のうち、所定数の線分の集合を複数個生成し、
他の線分よりも長い線分を優先的に選択する長さ優先の選択順序に基づいて、前記複数個の集合の中から処理対象の集合を選択し、
前記処理対象の集合に含まれる前記所定数の投影線それぞれと、前記複数の特徴線のうち前記所定数の特徴線それぞれとを対応付けた、前記所定数の組み合わせを生成し、
前記所定数の組み合わせを用いて、３次元空間内における前記撮像装置の位置と姿勢とを推定する、
ことを特徴とする推定方法。
（付記１２）
前記コンピュータは、前記長さ優先の選択順序と、他の線分ペアよりも距離が離れた線分ペアを優先的に選択する距離優先の選択順序とを組み合わせて、前記処理対象の集合を選択することを特徴とする付記１１記載の推定方法。
（付記１３）
前記コンピュータは、前記長さ優先の選択順序と、前記距離優先の選択順序と、同じ平面上に存在する線分ペアよりも同じ平面上に存在しない線分ペアを優先的に選択する空間分布優先の選択順序とを組み合わせて、前記処理対象の集合を選択することを特徴とする付記１２記載の推定方法。
（付記１４）
撮像装置が撮影した物体の画像から、複数の特徴線を検出し、
前記物体の形状を表す形状情報に含まれる複数の線分のうち、所定数の線分の集合を複数個生成し、
他の線分よりも長い線分を優先的に選択する長さ優先の選択順序に基づいて、前記複数個の集合の中から処理対象の集合を選択し、
前記処理対象の集合に含まれる前記所定数の投影線それぞれと、前記複数の特徴線のうち前記所定数の特徴線それぞれとを対応付けた、前記所定数の組み合わせを生成し、
前記所定数の組み合わせを用いて、３次元空間内における前記撮像装置の位置と姿勢とを推定する、
処理をコンピュータに実行させるための推定プログラム。
（付記１５）
前記コンピュータは、前記長さ優先の選択順序と、他の線分ペアよりも距離が離れた線分ペアを優先的に選択する距離優先の選択順序とを組み合わせて、前記処理対象の集合を選択することを特徴とする付記１４記載の推定プログラム。
（付記１６）
前記コンピュータは、前記長さ優先の選択順序と、前記距離優先の選択順序と、同じ平面上に存在する線分ペアよりも同じ平面上に存在しない線分ペアを優先的に選択する空間分布優先の選択順序とを組み合わせて、前記処理対象の集合を選択することを特徴とする付記１５記載の推定プログラム。
【符号の説明】
【０１４７】
１０１、３０１、１５０１、２１０１  推定装置
１１１、３１１  記憶部
１１２  検出部
１１３、３１６  生成部
１１４  推定部
１２１  形状情報
３０２  撮像装置
３１２  画像取得部
３１３  特徴線検出部
３１４  線分検出部
３１５  パラメータ設定部
３１７  パラメータ計算部
３１８  誤差計算部
３１９  決定部
３２０  出力部
３３１  ＣＡＤデータ
３３２  画像
３３３、８０１〜８０５  特徴線
３３４  ３Ｄ線分
３３５  初期パラメータ
３３６  対応ペア
３３７  パラメータ
３３８  指標
５０１  形状
５０２  物体
６０１〜６０６、７０１  投影線
７１１〜７１４  直線
１００１〜１００４  線分
１１０１、１１０２  垂線
１６０１、１６０２  指定領域
１７０１  外縁領域
２３０１  ＣＰＵ
２３０２  メモリ
２３０３  入力装置
２３０４  出力装置
２３０５  補助記憶装置
２３０６  媒体駆動装置
２３０７  ネットワーク接続装置
２３０８  バス
２３０９  可搬型記録媒体
【図１】
2019159470.tif 000005
【図２】
2019159470.tif 000006
【図３】
2019159470.tif 000007
【図４】
2019159470.tif 000008
【図５】
2019159470.tif 000009
【図６】
2019159470.tif 000010
【図７】
2019159470.tif 000011
【図８】
2019159470.tif 000012
【図９】
2019159470.tif 000013
【図１０】
2019159470.tif 000014
【図１１】
2019159470.tif 000015
【図１２】
2019159470.tif 000016
【図１３】
2019159470.tif 000017
【図１４】
2019159470.tif 000018
【図１５】
2019159470.tif 000019
【図１６】
2019159470.tif 000020
【図１７】
2019159470.tif 000021
【図１８】
2019159470.tif 000022
【図１９】
2019159470.tif 000023
【図２０】
2019159470.tif 000024
【図２１】
2019159470.tif 000025
【図２２】
2019159470.tif 000026
【図２３】
2019159470.tif 000027