JP6922348B2 - Information processing equipment, methods, and programs - Google Patents
Information processing equipment, methods, and programs Download PDFInfo
- Publication number
- JP6922348B2 JP6922348B2 JP2017072447A JP2017072447A JP6922348B2 JP 6922348 B2 JP6922348 B2 JP 6922348B2 JP 2017072447 A JP2017072447 A JP 2017072447A JP 2017072447 A JP2017072447 A JP 2017072447A JP 6922348 B2 JP6922348 B2 JP 6922348B2
- Authority
- JP
- Japan
- Prior art keywords
- image
- index
- unit
- posture
- 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.)
- Active
Links
Images
Landscapes
- Image Analysis (AREA)
Description
開示の技術は、情報処理装置、方法、及びプログラムに関する。 Disclosure techniques relate to information processing devices, methods, and programs.
観測位置を精度よく検出するための画像処理装置が知られている。この画像処理装置は、観測位置におけるシーンの法線情報を生成し、生成した法線情報に基づき観測位置を推定する。 An image processing device for accurately detecting the observation position is known. This image processing device generates normal information of the scene at the observation position, and estimates the observation position based on the generated normal information.
また、コンピュータビジョンベースの追跡のために複数のマップをマージするための方法が知られている。この方法は、複数のモバイルデバイスからのシーンの複数のマップを使用して自己位置推定及び地図構築同時実行し、Simultaneous Localization and Mapping(SLAM)マップを生成する。そして、この方法では、複数のモバイルデバイスの間でSLAMマップを共有する。 There are also known methods for merging multiple maps for computer vision based tracking. This method simultaneously performs self-location estimation and map construction using multiple maps of a scene from multiple mobile devices to generate a Simultaneous Localization and Mapping (SLAM) map. Then, in this method, the SLAM map is shared among a plurality of mobile devices.
また、端末に搭載されたカメラによって撮像された画像と、端末の移動軌跡から形成されるループとに基づき、端末の位置及び姿勢を推定する技術が知られている。 Further, there is known a technique for estimating the position and orientation of a terminal based on an image captured by a camera mounted on the terminal and a loop formed from a movement locus of the terminal.
しかし、カメラを搭載した端末の移動軌跡がループを形成しない場合がある。この場合には、端末が備える撮像装置の位置及び姿勢の推定誤差が増大する可能性が高い。 However, the movement locus of the terminal equipped with the camera may not form a loop. In this case, there is a high possibility that the estimation error of the position and orientation of the image pickup device provided in the terminal will increase.
一つの側面では、開示の技術は、撮像装置の位置及び姿勢の推定誤差を低減させることが目的である。 In one aspect, the disclosed technique is aimed at reducing estimation errors in the position and orientation of the imaging device.
開示の技術は、一つの実施態様では、情報処理装置は、端末に搭載された撮像装置によって撮像された画像を取得する。そして、情報処理装置は、取得された前記画像に基づいて、前記撮像装置の位置及び姿勢を推定し、取得された前記画像から予め定められた指標が検出された場合に、前記指標に対する前記撮像装置の位置及び姿勢を推定する。情報処理装置は、前記画像から前記指標が検出された場合に、ループに基づいて、前記画像の各々が撮像されたときの前記撮像装置の位置及び姿勢の各々を推定する。ループは、前回までに取得された前記画像の各々に基づいて推定された前記撮像装置の位置の各々と、推定された前記指標に対する前記撮像装置の位置とから形成される。 In one embodiment of the disclosed technique, the information processing apparatus acquires an image captured by an imaging apparatus mounted on a terminal. Then, the information processing device estimates the position and orientation of the imaging device based on the acquired image, and when a predetermined index is detected from the acquired image, the imaging with respect to the index is performed. Estimate the position and orientation of the device. When the index is detected from the image, the information processing device estimates each of the position and the posture of the image pickup device when each of the images is captured based on the loop. The loop is formed from each of the positions of the image pickup device estimated based on each of the images acquired up to the previous time and the position of the image pickup device with respect to the estimated index.
一つの側面として、撮像装置の位置及び姿勢の推定誤差を低減させることができる、という効果を有する。 As one aspect, it has an effect that the estimation error of the position and orientation of the image pickup apparatus can be reduced.
以下、図面を参照して開示の技術の実施形態の一例を詳細に説明する。 Hereinafter, an example of an embodiment of the disclosed technology will be described in detail with reference to the drawings.
<第1の実施形態>
図1に、情報処理装置10の構成例を表す概略図を示す。
<First Embodiment>
FIG. 1 shows a schematic diagram showing a configuration example of the information processing device 10.
図1に示すように、本実施形態の情報処理装置10は、カメラ12と、制御部14とを有する。カメラ12は、開示の技術の撮像装置の一例である。カメラ12は、車両などの移動体に搭載され、または人に携帯されうる。カメラ12の位置は、他の装置に搭載されて、または人に携帯されて運ばれることで変化しうる。カメラ12と制御部14とは、ともに情報処理装置10に含まれても良いし、情報処理装置10には制御部14が搭載され、カメラ12は、制御部14と通信することが可能な別装置であっても良い。本実施形態では、情報処理装置10が車両に搭載される場合を例に説明する。
As shown in FIG. 1, the information processing device 10 of the present embodiment includes a
カメラ12は、車両の周辺の画像を逐次撮像する。
The
制御部14は、データ記憶部15と、画像取得部16と、特徴点抽出部18と、姿勢推定部20と、マップ生成部22と、指標検出部24と、最適化部26と、調整部28とを備える。データ記憶部15は、開示の技術の記憶部の一例である。また、最適化部26は、開示の技術の推定部の一例である。
The
データ記憶部15には、車両の周辺環境の情報を表すマップ情報が格納される。マップ情報は、車両に搭載されたカメラ12により撮像された画像に基づき生成される。マップ情報について、以下説明する。
The
例えば、図2の2Aに示されるように、建物Rの周辺を携帯端末等に搭載されたカメラが移動する場合を例に説明する。図2の2Aは、上空からみた建物Rの周辺の領域を表している。図2の2Aでは、カメラの移動により移動軌跡L1が生成される。カメラが移動軌跡L1を移動する際には、端末に搭載されたカメラ12によってカメラ周辺の画像が逐次撮像される。逐次撮像されたカメラ周辺の画像のうち、所定の条件を満たす画像がキーフレーム画像としてデータ記憶部15に格納される。キーフレーム画像とは、所定の条件を満たす画像である。
For example, as shown in 2A of FIG. 2, a case where a camera mounted on a mobile terminal or the like moves around the building R will be described as an example. 2A in FIG. 2 represents the area around the building R as seen from above. In 2A of FIG. 2, the movement locus L1 is generated by the movement of the camera. When the camera moves on the movement locus L1, the
画像からは特徴点が抽出される。特徴点とは、例えば、対象領域に存在する物体の形状を表す、画像内のエッジ点等である。また、画像中の特徴点に対応する3次元座標を表すマップ点が生成される。例えば、図2の2Bに示されるようなマップ点Mが特徴点Fに対して生成される。また、画像2Cから抽出される特徴点Fは、マップ点Mと対応付けられる。このため、データ記憶部15に格納されたマップ情報のマップ点Mと、画像2Cから抽出される特徴点Fとの対応付けに応じて、端末に搭載されたカメラ12の位置及び姿勢が逐次推定される。
Feature points are extracted from the image. The feature point is, for example, an edge point in an image representing the shape of an object existing in the target area. In addition, map points representing three-dimensional coordinates corresponding to the feature points in the image are generated. For example, a map point M as shown in 2B of FIG. 2 is generated for the feature point F. Further, the feature point F extracted from the
しかし、データ記憶部15にマップ情報が格納されていない領域において、カメラ12の位置及び姿勢を推定する場合、同一箇所において撮像された複数の画像を取得することができなければ、カメラの移動軌跡のループが形成されない。このため、例えば、下記参考文献1に示されているような最適化処理を行うことができない。そのため、図2の2Bに示されるように、カメラ12の位置及び姿勢の推定結果は、本来の移動軌跡L1とは異なる移動軌跡L2となる。これにより、カメラ12の位置及び姿勢の推定結果を表す移動軌跡L2においては、カメラ12の位置及び姿勢の推定誤差が増大する。
However, when estimating the position and orientation of the
参考文献1:Ra´ul Mur-Artal, J. M. M. Montiel,"ORB-SLAM: A Versatile and Accurate Monocular SLAM System",IEEE TRANSACTIONS ON ROBOTICS, VOL. 31, NO. 5, OCTOBER 2015 Reference 1: Ra´ul Mur-Artal, J.M.M. Montiel, "ORB-SLAM: A Versatile and Accurate Monocular SLAM System", IEEE TRANSACTIONS ON ROBOTICS, VOL. 31, NO. 5, OCTOBER 2015
そこで、本実施形態では、予め定められた指標を環境中に設置し、指標が検知される毎にカメラ12の位置及び姿勢の最適化を行う。以下、具体的に説明する。
Therefore, in the present embodiment, a predetermined index is set in the environment, and the position and posture of the
データ記憶部15には、キーフレーム画像の各々と、キーフレーム画像が撮像されたときのカメラ12の位置及び姿勢の各々と、キーフレーム画像の特徴点の各々の3次元座標であるマップ点とを表すマップ情報が格納される。
The
具体的には、マップ情報は、キーフレームテーブルとマップ点テーブルとで表現され、キーフレームテーブル及びマップ点テーブルがマップ情報としてデータ記憶部15に格納される。
Specifically, the map information is represented by a key frame table and a map point table, and the key frame table and the map point table are stored in the
図3に示すキーフレームテーブルには、キーフレームの識別情報を表すキーフレームIDと、カメラ12の位置及び姿勢と、キーフレーム画像と、キーフレーム画像の特徴点と、特徴点に対応するマップ点IDとが対応付けられて格納される。例えば、図3のキーフレームテーブルのキーフレームID「001」に対応するカメラ12の位置及び姿勢は、図3に示されるように、(0.24,0.84,0.96,245.0,313.9,23.8)を示す6次元実数値である。6次元実数値のうち(0.24,0.84,0.96)はカメラ12の姿勢を表し、(245.0,313.9,23.8)はカメラの3次元位置を表す。キーフレームテーブルの1行の情報が1つのキーフレームを表す。
The keyframe table shown in FIG. 3 includes a keyframe ID representing keyframe identification information, a position and orientation of the
また、図3のキーフレームテーブルのキーフレームID「001」に対応するキーフレーム画像(24,46,…)は、キーフレーム画像の各画素の画素値を表す。また、図3のキーフレームテーブルのキーフレームID「001」に対応する特徴点「(11,42),(29,110)…」は、キーフレーム画像内の特徴点の位置に対応する画素位置を表す。また、図3のキーフレームテーブルのキーフレームID「001」に対応するマップ点ID「3,5,9,32…」は、各特徴点に対応するマップ点IDを表す。マップ点IDは、マップ点テーブルのマップ点IDと対応する。 The keyframe image (24,46, ...) Corresponding to the keyframe ID "001" in the keyframe table of FIG. 3 represents the pixel value of each pixel of the keyframe image. Further, the feature points "(11,42), (29,110) ..." Corresponding to the keyframe ID "001" in the keyframe table of FIG. 3 represent the pixel positions corresponding to the positions of the feature points in the keyframe image. .. Further, the map point ID "3,5,9,32 ..." Corresponding to the keyframe ID "001" in the keyframe table of FIG. 3 represents the map point ID corresponding to each feature point. The map point ID corresponds to the map point ID in the map point table.
図4に示すマップ点テーブルには、マップ点の識別情報を表すマップ点IDと、マップ点の3次元位置座標(X[m],Y[m],Z[m])と、マップ点の特徴量とが対応付けられて格納される。例えば、図4のマップ点テーブルの特徴量は、例えば、参考文献2に記載されているOriented FAST and Rotated BRIEF(ORB)等であり、ORBの特徴量は0または1を表す32次元の特徴量によって表現される。
In the map point table shown in FIG. 4, the map point ID representing the identification information of the map point, the three-dimensional position coordinates (X [m], Y [m], Z [m]) of the map point, and the map point The feature amount is stored in association with it. For example, the feature amount of the map point table in FIG. 4 is, for example, Oriented FAST and Rotated BRIEF (ORB) described in
参考文献2:E. Rublee et al., "ORB: An efficient alternative to SIFT or SURF", In Proc. of International Conference on Computer Vision, pp. 2564-2571, 2011. Reference 2: E. Rublee et al., "ORB: An efficient alternative to SIFT or SURF", In Proc. Of International Conference on Computer Vision, pp. 2564-2571, 2011.
本実施形態では、情報処理装置10の制御部14は、姿勢推定機能とマップ生成機能と最適化機能とを有する。以下、各機能に対応する各機能部について説明する。
In the present embodiment, the
なお、カメラ12の内部パラメータについては、例えば、参考文献3に記載の方法に基づきキャリブレーションにより予め取得される。カメラ12の内部パラメータとしては、例えば、焦点距離及び光学中心を含む行列と、歪み係数(例えば5次元)とが含まれる。
The internal parameters of the
参考文献3:Z.Zhang et al., "A flexible new technique for camera calibration.", IEEE Transactions on Pattern Analysis and Machine Intelligence, 22(11):1330-1334, 2000. Reference 3: Z. Zhang et al., "A flexible new technique for camera calibration.", IEEE Transactions on Pattern Analysis and Machine Intelligence, 22 (11): 1330-1334, 2000.
[姿勢推定機能] [Posture estimation function]
画像取得部16は、カメラ12によって撮像された画像を逐次取得する。次に、画像取得部16は、カメラ12によって撮像された画像をグレースケール画像へ変換する。そして、画像取得部16は、グレースケール画像を出力する。
The
特徴点抽出部18は、画像取得部16から出力されたグレースケール画像から、特徴点を取得する。例えば、特徴点抽出部18は、上記参考文献1に記載の手法を用いて、グレースケール画像から特徴点を抽出する。そして、特徴点抽出部18は、各特徴点に対して、特徴量を計算する。例えば、上記参考文献2に記載のORBを特徴量として用いる場合には、0または1を表す32次元の特徴量が抽出される。
The feature
図5に、各特徴点に対応する特徴量のデータ構造の一例を示す。図5に示されるように、特徴点の識別情報を表す特徴点IDと、特徴点の位置を表す画素u[pixel],v[pixel]と、特徴量とが対応付けられる。 FIG. 5 shows an example of a feature amount data structure corresponding to each feature point. As shown in FIG. 5, the feature point ID representing the identification information of the feature points, the pixels u [pixel] and v [pixel] representing the positions of the feature points, and the feature amount are associated with each other.
姿勢推定部20は、特徴点抽出部18によって抽出された特徴点及び特徴点に対応する特徴量に基づいて、カメラ12の位置及び姿勢を推定する。姿勢推定部20は、マップ点が得られていない場合、例えば、上記参考文献1の「IV Automatic Map Initialization」に記載の方法を使用して、初期のマップ点を生成する。
The
具体的には、まず、姿勢推定部20は、任意の2視点から撮像されたグレースケール画像から、特徴点抽出部18により抽出された特徴点を取得する。次に、姿勢推定部20は、2視点から撮像されたグレースケール画像間で特徴点の対応付けを行い、1視点目に対応するカメラ12の位置及び姿勢に対する、2視点目に対応するカメラ12の位置及び姿勢を求める。なお、姿勢推定部20は、1視点目に対応するカメラ12の位置及び姿勢を、世界座標系の原点として設定し、2視点目に対応するカメラ12の位置及び姿勢を、カメラ12の位置及び姿勢の初期値として設定する。
Specifically, first, the
また、姿勢推定部20は、1視点目に対応するカメラ12の位置及び姿勢に対する、2視点目に対応するカメラ12の位置及び姿勢に基づいて、三角測量を用いて、特徴点に対応する3次元座標を表すマップ点を計算する。
Further, the
次に、姿勢推定部20は、車両の移動に合わせてカメラ12が移動する際に、マップ点を用いて、カメラ12の位置及び姿勢を逐次推定する。例えば、まず、姿勢推定部20は、カメラ12を搭載した車両が既定の運動モデル(例えば、等速運動)を行うと仮定する。そして、姿勢推定部20は、特徴点抽出部18によって抽出されたグレースケール画像の特徴点と、データ記憶部15のマップ点テーブルに格納されたマップ点との対応付けを行う。
Next, the
より詳細には、姿勢推定部20は、データ記憶部15のマップ点テーブルに格納されたマップ点をグレースケール画像に投影し、グレースケール画像の特徴点の各々とマップ点の各々とを対応付ける。
More specifically, the
例えば、姿勢推定部20は、以下の参考文献4に記載のPnPアルゴリズムを用いて、カメラの位置姿勢を推定する。PnPアルゴリズムとは、グレースケール画像に投影されたマップ点と特徴点との間の距離を最小にするようなカメラ12の位置及び姿勢を、Levenberg-Marquardt法などの非線形最適化アルゴリズムによって算出する手法である。
For example, the
参考文献4: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). Reference 4: 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).
また、姿勢推定部20は、画像取得部16によって出力されたグレースケール画像をキーフレーム画像として格納するか否かを判定する。例えば、姿勢推定部20は、以下の基準に従って、画像取得部16によって出力されたグレースケール画像をキーフレーム画像として格納するか否かを判定する。姿勢推定部20は、以下の(1)〜(3)の基準を全て満たす場合に、グレースケール画像をキーフレーム画像として、カメラ12の位置及び姿勢と、特徴点とマップ点との対応付けと共にデータ記憶部15へ格納する。
Further, the
(1)前回のキーフレーム画像の格納から一定フレーム(例えば、20フレーム)経過している。
(2)前回までに格納されたキーフレーム画像のうち、グレースケール画像の位置と最も近い最近傍のキーフレーム画像の特徴点とグレースケール画像の特徴点との間の対応点数が一定数以上(例えば、50点)である。
(3)前回までに格納されたキーフレーム画像のうち、グレースケール画像の位置と最も近い最近傍のキーフレーム画像と比較して一定の割合(例えば、90%)対応点数が減少している。
(1) A certain frame (for example, 20 frames) has passed since the previous storage of the key frame image.
(2) Of the keyframe images stored up to the previous time, the number of corresponding points between the feature points of the keyframe image closest to the position of the grayscale image and the feature points of the grayscale image is a certain number or more ( For example, 50 points).
(3) Among the keyframe images stored up to the previous time, the corresponding points are reduced by a certain percentage (for example, 90%) as compared with the keyframe image closest to the position of the grayscale image.
[マップ生成機能] [Map generation function]
マップ生成部22は、姿勢推定部20によって新たなキーフレーム画像がデータ記憶部15へ格納された場合、三角測量を用いて、新たなキーフレーム画像の特徴点の各々のマップ点を算出する。例えば、マップ生成部22は、新たなキーフレーム画像と、前回までにデータ記憶部15へ格納されたキーフレーム画像とに基づき、参考文献5に記載の手法により、新たなキーフレーム画像のマップ点を生成する。
When a new keyframe image is stored in the
参考文献5:R. I. Hartley et al., "Triangulation, Computer Vision and Image Understanding", Vol. 68, No.2, pp.146-157, 1997. Reference 5: R. I. Hartley et al., "Triangulation, Computer Vision and Image Understanding", Vol. 68, No.2, pp.146-157, 1997.
具体的には、マップ生成部22は、前回までにデータ記憶部15へ格納されたキーフレーム画像のうち、新たなキーフレーム画像の位置と最も近い最近傍のキーフレーム画像を選択する。次に、マップ生成部22は、新たなキーフレーム画像に含まれる特徴点に対応する、最近傍のキーフレーム画像における特徴点をエピポーラ探索で特定する。エピポーラ探索とは、2視点間の幾何拘束を用い、1視点目の特徴点が存在するべき2視点目のエピポーラ線上のみを探索範囲として対応点を見つける処理である。
Specifically, the
そして、マップ生成部22は、新たなキーフレーム画像と最近傍のキーフレーム画像との間で対応付けられた特徴点の情報に基づき、三角測量を用いて、新たなキーフレーム画像のマップ点を算出する。なお、三角測量については、例えば、上記参考文献5の「5.1 Linear Triangulation」に記載の方法を用いることができる。
Then, the
そして、マップ生成部22は、新たなキーフレーム画像のマップ点をデータ記憶部15へ格納する。
Then, the
調整部28は、データ記憶部15に格納されたマップ情報に基づいて、全てのキーフレーム画像についての、キーフレーム画像上での特徴点とマップ点との間の再投影誤差の総和が最小となるように、マップ点を補正する。
Based on the map information stored in the
具体的には、調整部28は、データ記憶部15のキーフレームテーブルに格納された各キーフレーム、各キーフレームに対応付けられたマップ点、及びカメラ12の内部パラメータを取得する。そして、調整部28は、キーフレーム画像上での特徴点とマップ点との間の再投影誤差が最小となるように、各キーフレーム画像が撮像されたときのカメラ12の位置及び姿勢と、各キーフレーム画像の特徴点に対応付けられたマップ点の座標を補正する。キーフレーム画像上での特徴点とマップ点との間の再投影誤差を最小化するためのアルゴリズムとしては、以下の参考文献6に記載されているLevenberg-Marquardt法などの非線形最適化アルゴリズムを用いることができる。調整部28における処理は、バンドル調整とも称される。
Specifically, the adjusting
参考文献6:B. Triggs et al., "Bundle Adjustment- A Modern Synthesis", In Proc. of International Workshop on Vision Algorithms: Theory and Practice, pp.298-392, 1999. Reference 6: B. Triggs et al., "Bundle Adjustment-A Modern Synthesis", In Proc. Of International Workshop on Vision Algorithms: Theory and Practice, pp.298-392, 1999.
そして、調整部28は、データ記憶部15に格納されたマップ情報のうちの各キーフレーム画像が撮像されたときのカメラ12の位置及び姿勢を、補正された位置及び姿勢に置き換える。また、調整部28は、データ記憶部15に格納されたマップ情報のうちの各キーフレーム画像に対応付けられたマップ点の座標を、補正されたマップ点の座標に置き換える。
Then, the adjusting
[最適化機能] [Optimization function]
指標検出部24は、データ記憶部15に格納された新たなキーフレーム画像に、形状及び大きさが予め定められた指標が含まれているか否かを検出する。なお、指標は、カメラが移動する対象領域に予め設置される。また、指標は複数設置され、複数の指標の各々についての、指標間の相対的な位置及び姿勢は既知である。例えば、図6に示されるような指標1が、環境に予め設置される。図6に示されるように、指標1には、予め定められたパターン2が含まれている。
The
指標検出部24は、例えば、参考文献7に記載の方法を用い、画像取得部16によって出力されたグレースケール画像に指標が存在するか否かを判定する。具体的には、指標検出部24は、画像取得部16によって出力されたグレースケール画像に対して二値化を行う。そして、指標検出部24は、指標の4隅座標の位置を推定することにより、指標を検出する。
The
参考文献7:H. Kato et al., "Marker tracking and HMD calibration for a video-based augmented reality conferencing system", In Proc. of IEEE and ACM International Workshop on Augmented Reality (IWAR), pp.85-94, 1999. Reference 7: H. Kato et al., "Marker tracking and HMD calibration for a video-based augmented reality conferencing system", In Proc. Of IEEE and ACM International Workshop on Augmented Reality (IWAR), pp.85-94, 1999.
姿勢推定部20は、指標検出部24によって新たなキーフレーム画像から指標が検出された場合、指標を含むキーフレーム画像に基づいて、指標に対するカメラ12の位置及び姿勢を推定する。例えば、姿勢推定部20は、上記参考文献7の「4. Position and pose estimation of markers」に従って、指標に対するカメラ12の位置及び姿勢を推定する。
When the index is detected from the new keyframe image by the
そして、最適化部26は、姿勢推定部20によって推定された新たなキーフレーム画像が撮像されたときの指標に対するカメラ12の位置及び姿勢に基づいて、データ記憶部15に格納されたマップ情報を補正する。
Then, the
本実施形態におけるマップ情報の補正について、具体的に説明する。 The correction of the map information in the present embodiment will be specifically described.
例えば、図7の7Aに示されるように、各キーフレーム画像が撮像されたときのカメラの位置及び姿勢(a,b,c)が得られている場合を例に説明する。この場合、aはスタート地点のキーフレーム画像が撮像されたときのカメラ12の位置及び姿勢を表す。また、cは新たなキーフレーム画像が撮像されたときのカメラの位置及び姿勢を表す。bはaとcとの間に位置するキーフレーム画像が撮像されたときのカメラ12の位置及び姿勢を表す。また、Xは、姿勢推定部20によって得られた、指標1に対するカメラ12の位置及び姿勢を表す。
For example, as shown in 7A of FIG. 7, a case where the position and posture (a, b, c) of the camera when each keyframe image is captured is obtained will be described as an example. In this case, a represents the position and orientation of the
本実施形態では、図7の7Bに示されるように、カメラ12の位置及び姿勢aと、指標1に対するカメラ12の位置及び姿勢Xとに基づき、各キーフレーム画像におけるカメラ12の位置及び姿勢Yを得る。
In this embodiment, as shown in 7B of FIG. 7, the position and orientation Y of the
具体的には、図7の7Cに示されるように、カメラ12の位置及び姿勢(a,b,c)と、指標1に対するカメラ12の位置及び姿勢Xと、カメラ12の位置及び姿勢aでの他の指標に対するカメラ12の位置及び姿勢とを含むループが形成される。このとき、ループを表すグラフを再計算することにより、補正されたカメラ12の位置及び姿勢Yを得る。これにより、補正前の移動軌跡Sが移動軌跡Pとなり、実世界と対応するマップ情報が得られる。
Specifically, as shown in 7C of FIG. 7, the position and orientation (a, b, c) of the
ここで、カメラの位置及び姿勢から形成されるループについてより詳細に説明する。 Here, the loop formed from the position and orientation of the camera will be described in more detail.
図8に示されるように、各キーフレーム画像が撮像されたときのカメラ12の位置及び姿勢(a,b,c)と、新たなキーフレーム画像が撮像されたときの指標(1A,1B)に対するカメラ12の位置及び姿勢(X1,X2)とを含むループが形成される。ただし、指標(1A,1B)間の相対的な位置及び姿勢は既知とする。
As shown in FIG. 8, the position and orientation (a, b, c) of the
図8に示されるように、キーフレーム画像から指標1Aが検出された場合、指標1Aに対するカメラ12の位置及び姿勢X1が推定される。なお、aはキーフレーム画像として格納される際に推定されたカメラ12の位置及び姿勢である。
As shown in FIG. 8, when the
また、新たなキーフレーム画像から指標1Bが検出された場合、指標1Bに対するカメラ12の位置及び姿勢X2が推定される。なお、cはキーフレーム画像として格納される際に推定されたカメラ12の位置及び姿勢である。
When the
そして、指標(1A,1B)間の相対的な位置及び姿勢と、指標1Aに対するカメラ12の位置及び姿勢X1と、各キーフレーム画像が撮像されたときのカメラ12の位置及び姿勢bと、指標1Bに対するカメラ12の位置及び姿勢X2とからループZが形成される。これにより、以下の参考文献8に記載のPose Graph最適化を行うことが可能となる。
Then, the relative position and orientation between the indexes (1A, 1B), the position and orientation X1 of the
参考文献8:Ra´ul Mur-Artal and Juan D. Tard´os,"Fast Relocalisation and Loop Closing in Keyframe-Based SLAM",2014 IEEE International Conference on Robotics & Automation (ICRA) May 31 - June 7, 2014. Hong Kong, China Reference 8: Ra´ul Mur-Artal and Juan D. Tard´os, “Fast Relocalisation and Loop Closing in Keyframe-Based SLAM”, 2014 IEEE International Conference on Robotics & Automation (ICRA) May 31 --June 7, 2014. Hong Kong, China
具体的には、まず、最適化部26は、新たなキーフレーム画像から指標が検出された場合に、データ記憶部15に格納されたマップ情報を取得する。次に最適化部26は、前回、キーフレーム画像から指標が検出されたときの、指標に対するカメラ12の位置及び姿勢と、過去のキーフレーム画像が撮像されたときのカメラ12の位置及び姿勢の各々と、を取得する。最適化部26は、更に、新たなキーフレーム画像が撮像されたときの指標に対するカメラ12の位置及び姿勢と、指標間の相対的な位置及び姿勢とを取得して、ループを形成し、形成されるループに基づき、マップ情報を補正する。
Specifically, first, the
より詳細には、最適化部26は、以下の参考文献8に記載のPose Graph最適化により、新たなキーフレーム画像の周辺のキーフレーム画像におけるカメラ12の位置及び姿勢の各々と、新たなキーフレーム画像におけるカメラ12の位置及び姿勢とを補正する。
More specifically, the
そして、最適化部26は、各キーフレーム画像が撮像されたときのカメラ12の位置及び姿勢の補正に応じて、各キーフレーム画像の特徴点に対応するマップ点の座標を座標変換する。具体的には、最適化部26は、各キーフレーム画像が撮像されたときの補正前のカメラ12の位置及び姿勢と、補正前の各キーフレーム画像の特徴点に対応するマップ点との間の相対的関係が維持されるように、マップ点の座標を座標変換する。
Then, the
調整部28は、最適化部26によって補正された、各キーフレーム画像の特徴点へのマップ点の再投影誤差を最小化するように、各キーフレーム画像におけるカメラ12の位置及び姿勢並びに各キーフレーム画像に対応付けられたマップ点の座標を補正する。そして、調整部28は、データ記憶部15に格納されたマップ情報のうちの各キーフレーム及び各キーフレーム画像に対応付けられたマップ点の座標を、補正された各キーフレーム画像及び各キーフレーム画像に対応付けられたマップ点の座標に置き換える。
The
情報処理装置10の制御部14は、例えば、図9に示すコンピュータ50で実現することができる。コンピュータ50はCPU51、一時記憶領域としてのメモリ52、及び不揮発性の記憶部53を備える。また、コンピュータ50は、カメラ12、表示装置、及び入出力装置等(図示省略)が接続される入出力interface(I/F)54、及び記録媒体59に対するデータの読み込み及び書き込みを制御するread/write(R/W)部55を備える。また、コンピュータ50は、インターネット等のネットワークに接続されるネットワークI/F56を備える。CPU51、メモリ52、記憶部53、入出力I/F54、R/W部55、及びネットワークI/F56は、バス57を介して互いに接続される。
The
記憶部53は、Hard Disk Drive(HDD)、solid state drive(SSD)、フラッシュメモリ等によって実現できる。記憶媒体としての記憶部53には、コンピュータ50を情報処理装置10の制御部14として機能させるための情報処理プログラム60が記憶されている。情報処理プログラム60は、画像取得プロセス62と、特徴点抽出プロセス63と、姿勢推定プロセス64と、マップ生成プロセス65と、指標検出プロセス66と、最適化プロセス67と、調整プロセス68とを有する。また、記憶部53は、データ記憶部15を構成する情報が記憶されるデータ記憶領域69を有する。
The
CPU51は、情報処理プログラム60を記憶部53から読み出してメモリ52に展開し、情報処理プログラム60が有するプロセスを順次実行する。CPU51は、画像取得プロセス62を実行することで、図1に示す画像取得部16として動作する。また、CPU51は、特徴点抽出プロセス63を実行することで、図1に示す特徴点抽出部18として動作する。また、CPU51は、姿勢推定プロセス64を実行することで、図1に示す姿勢推定部20として動作する。また、CPU51は、マップ生成プロセス65を実行することで、図1に示すマップ生成部22として動作する。また、CPU51は、指標検出プロセス66を実行することで、図1に示す指標検出部24として動作する。また、CPU51は、最適化プロセス67を実行することで、図1に示す最適化部26として動作する。また、CPU51は、調整プロセス68を実行することで、図1に示す調整部28として動作する。また、CPU51は、データ記憶領域69から情報を読み出して、データ記憶部15をメモリ52に展開する。これにより、情報処理プログラム60を実行したコンピュータ50が、情報処理装置10の制御部14として機能することになる。そのため、ソフトウェアである情報処理プログラム60を実行するプロセッサはハードウェアである。
The
なお、情報処理プログラム60により実現される機能は、例えば半導体集積回路、より詳しくはApplication Specific Integrated Circuit(ASIC)等で実現することも可能である。
The function realized by the
次に、本実施形態に係る情報処理装置10の作用について説明する。情報処理装置10は、姿勢推定処理とマップ生成処理と最適化処理とを実行する。情報処理装置10を搭載した端末が移動を開始し、カメラ12がカメラの周辺の画像の撮像を開始すると、情報処理装置10の制御部14によって、図10に示す姿勢推定処理が実行される。また、同様に、情報処理装置10の制御部14によって、図11に示すマップ生成処理と、図12に示す最適化処理とが実行される。以下、各処理について詳述する。
Next, the operation of the information processing device 10 according to the present embodiment will be described. The information processing device 10 executes a posture estimation process, a map generation process, and an optimization process. When the terminal equipped with the information processing device 10 starts moving and the
<姿勢推定処理> <Posture estimation process>
ステップS100において、画像取得部16は、カメラ12によって撮像された画像を取得する。次に、画像取得部16は、カメラ12によって撮像された画像をグレースケール画像へ変換する。そして、画像取得部16は、グレースケール画像を出力する。
In step S100, the
ステップS102において、特徴点抽出部18は、上記ステップS100で出力されたグレースケール画像から、特徴点を抽出する。そして、特徴点抽出部18は、各特徴点に対して、特徴量を計算する。
In step S102, the feature
ステップS104において、姿勢推定部20は、上記ステップS102で抽出された特徴点及び特徴点に対応する特徴量に基づいて、カメラ12の位置及び姿勢を推定する。
In step S104, the
ステップS106において、姿勢推定部20は、上記ステップS100で出力されたグレースケール画像をキーフレーム画像として格納するか否かを判定する。グレースケール画像をキーフレーム画像として格納すると判定した場合には、ステップS108へ進む。一方、グレースケール画像をキーフレーム画像として格納しないと判定した場合には、ステップS100へ戻る。
In step S106, the
ステップS108において、姿勢推定部20は、上記ステップS100で出力されたグレースケール画像を、キーフレーム画像としてデータ記憶部15へ格納する。また、上記ステップS104で推定された、カメラ12の位置及び姿勢をデータ記憶部15へ格納する。
In step S108, the
<マップ生成処理> <Map generation process>
ステップS200において、マップ生成部22は、姿勢推定処理によって新たなキーフレーム画像がデータ記憶部15へ格納されたか否かを判定する。キーフレーム画像がデータ記憶部15へ格納された場合、ステップS202へ進む。一方、キーフレーム画像がデータ記憶部15へ格納されていない場合、ステップS200へ戻る。
In step S200, the
ステップS202において、マップ生成部22は、姿勢推定処理によってデータ記憶部15へ格納された新たなキーフレーム画像と、前回までにデータ記憶部15へ格納されたキーフレーム画像とに基づき、新たなキーフレーム画像のマップ点を生成する。
In step S202, the
ステップS204において、マップ生成部22は、上記ステップS202で生成された新たなキーフレーム画像のマップ点をデータ記憶部15へ格納する。
In step S204, the
ステップS206において、調整部28は、データ記憶部15に格納されたマップ情報に基づいて、全てのキーフレーム画像についての、キーフレーム画像上での特徴点とマップ点との間の再投影誤差の総和が最小となるように、マップ点を補正する。そして、調整部28は、データ記憶部15に格納されたマップ情報のうちの各キーフレーム画像が撮像されたときのカメラ12の位置及び姿勢を、補正された位置及び姿勢に置き換える。また、調整部28は、データ記憶部15に格納されたマップ情報のうちの各キーフレーム画像に対応付けられたマップ点を、補正されたマップ点に置き換える。
In step S206, the adjusting
<最適化処理> <Optimization process>
ステップS300において、指標検出部24は、姿勢推定処理によってデータ記憶部15に格納された新たなキーフレーム画像に指標が含まれているか否かを判定する。新たなキーフレーム画像に指標が含まれている場合には、ステップS302へ進む。
In step S300, the
ステップS302において、姿勢推定部20は、指標を含む新たなキーフレーム画像に基づいて、指標に対するカメラ12の位置及び姿勢を推定する。
In step S302, the
ステップS304において、最適化部26は、データ記憶部15に格納された過去のキーフレーム画像におけるカメラ12の位置及び姿勢の各々と、上記ステップS302で得られた指標に対するカメラ12の位置及び姿勢とからループを形成する。そして、最適化部26は、形成されるループに基づき、Pose Graph最適化により、過去のキーフレーム画像におけるカメラ12の位置及び姿勢の各々と、新たなキーフレーム画像におけるカメラ12の位置及び姿勢とを補正する。
In step S304, the
ステップS306において、最適化部26は、上記ステップS304で得られた、各キーフレーム画像が撮像されたときのカメラ12の位置及び姿勢の補正に応じて、各キーフレームのマップ点の座標を座標変換する。
例えば、ループに基づく位置及び姿勢の補正はLoop Closure最適化を利用する事ができる。
In step S306, the
For example, loop closure optimization can be used for loop-based position and orientation correction.
ステップS308において、調整部28は、上記ステップS306で得られたマップ点の各キーフレーム画像の特徴点への再投影誤差を最小化するように、各キーフレーム画像におけるカメラ12の位置及び姿勢と、各キーフレーム画像のマップ点を補正する。そして、調整部28は、データ記憶部15に格納されたマップ情報のうちの各キーフレーム及び各キーフレームに対応付けられたマップ点を、補正された各キーフレーム及び各キーフレームに対応付けられたマップ点に置き換える。
In step S308, the adjusting
以上説明したように、本実施形態に係る情報処理装置は、カメラによって撮像された画像に基づいて、カメラの位置及び姿勢を推定する。そして、撮像された画像から予め定められた指標が検出された場合に、カメラの位置及び姿勢の各々と、指標に対するカメラの位置及び姿勢とから形成されるループに基づいて、キーフレーム画像の各々を撮像したときのカメラの位置及び姿勢の各々を推定する。これにより、カメラの位置及び姿勢の推定誤差を低減させることができる。 As described above, the information processing apparatus according to the present embodiment estimates the position and orientation of the camera based on the image captured by the camera. Then, when a predetermined index is detected from the captured image, each of the keyframe images is based on a loop formed from each of the camera positions and postures and the camera position and posture with respect to the index. Estimate each of the position and orientation of the camera when the image is taken. This makes it possible to reduce the estimation error of the position and orientation of the camera.
また、指標が検出される毎に、キーフレーム画像の各々を撮像したときのカメラの位置及び姿勢の各々の最適化を行うことにより、高頻度で最適化を行うことができる。 Further, each time the index is detected, the position and orientation of the camera when each of the keyframe images is captured is optimized, so that the optimization can be performed with high frequency.
また、高頻度で最適化が行われることにより、調整部によって行われるバンドル調整の収束までの時間が減少し、局所解への収束を回避することができる。 Further, since the optimization is performed with high frequency, the time until the bundle adjustment performed by the adjustment unit converges can be reduced, and the convergence to the local solution can be avoided.
<第2の実施形態>
次に、第2の実施形態について説明する。第2の実施形態では、カメラによって撮像された画像から指標が検出された場合に、指標の検出結果に応じて、指標を含む画像の信頼度を算出する。そして、信頼度が予め設定された閾値より大きい場合に、キーフレーム画像の各々が撮像されたときのカメラの位置及び姿勢の各々を補正する点が第1の実施形態と異なる。
<Second embodiment>
Next, the second embodiment will be described. In the second embodiment, when the index is detected from the image captured by the camera, the reliability of the image including the index is calculated according to the detection result of the index. Then, when the reliability is larger than the preset threshold value, the position and orientation of the camera when each of the keyframe images is captured is corrected, which is different from the first embodiment.
図13に、第2の実施形態の情報処理装置210の構成例を示す。第2の実施形態の情報処理装置210は、図13に示されるように、カメラ12と、制御部214とを備える。
FIG. 13 shows a configuration example of the
制御部214は、データ記憶部15と、画像取得部16と、特徴点抽出部18と、姿勢推定部20と、マップ生成部22と、指標検出部24と、最適化部226と、調整部28と、信頼度算出部225とを備える。
The
信頼度算出部225は、データ記憶部15に格納されたキーフレーム画像から指標が検出された場合に、指標の検出結果に応じて信頼度を算出する。
When the index is detected from the keyframe image stored in the
例えば、信頼度算出部225は、キーフレーム画像から検出された指標の平面の法線と、カメラ12の光軸とのなす角θを算出する。そして、信頼度算出部225は、なす角θが、θ1≦θ≦θ2を満たす場合には、角度に関する信頼度を高くする。一方、なす角θが、θ1≦θ≦θ2を満たさない場合には、角度に関する信頼度を低くする。θ1とθ2とは予め設定され、例えば、θ1=π/18、θ2=4π/9である。指標とカメラとの光軸間のなす角θが大きすぎる場合又は小さすぎる場合は、指標の4隅の検出点の誤差がカメラの位置及び姿勢推定に大きな影響を及ぼすようになり(例えば参考文献9を参照)、推定精度が悪化するため、なす角θに応じて信頼度を算出する。
For example, the
参考文献9:Y. Uematsu et al., "Improvement of Accuracy for 2D Marker-Based Tracking Using Particle Filter", In Proc. of IEEE International Conference on Artificial Reality and Telexistence(ICAT), pp.183-189, 2007. Reference 9: Y. Uematsu et al., "Improvement of Accuracy for 2D Marker-Based Tracking Using Particle Filter", In Proc. Of IEEE International Conference on Artificial Reality and Telexistence (ICAT), pp.183-189, 2007.
また、信頼度算出部225は、カメラ12と指標との間の距離dに応じて、距離に関する信頼度を算出する。信頼度算出部225は、距離dが大きいほど信頼度が低くなるように、かつ距離dが小さいほど信頼度が高くなるように、距離に関する信頼度を算出する。カメラ12と指標との間の距離が大きくなると、4隅の検出点の同定精度が悪化し、推定精度が悪化するため、距離に応じて信頼度を算出する。
Further, the
また、信頼度算出部225は、キーフレーム画像から検出された指標に含まれるパターンと、予め登録されたパターンの一致度を、一致に関する信頼度として算出する。パターンの一致度が低いと、異なる指標と認識される可能性が大きくなるため、パターンの一致度に応じて信頼度を算出する。
Further, the
最適化部226は、信頼度算出部225によって算出された信頼度に応じて、過去のキーフレーム画像が撮像されたときのカメラ12の位置及び姿勢の各々と、新たなキーフレーム画像が撮像されたときの指標に対するカメラ12の位置及び姿勢とを補正する。
The
例えば、最適化部226は、信頼度算出部225によって算出された、角度に関する信頼度、距離に関する信頼度、及び一致に関する信頼度の少なくとも1つが閾値以上である場合に、キーフレーム画像が撮像されたときのカメラ12の位置及び姿勢の補正を行う。または、最適化部226は、信頼度算出部225により算出された、角度に関する信頼度、距離に関する信頼度、及び一致に関する信頼度の全てが閾値以上である場合、キーフレーム画像が撮像されたときのカメラ12の位置及び姿勢の補正を行うようにしてもよい。
For example, the
情報処理装置210の制御部214は、例えば、図14に示すコンピュータ50で実現することができる。コンピュータ50の記憶媒体としての記憶部53には、コンピュータ50を情報処理装置210の制御部214として機能させるための情報処理プログラム260が記憶されている。情報処理プログラム260は、画像取得プロセス62と、特徴点抽出プロセス63と、姿勢推定プロセス64と、マップ生成プロセス65と、指標検出プロセス66と、信頼度算出プロセス266と、最適化プロセス267と、調整プロセス68とを有する。また、記憶部53は、データ記憶部15を構成する情報が記憶されるデータ記憶領域69を有する。
The
CPU51は、情報処理プログラム260を記憶部53から読み出してメモリ52に展開し、情報処理プログラム60が有するプロセスを順次実行する。CPU51は、画像取得プロセス62を実行することで、図13に示す画像取得部16として動作する。また、CPU51は、特徴点抽出プロセス63を実行することで、図13に示す特徴点抽出部18として動作する。また、CPU51は、姿勢推定プロセス64を実行することで、図13に示す姿勢推定部20として動作する。また、CPU51は、マップ生成プロセス65を実行することで、図13に示すマップ生成部22として動作する。また、CPU51は、指標検出プロセス66を実行することで、図13に示す指標検出部24として動作する。また、CPU51は、信頼度算出プロセス266を実行することで、図13に示す信頼度算出部225として動作する。また、CPU51は、最適化プロセス267を実行することで、図13に示す最適化部226として動作する。また、CPU51は、調整プロセス68を実行することで、図13に示す調整部28として動作する。また、CPU51は、データ記憶領域69から情報を読み出して、データ記憶部15をメモリ52に展開する。これにより、情報処理プログラム60を実行したコンピュータ50が、情報処理装置210の制御部214として機能することになる。そのため、ソフトウェアである情報処理プログラム260を実行するプロセッサはハードウェアである。
The
なお、情報処理プログラム260により実現される機能は、例えば半導体集積回路、より詳しくはASIC等で実現することも可能である。
The function realized by the
次に第2の実施形態における情報処理装置210の作用について説明する。情報処理装置210によって、図15に示す最適化処理が実行される。
Next, the operation of the
<最適化処理>
ステップS300〜ステップS302、ステップS304〜ステップS308は第1の実施形態と同様に実行される。
<Optimization process>
Steps S300 to S302 and steps S304 to S308 are executed in the same manner as in the first embodiment.
ステップS403において、信頼度算出部225は、キーフレーム画像の指標の検出結果に応じて信頼度を算出する。
In step S403, the
ステップS404において、最適化部226は、上記ステップS403で算出された信頼度が閾値以上であるか否かを判定する。信頼度が閾値以上である場合には、ステップS304へ進む。一方、信頼度が閾値未満である場合には、ステップS300へ戻る。
In step S404, the
以上説明したように、第2の実施形態では、情報処理装置210は、カメラによって撮像された画像から指標が検出された場合に、指標の検出結果に応じて、指標を含むキーフレーム画像の信頼度を算出する。そして、情報処理装置210は、信頼度が予め設定された閾値より大きい場合に、キーフレーム画像の各々が撮像されたときのカメラの位置及び姿勢の各々を補正する。これにより、指標の検出に関する信頼度を用いて、キーフレーム画像の各々が撮像されたときのカメラの位置及び姿勢の各々を精度よく補正することができる。
As described above, in the second embodiment, when the index is detected from the image captured by the camera, the
<第3の実施形態>
次に、第3の実施形態について説明する。第3の実施形態では、推定されたカメラの位置及び姿勢に応じて、予め設定された対象物が表示装置に重畳表示されるように、表示装置を制御する点が第1又は第2の実施形態と異なる。
<Third embodiment>
Next, a third embodiment will be described. In the third embodiment, the point of controlling the display device so that the preset object is superimposed and displayed on the display device according to the estimated position and orientation of the camera is the first or second embodiment. Different from the form.
図16に、第3の実施形態の情報処理装置310の構成例を示す。第3の実施形態の情報処理装置310は、図16に示されるように、カメラ12と、制御部314と、表示装置326とを備える。また、第3の実施形態では、情報処理装置310が情報端末に搭載される場合を例に説明する。ユーザは情報端末を操作して、表示装置に表示される画面を閲覧する。
FIG. 16 shows a configuration example of the
制御部314は、データ記憶部15と、画像取得部16と、特徴点抽出部18と、姿勢推定部320と、マップ生成部22と、指標検出部324と、最適化部26と、調整部28と、初期位置推定部319と、表示制御部325とを備える。
The
第3の実施形態のデータ記憶部15には、予め生成されたマップ情報が格納されている。
The
初期位置推定部319は、特徴点抽出部18によって抽出された特徴点及び特徴点に対応する特徴量と、データ記憶部15に格納されたマップ情報とに基づいて、上記参考文献8に記載のRelocalizationにより、カメラ12の初期の位置及び初期の姿勢を推定する。
The initial
具体的には初期位置推定部319は、特徴点抽出部18により抽出された特徴点及び特徴点に対応する特徴量と、マップ情報のうちの特徴点及び特徴点に対応する特徴量とに基づき、画像取得部16により取得された画像と最も類似するキーフレーム画像を探索する。そして、初期位置推定部319は、画像取得部16によって取得された画像と最も類似するキーフレーム画像との間で、特徴点のマッチングを行う。そして、初期位置推定部319は、最も類似するキーフレーム画像における特徴点とマップ点とのペアに基づき、画像取得部16により取得された画像における特徴点とマップ点とを対応付ける。そして、初期位置推定部319は、上記参考文献4に記載のPnPアルゴリズムにより、カメラ12の初期の位置及び初期の姿勢を推定する。
Specifically, the initial
指標検出部324は、更に、画像取得部16によって出力されたグレースケール画像に、指標が含まれているか否かを検出する。
The
姿勢推定部320は、指標検出部324によって指標が検出された場合には、指標を含むグレースケール画像に基づいて、指標に対するカメラ12の位置及び姿勢を推定する。一方、姿勢推定部320は、指標検出部324によって指標が検出されなかった場合には、特徴点抽出部18により抽出された特徴点及び特徴点に対応する特徴量に基づいて、カメラ12の位置及び姿勢を推定する。なお、姿勢推定部20は、例えば、以下の参考文献10に記載の方法を使用して、カメラ12の位置及び姿勢を推定してもよい。
When the index is detected by the
参考文献10:特開2015‐158461号公報 Reference 10: Japanese Unexamined Patent Publication No. 2015-158461
表示制御部325は、姿勢推定部20によって推定されたカメラ12の位置及び姿勢に基づいて、予め設定された対象物が表示装置326に重畳表示されるように、表示装置326を制御する。
The display control unit 325 controls the
例えば、表示装置326には、図17に示されるようなカメラ12で撮影された表示画面Dが表示される。表示制御部325は、姿勢推定部20によって推定されたカメラ12の位置及び姿勢に基づいて、対象物Gが表示装置326に重畳表示されるように、表示装置326を制御する。
For example, the
情報処理装置310の制御部314は、例えば、図18に示すコンピュータ50で実現することができる。コンピュータ50はCPU51、一時記憶領域としてのメモリ52、及び不揮発性の記憶部53を備える。また、コンピュータ50は、カメラ12、表示装置326、及び入出力装置等(図示省略)が接続される入出力I/F54、及び記録媒体59に対するデータの読み込み及び書き込みを制御するR/W部55を備える。
The
記憶部53は、HDD、SSD、フラッシュメモリ等によって実現できる。記憶媒体としての記憶部53には、コンピュータ50を情報処理装置310の制御部314として機能させるための情報処理プログラム360が記憶されている。情報処理プログラム360は、画像取得プロセス62と、特徴点抽出プロセス63と、姿勢推定プロセス364と、マップ生成プロセス65と、指標検出プロセス366とを有する。また、情報処理プログラム360は、最適化プロセス67と、調整プロセス68と、初期位置推定プロセス370と、表示制御プロセス371とを有する。また、記憶部53は、データ記憶部15を構成する情報が記憶されるデータ記憶領域69を有する。
The
CPU51は、情報処理プログラム260を記憶部53から読み出してメモリ52に展開し、情報処理プログラム60が有するプロセスを順次実行する。CPU51は、画像取得プロセス62を実行することで、図16に示す画像取得部16として動作する。また、CPU51は、特徴点抽出プロセス63を実行することで、図16に示す特徴点抽出部18として動作する。また、CPU51は、姿勢推定プロセス364を実行することで、図16に示す姿勢推定部320として動作する。また、CPU51は、マップ生成プロセス65を実行することで、図16に示すマップ生成部22として動作する。また、CPU51は、指標検出プロセス366を実行することで、図16に示す指標検出部324として動作する。また、CPU51は、最適化プロセス67を実行することで、図16に示す最適化部26として動作する。また、CPU51は、調整プロセス68を実行することで、図16に示す調整部28として動作する。また、CPU51は、初期位置推定プロセス370を実行することで、図16に示す初期位置推定部319として動作する。また、CPU51は、表示制御プロセス371を実行することで、図16に示す表示制御部325として動作する。また、CPU51は、データ記憶領域69から情報を読み出して、データ記憶部15をメモリ52に展開する。これにより、情報処理プログラム360を実行したコンピュータ50が、情報処理装置310の制御部314として機能することになる。そのため、ソフトウェアである情報処理プログラム360を実行するプロセッサはハードウェアである。
The
なお、情報処理プログラム360により実現される機能は、例えば半導体集積回路、より詳しくはASIC等で実現することも可能である。
The function realized by the
次に、第3の実施形態に係る情報処理装置310の作用について説明する。情報処理装置310は、姿勢推定処理とマップ生成処理と最適化処理と表示制御処理とを実行する。姿勢推定処理とマップ生成処理と最適化処理とについては、第1又は第2の実施形態と同様である。以下、図19に示す表示制御処理について詳述する。
Next, the operation of the
<表示制御処理>
表示制御処理を実行することを表す指示信号を受け付けると、情報処理装置310は、図19に示す表示制御処理を実行する。
<Display control processing>
Upon receiving the instruction signal indicating that the display control process is to be executed, the
ステップS500において、初期位置推定部319は、データ記憶部15に格納されたマップ情報を取得する。
In step S500, the initial
ステップS502において、画像取得部16は、カメラ12によって撮像された初期の画像を取得する。次に、画像取得部16は、カメラ12によって撮像された画像をグレースケール画像へ変換する。そして、画像取得部16は、グレースケール画像を出力する。
In step S502, the
ステップS504において、特徴点抽出部18は、上記ステップS502で出力されたグレースケール画像から、特徴点を抽出する。そして、特徴点抽出部18は、各特徴点に対して、特徴量を計算する。
In step S504, the feature
ステップS506において、初期位置推定部319は、上記ステップS504で抽出された特徴点及び特徴点に対応する特徴量と、上記ステップS500で取得されたマップ情報とに基づき、カメラ12の初期の位置及び初期の姿勢を推定する。
In step S506, the initial
ステップS508において、画像取得部16は、カメラ12によって撮像された画像を取得する。次に、画像取得部16は、カメラ12によって撮像された画像をグレースケール画像へ変換する。そして、画像取得部16は、グレースケール画像を出力する。
In step S508, the
ステップS510において、指標検出部324は、上記ステップS508で出力されたグレースケール画像に、指標が含まれているか否かを判定する。グレースケール画像に指標が含まれている場合には、ステップS512へ進む。一方、グレースケール画像に指標が含まれていない場合には、ステップS514へ進む。
In step S510, the
ステップS512において、姿勢推定部320は、指標を含むグレースケール画像に基づいて、指標に対するカメラ12の位置及び姿勢を推定する。
In step S512, the
ステップS514において、特徴点抽出部18は、上記ステップS508で出力されたグレースケール画像から、特徴点を抽出する。そして、特徴点抽出部18は、各特徴点に対して、特徴量を計算する。
In step S514, the feature
ステップS516において、姿勢推定部320は、上記ステップS514で抽出された特徴点及び特徴点に対応する特徴量に基づいて、カメラ12の位置及び姿勢を推定する。
In step S516, the
ステップS518において、表示制御部325は、上記ステップS516で推定されたカメラ12の位置及び姿勢に基づいて、予め設定された対象物が表示装置326に重畳表示されるように、表示装置326を制御する。
In step S518, the display control unit 325 controls the
ステップS520において、表示制御部325は、表示制御処理の停止信号を受け付けたか否かを判定する。表示制御処理の停止信号を受け付けた場合には、表示制御処理を終了する。表示制御処理の停止信号を受け付けていない場合には、ステップS508へ戻る。 In step S520, the display control unit 325 determines whether or not the stop signal of the display control process has been received. When the stop signal of the display control process is received, the display control process is terminated. If the stop signal of the display control process is not received, the process returns to step S508.
以上説明したように、第3の実施形態では、情報処理装置310は、推定されたカメラの位置及び姿勢に応じて、対象物が表示装置に重畳表示されるように、表示装置を制御する。また、指標が検出される毎に、キーフレーム画像の各々が撮像されたときのカメラの位置及び姿勢の各々の最適化が行われることにより、高頻度で最適化が行われる。これにより、精度よく推定されたカメラの位置及び姿勢に応じて、表示画面の適切な箇所へ対象物を表示させることができる。
As described above, in the third embodiment, the
<第4の実施形態>
次に、第4の実施形態について説明する。第4の実施形態では、カメラによって撮像された画像から、前回検出された指標と対応する指標が検出された場合に、キーフレーム画像におけるカメラの位置及び姿勢を推定する点が第1〜第3の実施形態と異なる。
<Fourth Embodiment>
Next, a fourth embodiment will be described. In the fourth embodiment, the first to third points are to estimate the position and orientation of the camera in the keyframe image when the index corresponding to the previously detected index is detected from the image captured by the camera. It is different from the embodiment of.
第1の実施形態では、複数の指標間の相対的な位置及び姿勢が既知である必要がある。第4の実施形態では、複数の指標間の相対的な位置及び姿勢が既知である必要はない。 In the first embodiment, the relative positions and orientations between the plurality of indicators need to be known. In the fourth embodiment, the relative positions and orientations between the indicators need not be known.
図20に、第4の実施形態の情報処理装置410の構成例を示す。第4の実施形態の情報処理装置410は、図20に示されるように、カメラ12と、制御部414とを備える。
FIG. 20 shows a configuration example of the information processing device 410 of the fourth embodiment. As shown in FIG. 20, the information processing apparatus 410 of the fourth embodiment includes a
制御部414は、データ記憶部15と、画像取得部16と、特徴点抽出部18と、姿勢推定部420と、マップ生成部22と、指標検出部424と、最適化部426と、調整部28とを備える。
The
[姿勢推定処理] [Posture estimation process]
指標検出部424は、更に、画像取得部16によって出力されたグレースケール画像に、指標が含まれているか否かを検出する。
The
姿勢推定部420は、特徴点抽出部18により抽出された特徴点及び特徴点に対応する特徴量に基づいて、カメラ12の位置及び姿勢を推定する。また、姿勢推定部420は、更に、指標検出部424によって指標が検出された場合には、指標を含むグレースケール画像に基づいて、指標に対するカメラ12の位置及び姿勢を推定する。
The
そして、姿勢推定部420は、指標検出部424によって指標が検出された場合には、指標を含むグレースケール画像をキーフレーム画像としてデータ記憶部15へ格納する。なお、指標が検出された場合には、指標を含むグレースケール画像がキーフレーム画像としてデータ記憶部15へ格納されるが、データ記憶部15へキーフレーム画像として格納される画像には、指標が必ず含まれているわけではない。例えば、第1の実施形態と同様に、所定の条件を満たしたキーフレーム画像も同様にデータ記憶部15へ格納される。
Then, when the index is detected by the
また、姿勢推定部420は、キーフレーム画像と共に、指標に対するカメラ12の位置及び姿勢をデータ記憶部15へ格納する。なお、姿勢推定部420は、キーフレーム画像を格納する際に、キーフレーム画像と共に、指標の識別情報を表す指標IDをデータ記憶部15へ格納する。例えば、キーフレーム画像中の指標領域画像を、指標IDとすることができる。また、姿勢推定部420は、連続するフレームで指標IDが同一の指標が検出された場合には、画像取得部16によって出力されたグレースケール画像についてキーフレーム画像として格納しない。
Further, the
また、姿勢推定部420は、指標を含むグレースケール画像を新たなキーフレーム画像として格納する際に、データ記憶部15に既に格納されたキーフレーム画像に含まれる指標と同一であるか否かを判定する。具体的には、新たなキーフレーム画像に含まれている指標領域画像と、データ記憶部15に格納された指標IDとが同一であるか否かを判定する。
Further, when the
最適化部426は、新たなキーフレーム画像に含まれる指標領域画像がデータ記憶部15に格納されている指標IDと同一であると判定された場合、各キーフレーム画像が撮像されたときのカメラ12の位置及び姿勢に基づき、ループを形成する。具体的には、最適化部426は、新たなキーフレーム画像を撮像したときのカメラ12の位置及び姿勢と、データ記憶部15に既に格納された過去のキーフレーム画像が撮像されたときのカメラ12の位置及び姿勢との間にエッジを形成しループを形成する。
When the
例えば、図21に示されるように、新たなキーフレーム画像から指標1が検出された場合、指標1に対するカメラ12の位置及び姿勢X1が推定される。また、既にデータ記憶部15に格納されている過去のキーフレーム画像からは指標1が検出されており、指標1に対するカメラ12の位置及び姿勢X2が推定されている。
For example, as shown in FIG. 21, when the
この場合、指標1に対するカメラ12の位置及び姿勢X1と、各キーフレーム画像が撮像されたときのカメラ12の位置及び姿勢bと、指標1に対するカメラ12の位置及び姿勢X2とからループが形成される。これにより、上記参考文献8に記載のPose Graph最適化を行うことが可能となる。
In this case, a loop is formed from the position and orientation X1 of the
従って、最適化部426は、上記参考文献8に記載のPose Graph最適化により、既にデータ記憶部15に格納されている過去のキーフレーム画像におけるカメラ12の位置及び姿勢の各々を補正する。
Therefore, the
情報処理装置410の制御部414は、例えば、図22に示すコンピュータ50で実現することができる。コンピュータ50の記憶媒体としての記憶部53には、コンピュータ50を情報処理装置410の制御部414として機能させるための情報処理プログラム460が記憶されている。情報処理プログラム460は、画像取得プロセス62と、特徴点抽出プロセス63と、姿勢推定プロセス464と、マップ生成プロセス65と、指標検出プロセス466と、最適化プロセス467と、調整プロセス68とを有する。また、記憶部53は、データ記憶部15を構成する情報が記憶されるデータ記憶領域69を有する。
The
CPU51は、情報処理プログラム460を記憶部53から読み出してメモリ52に展開し、情報処理プログラム460が有するプロセスを順次実行する。CPU51は、画像取得プロセス62を実行することで、図20に示す画像取得部16として動作する。また、CPU51は、特徴点抽出プロセス63を実行することで、図20に示す特徴点抽出部18として動作する。また、CPU51は、姿勢推定プロセス464を実行することで、図20に示す姿勢推定部420として動作する。また、CPU51は、マップ生成プロセス65を実行することで、図20に示すマップ生成部22として動作する。また、CPU51は、指標検出プロセス466を実行することで、図20に示す指標検出部424として動作する。また、CPU51は、最適化プロセス467を実行することで、図20に示す最適化部426として動作する。また、CPU51は、調整プロセス68を実行することで、図20に示す調整部28として動作する。また、CPU51は、データ記憶領域69から情報を読み出して、データ記憶部15をメモリ52に展開する。これにより、情報処理プログラム460を実行したコンピュータ50が、情報処理装置410の制御部414として機能することになる。そのため、ソフトウェアである情報処理プログラム460を実行するプロセッサはハードウェアである。
The
なお、情報処理プログラム460により実現される機能は、例えば半導体集積回路、より詳しくはASIC等で実現することも可能である。 The function realized by the information processing program 460 can also be realized by, for example, a semiconductor integrated circuit, more specifically, an ASIC or the like.
次に、第4の実施形態に係る情報処理装置410の作用について説明する。情報処理装置410は、図23に示す姿勢推定処理を実行する。また、情報処理装置410は、図24に示す最適化処理を実行する。 Next, the operation of the information processing apparatus 410 according to the fourth embodiment will be described. The information processing device 410 executes the posture estimation process shown in FIG. Further, the information processing device 410 executes the optimization process shown in FIG. 24.
<姿勢推定処理>
ステップS100〜ステップS104は第1の実施形態と同様に実行される。
<Posture estimation process>
Steps S100 to S104 are executed in the same manner as in the first embodiment.
ステップS606において、指標検出部424は、ステップS100で出力されたグレースケール画像に、指標が含まれているか否かを検出する。グレースケール画像に指標が含まれていると検出された場合には、ステップS607へ進む。一方、グレースケール画像に指標が含まれていないと検出された場合には、ステップS100へ進む。
In step S606, the
ステップS607において、姿勢推定部420は、指標を含むグレースケール画像に基づいて、指標に対するカメラ12の位置及び姿勢を推定する。
In step S607, the
ステップS608において、姿勢推定部420は、上記ステップS100で出力されたグレースケール画像をキーフレーム画像としてデータ記憶部15へ格納する。また、姿勢推定部420は、キーフレーム画像と共に、上記ステップS607で推定された指標に対するカメラ12の位置及び姿勢をデータ記憶部15へ格納する。また、姿勢推定部420は、キーフレーム画像を格納する際に、指標の識別情報を表す指標IDをデータ記憶部15へ格納する。
In step S608, the
<最適化処理>
ステップS204〜ステップS206は、第1の実施形態と同様に実行される。
<Optimization process>
Steps S204 to S206 are executed in the same manner as in the first embodiment.
ステップS700において、姿勢推定部420は、指標を含むグレースケール画像を新たなキーフレーム画像として格納する際に、新たなキーフレーム画像に含まれている指標領域画像と、データ記憶部15に格納された指標IDとが同一であるか否かを判定する。新たなキーフレーム画像に含まれている指標領域画像と同一である指標IDがデータ記憶部15に格納されている場合には、ステップS702へ進む。一方、新たなキーフレーム画像に含まれている指標領域画像と同一である指標IDがデータ記憶部15に格納されている場合には、ステップS700の処理を繰り返す。
In step S700, when the
ステップS702において、最適化部426は、新たなキーフレーム画像におけるカメラ12の位置及び姿勢と、データ記憶部15に既に格納された過去のキーフレーム画像におけるカメラ12の位置及び姿勢との間にエッジを形成しループを形成する。そして、最適化部426は、上記参考文献8に記載のPose Graph最適化により、既にデータ記憶部15に格納されている過去のキーフレーム画像におけるカメラ12の位置及び姿勢の各々を補正する。
In step S702, the
なお、上記では、各プログラムが記憶部に予め記憶(インストール)されている態様を説明したが、これに限定されない。開示の技術に係るプログラムは、CD−ROM、DVD−ROM、USBメモリ等の記録媒体に記録された形態で提供することも可能である。 In the above description, the mode in which each program is stored (installed) in the storage unit in advance has been described, but the present invention is not limited to this. The program according to the disclosed technology can also be provided in a form recorded on a recording medium such as a CD-ROM, a DVD-ROM, or a USB memory.
本明細書に記載された全ての文献、特許出願及び技術規格は、個々の文献、特許出願及び技術規格が参照により取り込まれることが具体的かつ個々に記された場合と同程度に、本明細書中に参照により取り込まれる。 All documents, patent applications and technical standards described herein are to the same extent as if the individual documents, patent applications and technical standards were specifically and individually stated to be incorporated by reference. Incorporated by reference in the document.
次に、上記各実施形態の変形例を説明する。 Next, a modification of each of the above embodiments will be described.
上記第1及び第2の実施形態では、姿勢推定部20は、画像から抽出された特徴点及び特徴点に対応する特徴量と、データ記憶部15に格納されたマップ情報とに基づいて、カメラ12の位置及び姿勢を推定する場合を例に説明したがこれに限定されるものではない。例えば、指標検出部によって、グレースケール画像内に指標が検出された場合には、指標に対するカメラ12の位置及び姿勢を推定するようにしてもよい。
In the first and second embodiments, the
また、上記各実施形態では、データ記憶部15に格納されている全てのキーフレームに対して、Pose Graph最適化とバンドル調整を行う場合を例に説明したがこれに限定されるものではない。例えば、バンドル調整が実施されていないキーフレームに対してPose Graph最適化を行ってもよい。また、Pose Graph最適化が行われていないキーフレームに対してバンドル調整を行ってもよい。Pose Graph最適化の実施とバンドル調整の実施との組み合わせについては、適宜変更してもよい。
Further, in each of the above embodiments, the case where Pose Graph optimization and bundle adjustment are performed for all the keyframes stored in the
また、上記各実施形態では、キーフレーム画像から推定されたカメラの位置及び姿勢と、画像から指標が検出された際の指標に対する位置及び姿勢とでループを形成する場合について説明したが、これに限定されない。例えば、画像取得部によって前回までに逐次取得された画像の各々から推定されたカメラの位置及び姿勢と、画像から指標が検出された際の指標に対する位置及び姿勢とでループを形成し、最適化を実行してもよい。この場合、キーフレーム画像から推定された位置及び姿勢だけでなく、取得された画像の各々について推定された位置及び姿勢が最適化されるため、カメラの移動軌跡を精度良く推定することができる。なお、この場合、画像取得部で画像が取得される都度、画像に指標が含まれるか否かを判定するようにすればよい。 Further, in each of the above embodiments, a case where a loop is formed by the position and orientation of the camera estimated from the keyframe image and the position and orientation with respect to the index when the index is detected from the image has been described. Not limited. For example, a loop is formed and optimized by the position and orientation of the camera estimated from each of the images sequentially acquired by the image acquisition unit up to the previous time and the position and orientation with respect to the index when the index is detected from the image. May be executed. In this case, not only the position and orientation estimated from the keyframe image but also the estimated position and orientation for each of the acquired images are optimized, so that the movement trajectory of the camera can be estimated accurately. In this case, each time the image acquisition unit acquires an image, it may be determined whether or not the image includes an index.
また、上記第3の実施形態では、表示装置に対象物を表示される場合を例に説明したが、例えば、工場又はプラント等の大規模な環境を撮影した画像に対して、付加情報を重畳表示させるように表示装置を制御し、作業者の作業支援を行うようにしてもよい。 Further, in the third embodiment described above, the case where the object is displayed on the display device has been described as an example, but additional information is superimposed on an image of a large-scale environment such as a factory or a plant. The display device may be controlled so as to display, and the work support of the worker may be provided.
以上の各実施形態に関し、更に以下の付記を開示する。 The following additional notes will be further disclosed with respect to each of the above embodiments.
(付記1)
撮影位置が変化し得る撮像装置によって撮像された画像を取得する画像取得部と、
前記画像取得部によって取得された前記画像に基づいて、前記撮像装置の位置及び姿勢を推定し、前記画像取得部によって取得された前記画像から予め定められた指標が検出された場合に、前記指標に対する前記撮像装置の位置及び姿勢を推定する姿勢推定部と、
前記画像取得部によって取得された前記画像から前記指標が検出された場合に、前回までに取得された前記画像の各々に基づいて推定された前記撮像装置の位置の各々と、前記姿勢推定部によって推定された前記指標に対する前記撮像装置の位置とから形成されるループに基づいて、前記画像の各々が撮像されたときの前記撮像装置の位置及び姿勢の各々を補正する推定部と、
を含む情報処理装置。
(Appendix 1)
An image acquisition unit that acquires an image captured by an image pickup device whose shooting position can change, and an image acquisition unit.
The position and orientation of the imaging device are estimated based on the image acquired by the image acquisition unit, and when a predetermined index is detected from the image acquired by the image acquisition unit, the index A posture estimation unit that estimates the position and posture of the image pickup device with respect to the image, and a posture estimation unit.
When the index is detected from the image acquired by the image acquisition unit, each of the positions of the imaging device estimated based on each of the images acquired up to the previous time and the posture estimation unit An estimation unit that corrects each of the position and orientation of the image pickup device when each of the images is imaged, based on a loop formed from the position of the image pickup device with respect to the estimated index.
Information processing equipment including.
(付記2)
前記推定部は、前記画像取得部により取得された画像のうち、所定の条件を満たすキーフレーム画像の各々が撮像されたときの前記撮像装置の位置及び姿勢の各々の推定結果に基づいて、前記キーフレーム画像の特徴点の各々に対応する位置の3次元座標を表すマップ点を生成する、
付記1に記載の情報処理装置。
(Appendix 2)
The estimation unit is based on the estimation results of the position and orientation of the imaging device when each of the keyframe images satisfying a predetermined condition is captured among the images acquired by the image acquisition unit. Generates map points that represent the 3D coordinates of the positions corresponding to each of the feature points in the keyframe image.
The information processing device according to
(付記3)
前記推定部は、前記画像取得部により取得された画像のうち、所定の条件を満たすキーフレーム画像の各々が撮像されたときの前記撮像装置の位置及び姿勢の各々の推定結果に基づいて、記憶部に格納された、前記キーフレーム画像の各々が撮像されたときの前記撮像装置の位置及び姿勢の各々を補正する、
付記1又は付記2に記載の情報処理装置。
(Appendix 3)
The estimation unit stores the images acquired by the image acquisition unit based on the estimation results of the position and orientation of the image pickup device when each of the key frame images satisfying a predetermined condition is captured. Correct each of the position and orientation of the image pickup device when each of the key frame images stored in the unit is imaged.
The information processing device according to
(付記4)
複数の前記指標の各々についての、前記指標間の相対的な位置及び姿勢は既知である、
付記1〜付記3の何れか1項に記載の情報処理装置。
(Appendix 4)
For each of the plurality of indicators, the relative positions and orientations between the indicators are known.
The information processing device according to any one of
(付記5)
前記画像取得部によって取得された前記画像から前記指標が検出された場合に、前記指標の検出結果に応じて、前記指標を含む前記画像の信頼度を算出する信頼度算出部を更に含み、
前記推定部は、前記信頼度算出部によって算出された前記信頼度が予め設定された閾値より大きい場合に、前記画像の各々が撮像されたときの前記撮像装置の位置及び姿勢の各々を補正する、
付記1〜付記4の何れか1項に記載の情報処理装置。
(Appendix 5)
When the index is detected from the image acquired by the image acquisition unit, the reliability calculation unit for calculating the reliability of the image including the index is further included according to the detection result of the index.
When the reliability calculated by the reliability calculation unit is larger than a preset threshold value, the estimation unit corrects each of the position and orientation of the image pickup device when each of the images is imaged. ,
The information processing device according to any one of
(付記6)
前記姿勢推定部によって推定された前記撮像装置の位置及び姿勢に応じて、予め設定された対象物が表示装置に重畳表示されるように、前記表示装置を制御する表示制御部を更に含む、
付記1〜付記5の何れか1項に記載の情報処理装置。
(Appendix 6)
A display control unit that controls the display device is further included so that a preset object is superimposed and displayed on the display device according to the position and orientation of the image pickup device estimated by the posture estimation unit.
The information processing device according to any one of
(付記7)
前記推定部は、前記画像取得部によって取得された前記画像から、前回検出された前記指標と対応する前記指標が検出された場合に、前記画像の各々が撮像されたときの前記撮像装置の位置及び姿勢の各々を補正する、
付記1〜付記6の何れか1項に記載の情報処理装置。
(Appendix 7)
The estimation unit is the position of the image pickup apparatus when each of the images is imaged when the index corresponding to the previously detected index is detected from the image acquired by the image acquisition unit. And correct each of the postures,
The information processing device according to any one of
(付記8)
撮影位置が移動に伴って変わる撮像装置によって撮像された画像を取得し、
取得された前記画像に基づいて、前記撮像装置の位置及び姿勢を推定し、取得された前記画像から予め定められた指標が検出された場合に、前記指標に対する前記撮像装置の位置及び姿勢を推定し、
取得された前記画像から前記指標が検出された場合に、前回までに取得された前記画像の各々に基づいて推定された前記撮像装置の位置の各々と、推定された前記指標に対する前記撮像装置の位置とから形成されるループに基づいて、前記画像の各々が撮像されたときの前記撮像装置の位置及び姿勢の各々を補正する、
処理をコンピュータに実行させるための情報処理プログラム。
(Appendix 8)
Acquires an image captured by an imaging device whose shooting position changes as it moves,
The position and orientation of the imaging device are estimated based on the acquired image, and when a predetermined index is detected from the acquired image, the position and orientation of the imaging device with respect to the index are estimated. death,
When the index is detected from the acquired image, each of the positions of the imaging device estimated based on each of the images acquired up to the previous time, and the position of the imaging device with respect to the estimated index. Based on the loop formed from the position, each of the position and orientation of the image pickup device when each of the images is imaged is corrected.
An information processing program that allows a computer to perform processing.
(付記9)
取得された画像のうち、所定の条件を満たすキーフレーム画像の各々が撮像されたときの前記撮像装置の位置及び姿勢の各々の推定結果に基づいて、前記キーフレーム画像の特徴点の各々に対応する位置の3次元座標を表すマップ点を生成する、
付記8に記載の情報処理プログラム。
(Appendix 9)
Among the acquired images, each of the feature points of the keyframe image corresponds to each of the feature points of the keyframe image based on the estimation results of the position and the posture of the image pickup device when each of the keyframe images satisfying a predetermined condition is captured. Generate a map point that represents the 3D coordinates of the position to be
The information processing program according to Appendix 8.
(付記10)
取得された画像のうち、所定の条件を満たすキーフレーム画像の各々が撮像されたときの前記撮像装置の位置及び姿勢の各々の推定結果に基づいて、記憶部に格納された、前記キーフレーム画像の各々が撮像されたときの前記撮像装置の位置及び姿勢の各々を補正する、
付記8又は付記9に記載の情報処理プログラム。
(Appendix 10)
Among the acquired images, the keyframe image stored in the storage unit based on the estimation results of the position and orientation of the image pickup device when each of the keyframe images satisfying a predetermined condition is captured. Correct each of the position and orientation of the image pickup device when each of the images is taken.
The information processing program according to Appendix 8 or Appendix 9.
(付記11)
複数の前記指標の各々についての、前記指標間の相対的な位置及び姿勢は既知である、
付記8〜付記10の何れか1項に記載の情報処理プログラム。
(Appendix 11)
For each of the plurality of indicators, the relative positions and orientations between the indicators are known.
The information processing program according to any one of Supplementary note 8 to Supplementary note 10.
(付記12)
取得された前記画像から前記指標が検出された場合に、前記指標の検出結果に応じて、前記指標を含む前記画像の信頼度を更に算出し、
算出された前記信頼度が予め設定された閾値より大きい場合に、前記画像の各々が撮像されたときの前記撮像装置の位置及び姿勢の各々を補正する、
付記8〜付記11の何れか1項に記載の情報処理プログラム。
(Appendix 12)
When the index is detected from the acquired image, the reliability of the image including the index is further calculated according to the detection result of the index.
When the calculated reliability is greater than a preset threshold value, each of the positions and orientations of the imaging device when each of the images is imaged is corrected.
The information processing program according to any one of Supplementary note 8 to Supplementary note 11.
(付記13)
推定された前記撮像装置の位置及び姿勢に応じて、予め設定された対象物が表示装置に重畳表示されるように、前記表示装置を制御する、
付記8〜付記12の何れか1項に記載の情報処理プログラム。
(Appendix 13)
The display device is controlled so that a preset object is superimposed and displayed on the display device according to the estimated position and orientation of the image pickup device.
The information processing program according to any one of Supplementary note 8 to
(付記14)
取得された前記画像から、前回検出された前記指標と対応する前記指標が検出された場合に、前記画像の各々が撮像されたときの前記撮像装置の位置及び姿勢の各々を補正する、
付記8〜付記13の何れか1項に記載の情報処理プログラム。
(Appendix 14)
When the index corresponding to the previously detected index is detected from the acquired image, the position and posture of the image pickup device when each of the images is imaged is corrected.
The information processing program according to any one of Supplementary note 8 to Supplementary note 13.
(付記15)
撮影位置が移動に伴って変わる撮像装置によって撮像された画像を取得し、
取得された前記画像に基づいて、前記撮像装置の位置及び姿勢を推定し、取得された前記画像から予め定められた指標が検出された場合に、前記指標に対する前記撮像装置の位置及び姿勢を推定し、
取得された前記画像から前記指標が検出された場合に、前回までに取得された前記画像の各々に基づいて推定された前記撮像装置の位置の各々と、推定された前記指標に対する前記撮像装置の位置とから形成されるループに基づいて、前記画像の各々が撮像されたときの前記撮像装置の位置及び姿勢の各々を補正する、
処理をコンピュータに実行させるための情報処理方法。
(Appendix 15)
Acquires an image captured by an imaging device whose shooting position changes as it moves,
The position and orientation of the imaging device are estimated based on the acquired image, and when a predetermined index is detected from the acquired image, the position and orientation of the imaging device with respect to the index are estimated. death,
When the index is detected from the acquired image, each of the positions of the imaging device estimated based on each of the images acquired up to the previous time, and the position of the imaging device with respect to the estimated index. Based on the loop formed from the position, each of the position and orientation of the image pickup device when each of the images is imaged is corrected.
An information processing method for causing a computer to perform processing.
(付記16)
取得された画像のうち、所定の条件を満たすキーフレーム画像の各々が撮像されたときの前記撮像装置の位置及び姿勢の各々の推定結果に基づいて、前記キーフレーム画像の特徴点の各々に対応する位置の3次元座標を表すマップ点を生成する、
付記15に記載の情報処理方法。
(Appendix 16)
Among the acquired images, each of the feature points of the keyframe image corresponds to each of the feature points of the keyframe image based on the estimation results of the position and the posture of the image pickup device when each of the keyframe images satisfying a predetermined condition is captured. Generate a map point that represents the 3D coordinates of the position to be
The information processing method according to
(付記17)
取得された画像のうち、所定の条件を満たすキーフレーム画像の各々が撮像されたときの前記撮像装置の位置及び姿勢の各々の推定結果に基づいて、記憶部に格納された、前記キーフレーム画像の各々が撮像されたときの前記撮像装置の位置及び姿勢の各々を補正する、
付記15又は付記16に記載の情報処理方法。
(Appendix 17)
Among the acquired images, the keyframe image stored in the storage unit based on the estimation results of the position and orientation of the image pickup device when each of the keyframe images satisfying a predetermined condition is captured. Correct each of the position and orientation of the image pickup device when each of the images is taken.
The information processing method according to
(付記18)
複数の前記指標の各々についての、前記指標間の相対的な位置及び姿勢は既知である、
付記15〜付記17の何れか1項に記載の情報処理方法。
(Appendix 18)
For each of the plurality of indicators, the relative positions and orientations between the indicators are known.
The information processing method according to any one of
(付記19)
取得された前記画像から前記指標が検出された場合に、前記指標の検出結果に応じて、前記指標を含む前記画像の信頼度を更に算出し、
算出された前記信頼度が予め設定された閾値より大きい場合に、前記画像の各々が撮像されたときの前記撮像装置の位置及び姿勢の各々を補正する、
付記15〜付記18の何れか1項に記載の情報処理方法。
(Appendix 19)
When the index is detected from the acquired image, the reliability of the image including the index is further calculated according to the detection result of the index.
When the calculated reliability is greater than a preset threshold value, each of the positions and orientations of the imaging device when each of the images is imaged is corrected.
The information processing method according to any one of
(付記20)
撮影位置が移動に伴って変わる撮像装置によって撮像された画像を取得し、
取得された前記画像に基づいて、前記撮像装置の位置及び姿勢を推定し、取得された前記画像から予め定められた指標が検出された場合に、前記指標に対する前記撮像装置の位置及び姿勢を推定し、
取得された前記画像から前記指標が検出された場合に、前回までに取得された前記画像の各々に基づいて推定された前記撮像装置の位置の各々と、推定された前記指標に対する前記撮像装置の位置とから形成されるループに基づいて、前記画像の各々が撮像されたときの前記撮像装置の位置及び姿勢の各々を補正する、
処理をコンピュータに実行させるための情報処理プログラムを記憶した記憶媒体。
(Appendix 20)
Acquires an image captured by an imaging device whose shooting position changes as it moves,
The position and orientation of the imaging device are estimated based on the acquired image, and when a predetermined index is detected from the acquired image, the position and orientation of the imaging device with respect to the index are estimated. death,
When the index is detected from the acquired image, each of the positions of the imaging device estimated based on each of the images acquired up to the previous time, and the position of the imaging device with respect to the estimated index. Based on the loop formed from the position, each of the position and orientation of the image pickup device when each of the images is imaged is corrected.
A storage medium that stores an information processing program for causing a computer to execute processing.
1,1A,1B 指標
10,210,310,410 情報処理装置
12 カメラ
14,214,314,414 制御部
15 データ記憶部
16 画像取得部
18 特徴点抽出部
20,320,420 姿勢推定部
22 マップ生成部
24,324,424 指標検出部
26,226,426 最適化部
28 調整部
225 信頼度算出部
319 初期位置推定部
325 表示制御部
326 表示装置
50 コンピュータ
51 CPU
53 記憶部
59 記録媒体
60,260,360,460 情報処理プログラム
M マップ点
1,1A, 1B Index 10,210,310,410
53
Claims (9)
前記画像取得部によって取得された前記画像に基づいて、前記撮像装置の位置である第1位置及び姿勢を推定し、前記画像取得部によって取得された前記画像から予め定められた指標が検出された場合に、前記指標に対する前記撮像装置の位置である第2位置及び姿勢を推定する姿勢推定部と、
前記画像取得部によって取得された前記画像から前記指標が検出された場合に、前回までに取得された前記画像の各々に基づいて推定された前記撮像装置の前記第1位置の各々と前記第2位置とから形成されるループに基づいて、前記画像の各々が撮像されたときの前記撮像装置の前記第1位置及び姿勢の各々を補正する推定部と、
を含む情報処理装置。 An image acquisition unit that acquires an image captured by an image pickup device whose shooting position can change, and an image acquisition unit.
Based on the image acquired by the image acquisition unit, the first position and posture, which are the positions of the image pickup device, are estimated, and a predetermined index is detected from the image acquired by the image acquisition unit. In this case, a posture estimation unit that estimates the second position and the posture, which are the positions of the image pickup device with respect to the index, and the posture estimation unit.
When the index is detected from the image acquired by the image acquisition unit, each of the first positions of the image pickup apparatus and the second position estimated based on each of the images acquired up to the previous time. An estimation unit that corrects each of the first position and the posture of the image pickup device when each of the images is imaged based on the loop formed from the position.
Information processing equipment including.
請求項1に記載の情報処理装置。 The estimation unit is based on the estimation results of the first position and the posture of the imaging device when each of the keyframe images satisfying a predetermined condition is captured among the images acquired by the image acquisition unit. To generate map points representing the three-dimensional coordinates of the positions corresponding to each of the feature points of the keyframe image.
The information processing device according to claim 1.
請求項1又は請求項2に記載の情報処理装置。 The estimation unit is based on the estimation results of the first position and the posture of the imaging device when each of the keyframe images satisfying a predetermined condition is captured among the images acquired by the image acquisition unit. Then, each of the first position and the posture of the image pickup device when each of the key frame images stored in the storage unit is imaged is corrected.
The information processing device according to claim 1 or 2.
請求項1〜請求項3の何れか1項に記載の情報処理装置。 For each of the plurality of indicators, the relative positions and orientations between the indicators are known.
The information processing device according to any one of claims 1 to 3.
前記推定部は、前記信頼度算出部によって算出された前記信頼度が予め設定された閾値より大きい場合に、前記画像の各々が撮像されたときの前記撮像装置の前記第1位置及び姿勢の各々を補正する、
請求項1〜請求項4の何れか1項に記載の情報処理装置。 When the index is detected from the image acquired by the image acquisition unit, the reliability calculation unit for calculating the reliability of the image including the index is further included according to the detection result of the index.
In the estimation unit, when the reliability calculated by the reliability calculation unit is larger than a preset threshold value, each of the first position and the posture of the image pickup device when each of the images is imaged. To correct,
The information processing device according to any one of claims 1 to 4.
請求項1〜請求項5の何れか1項に記載の情報処理装置。 A display control unit that controls the display device is further included so that a preset object is superimposed and displayed on the display device according to the position and orientation of the image pickup device estimated by the posture estimation unit.
The information processing device according to any one of claims 1 to 5.
請求項1〜請求項6の何れか1項に記載の情報処理装置。 The estimation unit, from said image acquired by the image acquisition unit, if the index corresponding to the index which is previously detected is detected, the said imaging device when each of the image is captured Correct each of the first position and posture,
The information processing device according to any one of claims 1 to 6.
取得された前記画像に基づいて、前記撮像装置の位置である第1位置及び姿勢を推定し、取得された前記画像から予め定められた指標が検出された場合に、前記指標に対する前記撮像装置の位置である第2位置及び姿勢を推定し、
取得された前記画像から前記指標が検出された場合に、前回までに取得された前記画像の各々に基づいて推定された前記撮像装置の前記第1位置の各々と前記第2位置とから形成されるループに基づいて、前記画像の各々が撮像されたときの前記撮像装置の前記第1位置及び姿勢の各々を補正する、
処理をコンピュータに実行させるための情報処理プログラム。 Acquires an image captured by an imaging device whose shooting position changes as it moves,
Based on the acquired image, the first position and posture, which are the positions of the image pickup device, are estimated, and when a predetermined index is detected from the acquired image, the image pickup device with respect to the index is used. Estimate the second position and posture, which are the positions,
When the index is detected from the acquired image, it is formed from each of the first position and the second position of the imaging device estimated based on each of the images acquired up to the previous time. Based on the loop, each of the first position and the posture of the imaging device when each of the images is captured is corrected.
An information processing program that allows a computer to perform processing.
取得された前記画像に基づいて、前記撮像装置の位置である第1位置及び姿勢を推定し、取得された前記画像から予め定められた指標が検出された場合に、前記指標に対する前記撮像装置の位置である第2位置及び姿勢を推定し、
取得された前記画像から前記指標が検出された場合に、前回までに取得された前記画像の各々に基づいて推定された前記撮像装置の前記第1位置の各々と前記第2位置とから形成されるループに基づいて、前記画像の各々が撮像されたときの前記撮像装置の前記第1位置及び姿勢の各々を補正する、
処理をコンピュータに実行させる情報処理方法。 Acquires an image captured by an imaging device whose shooting position changes as it moves,
Based on the acquired image, the first position and posture, which are the positions of the image pickup device, are estimated, and when a predetermined index is detected from the acquired image, the image pickup device with respect to the index is used. Estimate the second position and posture, which are the positions,
When the index is detected from the acquired image, it is formed from each of the first position and the second position of the imaging device estimated based on each of the images acquired up to the previous time. Based on the loop, each of the first position and the posture of the imaging device when each of the images is captured is corrected.
An information processing method that causes a computer to perform processing.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017072447A JP6922348B2 (en) | 2017-03-31 | 2017-03-31 | Information processing equipment, methods, and programs |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017072447A JP6922348B2 (en) | 2017-03-31 | 2017-03-31 | Information processing equipment, methods, and programs |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018173882A JP2018173882A (en) | 2018-11-08 |
JP6922348B2 true JP6922348B2 (en) | 2021-08-18 |
Family
ID=64107781
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017072447A Active JP6922348B2 (en) | 2017-03-31 | 2017-03-31 | Information processing equipment, methods, and programs |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6922348B2 (en) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111260779B (en) * | 2018-11-30 | 2022-12-27 | 华为技术有限公司 | Map construction method, device and system and storage medium |
JP7220591B2 (en) * | 2019-03-07 | 2023-02-10 | 三菱重工業株式会社 | Self-position estimation device, self-position estimation method and program |
CN112348899A (en) * | 2019-08-07 | 2021-02-09 | 虹软科技股份有限公司 | Calibration parameter obtaining method and device, processor and electronic equipment |
JP2024007754A (en) * | 2022-07-06 | 2024-01-19 | キヤノン株式会社 | Information processing system, information processing device, terminal device and control method of information processing system |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6237326B2 (en) * | 2014-02-25 | 2017-11-29 | 富士通株式会社 | Posture estimation apparatus, posture estimation method, and computer program for posture estimation |
JP6289317B2 (en) * | 2014-09-05 | 2018-03-07 | 三菱電機株式会社 | Modeled data calculation method and modeled data calculation device |
JP6338021B2 (en) * | 2015-07-31 | 2018-06-06 | 富士通株式会社 | Image processing apparatus, image processing method, and image processing program |
-
2017
- 2017-03-31 JP JP2017072447A patent/JP6922348B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2018173882A (en) | 2018-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10996062B2 (en) | Information processing device, data management device, data management system, method, and program | |
CN110568447B (en) | Visual positioning method, device and computer readable medium | |
JP7326720B2 (en) | Mobile position estimation system and mobile position estimation method | |
JP5832341B2 (en) | Movie processing apparatus, movie processing method, and movie processing program | |
JP5746477B2 (en) | Model generation device, three-dimensional measurement device, control method thereof, and program | |
JP6573354B2 (en) | Image processing apparatus, image processing method, and program | |
US11830216B2 (en) | Information processing apparatus, information processing method, and storage medium | |
US9208395B2 (en) | Position and orientation measurement apparatus, position and orientation measurement method, and storage medium | |
JP4889351B2 (en) | Image processing apparatus and processing method thereof | |
JP3735344B2 (en) | Calibration apparatus, calibration method, and calibration program | |
US9495750B2 (en) | Image processing apparatus, image processing method, and storage medium for position and orientation measurement of a measurement target object | |
JP6338021B2 (en) | Image processing apparatus, image processing method, and image processing program | |
US10438412B2 (en) | Techniques to facilitate accurate real and virtual object positioning in displayed scenes | |
JP2015532077A (en) | Method for determining the position and orientation of an apparatus associated with an imaging apparatus that captures at least one image | |
JP6922348B2 (en) | Information processing equipment, methods, and programs | |
CN112115980A (en) | Binocular vision odometer design method based on optical flow tracking and point line feature matching | |
JP7147753B2 (en) | Information processing device, information processing method, and program | |
JP6894707B2 (en) | Information processing device and its control method, program | |
JP4132068B2 (en) | Image processing apparatus, three-dimensional measuring apparatus, and program for image processing apparatus | |
JP5439277B2 (en) | Position / orientation measuring apparatus and position / orientation measuring program | |
JP6061770B2 (en) | Camera posture estimation apparatus and program thereof | |
JPWO2008032375A1 (en) | Image correction apparatus and method, and computer program | |
JP5530391B2 (en) | Camera pose estimation apparatus, camera pose estimation method, and camera pose estimation program | |
JP2006113832A (en) | Stereoscopic image processor and program | |
JP2010145219A (en) | Movement estimation device and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200115 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210226 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210309 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210510 |
|
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: 20210629 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210712 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6922348 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |