JP2018147095A - カメラ位置姿勢推定装置、方法およびプログラム - Google Patents

カメラ位置姿勢推定装置、方法およびプログラム Download PDF

Info

Publication number
JP2018147095A
JP2018147095A JP2017039450A JP2017039450A JP2018147095A JP 2018147095 A JP2018147095 A JP 2018147095A JP 2017039450 A JP2017039450 A JP 2017039450A JP 2017039450 A JP2017039450 A JP 2017039450A JP 2018147095 A JP2018147095 A JP 2018147095A
Authority
JP
Japan
Prior art keywords
image
orientation
posture
region
camera
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.)
Granted
Application number
JP2017039450A
Other languages
English (en)
Other versions
JP6842039B2 (ja
Inventor
厚憲 茂木
Atsunori Mogi
厚憲 茂木
山口 伸康
Nobuyasu Yamaguchi
伸康 山口
村瀬 太一
Taichi Murase
太一 村瀬
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 JP2017039450A priority Critical patent/JP6842039B2/ja
Priority to US15/903,752 priority patent/US10636165B2/en
Publication of JP2018147095A publication Critical patent/JP2018147095A/ja
Application granted granted Critical
Publication of JP6842039B2 publication Critical patent/JP6842039B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/174Segmentation; Edge detection involving the use of two or more images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/90Determination of colour characteristics
    • 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/30108Industrial image inspection
    • G06T2207/30164Workpiece; Machine component

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Image Analysis (AREA)
  • Studio Devices (AREA)

Abstract

【課題】カメラの位置姿勢の推定精度を向上させる。【解決手段】記憶部1aは、キー画像2a,2b,・・・と、キー画像2a,2b,・・・それぞれの撮像時におけるカメラの位置姿勢を示す姿勢値3a,3b,・・・とを記憶する。演算部1bは、キー画像2a,2b,・・・の中から現画像4に類似するキー画像2aを特定し、特定されたキー画像2aから複数画素を含む領域5a,5bを特定するとともに、現画像4から領域5a,5bに対応する領域6a,6bを推定し、領域5a,5bと領域6a,6bとの間の画素値の比較結果と、キー画像2aに対応する姿勢値3aとに基づいて、現画像4の撮像時におけるカメラの位置姿勢を推定する。【選択図】図1

Description

本発明は、カメラ位置姿勢推定装置、方法およびプログラムに関する。
現実空間を撮像した画像上の所定位置に仮想的な画像を重畳して表示する拡張現実感(Augmented Reality,AR)技術が知られている。このAR技術は、例えば、工場などの作業空間において、作業内容や作業対象箇所などを示す作業支援情報を撮像画像上に重畳表示することによって作業者の作業を支援する、といった用途で普及しつつある。
AR技術では、撮像画像上の適切な位置に仮想的な画像を重畳するために、実空間でのカメラの位置姿勢を推定する技術が用いられる。また、ユーザが作業中の状況では、カメラの位置姿勢が頻繁に変化する。このため、位置姿勢の推定に一時的に失敗する状態になりやすい。このことから、位置姿勢の推定に失敗した状態から、その推定を再開する復帰処理の技術が求められている。
復帰処理手法の一例として、現画像内の特徴点とキーフレーム内の特徴点とを対応付けし、対応付けられたキーフレーム中の特徴点についての三次元マップの座標情報に基づいて、現画像の撮像時におけるカメラの位置姿勢を推定する手法が提案されている。
また、位置姿勢の算出が破綻することを防止する次のような位置姿勢計測装置も提案されている。この位置姿勢計測装置は、前フレームから得られる複数の位置姿勢を基に複数の位置姿勢を発生させ、それぞれについて非線形最適化によりカメラの位置姿勢を求め、その中から最も妥当な位置姿勢を選択する。
特開2008−176509号公報
J. Straub et al., Fast relocalization for visual odometry using binary features, In Proc. ICIP, pp.2548-2552, 2013
ところで、前述の復帰処理手法で用いられる位置姿勢の推定処理では、現画像とキーフレームとの間で特徴点の対応関係が特定される。しかし、この処理では、例えば、対象物を撮像したときに画像上に類似する画像パターンが多数現れる場合に、特徴点の対応関係に誤りが発生しやすい。このため、位置姿勢の推定精度が低下するという問題がある。
1つの側面では、本発明は、カメラの位置姿勢の推定精度を向上させたカメラ位置姿勢推定装置、方法およびプログラムを提供することを目的とする。
1つの案では、記憶部と演算部とを有する次のようなカメラ位置姿勢推定装置が提供される。このカメラ位置姿勢推定装置において、記憶部は、複数の第1の画像と、複数の第1の画像それぞれの撮像時におけるカメラの位置姿勢を示す複数の第1の姿勢値とを記憶する。演算部は、複数の第1の画像の中から第2の画像に類似する第3の画像を特定し、第3の画像から複数画素を含む第1の領域を特定するとともに、第2の画像から第1の領域に対応する第2の領域を推定し、第1の領域と第2の領域との間の画素値の比較結果と、複数の第1の姿勢値のうち第3の画像に対応する第2の姿勢値とに基づいて、第2の画像の撮像時におけるカメラの位置姿勢を示す第3の姿勢値を推定する。
また、1つの案では、上記のカメラ位置姿勢推定装置と同様の処理をコンピュータが実行するカメラ位置姿勢推定方法が提供される。
さらに、1つの案では、上記のカメラ位置姿勢推定装置と同様の処理をコンピュータに実行させるカメラ位置姿勢推定プログラムが提供される。
1つの側面では、カメラの位置姿勢の推定精度を向上させることができる。
第1の実施の形態に係るカメラ位置姿勢推定装置の構成例および処理例を示す図である。 第2の実施の形態に係る端末装置のハードウェア構成例を示す図である。 端末装置が備える処理機能の構成例を示すブロック図である。 三次元マップのデータ構成例を示す図である。 キーフレーム情報テーブルのデータ構成例を示す図である。 撮像画像に類似画像パターンが現れる場合における特徴点とマップ点との対応付けの例を示す図である。 復帰処理部の内部構成例を示す図である。 詳細相対位置姿勢の算出処理について説明するための第1の図である。 詳細相対位置姿勢の算出処理について説明するための第2の図である。 トラッキング処理部の処理手順の例を示すフローチャート(その1)である。 トラッキング処理部の処理手順の例を示すフローチャート(その2)である。 第1の変形例での注目領域の特定方法を説明するための図である。 第1の変形例における復帰処理手順の例を示すフローチャートである。 画像ピラミッドの構成例を示す図である。 第2の変形例における復帰処理手順の例を示すフローチャートである。
以下、本発明の実施の形態について図面を参照して説明する。
〔第1の実施の形態〕
図1は、第1の実施の形態に係るカメラ位置姿勢推定装置の構成例および処理例を示す図である。図1に示すカメラ位置姿勢推定装置1は、記憶部1aと演算部1bを有する。記憶部1aは、例えば、カメラ位置姿勢推定装置1が備える記憶装置(図示せず)の記憶領域として実装される。演算部1bは、例えば、カメラ位置姿勢推定装置1が備えるプロセッサ(図示せず)として実装される。
記憶部1aは、キー画像(第1の画像)2a,2b,・・・を記憶する。キー画像2a,2b,・・・は、それぞれが図示しないカメラによって撮像されたときのカメラの位置姿勢が正しく推定されている画像である。記憶部1aには、キー画像2a,2b,・・・のそれぞれについて推定された位置姿勢を示す姿勢値3a,3b,・・・も記憶されている。
演算部1bは、キー画像2a,2b,・・・の中から現画像(第2の画像)4に類似するキー画像(第3の画像)を特定する(ステップS1)。現画像4は、カメラで撮像され、その撮像時におけるカメラの位置姿勢の推定対象となっている画像である。図1の例では、類似するキー画像としてキー画像2aが特定されたものとする。
次に、演算部1bは、特定されたキー画像2aから、複数画素を含む領域(第1の領域)を特定する。図1の例では、このような領域として領域5a,5bが特定されている。また、演算部1bは、特定された領域5a,5bにそれぞれ対応する領域(第2の領域)6a,6bを、現画像4から推定する(ステップS2)。
次に、演算部1bは、領域5a,5bと領域6a,6bとの間の画素値の比較結果と、キー画像2aに対応する姿勢値3aとに基づいて、現画像4の撮像時におけるカメラの位置姿勢を推定する(ステップS3)。
このようなカメラ位置姿勢推定装置1によれば、それぞれ複数画素を有する領域5a,5bと領域6a,6bとの間の画素値の比較結果に基づいて、現画像4に対応する位置姿勢が推定される。これにより、例えば、キー画像2aと現画像4との間での局所的な特徴点同士の対応関係に基づいて推定する場合と比較して、より大域的な画像領域の対応関係に基づいて位置姿勢を推定することができる。そのため、画像上に類似する画像パターンが多数写っている場合において、画像間で対応する位置の推定を誤り、その誤りによって位置姿勢の推定精度が低下するという事態の発生可能性を抑制できる。したがって、位置姿勢の推定精度を向上させることができる。
〔第2の実施の形態〕
次に、図1のカメラ位置姿勢推定装置1が備える位置姿勢の推定処理を、位置姿勢の推定に失敗した状態から推定を再開する復帰処理に利用した端末装置の例について説明する。
図2は、第2の実施の形態に係る端末装置のハードウェア構成例を示す図である。第2の実施の形態に係る端末装置100は、画像を撮像してそのときのカメラの位置姿勢を推定し、推定された位置姿勢の情報を用いて撮像画像上に仮想的な画像を重畳表示させる機能を備える。この端末装置100は、例えば、図2に示すような携帯型のコンピュータとして実現される。
図2に示す端末装置100は、プロセッサ101によって装置全体が制御されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、またはPLD(Programmable Logic Device)である。また、プロセッサ101は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
プロセッサ101には、バス109を介して、RAM(Random Access Memory)102と複数の周辺機器が接続されている。
RAM102は、端末装置100の主記憶装置として使用される。RAM102には、プロセッサ101に実行させるOS(Operating System)プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、プロセッサ101による処理に必要な各種データが格納される。
バス109に接続されている周辺機器としては、SSD(Solid State Drive)103、表示装置104、入力装置105、読み取り装置106、無線通信インタフェース107およびカメラ108がある。
SSD103は、端末装置100の補助記憶装置として使用される。SSD103には、OSプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、HDD(Hard Disk Drive)などの他の種類の不揮発性記憶装置を使用することもできる。
表示装置104は、プロセッサ101からの命令に従って、画像をその画面に表示する。表示装置104としては、液晶ディスプレイや、有機EL(ElectroLuminescence)ディスプレイなどがある。
入力装置105は、ユーザによる入力操作に応じた信号をプロセッサ101に送信する。入力装置105としては、例えば、表示装置104の表示面に配置されるタッチパネルや、タッチパッド、マウス、トラックボール、操作キーなどがある。
読み取り装置106には、可搬型記録媒体106aが脱着される。読み取り装置106は、可搬型記録媒体106aに記録されたデータを読み取ってプロセッサ101に送信する。可搬型記録媒体106aとしては、光ディスク、光磁気ディスク、半導体メモリなどがある。
無線通信インタフェース107は、無線通信により他の装置との間でデータの送受信を行う。
カメラ108は、撮像素子によって得られた画像信号をデジタル化して、プロセッサ101に送信する。
以上のようなハードウェア構成によって、端末装置100の処理機能を実現することができる。
<端末装置の処理機能>
図3は、端末装置が備える処理機能の構成例を示すブロック図である。端末装置100は、記憶部110、トラッキング処理部120、マップ作成部130および重畳表示制御部140を有する。記憶部110は、端末装置100が備える記憶装置(例えば、RAM102、SSD103など)の記憶領域として実装される。トラッキング処理部120、マップ作成部130および重畳表示制御部140の処理は、例えば、プロセッサ101が所定のプログラムを実行することで実現される。
記憶部110には、三次元マップ111とキーフレーム情報テーブル112が記憶される。三次元マップ111には、対象物上の特徴点の三次元座標が記憶される。キーフレーム情報テーブル112には、キーフレームに関するキーフレーム情報が記憶される。
ここで、図4は、三次元マップのデータ構成例を示す図である。三次元マップ111の各レコードには、マップ点番号、三次元座標および特徴量が記憶される。マップ点番号は、対象物上の特徴点(マップ点)の識別番号を示す。三次元座標は、世界座標系におけるマップ点のX軸、Y軸、Z軸それぞれに対する座標を示す。各座標は、例えば、ミリメートル(mm)で表される。特徴量は、マップ点の特徴を示す情報である。特徴量としては、例えば、SIFT(Scale-Invariant Feature Transform)、SURF(Speeded Up Robust Features)、ORB(Oriented FAST and Rotated BRIEF,FAST:Features from Accelerated Segment Test,BRIEF:Binary Robust Independent Elementary Features)などが用いられる。
三次元マップ111は、後述するように、トラッキング処理部120によってカメラ108の位置姿勢が推定される際に参照される。また、三次元マップ111には、マップ作成部130によって、位置姿勢が正しく推定された撮像画像から新たに抽出された特徴点についてのレコードが追加される。
図5は、キーフレーム情報テーブルのデータ構成例を示す図である。キーフレームとは、位置姿勢が正しく推定された撮像画像の中から所定の条件に基づいて選択された画像である。キーフレーム情報は、キーフレーム情報テーブル112の1つのレコードに含まれる情報に対応し、キーフレーム番号、位置姿勢、画像情報、特徴点群および対応マップ点番号を含む。
キーフレーム番号は、キーフレームの識別番号を示す。位置姿勢は、キーフレームの撮像時におけるカメラの位置姿勢を示す。位置姿勢は、(r1,r2,r3,t1,t2,t3)という6次元の情報として表される。(r1,r2,r3)は、世界座標におけるカメラ108の姿勢(回転移動成分)を示し、(t1,t2,t3)は、世界座標におけるカメラ108の位置(平行移動成分)を示す。
画像情報は、キーフレームの各画素の画素値を示す。本実施の形態では、画像情報は、各画素の輝度値を示すものとする。特徴点群は、キーフレームから抽出され、かつ、三次元マップ111内のマップ点と対応付けられた特徴点それぞれについてのキーフレーム上の座標を示す。対応マップ点番号は、特徴点それぞれに対応するマップ点のマップ点番号を示す。
以下、図3を用いて説明を続ける。
トラッキング処理部120は、カメラ108から撮像画像を取得するたびに、その撮像時のカメラ108の位置姿勢を推定する。また、トラッキング処理部120は、位置姿勢が正しく推定された撮像画像の中からキーフレームを選択し、そのキーフレームに関するキーフレーム情報をキーフレーム情報テーブル112に登録する。
マップ作成部130は、キーフレーム情報テーブル112に登録されたキーフレーム情報に基づいて、マップ点の三次元座標および特徴量を三次元マップ111に登録する。例えば、マップ作成部130は、新たに抽出された特徴点を含むキーフレームのペアを選択し、キーフレーム間で対応する所定個数以上の特徴点の二次元座標を用いて、三角測量の原理によって各特徴点の三次元座標を算出する。三角測量の原理による三次元座標の算出方法としては、例えば、非特許文献「R. I. Hartley et al., Triangulation, Computer Vision and Image Understanding, Vol. 68, No.2, pp.146-157, 1997」に記載の方法を用いることができる。
重畳表示制御部140は、三次元マップ111と、トラッキング処理部120によって推定された位置姿勢とに基づいて、撮像画像上に所定の作業支援情報を重畳表示させる。例えば、重畳表示制御部140は、撮像画像からマーカを認識し、そのマーカの内部パターンの認識結果から作業段階を特定する。重畳表示制御部140は、作業段階ごとに対応付けて記憶された作業支援情報(図示せず)の中から、特定された作業段階に対応する作業支援情報を読み出し、読み出した作業支援情報を撮像画像上の適切な位置に重畳して表示させる。重畳表示制御部140は、撮像画像について推定された位置姿勢に基づいて、作業支援情報の表示状態(例えば、回転角度)を調整する。
次に、トラッキング処理部120の内部構成について説明する。トラッキング処理部120は、画像取得部121、位置姿勢推定部122、品質判定部123、キーフレーム登録処理部124および復帰処理部125を有する。
画像取得部121は、カメラ108によって撮像された撮像画像を一定間隔で取得して、位置姿勢推定部122に供給する。なお、以下の説明では、画像取得部121によって取得された撮像画像、すなわち、位置姿勢の推定対象の撮像画像を「現画像」と記載する場合がある。
位置姿勢推定部122は、現画像の撮像時におけるカメラ108の位置姿勢を、次のような方法によって推定する。
位置姿勢推定部122は、まず、現画像から特徴点を抽出する。次に、位置姿勢推定部122は、キーフレーム情報テーブル112に登録されたキーフレームの中から、現画像に類似するキーフレームを近傍キーフレームとして特定する。例えば、位置姿勢推定部122は、現画像と、キーフレーム情報テーブル112に登録されたキーフレームのそれぞれを所定サイズに縮小し、さらにガウシアンフィルタでぼかす。そして、位置姿勢推定部122は、現画像とキーフレームそれぞれとの間で輝度値のSSD(Sum of Squared Distance)を計算し、SSDが最小のキーフレームを近傍キーフレームとして特定する。
次に、位置姿勢推定部122は、近傍キーフレームに含まれるマップ点(特徴点)の二次元座標を近傍キーフレームのキーフレーム情報から取得する。位置姿勢推定部122は、現画像から抽出された特徴点に対応する、近傍キーフレーム上のマップ点を特定し、特徴点とマップ点とのペアを複数組抽出する。なお、特徴点に対応するマップ点は、各点の特徴量の類似度に基づいて特定される。
次に、位置姿勢推定部122は、特徴点とマップ点との4組以上のペアを用いて、PnPアルゴリズムによって現画像の撮像時におけるカメラ108の位置姿勢を推定する。PnPアルゴリズムによる位置姿勢の推定方法としては、例えば、非特許文献「V. Lepetit et al., EPnP: An Accurate O(n) Solution to the PnP Problem, International Journal of Computer Vision, Vol.81, No.2, pp.155-166(2008)」に記載の方法を用いることができる。
なお、以下の説明では、後述する「相対位置姿勢」と区別するために、カメラ108の絶対的な位置姿勢を「絶対位置姿勢」と記載する場合がある。
品質判定部123は、位置姿勢推定部122によって推定された絶対位置姿勢の推定品質を判定する。例えば、位置姿勢推定部122によって現画像から抽出された特徴点の総数をF1、それらの特徴点のうち、位置姿勢推定部122の処理によって近傍キーフレーム上のマップ点と対応付けられた特徴点の数をF2とする。品質判定部123は、F2/F1が所定の閾値(例えば、0.3)以上の場合に推定品質が高いと判定し、閾値未満の場合に推定品質が低いと判定する。
ここで、推定品質が高いと判定された場合、位置姿勢の推定に成功したことになり、キーフレーム登録処理部124の処理が実行された後、画像取得部121によって次に取得された撮像画像を用いて位置姿勢推定部122の処理が実行される。一方、推定品質が低いと判定された場合、位置姿勢の推定に失敗したことになり、復帰処理部125による復帰処理が実行される。
キーフレーム登録処理部124は、キーフレーム情報の登録条件にしたがって、現画像をキーフレームとして登録するか否かを判定する。キーフレーム登録処理部124は、例えば、前回キーフレームとして登録された撮像画像から現画像までのフレーム数が所定値(例えば、20フレーム)に達しているとき、現画像をキーフレームとして登録すると判定する。その場合、キーフレーム登録処理部124は、現画像についてのキーフレーム情報をキーフレーム情報テーブル112に登録する。
復帰処理部125は、位置姿勢の推定に失敗した状態から、絶対位置姿勢の推定を再開する復帰処理を実行する。ここで、まず、復帰処理の比較例について説明し、その後に本実施の形態での復帰処理について説明する。
<復帰処理の比較例>
まず、復帰処理の第1の比較例として、本実施の形態と同様の三次元マップとキーフレーム情報を用いた方法を例示する。この方法では、現画像内の特徴点とキーフレーム内のマップ点とが対応付けされ、対応付けられたキーフレーム中のマップ点についての三次元マップの座標情報に基づき、特徴点とマップ点との対応関係から絶対位置姿勢が推定される。
この方法では、現画像上の特徴点とキーフレーム上のマップ点とのすべての組み合わせについて、特徴点とマップ点の各特徴量が比較される。しかし、現画像とキーフレームとの間で局所的な比較が行われることから、撮像画像に類似画像パターンが多数現れる場合に、特徴点とマップ点との対応付けに誤りが発生しやすくなり、その結果、絶対位置姿勢の推定精度が低下するという問題がある。
図6は、撮像画像に類似画像パターンが現れる場合における特徴点とマップ点との対応付けの例を示す図である。図6において、キーフレーム210には、互いに類似する画像パターン211a〜211dが写っている。一方、現画像310にも、互いに類似する画像パターン311a〜311dが写っている。そして、画像パターン311a,311b,311c,311dは、それぞれキーフレーム210上の画像パターン211a,211b,211c,211dと同一の対象物領域を撮像して得られた領域である。
また、キーフレーム210には、マップ点212a〜212eが含まれているものとする。一方、現画像310からは、特徴点312a〜312eが抽出されたものとする。上記の第1の比較例を用いた処理では、特徴点312a〜312eのそれぞれがマップ点212a〜212eのうちのどれに対応するかが、特徴量のマッチングによって判定される。
図6の例では、特徴点312a,312b,312cは、それぞれマップ点212a,212b,212cに対応すると判定されたとする。これらの対応付けは正しく行われている。一方、特徴点312d,312eは、それぞれマップ点212e,212dに対応すると判定されたとする。これらの対応付けは間違っている。
このように、類似画像パターンが多数現れる状況では、各画像の中に類似する特徴量を有する特徴点およびマップ点がそれぞれ複数存在するので、局所的な特徴量のマッチングを用いるだけでは特徴点とマップ点との対応付けの誤りが発生しやすい。特徴点とマップ点との対応付けに誤りが発生すると、その対応付けに基づいて推定された絶対位置姿勢の推定精度が低下してしまう。
一方、復帰処理の第2の比較例としては、特徴点とマップ点とのマッチングを行わない次のような方法が考えられる。この方法では、現画像の縮小画像と記憶された各キーフレームの縮小画像との比較によって近傍キーフレームが特定され、現画像と近傍キーフレームとの間の相対的な位置姿勢(相対位置姿勢)が算出される。そして、相対位置姿勢に基づいて絶対位置姿勢が推定される。
この方法では、類似画像パターンが多数現れることによる相対位置姿勢の推定精度の低下は発生しにくい。しかし、縮小画像同士の比較が行われるため、相対位置姿勢の算出精度が低く、その結果、絶対位置姿勢の推定精度が低いという問題がある。
また、第1の比較例と第2の比較例とを組み合わせる方法も考えられる。例えば、第2の比較例で算出された相対位置姿勢の算出結果を用いて、第1の比較例での特徴点とマップ点との対応付け処理に制限を加える方法が考えられる。この方法では、相対位置姿勢の算出結果から明らかに間違いとわかるような特徴点とマップ点との対応付けが行われなくなり、対応付けの処理精度が改善される。しかし、相対位置姿勢の算出精度が低いことから、類似画像パターン同士が近い位置に存在する場合に、特徴点とマップ点との対応付けの誤りが発生しやすい。
また、他の方法として、現画像およびキーフレームに対してオプティカルフローによる特徴点追跡を適用して、第1の比較例における特徴点とマップ点との対応付けに制限を加える方法も考えられる。しかし、オプティカルフローを用いることで、平行移動以外のカメラ108の運動(例えば、回転運動)が起こった場合に位置姿勢の推定精度が低下するという問題がある。さらに、オプティカルフローと特徴量のマッチングの両方を実行することで、処理負荷が増大するという問題もある。
<第2の実施の形態での復帰処理手順>
本実施の形態では、復帰処理部125は、現画像と近傍キーフレームとの間の相対位置姿勢を算出する際に、局所的な特徴量の比較ではなく、特徴点の周囲領域とマップ点の周囲領域との間の画素値の比較を行う。これにより、類似画像パターンが多数現れる場合における相対位置姿勢の算出精度の低下を抑制し、その結果として絶対位置姿勢の推定精度を向上させる。
図7は、復帰処理部の内部構成例を示す図である。復帰処理部125は、仮相対位置姿勢算出部125a、詳細相対位置姿勢算出部125bおよび絶対位置姿勢算出部125cを有する。
仮相対位置姿勢算出部125aは、現画像と近傍キーフレームを縮小して同じ所定サイズの縮小画像を作成する。なお、復帰処理部125の処理対象の画像を位置姿勢推定部122の処理対象の画像より必ず後に撮像された画像とする場合には、仮相対位置姿勢算出部125aは、位置姿勢推定部122と同様の手順によってキーフレームの中から近傍キーフレームを特定する。
次に、仮相対位置姿勢算出部125aは、現画像の縮小画像と近傍キーフレームの縮小画像との合わせ込みを行うことで、現画像と近傍キーフレームとの間の相対位置姿勢を算出する。相対位置姿勢は、現画像の撮像時と近傍キーフレームの撮像時のそれぞれにおけるカメラ108の相対的な位置姿勢を示す。現画像の撮像時における絶対位置姿勢ξnと、近傍キーフレームの撮像時における絶対位置姿勢ξ1と、相対位置姿勢ξrとの関係は、次の式(1)で表される。
ξn=ξr・ξ1 ・・・(1)
仮相対位置姿勢算出部125aによって算出される相対位置姿勢は、現画像と近傍キーフレームの各縮小画像から算出される大まかな算出値であり、詳細相対位置姿勢算出部125bでの処理の初期値として用いられる。そこで、ここでは、仮相対位置姿勢算出部125aによって算出される相対位置姿勢を「仮相対位置姿勢」と呼び、ξr0で表す。
仮相対位置姿勢は、より詳細には、例えば次のような手順で算出される。仮相対位置姿勢算出部125aは、現画像と近傍キーフレームを縮小して、それぞれ例えば40画素×30画素の縮小画像を作成する。さらに、仮相対位置姿勢算出部125aは、各縮小画像をガウシアンフィルタによってぼかす。このようにして生成された各縮小画像をSBI(Small Blurred Image)と呼ぶ。
次に、仮相対位置姿勢算出部125aは、現画像のSBIに含まれる特徴点と、近傍キーフレームのSBIに含まれるマップ点との対応関係に基づいて、各SBIの間のホモグラフィ行列Hを算出する。ホモグラフィ行列は、近傍キーフレームのSBI上の点の座標を現画像のSBI上の点の座標に変換するための3行3列の行列である。ホモグラフィ行列Hの算出方法としては、例えば、非特許文献「S. Benhimane and E. Malis, Homography-based Visual Tracking and Servoing, The International Journal of Robotics and Research, 26(7):661-676, 2007」に記載の方法を用いることができる。
なお、復帰処理部125の処理対象の画像が位置姿勢推定部122の処理対象と同じである場合、特徴点とマップ点との対応関係は位置姿勢推定部122の処理によって求められている。このため、仮相対位置姿勢算出部125aは、求められている対応関係に基づいてホモグラフィ行列Hを算出することができる。
次に、仮相対位置姿勢算出部125aは、近傍キーフレームのSBIから2点の仮想点vp1,vp2 を選択する。そして、仮相対位置姿勢ξr0の回転成分を行列形式で表したものをRとしたとき、仮相対位置姿勢算出部125aは、次の式(2)を満たすようなRを求める。
Figure 2018147095
式(2)において、Aは、カメラ108の内部パラメータであり、あらかじめキャリブレーションによって求められているものとする。式(2)によれば、ホモグラフィ行列Hを用いて仮想点を射影変換した点と、回転成分Rおよび並進成分0で仮想点を座標変換した点との距離が最小になるような回転成分Rが求められる。
仮相対位置姿勢算出部125aは、以上の手順によって求められた回転成分Rに基づいて、仮相対位置姿勢ξr0を出力する。仮相対位置姿勢ξr0は、求められた回転成分Rの行列のうち、所定の3つの要素を回転成分とし、並進成分を0とした6次元の実数値として算出される。
詳細相対位置姿勢算出部125bは、算出された仮相対位置姿勢ξr0を反復計算の初期値として用いて、詳細相対位置姿勢ξr1を算出する。この反復計算の処理には、近傍キーフレーム上のマップ点の位置を相対位置姿勢に基づいて移動したときの、現画像における移動先を算出する処理と、特徴点と移動先のそれぞれに対応する注目領域を特定する処理とが含まれる。
図8は、詳細相対位置姿勢の算出処理について説明するための第1の図である。近傍キーフレームI1上のi番目のマップ点をpiとする。このとき、詳細相対位置姿勢算出部125bは、マップ点piの位置を相対位置姿勢ξrに基づいて移動したときの、現画像I2における移動先w(pi)の座標wを算出する。移動先w(pi)の座標wは、例えば、次のようにして算出される。
カメラ108の内部パラメータAを、下記の式(3)のように表す。このとき、詳細相対位置姿勢算出部125bは、マップ点pi=(ui,vi)の世界座標系における三次元座標(Xi,Yi,Zi)を、下記の式(4)にしたがって算出する。
Figure 2018147095
また、詳細相対位置姿勢算出部125bは、相対位置姿勢ξrを、ロドリゲス変換により回転成分Rと並進成分tとに分割する。回転成分Rは3行3列の行列であり、並進成分tは3行1列の行列である。そして、詳細相対位置姿勢算出部125bは、移動先w(pi)の座標wを次の式(5)にしたがって算出する。なお、式(5)において、(R|t)は、3行3列のRと3行1列のtとをまとめた3行4列の行列を指す。
Figure 2018147095
図9は、詳細相対位置姿勢の算出処理について説明するための第2の図である。詳細相対位置姿勢算出部125bは、近傍キーフレームI1上のマップ点piのそれぞれに対応する注目領域を特定する。注目領域は、マップ点を中心とした縦横s画素の矩形領域として特定される。図9の例では、マップ点p1,p2,p3にそれぞれ対応する注目領域221,222,223が特定されている。
また、詳細相対位置姿勢算出部125bは、現画像I2上の移動先w(pi)のそれぞれに対応する注目領域を特定する。現画像I2上の注目領域も、移動先の点を中心とした縦横N画素の矩形領域として特定される。図9の例では、移動先w(p1),w(p2),w(p3)にそれぞれ対応する注目領域321,322,323が特定されている。
詳細相対位置姿勢算出部125bは、近傍キーフレームI1上の注目領域とこれに対応する現画像I2上の注目領域とのすべての組み合わせについての、輝度差の二乗和Sを算出する。ここで、近傍キーフレームI1上のi番目のマップ点に対応する注目領域に含まれるj番目の画素の輝度値をI1(i,j)と表す。また、現画像I2上のi番目の移動先に対応する注目領域に含まれるj番目の画素の輝度値をI2(i,j)と表す。このとき、輝度差の二乗和Sは、次の式(6)にしたがって求められる。
S=ΣiΣj[I2(i,j)−I1(i,j)]2 ・・・(6)
詳細相対位置姿勢算出部125bは、輝度差の二乗和Sが最小となるような相対位置姿勢ξrを、ガウス・ニュートン法を用いた反復計算によって算出し、その算出結果を詳細相対位置姿勢ξr1として出力する。以上の計算によれば、近傍キーフレームI1と現画像I2との間で、局所的な特徴点同士の特徴量ではなく、特徴点の周囲画素を含む注目領域同士の画素値が比較されることによって、詳細相対位置姿勢ξr1が算出される。これによって、類似する画像パターンが多数現れる場合でも、詳細相対位置姿勢ξr1の算出精度が低下しにくくなる。
なお、詳細相対位置姿勢ξr1のさらに詳細な計算方法については、図11において説明する。
最後に、詳細相対位置姿勢算出部125bは、算出された詳細相対位置姿勢ξr1と、近傍キーフレームI1についての絶対位置姿勢ξ1とに基づいて、現画像I2についての絶対位置姿勢ξnを推定する。絶対位置姿勢ξnは、前述の式(1)から算出することができる。上記のように、詳細相対位置姿勢ξr1の算出精度が低下しにくくなっていることから、現画像I2についての絶対位置姿勢ξnの推定精度を向上させることができる。
<フローチャート>
次に、トラッキング処理部120の処理についてフローチャートを用いて説明する。
図10、図11は、トラッキング処理部の処理手順の例を示すフローチャートである。
[ステップS11]画像取得部121は、カメラ108によって撮像された撮像画像をカメラ108から取得する。
[ステップS12]位置姿勢推定部122は、現画像から特徴点を抽出する。
[ステップS13]位置姿勢推定部122は、キーフレーム情報テーブル112に登録されたキーフレームの中から、現画像に類似するキーフレームを近傍キーフレームとして特定する。そして、位置姿勢推定部122は、近傍キーフレームに含まれるマップ点(特徴点)の二次元座標を近傍キーフレームのキーフレーム情報から取得する。位置姿勢推定部122は、現画像から抽出された特徴点に対応する、近傍キーフレーム上のマップ点を特定し、特徴点とマップ点とのペアを複数組抽出する。
[ステップS14]位置姿勢推定部122は、特徴点とマップ点との4組以上のペアを用いて、PnPアルゴリズムによって現画像の撮像時におけるカメラ108の絶対位置姿勢を推定する。
[ステップS15]品質判定部123は、ステップS14で推定された絶対位置姿勢の推定品質を判定する。品質判定部123は、絶対位置姿勢の推定品質を示す指標値が所定の閾値以上である場合、推定品質が高いと判定して、ステップS16の処理を実行する。一方、品質判定部123は、指標値が閾値未満の場合、推定品質が低いと判定して、図11のステップS21の処理を実行する。
[ステップS16]キーフレーム登録処理部124は、キーフレーム情報の登録条件を満たすかを判定する。キーフレーム登録処理部124は、登録条件を満たす場合、現画像をキーフレームとして登録すると判定し、ステップS17の処理を実行する。一方、キーフレーム登録処理部124は、登録条件を満たさない場合、処理を終了する。
[ステップS17]キーフレーム登録処理部124は、現画像についてのキーフレーム情報をキーフレーム情報テーブル112に登録する。キーフレーム情報のうち、位置姿勢の項目には、ステップS14で推定された絶対位置姿勢が登録される。特徴点群の項目には、ステップS13で近傍キーフレーム上のマップ点と対応付けられた現画像上の特徴点の二次元座標が登録される。対応マップ点番号の項目には、現画像上の特徴点に対応するマップ点の識別番号が登録される。
以下、図11を用いて説明を続ける。
[ステップS21]仮相対位置姿勢算出部125aは、現画像の縮小画像と近傍キーフレームの縮小画像との合わせ込みを行うことで、現画像と近傍キーフレームとの間の仮相対位置姿勢ξr0を算出する。なお、近傍キーフレームは、図10のステップS13で特定されたキーフレームである。仮相対位置姿勢算出部125aは、算出された仮相対位置姿勢ξr0を、この後の反復計算(ステップS22〜S25)で用いる相対位置姿勢ξrの初期値として設定する。
[ステップS22]詳細相対位置姿勢算出部125bは、近傍キーフレーム上のマップ点piの位置を相対位置姿勢ξrに基づいて移動したときの、現画像における移動先w(pi)の座標wを算出する。
[ステップS23]詳細相対位置姿勢算出部125bは、近傍キーフレーム上のマップ点piのそれぞれに対応する注目領域を特定する。また、詳細相対位置姿勢算出部125bは、現画像上の移動先w(pi)のそれぞれに対応する注目領域を特定する。
[ステップS24]詳細相対位置姿勢算出部125bは、前述の式(6)にしたがって、注目領域間の輝度差の二乗和Sを算出する。
[ステップS25]詳細相対位置姿勢算出部125bは、反復計算の結果、輝度差の二乗和Sが収束したかを判定する。この処理は、具体的には次のようにして実行される。
前述のように、近傍キーフレームI1上のi番目のマップ点に対応する注目領域に含まれるj番目の画素の輝度値をI1(i,j)と表す。また、現画像I2上のi番目の移動先に対応する注目領域に含まれるj番目の画素の輝度値をI2(i,j)と表す。詳細相対位置姿勢算出部125bは、コスト関数E(ξr)を式(7)のように設定する。また、式(7)中のe(ξr)は、式(8)のように表される。
Figure 2018147095
詳細相対位置姿勢算出部125bは、相対位置姿勢がξrのときの式(9)および式(10)の計算を実行する。
A=JTJ ・・・(9)
a=−JTe ・・・(10)
ここで、Jは、e(ξr)のヤコビ行列であり、下記の式(11)のように表される。また、式(11)中のeは、式(12)のように表される。なお、式(8)のAは、ヘッセ行列をヤコビ行列によって二次近似したものである。
Figure 2018147095
コスト関数E(ξr)を最小化するδξrは、式(9),(10)を用いて式(13)のように表される。
A・δξr=a ・・・(13)
詳細相対位置姿勢算出部125bは、式(13)を解いてδξrを計算する。そして、詳細相対位置姿勢算出部125bは、式(14)にしたがってδEを計算する。
δE=E(ξr+δξr)−E(ξr) ・・・(14)
詳細相対位置姿勢算出部125bは、ステップS22〜S24での変化量|δE|/Eを、収束を判定するための指標値として用いる。あるいは、指標値としては、変化量|δξr|/ξrが用いられてもよい。詳細相対位置姿勢算出部125bは、指標値が十分小さい場合、輝度差の二乗和Sが収束したと判定する。この場合、詳細相対位置姿勢算出部125bは、このときのξrを詳細相対位置姿勢ξr1として出力し、ステップS27の処理を実行する。
一方、詳細相対位置姿勢算出部125bは、指標値が十分小さいとは言えない場合、ステップS26の処理を実行する。
[ステップS26]詳細相対位置姿勢算出部125bは、ξrをξr+δξrによって更新する。この後、ステップS22に戻り、更新されたξrを用いた処理が実行される。
[ステップS27]詳細相対位置姿勢算出部125bは、算出された詳細相対位置姿勢ξr1と、キーフレーム情報テーブル112から取得される、近傍キーフレームについての絶対位置姿勢ξ1とに基づき、現画像についての絶対位置姿勢ξnを式(1)にしたがって推定する。
以上説明した端末装置100によれば、近傍キーフレームと現画像との間で、局所的な特徴点同士の特徴量ではなく、特徴点の周囲を含む注目領域同士の画素値が比較されることによって、詳細相対位置姿勢が算出され、これに基づいて絶対位置姿勢が推定される。これによって、前述の第1の比較例と比較して、類似する画像パターンが多数現れる場合でも、詳細相対位置姿勢ξr1の算出精度が低下しにくくなる。その結果、絶対位置姿勢の推定精度を向上させることができる。したがって、復帰処理を高精度に行うことができる。
また、端末装置100によれば、近傍キーフレームと現画像の各縮小画像を用いて大まかな仮相対位置姿勢を算出した後、上記のような注目領域同士の画素値の比較によって詳細相対位置姿勢を算出する。そして、詳細相対位置姿勢に基づいて絶対位置姿勢を推定する。このため、前述の第2の比較例と比較して、相対位置姿勢の算出精度を向上させることができ、その結果、絶対位置姿勢の推定精度も向上させることができる。
さらに、端末装置100によれば、平行移動以外のカメラ108の運動時に位置姿勢の推定精度が低下しやすいオプティカルフローによる特徴点追跡も、実行しなくて済む。また、オプティカルフローと特徴量のマッチングの両方を実行することもないので、処理負荷を抑制できる。
次に、第2の実施の形態に係る端末装置100の処理の一部を変形した変形例について説明する。なお、以下の第1の変形例および第2の変形例では、端末装置の処理機能の基本的な構成は同じなので、端末装置の処理機能の構成について第2の実施の形態と同じ符号を用いて説明する。
〔第1の変形例〕
図12は、第1の変形例での注目領域の特定方法を説明するための図である。第2の実施の形態では、図9に示したように、近傍キーフレーム上のマップ点および現画像上の特徴点を中心とした縦横N画素の領域が、注目領域として設定された。これに対して、第1の変形例では、近傍キーフレーム上のマップ点の中から、エッジ251上に存在するマップ点252a,252bのペアが抽出される。そして、注目領域253は、X軸とY軸のうち、一方の方向(図12ではX軸方向)に対する範囲が、マップ点252a,252bのペアを包含する範囲となるように設定される。また、他方の方向(図12ではY軸方向)に対する範囲が、マップ点252a,252bのペアを結ぶ線(図12ではエッジ251)を中心として、その方向に沿って両側にM画素を含むように設定される。第1の変形例では、上記のような注目領域がキーフレームから複数特定される。
また、現画像においては、仮相対位置姿勢に基づく、上記のようなマップ点のペアの移動先が特定される。そして、移動先のペアを結ぶ直線を利用して、近傍キーフレームと同じルールで注目領域が特定される。なお、近傍キーフレーム上のマップ点のペアの位置関係は、現画像上の移動先のペアの位置関係と同じになるとは限らない。このため、キーフレームと現画像との間で対応する注目領域は、互いに同じ大きさや同じ形状になるとは限らない。
上記のようにエッジの検出結果に基づいて注目領域が特定されることで、第2の実施の形態と比較して、対象物に直線的な模様が多い環境における詳細相対位置姿勢の推定精度を向上させることができる。
なお、本変形例では、図12に示すようなエッジの検出結果に基づく注目領域とともに、第2の実施の形態で用いられた、マップ点および特徴点を中心とする矩形の注目領域も併用される。特徴点は主にコーナー部で抽出されるので、第2の実施の形態では、コーナー部近傍の形状が類似する画像パターンが多い場合に、詳細相対位置姿勢の推定精度向上効果が高い。したがって、第2の実施の形態で用いられた注目領域も併用することで、様々な環境に対して位置姿勢の推定精度を向上させることができる。
図13は、第1の変形例における復帰処理手順の例を示すフローチャートである。第1の変形例では、図11に示した処理が図13に示すように変形される。なお、図13では、図11と同じ処理が実行される処理ステップには同じ符号を付して示し、その説明を省略する。
図13の処理では、図11のステップS23の次に、ステップS23a,S23bが実行される。その次に、ステップS24,S25の代わりにステップS24a,S25aが実行される。
[ステップS23a]詳細相対位置姿勢算出部125bは、近傍キーフレームからエッジを検出する。
[ステップS23b]詳細相対位置姿勢算出部125bは、近傍キーフレーム内のマップ点の中から、同一のエッジ上に存在するマップ点のペアを特定する。そして、詳細相対位置姿勢算出部125bは、近傍キーフレーム上に、特定されたマップ点のペアのそれぞれに対応する注目領域を特定する。さらに、詳細相対位置姿勢算出部125bは、特定されたマップ点のペアに対応する現画像上の移動先のペアを特定し、現画像上に、移動先のペアのそれぞれに対応する注目領域を特定する。
[ステップS24a]詳細相対位置姿勢算出部125bは、近傍キーフレーム上の注目領域と現画像上の注目領域との間の輝度差の二乗和Sを算出する。
ここで、ステップS23で特定された注目領域を「第1注目領域」と呼び、ステップS23bで特定された注目領域を「第2注目領域」と呼ぶ。また、近傍キーフレームI1上のi番目のマップ点に対応する第1注目領域に含まれるj番目の画素の輝度値をI1(i,j)と表し、現画像I2上のi番目の移動先に対応する第1注目領域に含まれるj番目の画素の輝度値をI2(i,j)と表す。さらに、近傍キーフレームI1上のm番目のマップ点ペアに対応する第2注目領域に含まれるn番目の画素の輝度値をI1(m,n)と表し、現画像I2上のm番目の移動先ペアに対応する第2注目領域に含まれるn番目の画素の輝度値をI2(m,n)と表す。このとき、詳細相対位置姿勢算出部125bは、輝度差の二乗和Sを次の式(15)にしたがって算出する。
S=ΣiΣj[I2(i,j)−I1(i,j)]2+ΣmΣn[I2(m,n)−I1(m,n)]2 ・・・(15)
[ステップS25a]詳細相対位置姿勢算出部125bは、ステップS24aで算出された輝度差の二乗和Sを適用して、図11のステップS25と同様の手順により収束したか否かを判定する。
〔第2の変形例〕
図14は、画像ピラミッドの構成例を示す図である。図14に示す画像ピラミッドは、元の画像に対応する階層L1と、元の画像を縮小した縮小画像の階層L2〜L4とを有する。階層L2の画像は、階層L1の画像の1/2のサイズを有し、階層L3の画像は、階層L2の画像の1/2のサイズを有し、階層L4の画像は、階層L3の画像の1/2のサイズを有する。なお、ここでは、階層L4を最上位階層とし、階層L1を最下位階層とする。
第2の変形例では、近傍キーフレームおよび現画像のそれぞれについて、図14のような階層L1〜L4の画像が用いられる。例えば、近傍キーフレームに対応する階層L1〜L4の画像は、対応するキーフレーム情報に対して予め登録されていればよい。一方、現画像に対応する階層L1〜L4の画像は、復帰処理時に生成される。
第2の変形例において、詳細相対位置姿勢算出部125bは、近傍キーフレームおよび現画像に対応する階層L4から階層L1までの画像を順次利用しながら、詳細相対位置姿勢の算出のための反復処理を実行する。その処理の詳細については、図15を用いて説明する。
図15は、第2の変形例における復帰処理手順の例を示すフローチャートである。第2の変形例では、図11に示した処理が図15に示すように変形される。なお、図15では、図11と同じ処理が実行される処理ステップには同じ符号を付して示し、その説明を省略する。
図15の処理では、図11のステップS21の次に、ステップS21aが実行され、その後にステップS22が実行される。また、ステップS25a,S25bが追加される。
[ステップ21a]詳細相対位置姿勢算出部125bは、ステップS22以降の処理に用いる近傍キーフレームおよび現画像として、最上位階層(階層L4)の画像を選択する。
[ステップS25a]詳細相対位置姿勢算出部125bは、ステップS25で「Yes」と判定された場合、ステップS25aの処理を実行する。詳細相対位置姿勢算出部125bは、画像ピラミッドの全階層を選択済みかを判定する。詳細相対位置姿勢算出部125bは、未選択の階層がある場合、ステップS25bの処理を実行し、全階層を選択済みの場合、ステップS27の処理を実行する。
[ステップS25b]詳細相対位置姿勢算出部125bは、次回のステップS22以降の処理に用いる近傍キーフレームおよび現画像として、1つ下位の階層の画像を選択する。この後、詳細相対位置姿勢算出部125bは、ステップS26の処理を実行する。
以上の第2の変形例によれば、詳細相対位置姿勢の算出過程において収束を早めることができる。例えば、画像ピラミッドを利用しない場合、カメラ108の動きが速くなると、収束に失敗したり、誤った数値に収束する可能性が高まる。これに対して、画像ピラミッドの上位層側から画像を順次利用することで、相対位置姿勢の収束範囲を階層ごとに徐々に狭めながら計算を進めていくことができる。これにより、常に適切な値に収束させながら推定処理を進めていくことができ、正しい値に収束しやすくなる。また、正しい値に収束しやすくなることで、収束するまでの時間を短縮できる。
なお、上記の第2の変形例では、注目領域として、第2の実施の形態で用いられた、マップ点および特徴点を中心とする注目領域のみ利用した例を示した。しかし、第2の変形例のように画像ピラミッドを利用する場合でも、例えば、エッジの検出結果に基づく注目領域を用いることができるし、あるいは、マップ点および特徴点を中心とする注目領域と、エッジの検出結果に基づく注目領域とを併用することもできる。
また、上記の各実施の形態に示した装置(カメラ位置姿勢推定装置1、端末装置100)の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc-Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
1 カメラ位置姿勢推定装置
1a 記憶部
1b 演算部
2a,2b キー画像
3a,3b 姿勢値
4 現画像
5a,5b,6a,6b 領域

Claims (8)

  1. 複数の第1の画像と、前記複数の第1の画像それぞれの撮像時におけるカメラの位置姿勢を示す複数の第1の姿勢値とを記憶する記憶部と、演算部とを有し、
    前記演算部は、
    前記複数の第1の画像の中から第2の画像に類似する第3の画像を特定し、
    前記第3の画像から複数画素を含む第1の領域を特定するとともに、前記第2の画像から前記第1の領域に対応する第2の領域を推定し、
    前記第1の領域と前記第2の領域との間の画素値の比較結果と、前記複数の第1の姿勢値のうち前記第3の画像に対応する第2の姿勢値とに基づいて、前記第2の画像の撮像時における前記カメラの位置姿勢を示す第3の姿勢値を推定する、
    カメラ位置姿勢推定装置。
  2. 前記第2の領域の推定では、前記第2の姿勢値が示す位置姿勢に対する、前記第2の画像の撮像時における前記カメラの相対的な位置姿勢を示す相対姿勢値に基づいて前記第2の領域を推定したときに、前記第1の領域と前記第2の領域との間の画素値の差分が最小になるような前記相対姿勢値を算出し、
    前記第3の姿勢値の推定では、前記相対姿勢値と前記第2の姿勢値とに基づいて前記第3の姿勢値を推定する、
    請求項1記載のカメラ位置姿勢推定装置。
  3. 前記第2の領域の推定は、
    前記第3の画像を縮小した第1の縮小画像と前記第2の画像を縮小した第2の縮小画像とに基づいて、前記第2の姿勢値が示す位置姿勢に対する、前記第2の画像の撮像時における前記カメラの相対的な位置姿勢を示す第1の相対姿勢値を算出し、
    前記第1の相対姿勢値を第2の相対姿勢値の初期値として設定し、
    前記第2の相対姿勢値に基づいて前記第2の領域を推定したときに前記第1の領域と前記第2の領域との間の画素値の差分が最小になるような前記第2の相対姿勢値を、反復計算によって算出する、
    処理を含み、
    前記第3の姿勢値の推定では、前記反復計算によって算出された前記第2の相対姿勢値と、前記第2の姿勢値とに基づいて、前記第3の姿勢値を推定する、
    請求項2記載のカメラ位置姿勢推定装置。
  4. 前記第2の領域の推定では、前記第3の画像と前記第2の画像とそれぞれを変換して得られるサイズの異なる複数の画像ペアを、サイズの小さい順に用いて前記反復計算を繰り返し実行し、
    前記複数の画像ペアのうち、第1の画像ペアを用いた前記反復計算によって算出された前記第2の相対姿勢値が、前記第1の画像ペアの次にサイズが大きい第2の画像ペアを用いた前記反復計算における前記第2の相対姿勢値の初期値として設定される、
    請求項3記載のカメラ位置姿勢推定装置。
  5. 前記第3の画像は、複数の特徴点を含み、
    前記第1の領域は、前記複数の特徴点のうち、前記第3の画像上のエッジで結ばれた特徴点ペアを含む3以上の画素を含む領域として特定される、
    請求項1乃至4のいずれか1項に記載のカメラ位置姿勢推定装置。
  6. 前記記憶部は、複数の第1の特徴点それぞれについての三次元空間上の座標を示す複数の第1のマップ点座標を記憶し、
    前記演算部は、さらに、前記複数の第1のマップ点座標のうち、第4の画像から抽出された第2の特徴点についての第2のマップ点座標に基づいて、前記第4の画像の撮像時における前記カメラの位置姿勢を示す第4の姿勢値を推定し、
    前記第1の領域の特定および前記第2の領域の推定は、前記第4の姿勢値の推定に失敗した場合に実行され、
    前記第2の画像は、前記第4の姿勢値の推定に失敗した後に前記カメラによって撮像された画像である、
    請求項1乃至5のいずれか1項に記載のカメラ位置姿勢推定装置。
  7. コンピュータが、
    複数の第1の画像と、前記複数の第1の画像それぞれの撮像時におけるカメラの位置姿勢を示す複数の第1の姿勢値とを記憶する記憶部を参照し、
    前記複数の第1の画像の中から第2の画像に類似する第3の画像を特定し、
    前記第3の画像から複数画素を含む第1の領域を特定するとともに、前記第2の画像から前記第1の領域に対応する第2の領域を推定し、
    前記第1の領域と前記第2の領域との間の画素値の比較結果と、前記複数の第1の姿勢値のうち前記第3の画像に対応する第2の姿勢値とに基づいて、前記第2の画像の撮像時における前記カメラの位置姿勢を示す第3の姿勢値を推定する、
    カメラ位置姿勢推定方法。
  8. コンピュータに、
    複数の第1の画像と、前記複数の第1の画像それぞれの撮像時におけるカメラの位置姿勢を示す複数の第1の姿勢値とを記憶する記憶部を参照し、
    前記複数の第1の画像の中から第2の画像に類似する第3の画像を特定し、
    前記第3の画像から複数画素を含む第1の領域を特定するとともに、前記第2の画像から前記第1の領域に対応する第2の領域を推定し、
    前記第1の領域と前記第2の領域との間の画素値の比較結果と、前記複数の第1の姿勢値のうち前記第3の画像に対応する第2の姿勢値とに基づいて、前記第2の画像の撮像時における前記カメラの位置姿勢を示す第3の姿勢値を推定する、
    処理を実行させるカメラ位置姿勢推定プログラム。
JP2017039450A 2017-03-02 2017-03-02 カメラ位置姿勢推定装置、方法およびプログラム Active JP6842039B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017039450A JP6842039B2 (ja) 2017-03-02 2017-03-02 カメラ位置姿勢推定装置、方法およびプログラム
US15/903,752 US10636165B2 (en) 2017-03-02 2018-02-23 Information processing apparatus, method and non-transitory computer-readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017039450A JP6842039B2 (ja) 2017-03-02 2017-03-02 カメラ位置姿勢推定装置、方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2018147095A true JP2018147095A (ja) 2018-09-20
JP6842039B2 JP6842039B2 (ja) 2021-03-17

Family

ID=63355256

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017039450A Active JP6842039B2 (ja) 2017-03-02 2017-03-02 カメラ位置姿勢推定装置、方法およびプログラム

Country Status (2)

Country Link
US (1) US10636165B2 (ja)
JP (1) JP6842039B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020052790A (ja) * 2018-09-27 2020-04-02 キヤノン株式会社 情報処理装置、情報処理方法、およびプログラム
JP2020057358A (ja) * 2018-10-01 2020-04-09 三星電子株式会社Samsung Electronics Co.,Ltd. ポーズ情報を取得する方法及び装置
WO2022130618A1 (ja) * 2020-12-18 2022-06-23 三菱電機株式会社 位置・姿勢推定装置、位置・姿勢推定方法、及びプログラム

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7131994B2 (ja) * 2018-07-04 2022-09-06 株式会社東芝 自己位置推定装置、自己位置推定方法、自己位置推定プログラム、学習装置、学習方法及び学習プログラム
GB2577719B (en) * 2018-10-03 2023-04-26 Cmr Surgical Ltd Navigational aid
KR102198187B1 (ko) * 2018-12-28 2021-01-04 엘지전자 주식회사 이동 로봇
US11810323B2 (en) * 2018-12-28 2023-11-07 Ntt Docomo, Inc. Position estimation system
US11263780B2 (en) * 2019-01-14 2022-03-01 Sony Group Corporation Apparatus, method, and program with verification of detected position information using additional physical characteristic points
JP7220591B2 (ja) * 2019-03-07 2023-02-10 三菱重工業株式会社 自己位置推定装置、自己位置推定方法及びプログラム
CN111695519B (zh) * 2020-06-12 2023-08-08 北京百度网讯科技有限公司 关键点定位方法、装置、设备以及存储介质
US20220092334A1 (en) * 2020-09-22 2022-03-24 Apple Inc. Contextual Matching

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4898464B2 (ja) 2007-01-17 2012-03-14 キヤノン株式会社 情報処理装置および方法
JP2011008687A (ja) 2009-06-29 2011-01-13 Sharp Corp 画像処理装置
JP5423406B2 (ja) 2010-01-08 2014-02-19 ソニー株式会社 情報処理装置、情報処理システム及び情報処理方法
JP6195915B2 (ja) * 2013-05-07 2017-09-13 シャープ株式会社 画像計測装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020052790A (ja) * 2018-09-27 2020-04-02 キヤノン株式会社 情報処理装置、情報処理方法、およびプログラム
US11490062B2 (en) 2018-09-27 2022-11-01 Canon Kabushiki Kaisha Information processing apparatus, information processing method, and storage medium
JP7182976B2 (ja) 2018-09-27 2022-12-05 キヤノン株式会社 情報処理装置、情報処理方法、およびプログラム
JP2020057358A (ja) * 2018-10-01 2020-04-09 三星電子株式会社Samsung Electronics Co.,Ltd. ポーズ情報を取得する方法及び装置
JP7365148B2 (ja) 2018-10-01 2023-10-19 三星電子株式会社 ポーズ情報を取得する方法及び装置
WO2022130618A1 (ja) * 2020-12-18 2022-06-23 三菱電機株式会社 位置・姿勢推定装置、位置・姿勢推定方法、及びプログラム
JPWO2022130618A1 (ja) * 2020-12-18 2022-06-23
JP7258250B2 (ja) 2020-12-18 2023-04-14 三菱電機株式会社 位置・姿勢推定装置、位置・姿勢推定方法、及びプログラム

Also Published As

Publication number Publication date
US20180253861A1 (en) 2018-09-06
JP6842039B2 (ja) 2021-03-17
US10636165B2 (en) 2020-04-28

Similar Documents

Publication Publication Date Title
JP6842039B2 (ja) カメラ位置姿勢推定装置、方法およびプログラム
JP6435750B2 (ja) 3次元座標算出装置、3次元座標算出方法および3次元座標算出プログラム
JP6237326B2 (ja) 姿勢推定装置、姿勢推定方法及び姿勢推定用コンピュータプログラム
JP5699788B2 (ja) スクリーン領域検知方法及びシステム
CA2507174C (en) Method of registering and aligning multiple images
JP3735344B2 (ja) キャリブレーション装置、キャリブレーション方法、及びキャリブレーション用プログラム
JP6372149B2 (ja) 表示制御装置、表示制御方法および表示制御プログラム
US9218537B2 (en) Image processing device and image processing method
JP6256475B2 (ja) 画像処理装置、画像処理方法および画像処理プログラム
JP2016167229A (ja) 座標変換パラメータ決定装置、座標変換パラメータ決定方法及び座標変換パラメータ決定用コンピュータプログラム
US20150339541A1 (en) Point cloud matching method
US8170339B2 (en) Image processing apparatus and image processing method
KR101592798B1 (ko) 배향 센서들에 기초한 호모그래피 분해 모호성의 해결
KR100951309B1 (ko) 광학식 모션 캡처 장비를 위한 다중 카메라 보정 방법
CN111062966B (zh) 基于l-m算法和多项式插值对相机跟踪进行优化的方法
US20200051278A1 (en) Information processing apparatus, information processing method, robot system, and non-transitory computer-readable storage medium
JP4694624B2 (ja) 画像補正装置及び方法、並びにコンピュータプログラム
JP6922348B2 (ja) 情報処理装置、方法、及びプログラム
CN115830135A (zh) 一种图像处理方法、装置及电子设备
JP2008309595A (ja) オブジェクト認識装置及びそれに用いられるプログラム
JP5878454B2 (ja) 推定装置、推定方法及びコンピュータプログラム
JP2011155412A (ja) 投影システムおよび投影システムにおける歪み修正方法
JP2009146150A (ja) 特徴位置検出方法及び特徴位置検出装置
JP2014032628A (ja) 対応点探索装置、そのプログラムおよびカメラパラメータ推定装置
JP2000348186A (ja) 物体追跡装置及び方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191112

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20191118

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20191118

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: 20210119

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210201

R150 Certificate of patent or registration of utility model

Ref document number: 6842039

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150