CN110880187B - 一种相机位置信息确定方法、装置、电子设备及存储介质 - Google Patents
一种相机位置信息确定方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN110880187B CN110880187B CN201910989767.4A CN201910989767A CN110880187B CN 110880187 B CN110880187 B CN 110880187B CN 201910989767 A CN201910989767 A CN 201910989767A CN 110880187 B CN110880187 B CN 110880187B
- Authority
- CN
- China
- Prior art keywords
- frame
- points
- feature point
- feature
- map
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/44—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
- G06V10/443—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/40—Scenes; Scene-specific elements in video content
- G06V20/46—Extracting features or characteristics from the video content, e.g. video fingerprints, representative shots or key frames
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Analysis (AREA)
Abstract
本公开关于一种相机位置信息确定方法、装置、电子设备及存储介质,方法包括:从视频流中确定满足相机位置初始化条件的第n帧,并进行相机位置初始化;对第n帧上的至少预设数量个特征点进行三角化,得到第n帧上的至少预设数量个地图点,并将第n帧标记为被三角化的特征点的关键视频帧;确定第n+1帧上的地图点的数量;在第n+1帧上的地图点的数量达到预设数量时,根据第n+1帧上预设数量个地图点的三维坐标和在第n+1帧中投影的二维坐标、第n+1帧的相机朝向信息,确定第n+1帧的相机位置信息。本公开既将近处的特征点的三维坐标作为地图点;也将远处的特征点的三维坐标作为地图点,利用相机采集到的信息,保持跟踪稳定性。
Description
技术领域
本公开涉及增强现实技术领域,尤其涉及一种相机位置信息确定方法、装置、电子设备及存储介质。
背景技术
增强现实技术可以将虚拟的物体合并到现实场景中,并能支持用户与其进行交互,它已经成为虚拟现实研究中的一个重要领域,也是人机界面技术发展的一个重要方向。在增强现实中,视觉惯性里程计是一种常用的相机跟踪方法,该方法通过计算并最大化物体位置和姿态坐标在视觉、惯性测量数据下的后验概率,给出位姿坐标的最优解,从而实时跟踪目标位置的技术。
对于一个常见场景,既有近处的特征点,也有远处的特征点。随着相机移动,近处的特征点容易获得较大视差,而远处的特征点较难获得较大的视差。在相关技术中,相机每移动一段距离,当前视频帧和上一视频关键帧相比,近处的特征点便获得足够视差,而远处的特征点没有足够的视差。因此相关技术很少计算远处的特征点的三维坐标作为地图点。当一个场景中远近点分布都充足时,相关技术提供的算法可以稳定运行,而当近点比例较少,或出现不稳定时,因为没有远点作为地图点,因此该算法容易跟踪失败。
发明内容
本公开提供一种相机位置信息确定方法、装置、电子设备及存储介质,以至少解决上述存在的技术问题。本公开的技术方案如下:
本申请第一方面提供一种相机位置信息确定方法,所述方法包括:
从视频流中确定满足相机位置初始化条件的第n帧,并进行相机位置初始化,所述相机位置初始化条件为第n帧上存在至少预设数量个特征点与所述视频流的第一帧上的特征点相匹配,且相匹配的特征点之间的视差均大于预设视差,其中,n为大于1且小于N的整数,N为所述视频流包括的视频帧的数量;
对所述第n帧上的所述至少预设数量个特征点进行三角化,得到所述第n帧上的至少预设数量个地图点,并将所述第n帧标记为被三角化的特征点的关键视频帧;
根据所述视频流中第n+1帧上的每个特征点与该特征点的上一关键视频帧上相应的特征点之间的视差是否大于所述预设视差,以及所述第n+1帧上是否可跟踪到所述第n帧上的地图点,确定所述第n+1帧上的地图点的数量;
在所述第n+1帧上的地图点的数量达到预设数量时,根据所述第n+1帧上预设数量个地图点的三维坐标和在所述第n+1帧中投影的二维坐标,以及,所述第n+1帧的相机朝向信息,确定所述第n+1帧的相机位置信息。
进一步地,根据第n+1帧上的每个特征点与该特征点的上一关键视频帧上相应的特征点之间的视差是否大于所述预设视差,以及所述第n+1帧上是否可跟踪到所述第n帧上的地图点,确定所述第n+1帧上的地图点的数量,包括:
针对所述第n+1帧上的每个特征点,在该特征点与该特征点的上一关键视频帧上相应的特征点之间的视差大于所述预设视差时,对该特征点进行三角化,以得到新的地图点;
将所述第n+1帧上的特征点与所述第n帧上的特征点进行匹配,并确定所述第n帧上与所述第n+1上相匹配的特征点是否是所述第n帧上的地图点,以得到所述第n+1帧上可跟踪到的地图点;
确定所述第n+1帧上的地图点的数量为所述第n+1帧上的新的地图点的数量与所述第n+1帧上可跟踪到的地图点的数量之和。
进一步地,针对所述第n+1帧上的每个特征点,在该特征点与该特征点的上一关键视频帧上相应的特征点之间的视差大于所述预设视差时,所述方法还包括:
将所述第n+1帧标记为该特征点的关键视频帧。
进一步地,在将所述第n+1帧上的特征点与所述第n帧上的特征点进行匹配之后,所述方法还包括:
将所述第n+1帧上与所述第n帧上的所有特征点均不匹配的特征点,确定为所述第n+1帧上新出现的特征点;
针对所述第n+1帧上新出现的特征点,将所述第n+1帧标记为该特征点的关键视频帧。
进一步地,在确定所述第n+1帧的相机位置信息之后,所述方法还包括:
将所述第n+1帧的相机位置信息发送给显示终端;
通过所述显示终端显示所述第n+1帧,并将虚拟物品投影在所述第n+1帧上。
本申请第二方面提供一种相机位置信息确定装置,所述装置包括:
相机位置初始化模块,用于从视频流中确定满足相机位置初始化条件的第n帧,并进行相机位置初始化,所述相机位置初始化条件为第n帧上存在至少预设数量个特征点与所述视频流的第一帧上的特征点相匹配,且相匹配的特征点之间的视差均大于预设视差,其中,n为大于1且小于N的整数,N为所述视频流包括的视频帧的数量;
地图点获取模块,用于对所述第n帧上的所述至少预设数量个特征点进行三角化,得到所述第n帧上的至少预设数量个地图点,并将所述第n帧标记为被三角化的特征点的关键视频帧;
地图点数量确定模块,用于根据所述视频流中第n+1帧上的每个特征点与该特征点的上一关键视频帧上相应的特征点之间的视差是否大于所述预设视差,以及所述第n+1帧上是否可跟踪到所述第n帧上的地图点,确定所述第n+1帧上的地图点的数量;
相机位置确定模块,用于在所述第n+1帧上的地图点的数量达到预设数量时,根据所述第n+1帧上预设数量个地图点的三维坐标和在所述第n+1帧中投影的二维坐标,以及,所述第n+1帧的相机朝向信息,确定所述第n+1帧的相机位置信息。
进一步地,所述地图点数量确定模块包括:
新地图点获取子模块,用于针对所述第n+1帧上的每个特征点,在该特征点与该特征点的上一关键视频帧上相应的特征点之间的视差大于所述预设视差时,对该特征点进行三角化,以得到新的地图点;
地图点跟踪子模块,用于将所述第n+1帧上的特征点与所述第n帧上的特征点进行匹配,并确定所述第n帧上与所述第n+1上相匹配的特征点是否是所述第n帧上的地图点,以得到所述第n+1帧上可跟踪到的地图点;
地图点数量确定子模块,用于确定所述第n+1帧上的地图点的数量为所述第n+1帧上的新的地图点的数量与所述第n+1帧上可跟踪到的地图点的数量之和。
进一步地,所述装置还包括:
第一关键视频帧确定模块,用于将所述第n+1帧标记为该特征点的关键视频帧。
进一步地,所述装置还包括:
新特征点确定模块,用于将所述第n+1帧上与所述第n帧上的所有特征点均不匹配的特征点,确定为所述第n+1帧上新出现的特征点;
第二关键视频帧确定模块,用于针对所述第n+1帧上新出现的特征点,将所述第n+1帧标记为该特征点的关键视频帧。
进一步地,所述装置还包括:
发送模块,用于将所述第n+1帧的相机位置信息发送给显示终端;
投影模块,用于通过所述显示终端显示所述第n+1帧,并将虚拟物品投影在所述第n+1帧上。
本申请第三方面提供一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行上述的一种相机位置信息确定方法。
本申请第四方面提供一种非临时性计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执时,使得所述电子设备能够执行上述的一种相机位置信息确定方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
本发明提供的一种相机位置信息确定方法、装置、电子设备及存储介质,相比于针对一个视频流,只选取一组关键视频帧的相关技术而言,对一个视频流中的每一个检测到的图像特征点,都选取一组关键视频帧,因此有多组关键视频帧,依据多组关键视频帧确定相机的位置信息,即既考虑了场景中各个近处的特征点的之间的视差,将近处的具有三维坐标的特征点作为地图点;也考虑了各个远处的特征点之间的视差,能将远处的具有三维坐标的特征点作为地图点,充分利用相机采集到的信息,保持跟踪稳定性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是本发明中确定其中一个视频帧的相机位置信息的步骤流程图;
图2是本发明中一种相机位置信息确定装置的结构示意图;
图3是本发明中一种电子设备的结构示意图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
相关技术中对于一个视频流,只选取一组关键视频帧,每选取一次关键视频帧,便结合上一关键视频帧,计算一次特征点的三维坐标,并将这些具有三维坐标的特征点作为地图点,其中关键视频帧的选取条件是:是否有足够多的、并具有充足视差的特征点。对两视频帧之间匹配的且具有充足视差的特征点进行三角化,计算出特征点的三维位置,加入地图点中。
本实施例中,对于一个视频流,每检测到一个图像特征点,则为该图像特征点选取一组关键视频帧,例如,当有5个图像特征点时,就为这5个图像特征点分别选取一组关键视频帧。因此,本实施例中提供了多组关键视频帧;根据地图点的三维坐标和地图点在下一视频帧中的投影的二维位置,利用PnP算法,计算下一视频帧的相机位置信息。本实施例既将近处的具有三维坐标的特征点作为地图点;也将远处的具有三维坐标的特征点作为地图点,充分利用相机采集到的信息,保持跟踪稳定性。
本实施例中具体的相机位置信息确定方法如下:
如图1所示,示出了本申请一种相机位置信息确定方法的流程图,所述方法包括:
步骤S11,从视频流中确定满足相机位置初始化条件的第n帧,并进行相机位置初始化,所述相机位置初始化条件为第n帧上存在至少预设数量个特征点与所述视频流的第一帧上的特征点相匹配,且相匹配的特征点之间的视差均大于预设视差,其中,n为大于1且小于N的整数,N为所述视频流包括的视频帧的数量。
在步骤S11中,首先需要对相机位置初始化。相机位置初始化的目的是确定整个视频流中能够满足条件确定相机在整个视频流中的第一个位置,即相机的初始位置。
本实施所提供的相机位置初始化的过程如下:
步骤S1101,对视频流中的首个视频帧进行特征点提取,得到所述首个视频帧上的多个特征点;将所述首个视频帧标记为得到的多个特征点各自的第一个关键视频帧。
步骤S1102,采用光流算法对第n帧(n从2开始取,即此处先取第2帧)上的特征点(该特征点是指在第1帧中出现的特征点)进行跟踪,如果在第2帧中出现了成功跟踪的特征点,则第2帧中的特征点与第1帧中相对应的特征点就是一对匹配的特征点。
步骤S1103,计算每一对匹配的特征点之间的视差,如果相匹配的特征点之间的视差大于预设视差,则将该对匹配的特征点记为合格特征点。一对匹配的特征点中的两个特征点作为同一个合格特征点。
步骤S1104,确定合格特征点的数量;当合格特征点的数量大于等于预设数量时,则第2帧中相机位置可以被计算出来,第2帧中相机位置则为相机的初始位置。
步骤S1105,如果合格特征点的数量小于预设数量,则第2帧中相机位置不能被计算出来,相机位置初始化不成功,则需要重新执行步骤S1102,步骤S1102中的n递增,依次执行步骤S1103-步骤S1105,直至找到存在至少预设数量个特征点与所述视频流的第一帧上的特征点相匹配,且相匹配的特征点之间的视差均大于预设视差的视频帧,以实现相机位置初始化,获取相机的初始位置。
为了更好地说明本申请,现提供一个具体示例进行说明,该示例适用于整个实施例,具体示例如下:
现提供一个视频流,该视频流中的前9个视频帧的具体情况如上表所示,其中,表格中的第一行由左至右依次为视频帧的编号,即第1帧、第2帧、第3帧、第4帧、第5帧、第6帧、第7帧、第8帧、第9帧;表格中的第一列为第1帧-第9帧中出现的特征点的编号,即特征点A、特征点B、特征点C、特征点D、特征点E、特征点F。
对如上表所示的视频流进行相机位置初始化。
首先,提取第1帧中的特征点,即特征点A、特征点B、特征点C、特征点E、特征点F(为了区别每一帧中的特征点,将第1帧中的特征点分别记为特征点A1、特征点B1、特征点C1、特征点E1、特征点F1);同时,将第1帧记为特征点A1、特征点B1、特征点C1、特征点E1、特征点F1的第一关键视频帧(表格中通过正方形黑点代表能够该视频帧能够作为该特征点的关键视频帧的,通过圆形黑点代表该特征点只能在该视频帧中跟踪到,而不能满足视差的要求,也就不能作为该特征点的关键视频帧)。
其次,采用光流算法对第2帧中的特征点(该特征点是指第1帧中出现的特征点)进行跟踪,能够成功跟踪的特征点是特征点A2、特征点B2、特征点C2、特征点E2、特征点F2(由于是第2帧中的特征点,因此在字母后加上2,例如特征点A记为特征点A2;特征点A与特征点A1、特征点A2等都是指同一个特征点,只是特征点A1是出现在第1帧中的特征点A,特征点A2是出现在第2帧中的特征点A;其他特征点与此类似,此处不再赘述;后文中将继续沿用该方式,后续将不再赘述)。
再次,计算匹配特征点对之间的视差,即计算特征点A1与特征点A2、特征点B1与特征点B2、特征点C1与特征点C2、特征点E1与特征点E2、特征点F1与特征点F2之间的视差,而第1帧与第2帧中匹配的特征点对之间的视差均不大于预设视差,则上述匹配的特征点对中没有合格特征点,则第2帧中相机位置不能被计算出来,相机位置在第2帧无法初始化。
最后,采用光流算法对第3帧中的特征点(该特征点是指第1帧中出现的特征点)进行跟踪,能够成功跟踪的特征点是特征点A3、特征点B3、特征点C3、特征点E3、特征点F3,计算匹配特征点对之间的视差,即计算特征点A1与特征点A3、特征点B1与特征点B3、特征点C1与特征点C3、特征点E1与特征点E3、特征点F1与特征点F3之间的视差,而第1帧与第3帧中匹配的特征点对之间的视差大于预设视差的有特征点A3、特征点B3、特征点C3,即第3帧中有3个合格特征点(此处假设拥有大于等于三个合格特征点就能实现相机初始化),因此,通过第3帧就能实现相机位置初始化,获取相机的初始位置。
具体地,通过第3帧就能实现相机位置初始化,获取相机的初始位置的步骤如下:
当第3帧中的合格特征点的数量满足预设数量后,就可计算得到相机从第1视频帧至第3视频帧的运动方向信息,并设定相机运动的距离为单位距离1。具体计算相机的运动方向信息的计算方式如下:
以表格中第1视频帧中的特征点A1和第3视频帧中的特征点A3以及第1视频帧中的特征点B1和第3视频帧中的特征点B3为例。
相机的运动方向为:
上述公式中的fA(或fB)的计算公式如下:
其中,R为相机坐标系到世界坐标系的旋转矩阵,即相机的朝向信息(由IMU检测得到)。Kinv为相机内参矩阵的逆,该Kinv矩阵对于同一部设备来说是可获取已知值。为特征点A在第img视频帧(第img视频帧指第1视频帧或者第3视频帧)中的二维坐标。
当两个视频帧之间有多个匹配点时(例如第1视频帧和第3视频帧中的匹配的特征点包括特征点A、特征点B、特征点C、特征点E、特征点F),则在RANSAC框架下,每两个特征点计算多个相机的运动方向,并取其中的最优值。在得到了相机运动方向之后,设相机的运动距离为1,则得到了两个视频帧所对应的相机相对位置信息,相机位置初始化成功。
步骤S12,对所述第n帧上的所述至少预设数量个特征点进行三角化,得到所述第n帧上的至少预设数量个地图点,并将所述第n帧标记为被三角化的特征点的关键视频帧。
将步骤S11中获取的满足相机位置初始化条件的第n帧中至少预设数量个特征点进行三角化,得到特征点对应的三维坐标,将得到三维坐标的特征点称为地图点。同时将该视频帧作为得到三维坐标的特征点的第二个关键视频帧。
例如,如上表所示的视频流,第3帧能够实现相机位置初始化,第3帧中的特征点A3、特征点B3、特征点C3能够实现三角化,能够得到特征点A3、特征点B3、特征点C3所对应的地图点(特征点A、特征点A1、特征点A3指的同一个特征点,只是出于不同的视频帧中,也就相当于得到了所有视频帧中特征点A、特征点B和特征点C的地图点);同时将第3帧作为地图点A、地图点B、地图点C的第二个关键视频帧。
其中,本实施例中,计算两个视频帧中相对应的两个特征点之间的视差的方式如下:
以表格中第1视频帧中的特征点A1和第2视频帧中的特征点A2为例。
上述公式中的fA的计算公式如下:
其中,R为相机坐标系到世界坐标系的旋转矩阵,即相机的朝向信息(由IMU检测得到)。Kinv为相机内参矩阵的逆,该Kinv矩阵对于同一部设备来说是可获取已知值。为特征点A在第img视频帧(第img视频帧指第1视频帧或者第2视频帧)中的二维坐标。
其中,对特征点进行三角化获取三维坐标的方式是:
以表格中第1视频帧中的特征点A1和第3视频帧中的特征点A3为例。
计算特征点A的三维坐标P的公式如下,联立上述两个方程可以获得P的最小二乘解。
上述公式中的fA计算公式如下:
其中,R为相机坐标系到世界坐标系的旋转矩阵,即相机的朝向信息(由IMU检测得到)。Kinv为相机内参矩阵的逆,该Kinv矩阵对于同一部设备来说是可获取已知值。为特征点A在第img视频帧(第img视频帧指第1视频帧或者第3视频帧)中的二维坐标。
步骤S13,根据所述视频流中第n+1帧上的每个特征点与该特征点的上一关键视频帧上相应的特征点之间的视差是否大于所述预设视差,以及所述第n+1帧上是否可跟踪到所述第n帧上的地图点,确定所述第n+1帧上的地图点的数量。
第n帧是能够进行相机位置初始化的视频帧,此时采用光流算法继续跟踪第n+1帧中的特征点(该特征点是指在第n帧中出现的特征点),获取第n+1帧与第n帧中能够匹配的特征点(也即能够被跟踪到的特征点),计算第n+1帧中的特征点与其各自对应的上一关键视频帧的特征点之间的视差,获取视差大于预设视差的合格特征点,并在合格特征点中确定具有地图点的特征点的数量,进而确定第n+1帧中地图点的数量。
例如,如上表所示的视频流,第3帧是能够进行相机位置初始化的视频帧,此时采用光流算法继续跟踪第4帧中的特征点(该特征点是指在第3帧中出现的特征点),即特征点A4、特征点B4、特征点C4、特征点E4、特征点F4,分别计算特征点A4与特征点A3(第3帧是特征点A4的上一关键视频帧)之间的视差、特征点B4与特征点B3(第3帧是特征点B4的上一关键视频帧)之间的视差、特征点C4与特征点C3(第3帧是特征点C4的上一关键视频帧)之间的视差、特征点E4与特征点E1(第1帧是特征点A4的上一关键视频帧)之间的视差、特征点F4与特征点F1(第1帧是特征点A4的上一关键视频帧)之间的视差,而上述视差均不大于预设视差,即第4帧中不存在合格特征点,此时需要载入第5帧。
载入第5帧,即采用光流算法继续跟踪第5帧中的特征点(该特征点是指在第4帧中出现的特征点),即特征点A5、特征点B5、特征点C5、特征点E5、特征点F5;分别计算特征点A5与特征点A3(第3帧是特征点A5的上一关键视频帧)之间的视差、特征点B5与特征点B3(第3帧是特征点B5的上一关键视频帧)之间的视差、特征点C5与特征点C3(第3帧是特征点C5的上一关键视频帧)之间的视差、特征点E5与特征点E1(第1帧是特征点A5的上一关键视频帧)之间的视差、特征点F5与特征点F1(第1帧是特征点A5的上一关键视频帧)之间的视差,而上述视差中特征点A5、特征点B5、特征点C5、特征点E5的视差大于预设视差,则特征点A5、特征点B5、特征点C5、特征点E5为第5帧中的合格特征点;其中,特征点A5、特征点B5、特征点C5具备地图点,地图点的数量是3。
步骤S14,在所述第n+1帧上的地图点的数量达到预设数量时,根据所述第n+1帧上预设数量个地图点的三维坐标和在所述第n+1帧中投影的二维坐标,以及,所述第n+1帧的相机朝向信息,确定所述第n+1帧的相机位置信息。
当第n+1帧中具有地图点的特征点的数量达到预设数量时,根据第n+1帧预设数量个具有地图点的特征点的三维坐标、预设数量个特征点在第n+1帧中的二维坐标以及第n+1帧的相机朝向信息,确定第n+1帧的相机位置信息。
例如,第5帧中具有地图点的特征点的数量为3个,满足预设数量(此处假设具有3个地图点,就能够确定相机位置信息),根据第5帧的特征点A5、特征点B5、特征点C5的三维坐标、特征点A5、特征点B5、特征点C5哎第5帧中的二维坐标以及第5帧的相机朝向信息(本实施的相机朝向信息通过硬件设备IMU测量获取),确定第5帧的相机位置信息。
本实施例中,根据地图点的三维坐标以及地图点所对应的特征点在当前帧中的投影的二维位置,利用PnP算法,计算当前帧的相机位置关系。其中,一般实际中要求观测到例如10个以上的地图点就能确定一个唯一的相机位置,本实施例中表格中的示例仅仅是为了更好地解释本申请的原理,因此未提供足够多的特征点进行示例,仅假设以3个地图点就能够确定相机位置。
PnP算法的原理如下:对于n个特征点,联立n个如下的公式,其中K是相机内参,R是相机朝向信息,是特征点A在第img视频帧中的二维坐标,是特征点A的三维坐标,这些都是已知的,最后利用联立的方程组梯度下降求解T,这个T可以转化为相机的位置信息。
其中,相机的世界坐标C即是相机的中心,和上述公式中的T的关系是:
C=-R-1T
T=-RC
在本申请提供的另一实施例中,提供了另一种相机位置信息确定方法,具体如下:
步骤S21:从视频流中确定满足相机位置初始化条件的第n帧,并进行相机位置初始化,所述相机位置初始化条件为第n帧上存在至少预设数量个特征点与所述视频流的第一帧上的特征点相匹配,且相匹配的特征点之间的视差均大于预设视差,其中,n为大于1且小于N的整数,N为所述视频流包括的视频帧的数量。
步骤S21与上一实施例的步骤S11类似,此处不再赘述。
步骤S22:对所述第n帧上的所述至少预设数量个特征点进行三角化,得到所述第n帧上的至少预设数量个地图点,并将所述第n帧标记为被三角化的特征点的关键视频帧。
步骤S22与上一实施例的步骤S12类似,此处不再赘述。
步骤S23:根据所述视频流中第n+1帧上的每个特征点与该特征点的上一关键视频帧上相应的特征点之间的视差是否大于所述预设视差,以及所述第n+1帧上是否可跟踪到所述第n帧上的地图点,确定所述第n+1帧上的地图点的数量。
步骤S23具体包括:
步骤S2301,针对所述第n+1帧上的每个特征点,在该特征点与该特征点的上一关键视频帧上相应的特征点之间的视差大于所述预设视差时,对该特征点进行三角化,以得到新的地图点。
在本实施例中,为了提高相机位置的准确度,需要对地图点进行更新。步骤S2301的目的在于获取新的地图点。
例如,第5帧中,特征点E5与特征点E1之间的视差大于预设视差,则可以对特征点E5进行三角化,进而获取特征点E的地图点。
此外,将所述第n+1帧标记为该特征点的关键视频帧。即将第n+1帧作为获得了地图点的特征点的关键视频帧。
例如,第5帧是特征E5的关键视频帧。
步骤S2302,将所述第n+1帧上的特征点与所述第n帧上的特征点进行匹配,并确定所述第n帧上与所述第n+1上相匹配的特征点是否是所述第n帧上的地图点,以得到所述第n+1帧上可跟踪到的地图点。
采用光流算法跟踪第n+1帧中的特征点(该特征点是指出现在第n帧上的特征点),在第n+1帧中与第n帧中的特征点匹配的特征点中,确定在匹配的特征点中具有地图点的特征点的数量。
例如,第5帧中具有地图点的特征点的数量为3个,即特征点A5、特征点B5、特征点C5。
在步骤S2302之后,还包括:
将所述第n+1帧上与所述第n帧上的所有特征点均不匹配的特征点,确定为所述第n+1帧上新出现的特征点;
针对所述第n+1帧上新出现的特征点,将所述第n+1帧标记为该特征点的关键视频帧。
例如,第4帧中并没有出现特征点D,而第5帧中出现了特征点D,因此,第5帧中的特征点D是新出现的特征点;对于一帧中新出现的特征点而言,该帧就为该特征点的关键视频帧,即第5帧是第特征点D的关键视频帧(对于首次出现的特征点,其首次出现的帧即为该特征点的关键视频帧,例如,第1帧是特征点A、特征点B、特征点C、特征点E、特征点F首次出现的视频帧,则第1帧是特征点A、特征点B、特征点C、特征点E、特征点F的关键视频帧)。
步骤S2303,确定所述第n+1帧上的地图点的数量为所述第n+1帧上的新的地图点的数量与所述第n+1帧上可跟踪到的地图点的数量之和。
步骤S2303的目的在于,确定第n+1帧中所有具备地图点的特征点的数量。
例如,第5帧中原本具有地图点的特征点的数量是3个,即特征点A5、特征点B5、特征点C5;在步骤S2301中获得了特征点E5的地图点。因此,第5帧中所有具备地图点的特征点的数量是4个。
步骤S24:在所述第n+1帧上的地图点的数量达到预设数量时,根据所述第n+1帧上预设数量个地图点的三维坐标和在所述第n+1帧中投影的二维坐标,以及,所述第n+1帧的相机朝向信息,确定所述第n+1帧的相机位置信息。
步骤S24与上一实施例的步骤S14类似,此处不再赘述。
在确定第n+1帧的相机位置信息之后,所述方法还包括:
将所述第n+1帧的相机位置信息发送给显示终端;
通过所述显示终端显示所述第n+1帧,并将虚拟物品投影在所述第n+1帧上。
对视频流中的每一视频帧,在采用上述方法确定该视频帧的相机位置信息之后,还可以将该视频帧的相机位置信息发送给显示终端,以使显示终端根据该视频帧的相机位置信息,生成增强现实信息,并显示该帧视频帧以及所生成的增强现实信息。示例地,增强显示信息可以是:虚拟物品。
显示器终端根据视频帧所在的相机位置信息显示视频帧和增强现实信息,以显示虚拟物品为例。首先,显示器可以直接从相机获取当前视频帧的数据,并从计算单元(IMU)获取当前视频帧对应的相机位置、朝向信息。在此基础之上,将虚拟物品投影到当前视频帧中,从而完成虚拟物品显示,具体投影过程可以利用如下公式,将虚拟物品的坐标转化为图像中的坐标:
Pimg=K(RPobj+T)
其中将Pimg的最后一维归一化即为虚拟物体图像中的坐标,Pobj为虚拟物体三维坐标,RT为当前帧的相机朝向、位置信息,K为已知的相机内参。
基于同一发明构思,本申请实施例还提供一种相机位置信息确定装置。如图2所示,本申请实施例提供一种相机位置信息确定装置,所述装置包括:
相机位置初始化模块21,用于从视频流中确定满足相机位置初始化条件的第n帧,并进行相机位置初始化,所述相机位置初始化条件为第n帧上存在至少预设数量个特征点与所述视频流的第一帧上的特征点相匹配,且相匹配的特征点之间的视差均大于预设视差,其中,n为大于1且小于N的整数,N为所述视频流包括的视频帧的数量;
地图点获取模块22,用于对所述第n帧上的所述至少预设数量个特征点进行三角化,得到所述第n帧上的至少预设数量个地图点,并将所述第n帧标记为被三角化的特征点的关键视频帧;
地图点数量确定模块23,用于根据所述视频流中第n+1帧上的每个特征点与该特征点的上一关键视频帧上相应的特征点之间的视差是否大于所述预设视差,以及所述第n+1帧上是否可跟踪到所述第n帧上的地图点,确定所述第n+1帧上的地图点的数量;
相机位置确定模块24,用于在所述第n+1帧上的地图点的数量达到预设数量时,根据所述第n+1帧上预设数量个地图点的三维坐标和在所述第n+1帧中投影的二维坐标,以及,所述第n+1帧的相机朝向信息,确定所述第n+1帧的相机位置信息。
其中,所述地图点数量确定模块23包括:
新地图点获取子模块,用于针对所述第n+1帧上的每个特征点,在该特征点与该特征点的上一关键视频帧上相应的特征点之间的视差大于所述预设视差时,对该特征点进行三角化,以得到新的地图点;
地图点跟踪子模块,用于将所述第n+1帧上的特征点与所述第n帧上的特征点进行匹配,并确定所述第n帧上与所述第n+1上相匹配的特征点是否是所述第n帧上的地图点,以得到所述第n+1帧上可跟踪到的地图点;
地图点数量确定子模块,用于确定所述第n+1帧上的地图点的数量为所述第n+1帧上的新的地图点的数量与所述第n+1帧上可跟踪到的地图点的数量之和。
其中,所述装置还包括:
第一关键视频帧确定模块,用于将所述第n+1帧标记为该特征点的关键视频帧。
其中,所述装置还包括:
新特征点确定模块,用于将所述第n+1帧上与所述第n帧上的所有特征点均不匹配的特征点,确定为所述第n+1帧上新出现的特征点;
第二关键视频帧确定模块,用于针对所述第n+1帧上新出现的特征点,将所述第n+1帧标记为该特征点的关键视频帧。
其中,所述装置还包括:
发送模块,用于将所述第n+1帧的相机位置信息发送给显示终端;
投影模块,用于通过所述显示终端显示所述第n+1帧,并将虚拟物品投影在所述第n+1帧上。
如图3所示,本申请第三方面提供一种电子设备,包括:
处理器31;
用于存储所述处理器31可执行指令的存储器32;
其中,所述处理器31被配置为执行上述的一种相机位置信息确定方法。
本申请第四方面提供一种非临时性计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执时,使得电子设备能够执行上述的一种相机位置信息确定方法。
本发明提供的一种相机位置信息确定方法,相比于针对一个视频流,只选取一组关键视频帧的相关技术而言,对一个视频流中的每一个检测到的图像特征点,都选取一组关键视频帧,因此有多组关键视频帧,依据多组关键视频帧确定相机的位置信息,即既考虑了场景中各个近处的特征点的之间的视差,将近处具有三维坐标的特征点作为地图点;也考虑了各个远处的特征点之间的视差,能将远处具有三维坐标的特征点作为地图点,充分利用相机采集到的信息,保持跟踪稳定性。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (10)
1.一种相机位置信息确定方法,其特征在于,所述方法包括:
从视频流中确定满足相机位置初始化条件的第n帧,并进行相机位置初始化,所述相机位置初始化条件为第n帧上存在至少预设数量个特征点与所述视频流的第一帧上的特征点相匹配,且相匹配的特征点之间的视差均大于预设视差,其中,n为大于1且小于N的整数,N为所述视频流包括的视频帧的数量;
对所述第n帧上的所述至少预设数量个特征点进行三角化得到特征点对应的三维坐标,得到所述第n帧上的至少预设数量个地图点,并将所述第n帧标记为被三角化的特征点的关键视频帧;所述地图点为得到三维坐标的特征点;
根据所述视频流中第n+1帧上的每个特征点与该特征点的上一关键视频帧上相应的特征点之间的视差是否大于所述预设视差,以及所述第n+1帧上是否可跟踪到所述第n帧上的地图点,确定所述第n+1帧上的地图点的数量;针对所述第n+1帧上首次出现的特征点,将所述第n+1帧标记为该特征点的关键视频帧;
在所述第n+1帧上的地图点的数量达到预设数量时,根据所述第n+1帧上预设数量个地图点的三维坐标和在所述第n+1帧中投影的二维坐标,以及,所述第n+1帧的相机朝向信息,确定所述第n+1帧的相机位置信息。
2.根据权利要求1所述的方法,其特征在于,根据第n+1帧上的每个特征点与该特征点的上一关键视频帧上相应的特征点之间的视差是否大于所述预设视差,以及所述第n+1帧上是否可跟踪到所述第n帧上的地图点,确定所述第n+1帧上的地图点的数量,包括:
针对所述第n+1帧上的每个特征点,在该特征点与该特征点的上一关键视频帧上相应的特征点之间的视差大于所述预设视差时,对该特征点进行三角化,以得到新的地图点;
将所述第n+1帧上的特征点与所述第n帧上的特征点进行匹配,并确定所述第n帧上与所述第n+1上相匹配的特征点是否是所述第n帧上的地图点,以得到所述第n+1帧上可跟踪到的地图点;
确定所述第n+1帧上的地图点的数量为所述第n+1帧上的新的地图点的数量与所述第n+1帧上可跟踪到的地图点的数量之和。
3.根据权利要求2所述的方法,其特征在于,针对所述第n+1帧上的每个特征点,在该特征点与该特征点的上一关键视频帧上相应的特征点之间的视差大于所述预设视差时,所述方法还包括:
将所述第n+1帧标记为该特征点的关键视频帧。
4.根据权利要求2所述的方法,其特征在于,在将所述第n+1帧上的特征点与所述第n帧上的特征点进行匹配之后,所述方法还包括:
将所述第n+1帧上与所述第n帧上的所有特征点均不匹配的特征点,确定为所述第n+1帧上新出现的特征点;
针对所述第n+1帧上新出现的特征点,将所述第n+1帧标记为该特征点的关键视频帧。
5.根据权利要求1所述的方法,其特征在于,在确定所述第n+1帧的相机位置信息之后,所述方法还包括:
将所述第n+1帧的相机位置信息发送给显示终端;
通过所述显示终端显示所述第n+1帧,并将虚拟物品投影在所述第n+1帧上。
6.一种相机位置信息确定装置,其特征在于,所述装置包括:
相机位置初始化模块,用于从视频流中确定满足相机位置初始化条件的第n帧,并进行相机位置初始化,所述相机位置初始化条件为第n帧上存在至少预设数量个特征点与所述视频流的第一帧上的特征点相匹配,且相匹配的特征点之间的视差均大于预设视差,其中,n为大于1且小于N的整数,N为所述视频流包括的视频帧的数量;
地图点获取模块,用于对所述第n帧上的所述至少预设数量个特征点进行三角化得到特征点对应的三维坐标,得到所述第n帧上的至少预设数量个地图点,并将所述第n帧标记为被三角化的特征点的关键视频帧;所述地图点为得到三维坐标的特征点;
地图点数量确定模块,用于根据所述视频流中第n+1帧上的每个特征点与该特征点的上一关键视频帧上相应的特征点之间的视差是否大于所述预设视差,以及所述第n+1帧上是否可跟踪到所述第n帧上的地图点,确定所述第n+1帧上的地图点的数量;针对所述第n+1帧上首次出现的特征点,将所述第n+1帧标记为该特征点的关键视频帧;
相机位置确定模块,用于在所述第n+1帧上的地图点的数量达到预设数量时,根据所述第n+1帧上预设数量个地图点的三维坐标和在所述第n+1帧中投影的二维坐标,以及,所述第n+1帧的相机朝向信息,确定所述第n+1帧的相机位置信息。
7.根据权利要求6所述的装置,其特征在于,所述地图点数量确定模块包括:
新地图点获取子模块,用于针对所述第n+1帧上的每个特征点,在该特征点与该特征点的上一关键视频帧上相应的特征点之间的视差大于所述预设视差时,对该特征点进行三角化,以得到新的地图点;
地图点跟踪子模块,用于将所述第n+1帧上的特征点与所述第n帧上的特征点进行匹配,并确定所述第n帧上与所述第n+1上相匹配的特征点是否是所述第n帧上的地图点,以得到所述第n+1帧上可跟踪到的地图点;
地图点数量确定子模块,用于确定所述第n+1帧上的地图点的数量为所述第n+1帧上的新的地图点的数量与所述第n+1帧上可跟踪到的地图点的数量之和。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
第一关键视频帧确定模块,用于将所述第n+1帧标记为该特征点的关键视频帧。
9.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行权利要求1至5中任一项所述的一种相机位置信息确定方法。
10.一种非临时性计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行权利要求1-5任一所述的一种相机位置信息确定方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910989767.4A CN110880187B (zh) | 2019-10-17 | 2019-10-17 | 一种相机位置信息确定方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910989767.4A CN110880187B (zh) | 2019-10-17 | 2019-10-17 | 一种相机位置信息确定方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110880187A CN110880187A (zh) | 2020-03-13 |
CN110880187B true CN110880187B (zh) | 2022-08-12 |
Family
ID=69728096
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910989767.4A Active CN110880187B (zh) | 2019-10-17 | 2019-10-17 | 一种相机位置信息确定方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110880187B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117437288B (zh) * | 2023-12-19 | 2024-05-03 | 先临三维科技股份有限公司 | 摄影测量方法、装置、设备及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106570507A (zh) * | 2016-10-26 | 2017-04-19 | 北京航空航天大学 | 单目视频场景三维结构的多视角一致的平面检测解析方法 |
CN107564061A (zh) * | 2017-08-11 | 2018-01-09 | 浙江大学 | 一种基于图像梯度联合优化的双目视觉里程计算方法 |
CN108416840A (zh) * | 2018-03-14 | 2018-08-17 | 大连理工大学 | 一种基于单目相机的三维场景稠密重建方法 |
CN108776976A (zh) * | 2018-06-07 | 2018-11-09 | 驭势科技(北京)有限公司 | 一种同时定位与建图的方法、系统及存储介质 |
CN109816769A (zh) * | 2017-11-21 | 2019-05-28 | 深圳市优必选科技有限公司 | 基于深度相机的场景地图生成方法、装置及设备 |
CN109902725A (zh) * | 2019-01-31 | 2019-06-18 | 北京达佳互联信息技术有限公司 | 移动目标的检测方法、装置及电子设备和存储介质 |
CN110047142A (zh) * | 2019-03-19 | 2019-07-23 | 中国科学院深圳先进技术研究院 | 无人机三维地图构建方法、装置、计算机设备及存储介质 |
CN110084832A (zh) * | 2019-04-25 | 2019-08-02 | 亮风台(上海)信息科技有限公司 | 相机位姿的纠正方法、装置、系统、设备和存储介质 |
CN110335316A (zh) * | 2019-06-28 | 2019-10-15 | Oppo广东移动通信有限公司 | 基于深度信息的位姿确定方法、装置、介质与电子设备 |
-
2019
- 2019-10-17 CN CN201910989767.4A patent/CN110880187B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106570507A (zh) * | 2016-10-26 | 2017-04-19 | 北京航空航天大学 | 单目视频场景三维结构的多视角一致的平面检测解析方法 |
CN107564061A (zh) * | 2017-08-11 | 2018-01-09 | 浙江大学 | 一种基于图像梯度联合优化的双目视觉里程计算方法 |
CN109816769A (zh) * | 2017-11-21 | 2019-05-28 | 深圳市优必选科技有限公司 | 基于深度相机的场景地图生成方法、装置及设备 |
CN108416840A (zh) * | 2018-03-14 | 2018-08-17 | 大连理工大学 | 一种基于单目相机的三维场景稠密重建方法 |
CN108776976A (zh) * | 2018-06-07 | 2018-11-09 | 驭势科技(北京)有限公司 | 一种同时定位与建图的方法、系统及存储介质 |
CN109902725A (zh) * | 2019-01-31 | 2019-06-18 | 北京达佳互联信息技术有限公司 | 移动目标的检测方法、装置及电子设备和存储介质 |
CN110047142A (zh) * | 2019-03-19 | 2019-07-23 | 中国科学院深圳先进技术研究院 | 无人机三维地图构建方法、装置、计算机设备及存储介质 |
CN110084832A (zh) * | 2019-04-25 | 2019-08-02 | 亮风台(上海)信息科技有限公司 | 相机位姿的纠正方法、装置、系统、设备和存储介质 |
CN110335316A (zh) * | 2019-06-28 | 2019-10-15 | Oppo广东移动通信有限公司 | 基于深度信息的位姿确定方法、装置、介质与电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110880187A (zh) | 2020-03-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110582798B (zh) | 用于虚拟增强视觉同时定位和地图构建的系统和方法 | |
CN108028871B (zh) | 移动设备上的无标记的多用户多对象增强现实 | |
US10339708B2 (en) | Map summarization and localization | |
CN106940704B (zh) | 一种基于栅格地图的定位方法及装置 | |
EP2915140B1 (en) | Fast initialization for monocular visual slam | |
CN107646109B (zh) | 管理电子设备上的环境映射的特征数据 | |
WO2017022033A1 (ja) | 画像処理装置、画像処理方法および画像処理プログラム | |
CN111127524A (zh) | 一种轨迹跟踪与三维重建方法、系统及装置 | |
CN110986969B (zh) | 地图融合方法及装置、设备、存储介质 | |
US11922658B2 (en) | Pose tracking method, pose tracking device and electronic device | |
CN107862733B (zh) | 基于视线更新算法的大规模场景实时三维重建方法和系统 | |
CN108961423B (zh) | 虚拟信息处理方法、装置、设备及存储介质 | |
CN111709973A (zh) | 目标跟踪方法、装置、设备及存储介质 | |
EP3262606A1 (en) | An image processing method and apparatus for determining depth within an image | |
CN108028904B (zh) | 移动设备上光场增强现实/虚拟现实的方法和系统 | |
CN113012224B (zh) | 定位初始化方法和相关装置、设备、存储介质 | |
CN112465907A (zh) | 一种室内视觉导航方法及系统 | |
CN114882106A (zh) | 位姿确定方法和装置、设备、介质 | |
CN113190120B (zh) | 位姿获取方法、装置、电子设备及存储介质 | |
CN110880187B (zh) | 一种相机位置信息确定方法、装置、电子设备及存储介质 | |
CN115601419A (zh) | 同步定位与建图后端优化方法、装置及存储介质 | |
CN108734721B (zh) | 追踪系统以及追踪方法 | |
WO2021065607A1 (ja) | 情報処理装置および方法、並びにプログラム | |
CN116456068A (zh) | 图像的三维显示方法、装置、显示模组及可读存储介质 | |
CN115526931A (zh) | 一种单目初始化方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |