JP6405891B2 - 位置・姿勢推定装置、位置・姿勢推定方法、及び、プログラム - Google Patents

位置・姿勢推定装置、位置・姿勢推定方法、及び、プログラム Download PDF

Info

Publication number
JP6405891B2
JP6405891B2 JP2014220869A JP2014220869A JP6405891B2 JP 6405891 B2 JP6405891 B2 JP 6405891B2 JP 2014220869 A JP2014220869 A JP 2014220869A JP 2014220869 A JP2014220869 A JP 2014220869A JP 6405891 B2 JP6405891 B2 JP 6405891B2
Authority
JP
Japan
Prior art keywords
point
map
peripheral shape
plane
points
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.)
Expired - Fee Related
Application number
JP2014220869A
Other languages
English (en)
Other versions
JP2016091065A (ja
Inventor
山口 伸康
伸康 山口
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 JP2014220869A priority Critical patent/JP6405891B2/ja
Priority to EP15184208.5A priority patent/EP3016071B1/en
Priority to AU2015224394A priority patent/AU2015224394B2/en
Priority to US14/850,298 priority patent/US9652861B2/en
Publication of JP2016091065A publication Critical patent/JP2016091065A/ja
Application granted granted Critical
Publication of JP6405891B2 publication Critical patent/JP6405891B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/80Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • G06T7/248Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving reference images or patches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/74Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/282Image signal generators for generating image signals corresponding to three or more geometrical viewpoints, e.g. multi-view systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/14Picture signal circuitry for video frequency region
    • H04N5/144Movement detection
    • H04N5/145Movement estimation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Image Analysis (AREA)
  • Length Measuring Devices By Optical Means (AREA)
  • Image Processing (AREA)

Description

本発明は、位置・姿勢推定装置、位置・姿勢推定方法、及び、プログラムに関する。
近年、拡張現実感(Augmented Reality:AR)に関する技術の開発が盛んに行われている。ARは、人間が知覚する現実環境をコンピュータにより拡張する技術の総称である。
ARの一例として、携帯型のパーソナルコンピュータやタブレットや高機能携帯電話などの携帯情報端末装置に接続されているカメラで撮像した画像(以下、撮像画像という)を、携帯情報端末装置の表示画面上に表示する際に、コンピュータグラフィックス等で付加情報を重畳表示し、ユーザの作業支援を実現する技術が知られている(例えば、非特許文献1を参照)。
付加情報を適した位置に重畳表示させるためには、カメラの位置と姿勢を推定する必要があり、その推定精度が非常に重要となる。カメラの位置と姿勢の推定方法としては、撮像画像に基づいてカメラの位置と姿勢を推定する技術が知られている。
撮像画像に基づいてカメラの位置と姿勢を推定する技術の一つとして、撮像画像に含まれる特徴的な点(以下、特徴点という)を用いる方法が知られている(例えば、特許文献1を参照)。特徴点は、通常、注目点の近傍領域での濃淡変動が大きく、且つ濃淡変動によって注目点の位置が一意に規定されることを基準として検出される点である。
特徴点を用いてカメラの位置と姿勢を推定する方法は、予め算出された特徴点の3次元座標(以下、マップ点という)を用い、処理対象の撮像画像中の特徴点とマップ点とをマッチング処理により対応付けることで、カメラの位置と姿勢を推定するものである。
特開2005−326274号公報
石井裕剛ら, 拡張現実感を利用した原子力発電プラントの解体支援手法の提案と評価, 日本バーチャルリアリティ学会論文誌, Vol.13, No.2, pp.289−300, 2008年6月
しかしながら、特徴点の中には、カメラの動きに対する特徴点の近傍領域における濃淡変動の特徴の変化が小さい特徴点と、濃淡変動の特徴の変化が大きい特徴点がある。カメラの動きに対する濃淡変動の特徴の変化が小さい特徴点は、マッチング処理において誤マッチングが生じる確率が低い。また、カメラの動きに対する濃淡変動の特徴の変化が小さい特徴点は、検出し易く検出位置の精度も高い。
これに対し、カメラの動きに対する濃淡変動の特徴の変化が大きい特徴点は、マッチング処理において誤マッチングが生じる確率が高く、特徴点として検出された場合の検出位置の精度も低い。このように、特徴点の中には、誤マッチングが生じる確率が高い特徴点がある。
特許文献1に開示されている方法では、撮像画像において検出された全ての特徴点を同等に扱ってカメラの位置と姿勢を推定している。そのため、誤マッチングが原因となり、カメラの位置と姿勢の推定精度が劣化してしまうという問題がある。
一つの側面では、本発明は、誤マッチングの影響を低減することで、カメラの位置と姿勢の推定精度を向上させることを可能とする位置・姿勢推定装置、位置・姿勢推定方法、及び、プログラムを提供することを課題とする。
一態様における位置・姿勢推定装置は、処理対象の撮像画像上の特徴点と予め保持されているマップ点とをマッチングし、マッチングに成功した特徴点と対応するマップ点を撮像画像上に投影した投影点との誤差に基づいて、処理対象の撮像画像を撮像したカメラの位置と姿勢を推定する位置・姿勢推定装置であって、マップ点の周辺形状を特定し、特定した周辺形状が平面であるか否かを判定する判定手段と、周辺形状が平面ではないマップ点の周辺形状の歪みを算出する第1算出手段と、算出された周辺形状の歪みが小さいほど、周辺形状が平面ではないマップ点の優先度を大きく算出する第2算出手段と、周辺形状が平面であるマップ点に対応する誤差に付加する重みと比較して、周辺形状が平面ではないマップ点に対応する誤差に付加する重みを小さくすることによって、カメラの位置と姿勢の推定における周辺形状が平面であるマップ点の寄与率と比較して、周辺形状が平面ではないマップ点の寄与率が小さくなるように調整する調整手段であって、優先度が小さいほど、周辺形状が平面ではないマップ点に対応する誤差に付加する重みを小さくする調整手段と、を備え、マップ点は、撮像対象における特徴点に対応する世界座標系の三次元点である、ことを特徴としている。
一態様における位置・姿勢推定方法は、処理対象の撮像画像上の特徴点と予め保持されているマップ点とをマッチングし、マッチングに成功した特徴点と対応するマップ点を撮像画像上に投影した投影点との誤差に基づいて、処理対象の撮像画像を撮像したカメラの位置と姿勢を推定する位置・姿勢推定装置の位置・姿勢推定方法であって、マップ点の周辺形状を特定し、特定した周辺形状が平面であるか否かを判定し、周辺形状が平面ではないマップ点の周辺形状の歪みを算出し、算出された周辺形状の歪みが小さいほど、周辺形状が平面ではないマップ点の優先度を大きく算出し、周辺形状が平面であるマップ点に対応する誤差に付加する重みと比較して、周辺形状が平面ではないマップ点に対応する誤差に付加する重みを小さくすることによって、カメラの位置と姿勢の推定における周辺形状が平面であるマップ点の寄与率と比較して、周辺形状が平面ではないマップ点の寄与率が小さくなるように調整し、マップ点は、撮像対象における特徴点に対応する世界座標系の三次元点であり、前記調整では、優先度が小さいほど、周辺形状が平面ではないマップ点に対応する誤差に付加する重みを小さくする、ことを特徴としている。
一態様におけるプログラムは、処理対象の撮像画像上の特徴点と予め保持されているマップ点とをマッチングし、マッチングに成功した特徴点と対応するマップ点を撮像画像上に投影した投影点との誤差に基づいて、処理対象の撮像画像を撮像したカメラの位置と姿勢を推定する位置・姿勢推定装置のコンピュータに、マップ点の周辺形状を特定し、特定した周辺形状が平面であるか否かを判定し、周辺形状が平面ではないマップ点の周辺形状の歪みを算出し、算出された周辺形状の歪みが小さいほど、周辺形状が平面ではないマップ点の優先度を大きく算出し、周辺形状が平面であるマップ点に対応する誤差に付加する重みと比較して、周辺形状が平面ではないマップ点に対応する誤差に付加する重みを小さくすることによって、カメラの位置と姿勢の推定における周辺形状が平面であるマップ点の寄与率と比較して、周辺形状が平面ではないマップ点の寄与率が小さくなるように調整する、処理を実行させ、マップ点は、撮像対象における特徴点に対応する世界座標系の三次元点であり、前記調整する処理では、優先度が小さいほど、周辺形状が平面ではないマップ点に対応する誤差に付加する重みを小さくする、ことを特徴としている。
一つの側面では、誤マッチングの影響を低減することが可能となる。これにより、カメラの位置と姿勢の推定精度を向上させることが可能となる。
実施形態1における情報端末装置の構成例を示す機能ブロック図である。 実施形態1におけるマップ点情報記憶部の構成例を示す図である。 特徴点の種別について説明するための図である。 AとBは、いずれも、各種別の特徴について説明するための図である。 実施形態1における種別特定の方法の例を説明するための図である。 Aは、カメラ座標系と画像平面座標系について説明するための図であり、Bは、投影点について説明するための図である。 実施形態1におけるカメラの位置・姿勢の推定方法の例について説明するための図である。 実施形態1におけるマップ点情報設定処理のフローを説明するためのフローチャートの例である。 実施形態1におけるカメラ位置・姿勢推定処理のフローを説明するためのフローチャートの例である。 実施形態2における情報端末装置の構成例を示す機能ブロック図である。 実施形態2におけるマップ点情報記憶部の構成例を示す図である。 実施形態2におけるマッチング条件記憶部の構成例を示す図である。 実施形態2における優先度の算出方法の例を説明するための図である。 実施形態2における優先度を算出する関数の例を表したグラフである。 実施形態2におけるマップ点情報設定処理のフローを説明するためのフローチャートの例である。 実施形態2におけるカメラ位置・姿勢推定処理のフローを説明するためのフローチャートの例の一部である。 実施形態2におけるカメラ位置・姿勢推定処理のフローを説明するためのフローチャートの例の他の一部である。 実施形態3における情報端末装置の構成例を示す機能ブロック図である。 実施形態3における重み情報記憶部の構成例を示す図である。 実施形態3における重み情報記憶部の別の構成例を示す図である。 実施形態4における情報端末装置の構成例を示す機能ブロック図である。 実施形態4における種別特定の方法の例を説明するための図である。 実施形態4におけるマップ点情報設定処理のフローを説明するためのフローチャートの例である。 実施形態における情報端末装置のハードウェア構成の例を示す図である。
以下に本発明の実施の形態について図面を参照しながら詳細に説明する。
(実施形態1)
図1は、本実施形態1における情報端末装置1の構成例を示す機能ブロック図である。本実施形態1における情報端末装置1は、処理対象の撮像画像中の特徴点と予め保持しているマップ点とをマッチング処理により対応付けることで、カメラ(不図示)の位置と姿勢を推定する位置・姿勢推定装置である。本実施形態1における情報端末装置1は、図1に示すように、画像取得部10と、記憶部20と、出力部30と、制御部40と、を備えている。
画像取得部10は、例えば、機器インターフェース、あるいは、通信モジュールなどを備えており、接続されている撮像装置(カメラ)により撮像された撮像画像を順次取得する。そして、画像取得部10は、取得した撮像画像を、制御部40に出力する。この際、画像取得部10は、取得した撮像画像をフレームメモリ(不図示)に一時的に格納し、制御部40が処理のタイミングに合わせて撮像画像をフレームメモリから順次取得するようにしてもよい。
記憶部20は、例えば、Random Access Memory(RAM)、Read Only Memory(ROM)、Hard Disk Drive(HDD)などを備えている。記憶部20は、制御部40が備える、例えば、Central Processing Unit(CPU)のワークエリア、情報端末装置1全体を制御するための動作プログラムなどの各種プログラムを格納するプログラムエリア、各種データを格納するデータエリアとして機能する。
また、記憶部20は、図1に示すように、マップ点情報記憶部21として機能する。マップ点情報記憶部21は、マップ点ごとにそのマップ点に関する情報(以下、マップ点情報という)を対応付けて格納している。なお、マップ点は、上述したように、特徴点の3次元点であり、マッチング処理の際に撮像画像上の特徴点とのマッチング対象候補となる点である。
図2は、本実施形態1におけるマップ点情報記憶部21の構成例を示す図である。マップ点情報記憶部21は、例えば、図2に示すように、複数のマップ点とそれらのマップ点情報をテーブル化して格納してる。本実施形態1におけるマップ点情報記憶部21は、「マップ点識別子」ごとに、「3次元座標」と、「種別」と、「特徴量」と、「画像パターンテンプレート」と、を対応付けて格納している。なお、マップ点情報記憶部21に格納されている各種のマップ点情報は、後述するように撮像画像から抽出されるが、例えば、撮像対象のCADデータがある場合には、CADデータからこれらのマップ点情報を抽出し、抽出したマップ点情報を予め格納するようにしてもよい。
「マップ点識別子」は、マップ点を一意に識別可能な識別子である。「3次元座標」は、対応するマップ点の世界座標系における3次元座標であり、マップ点情報設定部42(詳しくは後述)により算出される。「種別」は、対応するマップ点の種別であり、マップ点情報設定部42により特定される。
「特徴量」は、対応するマップ点の近傍領域の濃淡変動の特徴を数値ベクトル量化したものであり、マッチング処理の際に用いられる。「画像パターンテンプレート」は、対応するマップ点の近傍領域の画像データであり、マッチング処理の際に用いることで、相関性を利用して特徴点とマップ点とのマッチングを効率的に行うことが可能となる。
マップ点(特徴点)の種別としては、本実施形態1においては、「平面模様点」と「物理端点」の2種類がある。「平面模様点」は、縁を除く平面上に存在する特徴点であり、「物理端点」は、「平面模様点」以外の特徴点、つまり、物体の角など平面の縁に存在する特徴点である。
図3は、特徴点の種別について説明するための図である。図3に示すように、特徴点MP1〜4は、縁を除く平面上に存在することから平面模様点である。これに対し、特徴点MP5とMP6は、物体(キューブ)の角の点であることから物理端点である。
図4Aと図4Bは、いずれも、各種別のマップ点(特徴点)の特徴について説明するための図であり、カメラの位置と姿勢を変化させた場合の、特徴点MP3とMP5の各近傍領域における濃淡変動の特徴の変化について説明するための図である。
カメラの位置と姿勢が変化して、撮像画像が図4Aに示す画像から図4Bに示す画像に変化したとすると、平面模様点である特徴点MP3の近傍領域における濃淡変動の特徴の変化は、図4に示すように、非常に小さい。このように、平面模様点である特徴点は、カメラの動きに対する近傍領域における濃淡変動の特徴の変化が小さい。これに対し、物理端点である特徴点MP5の近傍領域における濃淡変動の特徴の変化は、図4に示すように、非常に大きい。これは、カメラの位置と姿勢が変化して、物理的な遮蔽(オクルージョン)が発生し、物体(キューブ)の右側面が前面の影に入ってしまい、更に、近傍領域に背部の壁が写り込んでしまっているからである。このように、物理端点である特徴点は、カメラの動きに対する近傍領域における濃淡変動の特徴の変化が大きい。
図1に戻り、出力部30は、例えば、機器インターフェース、あるいは、通信モジュールなどを備えており、出力情報生成部46(詳しくは後述)により生成された出力情報を、接続されている表示装置(不図示)に出力する。
制御部40は、例えば、CPUなどを備えており、記憶部20のプログラムエリアに格納されている動作プログラムを実行して、図1に示すように、特徴点検出部41と、マップ点情報設定部42と、マッチング条件設定部43と、マッチング処理部44と、推定部45と、出力情報生成部46としての機能を実現する。また、制御部40は、動作プログラムを実行して、情報端末装置1全体を制御する制御処理や詳しくは後述のマップ点情報設定処理などの処理を実行する。
特徴点検出部41は、入力された撮像画像を分析し、注目点の近傍領域における濃淡変動が大きく、濃淡変動によって注目点の画像上の位置が一意に規定される点を特徴点として検出する。特徴点の検出は、HarrisオペレータやFeature from Accelerated Segment Test(FAST)特徴検出など任意の技術を用いることが可能である。なお、以下において、特徴点検出部41により検出された撮像画像上の特徴点を、検出点とも称する。
マップ点情報設定部42は、マップ点情報記憶部21の設定を行う。より具体的には、マップ点情報設定部42は、例えば、逐次残差法や面積相関法といったステレオマッチング法を用いて、特徴点検出部41により検出された、2枚の撮像画像における特徴点をマッチングする。そして、マップ点情報設定部42は、マッチングに成功した特徴点の3次元座標をステレオ処理で算出する。
そして、マップ点情報設定部42は、マッチングに成功した各特徴点において、該特徴点(注目特徴点)と隣接する特徴点(以下、隣接特徴点という)との位置関係を検出する。この際、マップ点情報設定部42は、予め定められた所定個数(例えば、3以上)の隣接特徴点を、例えば、距離が近い順に選択する。そして、マップ点情報設定部42は、マッチングに成功した各特徴点の種別を特定する。つまり、マップ点情報設定部42は、注目特徴点と選択した隣接特徴点が同一平面上に分布している場合には、その注目特徴点の種別は「平面模様点」であると特定し、一方、注目特徴点と選択した隣接特徴点が同一平面上に分布していない場合には、その注目特徴点の種別は「物理端点」であると特定する。
更に、マップ点情報設定部42は、マッチングに成功した各特徴点の特徴量を算出すると共に、マッチングに成功した各特徴点の画像パターンテンプレートを生成する。そして、マップ点情報設定部42は、マップ点情報(3次元座標、種別、特徴量、画像パターンテンプレート)をマップ点識別子ごとに対応つけてマップ点情報記憶部21に格納する。
ここで、図5を参照して、具体例にしたがって、本実施形態1におけるマップ点(特徴点)の種別特定の方法について説明する。図5は、本実施形態1における種別特定の方法の例を説明するための図である。
注目特徴点MP7の隣接特徴点として特徴点MP8〜11がマップ点情報設定部42により選択されたとすると、図5に示すように、注目特徴点MP7と隣接特徴点8〜11の全てが同一平面上に分布していない。したがって、この場合、マップ点情報設定部42は、注目特徴点MP7の種別を「物理端点」であると特定する。
これに対して、注目特徴点MP12の隣接特徴点として特徴点MP13〜16がマップ点情報設定部42により選択されたとすると、図5に示すように、注目特徴点MP12と隣接特徴点13〜16の全てが同一平面上に分布している。したがって、この場合、マップ点情報設定部42は、注目特徴点MP12の種別を「平面模様点」であると特定する。
図1に戻り、マッチング条件設定部43は、特徴点検出部41により検出された撮像画像上の特徴点(検出点)とマッチングさせるマッチング対象となるマップ点の選択条件などのマッチング条件を設定する。本実施形態1においては、マッチング条件設定部43は、「平面模様点」のマップ点を選択対象とする選択条件をマッチング条件として設定する。これにより、カメラの動きにより近傍領域における濃淡変動の特徴の変化が大きい「物理端点」を除外してマッチングを行うことができ、誤マッチングの発生を抑制することが可能となる。
マッチング処理部44は、マッチング条件設定部43により設定されたマッチング条件(本実施形態1においては選択条件)に従ってマップ点を選択し、特徴点検出部41により検出された撮像画像上の特徴点(検出点)と選択したマップ点とをマッチングする。より具体的には、マッチング処理部44は、マップ点情報記憶部21に格納されている特徴量及び/又は画像パターンテンプレートに基づいて、特徴点(検出点)とマップ点とをマッチングする。マッチング方法としては、例えば、Frame to Frame Tracking法やDetection法や両方法をミックスした方法など各種の方法を用いることができる。
本実施形態1においては、マッチング条件設定部43は、「平面模様点」のマップ点をマッチング対象とする選択条件をマッチング条件として設定することから、マッチング処理部44は、マップ点情報記憶部21に格納されているマップ点の中から種別が「平面模様点」のマップ点を選択し、選択したマップ点と検出点とのマッチングを行う。これにより、カメラの動きにより近傍領域における濃淡変動の特徴の変化が大きい「物理端点」を除外してマッチングを行うことができ、誤マッチングの発生を抑制することが可能となる。
ここで、図6を参照して、カメラ座標系などの座標系についてと、実世界(世界座標系)における撮像対象上の特徴点(以下、三次元点という)と対応する三次元点を撮像画像上に投影した点(以下、投影点という)との関係について簡単に説明する。図6Aは、カメラ座標系と画像平面座標系について説明するための図であり、図6Bは、投影点について説明するための図である。
図6Aを参照して、画像平面座標系の原点Oiは光軸と撮像画像を表す画像平面IPとの交点にとり、画像平面IPの水平方向をXi軸、垂直方向をYi軸にとる。また、カメラの光点をカメラ座標系の原点Ocとし、カメラ座標系のZc軸は光軸の反対方向、Xc軸は画像平面IPの水平方向と平行に、Yc軸は画像平面IPの垂直方向と平行にとる。
次に、図6Bを参照して、カメラ座標系の原点Oc(カメラの光点)と三次元点Spi=(xi,yi,zi)とを結ぶ直線と画像平面IPとの交点が、三次元点Spiに対応する投影点Xp’i=(u’i,v’i)となる。つまり、カメラ座標系の原点Ocと画像平面座標系の投影点Xp’iと世界座標系の三次元点Spiは共線条件を満たす関係にある。
図1に戻り、推定部45は、マッチング処理部44によるマッチングに成功した特徴点(検出点)とマップ点との組に基づいて、カメラの位置と姿勢を推定する。より具体的には、推定部45は、特徴点(検出点)と対応するマップ点を撮像画像上に投影した投影点との距離の2乗和、つまり、特徴点(検出点)と対応するマップ点の投影点との2乗誤差和Eが最小となるカメラ姿勢行列Mを算出することで、従来技術に従って、カメラの位置と姿勢を推定する。なお、2乗誤差和以外に、平均誤差や誤差和などを用いることも可能である。
マッチングに成功した特徴点(検出点)の座標をXpi=(ui,vi)とし、対応するマップ点の投影点の座標をXp’i=(u’i,v’i)とすると、マッチングに成功した特徴点(検出点)と対応するマップ点の投影点との2乗誤差和Eは、以下の式1で表すことができる。
E=Σ|Xpi−Xp’i| ・・・・・(式1)
ここで、図7は、本実施形態1におけるカメラの位置・姿勢の推定方法の例について説明するための図である。図7に示す例は、マップ点である三次元点Sp1〜Sp6とそれらの投影点Xp’1〜Xp’6と三次元点Sp1〜Sp6とのマッチングに成功した撮像画像上の特徴点(検出点)Xp1〜Xp6との関係を模式的に示したものである。
図1に戻り、出力情報生成部46は、推定部45により推定されたカメラの位置と姿勢とに基づいて、表示装置(不図示)の表示画面上に表示されている撮像画像に重畳表示させる内容などの出力情報を生成する。
次に、図8を参照して、本実施形態1におけるマップ点情報設定処理の流れについて説明する。図8は、本実施形態1におけるマップ点情報設定処理のフローを説明するためのフローチャートの例である。本マップ点情報設定処理は、例えば、ユーザによる操作部(不図示)を介した所定の操作(特定のアプリケーションの起動など)をトリガとして開始される。なお、本マップ点情報設定処理は、撮像画像が取得される度、あるいは、所定の間隔で、繰り返し実行されてもよい。
画像取得部10は、1枚目の撮像画像を取得し、取得した撮像画像を制御部40に出力する(ステップS001)。特徴点検出部41は、入力された1枚目の撮像画像の特徴点を検出する(ステップS002)。
そして、画像取得部10は、2枚目の撮像画像を取得し、取得した撮像画像を制御部40に出力する(ステップS003)。特徴点検出部41は、入力された2枚目の撮像画像の特徴点を検出する(ステップS004)。
そして、マップ点情報設定部42は、1枚目と2枚目の撮像画像の特徴点をステレオマッチングすると共に(ステップS005)、マッチングに成功した各特徴点の3次元座標を算出する(ステップS006)。そして、マップ点情報設定部42は、マッチングに成功した特徴点ごとに、所定個数の隣接特徴点を選択し(ステップS007)、該特徴点とその隣接特徴点との位置関係を検出する(ステップS008)。
そして、マップ点情報設定部42は、マッチングに成功した特徴点ごとに種別を特定する(ステップS009)。そして、マップ点情報設定部42は、マッチングに成功した各特徴点の特徴量を算出すると共に、画像パターンテンプレートを生成する(ステップS010)。
そして、マップ点情報設定部42は、マップ点情報(3次元座標、種別、特徴量、画像パターンテンプレート)をマップ点識別子ごとに対応つけてマップ点情報記憶部21に格納する(ステップS011)。そして、本処理は終了する。
次に、図9を参照して、本実施形態1におけるカメラ位置・姿勢推定処理の流れについて説明する。図9は、本実施形態1におけるカメラ位置・姿勢推定処理のフローを説明するためのフローチャートの例である。本カメラ位置・姿勢推定処理は、例えば、マップ点情報設定処理が実行されマップ点情報がマップ点情報記憶部21に格納されたことをトリガとして開始される。
画像取得部10は、撮像画像を取得し、取得した撮像画像を制御部40に出力する(ステップS201)。そして、特徴点検出部41は、入力された撮像画像の特徴点を検出する(ステップS202)。そして、マッチング条件設定部43は、マッチング対象のマップ点の種別を平面模様点とするマッチング条件を設定する(ステップS203)。
マッチング処理部44は、種別が平面模様点であるマップ点を選択し(ステップS204)、検出された特徴点(検出点)と選択したマップ点とをマッチングする(ステップS205)。そして、推定部45は、マッチングに成功したマップ点と特徴点(検出点)との組みに基づいて、カメラの位置と姿勢を推定する(ステップS206)。
そして、制御部40は、処理の終了が指示されたか否かを判定する(ステップS207)。制御部40は、例えば、ユーザが操作部(不図示)を介して所定の操作(例えば、アプリケーションの終了)がなされた否かを判定することで、処理の終了が指示されたか否かを判定する。制御部40により終了の指示はまだ無いと判定された場合には(ステップS207;NO)、処理はステップS201に戻り、前述の処理を繰り返す。一方、制御部40により、終了が指示されたと判定された場合には(ステップS207;YES)、本処理は終了する。
上記実施形態1によれば、情報端末装置1は、撮像画像上の特徴点(検出点)とのマッチング対象候補となる各マップ点の種別を特定し、マップ点の内で種別が平面模様点のマップ点を選択する。そして、情報端末装置1は、特徴点(検出点)と選択したマップ点とをマッチングし、マッチングに成功した特徴点(検出点)とマップ点の投影点との誤差に基づいてカメラの位置と姿勢を推定する。すなわち、誤マッチングの可能性がより高い物理端点をマッチング対象から除外し、カメラの位置と姿勢の推定における物理端点の寄与率をゼロにする。こうすることで、誤マッチングの発生を抑制することが可能となり、カメラの位置と姿勢の推定精度を向上させることが可能となる。
また、上記実施形態1によれば、情報端末装置1は、2枚の撮像画像をステレオマッチングして検出した特徴点の3次元座標を算出する。そして、情報端末装置1は、所定個数の隣接特徴点との位置関係に基づいて、各特徴点の種別を特定する。
(実施形態2)
実施形態1においては、撮像画像上に検出された特徴点(検出点)とマップ点とのマッチング処理時に種別が平面模様点のマップ点のみをマッチング対象とした。本実施形態2においては、マッチングに成功したマップ点と特徴点(検出点)との組数が所定の閾値Z(詳しくは後述)に満たない場合には、マッチングに成功した組数が所定の閾値Z以上となるように、種別が物理端点のマップ点もマッチング対象に含めてマッチング条件を調整する。
こうすることで、推定時に用いるマッチングに成功した特徴点(検出点)とマップ点との組数を所定数以上に維持することが可能となり、平面模様点の数が少なくカメラの位置と姿勢の推定精度が劣化してしまうことが予測される場合であっても、推定精度をより高くすることが可能となる。
図10は、本実施形態2における情報端末装置1の構成例を示す機能ブロック図である。本実施形態2における情報端末装置1の基本的な構成は、実施形態1の場合と同じである。但し、図10に示すように、記憶部20がマッチング条件記憶部22として更に機能する点と、制御部40が優先度算出部47として更に機能する点と、で実施形態1の場合と異なっている。また、マップ点情報記憶部21が優先度の情報を更に格納する点で実施形態1の場合と異なっている。更に、マップ点情報設定部42とマッチング条件設定部43とマッチング処理44がそれぞれ果たす機能が、実施形態1の場合と若干異なっている。
ここで、図11を参照して、本実施形態2におけるマップ点情報記憶部21の構成について説明する。図11は、本実施形態2におけるマップ点情報記憶部21の構成例を示す図である。本実施形態2におけるマップ点情報記憶部21では、図11に示すように、種別が物理端点のマップ点に対して「優先度」が更に対応付けられて格納されている。こうすることで、マッチング対象として種別が物理端点のマップ点を選択させる際に、優先度に基づいて物理端点のマップ点を選択させることが可能となる。
「優先度」は、マッチング処理部44が物理端点のマップ点を選択する場合の一つの尺度であり、優先度算出部47により算出される。なお、本実施形態2においては、優先度の値が高い程、優先度が高いことを示している。優先度については更に後述する。
次に、図12を参照して、マッチング条件記憶部22の構成について説明する。図12は、本実施形態2におけるマッチング条件記憶部22の構成例を示す図である。マッチング条件記憶部22は、例えば、図12に示すように、情報をテーブル化して格納している。マッチング条件記憶部22は、マッチング条件設定部43がマップ点の選択条件などのマッチング条件を設定する際に参照され、図12に示すように、「設定回数」ごとに「マッチング条件」を対応付けて格納している。
「設定回数」は、マッチング条件の設定の回数を示しており、マッチング条件設定部43は、例えば、マッチング条件の設定が2回目の場合には、設定回数“2”に対応するマッチング条件を設定する。なお、最初の設定されるマッチング条件(設定回数“1”に対応するマッチング条件)は、本実施形態2においては、種別が「平面模様点」のマップ点をマッチング対象とする選択条件である。
「マッチング条件」は、例えば、マッチング対象とする物理端点のマップ点の選択条件などのマッチング処理に関する条件である。マッチング条件は、例えば、優先度が高い順に所定個数の物理端点を選択させるような選択条件であってもよい。また、マッチング条件は、例えば、優先度に関係なく無作為に所定個数の物理端点を選択させるような選択条件であってもよい。また、マッチング条件は、例えば、優先度が所定値以上の物理端点を選択させるような選択条件であってもよい。また、マッチング条件は、例えば、マッチング処理の際にマッチングに成功したと判定する、特徴点(検出点)とマップ点との類似度の閾値を低くさせるような条件であってもよい。所定個数は常に同じであってもよいし、設定回数に従って可変(例えば、少なく)してもよい。但し、カメラの動きによる物理端点の近傍領域における濃淡変動の特徴の変化が小さい程優先度が高くなるようにしていることから、優先度が高い順に選択することが好ましい。また、設定回数が増えるにしたがって、マッチング条件は条件が緩和されるように設定される。
図10に戻り、制御部40は、例えば、CPUなどを備えており、記憶部20のプログラムエリアに格納されている動作プログラムを実行して、図10に示すように、特徴点検出部41と、マップ点情報設定部42と、マッチング条件設定部43と、マッチング処理部44と、推定部45と、出力情報生成部46と、優先度算出部47としての機能を実現する。また、制御部40は、動作プログラムを実行して、情報端末装置1全体を制御する制御処理や詳しくは後述のマップ点情報設定処理などの処理を実行する。
優先度算出部47は、種別が物理端点のマップ点(特徴点)の周辺形状の歪み(反り)を算出し、算出した周辺形状(反り)の歪みに基づいて、種別が物理端点のマップ点(特徴点)の優先度を算出する。より具体的には、優先度算出部47は、物理端点ごとに、例えば、該物理端点(注目物理端点)から所定の距離範囲に存在するマップ点(特徴点)を抽出し、抽出したマップ点(特徴点)の内で所定個数(例えば、3個)のマップ点(特徴点)の組み合わせを任意に所定組数選択する。
そして、優先度算出部47は、選択したマップ点(特徴点)の組み合わせごとに、注目物理端点との位置関係を検出する。そして、優先度算出部47は、注目物理端点を含む他のマップ点(特徴点)が分布する平面と、その平面に分布していないマップ点(特徴点)と注目物理端点とを結ぶ線分と、がなす角度θをそれぞれ算出し、更に、それらの平均角度を算出する。つまり、優先度算出部47は、注目物理端点の周辺形状の歪み(反り)を算出する。
例えば、図13を参照して、優先度算出部47が、注目物理端点MP17から所定の距離範囲に存在するマップ点(特徴点)の組み合わせとしてマップ点(特徴点)MP18〜MP20から成る組を選択したとする。マップ点(特徴点)MP20は、図13に示すように、注目物理端点MP17とマップ点(特徴点)MP18とMP19とが分布する平面上に分布していない。したがって、この場合、優先度算出部47は、注目物理端点MP17とマップ点(特徴点)MP18とMP19とが分布する平面と、注目物理端点MP17とマップ点(特徴点)MP20とを結ぶ線分と、がなす角度θを算出する。ここで、図13は、本実施形態2における優先度の算出方法の例を説明するための図である。
そして、優先度算出部47は、例えば、図14に示すように、周辺形状の歪み(反り)が小さいほど優先度が高くなるように定義された関数Fにしたがって、算出した平均角度(周辺形状の歪み)に基づいて優先度を算出する。つまり、優先度算出部47は、物理端点の周辺形状が平面に近いほど、その物理端点における優先度を高くする。ここで、図14は、本実施形態2における優先度を算出する関数Fの例を表したグラフである。
なお、周辺形状の歪みは、例えば、注目物理端点から所定の距離範囲に存在するマップ点(特徴点)と注目物理端点とを平面近似して、例えば、近似した平面(以下、近似平面という)からの平均誤差や誤差の総和や2乗誤差の総和などを算出することで求めることもできる。
近似平面が、例えば、aX+bY+cZ=dだとすると、注目物理端点から所定の距離範囲に存在するマップ点(特徴点)と注目物理端点の近似平面からの2乗誤差の総和(周辺形状の歪み)Dは以下の式2に従って求めることができる。
D=Σ|d−aX−bY−cZ| ・・・・・(式2)
図10に戻り、マップ点情報設定部42は、マップ点情報記憶部21の設定を行う。より具体的には、マップ点情報設定部42は、例えば、逐次残差法や面積相関法といったステレオマッチング法を用いて、特徴点検出部41により検出された、2枚の撮像画像における特徴点をマッチングする。そして、マップ点情報設定部42は、マッチングに成功した特徴点の3次元座標をステレオ処理で算出する。
そして、マップ点情報設定部42は、マッチングに成功した各特徴点において、該特徴点(注目特徴点)と隣接特徴点との位置関係を検出する。この際、マップ点情報設定部42は、予め定められた所定個数(例えば、3以上)の隣接特徴点を、例えば、距離が近い順に選択する。そして、マップ点情報設定部42は、マッチングに成功した各特徴点の種別を特定する。つまり、マップ点情報設定部42は、注目特徴点と選択した隣接特徴点が同一平面上に分布している場合には、その注目特徴点の種別は「平面模様点」であると特定し、一方、注目特徴点と選択した隣接特徴点が同一平面上に分布していない場合には、その注目特徴点の種別は「物理端点」であると特定する。
更に、マップ点情報設定部42は、マッチングに成功した各特徴点の特徴量を算出すると共に、マッチングに成功した各特徴点の画像パターンテンプレートを生成する。そして、マップ点情報設定部42は、種別が物理端点であるマップ点に関しては優先度算出部47により算出された優先度を含むマップ点情報をマップ点識別子ごとに対応つけてマップ点情報記憶部21に格納する。
マッチング条件設定部43は、マッチング条件記憶部22を参照して、特徴点検出部41により検出された撮像画像上の特徴点(検出点)とマッチングさせるマッチング対象となるマップ点の選択条件などのマッチング条件を設定する。より具体的には、マッチング条件設定部43は、マッチング条件記憶部22を参照して、マッチング条件の設定回数に基づいてマッチング条件を特定し、特定したマッチング条件を設定する。なお、本実施形態2においては、マッチング条件設定部43は、最初のマッチング条件として、種別が「平面模様点」のマップ点をマッチング対象とする選択条件を設定する。
そして、マッチング処理部44によるマッチングの結果、マッチングに成功した特徴点(検出点)とマップ点との組数が所定の閾値Z以上とならない場合には、マッチング条件設定部43は、マッチング条件記憶部22を参照し、別のマッチング条件を設定して、マッチング条件を緩和する。マッチング条件設定部43は、この処理を、マッチングに成功した組数が所定の閾値Z以上となる迄、あるいは、未選択の物理端点が無くなる迄、繰り返す。
ここで、所定の閾値Zは、カメラの位置と姿勢の推定を行う上で、推定精度の揺らぎを解消するために最低限必要となる特徴点(検出点)とマップ点との組数を実験的に求めた値である。
マッチング処理44は、マッチング条件設定部43により設定されたマッチング条件がマップ点の選択条件である場合には、その選択条件に従って、マップ点を選択する。そして、マッチング処理44は、特徴点検出部41により検出された撮像画像上の特徴点(検出点)と選択したマップ点とを再マッチングする。マッチング条件が変更され、その変更がマップ点の選択条件の変更を伴う場合には、マッチング処理44は、変更後の選択条件に従ってマップ点を選択し、変更後のマッチング条件に従って、選択したマップ点と撮像画像上の特徴点(検出点)とを再マッチングする。
これに対し、変更後のマッチング条件がマップ点の選択条件の変更を伴うものではない場合には、マッチング処理部44は、変更後のマッチング条件に従って、特徴点(検出点)と以前に選択したマップ点とをマッチングする。マップ点の選択条件の変更を伴わないマッチング条件としては、例えば、マッチング処理の際にマッチングに成功したと判定する、特徴点(検出点)とマップ点との類似度の閾値を低くするマッチング条件などである。
次に、図15を参照して、本実施形態2におけるマップ点情報設定処理の流れについて説明する。図15は、本実施形態2におけるマップ点情報設定処理のフローを説明するためのフローチャートの例である。本マップ点情報設定処理は、例えば、ユーザによる操作部(不図示)を介した所定の操作(特定のアプリケーションの起動など)をトリガとして開始される。なお、本マップ点情報設定処理は、撮像画像が取得される度、あるいは、所定の間隔で、繰り返し実行されてもよい。
画像取得部10は、1枚目の撮像画像を取得し、取得した撮像画像を制御部40に出力する(ステップS001)。特徴点検出部41は、入力された1枚目の撮像画像の特徴点を検出する(ステップS002)。
そして、画像取得部10は、2枚目の撮像画像を取得し、取得した撮像画像を制御部40に出力する(ステップS003)。特徴点検出部41は、入力された2枚目の撮像画像の特徴点を検出する(ステップS004)。
そして、マップ点情報設定部42は、1枚目と2枚目の撮像画像の特徴点をステレオマッチングすると共に(ステップS005)、マッチングに成功した各特徴点の3次元座標を算出する(ステップS006)。そして、マップ点情報設定部42は、マッチングに成功した特徴点ごとに、所定個数の隣接特徴点を選択し(ステップS007)、該特徴点とその隣接特徴点との位置関係を検出する(ステップS008)。
そして、マップ点情報設定部42は、マッチングに成功した特徴点ごとに種別を特定する(ステップS009)。そして、マップ点情報設定部42は、マッチングに成功した各特徴点の特徴量を算出すると共に、画像パターンテンプレートを生成する(ステップS010)。
そして、優先度算出部47は、種別が物理端点のマップ点(特徴点)の周辺形状の歪みを算出し(ステップS301)、算出した周辺形状の歪みに基づいて、種別が物理端点のマップ点(特徴点)の優先度を算出する(ステップS302)。
そして、マップ点情報設定部42は、種別が物理端点であるマップ点に関しては優先度算出部47により算出された優先度を含むマップ点情報をマップ点識別子ごとに対応つけてマップ点情報記憶部21に格納する(ステップS011A)。そして、本処理は終了する。
次に、図16と図17を参照して、本実施形態2におけるカメラ位置・姿勢推定処理の流れについて説明する。図16と図17は、それぞれ、本実施形態2におけるカメラ位置・姿勢推定処理のフローを説明するためのフローチャートの例の一部と、他の一部である。本カメラ位置・姿勢推定処理は、例えば、マップ点情報設定処理が実行されマップ点情報がマップ点情報記憶部21に格納されたことをトリガとして開始される。
画像取得部10は、撮像画像を取得し、取得した撮像画像を制御部40に出力する(ステップS201)。そして、特徴点検出部41は、入力された撮像画像の特徴点を検出する(ステップS202)。そして、マッチング条件設定部43は、マッチング対象のマップ点の種別を平面模様点とするマッチング条件を設定する(ステップS203)。
マッチング処理部44は、種別が平面模様点であるマップ点を選択し(ステップS204)、検出された特徴点(検出点)と選択したマップ点とをマッチングする(ステップS205)。そして、マッチング条件設定部43は、マッチングに成功した特徴点(検出点)とマップ点との組数が所定の閾値Z以上であるか否かを判定する(ステップS401)。
マッチング条件設定部43により、マッチングに成功した組数が所定の閾値Z以上であると判定された場合には(ステップS401;YES)、処理はステップS206の処理へと進む。一方、マッチングに成功した組数が所定の閾値Z未満であると判定した場合には(ステップS401;NO)、マッチング条件設定部43は、マッチング条件記憶部22を参照して、マッチング条件を変更(緩和)する(ステップS402)。
そして、マッチング処理部44は、変更後のマッチング条件がマップ点の選択条件の変更を含むか否かを判定する(ステップS403)。マップ点の選択条件の変更を含むと判定した場合には(ステップS403;YES)、マッチング処理部44は、更に、未選択の物理端点が有るか否かを判定する(ステップS404)。
未選択の物理端点が有ると判定した場合には(ステップS404;YES)、マッチング処理部44は、変更後のマッチング条件に従って物理端点を選択する(ステップS405)。そして、マッチング処理部44は、変更後のマッチング条件に従って、選択した物理端点と特徴点(検出点)とを再マッチングする(ステップS406)。そして、処理は後述のステップS407の処理へと進む。一方、マッチング処理部44により、未選択の物理端点が無いと判定された場合には(ステップS404;NO)、処理はステップS206の処理へと進む。
ステップS403の処理において、マップ点の選択条件の変更を含まないと判定した場合には(ステップS403;NO)、マッチング処理部44は、変更後のマッチング条件に従って、前回選択した物理端点と特徴点(検出点)とを再マッチングする(ステップS406)。
そして、マッチング条件設定部43は、マッチングに成功した特徴点(検出点)とマップ点との組数が所定の閾値Z以上であるか否かを再度判定する(ステップS407)。マッチング条件設定部43により、マッチングに成功した組数が所定の閾値Z未満であると判定された場合には(ステップS407;NO)、処理はステップS402の処理へと戻り、前述の処理を繰り返す。
一方、マッチング条件設定部43により、マッチングに成功した組数が所定の閾値Z以上であると判定された場合には(ステップS407;YES)、推定部45は、マッチングに成功したマップ点と特徴点(検出点)との組みに基づいて、カメラの位置と姿勢を推定する(ステップS206)。
そして、制御部40は、処理の終了が指示されたか否かを判定する(ステップS207)。制御部40は、例えば、ユーザが操作部(不図示)を介して所定の操作(例えば、アプリケーションの終了)がなされた否かを判定することで、処理の終了が指示されたか否かを判定する。制御部40により終了の指示はまだ無いと判定された場合には(ステップS207;NO)、処理はステップS201に戻り、前述の処理を繰り返す。一方、制御部40により、終了が指示されたと判定された場合には(ステップS207;YES)、本処理は終了する。
上記実施形態2によれば、情報端末装置1は、撮像画像上の特徴点(検出点)とのマッチング対象候補となる各マップ点の種別を特定し、カメラの位置と姿勢の推定における平面模様点の寄与率と比較して、カメラの位置と姿勢の推定における物理端点の寄与率を小さくする。こうすることで、誤マッチングの影響を低減し、カメラの位置と姿勢の推定精度を向上させることが可能となる。
また、上記実施形態2によれば、情報端末装置1は、撮像画像上の特徴点(検出点)とのマッチング対象候補となる各マップ点の種別を特定し、平面模様点のマップ点をマッチング対象として最初に選択する。こうすることで、カメラの位置と姿勢の推定における平面模様点の寄与率と比較して、カメラの位置と姿勢の推定における物理端点の寄与率を小さくする。これにより、誤マッチングの影響を低減し、カメラの位置と姿勢の推定精度を向上させることが可能となる。
また、上記実施形態2によれば、情報端末装置1は、平面模様点のみをマッチング対象とした際のマッチングに成功した特徴点(検出点)とマップ点との組数が所定の閾値Zに満たない場合に、マッチング条件を変更(緩和)し、変更後のマッチング条件に従って、特徴点(検出点)とマップ点との再マッチングを行う。こうすることで、マッチングに成功した組数を増やすことができることから、カメラの位置と姿勢の推定精度の揺らぎを解消し、カメラの位置と姿勢の推定精度を向上させることが可能となる。
また、上記実施形態2によれば、情報端末装置1は、マッチングに成功した特徴点(検出点)とマップ点との組数が所定の閾値Zに満たない場合に、マッチングに成功した組数が所定の閾値Zに到達するまで、マッチング条件の緩和し、特徴点(検出点)とマップ点との再マッチングを繰り返し行う。こうすることで、カメラの位置と姿勢の推定精度の揺らぎを解消するために必要な組数を維持することが可能となり、カメラの位置と姿勢の推定精度をさらに向上させることが可能となる。
また、上記実施形態2によれば、情報端末装置1は、マッチングに成功した特徴点(検出点)とマップ点との組数が所定の閾値Zに満たない場合に、物理端点を任意に選択し、選択した物理端点を含めて特徴点(検出点)との再マッチングを行う。こうすることで、マッチングに成功した組数を増やすことができることから、カメラの位置と姿勢の推定の揺らぎを解消し、カメラの位置と姿勢の推定精度を向上させることが可能となる。
また、上記実施形態2によれば、情報端末装置1は、物理端点に対して優先度を算出する。そして、情報端末装置1は、マッチングに成功した特徴点(検出点)とマップ点との組数が所定の閾値Zに満たない場合に、算出した優先度に基づいて物理端点を選択する。そして、情報端末装置1は、選択した物理端点を含めて特徴点(検出点)との再マッチングを行う。優先度は、物理端点の周辺形状の歪みが小さいほど高くする。こうすることで、誤マッチングを発生させる可能性がより低い物理端点から優先的にマッチング対象とすることが可能となり、誤マッチングの発生を抑制することが可能となる。これにより、カメラの位置と姿勢の推定精度を向上させることが可能となる。
(実施形態3)
本実施形態3においては、物理端点をマッチング対象とした場合に、カメラの位置と姿勢を推定する際の物理端点の寄与率を小さくすることで、誤マッチングが生じた場合の影響を低減させる。これにより、カメラの位置と姿勢の推定精度を向上させる。なお、本実施形態3の構成は、実施形態1と2のいずれに対しても適用することが可能であるが、ここでは、実施形態1に適用した場合の例について説明する。
図18は、本実施形態3における情報端末装置1の構成例を示す機能ブロック図である。本実施形態3における情報端末装置1の基本的な構成は、実施形態1の場合と同じである。但し、図18に示すように、記憶部20が、重み情報記憶部23として更に機能する点で、実施形態1の場合と異なっている。また、マッチング条件設定部43とマッチング処理部44と推定部45とがそれぞれ果たす機能が、実施形態1の場合と若干異なっている。
図19は、本実施形態3における重み情報記憶部23の構成例を示す図である。本実施形態3における重み情報記憶部23は、図19に示すように、マップ点の「種別」ごとに「重み」を対応付けて格納している。
「重み」は、カメラの位置と姿勢の推定時に、マッチングに成功した特徴点(検出点)と対応するマップ点の投影点との誤差(例えば、2疊誤差)に付加する重みである。本実施形態3においては、平面模様点の重みW1は物理端点の重みW2より大きく、例えば、W1=1であり、これに対して、物理端点の重みW2は、例えば、W2=0.6である。つまり、本実施形態3においては、全ての物理端点に対して同一の重みW2が適用される。
マッチング条件設定部43は、特徴点検出部41により検出された撮像画像上の特徴点(検出点)とマッチングさせるマッチング対象となるマップ点の選択条件などのマッチング条件を設定する。本実施形態3においては、マッチング条件設定部43は、全てのマップ点をマッチング対象とする選択条件をマッチング条件として設定する。
マッチング処理部44は、マッチング条件設定部43により設定されたマッチング条件に従ってマップ点を選択し、特徴点検出部41により検出された撮像画像上の特徴点(検出点)と選択したマップ点とをマッチングする。
本実施形態3においては、マッチング条件設定部43は、全てのマップ点をマッチング対象とする選択条件をマッチング条件として設定することから、マッチング処理部44は、マップ点情報記憶部21に格納されている全てのマップ点を選択し、選択したマップ点と特徴点(検出点)とのマッチングを行う。
推定部45は、マッチング処理部44によるマッチングに成功した特徴点(検出点)とマップ点との組に基づいて、カメラの位置と姿勢を推定する。この際、推定部45は、カメラの位置と姿勢の推定における平面模様点の寄与率と比較して、カメラの位置と姿勢の推定における物理端点の寄与率を小さくする。こうすることで、物理端点をマッチング対象としても、誤マッチング発生の影響を低減することが可能となり、カメラの位置と姿勢の推定精度を向上させることができる。
例えば、推定部45は、特徴点(検出点)と対応するマップ点の投影点との2乗誤差に対応するマップ点に応じた重みWpiを付加した重み付き2乗誤算Wpi|Xpi−Xp’i|の総和E’が最小となるカメラ姿勢行列Mを算出することで、従来技術に従って、カメラの位置と姿勢を推定する。推定部45は、重み情報記憶部23を参照して、マップ点の種別に基づいてマップ点に応じた重みWpiを特定する。
マッチングに成功した特徴点(検出点)と対応するマップ点の投影点との重み付き2乗誤差の総和E’は、以下の式3で表すことができる。
E’=ΣWpi|Xpi−Xp’i| ・・・・・(式3)
なお、本実施形態3の構成を実施形態2に適用した場合において、マップ点が物理端点である場合に、設定されている優先度に応じて付加する重みWpiを可変してよい。この場合、優先度が小さい程、付加する重みWpiを小さくすればよい。こうすることで、誤マッチングの可能性が高くなる周辺形状の歪み(反り)が大きな物理端点ほど付加する重みWpiを小さくすることができる。これにより、誤マッチングが生じた場合の影響をさらに低減させることができる。
この場合の重み情報記憶部23の構成は、例えば、図20に示すようにすればよい。つまり、優先度の大きさに応じた重みが対応付けられているようにすればよい。ここで、図20は、本実施形態3における重み情報記憶部23の別の構成例を示す図である。
なお、上述した方法は、カメラの位置と姿勢の推定における平面模様点の寄与率と比較して、カメラの位置と姿勢の推定における物理端点の寄与率を小さくする方法の一例である。例えば、マッチングの際に全ての物理端点を含めてマッチングを行い、推定部45は、マッチングに成功した物理端点の比率が所定値(例えば、10%)以下となるように物理端点を間引く(除外する)ことで物理端点の推定における寄与率を小さくしてもよい。
上記実施形態3によれば、情報端末装置1は、マッチングに成功した特徴点(検出点)とマップ点との組の内で、マップ点の種別が物理端点の比率が所定値以下となるように、マップ点の種別が物理端点の組を除外して、カメラの位置と姿勢の推定を行う。こうすることで、カメラの位置と姿勢の推定における物理端点の寄与率を小さくすることが可能となる。これにより、誤マッチングの影響を低減させ、カメラの位置と姿勢の推定精度を向上させることが可能となる。
また、上記実施形態3によれば、情報端末装置1は、マッチングに成功した特徴点(検出点)とマップ点の投影点との誤差に基づいて、カメラの位置と姿勢の推定を行う際に、マップ点の種別に応じた重みを誤差に付加して推定を行う。誤差に付加する重みは、平面模様点より物理端点の方を小さくする。こうすることで、カメラの位置と姿勢の推定における物理端点の寄与率を小さくすることが可能となる。これにより、誤マッチングの影響を低減させ、カメラの位置と姿勢の推定精度を向上させることが可能となる。
また、上記実施形態3によれば、物理端点に対応する誤差に付加する重みは、その物理端点に設定されている優先度に応じて可変させる。つまり、物理端点に対応する誤差に付加する重みは、優先度が小さくなる程小さくする。こうすることで、誤マッチングを発生させる可能性がより高い物理端点ほど、カメラの位置と姿勢の推定における寄与率を小さくすることができる。
(実施形態4)
本実施形態1においては、マップ点の3次元座標を算出する際に、ステレオマッチング法を用いる例について説明した。
本実施形態4においては、3D距離センサ(3次元距離センサ)(不図示)を用いてマップ点の3次元座標を取得する場合のマップ点情報設定処理について説明する。3D距離センサを用いれば、カメラとの位置関係を補正することで、撮像画像上の各画素の3次元座標をリアルタイムに取得することが可能である。なお、本実施形態4の構成は、上述の各実施形態に対して適用することが可能であるが、ここでは、実施形態2に適用した場合の例について説明する。
図21は、本実施形態4における情報端末装置1の構成例を示す機能ブロック図である。本実施形態4における情報端末装置1の基本的な構成は、実施形態2の場合と同じである。但し、図21に示すように、情報端末装置1が位置情報取得部50を更に備える点で、実施形態2の場合と異なっている。また、マップ点情報設定部42と優先度算出部47とがそれぞれ果たす機能が、実施形態2の場合と若干異なっている。
位置情報取得部50は、例えば、機器インターフェースや通信モジュールなどを備えており、接続されている3D距離センサから撮像対象の各点における3次元座標を示す情報(以下、3D位置情報(3次元位置情報)という)を取得する。そして、位置情報取得部50は、取得した3D位置情報を制御部40に出力する。
マップ点情報設定部42は、マップ点情報記憶部21の設定を行う。より具体的には、本実施形態4におけるマップ点情報設定部42は、入力された3D位置情報に基づいて、特徴点検出部41により検出された各特徴点の3次元座標を特定する。
そして、マップ点情報設定部42は、検出された各特徴点において、該特徴点(注目特徴点)と隣接特徴点との位置関係を検出する。この際、マップ点情報設定部42は、予め定められた所定個数(例えば、3以上)の隣接特徴点を、例えば、距離が近い順に選択する。そして、マップ点情報設定部42は、検出された各特徴点の種別を特定する。つまり、マップ点情報設定部42は、注目特徴点と選択した隣接特徴点が同一平面上に分布している場合には、その注目特徴点の種別は「平面模様点」であると特定し、一方、注目特徴点と選択した隣接特徴点が同一平面上に分布していない場合には、その注目特徴点の種別は「物理端点」であると特定する。
更に、マップ点情報設定部42は、検出された各特徴点の特徴量を算出すると共に、検出された各特徴点の画像パターンテンプレートを生成する。そして、マップ点情報設定部42は、種別が物理端点であるマップ点に関しては優先度算出部47により算出された優先度を含むマップ点情報をマップ点識別子ごとに対応つけてマップ点情報記憶部21に格納する。
なお、3D距離センサの3D位置情報を用いることで、マップ点情報設定部42は、注目特徴点から所定の距離範囲に存在する所定個数(例えば、3以上)の画素を任意に選択し、選択した画素と注目特徴点との位置関係に基づいて、検出された各特徴点の種別を特定することも可能である。
ここで、図22を参照して、選択した画素と注目特徴点との位置関係に基づく特徴点の種別の特定方法について説明する。図22は、本実施形態4における種別特定の方法の例を説明するための図である。
3D距離センサの画像は、3D距離センサからの距離に応じて各画素の明るさ(輝度)を変化させた画像である。つまり、3D距離センサの画像は、距離が遠いほど画素の明るさを暗く(輝度を低く)した画像である。この3D距離センサの画像における特徴点MP21の近傍領域の画像に注目すると、明るい画素の領域と暗い画素の領域が混在していることが分かる。
これに対し、3D距離センサの画像における特徴点MP22の近傍領域の画像に注目すると、その領域内の各画素の明るさ(輝度)はほぼ同じであることが分かる。このように、3D距離センサを用いれば、撮像画像上の各画素の3次元座標を正確に得ることが可能である。したがって、マップ点情報設定部42は、撮像画像上の注目特徴点から所定の距離範囲(所定画素数範囲)に存在する所定個数(例えば、3以上)の画素を任意に選択し、3D位置情報に基づいて、選択した複数の画素の3次元座標を特定することで、検出された各特徴点の種別を特定することができる。
図21に戻り、優先度算出部47は、種別が物理端点のマップ点(特徴点)の周辺形状の歪み(反り)を算出し、算出した周辺形状(反り)の歪みに基づいて、種別が物理端点のマップ点(特徴点)の優先度を算出する。優先度は、実施形態2で説明した方法を用いることで算出することが可能である。より具体的には、優先度算出部47は、物理端点ごとに、例えば、該物理端点(注目物理端点)から所定の距離範囲(所定画素数範囲)に存在する複数の画素を任意に選択し、選択した画素の内で所定個数(例えば、3個)の特徴点(マップ点)の組み合わせを任意に所定組数選択する。選択する画素は、もちろん、マップ点(特徴点)に対応する画素であってもよい。
そして、優先度算出部47は、選択した画素の組み合わせごとに、3D位置情報に基づいて、注目物理端点との位置関係を検出する。そして、優先度算出部47は、注目物理端点と少なくとも一部の画素(世界座標系における対応する点)が分布する平面と、その平面に分布していない画素(世界座標系における対応する点)と注目物理端点とを結ぶ線分と、がなす角度θをそれぞれ算出し、更に、それらの平均角度を算出する。つまり、優先度算出部47は、注目物理端点の周辺形状の歪み(反り)を算出する。
そして、優先度算出部47は、例えば、図14に例示した関数Fにしたがって、算出した平均角度(周辺形状の歪み)に基づいて優先度を算出する。つまり、優先度算出部47は、物理端点の周辺の形状が平面に近いほど、その物理端点における優先度を高くする。
なお、周辺形状の歪みは、例えば、注目物理端点から所定の距離範囲(所定画素数範囲)に存在する画素(世界座標系における対応する点)と注目物理端点とを平面近似して、例えば、近似した平面(以下、近似平面という)からの平均誤差や誤差の総和や2乗誤差の総和などを算出することで求めることもできる。
次に、図23を参照して、本実施形態4におけるマップ点情報設定処理の流れについて説明する。図23は、本実施形態4におけるマップ点情報設定処理のフローを説明するためのフローチャートの例である。本マップ点情報設定処理は、例えば、ユーザによる操作部(不図示)を介した所定の操作(特定のアプリケーションの起動など)をトリガとして開始される。なお、本マップ点情報設定処理は、撮像画像が取得される度、あるいは、所定の間隔で、繰り返し実行されてもよい。
画像取得部10は、撮像画像を取得し、取得した撮像画像を制御部40に出力する(ステップS501)。特徴点検出部41は、入力された撮像画像の特徴点を検出する(ステップS502)。そして、位置情報取得部50は、3D位置情報を取得し、取得した3D位置情報を制御部40に出力する(ステップS503)。
そして、マップ点情報設定部42は、入力された3D位置情報に基づいて、検出された各特徴点の3次元座標を特定する(ステップS504)。そして、マップ点情報設定部42は、検出された特徴点ごとに、所定個数の隣接特徴点を選択し(ステップS505)、3D位置情報に基づいて、該特徴点(注目特徴点)とその隣接特徴点との位置関係を検出する(ステップS506)。
そして、マップ点情報設定部42は、検出された特徴点ごとに種別を特定する(ステップS507)。そして、マップ点情報設定部42は、検出された各特徴点の特徴量を算出すると共に、画像パターンテンプレートを生成する(ステップS508)。
そして、優先度算出部47は、種別が物理端点のマップ点(特徴点)の周辺形状の歪みを算出し(ステップS509)、算出した周辺形状の歪みに基づいて、種別が物理端点のマップ点(特徴点)の優先度を算出する(ステップS510)。
そして、マップ点情報設定部42は、種別が物理端点であるマップ点に関しては優先度算出部47により算出された優先度を含むマップ点情報をマップ点識別子ごとに対応つけてマップ点情報記憶部21に格納する(ステップS511)。そして、本処理は終了する。
上記実施形態4によれば、情報端末装置1は、撮像画像上の特徴点を検出し、3D距離センサによる3D位置情報に基づいて、検出した各特徴点の3次元座標を特定することで、マップ点を設定する。こうすることで、リアルタイムにマップ点情報を設定することが可能となる。
また、上記実施形態4によれば、情報端末装置1は、検出した特徴点(検出点)の近傍に存在する複数の画素を任意に選択し、選択した画素(世界座標系における対応する点)と特徴点(検出点)との位置関係に基づいて、各特徴点(検出点)の種別を特定する。
図24は、実施形態1乃至4における情報端末装置1のハードウェア構成の例を示す図である。図1などに示す情報端末装置1は、例えば、図24に示す各種ハードウェアにより実現されてもよい。図24の例では、情報端末装置1は、CPU201、RAM202、ROM203、HDD204、カメラや表示装置や3D距離センサなどを接続するための機器インターフェース205、通信モジュール206、読取装置207を備え、これらのハードウェアはバス208を介して接続されている。
CPU201は、例えば、HDD204に格納されている動作プログラムをRAM202にロードし、RAM202をワーキングメモリとして使いながら各種処理を実行する。CPU201は、動作プログラムを実行することで、図1などに示す制御部40の各機能部を実現することができる。
なお、上記動作を実行するための動作プログラムを、フレキシブルディスク、Compact Disk−Read Only Memory(CD−ROM)、Digital Versatile Disk(DVD)、Magneto Optical disk(MO)などのコンピュータで読み取り可能な記録媒体209に記憶して配布し、これを情報端末装置1の読取装置207で読み取ってコンピュータにインストールすることにより、上述の処理を実行するように構成してもよい。さらに、インターネット上のサーバ装置が有するディスク装置等に動作プログラムを記憶しておき、通信モジュール206を介して、情報端末装置1のコンピュータに動作プログラムをダウンロード等するものとしてもよい。
なお、実施形態に応じて、RAM202、ROM203、HDD204以外の他の種類の記憶装置が利用されてもよい。例えば、情報端末装置1は、Content Addressable Memory(CAM)、Static Random Access Memory(SRAM)、Synchronous Dynamic Random Access Memory(SDRAM)などの記憶装置を有してもよい。
なお、実施形態に応じて、情報端末装置1のハードウェア構成は図24とは異なっていてもよく、図24に例示した規格・種類以外のその他のハードウェアを情報端末装置1に適用することもできる。
例えば、図1などに示す情報端末装置1の制御部40の各機能部は、ハードウェア回路により実現されてもよい。具体的には、CPU201の代わりに、Field Programmable Gate Array(FPGA)などのリコンフィギュラブル回路や、Application Specific Integrated Circuit(ASIC)などにより、図1などに示す制御部40の各機能部が実現されてもよい。もちろん、CPU201とハードウェア回路の双方により、これらの機能部が実現されてもよい。
以上において、いくつかの実施形態及びその変形例について説明した。しかしながら、実施形態は上記の実施形態に限定されるものではなく、上述の実施形態の各種変形形態及び代替形態を包含するものとして理解されるべきである。例えば、各種実施形態は、その趣旨及び範囲を逸脱しない範囲で構成要素を変形して具体化できることが理解されよう。また、前述した実施形態に開示されている複数の構成要素を適宜組み合わせることにより、種々の実施形態を成すことができることが理解されよう。更には、実施形態に示される全構成要素からいくつかの構成要素を削除して又は置換して、或いは実施形態に示される構成要素にいくつかの構成要素を追加して種々の実施形態が実施され得ることが当業者には理解されよう。
以上の実施形態1乃至4を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
処理対象の撮像画像上の特徴点と予め保持されているマップ点とをマッチングし、マッチングに成功した前記特徴点と対応する前記マップ点を前記撮像画像上に投影した投影点との誤差に基づいて、処理対象の前記撮像画像を撮像したカメラの位置と姿勢を推定する位置・姿勢推定装置であって、
前記マップ点の周辺形状を特定し、特定した前記周辺形状が平面であるか否かを判定する判定手段と、
前記カメラの位置と姿勢の推定における前記周辺形状が平面である前記マップ点の寄与率と比較して、前記周辺形状が平面ではない前記マップ点の寄与率が小さくなるように調整する調整手段と、
を備え、
前記マップ点は、撮像対象における特徴点に対応する世界座標系の三次元点である、
ことを特徴とする位置・姿勢推定装置。
(付記2)
前記調整手段は、前記周辺形状が平面である前記マップ点に対応する前記誤差に付加する重みと比較して、前記周辺形状が平面ではない前記マップ点に対応する前記誤差に付加する重みを小さくすることで、前記カメラの位置と姿勢の前記推定における前記周辺形状が平面ではない前記マップ点の寄与率を小さくする、
ことを特徴とする付記1に記載の位置・姿勢推定装置。
(付記3)
前記周辺形状が平面ではない前記マップ点の周辺形状の歪みを算出する第1算出手段と、
算出された前記周辺形状の歪みが小さいほど、前記周辺形状が平面ではない前記マップ点の優先度を大きく算出する第2算出手段と、
を、更に備え、
前記調整手段は、前記優先度が小さいほど、前記周辺形状が平面ではない前記マップ点に対応する前記誤差に付加する重みを小さくする、
ことを特徴とする付記2に記載の位置・姿勢推定装置。
(付記4)
前記調整手段は、処理対象の撮像画像上の前記特徴点とのマッチング対象から前記周辺形状が平面ではない前記マップ点を除外することで、前記周辺形状が平面ではない前記マップ点の寄与率をゼロにする、
ことを特徴とする付記1に記載の位置・姿勢推定装置。
(付記5)
前記調整手段は、処理対象の撮像画像上の前記特徴点とのマッチングに成功した前記マップ点から、前記周辺形状が平面ではない前記マップ点の比率が所定値以下のとなるように前記周辺形状が平面ではない前記マップ点を除外することで、前記カメラの位置と姿勢の前記推定における前記周辺形状が平面ではない前記マップ点の寄与率を小さくする、
ことを特徴とする付記1に記載の位置・姿勢推定装置。
(付記6)
前記調整手段は、処理対象の撮像画像上の前記特徴点と前記周辺形状が平面である前記マップ点とを最初にマッチングさせ、マッチングに成功した前記特徴点と前記マップ点との組数が所定の閾値に満たない場合に、マッチングの際の条件を緩和し、緩和した前記条件にしたがって、再マッチングを行わせる、
ことを特徴とする付記1に記載の位置・姿勢推定装置。
(付記7)
前記調整手段は、マッチングに成功した前記組数が前記閾値に到達するまで、マッチングの際の前記条件を緩和し、再マッチングを繰り返し行わせる、
ことを特徴とする付記6に記載の位置・姿勢推定装置。
(付記8)
マッチングの際の前記条件の緩和は、前記周辺形状が平面ではない前記マップ点の一部をマッチング対象にすることを含んでいる、
ことを特徴とする付記6又は7に記載の位置・姿勢推定装置。
(付記9)
前記周辺形状が平面ではない前記マップ点の周辺形状の歪みを算出する第1算出手段と、
算出された前記周辺形状の歪みが小さいほど、前記周辺形状が平面ではない前記マップ点の優先度を大きく算出する第2算出手段と、
を、更に備え、
前記調整手段は、処理対象の撮像画像上の前記特徴点と前記周辺形状が平面である前記マップ点とを最初にマッチングさせ、マッチングに成功した前記組数が前記閾値に満たない場合に、前記優先度が高い順に前記周辺形状が平面ではない前記マップ点をマッチング対象とする、
ことを特徴とする付記8に記載の位置・姿勢推定装置。
(付記10)
前記マップ点は、前記カメラで前記撮像対象を撮像した2枚の撮像画像上の前記特徴点をステレオマッチングすることで算出される、
ことを特徴とする付記1乃至9のいずれか一に記載の位置・姿勢推定装置。
(付記11)
前記マップ点は、前記カメラで前記撮像対象を撮像した撮像画像上の前記特徴点を、3次元距離センサにより検出された前記撮像対象の3次元座標と対応付けることで算出される(実施形態4)、
ことを特徴とする付記1乃至9のいずれか一に記載の位置・姿勢推定装置。
(付記12)
処理対象の撮像画像上の特徴点と予め保持されているマップ点とをマッチングし、マッチングに成功した前記特徴点と対応する前記マップ点を前記撮像画像上に投影した投影点との誤差に基づいて、処理対象の前記撮像画像を撮像したカメラの位置と姿勢を推定する位置・姿勢推定装置の位置・姿勢推定方法であって、
前記マップ点の周辺形状を特定し、
特定した前記周辺形状が平面であるか否かを判定し、
前記カメラの位置と姿勢の推定における前記周辺形状が平面である前記マップ点の寄与率と比較して、前記周辺形状が平面ではない前記マップ点の寄与率が小さくなるように調整し、
前記マップ点は、撮像対象における特徴点に対応する世界座標系の三次元点である、
ことを特徴とする位置・姿勢推定方法。
(付記13)
処理対象の撮像画像上の特徴点と予め保持されているマップ点とをマッチングし、マッチングに成功した前記特徴点と対応する前記マップ点を前記撮像画像上に投影した投影点との誤差に基づいて、処理対象の前記撮像画像を撮像したカメラの位置と姿勢を推定する位置・姿勢推定装置のコンピュータに、
前記マップ点の周辺形状を特定し、
特定した前記周辺形状が平面であるか否かを判定し、
前記カメラの位置と姿勢の推定における前記周辺形状が平面である前記マップ点の寄与率と比較して、前記周辺形状が平面ではない前記マップ点の寄与率が小さくなるように調整する、
処理を実行させ、
前記マップ点は、撮像対象における特徴点に対応する世界座標系の三次元点である、
ことを特徴とするプログラム。
(付記14)
処理対象の撮像画像上の特徴点と予め保持されているマップ点とをマッチングし、マッチングに成功した前記特徴点と対応する前記マップ点を前記撮像画像上に投影した投影点との誤差に基づいて、処理対象の前記撮像画像を撮像したカメラの位置と姿勢を推定する位置・姿勢推定装置のコンピュータに、
前記マップ点の周辺形状を特定し、
特定した前記周辺形状が平面であるか否かを判定し、
前記カメラの位置と姿勢の推定における前記周辺形状が平面である前記マップ点の寄与率と比較して、前記周辺形状が平面ではない前記マップ点の寄与率が小さくなるように調整する、
処理を実行させ、
前記マップ点は、撮像対象における特徴点に対応する世界座標系の三次元点である、
ことを特徴とするプログラムを記憶した記録媒体。
1 情報端末装置
10 画像取得部
20 記憶部
21 マップ点情報記憶部
22 マッチング条件記憶部
23 重み情報記憶部
30 出力部
40 制御部
41 特徴点検出部
42 マップ点情報設定部
43 マッチング条件設定部
44 マッチング処理部
45 推定部
46 出力情報生成部
47 優先度算出部
50 位置情報取得部
MP1〜22 特徴点(あるいはマップ点)
IP 画像平面
θ 角度
F 関数
201 CPU
202 RAM
203 ROM
204 HDD
205 機器インターフェース
206 通信モジュール
207 読取装置
208 バス
209 記録媒体

Claims (13)

  1. 処理対象の撮像画像上の特徴点と予め保持されているマップ点とをマッチングし、マッチングに成功した前記特徴点と対応する前記マップ点を前記撮像画像上に投影した投影点との誤差に基づいて、処理対象の前記撮像画像を撮像したカメラの位置と姿勢を推定する位置・姿勢推定装置であって、
    前記マップ点の周辺形状を特定し、特定した前記周辺形状が平面であるか否かを判定する判定手段と、
    前記周辺形状が平面ではない前記マップ点の周辺形状の歪みを算出する第1算出手段と、
    算出された前記周辺形状の歪みが小さいほど、前記周辺形状が平面ではない前記マップ点の優先度を大きく算出する第2算出手段と、
    前記周辺形状が平面である前記マップ点に対応する前記誤差に付加する重みと比較して、前記周辺形状が平面ではない前記マップ点に対応する前記誤差に付加する重みを小さくすることによって、前記カメラの位置と姿勢の推定における前記周辺形状が平面である前記マップ点の寄与率と比較して、前記周辺形状が平面ではない前記マップ点の寄与率が小さくなるように調整する調整手段であって、前記優先度が小さいほど、前記周辺形状が平面ではない前記マップ点に対応する前記誤差に付加する重みを小さくする該調整手段と、
    を備え、
    前記マップ点は、撮像対象における特徴点に対応する世界座標系の三次元点である、
    ことを特徴とする位置・姿勢推定装置。
  2. 前記調整手段は、処理対象の撮像画像上の前記特徴点とのマッチング対象から前記周辺形状が平面ではない前記マップ点を除外することで、前記周辺形状が平面ではない前記マップ点の寄与率をゼロにする、
    ことを特徴とする請求項1に記載の位置・姿勢推定装置。
  3. 前記調整手段は、処理対象の撮像画像上の前記特徴点とのマッチングに成功した前記マップ点から、前記周辺形状が平面ではない前記マップ点の比率が所定値以下なるように前記周辺形状が平面ではない前記マップ点を除外することで、前記カメラの位置と姿勢の前記推定における前記周辺形状が平面ではない前記マップ点の寄与率を小さくする、
    ことを特徴とする請求項1に記載の位置・姿勢推定装置。
  4. 処理対象の撮像画像上の特徴点と予め保持されているマップ点とをマッチングし、マッチングに成功した前記特徴点と対応する前記マップ点を前記撮像画像上に投影した投影点との誤差に基づいて、処理対象の前記撮像画像を撮像したカメラの位置と姿勢を推定する位置・姿勢推定装置であって、
    前記マップ点の周辺形状を特定し、特定した前記周辺形状が平面であるか否かを判定する判定手段と、
    前記カメラの位置と姿勢の推定における前記周辺形状が平面である前記マップ点の寄与率と比較して、前記周辺形状が平面ではない前記マップ点の寄与率が小さくなるように調整して、処理対象の撮像画像上の前記特徴点と前記周辺形状が平面である前記マップ点とを最初にマッチングさせ、マッチングに成功した前記特徴点と前記マップ点との組数が所定の閾値に満たない場合に、マッチングの際の条件を緩和し、緩和した前記条件にしたがって、再マッチングを行わせる調整手段と
    を備え、
    前記マップ点は、撮像対象における特徴点に対応する世界座標系の三次元点である、
    ことを特徴とする位置・姿勢推定装置
  5. 前記調整手段は、マッチングに成功した前記組数が前記閾値に到達するまで、マッチングの際の前記条件を緩和し、再マッチングを繰り返し行わせる、
    ことを特徴とする請求項に記載の位置・姿勢推定装置。
  6. マッチングの際の前記条件の緩和は、前記周辺形状が平面ではない前記マップ点の一部をマッチング対象にすることを含んでいる、
    ことを特徴とする請求項4又は5に記載の位置・姿勢推定装置。
  7. 前記周辺形状が平面ではない前記マップ点の周辺形状の歪みを算出する第1算出手段と、
    算出された前記周辺形状の歪みが小さいほど、前記周辺形状が平面ではない前記マップ点の優先度を大きく算出する第2算出手段と、
    を、更に備え、
    前記調整手段は、処理対象の撮像画像上の前記特徴点と前記周辺形状が平面である前記マップ点とを最初にマッチングさせ、マッチングに成功した前記組数が前記閾値に満たない場合に、前記優先度が高い順に前記周辺形状が平面ではない前記マップ点をマッチング対象とする、
    ことを特徴とする請求項に記載の位置・姿勢推定装置。
  8. 前記マップ点は、前記カメラで前記撮像対象を撮像した2枚の撮像画像上の前記特徴点をステレオマッチングすることで算出される、
    ことを特徴とする請求項1乃至のいずれか一に記載の位置・姿勢推定装置。
  9. 前記マップ点は、前記カメラで前記撮像対象を撮像した撮像画像上の前記特徴点を、3次元距離センサにより検出された前記撮像対象の3次元座標と対応付けることで算出される、
    ことを特徴とする請求項1乃至のいずれか一に記載の位置・姿勢推定装置。
  10. 処理対象の撮像画像上の特徴点と予め保持されているマップ点とをマッチングし、マッチングに成功した前記特徴点と対応する前記マップ点を前記撮像画像上に投影した投影点との誤差に基づいて、処理対象の前記撮像画像を撮像したカメラの位置と姿勢を推定する位置・姿勢推定装置の位置・姿勢推定方法であって、
    前記マップ点の周辺形状を特定し、
    特定した前記周辺形状が平面であるか否かを判定し、
    前記周辺形状が平面ではない前記マップ点の周辺形状の歪みを算出し、
    算出された前記周辺形状の歪みが小さいほど、前記周辺形状が平面ではない前記マップ点の優先度を大きく算出し、
    前記周辺形状が平面である前記マップ点に対応する前記誤差に付加する重みと比較して、前記周辺形状が平面ではない前記マップ点に対応する前記誤差に付加する重みを小さくすることによって、前記カメラの位置と姿勢の推定における前記周辺形状が平面である前記マップ点の寄与率と比較して、前記周辺形状が平面ではない前記マップ点の寄与率が小さくなるように調整し、
    前記マップ点は、撮像対象における特徴点に対応する世界座標系の三次元点であり、
    前記調整では、前記優先度が小さいほど、前記周辺形状が平面ではない前記マップ点に対応する前記誤差に付加する重みを小さくする、
    ことを特徴とする位置・姿勢推定方法。
  11. 処理対象の撮像画像上の特徴点と予め保持されているマップ点とをマッチングし、マッチングに成功した前記特徴点と対応する前記マップ点を前記撮像画像上に投影した投影点との誤差に基づいて、処理対象の前記撮像画像を撮像したカメラの位置と姿勢を推定する位置・姿勢推定装置の位置・姿勢推定方法であって、
    前記マップ点の周辺形状を特定し、
    特定した前記周辺形状が平面であるか否かを判定し、
    前記カメラの位置と姿勢の推定における前記周辺形状が平面である前記マップ点の寄与率と比較して、前記周辺形状が平面ではない前記マップ点の寄与率が小さくなるように調整して、処理対象の撮像画像上の前記特徴点と前記周辺形状が平面である前記マップ点とを最初にマッチングさせ、マッチングに成功した前記特徴点と前記マップ点との組数が所定の閾値に満たない場合に、マッチングの際の条件を緩和し、緩和した前記条件にしたがって、再マッチングを行わせ、
    前記マップ点は、撮像対象における特徴点に対応する世界座標系の三次元点である、
    ことを特徴とする位置・姿勢推定方法。
  12. 処理対象の撮像画像上の特徴点と予め保持されているマップ点とをマッチングし、マッチングに成功した前記特徴点と対応する前記マップ点を前記撮像画像上に投影した投影点との誤差に基づいて、処理対象の前記撮像画像を撮像したカメラの位置と姿勢を推定する位置・姿勢推定装置のコンピュータに、
    前記マップ点の周辺形状を特定し、
    特定した前記周辺形状が平面であるか否かを判定し、
    前記周辺形状が平面ではない前記マップ点の周辺形状の歪みを算出し、
    算出された前記周辺形状の歪みが小さいほど、前記周辺形状が平面ではない前記マップ点の優先度を大きく算出し、
    前記周辺形状が平面である前記マップ点に対応する前記誤差に付加する重みと比較して、前記周辺形状が平面ではない前記マップ点に対応する前記誤差に付加する重みを小さくすることによって、前記カメラの位置と姿勢の推定における前記周辺形状が平面である前記マップ点の寄与率と比較して、前記周辺形状が平面ではない前記マップ点の寄与率が小さくなるように調整する、
    処理を実行させ、
    前記マップ点は、撮像対象における特徴点に対応する世界座標系の三次元点であり、
    前記調整する処理では、前記優先度が小さいほど、前記周辺形状が平面ではない前記マップ点に対応する前記誤差に付加する重みを小さくする、
    ことを特徴とするプログラム。
  13. 処理対象の撮像画像上の特徴点と予め保持されているマップ点とをマッチングし、マッチングに成功した前記特徴点と対応する前記マップ点を前記撮像画像上に投影した投影点との誤差に基づいて、処理対象の前記撮像画像を撮像したカメラの位置と姿勢を推定する位置・姿勢推定装置のコンピュータに、
    前記マップ点の周辺形状を特定し、
    特定した前記周辺形状が平面であるか否かを判定し、
    前記カメラの位置と姿勢の推定における前記周辺形状が平面である前記マップ点の寄与率と比較して、前記周辺形状が平面ではない前記マップ点の寄与率が小さくなるように調整して、処理対象の撮像画像上の前記特徴点と前記周辺形状が平面である前記マップ点とを最初にマッチングさせ、マッチングに成功した前記特徴点と前記マップ点との組数が所定の閾値に満たない場合に、マッチングの際の条件を緩和し、緩和した前記条件にしたがって、再マッチングを行わせる、
    処理を実行させ、
    前記マップ点は、撮像対象における特徴点に対応する世界座標系の三次元点である、
    ことを特徴とするプログラム。
JP2014220869A 2014-10-29 2014-10-29 位置・姿勢推定装置、位置・姿勢推定方法、及び、プログラム Expired - Fee Related JP6405891B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2014220869A JP6405891B2 (ja) 2014-10-29 2014-10-29 位置・姿勢推定装置、位置・姿勢推定方法、及び、プログラム
EP15184208.5A EP3016071B1 (en) 2014-10-29 2015-09-08 Estimating device and estimation method
AU2015224394A AU2015224394B2 (en) 2014-10-29 2015-09-08 Estimating device and estimation method
US14/850,298 US9652861B2 (en) 2014-10-29 2015-09-10 Estimating device and estimation method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014220869A JP6405891B2 (ja) 2014-10-29 2014-10-29 位置・姿勢推定装置、位置・姿勢推定方法、及び、プログラム

Publications (2)

Publication Number Publication Date
JP2016091065A JP2016091065A (ja) 2016-05-23
JP6405891B2 true JP6405891B2 (ja) 2018-10-17

Family

ID=54185834

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014220869A Expired - Fee Related JP6405891B2 (ja) 2014-10-29 2014-10-29 位置・姿勢推定装置、位置・姿勢推定方法、及び、プログラム

Country Status (4)

Country Link
US (1) US9652861B2 (ja)
EP (1) EP3016071B1 (ja)
JP (1) JP6405891B2 (ja)
AU (1) AU2015224394B2 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017017898A1 (ja) * 2015-07-28 2017-02-02 パナソニックIpマネジメント株式会社 移動方向決定方法および移動方向決定装置
JP6817742B2 (ja) * 2016-08-01 2021-01-20 キヤノン株式会社 情報処理装置およびその制御方法
JP6750183B2 (ja) * 2016-09-01 2020-09-02 公立大学法人会津大学 画像距離算出装置、画像距離算出方法および画像距離算出用プログラム
KR101745626B1 (ko) * 2016-11-21 2017-06-09 아이씨티웨이주식회사 위치정보 연산 방법 및 이를 위한 연산 장치
JP6985897B2 (ja) * 2017-01-06 2021-12-22 キヤノン株式会社 情報処理装置およびその制御方法、プログラム
US10957068B2 (en) 2017-01-06 2021-03-23 Canon Kabushiki Kaisha Information processing apparatus and method of controlling the same
JP6894707B2 (ja) * 2017-01-06 2021-06-30 キヤノン株式会社 情報処理装置およびその制御方法、プログラム
US10552981B2 (en) * 2017-01-16 2020-02-04 Shapetrace Inc. Depth camera 3D pose estimation using 3D CAD models
CN108399635A (zh) * 2017-02-08 2018-08-14 青岛安吉云诺光电科技有限公司 一种从二维图像分析空间位置信息的方法及装置
JP6933072B2 (ja) * 2017-09-22 2021-09-08 富士通株式会社 カメラ制御方法、カメラ制御装置およびカメラ制御プログラム
JP7040147B2 (ja) * 2018-03-09 2022-03-23 セイコーエプソン株式会社 制御装置、ロボット、ロボットシステム,及び、物体を認識する方法
CN111489288B (zh) * 2019-01-28 2023-04-07 北京魔门塔科技有限公司 一种图像的拼接方法和装置
CN112562004B (zh) * 2019-09-25 2024-07-09 西门子(中国)有限公司 图像映射参数生成方法、装置和计算机可读介质
US11023730B1 (en) * 2020-01-02 2021-06-01 International Business Machines Corporation Fine-grained visual recognition in mobile augmented reality
CN113984081B (zh) * 2020-10-16 2024-05-03 北京猎户星空科技有限公司 定位方法、装置、自移动设备和存储介质
CN112561992A (zh) * 2020-12-01 2021-03-26 浙江大华技术股份有限公司 位置的确定方法及装置、存储介质和电子装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5173949A (en) * 1988-08-29 1992-12-22 Raytheon Company Confirmed boundary pattern matching
US5642442A (en) * 1995-04-10 1997-06-24 United Parcel Services Of America, Inc. Method for locating the position and orientation of a fiduciary mark
US6064749A (en) * 1996-08-02 2000-05-16 Hirota; Gentaro Hybrid tracking for augmented reality using both camera motion detection and landmark tracking
JP2000088554A (ja) 1998-09-08 2000-03-31 Nippon Telegr & Teleph Corp <Ntt> 物体の特徴点探索方法及びその処理プログラムを記録した記録媒体ならびに特徴点探索装置
AU2003298491A1 (en) * 2002-10-22 2004-05-13 Artoolworks Tracking a surface in a 3-dimensional scene using natural visual features of the surface
CN100365654C (zh) * 2003-07-24 2008-01-30 奥林巴斯株式会社 图像处理装置
JP4532982B2 (ja) 2004-05-14 2010-08-25 キヤノン株式会社 配置情報推定方法および情報処理装置
KR100975512B1 (ko) * 2007-03-09 2010-08-11 오므론 가부시키가이샤 인식 처리 방법 및 이 방법을 이용한 화상 처리 장치
JP4886560B2 (ja) * 2007-03-15 2012-02-29 キヤノン株式会社 情報処理装置、情報処理方法
JP5424405B2 (ja) 2010-01-14 2014-02-26 学校法人立命館 複合現実感技術による画像生成方法及び画像生成システム
US8937663B2 (en) * 2011-04-01 2015-01-20 Microsoft Corporation Camera and sensor augmented reality techniques

Also Published As

Publication number Publication date
AU2015224394B2 (en) 2017-02-23
AU2015224394A1 (en) 2016-05-19
US20160125617A1 (en) 2016-05-05
EP3016071A1 (en) 2016-05-04
US9652861B2 (en) 2017-05-16
JP2016091065A (ja) 2016-05-23
EP3016071B1 (en) 2019-06-05

Similar Documents

Publication Publication Date Title
JP6405891B2 (ja) 位置・姿勢推定装置、位置・姿勢推定方法、及び、プログラム
US9967516B2 (en) Stereo matching method and device for performing the method
JP5772821B2 (ja) 顔特徴点位置補正装置、顔特徴点位置補正方法および顔特徴点位置補正プログラム
JP6760957B2 (ja) 3次元モデリング方法及び装置
US20180061086A1 (en) Image processing apparatus, image processing method, and medium
EP3326156B1 (en) Consistent tessellation via topology-aware surface tracking
JP2019101686A (ja) 画像処理装置、画像処理方法およびプログラム
US10460461B2 (en) Image processing apparatus and method of controlling the same
WO2021003807A1 (zh) 一种图像深度估计方法及装置、电子设备、存储介质
WO2014051801A1 (en) Video-assisted target location
JP2020067748A (ja) 画像処理装置、画像処理方法、およびプログラム
US10600202B2 (en) Information processing device and method, and program
WO2018227580A1 (zh) 摄像头标定方法和终端
JP7312026B2 (ja) 画像処理装置、画像処理方法およびプログラム
JP2017199285A (ja) 情報処理装置、情報処理方法、プログラム
JP5728399B2 (ja) 計測装置、方法及びプログラム
JPWO2019065784A1 (ja) 画像処理装置、画像処理方法、及びプログラム
JP6451300B2 (ja) 画像処理装置、撮像装置、画像処理方法、及びプログラム
JP7188798B2 (ja) 座標算出装置、座標算出方法、及びプログラム
US9721151B2 (en) Method and apparatus for detecting interfacing region in depth image
JP2016119572A5 (ja)
JP7294702B2 (ja) 画像処理装置、画像処理方法、及びプログラム
US20240029288A1 (en) Image processing apparatus, image processing method, and storage medium
JPWO2017090705A1 (ja) 画像処理装置、画像処理方法、及びプログラム
US20240233234A1 (en) Image processing apparatus, image processing method, non-transitory computer-readable storage medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170704

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180608

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180619

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180807

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180821

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180903

R150 Certificate of patent or registration of utility model

Ref document number: 6405891

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees