JP2020098575A - 画像処理装置、画像処理方法、及び画像処理プログラム - Google Patents

画像処理装置、画像処理方法、及び画像処理プログラム Download PDF

Info

Publication number
JP2020098575A
JP2020098575A JP2019193142A JP2019193142A JP2020098575A JP 2020098575 A JP2020098575 A JP 2020098575A JP 2019193142 A JP2019193142 A JP 2019193142A JP 2019193142 A JP2019193142 A JP 2019193142A JP 2020098575 A JP2020098575 A JP 2020098575A
Authority
JP
Japan
Prior art keywords
orientation
unit
imaging device
image
estimation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2019193142A
Other languages
English (en)
Other versions
JP2020098575A5 (ja
Inventor
あゆ 烏谷
Ayu Karasuya
あゆ 烏谷
厚憲 茂木
Atsunori Mogi
厚憲 茂木
健介 倉木
Kensuke Kuraki
健介 倉木
吉武 敏幸
Toshiyuki Yoshitake
敏幸 吉武
晃大 牧田
Akihiro Makita
晃大 牧田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to US16/708,951 priority Critical patent/US11138759B2/en
Publication of JP2020098575A publication Critical patent/JP2020098575A/ja
Publication of JP2020098575A5 publication Critical patent/JP2020098575A5/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Image Analysis (AREA)

Abstract

【課題】撮像装置が撮影した物体の画像と、その物体の形状情報とを用いて、撮像装置の位置及び姿勢を効率良く推定する。【解決手段】検出部は、物体の画像から特徴線を検出し、投影部は、物体の形状情報に含まれる線分を画像上に投影することで、投影線を生成する。生成部は、特徴線と投影線とを対応付けることで、特徴線と投影線との組み合わせを生成し、所定数の組み合わせをそれぞれ含む複数の集合を生成する。推定部は、各集合を用いて、物体の画像を撮影した撮像装置の位置及び姿勢を推定し、評価部は、各集合について推定結果を評価する。画像上における物体と形状情報が表す形状との間の相対的な位置又は姿勢が変化した場合、生成部は複数の集合を繰り返し生成し、推定部は撮像装置の位置及び姿勢を繰り返し推定し、評価部は推定結果を繰り返し評価する。そして、推定部は、推定結果が繰り返し評価された結果に基づいて、撮像装置の位置及び姿勢を決定する。【選択図】図3

Description

本発明は、画像処理装置、画像処理方法、及び画像処理プログラムに関する。
近年、拡張現実(Augmented Reality, AR)技術を用いて画像を表示するシステムが普及してきている。AR技術の一例では、パーソナルコンピュータ(Personal Computer,PC)、携帯端末装置等に搭載したカメラを用いて物体が撮影され、物体の画像から3次元空間内におけるカメラの位置及び姿勢が推定される。そして、決定されたカメラの位置及び姿勢を基準にして、画像中の任意の位置にコンテンツ情報が重畳表示される。
AR技術の応用として、物体の3次元形状を表すCAD(Computer-Aided Design)データを画像に重畳表示する技術も知られている(例えば、特許文献1及び特許文献2を参照)。線の対応関係からカメラ又は物体の位置及び姿勢を決定する技術も知られている(例えば、非特許文献1及び非特許文献2を参照)。
特開2017−91078号公報 特開2018−67188号公報
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
物体の画像から検出された複数の特徴線と、その物体のCADデータに含まれる複数の線分を画像上に投影した複数の投影線とを対応付けることで、撮像装置の位置及び姿勢を推定することができる。しかしながら、ユーザが目視による手作業で特徴線と投影線との組み合わせを選択する場合、適切な組み合わせを選択する操作は困難である。このため、ユーザによる操作に時間がかかるとともに、特徴線と投影線との誤った組み合わせが選択される可能性もある。
なお、かかる問題は、CADデータから撮像装置の位置及び姿勢を推定する場合に限らず、物体の形状を表す他の形状情報から撮像装置の位置及び姿勢を推定する場合においても生ずるものである。
1つの側面において、本発明は、撮像装置が撮影した物体の画像と、その物体の形状情報とを用いて、撮像装置の位置及び姿勢を効率良く推定することを目的とする。
1つの案では、画像処理装置は、記憶部、検出部、投影部、生成部、推定部、及び評価部を含む。
記憶部は、物体の形状を表す複数の線分を含む形状情報を記憶する。検出部は、取得した物体の画像から、複数の特徴線を検出し、投影部は、形状情報に含まれる複数の線分を画像上に投影することで、複数の投影線を生成する。
生成部は、複数の特徴線の中からいずれかの特徴線を選択し、複数の投影線の中からいずれかの投影線を選択し、選択された特徴線と選択された投影線とを対応付けることで、特徴線と投影線との組み合わせを生成する。そして、生成部は、所定数の組み合わせをそれぞれ含む複数の集合を生成する。
推定部は、複数の集合各々を用いて、物体の画像を撮影した撮像装置の3次元空間内における位置及び姿勢を推定し、評価部は、複数の集合各々について、撮像装置の位置及び姿勢の推定結果を評価する。
撮像装置が撮影した画像上における物体と形状情報が表す形状との間の相対的な位置又は姿勢が変化した場合、生成部は複数の集合を繰り返し生成し、推定部は撮像装置の位置及び姿勢を繰り返し推定し、評価部は推定結果を繰り返し評価する。そして、推定部は、推定結果が繰り返し評価された結果に基づいて、撮像装置の位置及び姿勢を決定する。
実施形態によれば、撮像装置が撮影した物体の画像と、その物体の形状情報とを用いて、撮像装置の位置及び姿勢を効率良く推定することができる。
画像処理装置の機能的構成図である。 画像処理のフローチャートである。 画像処理装置の第1の具体例を示す機能的構成図である。 投影線と特徴線を示す図である。 距離に基づく計算方法を示す図である。 領域の面積に基づく計算方法を示す図である。 3Dモデルの線分と視点を示す図である。 3Dモデルの姿勢を示す図(その1)である。 3Dモデルの姿勢を示す図(その2)である。 投影線に対する移動操作を示す図である。 画像処理の第1の具体例を示すフローチャートである。 対応ペア生成処理のフローチャートである。 推定処理のフローチャートである。 変更処理のフローチャートである。 画像処理の第2の具体例を示すフローチャートである。 画像上に重畳表示された3Dモデルを示す図である。 推定部の動作を抑止する画像処理を示す図である。 画像処理装置の第2の具体例を示す機能的構成図である。 画像処理の第3の具体例を示すフローチャートである。 画像処理装置の第3の具体例を示す機能的構成図である。 操作量の時間変化を示す図である。 第1の感度調整方法を示す図である。 第2の感度調整方法を示す図である。 第3の感度調整方法を示す図である。 第4の感度調整方法を示す図である。 粗調整における操作ポインタを示す図である。 微調整における操作ポインタを示す図である。 画像処理の第4の具体例を示すフローチャート(その1)である。 画像処理の第4の具体例を示すフローチャート(その2)である。 感度調整処理のフローチャートである。 画像処理の第5の具体例を示すフローチャート(その1)である。 画像処理の第5の具体例を示すフローチャート(その2)である。 情報処理装置のハードウェア構成図である。
以下、図面を参照しながら、実施形態を詳細に説明する。
特許文献1の技術では、立体構造物を撮影した撮像画像から抽出されたエッジ線と、その立体構造物のモデル画像に含まれる稜線との組み合わせを用いて、画像とモデル画像とが重畳表示される。モデル画像は、立体構造物のCADデータを撮影画像上に投影することで生成され、稜線は、CADデータに含まれる線分を撮影画像上に投影した投影線に対応する。
この場合、ユーザが選択するエッジ線及び稜線は線分であるため、点よりも視認性が良い。このため、マウス等を用いてエッジ線及び稜線を選択する操作は、点を選択する操作よりも容易であり、ユーザの作業負荷が低減される。しかしながら、特許文献1には、エッジ線と稜線との適切な組み合わせを選択する方法は記載されていない。
特許文献1のように、物体の画像から検出された特徴線と、その物体のCADデータに含まれる線分を投影した投影線との組み合わせ(対応ペア)を、ユーザが目視による手作業で選択する場合、次のような問題が発生する。
ユーザが熟練者ではない場合、物体の画像とCADデータが表す物体のモデルとが表示された画面上でモデルを適切な向きに回転させる操作、及び特徴線と投影線との適切な組み合わせを選択する操作は、困難を伴う。例えば、カメラの位置及び姿勢の推定精度を向上させるためには、選択される複数の特徴線又は選択される複数の投影線に、3本の平行な特徴線又は3本の平行な投影線が含まれないことが望ましい。このため、特徴線と投影線との適切な組み合わせを選択する操作に時間がかかるとともに、特徴線と投影線との誤った組み合わせが選択される可能性もある。
一方、ユーザが対応ペアを選択する代わりに、複数の特徴線と複数の投影線との組み合わせを無作為に選択してカメラの位置及び姿勢を推定し、推定誤差が最小となる組み合わせを決定することも可能である。しかしながら、この場合、複数の特徴線と複数の投影線との組み合わせを変更しながら、カメラの位置及び姿勢を推定する処理が繰り返されるため、計算時間が長時間に及ぶことになる。物体が複雑な形状を有する場合は、計算時間がさらに長くなる。
図1は、実施形態の画像処理装置の機能的構成例を示している。図1の画像処理装置101は、記憶部111、検出部112、投影部113、生成部114、推定部115、及び評価部116を含む。記憶部111は、物体の形状を表す複数の線分を含む形状情報121を記憶する。検出部112、投影部113、生成部114、推定部115、及び評価部116は、記憶部111が記憶する形状情報121を用いて、画像処理を行う。
図2は、図1の画像処理装置101が行う画像処理の例を示すフローチャートである。まず、検出部112は、取得した物体の画像から、複数の特徴線を検出し(ステップ201)、投影部113は、形状情報に含まれる複数の線分を画像上に投影することで、複数の投影線を生成する(ステップ202)。
次に、生成部114は、複数の特徴線の中からいずれかの特徴線を選択し、複数の投影線の中からいずれかの投影線を選択し、選択された特徴線と投影線とを対応付けることで、特徴線と投影線との組み合わせを生成する(ステップ203)。そして、生成部114は、所定数の組み合わせをそれぞれ含む複数の集合を生成する(ステップ204)。
次に、推定部115は、複数の集合各々を用いて、物体の画像を撮影した撮像装置の3次元空間内における位置及び姿勢を推定し(ステップ205)、評価部116は、複数の集合各々について、撮像装置の位置及び姿勢の推定結果を評価する(ステップ206)。
撮像装置が撮影した画像上における物体と形状情報が表す形状との間の相対的な位置又は姿勢が変化した場合、生成部114は複数の集合を繰り返し生成し、推定部115は撮像装置の位置及び姿勢を繰り返し推定し、評価部116は推定結果を繰り返し評価する。そして、推定部115は、推定結果が繰り返し評価された結果に基づいて、撮像装置の位置及び姿勢を決定する(ステップ207)。
このような画像処理装置101によれば、撮像装置が撮影した物体の画像と、その物体の形状情報とを用いて、撮像装置の位置及び姿勢を効率良く推定することができる。
図3は、図1の画像処理装置101の第1の具体例を示している。図3の画像処理装置301は、記憶部311、画像取得部312、検出部313、投影部314、表示部315、変更部316、生成部317、推定部318、及び評価部319を含む。
記憶部311、検出部313、投影部314、生成部317、推定部318、及び評価部319は、図1の記憶部111、検出部112、投影部113、生成部114、推定部115、及び評価部116にそれぞれ対応する。
画像処理装置101は、タブレット、ノート型PC、スマートデバイス等の携帯端末装置であってもよく、デスクトップ型PC等の情報処理装置であってもよい。
撮像装置302は、例えば、CCD(Charge-Coupled Device)、CMOS(Complementary Metal-Oxide-Semiconductor)等の撮像素子を有するカメラであり、物体の画像321を撮影する。画像取得部312は、撮像装置302から画像321を取得して、記憶部311に格納する。撮影対象の物体は、道路、橋梁、建築物等の構造物であってもよく、船舶、車両、電子機器等の製造物であってもよい。
記憶部311は、撮像装置302が撮影した物体の形状を表す3次元モデル(3Dモデル)322を記憶している。3Dモデル322は、図1の形状情報121に対応し、例えば、物体のCADデータである。3Dモデル322は、物体の3次元形状を表す複数の頂点の頂点情報と、複数の線分の線分情報とを含む。頂点情報は、物体の各頂点の3次元座標を含み、線分情報は、各線分の両端の頂点である端点を示す識別情報を含む。
検出部313は、画像321に対するエッジ検出処理を行って、画像321から複数のエッジ線を検出し、検出したエッジ線を特徴線323として記憶部311に格納する。
投影部314は、3Dモデル322に含まれる複数の線分を画像321上に投影することで、複数の投影線を生成する。表示部315は、画像321を画面上に表示するとともに、表示された画像321上に複数の特徴線323を重畳表示する。さらに、表示部315は、投影部314が生成した複数の投影線を画面上に表示する。
生成部317は、複数の特徴線323の中から1本の特徴線を選択し、複数の投影線の中から1本の投影線を選択し、選択された特徴線と投影線とを対応付けることで、対応ペアを生成する。そして、生成部317は、複数の対応ペア集合324を生成して、記憶部311に格納する。各対応ペア集合324は、P個(Pは3以上の整数)の対応ペアを含む。
推定部318は、各対応ペア集合324を用いて、3次元空間内における撮像装置302の位置及び姿勢を推定し、推定した位置及び姿勢を推定結果325として記憶部311に格納する。
評価部319は、各対応ペア集合324を用いて求められた推定結果325を評価する。まず、評価部319は、複数の対応ペア集合324の中からいずれかの対応ペア集合324を評価用集合として選択する。次に、評価部319は、評価用集合に基づいて求められた推定結果325を用いて、各対応ペア集合324内の各対応ペアに含まれる投影線に対応する3Dモデル322の線分を、画像321上に再投影することで、評価用投影線を生成する。
そして、評価部319は、その対応ペアに含まれる特徴線と評価用投影線との間の誤差を計算し、計算された誤差から、その対応ペアに対する評価値326を求めて、記憶部311に格納する。評価値326としては、誤差が大きいほど小さくなる評価値を用いてもよく、誤差が大きいほど大きくなる評価値を用いてもよい。
誤差が大きいほど小さくなる評価値326を用いた場合、評価部319は、複数の対応ペア集合324に含まれるすべての対応ペアに対する評価値326の総和を計算し、計算した総和を閾値と比較する。いずれかの対応ペア集合324を選択することで得られた評価値326の総和が閾値よりも大きい場合、評価部319は、推定成功と判定する。そして、推定部318は、その対応ペア集合324に基づいて求められた推定結果325を、撮像装置302の位置及び姿勢に決定する。
投影部314は、決定された撮像装置302の位置及び姿勢を用いて、3Dモデル322に含まれる複数の線分を画像321上に投影することで、複数の投影線を再度生成し、表示部315は、それらの投影線を画像321上に重畳表示する。
一方、いずれの対応ペア集合324を選択しても評価値326の総和が閾値未満である場合、評価部319は、推定失敗と判定し、推定失敗を示す情報を出力する。推定失敗を示す情報は、通常の重畳表示とは異なる警告色で重畳表示された投影線であってもよく、画面上に表示されるマーク又はテキストメッセージであってもよく、音声メッセージであってもよい。
推定失敗を示す情報が出力された場合、ユーザは、画像321に写っている物体の位置及び姿勢と、3Dモデル322の位置及び姿勢とが近くなるように、物体、撮像装置302、又は画像321上の3Dモデル322のいずれかの位置又は姿勢を変更する。
ユーザが3Dモデル322の位置又は姿勢を変更する指示を入力した場合、変更部316は、入力された指示に従って、画像321上における3Dモデル322が表す形状の位置又は姿勢を変更する。これにより、画像321上に写っている物体と3Dモデル322が表す形状との間の相対的な位置又は姿勢を変化させることができる。
一方、ユーザは、物体又は撮像装置302を移動させることによって、物体と撮像装置302との間の相対的な位置又は姿勢が変化した後に、撮像装置302により物体を繰り返し撮影することもできる。この場合も、画像321上に写っている物体と3Dモデル322が表す形状との間の相対的な位置又は姿勢を変化させることができる。
こうして、物体と3Dモデル322が表す形状との間の相対的な位置又は姿勢が変化した場合、生成部317は、複数の対応ペア集合324を繰り返し生成する。また、推定部318は、撮像装置302の位置及び姿勢を繰り返し推定し、評価部319は、推定結果325を繰り返し評価する。
この場合、推定部318は、推定結果325が繰り返し評価された結果において、閾値よりも大きな評価値326の総和が得られた評価用集合を特定する。そして、推定部318は、特定された評価用集合に基づいて求められた推定結果325を、撮像装置302の位置及び姿勢に決定する。
図3の画像処理装置301によれば、ユーザが物体、撮像装置302、又は3Dモデル322の位置又は姿勢を変更することで、画像321上に写っている物体の位置及び姿勢と、3Dモデル322の位置及び姿勢とを近づけることが可能になる。画像321上における物体と3Dモデル322とがほぼ重なった状態で、対応ペア集合324を生成することで、信頼できる推定結果325を得ることができるため、短時間で撮像装置302の位置及び姿勢が決定される。したがって、ユーザの操作負荷が削減されるとともに、撮像装置302の位置及び姿勢を効率良く推定することが可能になる。
また、各対応ペア集合324から求められた推定結果325を、誤差が大きいほど小さくなる評価値326に基づいて評価することで、誤って対応付けられた対応ペア(誤対応ペア)の誤差の影響による推定失敗が回避される。したがって、誤対応ペアが対応ペア集合324に含まれていても、良い推定結果325を生成する対応ペア集合324を特定することができる。
誤差が大きいほど大きくなる評価値326を用いた場合は、通常、RANSAC(Random Sample Consensus)、最小メジアン法LMedS(Least Median of Squares)等のロバスト推定により、誤対応ペアを除去することができる。
生成部317は、複数の特徴線323又は複数の投影線の中から、1本の特徴線323又は1本の投影線を基準線分として選択し、基準線分の周辺に存在する投影線又は特徴線323の中から、基準線分と対応付けられる候補線分を絞り込む。生成部317は、例えば、角度による絞り込み、距離による絞り込み、位置関係による絞り込み等を行うことで、候補線分を絞り込むことができる。
角度による絞り込みでは、基準線分と候補線分との間の角度が所定値以上の場合、その候補線分が除外される。距離による絞り込みでは、基準線分と候補線分との間の距離が所定値以上の場合、その候補線分が除外される。位置関係による絞り込みでは、候補線分の位置が基準線分の位置から基準線分の方向にずれている場合、その候補線分が除外される。
図4は、画像321上における物体の位置及び姿勢と3Dモデル322の位置及び姿勢とが近い場合の投影線と特徴線の例を示している。生成部317は、例えば、投影線401を基準線分として選択し、投影線401の周辺に存在する特徴線411〜特徴線415の中から候補線分を絞り込む。
絞り込み条件の一例として、角度による絞り込みでは、投影線401と特徴線412との間の角度が15度以上であるため、特徴線412が除外される。距離による絞り込みでは、投影線401と特徴線411との間の距離が、投影線401の長さの1/4以上であるため、特徴線411が除外される。位置関係による絞り込みでは、特徴線413の位置が投影線401の位置から投影線401の方向にずれているため、特徴線413が除外される。
生成部317は、残された特徴線414及び特徴線415のうち、投影線401までの距離が最小となる特徴線415を選択し、投影線401と特徴線415とを対応付けて、対応ペアを生成する。
このように、画像321上における物体の位置及び姿勢と3Dモデル322の位置及び姿勢とが近い場合、適切な絞り込みを行うことで、容易に対応ペアを生成することができる。
評価部319は、例えば、複数の対応ペア集合324の中から、誤差耐性の良い順に対応ペア集合324を選択し、推定部318は、選択された対応ペア集合324を用いて、撮像装置302の位置及び姿勢を推定する。誤差耐性は、特徴線323の検出誤差に対する推定処理の耐性を表し、例えば、非特許文献2に記載された解析方法により求めることができる。
通常、撮像装置302の位置及び姿勢は、4個以上の対応ペアを用いて確定することができるが、3個の対応ペアのみを用いた場合、Bas-relief不定性の一種であるスケール不定性又は奥行き反転(depth reversal)の不定性が、推定結果325に含まれる。しかし、例えば、非特許文献2に記載された解析方法を用いると、スケール不定性が生じる対応ペア集合324は誤差耐性が低くなるため、除外することができる。また、画像321上における物体の位置及び姿勢と3Dモデル322の位置及び姿勢とが近い場合、奥行き反転の推定結果325は、投影線生成時の3Dモデル322の位置及び姿勢と大きく異なるため、容易に除外することができる。したがって、3個の対応ペアのみを用いて推定結果325を確定することが可能である。
評価部319は、例えば、非特許文献1に記載された計算方法により、特徴線と投影線の間の距離に基づいて、特徴線と投影線の間の誤差を計算することができる。また、評価部319は、特徴線と投影線の間の領域の面積に基づいて誤差を計算することもできる。
図5は、特徴線と投影線との間の距離に基づく計算方法の例を示している。複数の対応ペア集合324に含まれる対応ペアの総数がN個(Nは3以上の整数)であり、i番目(i=1〜N)の対応ペアに含まれる投影線が線分501であり、特徴線が線分502である場合を想定する。
線分502の両端から線分501上へ下ろした垂線503及び垂線504の長さを、それぞれ、Li1及びLi2とする。この場合、Li1及びLi2の和を、特徴線と投影線の間の誤差Eiとして用いることができる。
Ei=Li1+Li2 (1)
Li1及びLi2が短いほど、誤差Eiは小さくなり、線分502が線分501に重なっている場合、誤差Eiは0になる。
図6は、特徴線と投影線の間の領域の面積に基づく計算方法の例を示している。線分501の両端と線分502の両端をそれぞれ結ぶ線分601及び線分602を定義した場合、線分501、線分502、線分601、及び線分602によって囲まれた領域の面積Aiを、誤差Eiとして用いることができる。
Ei=Ai (2)
面積Aiが小さいほど、誤差Eiは小さくなり、線分502が線分501に重なっている場合、誤差Eiは0になる。
評価部319は、例えば、次式により、誤差Eiを用いてi番目の対応ペアに対する評価値Score(i)を計算することができる。
Score(i)=1 (Ei<T1) (3)
Score(i)=(T1/Ei) (Ei≧T1) (4)
T1は、シミュレーション等によって決められた閾値を表す。式(3)及び式(4)によれば、Ei<T1である場合、Score(i)=1となり、Ei≧T1である場合、Score(i)≦1となる。したがって、Eiが大きいほど、Score(i)は小さくなる。すべての対応ペアに対するScore(i)の総和Sは、次式により計算される。
Figure 2020098575
評価部319は、総和Sを閾値T2と比較することで、推定が成功したか否かを判定する。いずれかの対応ペア集合324を選択することで得られた総和Sが閾値T2以上である場合、推定成功と判定され、いずれの対応ペア集合324を選択しても総和Sが閾値T2未満である場合、推定失敗と判定される。閾値T2は、例えば、対応ペアの総数Nを用いて、次式により計算される。
T2=Tmin+k*(N−Nmin) (6)
式(6)において、Tminは、T2の最小値を表し、Nminは、Nの最小値を表す。Tmin、Nmin、及び係数kは、シミュレーション等によって決定されるパラメータである。
式(3)及び式(4)のScore(i)を用いることで、総和Sに対するEiの異常値の寄与が低く抑えられる。したがって、誤対応ペアの誤差の影響による推定失敗が回避され、推定が成功したか否かの判定精度が向上する。
ところで、ユーザは、3次元空間内で物体又は撮像装置302を自在に移動させることで、それらの位置又は姿勢を変更することができる。しかし、画像321上の3Dモデル322の位置又は姿勢を変更する場合、ユーザは、マウス等の入力装置を用いて、画像321上で3Dモデル322の平行移動及び回転を指示するため、直感的に指示を入力することが困難である。
そこで、変更部316は、3Dモデル322の回転軸を所定の直線に制限し、入力された指示に従って、その回転軸の周りに3Dモデル322を回転させることで、3Dモデル322の位置又は姿勢を変更する。例えば、回転軸としては、3Dモデル322に含まれる複数の線分の中から選択された線分、又は選択された線分と3Dモデル322に対する視点とを含む平面の法線が用いられる。
図7は、3Dモデル322の線分と視点の例を示している。図7の横軸は、画像321の水平方向を表し、縦軸は、画像321の垂直方向を表す。3Dモデル701は、視点703を投影中心として画像321上に投影された3Dモデルであり、線分702は、3Dモデル322に含まれる複数の線分の中から選択された線分である。この場合、線分702、又は線分702及び視点703を含む平面の法線が、回転軸として指定される。
図8A及び図8Bは、指定された回転軸の周りに回転する3Dモデル322の姿勢の例を示している。図7の線分702の周りの回転角度をθ1とし、線分702及び視点703を含む平面上で線分702の中点を通る法線の周りの回転角度をθ2とする。この場合、図8Aの姿勢P1〜姿勢P3、姿勢P11〜姿勢P13、姿勢P21〜姿勢P23、及び姿勢P31〜姿勢P33に対応するθ1及びθ2は、以下の通りである。
P1:θ1=0°,θ2=0°
P2:θ1=60°,θ2=0°
P3:θ1=120°,θ2=0°
P11:θ1=0°,θ2=90°
P12:θ1=60°,θ2=90°
P13:θ1=120°,θ2=90°
P21:θ1=0°,θ2=180°
P22:θ1=60°,θ2=180°
P23:θ1=120°,θ2=180°
P31:θ1=0°,θ2=270°
P32:θ1=60°,θ2=270°
P33:θ1=120°,θ2=270°
図8Bの姿勢P4〜姿勢P6、姿勢P14〜姿勢P16、姿勢P24〜姿勢P26、及び姿勢P34〜姿勢P36に対応するθ1及びθ2は、以下の通りである。
P4:θ1=180°,θ2=0°
P5:θ1=240°,θ2=0°
P6:θ1=300°,θ2=0°
P14:θ1=180°,θ2=90°
P15:θ1=240°,θ2=90°
P16:θ1=300°,θ2=90°
P24:θ1=180°,θ2=180°
P25:θ1=240°,θ2=180°
P26:θ1=300°,θ2=180°
P34:θ1=180°,θ2=270°
P35:θ1=240°,θ2=270°
P36:θ1=300°,θ2=270°
図8A及び図8Bから分かるように、3Dモデル322が線分702の周りに回転しても、画像321上における線分702の投影線の方向及び長さは変化しない。また、3Dモデル322が線分702及び視点703を含む平面の法線の周りに回転しても、画像321上における線分702の投影線の方向は変化しない。
したがって、3Dモデル322の回転軸を、線分702、又は線分702及び視点703を含む平面の法線に制限することで、ユーザは、容易に3Dモデル322を回転させて、画像321に写っている物体に重ね合わせることができる。
図9は、3Dモデル322を回転させる場合の投影線に対する移動操作の例を示している。投影線901は、選択された線分の投影線である。マウス等の入力装置により、ユーザが投影線901に対して、移動ベクトル911が示す移動操作を行うと、変更部316は、移動ベクトル911を、投影線901に平行な成分912と投影線901に垂直な成分913とに分解する。
次に、変更部316は、垂直な成分913を、選択された線分の周りの回転量Δθ1に変換し、平行な成分912を、選択された線分及び視点を含む平面の法線の周りの回転量Δθ2に変換する。この場合、成分913に比例する回転量をΔθ1として用い、成分912に比例する回転量をΔθ2として用いることができる。そして、変更部316は、3Dモデル322を選択された線分の周りにΔθ1だけ回転させ、法線の周りにΔθ2だけ回転させる。
図10は、図3の画像処理装置301が行う画像処理の第1の具体例を示すフローチャートである。まず、画像取得部312は、撮像装置302から画像321を取得し(ステップ1001)、検出部313は、画像321から複数の特徴線323を検出する(ステップ1002)。
また、投影部314は、3次元空間内における3Dモデル322の位置及び姿勢を取得し(ステップ1003)、3Dモデル322の複数の線分を画像321上に投影して、複数の投影線を生成する(ステップ1004)。次に、投影部314は、生成された投影線に対する隠線処理を行って、隠線を除去する(ステップ1005)。そして、表示部315は、画像321、複数の特徴線323、及び3Dモデル322を表す複数の投影線を画面上に表示する。
次に、生成部317は、対応ペア生成処理を行って、複数の特徴線323及び複数の投影線から複数の対応ペアを生成し(ステップ1006)、それらの対応ペアから複数の対応ペア集合324を生成する(ステップ1007)。そして、推定部318は、複数の対応ペア集合324を用いて推定処理を行うことで、撮像装置302の位置及び姿勢を推定し、推定結果325を生成する(ステップ1008)。
次に、評価部319は、推定処理において推定が成功したか否か(OKか否か)を判定し(ステップ1009)、推定が失敗した場合(ステップ1009,NO)、推定失敗を示す情報を出力する。この場合、ユーザは、物体、撮像装置302、又は画像321上の3Dモデル322のいずれかの位置又は姿勢を変更し、画像処理装置301は、ステップ1001以降の処理を繰り返す。そして、推定が成功した場合(ステップ1009,YES)、画像処理装置301は、処理を終了する。
図11は、図10のステップ1006における対応ペア生成処理の例を示すフローチャートである。まず、生成部317は、各特徴線323と各投影線との間の距離及び角度を計算する(ステップ1101)。
次に、生成部317は、1本の特徴線323又は1本の投影線を基準線分として選択して、候補線分に対する角度による絞り込みを行う(ステップ1102)。次に、生成部317は、距離による絞り込みを行い(ステップ1103)、位置関係による絞り込みを行う(ステップ1104)。そして、生成部317は、残された候補線分のうち、基準線分までの距離が最小となる候補線分を選択し、基準線分と選択された候補線分とを対応付けて、対応ペアを生成する(ステップ1105)。
生成部317は、複数の基準線分それぞれに対して、ステップ1102〜ステップ1105の処理を行うことで、複数の対応ペアを生成する。ただし、画面上に表示された投影線に対応する物体上の線分が特徴線323として検出されなかったり、途切れた複数の特徴線323として検出された場合、その投影線を含む対応ペアが生成されないこともある。
図12は、図10のステップ1008における推定処理の例を示すフローチャートである。まず、評価部319は、複数の対応ペア集合324の中から、誤差耐性の良い順に、1つの対応ペア集合324を評価用集合として選択する(ステップ1201)。そして、推定部318は、評価用集合を用いて撮像装置302の位置及び姿勢を推定し、推定結果325を生成する。
次に、評価部319は、生成された推定結果325を用いて、複数の対応ペア集合324に含まれるN本の投影線に対応する線分を、画像321上に再投影することで、N本の評価用投影線を生成する(ステップ1202)。
次に、評価部319は、N本の投影線に対応付けられているN本の特徴線と、N本の評価用投影線とから、誤差E1〜誤差ENを計算する(ステップ1203)。次に、評価部319は、誤差E1〜誤差ENを用いて、式(3)及び式(4)によりScore(1)〜Score(N)を計算する(ステップ1204)。
次に、評価部319は、Score(1)〜Score(N)を用いて、式(5)により総和Sを計算し、総和Sを閾値T2と比較する(ステップ1206)。総和Sが閾値T2未満である場合(ステップ1206,NO)、評価部319は、すべての対応ペア集合324を選択したか否かをチェックする(ステップ1207)。未選択の対応ペア集合324が残っている場合(ステップ1207,NO)、画像処理装置301は、次に良い誤差耐性を有する対応ペア集合324について、ステップ1201以降の処理を繰り返す。
総和Sが閾値T2以上である場合(ステップ1206,YES)、推定部318は、評価用集合に基づいて求められた推定結果325を、撮像装置302の位置及び姿勢に決定する。そして、投影部314は、決定された撮像装置302の位置及び姿勢を用いて、3Dモデル322に含まれる複数の線分を画像321上に投影し、表示部315は、3Dモデル322を画像321上に重畳表示する。この場合、評価部319は、図10のステップ1009において、推定成功と判定する。
一方、すべての対応ペア集合324を選択した場合(ステップ1207,YES)、画像処理装置301は、処理を終了する。この場合、評価部319は、図10のステップ1009において、推定失敗と判定する。
図13は、図3の画像処理装置301が行う変更処理の例を示すフローチャートである。図13の変更処理は、図10の画像処理とは独立に実行される。まず、変更部316は、3次元空間内における3Dモデル322の位置及び姿勢を取得し(ステップ1301)、ユーザによって入力された、3Dモデル322に対する変更指示を受け付ける(ステップ1302)。
次に、変更部316は、3Dモデル322の回転操作に対して、拘束条件を適用するか否かを判定する(ステップ1303)。例えば、いずれかの線分を選択する選択指示が変更指示に含まれている場合、拘束条件を適用すると判定され、そのような選択指示が変更指示に含まれていない場合、拘束条件を適用しないと判定される。
拘束条件を適用する場合(ステップ1303,YES)、変更部316は、拘束ありの変更量を計算する(ステップ1304)。例えば、拘束条件が図8A及び図8Bに示した回転軸の制限を含んでいる場合、変更部316は、図9に示したように、変更指示に含まれている移動操作に従って、移動ベクトルを、選択された線分の投影線に平行な成分と垂直な成分とに分解する。そして、変更部316は、選択された線分の周りの回転量Δθ1と、選択された線分及び視点を含む平面の法線の周りの回転量Δθ2とを計算する。
一方、拘束条件を適用しない場合(ステップ1303,NO)、変更部316は、拘束なしの変更量を計算する(ステップ1305)。この場合、変更部316は、変更指示に含まれている回転操作に従って回転量を計算する。
次に、変更部316は、計算された変更量を用いて、3Dモデル322の位置及び姿勢を変更する(ステップ1306)。ステップ1304において回転量Δθ1及び回転量Δθ2が計算された場合、変更部316は、3Dモデル322を選択された線分の周りにΔθ1だけ回転させ、法線の周りにΔθ2だけ回転させる。一方、ステップ1305において回転量が計算された場合、変更部316は、その回転量だけ3Dモデル322を回転させる。そして、変更部316は、ステップ1301以降の処理を繰り返す。
なお、受け付けた変更指示に平行移動が含まれている場合、変更部316は、ステップ1304又はステップ1305において、平行移動の移動量を計算し、ステップ1306において、その移動量だけ3Dモデル322を平行移動させる。
こうして、3Dモデル322の位置又は姿勢が変更された場合、図10のステップ1003において、投影部314は、変更後の3Dモデル322の位置及び姿勢を取得する。
図14は、図3の画像処理装置301が行う画像処理の第2の具体例を示すフローチャートである。ステップ1401〜ステップ1409の処理は、図10のステップ1001〜ステップ1009の処理と同様である。
推定が失敗した場合(ステップ1409,NO)、評価部319は、推定失敗を示す情報を出力する。この場合、ユーザは、物体及び撮像装置302の位置及び姿勢を変更することなく、画像321上の3Dモデル322の位置又は姿勢を変更し、画像処理装置301は、ステップ1403以降の処理を繰り返す。したがって、画像321は更新されず、同じ画像321を用いてステップ1403〜ステップ1409の処理が行われる。
ところで、図14の画像処理において、3Dモデル322に平行な線分が多く含まれている場合、ユーザが3Dモデル322の位置又は姿勢を変更する変更操作を行っている途中で、多数の誤対応ペアが生成されることがある。このような場合、特徴線323と、3Dモデル322に含まれる線分の投影線との間で誤対応が生じているにもかかわらず、総和Sが閾値T2以上となるため、誤った推定結果325が生成されて処理が終了してしまう。
図15は、推定結果325に基づいて画像321上に重畳表示された3Dモデル322の例を示している。この例では、物体の画像1501に、水平方向に平行な4本の特徴線と、垂直方向に平行な4本の特徴線とが含まれている。同様に、その物体の3Dモデル322を画像1501上に投影した図形1502〜図形1504にも、水平方向に平行な4本の投影線と、垂直方向に平行な4本の投影線とが含まれている。
図15(a)は、正しい推定結果325に基づいて、画像1501上に重畳された図形1502の例を示している。図15(b)は、誤った推定結果325に基づいて、画像1501内の右上の部分領域に重畳された図形1503の例を示している。図15(c)は、誤った推定結果325に基づいて、画像1501内の中央の部分領域に重畳された図形1504の例を示している。
図15(b)及び図15(c)のような推定結果325が生成されることを防止するためには、ユーザが変更操作を行っている途中で推定部318の動作を抑止する機能を追加することが効果的である。
図16は、推定部318の動作を抑止する画像処理の例を示している。図形1601〜図形1604は、3Dモデル322を画像1501上に投影した図形を表している。まず、画像1501上に図形1601が重畳表示されている状態で、ユーザが3Dモデル322の位置を変更することで、図形1601が図形1602に変化する。次に、ユーザが3Dモデル322の奥行方向の位置を変更することで、図形1602が図形1603に変化する。
ここで、画像1501内の右上の部分領域に図形1603が対応付けられると、図15(b)に示したように、誤った推定結果325が生成される可能性があるため、ユーザは、推定部318の動作を抑止する。これにより、ユーザは、3Dモデル322の奥行方向の位置をさらに変更することが可能になり、図形1603が図形1604に変化する。図形1604は画像1501上に正しく重畳表示されているため、ユーザは、推定部318の抑止を解除する。これにより、正しい推定結果325が生成される。
図17は、図1の画像処理装置101の第2の具体例を示している。図17の画像処理装置1701は、図3の画像処理装置301に推定制御部1711を追加した構成を有し、ユーザの明示的な抑止指示に従って推定部318の動作を抑止する。
推定制御部1711は、3Dモデル322の位置又は姿勢の変更を変更部316が行っている所定期間において、推定部318が撮像装置302の位置及び姿勢を推定する動作を抑止する。推定部318の動作を抑止することにより、ユーザが変更操作を行っている途中で生成される誤対応ペアに基づいて、誤った推定結果325が生成されることがなくなる。このため、ユーザが意図しないずれた位置で処理が終了することを防止できる。
例えば、推定制御部1711は、ユーザから抑止指示が入力された場合に、推定部318の動作を抑止する。抑止指示としては、コントロールキーのような所定のキーを押下するキー操作を用いることができる。この場合、ユーザが所定のキーを押下しながら変更操作を行うことで、推定部318の動作が抑止される。これにより、ユーザは、所望のタイミングで、明示的に推定部318の動作を抑止することができる。
図18は、図17の画像処理装置1701が行う画像処理の第3の具体例を示すフローチャートである。ステップ1801〜ステップ1805及びステップ1807〜ステップ1810の処理は、図14のステップ1401〜ステップ1409の処理と同様である。
投影部314が隠線処理を行い、表示部315が画像321、複数の特徴線323、及び3Dモデル322を表す複数の投影線を画面上に表示した後、推定制御部1711は、ユーザから抑止指示が入力されたか否かをチェックする(ステップ1806)。
抑止指示が入力された場合(ステップ1806,YES)、推定制御部1711は、推定部318の動作を抑止し、画像処理装置1701は、ステップ1803以降の処理を繰り返す。一方、抑止指示が入力されていない場合(ステップ1806,NO)、推定制御部1711は、推定部318の抑止を解除し、画像処理装置1701は、ステップ1807以降の処理を行う。
図19は、図1の画像処理装置101の第3の具体例を示している。図19の画像処理装置1901は、図3の画像処理装置301に推定制御部1911、調整段階判定部1912、及び感度調整部1913を追加した構成を有し、推定部318の動作を自動的に抑止する。
推定制御部1911は、3Dモデル322の位置又は姿勢の変更を変更部316が行っている所定期間において、推定部318が撮像装置302の位置及び姿勢を推定する動作を抑止する。推定部318の動作を抑止することにより、ユーザが変更操作を行っている途中で生成される誤対応ペアに基づいて、誤った推定結果325が生成されることがなくなる。このため、ユーザが意図しないずれた位置で処理が終了することを防止できる。
調整段階判定部1912は、3Dモデル322の位置又は姿勢の粗調整又は微調整のいずれを変更部316が行っているかを判定する。推定制御部1911は、変更部316が粗調整を行っている場合、推定部318の動作を抑止し、変更部316が微調整を行っている場合、推定部318の動作を抑止しない。これにより、ユーザが大まかな変更操作を行っている間は推定結果325の生成を抑止し、ユーザが細かな変更操作を開始した時点で推定結果325を生成させることができる。
感度調整部1913は、変更部316が微調整を行っている場合、変更操作に対する3Dモデル322の位置又は姿勢の変更感度Gを、変更部316が粗調整を行っている場合よりも低下させる。
例えば、撮像装置302のカメラ座標系の3次元空間内の位置を(X,Y,Z)とし、画面上における位置を(x,y)とすると、座標X及び座標Yは、次式により表すことができる。
X=(x−cx)*Z/f (11)
Y=(y−cy)*Z/f (12)
Zは、カメラ座標系における奥行方向の座標を表し、fは、焦点距離を表し、(cx,cy)は、画面上における画像中心の座標を表す。f及び(cx,cy)は、撮像装置302の内部パラメータである。
この場合、画面上における操作ポインタの操作量LPと、3次元空間内における3Dモデル322の移動量LMとの間の関係を、移動量係数C及び変更感度Gを用いて、次式により表すことができる。
LM=LP*C*G (13)
操作ポインタとしては、画面上に表示されるマウスカーソル等を用いることができる。操作量LPは、x方向又はy方向における操作ポインタの移動量(画素数)を表し、移動量LMは、X方向又はY方向における3Dモデル322の移動量を表す。移動量係数CをZ/fに設定した場合、G=1のときに、操作量LPと移動量LMとが一致する。
Z方向の移動量については、定数Qを用いて、移動量係数Cを(Z/f)*Qに設定することで、奥行方向の距離が変化してもユーザの操作感は変化しない。定数Qは、実験により決定することができる。
3Dモデル322の粗調整が行われている間は、変更感度Gを大きな値に設定することで、1回の変更操作により、3Dモデル322を大きく移動させることができる。また、微調整が開始された後は、変更感度Gを小さな値に変更することで、3Dモデル322を少しずつ移動させることができる。
図20は、操作量の時間変化の例を示している。図20の横軸は時間を表し、縦軸は操作量を表す。曲線2001は、操作量の時間変化を表す。曲線2001上の期間2011では操作量の変化が大きく、粗調整の変更操作が行われている。一方、曲線2001上の期間2012では操作量の変化が小さく、微調整の変更操作が行われている。
感度調整部1913は、ユーザが行う変更操作の操作量を記録し、操作量の時間変化に基づいて変更感度Gを調整する。変更感度Gの調整方法としては、例えば、以下のような方法が考えられる。
(A)感度調整部1913は、操作初期の一定期間又は現在時刻よりも規定時間前の一定期間の操作量に対する、直近の一定期間の操作量の比率を計算する。そして、感度調整部1913は、計算された比率に応じて変更感度Gを変更する。
(B)感度調整部1913は、直近の一定期間の操作量に応じて変更感度Gを変更する。
図20の期間2011は、操作初期の一定期間に対応し、期間2012は、直近の一定期間に対応する。
図21は、第1の感度調整方法を示している。図21の横軸は、操作初期の1秒間の操作量に対する直近の1秒間の操作量の比率を表し、縦軸は変更感度Gを表す。曲線2101は、操作量の比率に応じた変更感度Gの値を表す。
操作量の比率がr1以下である場合、変更感度Gはg0であり、操作量の比率がr2以上である場合、変更感度Gは1である。操作量の比率がr1〜r2の区間では、変更感度Gがg0から1まで線形に増加する。一例として、g0は0.1〜0.3の範囲の数値であってもよい。
r1及びr2は、画像321のサイズから求めた比率であってもよく、画像321のサイズに依らない固定値であってもよい。一例として、r1=10%及びr2=50%であってもよい。r1=r2として、変更感度Gをg0又は1の2値に設定してもよい。
図22は、第2の感度調整方法を示している。図22の横軸は、操作初期の1秒間の操作量に対する直近の1秒間の操作量の比率を表し、縦軸は変更感度Gを表す。曲線2201は、操作量の比率に応じた変更感度Gの値を表す。この場合、操作量の比率がr1〜r2の区間では、変更感度Gがg0から1まで階段状に増加する。操作量の比率がr1〜r2の区間における変更感度Gとして、対数関数のような他の非線形関数を用いてもよい。
図23は、第3の感度調整方法を示している。図23の横軸は、直近の1秒間の操作量を表し、縦軸は変更感度Gを表す。曲線2301は、操作量に応じた変更感度Gの値を表す。
操作量がh1画素以下である場合、変更感度Gはg0であり、操作量がh2画素以上である場合、変更感度Gは1である。操作量がh1画素〜h2画素の区間では、変更感度Gがg0から1まで線形に増加する。
h1及びh2は、画像321のサイズから求めた画素数であってもよく、画像321のサイズに依らない固定値であってもよい。一例として、h1は画像321の幅の5%の画素数であってもよく、h2は画像321の幅の10%の画素数であってもよい。h1=h2として、変更感度Gをg0又は1の2値に設定してもよい。
図24は、第4の感度調整方法を示している。図24の横軸は、直近の1秒間の操作量を表し、縦軸は変更感度Gを表す。曲線2401は、操作量に応じた変更感度Gの値を表す。この場合、操作量がh1画素〜h2画素の区間では、変更感度Gがg0から1まで階段状に増加する。操作量がh1画素〜h2画素の区間における変更感度Gとして、対数関数のような他の非線形関数を用いてもよい。
図21から図24に示したように、操作量の時間変化に基づいて変更感度Gを調整することで、粗調整又は微調整のいずれが行われているかに応じて、適切な変更感度Gを設定することが可能になる。
ユーザが変更操作を行っているとき、操作ポインタの表示形態を変化させて、変更感度Gを表示することもできる。この場合、表示部315は、画面上に変更操作の操作ポインタを表示し、変更感度Gに応じて操作ポインタの表示形態を変化させる。これにより、ユーザは、変更感度Gの変化を視覚的に認識することができる。表示形態の変化としては、大きさ、形状、色等の変化を用いることができる。
図25は、粗調整における操作ポインタの例を示している。図形2501〜図形2503は、3Dモデル322を画像1501上に投影した図形を表している。
図25(a)は、画像1501からずれた位置に図形2501が表示されているときの操作ポインタ2511を示している。図25(b)は、画像1501内の右上の部分領域に図形2502が重畳されているときの操作ポインタ2512を示している。図25(c)は、画像1501内の右上の部分領域に、図形2502よりも大きな図形2503が重畳されているときの操作ポインタ2513を示している。操作ポインタ2511〜操作ポインタ2513は、いずれも同じ大きさで表示されている。
図26は、微調整における操作ポインタの例を示している。図形2601は、3Dモデル322を画像1501上に投影した図形を表している。微調整における操作ポインタ2611は、粗調整における操作ポインタ2511〜操作ポインタ2513よりも小さなサイズで表示されている。
表示形態の変化として大きさの変化を用いた場合、変更感度Gに応じて操作ポインタの大きさを連続的に変化させてもよい。同様に、表示形態の変化として形状又は色の変化を用いた場合、変更感度Gに応じて操作ポインタの形状又は色を連続的に変化させてもよい。
変更部316は、ユーザの変更操作に応じて3Dモデル322の位置又は姿勢を変更し、調整段階判定部1912は、変更操作の操作量に基づいて、変更部316が粗調整又は微調整のいずれを行っているかを判定する。
例えば、調整段階判定部1912は、上記(A)の感度調整方法における操作量の比率又は上記(B)の感度調整方法における直近の一定期間の操作量が、閾値よりも大きい場合、変更部316が粗調整を行っていると判定する。そして、調整段階判定部1912は、操作量の比率又は直近の一定期間の操作量が閾値以下である場合、変更部316が微調整を行っていると判定する。
微調整が行われた結果、推定部318によって撮像装置302の位置及び姿勢の複数の候補が生成された場合、ユーザは、それらの候補のうちいずれかの候補を指定することができる。この場合、表示部315は、複数の候補それぞれに対応する3Dモデル322を示す図形を画像321上に重畳して表示し、ユーザは、それらの図形のいずれかを選択する。そして、推定部318は、ユーザによって選択された図形に基づいて、撮像装置302の位置及び姿勢を決定する。
撮像装置302の位置及び姿勢の複数の候補が生成された場合、推定部318がいずれかの候補を特定し、ユーザが特定された候補を別の候補に変更することもできる。この場合、表示部315は、推定部318によって特定された候補に対応する3Dモデル322を示す図形を画像321上に重畳して表示するとともに、複数の候補の存在を示す候補情報を表示する。
ユーザから候補変更指示が入力された場合、表示部315は、複数の候補それぞれに対応する3Dモデル322を示す図形を画像321上に重畳して表示し、ユーザは、それらの図形のいずれかを選択する。そして、推定部318は、ユーザによって選択された図形に基づいて、撮像装置302の位置及び姿勢を決定する。
図27A及び図27Bは、図19の画像処理装置1901が行う画像処理の第4の具体例を示すフローチャートである。図27A及び図27Bの画像処理では、ユーザによって、撮像装置302の位置及び姿勢の複数の候補のうちいずれかの候補が指定される。ステップ2701〜ステップ2705及びステップ2707〜ステップ2710の処理は、図14のステップ1401〜ステップ1409の処理と同様である。
ただし、ステップ2709における推定処理は、図12の推定処理とは少し異なっている。ステップ2709において、評価部319は、すべての対応ペア集合324を順に選択して総和Sを計算し、計算された総和Sを閾値T2と比較する。そして、総和Sが閾値T2以上となる1つ又は複数の対応ペア集合324が存在する場合、評価部319は、ステップ2710において、推定成功と判定する。
総和Sが閾値T2以上となる対応ペア集合324が1つのみである場合、推定部318は、その対応ペア集合324に基づいて求められた推定結果325を、撮像装置302の位置及び姿勢に決定する。一方、総和Sが閾値T2以上となる複数の対応ペア集合324が存在する場合、推定部318は、それらの対応ペア集合324に基づいて求められた複数の推定結果325を、撮像装置302の位置及び姿勢の複数の候補に決定する。
投影部314が隠線処理を行い、表示部315が画像321、複数の特徴線323、及び3Dモデル322を表す複数の投影線を画面上に表示した後、調整段階判定部1912は、変更部316が微調整を行っているか否かを判定する(ステップ2706)。
変更部316が粗調整を行っている場合(ステップ2706,NO)、推定制御部1911は、推定部318の動作を抑止し、画像処理装置1901は、ステップ2703以降の処理を繰り返す。一方、変更部316が微調整を行っている場合(ステップ2706,YES)、推定制御部1911は、推定部318の抑止を解除し、画像処理装置1901は、ステップ2707以降の処理を行う。
推定が成功した場合(ステップ2710,YES)、推定部318は、複数の候補が生成されたか否かをチェックする(ステップ2711)。複数の候補が生成された場合(ステップ2711,YES)、表示部315は、それらの候補それぞれに対応する3Dモデル322を示す図形を画像321上に重畳して表示する(ステップ2712)。
次に、推定部318は、複数の図形の中からユーザによって選択された図形に対応する候補の推定結果325を、撮像装置302の位置及び姿勢に決定する(ステップ2713)。そして、投影部314は、決定された撮像装置302の位置及び姿勢を用いて、3Dモデル322に含まれる複数の線分を画像321上に投影し、表示部315は、3Dモデル322を画像321上に重畳表示する。
一方、総和Sが閾値T2以上となる対応ペア集合324が1つのみであり、撮像装置302の位置及び姿勢がすでに決定されている場合(ステップ2711,NO)、画像処理装置1901は、処理を終了する。
図27A及び図27Bの画像処理によれば、微調整によって生成された複数の候補の中から、ユーザ自身が最適な候補を指定して、撮像装置302の位置及び姿勢を決定することが可能になる。
図28は、図19の画像処理装置1901が行う感度調整処理のフローチャートである。図28の感度調整処理は、図27A及び図27Bの画像処理とは独立に実行される。まず、感度調整部1913は、ユーザが行う変更操作の操作量に基づいて、変更感度Gを調整する(ステップ2801)。そして、表示部315は、調整された変更感度Gに合わせて操作ポインタの表示形態を変更することで、変更感度Gを表示する(ステップ2802)。
次に、変更部316は、図13のステップ1301〜ステップ1306と同様の処理を行うことで、3Dモデル322の位置及び姿勢を計算し(ステップ2803)、感度調整部1913は、処理を終了するか否かを判定する(ステップ2804)。感度調整部1913は、図27A及び図27Bの画像処理が終了した場合、処理を終了すると判定し、画像処理が終了していない場合、処理を終了しないと判定する。
処理を終了しないと判定された場合(ステップ2804,NO)、画像処理装置1901は、ステップ2801以降の処理を繰り返す。処理を終了すると判定された場合(ステップ2804,YES)、画像処理装置1901は、処理を終了する。
図29A及び図29Bは、図19の画像処理装置1901が行う画像処理の第5の具体例を示すフローチャートである。図29A及び図29Bの画像処理では、推定部318によって、撮像装置302の位置及び姿勢の複数の候補のうちいずれかの候補が特定される。ステップ2901〜ステップ2910の処理は、図27Aのステップ2701〜ステップ2710の処理と同様である。
推定が成功した場合(ステップ2910,YES)、推定部318は、複数の候補が生成されたか否かをチェックする(ステップ2911)。複数の候補が生成された場合(ステップ2911,YES)、推定部318は、複数の候補のうち、最大の総和Sを有する対応ペア集合324に対応する候補を特定する。
そして、表示部315は、特定された候補に対応する3Dモデル322を示す図形を画像321上に重畳して表示するとともに、複数の候補の存在を示す候補情報及び変更ボタンを表示する(ステップ2912)。ユーザは、表示された変更ボタンを押下することで、画像処理装置1901に候補変更指示を入力することができる。
次に、推定部318は、ユーザから候補変更指示が入力されたか否かをチェックする(ステップ2913)。候補変更指示が入力された場合(ステップ2913,YES)、表示部315は、複数の候補それぞれに対応する3Dモデル322を示す図形を画像321上に重畳して表示する(ステップ2914)。
次に、推定部318は、複数の図形の中からユーザによって選択された図形に対応する候補の推定結果325を、撮像装置302の位置及び姿勢に決定する(ステップ2915)。そして、投影部314は、決定された撮像装置302の位置及び姿勢を用いて、3Dモデル322に含まれる複数の線分を画像321上に投影し、表示部315は、3Dモデル322を画像321上に重畳表示する。
総和Sが閾値T2以上となる対応ペア集合324が1つのみであり、撮像装置302の位置及び姿勢がすでに決定されている場合(ステップ2911,NO)、画像処理装置1901は、処理を終了する。
候補変更指示が入力されていない場合(ステップ2913,NO)、推定部318は、候補情報の表示開始から一定期間が経過したか否かをチェックする(ステップ2916)。一定期間が経過していない場合(ステップ2916,NO)、画像処理装置1901は、ステップ2912以降の処理を繰り返す。一定期間が経過した場合(ステップ2916,YES)、画像処理装置1901は、処理を終了する。
図29A及び図29Bの画像処理によれば、微調整によって生成された候補に基づいて、撮像装置302の位置及び姿勢が暫定的に決定された場合であっても、一定期間内であれば、ユーザ自身が暫定的な候補を別の候補に変更することが可能になる。
なお、図29A及び図29Bの画像処理が行われる場合にも、図28の感度調整処理が独立に実行される。
図1、図3、図17、及び図19の画像処理装置の構成は一例に過ぎず、画像処理装置の用途又は条件に応じて一部の構成要素を省略又は変更してもよい。例えば、図3の画像処理装置301において、画像321及び3Dモデル322を表示する処理が外部の装置によって行われる場合は、表示部315を省略することができる。
ユーザが3Dモデル322の位置又は姿勢を変更しない場合は、変更部316を省略することができる。CADデータの代わりに、物体の形状を表す他の形状情報を3Dモデル322として用いてもよい。また、画像321は、撮像装置302から取得された画像に限られず、予め記憶部311に保存されている画像であってもよく、通信ネットワークを介して外部の装置から取得された画像であってもよい。
図19の画像処理装置1901において、変更感度Gを調整する必要がない場合は、感度調整部1913を省略することができる。
図2、図10〜図14、図18、及び図27A〜図29Bのフローチャートは一例に過ぎず、画像処理装置の構成又は条件に応じて一部の処理を省略又は変更してもよい。例えば、図11の対応ペア生成処理において、ステップ1102〜ステップ1104のうち、いずれかの絞り込みを省略してもよい。ユーザが3Dモデル322の位置又は姿勢を変更しない場合は、図13の変更処理を省略することができる。
図4、図7、図8A、及び図8Bに示した3Dモデル、投影線、及び特徴線は一例に過ぎず、3Dモデル、投影線、及び特徴線は、撮影対象の物体に応じて変化する。図8A及び図8Bに示した3Dモデルの姿勢は一例に過ぎず、3Dモデルの姿勢は、変更指示によって指定された回転量に応じて変化する。図9に示した移動操作は一例に過ぎず、ユーザは移動ベクトルを別の方法で入力してもよい。
図15、図16、図25、及び図26に示した画像及び図形は一例に過ぎず、画像及び図形は、撮影対象の物体に応じて変化する。図20に示した操作量は一例に過ぎず、操作量は、ユーザの変更操作に応じて変化する。図21〜図24に示した感度調整方法は一例に過ぎず、画像処理装置の構成又は条件に応じて別の感度調整方法を用いてもよい。
式(1)〜式(13)の計算式は一例に過ぎず、画像処理装置の構成又は条件に応じて別の計算式を用いてもよい。
図30は、図1の画像処理装置101及び図3の画像処理装置301として用いられる情報処理装置(コンピュータ)のハードウェア構成例を示している。図30の情報処理装置は、CPU(Central Processing Unit)3001、メモリ3002、入力装置3003、出力装置3004、補助記憶装置3005、媒体駆動装置3006、及びネットワーク接続装置3007を含む。これらの構成要素はハードウェアであり、バス3008により互いに接続されている。図3、図17、及び図19の撮像装置302は、バス3008に接続されていてもよい。
メモリ3002は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)、フラッシュメモリ等の半導体メモリであり、処理に用いられるプログラム及びデータを格納する。メモリ3002は、図1の記憶部111又は図3、図17、及び図19の記憶部311として用いることができる。
CPU3001(プロセッサ)は、例えば、メモリ3002を利用してプログラムを実行することにより、図1の検出部112、投影部113、生成部114、推定部115、及び評価部116として動作する。CPU3001は、メモリ3002を利用してプログラムを実行することにより、図3、図17、及び図19の画像取得部312、検出部313、投影部314、変更部316、生成部317、推定部318、及び評価部319としても動作する。
CPU3001は、メモリ3002を利用してプログラムを実行することにより、図17の推定制御部1711としても動作する。CPU3001は、メモリ3002を利用してプログラムを実行することにより、図19の推定制御部1911、調整段階判定部1912、及び感度調整部1913としても動作する。
入力装置3003は、例えば、キーボード、ポインティングデバイス等であり、オペレータ又はユーザからの指示又は情報の入力に用いられる。出力装置3004は、例えば、表示装置、プリンタ、スピーカ等であり、オペレータ又はユーザへの問い合わせ又は指示、及び処理結果の出力に用いられる。処理結果は、推定結果325であってもよく、画像321上に重畳された3Dモデル322であってもよい。出力装置3004は、図3、図17、及び図19の表示部315として用いることができる。
補助記憶装置3005は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク装置、テープ装置等である。補助記憶装置3005は、ハードディスクドライブ又はフラッシュメモリであってもよい。情報処理装置は、補助記憶装置3005にプログラム及びデータを格納しておき、それらをメモリ3002にロードして使用することができる。補助記憶装置3005は、図1の記憶部111又は図3、図17、及び図19の記憶部311として用いることができる。
媒体駆動装置3006は、可搬型記録媒体3009を駆動し、その記録内容にアクセスする。可搬型記録媒体3009は、メモリデバイス、フレキシブルディスク、光ディスク、光磁気ディスク等である。可搬型記録媒体3009は、CD−ROM(Compact Disk Read Only Memory)、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)メモリ等であってもよい。オペレータ又はユーザは、この可搬型記録媒体3009にプログラム及びデータを格納しておき、それらをメモリ3002にロードして使用することができる。
このように、処理に用いられるプログラム及びデータを格納するコンピュータ読み取り可能な記録媒体は、メモリ3002、補助記憶装置3005、又は可搬型記録媒体3009のような、物理的な(非一時的な)記録媒体である。
ネットワーク接続装置3007は、LAN(Local Area Network)、WAN(Wide Area Network)等の通信ネットワークに接続され、通信に伴うデータ変換を行う通信インタフェース回路である。情報処理装置は、プログラム及びデータを外部の装置からネットワーク接続装置3007を介して受信し、それらをメモリ3002にロードして使用することができる。
なお、情報処理装置が図30のすべての構成要素を含む必要はなく、用途又は条件に応じて一部の構成要素を省略することも可能である。例えば、可搬型記録媒体3009又は通信ネットワークを使用しない場合は、媒体駆動装置3006又はネットワーク接続装置3007を省略してもよい。
開示の実施形態とその利点について詳しく説明したが、当業者は、特許請求の範囲に明確に記載した本発明の範囲から逸脱することなく、様々な変更、追加、省略をすることができるであろう。
図1乃至図30を参照しながら説明した実施形態に関し、さらに以下の付記を開示する。
(付記1)
物体の形状を表す複数の線分を含む形状情報を記憶する記憶部と、
取得した前記物体の画像から、複数の特徴線を検出する検出部と、
前記複数の線分を前記画像上に投影することで、複数の投影線を生成する投影部と、
前記複数の特徴線の中からいずれかの特徴線を選択し、前記複数の投影線の中からいずれかの投影線を選択し、選択された特徴線と選択された投影線とを対応付けることで、特徴線と投影線との組み合わせを生成し、所定数の組み合わせをそれぞれ含む複数の集合を生成する生成部と、
前記複数の集合各々を用いて、3次元空間内における前記物体の画像を撮影した撮像装置の位置及び姿勢を推定する推定部と、
前記複数の集合各々について、前記撮像装置の位置及び姿勢の推定結果を評価する評価部とを備え、
前記撮像装置が撮影した画像上における前記物体と前記形状情報が表す形状との間の相対的な位置又は姿勢が変化した場合、前記生成部は前記複数の集合を繰り返し生成し、前記推定部は前記撮像装置の位置及び姿勢を繰り返し推定し、前記評価部は前記推定結果を繰り返し評価し、前記推定部は、前記推定結果が繰り返し評価された結果に基づいて、前記撮像装置の位置及び姿勢を決定することを特徴とする画像処理装置。
(付記2)
前記検出部が特徴線を検出する対象の物体の画像は、前記撮像装置が撮影した物体画像であることを特徴とする付記1記載の画像処理装置。
(付記3)
前記撮像装置が撮影した画像上における前記形状情報が表す形状の位置又は姿勢を変更する変更部をさらに備え、
前記形状情報が表す形状の位置又は姿勢を前記変更部が変更することによって、前記撮像装置が撮影した画像上における前記物体と前記形状情報が表す形状との間の相対的な位置又は姿勢が変化することを特徴とする付記1又は2記載の画像処理装置。
(付記4)
前記変更部は、前記形状情報に含まれる前記複数の線分の中から選択された線分、又は前記選択された線分と前記複数の線分に対する視点とを含む平面の法線を、回転軸として用いて、前記回転軸の周りに前記形状情報が表す形状を回転させることで、前記形状情報が表す形状の位置又は姿勢を変更することを特徴とする付記3記載の画像処理装置。
(付記5)
前記形状情報が表す形状の位置又は姿勢の変更を前記変更部が行っている所定期間において、前記推定部が前記撮像装置の位置及び姿勢を推定する動作を抑止する推定制御部をさらに備えることを特徴とする付記3又は4記載の画像処理装置。
(付記6)
前記推定制御部は、抑止指示が入力された場合に、前記推定部が前記撮像装置の位置及び姿勢を推定する動作を抑止することを特徴とする付記5記載の画像処理装置。
(付記7)
前記形状情報が表す形状の位置又は姿勢の粗調整又は微調整のいずれを前記変更部が行っているかを判定する調整段階判定部をさらに備え、
前記推定制御部は、前記変更部が前記粗調整を行っている場合、前記推定部が前記撮像装置の位置及び姿勢を推定する動作を抑止し、前記変更部が前記微調整を行っている場合、前記推定部が前記撮像装置の位置及び姿勢を推定する動作を抑止しないことを特徴とする付記5記載の画像処理装置。
(付記8)
前記変更部は、前記撮像装置が撮影した画像上における前記形状情報が表す形状の位置又は姿勢をユーザが変更する変更操作に応じて、前記形状情報が表す形状の位置又は姿勢を変更し、
前記調整段階判定部は、前記変更操作の操作量に基づいて、前記変更部が前記粗調整又は前記微調整のいずれを行っているかを判定し、
前記画像処理装置は、前記変更部が前記微調整を行い、かつ、前記推定部が前記撮像装置の位置及び姿勢の複数の候補を生成した場合、前記複数の候補それぞれに対応する前記物体の形状を前記撮像装置が撮影した画像上に重畳して表示する表示部をさらに備え、
前記推定部は、前記複数の候補それぞれに対応する前記物体の形状の中から前記ユーザによって選択された形状に基づいて、前記撮像装置の位置及び姿勢を決定することを特徴とする付記7記載の画像処理装置。
(付記9)
前記変更部は、前記撮像装置が撮影した画像上における前記形状情報が表す形状の位置又は姿勢をユーザが変更する変更操作に応じて、前記形状情報が表す形状の位置又は姿勢を変更し、
前記調整段階判定部は、前記変更操作の操作量に基づいて、前記変更部が前記粗調整又は前記微調整のいずれを行っているかを判定し、
前記画像処理装置は、前記変更部が前記微調整を行い、かつ、前記推定部が前記撮像装置の位置及び姿勢の複数の候補を生成した場合、前記複数の候補のうちいずれかの候補に対応する前記物体の形状を前記撮像装置が撮影した画像上に重畳して表示するとともに、前記複数の候補の存在を示す情報を表示する表示部をさらに備え、
前記表示部は、候補変更指示が入力された場合、前記複数の候補それぞれに対応する前記物体の形状を前記撮像装置が撮影した画像上に重畳して表示し、
前記推定部は、前記複数の候補それぞれに対応する前記物体の形状の中から前記ユーザによって選択された形状に基づいて、前記撮像装置の位置及び姿勢を決定することを特徴とする付記7記載の画像処理装置。
(付記10)
前記変更部が前記微調整を行っている場合、前記変更操作に対する前記形状情報が表す形状の位置又は姿勢の変更感度を、前記変更部が前記粗調整を行っている場合よりも低下させる感度調整部をさらに備えることを特徴とする付記8又は9記載の画像処理装置。
(付記11)
前記感度調整部は、前記変更操作の操作量の時間変化に基づいて、前記変更感度を調整することを特徴とする付記10記載の画像処理装置。
(付記12)
前記表示部は、前記変更操作の操作ポインタを表示し、前記変更感度に応じて前記操作ポインタの表示形態を変化させることを特徴とする付記10又は11記載の画像処理装置。
(付記13)
前記物体と前記撮像装置との間の相対的な位置又は姿勢が変化した後に、前記撮像装置が前記物体を繰り返し撮影することによって、前記撮像装置が撮影した画像上における前記物体と前記形状情報が表す形状との間の相対的な位置又は姿勢が変化することを特徴とする付記1又は2記載の画像処理装置。
(付記14)
前記評価部は、前記複数の集合の中からいずれかの集合を評価用集合として選択し、前記評価用集合に基づいて推定された前記撮像装置の位置及び姿勢の推定結果を用いて、前記複数の集合の各組み合わせに含まれる投影線に対応する線分を前記画像上に再投影することで、評価用投影線を生成し、前記複数の集合の各組み合わせに含まれる特徴線と前記評価用投影線との間の誤差を計算し、計算された誤差が大きいほど小さくなる評価値を求め、前記複数の集合に含まれるすべての組み合わせに対する評価値の総和を閾値と比較し、
いずれの集合を選択しても評価値の総和が前記閾値未満であり、かつ、前記撮像装置が撮影した画像上における前記物体と前記形状情報が表す形状との間の相対的な位置又は姿勢が変化した場合、前記生成部は前記複数の集合を繰り返し生成し、前記推定部は前記撮像装置の位置及び姿勢を繰り返し推定し、前記評価部は前記推定結果を繰り返し評価し、前記推定部は、前記推定結果が繰り返し評価された結果において、前記閾値よりも大きな評価値の総和が得られた評価用集合を特定し、特定された評価用集合に基づいて推定された位置及び姿勢を、前記撮像装置の位置及び姿勢に決定することを特徴とする付記1乃至13のいずれか1項に記載の画像処理装置。
(付記15)
コンピュータによって実行される画像処理方法であって、
コンピュータが、
取得した物体の画像から、複数の特徴線を検出し、
前記物体の形状を表す形状情報に含まれる複数の線分を、前記画像上に投影することで、複数の投影線を生成し、
前記複数の特徴線の中からいずれかの特徴線を選択し、前記複数の投影線の中からいずれかの投影線を選択し、選択された特徴線と選択された投影線とを対応付けることで、特徴線と投影線との組み合わせを生成し、
所定数の組み合わせをそれぞれ含む複数の集合を生成し、
前記複数の集合各々を用いて、3次元空間内における前記物体の画像を撮影した撮像装置の位置及び姿勢を推定し、
前記複数の集合各々について、前記撮像装置の位置及び姿勢の推定結果を評価し、
前記撮像装置が撮影した画像上における前記物体と前記形状情報が表す形状との間の相対的な位置又は姿勢が変化した場合、前記複数の集合を繰り返し生成し、前記撮像装置の位置及び姿勢を繰り返し推定し、前記推定結果を繰り返し評価し、前記推定結果が繰り返し評価された結果に基づいて、前記撮像装置の位置及び姿勢を決定する、
ことを特徴とする画像処理方法。
(付記16)
前記コンピュータが特徴線を検出する対象の物体の画像は、前記撮像装置が撮影した物体画像であることを特徴とする付記15記載の画像処理方法。
(付記17)
前記コンピュータは、前記撮像装置が撮影した画像上における前記形状情報が表す形状の位置又は姿勢を変更することによって、前記撮像装置が撮影した画像上における前記物体と前記形状情報が表す形状との間の相対的な位置又は姿勢を変化させることを特徴とする付記15又は16記載の画像処理方法。
(付記18)
取得した物体の画像から、複数の特徴線を検出し、
前記物体の形状を表す形状情報に含まれる複数の線分を、前記画像上に投影することで、複数の投影線を生成し、
前記複数の特徴線の中からいずれかの特徴線を選択し、前記複数の投影線の中からいずれかの投影線を選択し、選択された特徴線と選択された投影線とを対応付けることで、特徴線と投影線との組み合わせを生成し、
所定数の組み合わせをそれぞれ含む複数の集合を生成し、
前記複数の集合各々を用いて、3次元空間内における前記物体の画像を撮影した撮像装置の位置及び姿勢を推定し、
前記複数の集合各々について、前記撮像装置の位置及び姿勢の推定結果を評価し、
前記撮像装置が撮影した画像上における前記物体と前記形状情報が表す形状との間の相対的な位置又は姿勢が変化した場合、前記複数の集合を繰り返し生成し、前記撮像装置の位置及び姿勢を繰り返し推定し、前記推定結果を繰り返し評価し、前記推定結果が繰り返し評価された結果に基づいて、前記撮像装置の位置及び姿勢を決定する、
処理をコンピュータに実行させるための画像処理プログラム。
(付記19)
前記コンピュータが特徴線を検出する対象の物体の画像は、前記撮像装置が撮影した物体画像であることを特徴とする付記18記載の画像処理プログラム。
(付記20)
前記コンピュータは、前記撮像装置が撮影した画像上における前記形状情報が表す形状の位置又は姿勢を変更することによって、前記撮像装置が撮影した画像上における前記物体と前記形状情報が表す形状との間の相対的な位置又は姿勢を変化させることを特徴とする付記18又は19記載の画像処理プログラム。
101、301、1701、1901 画像処理装置
111、311 記憶部
112、313 検出部
113、314 投影部
114、317 生成部
115、318 推定部
116、319 評価部
121、322 形状情報
302 撮像装置
312 画像取得部
315 表示部
316 変更部
319 評価部
321、1501 画像
322、701 3Dモデル
323、411〜415 特徴線
324 対応ペア集合
325 推定結果
326 評価値
401、901 投影線
501、502、601、602、702 線分
503、504 垂線
703 視点
911 移動ベクトル
912、913 成分
1502〜1504、1601〜1604、2501〜2503、2601 図形
1711、1911 推定制御部
1912 調整段階判定部
1913 感度調整部
2001、2101、2201、2301、2401 曲線
2011、2012 期間
2511〜2513、2611 操作ポインタ
3001 CPU
3002 メモリ
3003 入力装置
3004 出力装置
3005 補助記憶装置
3006 媒体駆動装置
3007 ネットワーク接続装置
3008 バス
3009 可搬型記録媒体

Claims (14)

  1. 物体の形状を表す複数の線分を含む形状情報を記憶する記憶部と、
    取得した前記物体の画像から、複数の特徴線を検出する検出部と、
    前記複数の線分を前記画像上に投影することで、複数の投影線を生成する投影部と、
    前記複数の特徴線の中からいずれかの特徴線を選択し、前記複数の投影線の中からいずれかの投影線を選択し、選択された特徴線と選択された投影線とを対応付けることで、特徴線と投影線との組み合わせを生成し、所定数の組み合わせをそれぞれ含む複数の集合を生成する生成部と、
    前記複数の集合各々を用いて、3次元空間内における前記物体の画像を撮影した撮像装置の位置及び姿勢を推定する推定部と、
    前記複数の集合各々について、前記撮像装置の位置及び姿勢の推定結果を評価する評価部とを備え、
    前記撮像装置が撮影した画像上における前記物体と前記形状情報が表す形状との間の相対的な位置又は姿勢が変化した場合、前記生成部は前記複数の集合を繰り返し生成し、前記推定部は前記撮像装置の位置及び姿勢を繰り返し推定し、前記評価部は前記推定結果を繰り返し評価し、前記推定部は、前記推定結果が繰り返し評価された結果に基づいて、前記撮像装置の位置及び姿勢を決定することを特徴とする画像処理装置。
  2. 前記検出部が特徴線を検出する対象の物体の画像は、前記撮像装置が撮影した物体画像であることを特徴とする請求項1記載の画像処理装置。
  3. 前記撮像装置が撮影した画像上における前記形状情報が表す形状の位置又は姿勢を変更する変更部をさらに備え、
    前記形状情報が表す形状の位置又は姿勢を前記変更部が変更することによって、前記撮像装置が撮影した画像上における前記物体と前記形状情報が表す形状との間の相対的な位置又は姿勢が変化することを特徴とする請求項1又は2記載の画像処理装置。
  4. 前記変更部は、前記形状情報に含まれる前記複数の線分の中から選択された線分、又は前記選択された線分と前記複数の線分に対する視点とを含む平面の法線を、回転軸として用いて、前記回転軸の周りに前記形状情報が表す形状を回転させることで、前記形状情報が表す形状の位置又は姿勢を変更することを特徴とする請求項3記載の画像処理装置。
  5. 前記形状情報が表す形状の位置又は姿勢の変更を前記変更部が行っている所定期間において、前記推定部が前記撮像装置の位置及び姿勢を推定する動作を抑止する推定制御部をさらに備えることを特徴とする請求項3又は4記載の画像処理装置。
  6. 前記推定制御部は、抑止指示が入力された場合に、前記推定部が前記撮像装置の位置及び姿勢を推定する動作を抑止することを特徴とする請求項5記載の画像処理装置。
  7. 前記形状情報が表す形状の位置又は姿勢の粗調整又は微調整のいずれを前記変更部が行っているかを判定する調整段階判定部をさらに備え、
    前記推定制御部は、前記変更部が前記粗調整を行っている場合、前記推定部が前記撮像装置の位置及び姿勢を推定する動作を抑止し、前記変更部が前記微調整を行っている場合、前記推定部が前記撮像装置の位置及び姿勢を推定する動作を抑止しないことを特徴とする請求項5記載の画像処理装置。
  8. 前記変更部は、前記撮像装置が撮影した画像上における前記形状情報が表す形状の位置又は姿勢をユーザが変更する変更操作に応じて、前記形状情報が表す形状の位置又は姿勢を変更し、
    前記調整段階判定部は、前記変更操作の操作量に基づいて、前記変更部が前記粗調整又は前記微調整のいずれを行っているかを判定し、
    前記画像処理装置は、前記変更部が前記微調整を行い、かつ、前記推定部が前記撮像装置の位置及び姿勢の複数の候補を生成した場合、前記複数の候補それぞれに対応する前記物体の形状を前記撮像装置が撮影した画像上に重畳して表示する表示部をさらに備え、
    前記推定部は、前記複数の候補それぞれに対応する前記物体の形状の中から前記ユーザによって選択された形状に基づいて、前記撮像装置の位置及び姿勢を決定することを特徴とする請求項7記載の画像処理装置。
  9. 前記変更部は、前記撮像装置が撮影した画像上における前記形状情報が表す形状の位置又は姿勢をユーザが変更する変更操作に応じて、前記形状情報が表す形状の位置又は姿勢を変更し、
    前記調整段階判定部は、前記変更操作の操作量に基づいて、前記変更部が前記粗調整又は前記微調整のいずれを行っているかを判定し、
    前記画像処理装置は、前記変更部が前記微調整を行い、かつ、前記推定部が前記撮像装置の位置及び姿勢の複数の候補を生成した場合、前記複数の候補のうちいずれかの候補に対応する前記物体の形状を前記撮像装置が撮影した画像上に重畳して表示するとともに、前記複数の候補の存在を示す情報を表示する表示部をさらに備え、
    前記表示部は、候補変更指示が入力された場合、前記複数の候補それぞれに対応する前記物体の形状を前記撮像装置が撮影した画像上に重畳して表示し、
    前記推定部は、前記複数の候補それぞれに対応する前記物体の形状の中から前記ユーザによって選択された形状に基づいて、前記撮像装置の位置及び姿勢を決定することを特徴とする請求項7記載の画像処理装置。
  10. 前記変更部が前記微調整を行っている場合、前記変更操作に対する前記形状情報が表す形状の位置又は姿勢の変更感度を、前記変更部が前記粗調整を行っている場合よりも低下させる感度調整部をさらに備えることを特徴とする請求項8又は9記載の画像処理装置。
  11. 前記物体と前記撮像装置との間の相対的な位置又は姿勢が変化した後に、前記撮像装置が前記物体を繰り返し撮影することによって、前記撮像装置が撮影した画像上における前記物体と前記形状情報が表す形状との間の相対的な位置又は姿勢が変化することを特徴とする請求項1又は2記載の画像処理装置。
  12. 前記評価部は、前記複数の集合の中からいずれかの集合を評価用集合として選択し、前記評価用集合に基づいて推定された前記撮像装置の位置及び姿勢の推定結果を用いて、前記複数の集合の各組み合わせに含まれる投影線に対応する線分を前記画像上に再投影することで、評価用投影線を生成し、前記複数の集合の各組み合わせに含まれる特徴線と前記評価用投影線との間の誤差を計算し、計算された誤差が大きいほど小さくなる評価値を求め、前記複数の集合に含まれるすべての組み合わせに対する評価値の総和を閾値と比較し、
    いずれの集合を選択しても評価値の総和が前記閾値未満であり、かつ、前記撮像装置が撮影した画像上における前記物体と前記形状情報が表す形状との間の相対的な位置又は姿勢が変化した場合、前記生成部は前記複数の集合を繰り返し生成し、前記推定部は前記撮像装置の位置及び姿勢を繰り返し推定し、前記評価部は前記推定結果を繰り返し評価し、前記推定部は、前記推定結果が繰り返し評価された結果において、前記閾値よりも大きな評価値の総和が得られた評価用集合を特定し、特定された評価用集合に基づいて推定された位置及び姿勢を、前記撮像装置の位置及び姿勢に決定することを特徴とする請求項1乃至11のいずれか1項に記載の画像処理装置。
  13. コンピュータによって実行される画像処理方法であって、
    コンピュータが、
    取得した物体の画像から、複数の特徴線を検出し、
    前記物体の形状を表す形状情報に含まれる複数の線分を、前記画像上に投影することで、複数の投影線を生成し、
    前記複数の特徴線の中からいずれかの特徴線を選択し、前記複数の投影線の中からいずれかの投影線を選択し、選択された特徴線と選択された投影線とを対応付けることで、特徴線と投影線との組み合わせを生成し、
    所定数の組み合わせをそれぞれ含む複数の集合を生成し、
    前記複数の集合各々を用いて、3次元空間内における前記物体の画像を撮影した撮像装置の位置及び姿勢を推定し、
    前記複数の集合各々について、前記撮像装置の位置及び姿勢の推定結果を評価し、
    前記撮像装置が撮影した画像上における前記物体と前記形状情報が表す形状との間の相対的な位置又は姿勢が変化した場合、前記複数の集合を繰り返し生成し、前記撮像装置の位置及び姿勢を繰り返し推定し、前記推定結果を繰り返し評価し、前記推定結果が繰り返し評価された結果に基づいて、前記撮像装置の位置及び姿勢を決定する、
    ことを特徴とする画像処理方法。
  14. 取得した物体の画像から、複数の特徴線を検出し、
    前記物体の形状を表す形状情報に含まれる複数の線分を、前記画像上に投影することで、複数の投影線を生成し、
    前記複数の特徴線の中からいずれかの特徴線を選択し、前記複数の投影線の中からいずれかの投影線を選択し、選択された特徴線と選択された投影線とを対応付けることで、特徴線と投影線との組み合わせを生成し、
    所定数の組み合わせをそれぞれ含む複数の集合を生成し、
    前記複数の集合各々を用いて、3次元空間内における前記物体の画像を撮影した撮像装置の位置及び姿勢を推定し、
    前記複数の集合各々について、前記撮像装置の位置及び姿勢の推定結果を評価し、
    前記撮像装置が撮影した画像上における前記物体と前記形状情報が表す形状との間の相対的な位置又は姿勢が変化した場合、前記複数の集合を繰り返し生成し、前記撮像装置の位置及び姿勢を繰り返し推定し、前記推定結果を繰り返し評価し、前記推定結果が繰り返し評価された結果に基づいて、前記撮像装置の位置及び姿勢を決定する、
    処理をコンピュータに実行させるための画像処理プログラム。
JP2019193142A 2018-12-13 2019-10-24 画像処理装置、画像処理方法、及び画像処理プログラム Pending JP2020098575A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/708,951 US11138759B2 (en) 2018-12-13 2019-12-10 Image processing apparatus and image processing method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2018233684 2018-12-13
JP2018233684 2018-12-13

Publications (2)

Publication Number Publication Date
JP2020098575A true JP2020098575A (ja) 2020-06-25
JP2020098575A5 JP2020098575A5 (ja) 2022-07-26

Family

ID=71106011

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019193142A Pending JP2020098575A (ja) 2018-12-13 2019-10-24 画像処理装置、画像処理方法、及び画像処理プログラム

Country Status (1)

Country Link
JP (1) JP2020098575A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112116666A (zh) * 2020-09-21 2020-12-22 华中科技大学鄂州工业技术研究院 一种用于相机标定的位姿调节方法与装置
WO2022176465A1 (ja) * 2021-02-18 2022-08-25 日本電気株式会社 画像処理装置および画像処理方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007004716A (ja) * 2005-06-27 2007-01-11 Canon Inc 画像処理方法、画像処理装置
JP2010279023A (ja) * 2009-04-30 2010-12-09 Canon Inc 情報処理装置およびその制御方法
JP2012043308A (ja) * 2010-08-20 2012-03-01 Canon Inc 位置姿勢決定方法、位置姿勢決定装置、物体モデル生成方法、物体モデル生成装置、およびプログラム
WO2015029934A1 (ja) * 2013-08-30 2015-03-05 クラリオン株式会社 カメラ校正装置、カメラ校正システム、及びカメラ校正方法
WO2015186511A1 (ja) * 2014-06-03 2015-12-10 ソニー株式会社 画像処理装置および画像処理方法
JP2017187882A (ja) * 2016-04-04 2017-10-12 セイコーエプソン株式会社 画像処理に用いられるコンピュータープログラム
JP2018055199A (ja) * 2016-09-26 2018-04-05 富士通株式会社 画像処理プログラム、画像処理装置、及び画像処理方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007004716A (ja) * 2005-06-27 2007-01-11 Canon Inc 画像処理方法、画像処理装置
JP2010279023A (ja) * 2009-04-30 2010-12-09 Canon Inc 情報処理装置およびその制御方法
JP2012043308A (ja) * 2010-08-20 2012-03-01 Canon Inc 位置姿勢決定方法、位置姿勢決定装置、物体モデル生成方法、物体モデル生成装置、およびプログラム
WO2015029934A1 (ja) * 2013-08-30 2015-03-05 クラリオン株式会社 カメラ校正装置、カメラ校正システム、及びカメラ校正方法
WO2015186511A1 (ja) * 2014-06-03 2015-12-10 ソニー株式会社 画像処理装置および画像処理方法
JP2017187882A (ja) * 2016-04-04 2017-10-12 セイコーエプソン株式会社 画像処理に用いられるコンピュータープログラム
JP2018055199A (ja) * 2016-09-26 2018-04-05 富士通株式会社 画像処理プログラム、画像処理装置、及び画像処理方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112116666A (zh) * 2020-09-21 2020-12-22 华中科技大学鄂州工业技术研究院 一种用于相机标定的位姿调节方法与装置
CN112116666B (zh) * 2020-09-21 2022-09-27 华中科技大学鄂州工业技术研究院 一种用于相机标定的位姿调节方法与装置
WO2022176465A1 (ja) * 2021-02-18 2022-08-25 日本電気株式会社 画像処理装置および画像処理方法

Similar Documents

Publication Publication Date Title
JP6716996B2 (ja) 画像処理プログラム、画像処理装置、及び画像処理方法
US11138759B2 (en) Image processing apparatus and image processing method
US8368768B2 (en) Image processing apparatus, image processing method, and program
JP6880618B2 (ja) 画像処理プログラム、画像処理装置、及び画像処理方法
JP7188201B2 (ja) 画像処理装置、画像処理方法、及び画像処理プログラム
WO2019093457A1 (ja) 情報処理装置、情報処理方法及びプログラム
US20170345184A1 (en) Three-dimensional information restoration device, three-dimensional information restoration system, and three-dimensional information restoration method
JP2016212784A (ja) 画像処理装置、画像処理方法
US10586099B2 (en) Information processing apparatus for tracking processing
US10930068B2 (en) Estimation apparatus, estimation method, and non-transitory computer-readable storage medium for storing estimation program
JP6075294B2 (ja) 画像処理システム及び画像処理方法
JP2020098575A (ja) 画像処理装置、画像処理方法、及び画像処理プログラム
JP2020134242A (ja) 計測方法、計測装置、およびプログラム
US11145048B2 (en) Image processing apparatus, image processing method, and non-transitory computer-readable storage medium for storing program
WO2019244536A1 (ja) 物体追跡装置、物体追跡システム、および物体追跡方法
JP7232663B2 (ja) 画像処理装置及び画像処理方法
JP7059701B2 (ja) 推定装置、推定方法、及び推定プログラム
JP4321251B2 (ja) 合成画像を生成・表示する装置及び方法
JP6723822B2 (ja) 画像処理装置、画像処理方法及びプログラム
JP2007241478A (ja) 画像処理装置、画像処理装置の制御方法及びプログラム
JP5636966B2 (ja) 誤差検出装置及び誤差検出プログラム
WO2022153481A1 (en) Posture estimation apparatus, learning model generation apparatus, method, and computer-readable recordingmedium
US20090033654A1 (en) System and method for visually representing an object to a user
JP2016110597A (ja) 情報処理システム、情報処理装置、座標変換方法およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220708

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220715

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230512

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230523

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231010

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20240409