(57)【要約】【課題】撮像装置が撮影した物体の画像と、その物体の形状情報とを用いて、撮像装置の位置及び姿勢を効率良く推定する。【解決手段】検出部は、物体の画像から特徴線を検出し、投影部は、物体の形状情報に含まれる線分を画像上に投影することで、投影線を生成する。生成部は、特徴線と投影線とを対応付けることで、特徴線と投影線との組み合わせを生成し、所定数の組み合わせをそれぞれ含む複数の集合を生成する。推定部は、各集合を用いて、物体の画像を撮影した撮像装置の位置及び姿勢を推定し、評価部は、各集合について推定結果を評価する。画像上における物体と形状情報が表す形状との間の相対的な位置又は姿勢が変化した場合、生成部は複数の集合を繰り返し生成し、推定部は撮像装置の位置及び姿勢を繰り返し推定し、評価部は推定結果を繰り返し評価する。そして、推定部は、推定結果が繰り返し評価された結果に基づいて、撮像装置の位置及び姿勢を決定する。【選択図】図３
2020098575.tif 000002
【特許請求の範囲】
【請求項１】
物体の形状を表す複数の線分を含む形状情報を記憶する記憶部と、
取得した前記物体の画像から、複数の特徴線を検出する検出部と、
前記複数の線分を前記画像上に投影することで、複数の投影線を生成する投影部と、
前記複数の特徴線の中からいずれかの特徴線を選択し、前記複数の投影線の中からいずれかの投影線を選択し、選択された特徴線と選択された投影線とを対応付けることで、特徴線と投影線との組み合わせを生成し、所定数の組み合わせをそれぞれ含む複数の集合を生成する生成部と、
前記複数の集合各々を用いて、３次元空間内における前記物体の画像を撮影した撮像装置の位置及び姿勢を推定する推定部と、
前記複数の集合各々について、前記撮像装置の位置及び姿勢の推定結果を評価する評価部とを備え、
前記撮像装置が撮影した画像上における前記物体と前記形状情報が表す形状との間の相対的な位置又は姿勢が変化した場合、前記生成部は前記複数の集合を繰り返し生成し、前記推定部は前記撮像装置の位置及び姿勢を繰り返し推定し、前記評価部は前記推定結果を繰り返し評価し、前記推定部は、前記推定結果が繰り返し評価された結果に基づいて、前記撮像装置の位置及び姿勢を決定することを特徴とする画像処理装置。
【請求項２】
前記検出部が特徴線を検出する対象の物体の画像は、前記撮像装置が撮影した物体画像であることを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記撮像装置が撮影した画像上における前記形状情報が表す形状の位置又は姿勢を変更する変更部をさらに備え、
前記形状情報が表す形状の位置又は姿勢を前記変更部が変更することによって、前記撮像装置が撮影した画像上における前記物体と前記形状情報が表す形状との間の相対的な位置又は姿勢が変化することを特徴とする請求項１又は２記載の画像処理装置。
【請求項４】
前記変更部は、前記形状情報に含まれる前記複数の線分の中から選択された線分、又は前記選択された線分と前記複数の線分に対する視点とを含む平面の法線を、回転軸として用いて、前記回転軸の周りに前記形状情報が表す形状を回転させることで、前記形状情報が表す形状の位置又は姿勢を変更することを特徴とする請求項３記載の画像処理装置。
【請求項５】
前記形状情報が表す形状の位置又は姿勢の変更を前記変更部が行っている所定期間において、前記推定部が前記撮像装置の位置及び姿勢を推定する動作を抑止する推定制御部をさらに備えることを特徴とする請求項３又は４記載の画像処理装置。
【請求項６】
前記推定制御部は、抑止指示が入力された場合に、前記推定部が前記撮像装置の位置及び姿勢を推定する動作を抑止することを特徴とする請求項５記載の画像処理装置。
【請求項７】
前記形状情報が表す形状の位置又は姿勢の粗調整又は微調整のいずれを前記変更部が行っているかを判定する調整段階判定部をさらに備え、
前記推定制御部は、前記変更部が前記粗調整を行っている場合、前記推定部が前記撮像装置の位置及び姿勢を推定する動作を抑止し、前記変更部が前記微調整を行っている場合、前記推定部が前記撮像装置の位置及び姿勢を推定する動作を抑止しないことを特徴とする請求項５記載の画像処理装置。
【請求項８】
前記変更部は、前記撮像装置が撮影した画像上における前記形状情報が表す形状の位置又は姿勢をユーザが変更する変更操作に応じて、前記形状情報が表す形状の位置又は姿勢を変更し、
前記調整段階判定部は、前記変更操作の操作量に基づいて、前記変更部が前記粗調整又は前記微調整のいずれを行っているかを判定し、
前記画像処理装置は、前記変更部が前記微調整を行い、かつ、前記推定部が前記撮像装置の位置及び姿勢の複数の候補を生成した場合、前記複数の候補それぞれに対応する前記物体の形状を前記撮像装置が撮影した画像上に重畳して表示する表示部をさらに備え、
前記推定部は、前記複数の候補それぞれに対応する前記物体の形状の中から前記ユーザによって選択された形状に基づいて、前記撮像装置の位置及び姿勢を決定することを特徴とする請求項７記載の画像処理装置。
【請求項９】
前記変更部は、前記撮像装置が撮影した画像上における前記形状情報が表す形状の位置又は姿勢をユーザが変更する変更操作に応じて、前記形状情報が表す形状の位置又は姿勢を変更し、
前記調整段階判定部は、前記変更操作の操作量に基づいて、前記変更部が前記粗調整又は前記微調整のいずれを行っているかを判定し、
前記画像処理装置は、前記変更部が前記微調整を行い、かつ、前記推定部が前記撮像装置の位置及び姿勢の複数の候補を生成した場合、前記複数の候補のうちいずれかの候補に対応する前記物体の形状を前記撮像装置が撮影した画像上に重畳して表示するとともに、前記複数の候補の存在を示す情報を表示する表示部をさらに備え、
前記表示部は、候補変更指示が入力された場合、前記複数の候補それぞれに対応する前記物体の形状を前記撮像装置が撮影した画像上に重畳して表示し、
前記推定部は、前記複数の候補それぞれに対応する前記物体の形状の中から前記ユーザによって選択された形状に基づいて、前記撮像装置の位置及び姿勢を決定することを特徴とする請求項７記載の画像処理装置。
【請求項１０】
前記変更部が前記微調整を行っている場合、前記変更操作に対する前記形状情報が表す形状の位置又は姿勢の変更感度を、前記変更部が前記粗調整を行っている場合よりも低下させる感度調整部をさらに備えることを特徴とする請求項８又は９記載の画像処理装置。
【請求項１１】
前記物体と前記撮像装置との間の相対的な位置又は姿勢が変化した後に、前記撮像装置が前記物体を繰り返し撮影することによって、前記撮像装置が撮影した画像上における前記物体と前記形状情報が表す形状との間の相対的な位置又は姿勢が変化することを特徴とする請求項１又は２記載の画像処理装置。
【請求項１２】
前記評価部は、前記複数の集合の中からいずれかの集合を評価用集合として選択し、前記評価用集合に基づいて推定された前記撮像装置の位置及び姿勢の推定結果を用いて、前記複数の集合の各組み合わせに含まれる投影線に対応する線分を前記画像上に再投影することで、評価用投影線を生成し、前記複数の集合の各組み合わせに含まれる特徴線と前記評価用投影線との間の誤差を計算し、計算された誤差が大きいほど小さくなる評価値を求め、前記複数の集合に含まれるすべての組み合わせに対する評価値の総和を閾値と比較し、
いずれの集合を選択しても評価値の総和が前記閾値未満であり、かつ、前記撮像装置が撮影した画像上における前記物体と前記形状情報が表す形状との間の相対的な位置又は姿勢が変化した場合、前記生成部は前記複数の集合を繰り返し生成し、前記推定部は前記撮像装置の位置及び姿勢を繰り返し推定し、前記評価部は前記推定結果を繰り返し評価し、前記推定部は、前記推定結果が繰り返し評価された結果において、前記閾値よりも大きな評価値の総和が得られた評価用集合を特定し、特定された評価用集合に基づいて推定された位置及び姿勢を、前記撮像装置の位置及び姿勢に決定することを特徴とする請求項１乃至１１のいずれか１項に記載の画像処理装置。
【請求項１３】
コンピュータによって実行される画像処理方法であって、
コンピュータが、
取得した物体の画像から、複数の特徴線を検出し、
前記物体の形状を表す形状情報に含まれる複数の線分を、前記画像上に投影することで、複数の投影線を生成し、
前記複数の特徴線の中からいずれかの特徴線を選択し、前記複数の投影線の中からいずれかの投影線を選択し、選択された特徴線と選択された投影線とを対応付けることで、特徴線と投影線との組み合わせを生成し、
所定数の組み合わせをそれぞれ含む複数の集合を生成し、
前記複数の集合各々を用いて、３次元空間内における前記物体の画像を撮影した撮像装置の位置及び姿勢を推定し、
前記複数の集合各々について、前記撮像装置の位置及び姿勢の推定結果を評価し、
前記撮像装置が撮影した画像上における前記物体と前記形状情報が表す形状との間の相対的な位置又は姿勢が変化した場合、前記複数の集合を繰り返し生成し、前記撮像装置の位置及び姿勢を繰り返し推定し、前記推定結果を繰り返し評価し、前記推定結果が繰り返し評価された結果に基づいて、前記撮像装置の位置及び姿勢を決定する、
ことを特徴とする画像処理方法。
【請求項１４】
取得した物体の画像から、複数の特徴線を検出し、
前記物体の形状を表す形状情報に含まれる複数の線分を、前記画像上に投影することで、複数の投影線を生成し、
前記複数の特徴線の中からいずれかの特徴線を選択し、前記複数の投影線の中からいずれかの投影線を選択し、選択された特徴線と選択された投影線とを対応付けることで、特徴線と投影線との組み合わせを生成し、
所定数の組み合わせをそれぞれ含む複数の集合を生成し、
前記複数の集合各々を用いて、３次元空間内における前記物体の画像を撮影した撮像装置の位置及び姿勢を推定し、
前記複数の集合各々について、前記撮像装置の位置及び姿勢の推定結果を評価し、
前記撮像装置が撮影した画像上における前記物体と前記形状情報が表す形状との間の相対的な位置又は姿勢が変化した場合、前記複数の集合を繰り返し生成し、前記撮像装置の位置及び姿勢を繰り返し推定し、前記推定結果を繰り返し評価し、前記推定結果が繰り返し評価された結果に基づいて、前記撮像装置の位置及び姿勢を決定する、
処理をコンピュータに実行させるための画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法、及び画像処理プログラムに関する。
【背景技術】
【０００２】
近年、拡張現実（Augmented Reality, ＡＲ）技術を用いて画像を表示するシステムが普及してきている。ＡＲ技術の一例では、パーソナルコンピュータ（Personal Computer，ＰＣ）、携帯端末装置等に搭載したカメラを用いて物体が撮影され、物体の画像から３次元空間内におけるカメラの位置及び姿勢が推定される。そして、決定されたカメラの位置及び姿勢を基準にして、画像中の任意の位置にコンテンツ情報が重畳表示される。
【０００３】
ＡＲ技術の応用として、物体の３次元形状を表すＣＡＤ（Computer-Aided Design）データを画像に重畳表示する技術も知られている（例えば、特許文献１及び特許文献２を参照）。線の対応関係からカメラ又は物体の位置及び姿勢を決定する技術も知られている（例えば、非特許文献１及び非特許文献２を参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１７−９１０７８号公報
【特許文献２】特開２０１８−６７１８８号公報
【非特許文献】
【０００５】
【非特許文献１】R. Kumar et al.,“Robust Methods for Estimating Pose and a Sensitivity Analysis”, CVGIP: Image Understanding Volume 60, Issue 3, pages 313-342, November 1994
【非特許文献２】J. Z. C. Lai,“Sensitivity Analysis of Line Correspondence”, IEEE Transactions on Systems, Man, and Cybernetics VOL. 25, NO. 6, pages 1016-1023, 1995
【発明の概要】
【発明が解決しようとする課題】
【０００６】
物体の画像から検出された複数の特徴線と、その物体のＣＡＤデータに含まれる複数の線分を画像上に投影した複数の投影線とを対応付けることで、撮像装置の位置及び姿勢を推定することができる。しかしながら、ユーザが目視による手作業で特徴線と投影線との組み合わせを選択する場合、適切な組み合わせを選択する操作は困難である。このため、ユーザによる操作に時間がかかるとともに、特徴線と投影線との誤った組み合わせが選択される可能性もある。
【０００７】
なお、かかる問題は、ＣＡＤデータから撮像装置の位置及び姿勢を推定する場合に限らず、物体の形状を表す他の形状情報から撮像装置の位置及び姿勢を推定する場合においても生ずるものである。
【０００８】
１つの側面において、本発明は、撮像装置が撮影した物体の画像と、その物体の形状情報とを用いて、撮像装置の位置及び姿勢を効率良く推定することを目的とする。
【課題を解決するための手段】
【０００９】
１つの案では、画像処理装置は、記憶部、検出部、投影部、生成部、推定部、及び評価部を含む。
【００１０】
記憶部は、物体の形状を表す複数の線分を含む形状情報を記憶する。検出部は、取得した物体の画像から、複数の特徴線を検出し、投影部は、形状情報に含まれる複数の線分を画像上に投影することで、複数の投影線を生成する。
【００１１】
生成部は、複数の特徴線の中からいずれかの特徴線を選択し、複数の投影線の中からいずれかの投影線を選択し、選択された特徴線と選択された投影線とを対応付けることで、特徴線と投影線との組み合わせを生成する。そして、生成部は、所定数の組み合わせをそれぞれ含む複数の集合を生成する。
【００１２】
推定部は、複数の集合各々を用いて、物体の画像を撮影した撮像装置の３次元空間内における位置及び姿勢を推定し、評価部は、複数の集合各々について、撮像装置の位置及び姿勢の推定結果を評価する。
【００１３】
撮像装置が撮影した画像上における物体と形状情報が表す形状との間の相対的な位置又は姿勢が変化した場合、生成部は複数の集合を繰り返し生成し、推定部は撮像装置の位置及び姿勢を繰り返し推定し、評価部は推定結果を繰り返し評価する。そして、推定部は、推定結果が繰り返し評価された結果に基づいて、撮像装置の位置及び姿勢を決定する。
【発明の効果】
【００１４】
実施形態によれば、撮像装置が撮影した物体の画像と、その物体の形状情報とを用いて、撮像装置の位置及び姿勢を効率良く推定することができる。
【図面の簡単な説明】
【００１５】
【図１】画像処理装置の機能的構成図である。
【図２】画像処理のフローチャートである。
【図３】画像処理装置の第１の具体例を示す機能的構成図である。
【図４】投影線と特徴線を示す図である。
【図５】距離に基づく計算方法を示す図である。
【図６】領域の面積に基づく計算方法を示す図である。
【図７】３Ｄモデルの線分と視点を示す図である。
【図８Ａ】３Ｄモデルの姿勢を示す図（その１）である。
【図８Ｂ】３Ｄモデルの姿勢を示す図（その２）である。
【図９】投影線に対する移動操作を示す図である。
【図１０】画像処理の第１の具体例を示すフローチャートである。
【図１１】対応ペア生成処理のフローチャートである。
【図１２】推定処理のフローチャートである。
【図１３】変更処理のフローチャートである。
【図１４】画像処理の第２の具体例を示すフローチャートである。
【図１５】画像上に重畳表示された３Ｄモデルを示す図である。
【図１６】推定部の動作を抑止する画像処理を示す図である。
【図１７】画像処理装置の第２の具体例を示す機能的構成図である。
【図１８】画像処理の第３の具体例を示すフローチャートである。
【図１９】画像処理装置の第３の具体例を示す機能的構成図である。
【図２０】操作量の時間変化を示す図である。
【図２１】第１の感度調整方法を示す図である。
【図２２】第２の感度調整方法を示す図である。
【図２３】第３の感度調整方法を示す図である。
【図２４】第４の感度調整方法を示す図である。
【図２５】粗調整における操作ポインタを示す図である。
【図２６】微調整における操作ポインタを示す図である。
【図２７Ａ】画像処理の第４の具体例を示すフローチャート（その１）である。
【図２７Ｂ】画像処理の第４の具体例を示すフローチャート（その２）である。
【図２８】感度調整処理のフローチャートである。
【図２９Ａ】画像処理の第５の具体例を示すフローチャート（その１）である。
【図２９Ｂ】画像処理の第５の具体例を示すフローチャート（その２）である。
【図３０】情報処理装置のハードウェア構成図である。
【発明を実施するための形態】
【００１６】
以下、図面を参照しながら、実施形態を詳細に説明する。
特許文献１の技術では、立体構造物を撮影した撮像画像から抽出されたエッジ線と、その立体構造物のモデル画像に含まれる稜線との組み合わせを用いて、画像とモデル画像とが重畳表示される。モデル画像は、立体構造物のＣＡＤデータを撮影画像上に投影することで生成され、稜線は、ＣＡＤデータに含まれる線分を撮影画像上に投影した投影線に対応する。
【００１７】
この場合、ユーザが選択するエッジ線及び稜線は線分であるため、点よりも視認性が良い。このため、マウス等を用いてエッジ線及び稜線を選択する操作は、点を選択する操作よりも容易であり、ユーザの作業負荷が低減される。しかしながら、特許文献１には、エッジ線と稜線との適切な組み合わせを選択する方法は記載されていない。
【００１８】
特許文献１のように、物体の画像から検出された特徴線と、その物体のＣＡＤデータに含まれる線分を投影した投影線との組み合わせ（対応ペア）を、ユーザが目視による手作業で選択する場合、次のような問題が発生する。
【００１９】
ユーザが熟練者ではない場合、物体の画像とＣＡＤデータが表す物体のモデルとが表示された画面上でモデルを適切な向きに回転させる操作、及び特徴線と投影線との適切な組み合わせを選択する操作は、困難を伴う。例えば、カメラの位置及び姿勢の推定精度を向上させるためには、選択される複数の特徴線又は選択される複数の投影線に、３本の平行な特徴線又は３本の平行な投影線が含まれないことが望ましい。このため、特徴線と投影線との適切な組み合わせを選択する操作に時間がかかるとともに、特徴線と投影線との誤った組み合わせが選択される可能性もある。
【００２０】
一方、ユーザが対応ペアを選択する代わりに、複数の特徴線と複数の投影線との組み合わせを無作為に選択してカメラの位置及び姿勢を推定し、推定誤差が最小となる組み合わせを決定することも可能である。しかしながら、この場合、複数の特徴線と複数の投影線との組み合わせを変更しながら、カメラの位置及び姿勢を推定する処理が繰り返されるため、計算時間が長時間に及ぶことになる。物体が複雑な形状を有する場合は、計算時間がさらに長くなる。
【００２１】
図１は、実施形態の画像処理装置の機能的構成例を示している。図１の画像処理装置１０１は、記憶部１１１、検出部１１２、投影部１１３、生成部１１４、推定部１１５、及び評価部１１６を含む。記憶部１１１は、物体の形状を表す複数の線分を含む形状情報１２１を記憶する。検出部１１２、投影部１１３、生成部１１４、推定部１１５、及び評価部１１６は、記憶部１１１が記憶する形状情報１２１を用いて、画像処理を行う。
【００２２】
図２は、図１の画像処理装置１０１が行う画像処理の例を示すフローチャートである。まず、検出部１１２は、取得した物体の画像から、複数の特徴線を検出し（ステップ２０１）、投影部１１３は、形状情報に含まれる複数の線分を画像上に投影することで、複数の投影線を生成する（ステップ２０２）。
【００２３】
次に、生成部１１４は、複数の特徴線の中からいずれかの特徴線を選択し、複数の投影線の中からいずれかの投影線を選択し、選択された特徴線と投影線とを対応付けることで、特徴線と投影線との組み合わせを生成する（ステップ２０３）。そして、生成部１１４は、所定数の組み合わせをそれぞれ含む複数の集合を生成する（ステップ２０４）。
【００２４】
次に、推定部１１５は、複数の集合各々を用いて、物体の画像を撮影した撮像装置の３次元空間内における位置及び姿勢を推定し（ステップ２０５）、評価部１１６は、複数の集合各々について、撮像装置の位置及び姿勢の推定結果を評価する（ステップ２０６）。
【００２５】
撮像装置が撮影した画像上における物体と形状情報が表す形状との間の相対的な位置又は姿勢が変化した場合、生成部１１４は複数の集合を繰り返し生成し、推定部１１５は撮像装置の位置及び姿勢を繰り返し推定し、評価部１１６は推定結果を繰り返し評価する。そして、推定部１１５は、推定結果が繰り返し評価された結果に基づいて、撮像装置の位置及び姿勢を決定する（ステップ２０７）。
【００２６】
このような画像処理装置１０１によれば、撮像装置が撮影した物体の画像と、その物体の形状情報とを用いて、撮像装置の位置及び姿勢を効率良く推定することができる。
【００２７】
図３は、図１の画像処理装置１０１の第１の具体例を示している。図３の画像処理装置３０１は、記憶部３１１、画像取得部３１２、検出部３１３、投影部３１４、表示部３１５、変更部３１６、生成部３１７、推定部３１８、及び評価部３１９を含む。
【００２８】
記憶部３１１、検出部３１３、投影部３１４、生成部３１７、推定部３１８、及び評価部３１９は、図１の記憶部１１１、検出部１１２、投影部１１３、生成部１１４、推定部１１５、及び評価部１１６にそれぞれ対応する。
【００２９】
画像処理装置１０１は、タブレット、ノート型ＰＣ、スマートデバイス等の携帯端末装置であってもよく、デスクトップ型ＰＣ等の情報処理装置であってもよい。
【００３０】
撮像装置３０２は、例えば、ＣＣＤ（Charge-Coupled Device）、ＣＭＯＳ（Complementary Metal-Oxide-Semiconductor）等の撮像素子を有するカメラであり、物体の画像３２１を撮影する。画像取得部３１２は、撮像装置３０２から画像３２１を取得して、記憶部３１１に格納する。撮影対象の物体は、道路、橋梁、建築物等の構造物であってもよく、船舶、車両、電子機器等の製造物であってもよい。
【００３１】
記憶部３１１は、撮像装置３０２が撮影した物体の形状を表す３次元モデル（３Ｄモデル）３２２を記憶している。３Ｄモデル３２２は、図１の形状情報１２１に対応し、例えば、物体のＣＡＤデータである。３Ｄモデル３２２は、物体の３次元形状を表す複数の頂点の頂点情報と、複数の線分の線分情報とを含む。頂点情報は、物体の各頂点の３次元座標を含み、線分情報は、各線分の両端の頂点である端点を示す識別情報を含む。
【００３２】
検出部３１３は、画像３２１に対するエッジ検出処理を行って、画像３２１から複数のエッジ線を検出し、検出したエッジ線を特徴線３２３として記憶部３１１に格納する。
【００３３】
投影部３１４は、３Ｄモデル３２２に含まれる複数の線分を画像３２１上に投影することで、複数の投影線を生成する。表示部３１５は、画像３２１を画面上に表示するとともに、表示された画像３２１上に複数の特徴線３２３を重畳表示する。さらに、表示部３１５は、投影部３１４が生成した複数の投影線を画面上に表示する。
【００３４】
生成部３１７は、複数の特徴線３２３の中から１本の特徴線を選択し、複数の投影線の中から１本の投影線を選択し、選択された特徴線と投影線とを対応付けることで、対応ペアを生成する。そして、生成部３１７は、複数の対応ペア集合３２４を生成して、記憶部３１１に格納する。各対応ペア集合３２４は、Ｐ個（Ｐは３以上の整数）の対応ペアを含む。
【００３５】
推定部３１８は、各対応ペア集合３２４を用いて、３次元空間内における撮像装置３０２の位置及び姿勢を推定し、推定した位置及び姿勢を推定結果３２５として記憶部３１１に格納する。
【００３６】
評価部３１９は、各対応ペア集合３２４を用いて求められた推定結果３２５を評価する。まず、評価部３１９は、複数の対応ペア集合３２４の中からいずれかの対応ペア集合３２４を評価用集合として選択する。次に、評価部３１９は、評価用集合に基づいて求められた推定結果３２５を用いて、各対応ペア集合３２４内の各対応ペアに含まれる投影線に対応する３Ｄモデル３２２の線分を、画像３２１上に再投影することで、評価用投影線を生成する。
【００３７】
そして、評価部３１９は、その対応ペアに含まれる特徴線と評価用投影線との間の誤差を計算し、計算された誤差から、その対応ペアに対する評価値３２６を求めて、記憶部３１１に格納する。評価値３２６としては、誤差が大きいほど小さくなる評価値を用いてもよく、誤差が大きいほど大きくなる評価値を用いてもよい。
【００３８】
誤差が大きいほど小さくなる評価値３２６を用いた場合、評価部３１９は、複数の対応ペア集合３２４に含まれるすべての対応ペアに対する評価値３２６の総和を計算し、計算した総和を閾値と比較する。いずれかの対応ペア集合３２４を選択することで得られた評価値３２６の総和が閾値よりも大きい場合、評価部３１９は、推定成功と判定する。そして、推定部３１８は、その対応ペア集合３２４に基づいて求められた推定結果３２５を、撮像装置３０２の位置及び姿勢に決定する。
【００３９】
投影部３１４は、決定された撮像装置３０２の位置及び姿勢を用いて、３Ｄモデル３２２に含まれる複数の線分を画像３２１上に投影することで、複数の投影線を再度生成し、表示部３１５は、それらの投影線を画像３２１上に重畳表示する。
【００４０】
一方、いずれの対応ペア集合３２４を選択しても評価値３２６の総和が閾値未満である場合、評価部３１９は、推定失敗と判定し、推定失敗を示す情報を出力する。推定失敗を示す情報は、通常の重畳表示とは異なる警告色で重畳表示された投影線であってもよく、画面上に表示されるマーク又はテキストメッセージであってもよく、音声メッセージであってもよい。
【００４１】
推定失敗を示す情報が出力された場合、ユーザは、画像３２１に写っている物体の位置及び姿勢と、３Ｄモデル３２２の位置及び姿勢とが近くなるように、物体、撮像装置３０２、又は画像３２１上の３Ｄモデル３２２のいずれかの位置又は姿勢を変更する。
【００４２】
ユーザが３Ｄモデル３２２の位置又は姿勢を変更する指示を入力した場合、変更部３１６は、入力された指示に従って、画像３２１上における３Ｄモデル３２２が表す形状の位置又は姿勢を変更する。これにより、画像３２１上に写っている物体と３Ｄモデル３２２が表す形状との間の相対的な位置又は姿勢を変化させることができる。
【００４３】
一方、ユーザは、物体又は撮像装置３０２を移動させることによって、物体と撮像装置３０２との間の相対的な位置又は姿勢が変化した後に、撮像装置３０２により物体を繰り返し撮影することもできる。この場合も、画像３２１上に写っている物体と３Ｄモデル３２２が表す形状との間の相対的な位置又は姿勢を変化させることができる。
【００４４】
こうして、物体と３Ｄモデル３２２が表す形状との間の相対的な位置又は姿勢が変化した場合、生成部３１７は、複数の対応ペア集合３２４を繰り返し生成する。また、推定部３１８は、撮像装置３０２の位置及び姿勢を繰り返し推定し、評価部３１９は、推定結果３２５を繰り返し評価する。
【００４５】
この場合、推定部３１８は、推定結果３２５が繰り返し評価された結果において、閾値よりも大きな評価値３２６の総和が得られた評価用集合を特定する。そして、推定部３１８は、特定された評価用集合に基づいて求められた推定結果３２５を、撮像装置３０２の位置及び姿勢に決定する。
【００４６】
図３の画像処理装置３０１によれば、ユーザが物体、撮像装置３０２、又は３Ｄモデル３２２の位置又は姿勢を変更することで、画像３２１上に写っている物体の位置及び姿勢と、３Ｄモデル３２２の位置及び姿勢とを近づけることが可能になる。画像３２１上における物体と３Ｄモデル３２２とがほぼ重なった状態で、対応ペア集合３２４を生成することで、信頼できる推定結果３２５を得ることができるため、短時間で撮像装置３０２の位置及び姿勢が決定される。したがって、ユーザの操作負荷が削減されるとともに、撮像装置３０２の位置及び姿勢を効率良く推定することが可能になる。
【００４７】
また、各対応ペア集合３２４から求められた推定結果３２５を、誤差が大きいほど小さくなる評価値３２６に基づいて評価することで、誤って対応付けられた対応ペア（誤対応ペア）の誤差の影響による推定失敗が回避される。したがって、誤対応ペアが対応ペア集合３２４に含まれていても、良い推定結果３２５を生成する対応ペア集合３２４を特定することができる。
【００４８】
誤差が大きいほど大きくなる評価値３２６を用いた場合は、通常、ＲＡＮＳＡＣ（Random Sample Consensus）、最小メジアン法ＬＭｅｄＳ（Least Median of Squares）等のロバスト推定により、誤対応ペアを除去することができる。
【００４９】
生成部３１７は、複数の特徴線３２３又は複数の投影線の中から、１本の特徴線３２３又は１本の投影線を基準線分として選択し、基準線分の周辺に存在する投影線又は特徴線３２３の中から、基準線分と対応付けられる候補線分を絞り込む。生成部３１７は、例えば、角度による絞り込み、距離による絞り込み、位置関係による絞り込み等を行うことで、候補線分を絞り込むことができる。
【００５０】
角度による絞り込みでは、基準線分と候補線分との間の角度が所定値以上の場合、その候補線分が除外される。距離による絞り込みでは、基準線分と候補線分との間の距離が所定値以上の場合、その候補線分が除外される。位置関係による絞り込みでは、候補線分の位置が基準線分の位置から基準線分の方向にずれている場合、その候補線分が除外される。
【００５１】
図４は、画像３２１上における物体の位置及び姿勢と３Ｄモデル３２２の位置及び姿勢とが近い場合の投影線と特徴線の例を示している。生成部３１７は、例えば、投影線４０１を基準線分として選択し、投影線４０１の周辺に存在する特徴線４１１〜特徴線４１５の中から候補線分を絞り込む。
【００５２】
絞り込み条件の一例として、角度による絞り込みでは、投影線４０１と特徴線４１２との間の角度が１５度以上であるため、特徴線４１２が除外される。距離による絞り込みでは、投影線４０１と特徴線４１１との間の距離が、投影線４０１の長さの１／４以上であるため、特徴線４１１が除外される。位置関係による絞り込みでは、特徴線４１３の位置が投影線４０１の位置から投影線４０１の方向にずれているため、特徴線４１３が除外される。
【００５３】
生成部３１７は、残された特徴線４１４及び特徴線４１５のうち、投影線４０１までの距離が最小となる特徴線４１５を選択し、投影線４０１と特徴線４１５とを対応付けて、対応ペアを生成する。
【００５４】
このように、画像３２１上における物体の位置及び姿勢と３Ｄモデル３２２の位置及び姿勢とが近い場合、適切な絞り込みを行うことで、容易に対応ペアを生成することができる。
【００５５】
評価部３１９は、例えば、複数の対応ペア集合３２４の中から、誤差耐性の良い順に対応ペア集合３２４を選択し、推定部３１８は、選択された対応ペア集合３２４を用いて、撮像装置３０２の位置及び姿勢を推定する。誤差耐性は、特徴線３２３の検出誤差に対する推定処理の耐性を表し、例えば、非特許文献２に記載された解析方法により求めることができる。
【００５６】
通常、撮像装置３０２の位置及び姿勢は、４個以上の対応ペアを用いて確定することができるが、３個の対応ペアのみを用いた場合、Bas-relief不定性の一種であるスケール不定性又は奥行き反転（depth reversal）の不定性が、推定結果３２５に含まれる。しかし、例えば、非特許文献２に記載された解析方法を用いると、スケール不定性が生じる対応ペア集合３２４は誤差耐性が低くなるため、除外することができる。また、画像３２１上における物体の位置及び姿勢と３Ｄモデル３２２の位置及び姿勢とが近い場合、奥行き反転の推定結果３２５は、投影線生成時の３Ｄモデル３２２の位置及び姿勢と大きく異なるため、容易に除外することができる。したがって、３個の対応ペアのみを用いて推定結果３２５を確定することが可能である。
【００５７】
評価部３１９は、例えば、非特許文献１に記載された計算方法により、特徴線と投影線の間の距離に基づいて、特徴線と投影線の間の誤差を計算することができる。また、評価部３１９は、特徴線と投影線の間の領域の面積に基づいて誤差を計算することもできる。
【００５８】
図５は、特徴線と投影線との間の距離に基づく計算方法の例を示している。複数の対応ペア集合３２４に含まれる対応ペアの総数がＮ個（Ｎは３以上の整数）であり、ｉ番目（ｉ＝１〜Ｎ）の対応ペアに含まれる投影線が線分５０１であり、特徴線が線分５０２である場合を想定する。
【００５９】
線分５０２の両端から線分５０１上へ下ろした垂線５０３及び垂線５０４の長さを、それぞれ、Ｌｉ１及びＬｉ２とする。この場合、Ｌｉ１及びＬｉ２の和を、特徴線と投影線の間の誤差Ｅｉとして用いることができる。
【００６０】
Ｅｉ＝Ｌｉ１＋Ｌｉ２      （１）
【００６１】
Ｌｉ１及びＬｉ２が短いほど、誤差Ｅｉは小さくなり、線分５０２が線分５０１に重なっている場合、誤差Ｅｉは０になる。
【００６２】
図６は、特徴線と投影線の間の領域の面積に基づく計算方法の例を示している。線分５０１の両端と線分５０２の両端をそれぞれ結ぶ線分６０１及び線分６０２を定義した場合、線分５０１、線分５０２、線分６０１、及び線分６０２によって囲まれた領域の面積Ａｉを、誤差Ｅｉとして用いることができる。
【００６３】
Ｅｉ＝Ａｉ      （２）
【００６４】
面積Ａｉが小さいほど、誤差Ｅｉは小さくなり、線分５０２が線分５０１に重なっている場合、誤差Ｅｉは０になる。
【００６５】
評価部３１９は、例えば、次式により、誤差Ｅｉを用いてｉ番目の対応ペアに対する評価値Ｓｃｏｒｅ（ｉ）を計算することができる。
【００６６】
Ｓｃｏｒｅ（ｉ）＝１                    （Ｅｉ＜Ｔ１）      （３）
Ｓｃｏｒｅ（ｉ）＝（Ｔ１／Ｅｉ）２      （Ｅｉ≧Ｔ１）      （４）
【００６７】
Ｔ１は、シミュレーション等によって決められた閾値を表す。式（３）及び式（４）によれば、Ｅｉ＜Ｔ１である場合、Ｓｃｏｒｅ（ｉ）＝１となり、Ｅｉ≧Ｔ１である場合、Ｓｃｏｒｅ（ｉ）≦１となる。したがって、Ｅｉが大きいほど、Ｓｃｏｒｅ（ｉ）は小さくなる。すべての対応ペアに対するＳｃｏｒｅ（ｉ）の総和Ｓは、次式により計算される。
【００６８】
【数１】
2020098575.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）等の通信ネットワークに接続され、通信に伴うデータ変換を行う通信インタフェース回路である。情報処理装置は、プログラム及びデータを外部の装置からネットワーク接続装置３００７を介して受信し、それらをメモリ３００２にロードして使用することができる。
【０１８９】
なお、情報処理装置が図３０のすべての構成要素を含む必要はなく、用途又は条件に応じて一部の構成要素を省略することも可能である。例えば、可搬型記録媒体３００９又は通信ネットワークを使用しない場合は、媒体駆動装置３００６又はネットワーク接続装置３００７を省略してもよい。
【０１９０】
開示の実施形態とその利点について詳しく説明したが、当業者は、特許請求の範囲に明確に記載した本発明の範囲から逸脱することなく、様々な変更、追加、省略をすることができるであろう。
【０１９１】
図１乃至図３０を参照しながら説明した実施形態に関し、さらに以下の付記を開示する。
（付記１）
物体の形状を表す複数の線分を含む形状情報を記憶する記憶部と、
取得した前記物体の画像から、複数の特徴線を検出する検出部と、
前記複数の線分を前記画像上に投影することで、複数の投影線を生成する投影部と、
前記複数の特徴線の中からいずれかの特徴線を選択し、前記複数の投影線の中からいずれかの投影線を選択し、選択された特徴線と選択された投影線とを対応付けることで、特徴線と投影線との組み合わせを生成し、所定数の組み合わせをそれぞれ含む複数の集合を生成する生成部と、
前記複数の集合各々を用いて、３次元空間内における前記物体の画像を撮影した撮像装置の位置及び姿勢を推定する推定部と、
前記複数の集合各々について、前記撮像装置の位置及び姿勢の推定結果を評価する評価部とを備え、
前記撮像装置が撮影した画像上における前記物体と前記形状情報が表す形状との間の相対的な位置又は姿勢が変化した場合、前記生成部は前記複数の集合を繰り返し生成し、前記推定部は前記撮像装置の位置及び姿勢を繰り返し推定し、前記評価部は前記推定結果を繰り返し評価し、前記推定部は、前記推定結果が繰り返し評価された結果に基づいて、前記撮像装置の位置及び姿勢を決定することを特徴とする画像処理装置。
（付記２）
前記検出部が特徴線を検出する対象の物体の画像は、前記撮像装置が撮影した物体画像であることを特徴とする付記１記載の画像処理装置。
（付記３）
前記撮像装置が撮影した画像上における前記形状情報が表す形状の位置又は姿勢を変更する変更部をさらに備え、
前記形状情報が表す形状の位置又は姿勢を前記変更部が変更することによって、前記撮像装置が撮影した画像上における前記物体と前記形状情報が表す形状との間の相対的な位置又は姿勢が変化することを特徴とする付記１又は２記載の画像処理装置。
（付記４）
前記変更部は、前記形状情報に含まれる前記複数の線分の中から選択された線分、又は前記選択された線分と前記複数の線分に対する視点とを含む平面の法線を、回転軸として用いて、前記回転軸の周りに前記形状情報が表す形状を回転させることで、前記形状情報が表す形状の位置又は姿勢を変更することを特徴とする付記３記載の画像処理装置。
（付記５）
前記形状情報が表す形状の位置又は姿勢の変更を前記変更部が行っている所定期間において、前記推定部が前記撮像装置の位置及び姿勢を推定する動作を抑止する推定制御部をさらに備えることを特徴とする付記３又は４記載の画像処理装置。
（付記６）
前記推定制御部は、抑止指示が入力された場合に、前記推定部が前記撮像装置の位置及び姿勢を推定する動作を抑止することを特徴とする付記５記載の画像処理装置。
（付記７）
前記形状情報が表す形状の位置又は姿勢の粗調整又は微調整のいずれを前記変更部が行っているかを判定する調整段階判定部をさらに備え、
前記推定制御部は、前記変更部が前記粗調整を行っている場合、前記推定部が前記撮像装置の位置及び姿勢を推定する動作を抑止し、前記変更部が前記微調整を行っている場合、前記推定部が前記撮像装置の位置及び姿勢を推定する動作を抑止しないことを特徴とする付記５記載の画像処理装置。
（付記８）
前記変更部は、前記撮像装置が撮影した画像上における前記形状情報が表す形状の位置又は姿勢をユーザが変更する変更操作に応じて、前記形状情報が表す形状の位置又は姿勢を変更し、
前記調整段階判定部は、前記変更操作の操作量に基づいて、前記変更部が前記粗調整又は前記微調整のいずれを行っているかを判定し、
前記画像処理装置は、前記変更部が前記微調整を行い、かつ、前記推定部が前記撮像装置の位置及び姿勢の複数の候補を生成した場合、前記複数の候補それぞれに対応する前記物体の形状を前記撮像装置が撮影した画像上に重畳して表示する表示部をさらに備え、
前記推定部は、前記複数の候補それぞれに対応する前記物体の形状の中から前記ユーザによって選択された形状に基づいて、前記撮像装置の位置及び姿勢を決定することを特徴とする付記７記載の画像処理装置。
（付記９）
前記変更部は、前記撮像装置が撮影した画像上における前記形状情報が表す形状の位置又は姿勢をユーザが変更する変更操作に応じて、前記形状情報が表す形状の位置又は姿勢を変更し、
前記調整段階判定部は、前記変更操作の操作量に基づいて、前記変更部が前記粗調整又は前記微調整のいずれを行っているかを判定し、
前記画像処理装置は、前記変更部が前記微調整を行い、かつ、前記推定部が前記撮像装置の位置及び姿勢の複数の候補を生成した場合、前記複数の候補のうちいずれかの候補に対応する前記物体の形状を前記撮像装置が撮影した画像上に重畳して表示するとともに、前記複数の候補の存在を示す情報を表示する表示部をさらに備え、
前記表示部は、候補変更指示が入力された場合、前記複数の候補それぞれに対応する前記物体の形状を前記撮像装置が撮影した画像上に重畳して表示し、
前記推定部は、前記複数の候補それぞれに対応する前記物体の形状の中から前記ユーザによって選択された形状に基づいて、前記撮像装置の位置及び姿勢を決定することを特徴とする付記７記載の画像処理装置。
（付記１０）
前記変更部が前記微調整を行っている場合、前記変更操作に対する前記形状情報が表す形状の位置又は姿勢の変更感度を、前記変更部が前記粗調整を行っている場合よりも低下させる感度調整部をさらに備えることを特徴とする付記８又は９記載の画像処理装置。
（付記１１）
前記感度調整部は、前記変更操作の操作量の時間変化に基づいて、前記変更感度を調整することを特徴とする付記１０記載の画像処理装置。
（付記１２）
前記表示部は、前記変更操作の操作ポインタを表示し、前記変更感度に応じて前記操作ポインタの表示形態を変化させることを特徴とする付記１０又は１１記載の画像処理装置。
（付記１３）
前記物体と前記撮像装置との間の相対的な位置又は姿勢が変化した後に、前記撮像装置が前記物体を繰り返し撮影することによって、前記撮像装置が撮影した画像上における前記物体と前記形状情報が表す形状との間の相対的な位置又は姿勢が変化することを特徴とする付記１又は２記載の画像処理装置。
（付記１４）
前記評価部は、前記複数の集合の中からいずれかの集合を評価用集合として選択し、前記評価用集合に基づいて推定された前記撮像装置の位置及び姿勢の推定結果を用いて、前記複数の集合の各組み合わせに含まれる投影線に対応する線分を前記画像上に再投影することで、評価用投影線を生成し、前記複数の集合の各組み合わせに含まれる特徴線と前記評価用投影線との間の誤差を計算し、計算された誤差が大きいほど小さくなる評価値を求め、前記複数の集合に含まれるすべての組み合わせに対する評価値の総和を閾値と比較し、
いずれの集合を選択しても評価値の総和が前記閾値未満であり、かつ、前記撮像装置が撮影した画像上における前記物体と前記形状情報が表す形状との間の相対的な位置又は姿勢が変化した場合、前記生成部は前記複数の集合を繰り返し生成し、前記推定部は前記撮像装置の位置及び姿勢を繰り返し推定し、前記評価部は前記推定結果を繰り返し評価し、前記推定部は、前記推定結果が繰り返し評価された結果において、前記閾値よりも大きな評価値の総和が得られた評価用集合を特定し、特定された評価用集合に基づいて推定された位置及び姿勢を、前記撮像装置の位置及び姿勢に決定することを特徴とする付記１乃至１３のいずれか１項に記載の画像処理装置。
（付記１５）
コンピュータによって実行される画像処理方法であって、
コンピュータが、
取得した物体の画像から、複数の特徴線を検出し、
前記物体の形状を表す形状情報に含まれる複数の線分を、前記画像上に投影することで、複数の投影線を生成し、
前記複数の特徴線の中からいずれかの特徴線を選択し、前記複数の投影線の中からいずれかの投影線を選択し、選択された特徴線と選択された投影線とを対応付けることで、特徴線と投影線との組み合わせを生成し、
所定数の組み合わせをそれぞれ含む複数の集合を生成し、
前記複数の集合各々を用いて、３次元空間内における前記物体の画像を撮影した撮像装置の位置及び姿勢を推定し、
前記複数の集合各々について、前記撮像装置の位置及び姿勢の推定結果を評価し、
前記撮像装置が撮影した画像上における前記物体と前記形状情報が表す形状との間の相対的な位置又は姿勢が変化した場合、前記複数の集合を繰り返し生成し、前記撮像装置の位置及び姿勢を繰り返し推定し、前記推定結果を繰り返し評価し、前記推定結果が繰り返し評価された結果に基づいて、前記撮像装置の位置及び姿勢を決定する、
ことを特徴とする画像処理方法。
（付記１６）
前記コンピュータが特徴線を検出する対象の物体の画像は、前記撮像装置が撮影した物体画像であることを特徴とする付記１５記載の画像処理方法。
（付記１７）
前記コンピュータは、前記撮像装置が撮影した画像上における前記形状情報が表す形状の位置又は姿勢を変更することによって、前記撮像装置が撮影した画像上における前記物体と前記形状情報が表す形状との間の相対的な位置又は姿勢を変化させることを特徴とする付記１５又は１６記載の画像処理方法。
（付記１８）
取得した物体の画像から、複数の特徴線を検出し、
前記物体の形状を表す形状情報に含まれる複数の線分を、前記画像上に投影することで、複数の投影線を生成し、
前記複数の特徴線の中からいずれかの特徴線を選択し、前記複数の投影線の中からいずれかの投影線を選択し、選択された特徴線と選択された投影線とを対応付けることで、特徴線と投影線との組み合わせを生成し、
所定数の組み合わせをそれぞれ含む複数の集合を生成し、
前記複数の集合各々を用いて、３次元空間内における前記物体の画像を撮影した撮像装置の位置及び姿勢を推定し、
前記複数の集合各々について、前記撮像装置の位置及び姿勢の推定結果を評価し、
前記撮像装置が撮影した画像上における前記物体と前記形状情報が表す形状との間の相対的な位置又は姿勢が変化した場合、前記複数の集合を繰り返し生成し、前記撮像装置の位置及び姿勢を繰り返し推定し、前記推定結果を繰り返し評価し、前記推定結果が繰り返し評価された結果に基づいて、前記撮像装置の位置及び姿勢を決定する、
処理をコンピュータに実行させるための画像処理プログラム。
（付記１９）
前記コンピュータが特徴線を検出する対象の物体の画像は、前記撮像装置が撮影した物体画像であることを特徴とする付記１８記載の画像処理プログラム。
（付記２０）
前記コンピュータは、前記撮像装置が撮影した画像上における前記形状情報が表す形状の位置又は姿勢を変更することによって、前記撮像装置が撮影した画像上における前記物体と前記形状情報が表す形状との間の相対的な位置又は姿勢を変化させることを特徴とする付記１８又は１９記載の画像処理プログラム。
【符号の説明】
【０１９２】
１０１、３０１、１７０１、１９０１  画像処理装置
１１１、３１１  記憶部
１１２、３１３  検出部
１１３、３１４  投影部
１１４、３１７  生成部
１１５、３１８  推定部
１１６、３１９  評価部
１２１、３２２  形状情報
３０２  撮像装置
３１２  画像取得部
３１５  表示部
３１６  変更部
３１９  評価部
３２１、１５０１  画像
３２２、７０１  ３Ｄモデル
３２３、４１１〜４１５  特徴線
３２４  対応ペア集合
３２５  推定結果
３２６  評価値
４０１、９０１  投影線
５０１、５０２、６０１、６０２、７０２  線分
５０３、５０４  垂線
７０３  視点
９１１  移動ベクトル
９１２、９１３  成分
１５０２〜１５０４、１６０１〜１６０４、２５０１〜２５０３、２６０１  図形
１７１１、１９１１  推定制御部
１９１２  調整段階判定部
１９１３  感度調整部
２００１、２１０１、２２０１、２３０１、２４０１  曲線
２０１１、２０１２  期間
２５１１〜２５１３、２６１１  操作ポインタ
３００１  ＣＰＵ
３００２  メモリ
３００３  入力装置
３００４  出力装置
３００５  補助記憶装置
３００６  媒体駆動装置
３００７  ネットワーク接続装置
３００８  バス
３００９  可搬型記録媒体
【図１】
2020098575.tif 000004
【図２】
2020098575.tif 000005
【図３】
2020098575.tif 000006
【図４】
2020098575.tif 000007
【図５】
2020098575.tif 000008
【図６】
2020098575.tif 000009
【図７】
2020098575.tif 000010
【図８Ａ】
2020098575.tif 000011
【図８Ｂ】
2020098575.tif 000012
【図９】
2020098575.tif 000013
【図１０】
2020098575.tif 000014
【図１１】
2020098575.tif 000015
【図１２】
2020098575.tif 000016
【図１３】
2020098575.tif 000017
【図１４】
2020098575.tif 000018
【図１５】
2020098575.tif 000019
【図１６】
2020098575.tif 000020
【図１７】
2020098575.tif 000021
【図１８】
2020098575.tif 000022
【図１９】
2020098575.tif 000023
【図２０】
2020098575.tif 000024
【図２１】
2020098575.tif 000025
【図２２】
2020098575.tif 000026
【図２３】
2020098575.tif 000027
【図２４】
2020098575.tif 000028
【図２５】
2020098575.tif 000029
【図２６】
2020098575.tif 000030
【図２７Ａ】
2020098575.tif 000031
【図２７Ｂ】
2020098575.tif 000032
【図２８】
2020098575.tif 000033
【図２９Ａ】
2020098575.tif 000034
【図２９Ｂ】
2020098575.tif 000035
【図３０】
2020098575.tif 000036