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

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

Info

Publication number
JP7258250B2
JP7258250B2 JP2022569662A JP2022569662A JP7258250B2 JP 7258250 B2 JP7258250 B2 JP 7258250B2 JP 2022569662 A JP2022569662 A JP 2022569662A JP 2022569662 A JP2022569662 A JP 2022569662A JP 7258250 B2 JP7258250 B2 JP 7258250B2
Authority
JP
Japan
Prior art keywords
orientation
unit
absolute
calculation
absolute position
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.)
Active
Application number
JP2022569662A
Other languages
English (en)
Other versions
JPWO2022130618A1 (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of JPWO2022130618A1 publication Critical patent/JPWO2022130618A1/ja
Application granted granted Critical
Publication of JP7258250B2 publication Critical patent/JP7258250B2/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • G06V20/46Extracting features or characteristics from the video content, e.g. video fingerprints, representative shots or key frames
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/10Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
    • G01C21/12Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning
    • G01C21/16Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation
    • G01C21/183Compensation of inertial measurements, e.g. for temperature effects
    • G01C21/188Compensation of inertial measurements, e.g. for temperature effects for accumulated errors, e.g. by coupling inertial systems with absolute positioning systems
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B11/00Measuring arrangements characterised by the use of optical techniques
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/10Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
    • G01C21/12Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning
    • G01C21/16Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation
    • G01C21/165Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments
    • G01C21/1656Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments with passive imaging devices, e.g. cameras
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3804Creation or updating of map data
    • G01C21/3833Creation or updating of map data characterised by the source of data
    • G01C21/3844Data obtained from position sensors only, e.g. from inertial navigation
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3863Structures of map data
    • G01C21/387Organisation of map data, e.g. version management or database structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/05Geographic models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/30Determination of transform parameters for the alignment of images, i.e. image registration
    • 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/80Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
    • G06V10/751Comparing pixel values or logical combinations thereof, or feature values having positional relevance, e.g. template matching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/761Proximity, similarity or dissimilarity measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/20Scenes; Scene-specific elements in augmented reality scenes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • 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
    • 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/30248Vehicle exterior or interior
    • G06T2207/30252Vehicle exterior; Vicinity of vehicle

Description

本開示は、位置・姿勢推定装置、位置・姿勢推定方法、及びプログラムに関する。
Augmented Reality(AR)が適用された装置及びAutomated Guided Vehicle(AGV)が適用されたロボットなどにおいて、相対位置・姿勢の計算の結果と絶対位置・姿勢の計算の結果とを組み合わせることで位置・姿勢の計算(すなわち、推定)の精度を向上させる方法が提案されている。例えば、特許文献1を参照。
相対位置・姿勢の計算は、ある位置・姿勢からの相対的な移動量の計算であり、一定周期(一般には、短周期)ごとに繰り返し実行される処理である。例えば、相対位置・姿勢の計算には、カメラによって撮影された画像であるカメラ画像又は距離センサによって検出された距離に基づいて移動量を求めるSimultaneous Localization And Mapping(SLAM)、ジャイロセンサ若しくは加速度センサなどが統合されたInertial Measurement Unit(IMU)を用いる方法、又は車輪の回転数に基づいて移動量を求める自律航法、などが使用される。これらの方法では、相対位置・姿勢の計算の度に誤差が加算されるため、長距離移動すると累積した誤差が大きくなる問題がある。そのため、相対位置・姿勢の計算の結果と絶対位置・姿勢の計算の結果とを組み合わせて、相対位置・姿勢の計算によって累積した誤差を、定期的に取り除く処理が行われる。
絶対位置・姿勢の計算は、予め用意した3次元地図を用いて行われ、例えば、3次元地図が示す物体の前で実行される。絶対位置・姿勢の計算は、例えば、3次元地図及びカメラ画像を使って行われる。
図1は、ARが適用された端末111を携行するユーザ112が移動した場合に、端末111が相対位置・姿勢の計算と絶対位置・姿勢の計算とを用いて位置・姿勢を推定する例を示す図である。端末111は、例えば、タブレット端末又はHead Mounted Display(HMD)を用いた端末、などである。この場合、端末111は、相対位置・姿勢計算(1)を実行しながら移動し、3次元地図が示す物体113の前で実行した絶対位置・姿勢計算(2)の結果を用いて累積した誤差を取り除き、その後、相対位置・姿勢計算(3)を実行しながら移動する。これにより、3次元地図が示す物体113から離れても、位置・姿勢を精度良く推定でき、その結果、端末の画面に表示された現実の画像上の適切な位置にARコンテンツを重畳表示し続けることができる。
図2は、AGVが適用されたロボット121が移動した場合に、ロボット121が相対位置・姿勢の計算と絶対位置・姿勢の計算とを用いて位置・姿勢を推定する例を示す図である。この場合、ロボット121は、相対位置・姿勢計算(4)を実行しながら移動し、3次元地図が示す物体123の前で実行された絶対位置・姿勢計算(5)の結果を用いて累積した誤差を取り除き、その後、相対位置・姿勢計算(6)を実行しながら移動する。これにより、3次元地図が示す物体123から離れても、ロボット121は、自己の位置・姿勢を精度良く推定でき、その結果、目標とする位置に正確に到達することができる。
特開2019-160147号公報
しかしながら、従来の絶対位置・姿勢の推定は、1フレーム(すなわち、1枚の画像フレーム)のみを使用して行われているため、計算の精度(すなわち、精度の推定)は1フレームに含まれる被写体に依存して大きく変動するという課題がある。
例えば、カメラ画像を用いる場合、被写体の模様に依存して絶対位置・姿勢の計算の精度が変動することがある。つまり、被写体の模様が特徴的である場合には、絶対位置・姿勢の計算を高い精度で行うことができるが、被写体の模様がストライプ若しくはボーダーなどの繰り返し模様である場合又は被写体が真っ白な壁などのように模様が無い物体である場合には、絶対位置・姿勢の計算の精度は低下する。
また、レーザ又は赤外線などを利用して得られた被写体までの距離情報を用いて絶対位置・姿勢を計算する場合、被写体の形状に依存して絶対位置・姿勢の計算の精度が大きく変動する。つまり、被写体の形状が特徴的である場合には、絶対位置・姿勢の計算を高い精度で行うことができるが、被写体の形状が特徴的ではない場合には、絶対位置・姿勢の計算の精度は低下する。
本開示は、上記した課題を解決するためになされたものであり、位置・姿勢の推定の精度を向上させることができる位置・姿勢推定装置、位置・姿勢推定方法、及びプログラムを提供することを目的とする。
本開示の位置・姿勢推定装置は、データベースから3次元地図のデータを読み込むデータベース読込部と、複数の異なる視点から撮影した画像のフレームの中から位置・姿勢の計算に使用するフレームを選択する処理を行うフレーム選択部と、前記フレーム選択部によって選択された複数のフレームについての複数の相対位置・姿勢を取得する処理を行う相対位置・姿勢取得部と、前記フレーム選択部によって選択された複数のフレームについての複数の絶対位置・姿勢を取得する処理を行う絶対位置・姿勢計算部と、前記相対位置・姿勢取得部によって取得された相対位置・姿勢と、前記絶対位置・姿勢計算部によって取得された絶対位置・姿勢と、を統合して、最終的な絶対位置・姿勢を取得する絶対位置・姿勢統合部と、を有することを特徴とする。
本開示の位置・姿勢推定方法は、位置・姿勢推定装置が実行する方法であって、位置データベースから3次元地図のデータを読み込むステップと、複数の異なる視点から撮影した画像のフレームの中から位置・姿勢の計算に使用するフレームを選択する処理を行うステップと、選択された複数のフレームについての複数の相対位置・姿勢を取得する処理を行うステップと、前記選択された複数のフレームについての複数の絶対位置・姿勢を取得する処理を行うステップと、取得された前記相対位置・姿勢と、取得された前記絶対位置・姿勢と、を統合して、最終的な絶対位置・姿勢を取得するステップと、を有することを特徴とする。
本開示の装置、方法、又はプログラムによれば、位置・姿勢の推定の精度を向上させることができる。
ARが適用された端末を携行するユーザが移動した場合に、端末が相対位置・姿勢の計算と絶対位置・姿勢の計算とを用いて位置・姿勢を推定する例を示す図である。 AGVが適用されたロボットが移動した場合に、ロボットが相対位置・姿勢の計算と絶対位置・姿勢の計算とを用いて位置・姿勢を推定する例を示す図である。 実施の形態1に係る位置・姿勢推定装置及びそれを含む位置・姿勢推定システムのハードウェア構成の例を示す図である。 図3に示される位置・姿勢推定装置のハードウェア構成の例を示す図である。 実施の形態1に係る3次元地図作成装置の構成を概略的に示す機能ブロック図である。 画像にランダムパターンを付加する処理の一例を示す図である。 フロアマップに3次元地図を位置合わせして登録する処理を示す図である。 実施の形態1に係る位置・姿勢推定装置の構成を概略的に示す機能ブロック図である。 実施の形態1に係る3次元地図作成装置による3次元地図の作成のための処理の例を示すフローチャートである。 実施の形態1に係る位置・姿勢推定装置による位置・姿勢の推定のための処理の例を示すフローチャートである。 実施の形態1に係る位置・姿勢推定装置による位置・姿勢の推定のための処理の他の例を示すフローチャートである。 実施の形態2に係る3次元地図作成装置の構成を概略的に示す機能ブロック図である。 実施の形態2に係る3次元地図作成装置が使用する分散の計算方法を示す図である。 実施の形態2に係る位置・姿勢推定装置の構成を概略的に示す機能ブロック図である。 実施の形態2に係る3次元地図作成装置による3次元地図の作成のための処理の例を示すフローチャートである。 実施の形態2に係る位置・姿勢推定装置による位置・姿勢の推定のための処理の例を示すフローチャートである。 実施の形態3に係る位置・姿勢推定装置の構成を概略的に示す機能ブロック図である。 実施の形態3に係る位置・姿勢推定装置による位置・姿勢の推定のための処理の例を示すフローチャートである。 実施の形態4に係る位置・姿勢推定装置の構成を概略的に示す機能ブロック図である。 実施の形態4に係る位置・姿勢推定装置による位置・姿勢の推定のための処理の他の例を示すフローチャートである。
以下に、実施の形態に係る位置・姿勢推定装置、位置・姿勢推定方法、及びプログラムを、図面を参照しながら説明する。以下の実施の形態は、例にすぎず、実施の形態を適宜組み合わせること及び実施の形態を適宜変更することが可能である。なお、本出願において「位置・姿勢」は、位置及び姿勢を意味する。「位置」は、例えば、カメラを搭載した端末又はロボットの位置を意味する。「姿勢」は、例えば、カメラによる撮影方向又は距離センサによる測定方向を意味する。
《1》実施の形態1
《1-1》構成
《1-1-1》概要
実施の形態1では、カメラによって撮影された画像であるカメラ画像(すなわち、撮像画像)を用いた絶対位置・姿勢の計算の精度の向上について述べる。カメラ画像を用いて位置・姿勢を推定する方法として、第1の推定方法が知られている。例えば、非特許文献1を参照。
Paul-Edouard Sarlin、外3名著、 "From Coarse to Fine: Robust Hierarchical Localization at Large Scale"、 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition.
第1の推定方法では、直接的なマッチングを用いる。第1の推定方法では、画像の局所特徴の集合に基づいて、直接的にカメラの位置・姿勢を計算する。
また、カメラ画像を用いて位置・姿勢を推定する方法として、第2の推定方法が知られている。第2の推定方法では、Convolutional Neural Network(CNN)で画像からカメラの位置・姿勢を推定する。例えば、非特許文献2を参照。
Samarth Brahmbhatt、外4名著、 "Geometry-Aware Learning of Maps for Camera Localization"、 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition.
第2の推定方法では、2段階のマッチングを用いる。第2の推定方法では、視点が異なる複数の画像を用意し、最初に、複数の画像の中から、撮影で得られたカメラ画像に最も類似した画像を類似画像として特定し、次に、類似画像から抽出した局所特徴とカメラ画像から抽出した局所特徴との対応関係に基づいて、カメラの位置・姿勢を求める。実施の形態1では、第2の推定方法に基づく方法を用いる。
図3は、実施の形態1に係る位置・姿勢推定装置101及びそれを含む位置・姿勢推定システム100のハードウェア構成の例を示す図である。実施の形態1に係る位置・姿勢推定装置101は、位置・姿勢の推定のための計算を実行する計算機であるコンピュータを有している。図3の例では、実施の形態1に係る位置・姿勢推定システム100は、位置・姿勢推定装置101と、記憶装置に格納された3次元地図データベース(3次元地図DB)102と、距離センサ103と、撮像装置としてのカメラ104と、液晶表示装置などのディスプレイ105とを有している。また、図3の例では、位置・姿勢推定システム100は、ジャイロセンサ106と、加速度センサ107と、地磁気センサ108とを有している。ジャイロセンサ106、加速度センサ107、及び地磁気センサ108を有する装置は、「IMU」とも称される。位置・姿勢推定装置101と、図3に示される他の構成とは、例えば、ネットワークで接続されている。3次元地図DB102は、位置・姿勢推定装置101の一部であってもよい。
3次元地図DB102は、絶対位置・姿勢の計算をするときに使用される、予め用意された3次元地図情報を含む。3次元地図DB102は、実施の形態1に係る位置・姿勢推定システム100の一部である必要はなく、外部の記憶装置に格納された情報であってもよい。また、3次元地図DB102は、位置・姿勢推定装置101によって作成されてもよい。この場合、位置・姿勢推定装置101は、3次元地図作成装置としての機能を持つ。つまり、実施の形態1に係る3次元地図作成装置は、位置・姿勢推定装置101の一部である。ただし、実施の形態1に係る3次元地図作成装置は、位置・姿勢推定装置101と別個の装置であってもよい。
距離センサ103は、赤外線又はレーザなどを用いて距離を計測する機器である。カメラ104は、カメラ画像を取得する機器である。位置・姿勢推定システム100は、カメラ104及び距離センサ103のうちの一方のみを有してもよい。
ディスプレイ105は、ARコンテンツをカメラ画像に重畳表示する場合に必要な表示機器である。位置・姿勢推定システム100は、ディスプレイ105を備えないことも可能である。
ジャイロセンサ106、加速度センサ107、及び地磁気センサ108は、自律航法により相対位置・姿勢の計算をするための機器であるIMUを構成する。ただし、自律航法により相対位置・姿勢の計算を計算しない場合には、IMUを備えないことも可能である。また、ジャイロセンサ106、加速度センサ107、及び地磁気センサ108のうちの1つのみ又は2つのみを備えてもよい。なお、位置・姿勢推定装置101に接続される機器は、図3に示されるものの一部であってもよく、又は、図3に示されていない他の機器を備えてもよい。
図4は、位置・姿勢推定装置101のハードウェア構成の例を示す図である。位置・姿勢推定装置101は、情報処理部としてのCPU(Central Processing Unit)1011と、記憶装置であるメモリ1012と、インタフェース1013とを有する。3次元地図DB102、距離センサ103、カメラ104、ディスプレイ105、ジャイロセンサ106、加速度センサ107、及び地磁気センサ108は、インタフェース1013及びデータバスを介してCPU1011に接続される。
位置・姿勢推定装置101の各機能は、処理回路により実現される。処理回路は、専用のハードウェアであっても、メモリ1012に格納されるソフトウェアであるプログラム(例えば、位置・姿勢推定プログラム)を実行するCPU1011であってもよい。CPU1011は、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサ、及びDSP(Digital Signal Processor)のいずれであってもよい。
処理回路が専用のハードウェアである場合、処理回路は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)、又はこれらのうちのいずれかを組み合わせたものである。
処理回路がCPU1011の場合、位置・姿勢推定装置101の機能は、ソフトウェア、ファームウェア、又はソフトウェアとファームウェアとの組み合わせにより実現される。ソフトウェア及びファームウェアは、プログラムとして記述され、メモリ1012に格納される。処理回路は、メモリ1012に記憶されたプログラムを読み出して実行することにより、各部の機能を実現する。すなわち、位置・姿勢推定装置101は、処理回路により処理が実行されるときに、実施の形態1に係る位置・姿勢推定方法を実行するものである。
ここで、メモリ1012は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ、EPROM(Erasable Programmable Read Only Memory)、EEPROM(Electrically Erasable Programmable Read Only Memory)などの、不揮発性又は揮発性の半導体メモリ、或いは、磁気ディスク、光ディスク、コンパクトディスク、DVD(Digital Versatile Disc)などのうちのいずれかである。
なお、位置・姿勢推定装置101の一部を専用のハードウェアで実現し、一部をソフトウェア又はファームウェアで実現するようにしてもよい。このように、処理回路は、ハードウェア、ソフトウェア、ファームウェア、又はこれらのうちのいずれかの組み合わせによって、各機能を実現することができる。
《1-1-2》3次元地図作成装置
図5は、実施の形態1に係る3次元地図作成装置の構成を概略的に示す機能ブロック図である。図5に示される3次元地図作成装置は、実施の形態1に係る3次元地図作成方法を実行することができる装置である。なお、以下の説明では、3次元地図作成装置が、位置・姿勢推定装置101の一部(すなわち、地図作成登録部)である例を説明する。ただし、3次元地図作成装置は、位置・姿勢推定装置101とは別個の装置であってもよい。この場合、3次元地図作成装置のハードウェア構成は、図4に示されるものと同様である。
図5に示されるように、実施の形態1に係る3次元地図作成装置は、キーフレーム検出部10と、キーフレーム位置・姿勢計算部11と、位置・姿勢分散計算部12と、対応関係登録部13と、データベース保存部(DB保存部)14とを有している。これらの構成は、カメラ104(図3)によって撮影されたカメラ画像と、距離センサ103(図3)によって取得された距離情報と、IMU(図3)によって取得されたセンサ値とを用いて3次元地図を構築する。実施の形態1で最低限必要なデータは、カメラ画像である。距離情報又はIMUを備えない場合であっても、3次元地図を作成することが可能である。
キーフレーム検出部10は、カメラ104の位置が予め定められた平行移動量の閾値以上動いた場合又はカメラ104の姿勢が予め定められた回転量の閾値以上動いた(すなわち、回転した)場合に取得した画像(例えば、カラー画像)及び検出された距離情報を、キーフレームとして検出する処理を実行する。
キーフレーム位置・姿勢計算部11は、SLAMなどのような画像を用いた相対位置・姿勢の計算方法により、キーフレーム検出部10によって検出されたキーフレームを撮影したカメラ104又は距離センサ103の位置・姿勢を計算する処理を実行する。キーフレーム検出部10及びキーフレーム位置・姿勢計算部11は、従来のSLAM技術の場合の処理(例えば、非特許文献3に記載の処理)と同様の処理を実行する。
Raul Mur-Artal、外1名著、 "ORB-SLAM2:An Open-Source SLAM System for Monocular, Stereo, and RGB-D Cameras"、 IEEE Transactions on Robotics、 Vol.33、No.5、 2017年10月.
位置・姿勢分散計算部12は、キーフレーム検出部10によって検出されたキーフレームの各々について位置・姿勢の分散を求める処理を実行する。位置・姿勢の分散の計算方法としては、例えば、以下に示される第1の計算方法と第2の計算方法とがある。
第1の計算方法は、画像にノイズ(すなわち、ランダムパターン)を付加する方法である。図6は、キーフレームの画像にランダムパターンを付加する方法の一例を示す図である。第1の計算方法では、キーフレームの画像にランダムパターンを加えて位置・姿勢を計算する処理を複数回実行し、得られた位置・姿勢の複数の計算結果に基づいて位置・姿勢の分散を求める。
第2の計算方法は、乱数を用いる方法である。第2の計算方法では、例えば、絶対位置・姿勢の計算の処理では、外れ値を除外する目的でRandom Sample Consensus(RANSAC)が使用される。RANSACの主目的は、観測されたデータのうちの、絶対位置・姿勢の計算に用いられるデータから外れた外れ値のデータを除外することである。しかし、RANSACでは、ランダムに計算対象のサンプルが選択され、計算結果は、毎回、異なる値になるので、RANSACを位置・姿勢の分散の計算に用いることができる。
Figure 0007258250000001
は、それぞれ位置の分散(σtk )及び姿勢の分散(σRk )を示し、それぞれ式(1)及び式(2)で計算される。式(1)及び式(2)において、Nは、正の整数であり、分散を求めるときに使用される試行回数を示す。また、kは、正の整数を示す。
Figure 0007258250000002
は、それぞれn回目の試行で求めた絶対的な位置(t)及び絶対的な姿勢(R)を示す。なお、nは、1以上、N以下の整数である。
Figure 0007258250000003
は、それぞれ位置の平均(μ)及び姿勢の平均(μ)を示し、それぞれ式(3)及び式(4)で計算される。
Figure 0007258250000004
図7は、フロアマップに3次元地図を位置合わせして登録する処理を示す図である。図7のフロアマップは、設備の配置を示すレイアウトが描かれたフロアレイアウトである。フロアマップにおいて、設備が配置されるべき領域である設置領域が破線の矩形で示されている。対応関係登録部13は、他の3次元地図又は全体地図との関係性を定義する処理を行う。図7に示されるように、フロアマップのレイアウト上に3次元地図(実線の矩形で示される。)を登録すると、3次元地図間の位置関係と、作成中の3次元智頭と既に構築されている3次元地図との対応関係と、が得られる。フロアマップに対して、3次元地図を位置合わせして登録することで、全体地図と3次元地図との整合性又は複数の3次元地図間の位置関係が定義される。
データベース保存部14は、上記の方法で作成された3次元地図(すなわち、例えば、SLAMで得られるキーフレーム毎のデータ)を3次元地図DB102(図3)に保存する。3次元地図DB102には、キーフレーム毎に得られた位置・姿勢、カメラ画像、距離情報(すなわち、距離画像)、及び局所特徴の点群が、キーフレームの個数分保存される。
《1-1-3》位置・姿勢推定装置
図8は、実施の形態1に係る位置・姿勢推定装置101の構成を概略的に示す機能ブロック図である。位置・姿勢推定装置101は、異なる視点で撮影した複数のセンサデータに基づいて、位置・姿勢を計算する処理を行う。ここで、センサデータは、カメラ画像、距離センサの検出データを含む。図8に示されるように、位置・姿勢推定装置101は、データベース読込部15と、フレーム選択部16と、相対位置・姿勢取得部17と、絶対位置・姿勢計算部18と、絶対位置・姿勢統合部19とを有している。
データベース読込部15は、DB保存部14に記憶されているデータベースに格納されている3次元地図(つまり、予め用意された3次元地図)を読み込む処理を行う。
フレーム選択部16は、複数の異なる視点から撮影したカメラ画像のフレームの中から位置・姿勢の計算に使用するフレームを選択する処理を行う。フレーム選択方法としては、例えば、第1の選択方法、第2の選択方法、及び第3の選択方法がある。
第1の選択方法では、相対移動量が用いられる。第1の選択方法では、相対位置・姿勢の計算により得られた相対位置の変化が予め定められた位置の変化の閾値以上になるという条件及び相対姿勢の変化が予め定められた姿勢の変化の閾値以上になるという条件に基づいて、フレーム(キーフレーム)を選択するか否かを判定する。例えば、相対位置・姿勢の計算により得られた相対位置の変化が予め定められた位置の変化の閾値以上になるという条件及び相対姿勢の変化が予め定められた姿勢の変化の閾値以上になるという条件の少なくとも一方を満たすキーフレームを選択する。
第2の選択方法では、時間的に異なるフレームが用いられる。第2の選択方法では、時間的に隣接する視点のフレーム、又は、時間的に閾値以上の時間間隔で撮影したフレーム(キーフレーム)が選択される。
第3の選択方法では、分散が用いられる。第3の選択方法では、3次元地図作成時に求められ分散を元に、使用するデータを選択する。例えば、分散が予め決められた分散の閾値よりも小さい視点のフレーム(キーフレーム)が選択される。
相対位置・姿勢取得部17は、フレームに対応する相対位置・姿勢を取得する処理を行う。相対位置・姿勢取得部17は、図1の相対位置・姿勢の計算のいずれかの方法で相対位置・姿勢を計算した結果を取得する。
絶対位置・姿勢計算部18は、選択した複数のフレームを用いて絶対位置・姿勢を計算する処理を行う。このとき、例えば、Perspective n Points(PnP)などを用いて位置・姿勢を計算する。
絶対位置・姿勢統合部19は、複数の位置・姿勢の計算結果を統合して、最終的な絶対位置・姿勢を計算する処理を行う。絶対位置・姿勢統合部19が行う統合方法としては、例えば、第1の統合方法、第2の統合方法、及び第3の統合方法がある。
第1の統合方法は、「Winner takes all」方式を用いる。つまり、第1の統合方法では、分散が最も小さいキーフレームで推定した位置・姿勢を最終的な結果として採用する。
第2の統合方法は、重み付け線形和を用いる。つまり、第2の統合方法では、分散を元に重み付けする。
Figure 0007258250000005
は、それぞれ最終的に得られる位置及び姿勢を示し、それぞれ式(5)及び式(6)で計算される。
Figure 0007258250000006
は、それぞれフレーム選択部16で得られたフレームのうち、k番目のフレームの位置(t´)とk番目のフレームの姿勢(R´)を示す。
Figure 0007258250000007
は、それぞれk番目のフレームの位置に対する重み(wtk)及びk番目のフレームの姿勢に対する重み(wRk)を示し、それぞれ式(7)及び式(8)で計算される。
k番目のフレームの位置に対する重みwtk及びk番目のフレームの姿勢に対する重みwRkは、位置・姿勢の計算に用いたキーフレームの分散である位置の分散σtk 及び姿勢の分散σRk を用いて計算される。また、位置の分散σtk 及び姿勢の分散σRk と等価な統計指標とみなすことができる標準偏差、すなわち、位置の標準偏差σtk及び姿勢の標準偏差σRkを用いて重みを計算してもよい。標準偏差を用いる場合、k番目のフレームの位置に対する重みwtk及びk番目のフレームの姿勢に対する重みwRkは、それぞれ式(9)及び式(10)で計算される。
Figure 0007258250000008
式(5)及び式(6)において、k番目のフレームの位置t´とk番目のフレームの姿勢R´は、絶対位置・姿勢計算部18で計算された位置・姿勢を直接入力するわけではない。絶対位置・姿勢計算部18で計算された位置・姿勢から、任意のフレームに移動したときの位置・姿勢が用いられる。例えば、フレーム選択部16でK枚(Kは、正の整数)のフレームを選択し、K番目のフレームに合わせて統合する場合、k番目(kは、正の整数)のフレームの位置t´とk番目のフレームの姿勢R´は、式(11)で示される。式(11)において、k番目のフレームの位置tとk番目のフレームの姿勢Rは、絶対位置・姿勢計算部18で求めた位置・姿勢である。
Figure 0007258250000009
は、それぞれk番目のフレームからK番目のフレームへの相対的な姿勢の移動量及び相対的な位置の移動量を示し、相対位置・姿勢取得部17で得られた位置・姿勢から導出される。式(11)を用いれば、K番目のフレームの絶対位置・姿勢が求められる。
Figure 0007258250000010
第3の統合方法は、非線形最適化により、絶対位置・姿勢を求める方法である。例えば、式(12)に示されるように、再投影誤差が最小になるように、k番目のフレームの位置tとk番目のフレームの姿勢Rを求める。
Figure 0007258250000011
は、カメラの内部パラメータ(L)を示す。
Figure 0007258250000012
は、それぞれマッチングした局所特徴の3次元的な位置と画像上の点を示す。
は、k番目のフレームのマッチングした局所特徴ペアの数を示す。wは、k番目のフレームに対応する重みであり、重みwtk又はwRkのいずれか、又は、これらを統合した重みが用いられる。
式(12)を最急降下法などの非線形最適化手法で解くと、絶対位置・姿勢を得ることができる。
Figure 0007258250000013
《1-2》動作
《1-2-1》3次元地図の生成
図9は、実施の形態1に係る3次元地図作成装置による3次元地図の作成のための処理の例を示すフローチャートである。図9に示されるように、キーフレーム検出部10及びキーフレーム位置・姿勢計算部11は、3次元地図の作成を実行する(ステップS101)。3次元地図の作成は、例えば、SLAMを用いて、キーフレームを検出しながら実行される。
位置・姿勢分散計算部12は、キーフレーム毎(ステップS102)に位置・姿勢の分散を計算する(ステップS103)。次に、対応関係登録部13は、図8に示されるように、対応関係の登録を行う(ステップS104)。対応関係登録部13は、例えば、フロアマップ上に3次元地図を登録して、全体地図又は他の3次元地図との位置関係を定義する処理を実行する。データベース保存部14は、上記の処理で作成した地図を3次元地図DB102に保存する処理を行う(ステップS105)。
《1-2-2》位置・姿勢の推定
図10は、実施の形態1に係る位置・姿勢推定装置101による位置・姿勢の推定のための処理の例を示すフローチャートである。データベース読込部15は、DB保存部14からデータとして3次元地図を読み込む(ステップS111)。フレーム選択部16は、フレームを選択する(ステップS112)。選択されるフレームは、予め決められたルールに基づいて処理するフレームである。
相対位置・姿勢取得部17は、選択されたフレーム毎に(ステップS113)、フレームに対応する相対位置・姿勢を取得する処理を行う(ステップS114)。絶対位置・姿勢計算部18は、選択されたフレームのデータに基づいて、絶対位置・姿勢を計算する(ステップS115)。選択されたフレームの数が、予め定められた枚数に達すると、処理は統合処理に進む。
絶対位置・姿勢統合部19は、分散を元に絶対位置・姿勢の結果を統合する(ステップS116)。
図11は、実施の形態1に係る位置・姿勢推定装置による位置・姿勢の推定のための処理の他の例を示すフローチャートである。データベース読込部15は、データベース保存部14からデータとして3次元地図を読み込む(ステップS121)。フレーム選択部16は、フレームを選択するか否かを判断し(ステップS122、S123)、フレームを選択する場合に、フレームを選択する。選択されるフレームは、予め決められたルールに基づいて処理するフレームである。
相対位置・姿勢取得部17は、選択されたフレームに対応する相対位置・姿勢を取得する処理を行う(ステップS124)。絶対位置・姿勢計算部18は、選択された各データに対して、絶対位置・姿勢を計算する(ステップS125)。フレーム選択部16は、充分なフレーム検出が完了したか否かを判断し(ステップS126)、充分なフレーム検出が完了した場合には統合処理を行い、充分なフレーム検出が完了していない場合には処理をステップS122に戻す。「充分なフレーム検出が完了した」とは、例えば、予め定められた個数のフレーム検出をしたとき、予め定められた数の絶対位置・姿勢が得られたとき、などである。
充分なフレーム検出が完了した場合には、絶対位置・姿勢統合部19は、分散を元に絶対位置・姿勢の結果を統合する(ステップS116)。
《1-3》効果
以上に説明したように、実施の形態1に係る位置・姿勢推定装置又は位置姿勢推定方法によれば、複数の画像を用いて得られた位置・姿勢のデータに基づいて位置・姿勢の推定を行うので、位置・姿勢の推定の精度を向上させることができる。
また、位置・姿勢の計算の結果の分散が大きい画像から求めた位置・姿勢を使わないで統合処理を行う、若しくは、位置・姿勢の計算の結果の分散が大きい画像から求めた位置・姿勢についての重みを小さくして統合処理を行うことで、精度の高い絶対位置・姿勢を計算することができる。
また、画像内の被写体が特徴に乏しい場合であっても、絶対座標系における、精度の高い自己の位置・姿勢の推定が実現でき、かつ演算量をリアルタイム処理が可能な範囲に抑えることができる。
《2》実施の形態2
《2-1》構成
《2-1-1》
実施の形態1では、カメラ画像を使った絶対位置・姿勢の計算方法として、直接的なマッチングを用いる第1の計算方法と、2段階のマッチングを用いる第2の計算方法とがあることを説明した。また、実施の形態1では、第2の計算方法を用いる例を説明した。実施の形態2では、カメラ画像を使った直接的なマッチング方法で求めた位置・姿勢を統合する方法と、LiDAR(Light Detection and Ranging)などレーザセンサを使った位置・姿勢統合方法を説明する。
実施の形態2に係る位置・姿勢推定装置及び位置姿勢推定システムのハードウェア構成は、実施の形態1(図4及び図5)で説明したものと同じである。したがって、実施の形態2の説明に際しては、図4及び図5も参照する。
《2-1-2》3次元地図作成装置
図12は、実施の形態2に係る3次元地図作成装置の構成を概略的に示す機能ブロック図である。図12に示される3次元地図作成装置は、実施の形態2に係る3次元地図作成方法を実行することができる装置である。なお、以下の説明では、3次元地図作成装置が、位置・姿勢推定装置の一部(すなわち、地図作成登録部)である場合を説明するが、3次元地図作成装置は、位置・姿勢推定装置とは別個の装置であってもよい。
図12に示されるように、実施の形態2に係る3次元地図作成装置は、3次元地図作成部21と、位置・姿勢分散計算部22と、対応関係登録部23と、データベース保存部(DB保存部)24とを有している。
実施の形態1では、キーフレーム毎に3次元データを管理していたが、実施の形態2では、点群を3次元地図として管理する。例えば、3次元地図作成部21は、画像を用いる場合、画像から得られる局所特徴と、その位置を3次元地図として作成する。LiDARなどレーザセンサを用いる場合、観測した点群(位置のみ)を3次元地図として作成する。図12の3次元地図作成部21は、上述の3次元地図データを作成する処理を行う。
図13は、実施の形態2に係る3次元地図作成装置が使用する分散の計算方法を示す図である。図13は、AGVが適用されたロボット131が移動した場合に、ロボットが相対位置・姿勢の計算と絶対位置・姿勢の計算とを用いて位置・姿勢を推定する例を示す。ロボット131は、分散を計算するが、分散の計算方法が、実施の形態1の場合の計算方法と異なる。図13では、楕円で囲われた領域ごと(例えば、領域#1、#2、#3)の分散σ、σ、σの計算について説明する。
具体的な分散の計算では、3次元地図を作るときに観測したデータの中から、領域ごとに任意の個数ずつデータを取得(すなわち、サンプリング)する。サンプリングしたデータに対して、複数回異なる方法でノイズを加えて絶対位置・姿勢の推定を行う。求める分散は、ある特定領域ごとの位置・姿勢の分散である。ノイズを加える方法は、実施の形態1と同様に画像の場合には、ランダムパターンを付加する方法である。LiDARの場合も同様に、局所的な領域にランダムパターンを付加することでノイズを付加する。ここで「ランダムパターン」とは、その領域におけるデータを取り除くためのパターンも含まれる。
対応関係登録部23は、実施の形態1の対応関係登録部13と同様の方法で、全体地図又は他の3次元地図との関係性を定義する。
DB保存部24は、3次元地図と、領域ごとの分散をデータベースに保存する。
《2-1-3》位置・姿勢推定装置
図14は、実施の形態2に係る位置・姿勢推定装置の構成を概略的に示す機能ブロック図である。図14に示される位置・姿勢推定装置は、実施の形態2に係る位置・姿勢推定方法を実行することができる装置である。位置・姿勢推定装置は、データベース読込部25と、フレーム選択部26と、相対位置・姿勢取得部27と、絶対位置・姿勢計算部28と、絶対位置・姿勢統合部29とを有している。
データベース読込部25は、データベースに格納されている3次元地図データを読み込む処理を行う。
フレーム選択部26は、実施の形態1のフレーム選択部16と同様に、又は、予め区分けした複数の領域から重複がないようにフレームを選択する。例えば、図13に示されるように、3つの領域#1、#2、#3に区分けして分散σ、σ、σを算出し、管理している例で説明する。位置・姿勢の計算結果が領域#1、#2、#3の各々に含まれるフレームの数がM枚の例を説明する。
相対位置・姿勢取得部27は、実施の形態1における相対位置・姿勢取得部17と同じ方法で相対位置・姿勢を取得する。
絶対位置・姿勢計算部28は、画像の場合は、画像の局所特徴を直接的にマッチングして位置・姿勢の計算する方法(例えば、非特許文献4を参照)などを用いて絶対位置・姿勢を計算する。LiDARを用いた距離センサのデータを使用する場合、3次元地図と距離センサで観測した形状情報とのマッチングを行うことで、位置・姿勢を計算する。
Torsten Sattler、外2名著、 "Efficient & Effective Prioritized Matching for Large-Scale Image-Based Localization"、 IEEE Transactions on Pattern Analysis and Machine Intelligence、 Vol.39、 No.9, 2017年9月.
絶対位置・姿勢統合部29は、実施の形態1における絶対位置・姿勢統合部19と同様の方法で、複数の位置・姿勢を統合する。絶対位置・姿勢統合部29は、領域毎に設定された分散を元に、最終的位置・姿勢を求める。
《2-2》動作
《2-2-1》3次元地図の作成
図15は、実施の形態2に係る3次元地図作成装置による3次元地図の作成のための処理の例を示すフローチャートである。3次元地図作成部21及び位置・姿勢分散計算部22は、3次元地図を作成し、画像を用いる場合には、局所特徴とその位置を示す地図、LiDARを用いる場合には、点群(位置のみ)を示す地図を作成する(ステップS201)。対応関係登録部23は、3次元地図作成部21に対応する処理である対応関係の登録を行う(ステップS202)。データベース保存部24は、対応関係をデータベースに保存する処理を行う(ステップS203)。
《2-2-2》位置・姿勢の推定
図16は、実施の形態2に係る位置・姿勢推定装置による位置・姿勢の推定のための処理の例を示すフローチャートである。データベース読込部25は、データベースからデータを読み込む処理を行う(ステップS211)。相対位置・姿勢取得部27は、相対位置・姿勢を取得し、絶対位置・姿勢計算部28は、絶対位置・姿勢の計算を行う(ステップS212~S214)。
フレーム選択部は、フレーム選択の要否を判断して(ステップS215)、必要な場合には、充分なフレーム検出が完了しているか否かを判断する(ステップS216)。充分なフレーム検出が完了している場合には、絶対位置・姿勢統合部29は、絶対位置・姿勢の統合を行う(ステップS217)。
《2-3》効果
以上に説明したように、実施の形態2に係る位置・姿勢推定装置又は位置姿勢推定方法によれば、画像を使用しかつ直接的なマッチング方法を用いる場合、又は、LiDARで観測した形状を用いて絶対位置・姿勢を計算する例において、複数のフレームを用いているので位置・姿勢の推定の精度を向上させることができる。
《3》実施の形態3
《3-1》構成
《3-1-1》
ARで用いる端末又はロボットは、相対位置・姿勢を機器内で管理している場合がある。ARの場合、絶対位置・姿勢で定義されたコンテンツの位置を端末で管理している相対位置・姿勢の座標系に変換することで、コンテンツを画像上に重畳表示する。ロボットの場合も同様で、ロボットの目的地が絶対位置で定義されている場合、この位置をロボットが管理する相対位置・姿勢の座標系に変換する必要がある。
実施の形態3は、絶対位置・姿勢の座標系から相対位置・姿勢の座標系に変換する行列である外部パラメータを、複数のフレームを用いて高精度に計算する方法を述べる。ここでは、実施の形態1を基本として、複数のフレームを用いて外部パラメータを高精度に求める方法を述べる。実施の形態3の構成は、実施の形態2又は4と組み合わせてもよい。
実施の形態2に係る位置・姿勢推定装置及び位置姿勢推定システムのハードウェア構成は、実施の形態1(図4及び図5)で説明したものと同じである。したがって、実施の形態2の説明に際しては、図4及び図5も参照する。
《3-1-2》3次元地図作成装置
実施の形態2に係る3次元地図作成装置は、実施の形態1のものと同じである。
《3-1-3》位置・姿勢推定装置
図17は、実施の形態3に係る位置・姿勢推定装置の構成を概略的に示す機能ブロック図である。図17に示される位置・姿勢推定装置は、実施の形態3に係る位置・姿勢推定方法を実行することができる装置である。位置・姿勢推定装置は、データベース読込部35と、フレーム選択部36と、相対位置・姿勢取得部37と、絶対位置・姿勢計算部38と、外部パラメータ計算部38aと、絶対位置・姿勢統合部としての外部パラメータ統合部39とを有している。
実施の形態3が実施の形態1と異なる点は、選択したフレーム毎に外部パラメータを計算する外部パラメータ計算部38aと、複数の外部パラメータを統合する外部パラメータ統合部39を有する点である。これら以外の処理に関し、実施の形態3の処理は、実施の形態1の処理と同じである。
外部パラメータ計算部38aは、同じフレームを元に相対位置・姿勢の計算と、絶対位置・姿勢の計算が行われている想定で外部パラメータを計算する。このとき、外部パラメータは、式(13)で計算される。
Figure 0007258250000014
は、k番目のフレームを用いて求めた絶対位置及び絶対姿勢、を示す。
Figure 0007258250000015
は、k番目のフレームの相対位置及び相対姿勢を示す。
Figure 0007258250000016
は、k番目のフレームの外部パラメータ(t´及びR´)を示し、式(13)で計算される。
Figure 0007258250000017
外部パラメータ統合部39の処理は、実施の形態1の絶対位置・姿勢統合部19(図8)と概ね同じである。したがって、外部パラメータ統合部39は、絶対位置・姿勢統合部とも称する。実施の形態1では、複数の絶対位置・姿勢を統合しているが、実施の形態3では、外部パラメータを統合する。具体的には、式(13)で求めたt´及びR´を用いて統合する。例えば、重みづけ線形和で統合する場合、式(13)のt´、R´を式(5)及び式(6)に代入して統合する。
《3-2》動作
《3-2-1》3次元地図の作成
3次元地図作成の処理の流れは、実施の形態1と同じであるため割愛する。外部パラメータを統合する方法の処理の流れを述べる。
《3-2-2》位置・姿勢の推定
図18は、実施の形態3に係る位置・姿勢推定装置による位置・姿勢の推定のための処理の例を示すフローチャートである。データベース読込部35は、データベースからデータを読み込む処理を行う(ステップS301)。相対位置・姿勢取得部37は、装置位置・姿勢を取得する(ステップS302、S303)。絶対位置・姿勢計算部38は、絶対位置・姿勢の計算を行う(ステップS304)。外部パラメータ計算部38aは、外部パラメータを計算する(ステップS305)。
フレーム選択部36は、フレーム選択の要否を判断して(ステップS306)、必要な場合には、充分なフレーム検出が完了しているか否かを判断する(ステップS307)。充分なフレーム検出が完了している場合には、外部パラメータ統合部39は、絶対位置・姿勢の統合を行う(ステップS308)。
《3-3》効果
以上に説明したように、実施の形態3に係る位置・姿勢推定装置又は位置姿勢推定方法によれば、絶対位置・姿勢の座標系から相対位置・姿勢の座標系への変換行列を高精度に求めることができるので、ARに適用した端末にコンテンツを高精度に表示することができる。また、ロボットに適用した場合、ロボットの目的地を高精度に求めることができる。
《4》実施の形態4
《4-1》構成
《4-1-1》
実施の形態4では、実施の形態1における位置・姿勢推定方法に、複数のフレームを用いたエラー処理を加えた形態を述べる。画像を用いた絶対位置・姿勢の計算では、被写体に特徴的な模様が少ない場合、出力される位置・姿勢の値に大きな誤差が含まれる可能性がある。このような結果を除外するために、実施の形態4に係る位置・姿勢推定装置は、エラー処理を実行する。
実施の形態4に係る位置・姿勢推定装置及び位置姿勢推定システムのハードウェア構成は、基本的には、実施の形態1(図4及び図5)で説明したものと同じである。したがって、実施の形態4の説明に際しては、図4及び図5も参照する。
《4-1-2》3次元地図作成装置
実施の形態4に係る3次元地図作成装置の構成は、実施の形態1のものと同じである。
《4-1-3》位置・姿勢推定装置
図19は、実施の形態4に係る位置・姿勢推定装置の構成を概略的に示す機能ブロック図である。図19に示される位置・姿勢推定装置は、実施の形態4に係る位置・姿勢推定方法を実行することができる装置である。実施の形態4に係る位置・姿勢推定装置は、エラー処理部48aが追加された点で、実施の形態1のものと異なる。
図19に示されるように、実施の形態4に係る位置・姿勢推定装置は、データベース読込部45と、フレーム選択部46と、相対位置・姿勢取得部47と、絶対位置・姿勢計算部48と、エラー処理部48aと、絶対位置・姿勢統合部49とを有している。データベース読込部45、フレーム選択部46、相対位置・姿勢取得部47、絶対位置・姿勢計算部48、及び絶対位置・姿勢統合部49は、図8に示されるデータベース読込部15、フレーム選択部16、相対位置・姿勢取得部17、絶対位置・姿勢計算部18、及び絶対位置・姿勢統合部19と同様である。
エラー処理部48aは、エラー処理を行う。エラー処理では、複数のフレームで求めた絶対位置・姿勢の複数の計算結果を比較することで、誤差が予め決めされた閾値より大きい絶対位置・姿勢の計算結果を、統合処理から除外する。エラー処理の一例を式(14)及び式(15)に示す。j番目(jはK以下の正の整数である。)のフレームは、フレーム選択部46で選択されたK枚のフレームの中でj≠kを満たすフレームである。複数のフレームで求めた絶対位置・姿勢の複数の計算結果は、同じ位置・姿勢を指し示すはずである。したがって、エラー処理部48aは、あるフレームで求めた絶対位置・姿勢の計算結果を他のフレームで求めた絶対位置・姿勢の計算結果と比較する。エラー処理部48aは、計算した位置の差が予め決められた閾値th_tより大きい場合(すなわち、式(14)を満たす場合)、又は計算した姿勢の差が予め決められた閾値th_rより大きい場合(すなわち、式(15)を満たす場合)には、そのフレームの計算結果を除外する。
Figure 0007258250000018
《4-2》動作
《4-2-1》3次元地図の作成
実施の形態4に係る3次元地図作成装置の動作は、実施の形態1のものと同じである。
《4-2-2》位置・姿勢の推定
図20は、実施の形態4に係る位置・姿勢推定装置による位置・姿勢の推定のための処理の他の例を示すフローチャートである。図20に示される位置・姿勢推定装置の動作は、エラー処理(ステップS406a)が追加されている点で、図11に示される実施の形態1に係る位置・姿勢推定装置の動作と相違する。図20に示されるステップS401~S406の処理、及びステップS407の処理は、図11に示される、ステップS101~S107の処理と同様である。
《4-3》効果
以上に説明したように、実施の形態4に係る位置・姿勢推定装置又は位置姿勢推定方法によれば、エラー処理が行われるので、実施の形態1の場合よりも耐環境性の高い絶対位置・姿勢の推定を実現できる(すなわち、各種の環境に対して絶対位置・姿勢の高い推定精度を実現できる)。
10 キーフレーム検出部、 11 キーフレーム位置・姿勢計算部、 12、22 位置・姿勢分散計算部、 13、23 対応関係登録部、 14、24 DB保存部、 15、25、35、45 データベース読込部、 16、26、36、46 フレーム選択部、 17、27、37、47 相対位置・姿勢取得部、 18、28、38、48 絶対位置・姿勢計算部、 19、29、49 絶対位置・姿勢統合部、 21 3次元地図作成部、 38a 外部パラメータ計算部、 39 外部パラメータ統合部(絶対位置・姿勢統合部)、 48a エラー処理部、 100 位置・姿勢推定システム、 101 位置・姿勢推定装置、 102 3次元地図DB、 103 距離センサ、 104 カメラ、 105 ディスプレイ、 106 ジャイロセンサ、 107 加速度センサ、 108 地磁気センサ。

Claims (13)

  1. データベースから3次元地図のデータを読み込むデータベース読込部と、
    複数の異なる視点から撮影した画像のフレームの中から位置・姿勢の計算に使用するフレームを選択する処理を行うフレーム選択部と、
    前記フレーム選択部によって選択された複数のフレームについての複数の相対位置・姿勢を取得する処理を行う相対位置・姿勢取得部と、
    前記フレーム選択部によって選択された複数のフレームについての複数の絶対位置・姿勢を取得する処理を行う絶対位置・姿勢計算部と、
    前記相対位置・姿勢取得部によって取得された相対位置・姿勢と、前記絶対位置・姿勢計算部によって取得された絶対位置・姿勢と、を統合して、最終的な絶対位置・姿勢を取得する絶対位置・姿勢統合部と、
    を有する位置・姿勢推定装置。
  2. 地図作成登録部をさらに有し、
    前記地図作成登録部は、
    カメラで撮影されたカメラ画像からキーフレームを検出するキーフレーム検出部と、
    前記キーフレームを撮影した前記カメラの位置及び姿勢を計算するキーフレーム位置・姿勢計算部と、
    前記キーフレーム毎に位置・姿勢の分散を計算する処理を実行する位置・姿勢分散計算部と、
    フロアマップに3次元地図を位置合わせして登録データを作成する処理を行う対応関係登録部と、
    前記データベースに前記登録データを保存する処理を行うデータベース保存と、を有する
    請求項1に記載の位置・姿勢推定装置。
  3. 前記絶対位置・姿勢統合部は、前記キーフレーム毎に計算された前記位置・姿勢の分散に基づいて、前記複数の絶対位置・姿勢を統合する
    請求項2に記載の位置・姿勢推定装置。
  4. 前記絶対位置・姿勢統合部は、前記キーフレームのうちの、前記分散が最も小さいキーフレームで推定した位置・姿勢を前記最終的な絶対位置・姿勢として採用する
    請求項3に記載の位置・姿勢推定装置。
  5. 前記絶対位置・姿勢統合部は、前記キーフレーム毎に、前記分散に基づく重みを計算し、前記重みを用いる重み付け線形和に基づいて、前記複数の絶対位置・姿勢を統合する
    請求項3に記載の位置・姿勢推定装置。
  6. 前記絶対位置・姿勢統合部は、非線形最適化を用いて前記複数の絶対位置・姿勢を統合する
    請求項2に記載の位置・姿勢推定装置。
  7. 地図作成登録部をさらに有し、
    前記地図作成登録部は、
    カメラで撮影されたカメラ画像又は距離センサで測定された距離情報から局所的な領域毎に3次元地図を作成する3次元地図作成部と、
    前記カメラ画像又は前記距離情報から前記領域毎に位置・姿勢の分散を計算する処理を実行する位置・姿勢分散計算部と、
    フロアマップに3次元地図を位置合わせして登録データを作成する処理を行う対応関係登録部と、
    前記データベースに前記登録データを保存する処理を行うデータベース保存と、を有する
    請求項1に記載の位置・姿勢推定装置。
  8. 前記絶対位置・姿勢統合部は、前記領域毎の位置・姿勢の分散に基づいて、前記複数の絶対位置・姿勢を統合する
    請求項に記載の位置・姿勢推定装置。
  9. 前記キーフレーム毎に外部パラメータを計算する外部パラメータ計算部をさらに有し、
    前記絶対位置・姿勢統合部は、前記外部パラメータ計算部で計算された複数の外部パラメータを統合することで前記複数の絶対位置・姿勢を統合する
    請求項2に記載の位置・姿勢推定装置。
  10. 前記絶対位置・姿勢統合部は、前記キーフレーム毎に計算された前記位置・姿勢の分散に基づいて、前記複数の外部パラメータを統合する
    請求項9に記載の位置・姿勢推定装置。
  11. 前記キーフレーム毎に計算された絶対位置・姿勢の誤差が予め決めされた閾値より大きい場合、前記閾値より大きい誤差の前記絶対位置・姿勢の計算結果を統合処理に使用させないエラー処理部をさらに有する
    請求項2、3、4、5、8、9、10のいずれか1項に記載の位置・姿勢推定装置。
  12. 位置・姿勢推定装置が実行する位置・姿勢推定方法であって、
    位置データベースから3次元地図のデータを読み込むステップと、
    複数の異なる視点から撮影した画像のフレームの中から位置・姿勢の計算に使用するフレームを選択する処理を行うステップと、
    選択された複数のフレームについての複数の相対位置・姿勢を取得する処理を行うステップと、
    前記選択された複数のフレームについての複数の絶対位置・姿勢を取得する処理を行うステップと、
    取得された前記相対位置・姿勢と、取得された前記絶対位置・姿勢と、を統合して、最終的な絶対位置・姿勢を取得するステップと、
    を有する位置・姿勢推定方法。
  13. 位置データベースから3次元地図のデータを読み込むステップと、
    複数の異なる視点から撮影した画像のフレームの中から位置・姿勢の計算に使用するフレームを選択する処理を行うステップと、
    選択された複数のフレームについての複数の相対位置・姿勢を取得する処理を行うステップと、
    前記選択された複数のフレームについての複数の絶対位置・姿勢を取得する処理を行うステップと、
    取得された前記相対位置・姿勢と、取得された前記絶対位置・姿勢と、を統合して、最終的な絶対位置・姿勢を取得するステップと、
    をコンピュータに実行させるプログラム。
JP2022569662A 2020-12-18 2020-12-18 位置・姿勢推定装置、位置・姿勢推定方法、及びプログラム Active JP7258250B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/047417 WO2022130618A1 (ja) 2020-12-18 2020-12-18 位置・姿勢推定装置、位置・姿勢推定方法、及びプログラム

Publications (2)

Publication Number Publication Date
JPWO2022130618A1 JPWO2022130618A1 (ja) 2022-06-23
JP7258250B2 true JP7258250B2 (ja) 2023-04-14

Family

ID=82059339

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022569662A Active JP7258250B2 (ja) 2020-12-18 2020-12-18 位置・姿勢推定装置、位置・姿勢推定方法、及びプログラム

Country Status (7)

Country Link
US (1) US20230260149A1 (ja)
JP (1) JP7258250B2 (ja)
KR (1) KR20230087613A (ja)
CN (1) CN116635891A (ja)
DE (1) DE112020007700T5 (ja)
TW (1) TWI817124B (ja)
WO (1) WO2022130618A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018142580A1 (ja) 2017-02-03 2018-08-09 三菱電機株式会社 表示制御装置および表示制御方法
JP2018147095A (ja) 2017-03-02 2018-09-20 富士通株式会社 カメラ位置姿勢推定装置、方法およびプログラム
WO2019098002A1 (ja) 2017-11-20 2019-05-23 ソニー株式会社 情報処理装置、情報処理方法、プログラム、及び移動体
WO2020137312A1 (ja) 2018-12-28 2020-07-02 パナソニックIpマネジメント株式会社 測位装置及び移動体

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2803060A1 (en) * 2012-01-13 2014-11-19 Pulse Function F6 Limited Telematics system with 3d inertial sensors
JP7077691B2 (ja) 2018-03-16 2022-05-31 トヨタ自動車株式会社 自己位置検出装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018142580A1 (ja) 2017-02-03 2018-08-09 三菱電機株式会社 表示制御装置および表示制御方法
JP2018147095A (ja) 2017-03-02 2018-09-20 富士通株式会社 カメラ位置姿勢推定装置、方法およびプログラム
WO2019098002A1 (ja) 2017-11-20 2019-05-23 ソニー株式会社 情報処理装置、情報処理方法、プログラム、及び移動体
WO2020137312A1 (ja) 2018-12-28 2020-07-02 パナソニックIpマネジメント株式会社 測位装置及び移動体

Also Published As

Publication number Publication date
WO2022130618A1 (ja) 2022-06-23
CN116635891A (zh) 2023-08-22
JPWO2022130618A1 (ja) 2022-06-23
DE112020007700T5 (de) 2023-08-03
TW202226003A (zh) 2022-07-01
KR20230087613A (ko) 2023-06-16
US20230260149A1 (en) 2023-08-17
TWI817124B (zh) 2023-10-01

Similar Documents

Publication Publication Date Title
CN107862719B (zh) 相机外参的标定方法、装置、计算机设备和存储介质
US11830216B2 (en) Information processing apparatus, information processing method, and storage medium
JP6415066B2 (ja) 情報処理装置、情報処理方法、位置姿勢推定装置、ロボットシステム
CN112567201A (zh) 距离测量方法以及设备
WO2018177159A1 (zh) 运动物体的位置确定方法及系统
US10895458B2 (en) Method, apparatus, and system for determining a movement of a mobile platform
WO2017077925A1 (en) Method and system for estimating three-dimensional pose of sensor
EP3236424B1 (en) Information processing apparatus and method of controlling the same
CN110211151B (zh) 一种运动物体的追踪方法和装置
US11062475B2 (en) Location estimating apparatus and method, learning apparatus and method, and computer program products
JP7173471B2 (ja) 3次元位置推定装置及びプログラム
JP6817742B2 (ja) 情報処理装置およびその制御方法
JP2019211981A (ja) 情報処理装置、情報処理装置の制御方法およびプログラム
JP7258250B2 (ja) 位置・姿勢推定装置、位置・姿勢推定方法、及びプログラム
CN114842224A (zh) 一种基于地理底图的单目无人机绝对视觉匹配定位方案
GB2605621A (en) Monocular depth estimation
Cheng et al. Positioning method research for unmanned aerial vehicles based on meanshift tracking algorithm
JP2005063012A (ja) 全方位カメラ運動と3次元情報の復元方法とその装置及びプログラム並びにこれを記録した記録媒体
EP3610358B1 (en) Depth information based pose determination for mobile platforms, and associated systems and methods
Barron et al. Motion and structure from time-varying optical flow
CN114719759B (zh) 一种基于slam算法和图像实例分割技术的物体表面周长和面积测量方法
WO2022198603A1 (en) Real-time simultaneous localization and mapping using an event camera
CN114137247B (zh) 基于事件相机的速度感知方法、装置、设备和介质
CN114983302B (zh) 姿态的确定方法、装置、清洁设备、存储介质及电子装置
CN115683109B (zh) 基于cuda和三维栅格地图的视觉动态障碍物检测方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221115

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20221115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221227

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230209

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230404

R150 Certificate of patent or registration of utility model

Ref document number: 7258250

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150