CN110490131A - 一种拍摄设备的定位方法、装置、电子设备及存储介质 - Google Patents
一种拍摄设备的定位方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN110490131A CN110490131A CN201910759833.9A CN201910759833A CN110490131A CN 110490131 A CN110490131 A CN 110490131A CN 201910759833 A CN201910759833 A CN 201910759833A CN 110490131 A CN110490131 A CN 110490131A
- Authority
- CN
- China
- Prior art keywords
- video frame
- coordinate position
- dimensional coordinate
- characteristic point
- capture apparatus
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
- G06T7/55—Depth or shape recovery from multiple images
-
- 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/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
- G06V10/75—Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
- G06V10/751—Comparing pixel values or logical combinations thereof, or feature values having positional relevance, e.g. template matching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/20—Scenes; Scene-specific elements in augmented reality scenes
-
- 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
-
- 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/20—Special algorithmic details
- G06T2207/20228—Disparity calculation for image-based rendering
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Length Measuring Devices By Optical Means (AREA)
- Studio Devices (AREA)
Abstract
本公开涉及一种拍摄设备的定位方法、装置、电子设备及存储介质。该方法为:在启动增强现实功能时,采用球面模式进行初始化,采用基于预设的球面半径,粗略估算出各个特征点对应的地图点的三维坐标位置,从而节省初始化耗时,减少用户等待时长,进一步的,在确定拍摄设备已经能够获得足够的视差特征点时,智能设备再由球面模式切换至地图模式,并在地图模式下重新进行了三维坐标系的初始化,以及将三维坐标系的尺度按照上一帧对应的球面模式下的球面半径进行了缩放。这样,不仅可以避免发生增强现实功能缺失,而且实现了地图模式和球面模式之间的三维坐标系尺度的平滑过渡,保证了增强现实功能的持续性使用。
Description
技术领域
本公开涉及视频处理领域,尤其涉及一种拍摄设备的定位方法、装置、电子设备及存储介质。
背景技术
随着技术的发展,增强现实技术得到了越来越广泛的应用,人们利用增强现实技术将虚拟的图像、视频、3D模型合并到现实场景中,并根据用户的操作,实时的跟踪确定拍摄设备的位置及朝向信息,并根据这些信息,实现现实增强。
相关技术下,通常采用相机作为拍摄设备,并需要在初始化阶段建立世界三维坐标系(以下简称为三维坐标系),并计算各个拍摄地图点(以下简称地图点)的三维坐标位置,其中,所述地图点为拍摄设备所拍摄的实物点,具体为与特征点对应的具有固定三维坐标位置的实体点,是实际存在的被拍摄物体上的点,所述每一个地图点都是全局唯一的。
下面以传统的相机跟踪方法为例,介绍初始化过程如下。
智能设备获取相机拍摄的全部视频帧数据,并以相机第1帧时的位置为原点建立三维坐标系,同时将第1帧作为第一个视频关键帧。
参阅图1所示,下面以第1帧和第i帧为例具体说明,提取视频帧的特征点,所述特征点为周边区域的图像差异度变化达到设定阈值的像素点,如,视频帧中实物的棱角边缘点,又例如,视频帧中物体的轮廓点。然后利用光流算法筛选出第1帧以及第i帧中相匹配的特征点,并确定所述特征点在第1帧以及第i帧中的二维坐标位置,其中,所述二维坐标位置为基于视频帧建立的二维坐标系确定的。所述智能设备还可以通过惯性测量单元检测当前相机的朝向信息,然后基于所述朝向信息以及各个特征点在第1帧以及第i帧中的二维坐标位置,计算所述各个特征点在第1帧以及第i帧中的视差。在确定视差值达到预设的视差门限值的特征点的数量到达预设阈值时,基于第1帧和第i帧中特征点的二维坐标位置以及相机的朝向信息计算相机的运动方向向量。进而基于获得的相机的运行方向,以及各个特征点在第1帧中的二维坐标位置和在第i帧中的二维坐标位置,建立三维坐标系,即确定建立的三维坐标系和真实世界中的三维坐标系之间的比例,并采用三角化算法,计算各个特征点对应的地图点的三维坐标位置。
以此类推,采用以上方式,智能设备基于相机的运动方向向量确定相机的三维坐标位置,进而确定拍摄的视频帧中各个地图点的三维坐标位置,以便在视频图像中的指定位置加入相应的虚拟物体,从而实现增强现实功能。
然而,采用上述技术方案进行三维坐标系的初始化时,计算量较大,因此,初始化过程需要一定的缓冲时间,而在这段时间内,智能设备无法准确地捕捉相机的三维坐标位置,从而无法计算各个特征点对应的地图点的三维坐标位置,进而无法实现增强现实的相关功能,这样,会造成一段时间内的增强现实功能缺失,即无法使用增强现实功能;其中,在初始化过程中,若相机发生抖动和遮挡,无法获取到足够的特征点,则初始化过程的耗时会进一步延长,从而进一步造成增强现实功能的严重缺失,影响使用效果。
有鉴于此,需要提供一种新的定位方法,以克服上述缺陷。
发明内容
本公开实施例提供增强现实中拍摄设备的定位方法、智能设备及存储介质,用于避免发生增强现实功能缺失。
本公开实施例提供的具体技术方案如下:
本公开的第一方面,提供了一种拍摄设备的定位方法,包括:
将视频流中的第一个视频帧作为视频关键帧,并将所述第一个视频帧对应的拍摄设备的位置作为三维坐标系的原点,启用球面模式,以及设定球面半径,其中,在所述球面模式下,假设视频帧中所有特征点对应的地图点,与拍摄设备当前的三维坐标位置的距离均为所述球面半径;
继续采用球面模式读取所述视频流中后续的视频帧,每读取一个视频帧,基于当前设置的球面半径,计算当前读取的一个视频帧对应的所述拍摄设备的三维坐标位置;
在确定当前读取的一个视频帧与上一个视频关键帧之间匹配成功的视差特征点的数量达到预设阈值时,切换至地图模式:
对三维坐标系重新进行初始化,计算所述匹配成功的视差特征点对应的地图点的三维坐标位置,到所述当前读取的一个视频帧对应的拍摄设备的三维坐标位置的第一平均距离;
采用上一个视频帧中球面模式对应的球面半径与所述第一平均距离的比值,对已获得的各个地图点的三维坐标位置进行尺度调整,其中,所述视差特征点为视差值达到预设的视差门限值的特征点。
可选的,所述启用球面模式,设定球面半径之后,进一步包括:
采用角点检测算法,在所述第一个视频帧中提取出特征点;
基于所述原点,所述特征点在所述第一个视频帧中的二维坐标位置,以及所述球面半径,计算所述提取出的特征点中各个特征点对应的地图点的三维坐标位置。
可选的,基于当前设置的球面半径,计算当前读取的一个视频帧对应的拍摄设备的三维坐标位置,包括:
将当前读取的一个视频帧与上一个视频帧进行特征点匹配,提取出匹配成功的特征点;
基于所述匹配成功的特征点对应的地图点的三维坐标位置,所述匹配成功的特征点在当前读取的一个视频帧中的二维坐标位置,以及所述当前设置的球面半径,采用PnP算法,计算当前读取的一个视频帧对应的拍摄设备的三维坐标位置。
可选的,所述切换至地图模式,对三维坐标系重新进行初始化,包括:
基于所述匹配成功的视差特征点在当前读取的一个视频帧以及上一个视频关键帧中的二维坐标位置、所述拍摄设备当前的朝向信息,计算所述拍摄设备当前的运动方向向量;
基于所述上一个视频关键帧对应的拍摄设备的三维坐标位置和所述运动方向向量,重新计算所述当前读取的一个视频帧对应的拍摄设备的三维坐标位置;
基于所述匹配成功的视差特征点在当前读取的一个视频帧以及上一个视频关键帧中的二维坐标位置,结合重新计算的所述当前读取的一个视频帧对应的拍摄设备的三维坐标位置,采用三角化算法,重新计算所述匹配成功的视差特征点计算对应的地图点的三维坐标位置。
可选的,所述重新计算所述匹配成功的视差特征点计算对应的地图点的三维坐标位置之后,进一步包括:
继续采用地图模式读取视频流中后续的视频帧,每读取一个视频帧,对当前读取的一个视频帧和上一个视频帧进行特征点匹配,基于匹配成功的特征点在当前读取的一个视频帧中的二维坐标位置,所述匹配成功的特征点对应的地图点的三维坐标位置,采用PnP算法,计算所述当前读取的一个视频帧对应的拍摄设备的三维坐标位置。
可选的,所述计算所述当前读取的一个视频帧对应的拍摄设备的三维坐标位置之后,进一步包括:
将所述当前读取的一个视频帧与所述上一个视频关键帧进行特征点匹配,提取出视差特征点;
确定提取出的所述视差特征点的数量达到所述预设阈值时,将所述当前读取的一个视频帧设置为视频关键帧;
采用角点检测算法,在所述当前读取的一个视频帧中提取出新的特征点。
可选的,确定未成功计算出所述当前读取的一个视频帧对应的拍摄设备的三维坐标位置时,进一步包括:
切换至球面模式,并将上一个视频帧对应的拍摄设备的三维坐标位置作为当前读取的一个视频帧对应的拍摄设备的三维坐标位置,以及将当前读取的一个视频帧设置为视频关键帧;
计算当前读取的一个视频帧中,所述匹配成功的特征点对应的地图点的三维坐标位置,和所述当前读取的一个视频帧对应的拍摄设备的三维坐标位置之间的第二平均距离,再将所述第二平均距离设置为最新的球面半径;
基于所述最新的球面半径,所述当前读取的一个视频帧对应的拍摄设备的三维坐标位置,以及所述匹配成功的特征点在所述当前读取的一个视频帧中的二维坐标位置,重新计算所述匹配成功的特征点对应的地图点的三维坐标位置。
可选的,所述重新计算所述匹配成功的特征点对应的地图点的三维坐标位置后,进一步包括:
采用角点检测算法,在当前读取的一个视频帧中识别出新的特征点,以及采用所述最新的球面半径,结合当前读取的一个视频帧对应的拍摄设备的三维坐标位置,计算各个新的特征点对应的地图点的三维坐标位置。
本公开的第二方面,提供了一种增强现实中拍摄设备的定位装置,包括:
球面模式单元,被配置为将视频流中的第一个视频帧作为视频关键帧,并将所述第一个视频帧对应的拍摄设备的位置作为三维坐标系的原点,启用球面模式,以及设定球面半径,其中,在所述球面模式下,假设视频帧中所有特征点对应的地图点,与拍摄设备当前的三维坐标位置的距离均为所述球面半径,继续采用球面模式读取所述视频流中后续的视频帧,每读取一个视频帧,基于当前设置的球面半径,计算当前读取的一个视频帧对应的拍摄设备的三维坐标位置;
地图模式单元,被配置为在确定当前读取的一个视频帧与上一个视频关键帧之间匹配成功的视差特征点的数量达到预设阈值时,切换至地图模式,对三维坐标系重新进行初始化,以及计算所述匹配成功的视差特征点对应的地图点的三维坐标位置,到所述当前读取的一个视频帧对应的拍摄设备的三维坐标位置的第一平均距离,并采用上一个视频帧中球面模式对应的球面半径与所述第一平均距离的比值,对已获得的各个地图点的三维坐标位置进行尺度调整;其中,所述视差特征点为视差值达到预设的视差门限值的特征点。
可选的,所述启用球面模式,设定球面半径之后,所述球面模式单元进一步被配置为:
采用角点检测算法,在所述第一个视频帧中提取出特征点;
基于所述原点,所述特征点在所述第一个视频帧中的二维坐标位置,以及所述球面半径,计算所述提取出的特征点中各个特征点对应的地图点的三维坐标位置。
可选的,所述基于当前设置的球面半径,计算当前读取的一个视频帧对应的拍摄设备的三维坐标位置时,所述球面模式单元被配置为:
将当前读取的一个视频帧与上一个视频帧进行特征点匹配,提取出匹配成功的特征点;
基于所述匹配成功的特征点对应的地图点的三维坐标位置,所述匹配成功的特征点在当前读取的一个视频帧中的二维坐标位置,以及所述当前设置的球面半径,采用PnP算法,计算当前读取的一个视频帧对应的拍摄设备的三维坐标位置。
可选的,所述切换至地图模式,对三维坐标系重新进行初始化时,所述地图模式单元被配置为:
基于所述匹配成功的视差特征点在当前读取的一个视频帧以及上一个视频关键帧中的二维坐标位置、所述拍摄设备当前的朝向信息,计算所述拍摄设备当前的运动方向向量;
基于所述上一个视频关键帧对应的拍摄设备的三维坐标位置和所述运动方向向量,重新计算所述当前读取的一个视频帧对应的拍摄设备的三维坐标位置;
基于所述匹配成功的视差特征点在当前读取的一个视频帧以及上一个视频关键帧中的二维坐标位置,结合重新计算的所述当前读取的一个视频帧对应的拍摄设备的三维坐标位置,采用三角化算法,重新计算所述匹配成功的视差特征点计算对应的地图点的三维坐标位置。
可选的,所述重新计算所述匹配成功的视差特征点计算对应的地图点的三维坐标位置之后,所述地图模式单元进一步被配置为:
继续采用地图模式读取视频流中后续的视频帧,每读取一个视频帧,对当前读取的一个视频帧和上一个视频帧进行特征点匹配,基于匹配成功的特征点在当前读取的一个视频帧中的二维坐标位置,所述匹配成功的特征点对应的地图点的三维坐标位置,采用PnP算法,计算所述当前读取的一个视频帧对应的拍摄设备的三维坐标位置。
可选的,所述计算所述当前读取的一个视频帧对应的拍摄设备的三维坐标位置之后,所述地图模式单元进一步被配置为:
将所述当前读取的一个视频帧与所述上一个视频关键帧进行特征点匹配,提取出视差特征点;
确定提取出的所述视差特征点的数量达到所述预设阈值时,将所述当前读取的一个视频帧设置为视频关键帧;
采用角点检测算法,在所述当前读取的一个视频帧中提取出新的特征点。
可选的,确定未成功计算出所述当前读取的一个视频帧对应的拍摄设备的三维坐标位置时,所述地图模式单元进一步被配置为:
切换至球面模式,并将上一个视频帧对应的拍摄设备的三维坐标位置作为当前读取的一个视频帧对应的拍摄设备的三维坐标位置,以及将当前读取的一个视频帧设置为视频关键帧;
计算当前读取的一个视频帧中,所述匹配成功的特征点对应的地图点的三维坐标位置,和所述当前读取的一个视频帧对应的拍摄设备的三维坐标位置之间的第二平均距离,再将所述第二平均距离设置为最新的球面半径;
基于所述最新的球面半径,所述当前读取的一个视频帧对应的拍摄设备的三维坐标位置,以及所述匹配成功的特征点在所述当前读取的一个视频帧中的二维坐标位置,重新计算所述匹配成功的特征点对应的地图点的三维坐标位置。
可选的,所述重新计算所述匹配成功的特征点对应的地图点的三维坐标位置后,所述地图模式单元进一步被配置为:
采用角点检测算法,在当前读取的一个视频帧中识别出新的特征点,以及采用所述最新的球面半径,结合当前读取的一个视频帧对应的拍摄设备的三维坐标位置,计算各个新的特征点对应的地图点的三维坐标位置。
本公开的第三方面,提供了一种电子设备,包括:
存储器,用于存储可执行指令;
处理器,用于读取并执行所述存储器中存储的可执行指令,以实现上述第一方面任一所述的拍摄设备的定位方法。
本公开的第四方面,提供了一种存储介质,当所述存储介质中的指令由处理器执行时,使得所述处理器能够执行上述第一方面任一所述的拍摄设备的定位方法。
本公开中,在启动增强现实功能时,采用球面模式进行初始化,采用预设的球面半径,粗略估算出各个特征点对应的地图点的三维坐标位置,从而节省初始化耗时,以便迅速进入增强现实的工作模式,减少用户等待时长,进一步的,在确定拍摄设备已经能够获得足够的视差特征点时,智能设备再由球面模式切换至地图模式,并在地图模式下重新进行了三维坐标系的初始化,以及将三维坐标系的尺度按照上一帧对应的球面模式下的球面半径r进行了缩放,这样,便实现了地图模式和球面模式之间的三维坐标系尺度的平滑过渡,避免出现地图点的三维坐标位置无法衔接的问题,保证了增加现实功能的持续性使用。
附图说明
图1为相关技术下三角化算法计算地图点的三维坐标位置示意图;
图2A和图2B为本公开中对拍摄设备的三维坐标位置进行跟踪定位流程图;
图3为本公开中采用球面模式进行初始化原理示意图;
图4为本公开中在视频帧之间切换球面模式和地图模式示意图;
图5为本公开中沿续球面模式原理示意图;
图6为本公开中由球面模式切换至地图模式原理示意图;
图7为本公开中地图模式下进行三维坐标系统初始化示意图;
图8和图9为本公开中延续地图模式原理示意图;
图10为本公开中由地图模式切换至球面模式原理示意图;
图11为本公开中智能设备的逻辑架构示意图;
图12为本公开中智能设备的实体架构示意图。
具体实施方式
为了避免由于重新进行系统初始化,而导致无法对拍摄设备的三维坐标位置进行准确定位的问题,本公开实施例中,智能设备在通过拍摄设备获取视频数据的过程中,如果发现获取的视频帧中不存在足够数量的视差达到设定的视差门限值的特征点,则进入球面模式来计算拍摄设备的三维坐标位置,从而在智能设备发生抖动、遮挡的情况下,也能够估算出相机当前的三维坐标位置,以保证增强现实的实施效果,其中,所述拍摄设备用于拍摄,所述智能设备用于计算所述拍摄设备的三维坐标位置以实现对于所述拍摄设备的定位,而且所述拍摄设备和所述智能设备可以是一体的,也可以是分离的。比如,所述拍摄设备可相当于手机的镜头,所述智能设备相当于手机,或者,所述拍摄设备可以为摄像机,所述智能设备可以为个人电脑。
下面结合附图对本公开可选的实施例作出进一步详细说明。
首先,对球面模式进行介绍。
智能设备通过拍摄设备对环境进行持续拍摄的过程中,可以持续获得视频帧,那么,智能设备在获取到一个视频帧后,会利用光流算法将当前的视频帧和上一视频帧进行特征点匹配,筛选出匹配成功的特征点,接着,智能设备会在匹配成功的特征点中,判断视差值达到预设的视差门限值的特征点的数量,假设这一数量未达到预设阈值,则智能设备无法采用匹配成功的特征点对应的地图点的三维坐标位置,以及这些特征点在当前的视频帧中的二维坐标位置,采用透视点(Perspective-n-Point,PnP)算法计算得到当前的视频帧对应的拍摄设备的三维坐标位置。
此时,智能设备为了保证流程的持续性,会启动球面模式,即假设当前的视频帧中的所有特征点(包括匹配成功的特征点和新加入的特征点)对应的地图点都分布在以当前的视频帧对应的拍摄设备的三维坐标位置为中心的,半径为r的球面上,这样,利用这一假设,以及这些特征点在当前的视频帧中的二维坐标位置,即可以计算出,所有特征点对应的地图点的三维坐标位置。
前面已经介绍了球面模式,下面对地图模式进行介绍。
智能设备检测到当前读取的视频帧与上一个视频关键帧相匹配的视差特征点中,所述视差特征点的数量达到预设阈值,其中,所述视差特征点为视差值达到预设的视差门限值的特征点,则启动地图模式。
在地图模式下,所有地图点都分布在以视频流中第一帧视频帧对应的拍摄设备的三维坐标位置为原点建立的三维坐标系下,所述地图点为与特征点对应的具有三维坐标位置的实体点,所述每一个地图点都是全局唯一的,但是在由球面模式转入地图模式时,需要进行尺度的缩放,以实现所述两种模式下的平滑过渡,然后基于经过尺度调整的地图点的三维坐标位置,以及三角化和PnP算法可计算拍摄设备的三维坐标位置。
本公开实施例中,就是根据实际应用场景,在球面模式和地图模式之间进行切换,保持拍摄设备的三维坐标位置计算的连贯性。
下面结合附图对本公开可选的实施方式作出进一步详细说明。
参阅图2A和图2B所示,本公开实施例中,在增强现实中对拍摄设备进行定位的详细流程如下:
步骤200:智能设备通过拍摄设备获取视频流,读取视频流中的第一个视频帧,并调用球面模式进行初始化。
具体的,参阅图3所示,本公开实施例中,智能设备将第一个视频帧对应的拍摄设备的位置O1作为三维坐标系的原点(即,0.0.0),其中,所述拍摄设备的位置可以视为一个点,具体的可以视为是拍摄设备的镜头中心。
进一步地,智能设备会利用角点检测技术,从第一个视频帧中选取出特征点,所述特征点为周边区域的图像差异度变化达到设定阈值的像素点,如,视频帧中实物的棱角边缘点,又例如,视频帧中物体的轮廓点。
而真实世界中存在的地图点在视频帧中的投影即为特征点,例如,参阅图3所示,地图点P,Q,R在第一个视频帧中分别对应特征点P1,Q1,R1。
本公开中,在球面模式下,假设所有的地图点都分布在以拍摄设备的三维坐标位置O1为中心的,半径为r的球面上(初始化阶段,r为预设参数),那么,基于O1的三维坐标位置,以及P1、Q1、R1在第一个视频帧中的二维坐标位置,以及基于当前的球面半径r,即可以计算特征点P1,Q1,R1各自对应的地图点P、Q、R在真实世界中的三维坐标位置。
具体的,可以采用以下公式计算地图点的三维坐标位置:
P=fp*r+O
其中,其中,fp,为视频帧对应的拍摄设备的三维坐标位置到特征点的单位向量,r为当前使用的球面半径,O视频帧对应的拍摄设备的三维坐标位置。
其中,R为相机坐标系到时间坐标系的旋转矩阵,即相机的朝向信息,Kinv为相机内参矩阵的逆矩阵,该逆矩阵对于同一部相机来说是可获取的已知值,为特征点在视频帧中的二维坐标位置。
同理,智能设备可以计算出采用角点检测算法提取出的全部特征点对应的地图点的三维坐标位置,到此,初始化完成,智能设备会将第一个视频帧设置为视频关键帧。
例如,参阅图4所示,在第1帧的位置,智能设备基于球面模式完成了初始化,并将第1帧设置为视频关键帧。
采用球面模式进行初始化,会节省建立三维坐标系以及确定各个特征点对应的地图点的三维坐标位置的耗时,使智能设备可以粗略估算出各个特征点对应的地图点的三维坐标位置,从而可以迅速进入增强现实的工作模式,以减少用户等待时长,进而可以有效避免初始化阶段发生增强现实功能缺失的现象。
进一步地,如图4所示,本公开中,假设视频帧2-视频帧i均处于球面模式,视频帧i+1-视频帧j均处于地图模式,而从视频帧j+1开始又进入球面模式,其中,每次模式切换后的第一帧均为视频关键帧,如,视频帧i+1,视频帧j+1,在球面模式下,只有切换后的第1个视频帧(如,视频帧j+1)为视频关键帧,而在地图模式下,只要满足预设条件,任何一个视频帧均可以作为视频关键帧,如,视频帧i+1,视频帧i+k等等。
后续公开中将详细对上述切换过程进行介绍。
步骤201:智能设备读取下一个视频帧,并从当前读取的一个视频帧中提取出与上一个视频帧相匹配的特征点。
具体的,利用光流算法将当前的视频帧和上一个视频帧进行特征点匹配,筛选出匹配成功的特征点。
例如,将第2帧与第1帧进行特征点匹配后,在第2帧中提取出的匹配成功的特征点为P2、Q2和R2,其中,P1和P2即是P在不同视频帧中的投影,那么,P1和P2即是匹配的特征点,其他特征点同理,不再赘述。
另一方面,本公开中,在球面模式下计算拍摄设备的三维坐标位置时,是将当前读取的一个视频帧与上一个视频帧进行特征点匹配,如,在计算第2帧对应的拍摄设备的三维坐标位置时,是将第2帧与第1帧进行特征点匹配,而在计算第3帧对应的拍摄设备的三维坐标位置时,是将第3帧与第2帧进行特征点匹配,以此类推,将不再赘述。
进一步地,每读取一个视频帧,智能设备还会采用角点检测算法,在当前读取的一个视频帧中补充加入检测到的新的特征点。
步骤202:智能设备调用球面模式,计算当前读取的一个视频帧对应的拍摄设备的三维坐标位置。
具体的,在执行步骤202时,智能设备保持在球面模式,即智能设备读取上一个视频帧时,也是采用球面模式进行的处理,如,智能设备处理完毕第1帧后,开始读取第2帧。
在这种情况下,智能设备继续保持所述球面模式,以及继续沿用所述球面模式中使用的球面半径,结合所述匹配成功的特征点对应的地图点的三维坐标位置,以及所述匹配成功的特征点在当前读取的一个视频帧中的二维坐标位置,计算当前读取的一个视频帧对应的拍摄设备的三维坐标位置。
例如,参阅图4所示,智能设备读取完毕第1帧,在球面模式下完成了初始化,并确定第1帧为第1个视频关键帧;接着,智能设备读取第2帧,并采用光流算法,将第2帧与上一个视频帧(此时为第1帧)进行特征点匹配,并提取出匹配成功的特征点,如,匹配成功了80个特征点;
进一步的,由于匹配成功的特征点中,全部的特征点在第1帧中已经计算获得了对应的地图点的三维坐标位置,因此,在球面模式下,可以直接计算出第2帧对应的拍摄设备的三维坐标位置。
具体的,可以获得匹配成功的特征点对应的地图点的三维坐标位置,以及所述匹配成功的特征点在第2帧中的二维坐标位置,这样,可以利用PnP算法首先计算出三维向量参数,再利用三维向量参数求解出第2帧对应的拍摄设备的三维坐标位置。
如,参阅图5所示,假设P2、Q2和R2为匹配成功的特征点,那么,根据P2的二维坐标位置和P的三维坐标位置,可以建立求解三维向量参数T的方程,同理,可以基于Q的三维坐标位置和Q2的二维坐标位置建立求解三维向量参数T的方程,基于R的三维坐标位置和R2的二维坐标位置建立求解三维向量参数T的方程,联立方程组,利用梯度下降方法得到三维向量参数T,进而求解出第2帧对应的拍摄设备当前的三维坐标位置O2。
具体的,以n个匹配成功的特征点为例进一步说明,对于匹配成功的特征点i,在已知所述特征点二维坐标位置的情况和所述特征点对应地图点的三维坐标位置的情况下,可利用如下公式计算三维向量参数:
其中,K是拍摄设备的内部参数,,R为拍摄设备坐标系到时间坐标系的旋转矩阵,即所述拍摄设备的朝向信息,是特征点i在图像中的二维坐标位置,是特征点i对应的地图点的三维坐标位置,具体的,i的取值为1、2、3···、n,其中,n为匹配成功的特征点的个数,T为三维向量参数。
根据得到的匹配成功的特征点的个数,可以得到n个上述公式对应的方程,最后联立得到对应的方程组,利用梯度下降方法求解得到三维向量参数T。
再利用如下公式,求解拍摄设备的三维位置坐标O:
O=-R-1*T
即,利用匹配成功的特征点的二维坐标位置和所述特征点对应的地图点的三维坐标位置,结合相机内部参数和相机的朝向信息,最终可以得到相机的三维坐标位置。
进一步的,在球面模式下,智能设备还会采用角点检测算法,补充加入的新的特征点,并基于当前的球面半径r和当前读取的一个视频帧对应的拍摄设备的三维坐标位置,计算新的特征点对应的地图点的三维坐标位置。
具体的,以第2帧为例中,智能设备会假设所有新的特征点对应的地图点同样分布在以拍摄设备的三维坐标位置O2为中心的,球面半径为r的球面上,那么,根据已计算获得的第2帧对应的拍摄设备的三维坐标位置O2,以及这些新的特征点在第2帧中的二维坐标位置,以及球面半径r,即可计算出新的特征点对应的地图点的三维坐标位置。
步骤203:智能设备从当前读取的一个视频帧中提取出与上一个视频关键帧相匹配的视差特征点,所述视差特征点为视差值达到预设的视差门限值的特征点,并判断视差特征点的数量是否达到预设阈值?若是,则执行步骤205;否则,执行步骤204。
例如,参阅图4所示,本公开中,假设智能设备在读取到第2帧时,在将第2帧与第1帧(视频关键帧)进行特征点匹配后,提取出20个视差值达到1度(视差门限值)的视差特征点,而假设视差特征点的数量门限值为50个,显然,视差特征点的数量不够,因此,智能设备会继续保持在球面模式,并执行步骤204。
在提取视差特征点时,智能设备是将当前读取的一个视频帧与上一个视频关键帧进行特征点匹配,如,读取到第2帧时,是将第2帧与第1帧进行特征点匹配从而提取视差特征点,而在读取到第3帧、第4帧……第i帧时,均是与第1帧进行特征点匹配从而提取视差特征点。
又例如,参阅图4所示,本公开中,同样假设智能设备在读取到第i+1帧时,在将第i+1帧与第1帧(视频关键帧)进行特征点匹配后,提取出60个视差值达到1度(视差门限值)的视差特征点,而假设视差特征点的数量门限值为50个,显然,视差特征点的数量足够,因此,智能设备会切换至地图模式,进行执行步骤205。
步骤204:智能设备判断视频帧是否已处理完毕,若是,则结束流程;否则,返回步骤201。
具体的,通过执行步骤201-步骤204这个循环过程,智能设备可以从第1帧处理至第i帧,智能设备在这个阶段,均处于球面模式,那么,第3帧至第i帧所对应的拍摄设备的三维坐标位置,可以采用与第2帧相同的方式计算获得,在此不再赘述。
步骤205:智能设备调用地图模式,对三维坐标系统重新进行初始化,计算当前读取的一个视频帧对应的拍摄设备的三维坐标位置,以及提取出的视差特征点对应的地图点的三维坐标位置,并根据上一个视频帧对应的球面半径r进行尺度缩放。
在所述地图模式下,所有地图点都分布在以视频流中第一帧视频帧对应的拍摄设备的三维坐标位置为原点的三维坐标系下,基于经过尺度调整的地图点的三维坐标位置,以及三角化和PnP算法可计算拍摄设备的三维坐标位置。具体的,智能设备会采用所述匹配成功的视差特征点在当前读取的一个视频帧与上一个视频关键帧之间的坐标匹配关系,结合所述上一个视频关键帧对应的拍摄设备的三维坐标位置,计算当前读取的一个视频关键帧对应的拍摄设备的三维坐标位置,即对三维坐标系重新进行初始化,具体包括:采用所述匹配成功的视差特征点在当前读取的一个视频帧中的二维坐标位置,以及在上一个视频关键帧中的二维坐标位置,结合所述拍摄设备当前的朝向信息,计算所述拍摄设备的当前的运动方向向量,再基于所述上一个视频关键帧对应的拍摄设备的三维坐标位置和所述运动方向向量,计算所述当前读取的一个视频帧对应的拍摄设备的三维坐标位置。
然后,智能设备会重新计算所述匹配成功的各个视差特征点对应的地图点的三维坐标位置,具体包括:根据所述匹配成功的各个视差特征点在所述上一个视频关键帧中的二维坐标位置,所述上一个视频关键帧对应的拍摄设备的三维坐标位置,所述匹配成功的各个视差特征点在所述当前读取的一个视频帧中的二维坐标位置,以及所述当前读取的一个视频帧对应的拍摄设备的三维坐标位置,采用三角化算法,重新计算各个特征点对应的地图点的三维坐标位置。
最后,计算获得的各个地图点的三维坐标位置,到所述当前读取的一个视频关键帧对应的拍摄设备的三维坐标位置的第一平均距离(以下记为第一平均距离X),并利用所述上一个视频帧中球面模式对应的球面半径r与第一平均距离X的比值,对获得的各个地图点的三维坐标位置进行尺度调整。
这相当于,在确定拍摄设备已经能够获得足够的视差特征点时,智能设备由球面模式切换至地图模式,并在地图模式下重新进行了三维坐标系的初始化,以及将三维坐标系的尺度按照上一帧对应的球面模式下的球面半径r进行了缩放,这样,便实现了地图模式和球面模式之间的三维坐标系尺度的平滑过渡,使得后续使用增强现实的过程中不会出现地图点的三维坐标位置无法衔接的问题。
例如,参阅图4和图6所示,本公开中,智能设备读取完毕第i帧后(此时还处于球面模式),继续读取第i+1帧,并采用光流算法,将第i+1帧与第1帧进行特征点匹配,提取出匹配成功的Pi+1、Qi+1……Zi+1等等60个视差特征点,达到预设阈值50个,则智能设备会在第i+1帧切换至地图模式,重新进行三维坐标系的初始化。
参阅图6和图7所示,此时,智能设备会基于视差特征点P1、Q1……Z1的二维坐标位置,视差特征点Pi+1、Qi+1……Zi+1的二维坐标位置,以及拍摄设备在第i+1帧的当前的朝向信息,计算拍摄设备的运动方向向量O1-Oi+1,再基于拍摄设备在第i帧的三维坐标位置O1和运动方向向量O1-Oi+1,计算拍摄设备在第i+1帧的三维坐标位置Oi+1,此时,O1-Oi+1可以作为新的单位对三维坐标系重新进行初始化。
接着,智能设备会采用三角化算法,重新计算各个视差特征点的三维坐标位置,如,参阅图7所示,基于直接方程O1-P1和直接方程Oi+1-Pi+1,重新计算地图点P的三维坐标位置,以及此类推,可以计算有所有匹配成功的视差特征点对应的地图点的三维坐标位置。
最后,智能设备根据重新计算的地图点P、Q……Z的三维坐标位置,计算地图点P、Q……Z到Qi+1的平均距离X,再将重新计算的地图点P、Q……Z的三维坐标位置,分别乘以第i帧中智能设备使用的球面半径r与第一平均距离X的比值,即r/X,从而完成了重新初始化的三维坐标系的尺度缩放。
进一步地,智能设备还会在采用角点检测算法,在当前读取的一个视频帧中识别出新的特征点,并保存所述新的特征点,但是新加入的特征点此时还不能计算三维坐标位置,必须在到达下一个视频关键帧时,通过光流算法实现了特征点的成功匹配,才能采用PnP算法计算相应的三维坐标位置,在此不再赘述。
步骤206:智能设备读取下一个视频帧,并从当前读取的一个视频帧中提取出与上一个视频帧相匹配的特征点。
本公开中,在地图模式下计算拍摄设备的三维坐标位置时,也是将当前读取的一个视频帧与上一个视频帧进行特征点匹配,如,在计算第i+2帧对应的拍摄设备的三维坐标位置时,是将第i+2帧与第i+1帧进行特征点匹配,而在计算第i+3帧对应的拍摄设备的三维坐标位置时,是将第i+3帧与第i+2帧进行特征点匹配,以此类推,将不再赘述。
步骤207:智能设备调用地图模式,计算当前读取的一个视频帧对应的拍摄设备的三维坐标位置。
具体的,智能设备调用地图模式计算拍摄设备的三维坐标位置时,需要基于匹配成功的特征点在当前读取的一个视频帧中的二维坐标位置,以及匹配成功的特征点对应的地图点的三维坐标位置,采用PnP算法计算当前读取的一个视频帧对应的拍摄设备的三维坐标位置。
例如,参阅图8所示,智能设备将第i+1帧与第i+2帧进行特征点匹配后,在第i+2帧中提取出的匹配成功的特征点Pi+2和Ri+2,其分别对应第i+1帧中的特征点Pi+1和Ri+1,那么,智能设备基于特征点Pi+2的二维坐标位置,以及地图点P的三维坐标位置,可以得到一个求解三维向量参数的方程,同理,可以根据匹配成功的特征点建立多个求解三维向量参数的方程,联立方程组后基于梯度下降方法求解三维向量参数,进一步求解出拍摄设备的三维坐标位置。具体的采用PnP算法计算拍摄设备三维坐标位置的过程已在步骤202中进行详细描述在此不再赘述。
进一步地,在地图模式下,由于智能设备在读取视频关键帧时,会通过角点检测算法在视频关键帧中补充加入新的特征点,因此,在后续读取视频帧的过程中,在匹配成功的特征点中,可能会存在部分特征点尚未确定对应的地图点的三维坐标位置,那么,如果此类特征点在数量过多,则智能设备无法采用PnP算法计算当前读取的一个视频帧对应的拍摄设备的三维坐标位置。
例如,仍参阅图8所示,智能设备获得地图点P和对应的特征点Pi+2以及地图点R和对应的Ri+2后,假设地图点P和地图点R的三维坐标位置均未知,那么,智能设备则无法根据PnP算法,计算第i+2帧对应的拍摄设备的三维坐标位置Oi+2。
后续实施例中,将在读取到第j帧和第j+1帧时,仔细介绍这种情况的处理方式,此时暂不赘述。
步骤208:智能设备判断拍摄设备是否定位成功?若是,则执行步骤209;否则,执行步骤212。
如前所述,由于匹配成功的特征点中,可能存在尚未确定地图点的特征点,因此,有可能无法成功定位拍摄设备在当前读取的一个视频帧的三维坐标位置,那么,如果能够成功定位,则智能设备会继续维持地图模式,如果无法成功定位,则智能设备会由地图模式切换至球面模式,以保证系统能够顺利地继续工作。
步骤209:智能设备从当前读取的一个视频帧中提取出与上一个视频关键帧相匹配的视差特征点,并判断视差特征点的数量是否达到预设阈值?若是,则执行步骤210;否则,执行步骤211。
例如,参阅图4和图8所示,本公开中,假设智能设备在读取到第i+2帧时,在将第i+2帧与第i+1帧进行特征点匹配后(此时上一个视频关键帧和上一个视频帧是同一帧),仅提取出两个视差特征点Pi+1和Ri+1,而假设视差特征点的数量门限值为50个,显然,视差特征点的数量不够,因此,智能设备会继续保持在地图模式,而不会将第i+2帧设置为新的视频关键帧。
其中,视差特征点数量不够,可能会存在很多原因;如,拍摄设备的位移不够,匹配成功的特征点中没有足够数量的特征点的视差值达到视差门限值;又如,拍摄设备抖动或遮挡,导致没有提取出足够数量的匹配成功的特征点。
又例如,参阅图4和图9所示,本公开中,假设智能设备在读取到第i+k帧时,采用光流算法,将第i+k帧与第i+1帧进行特征点匹配,并在第i+k帧中提取出匹配成功的Pi+1、Qi+1……Zi+1等等60个视差特征点,达到预设阈值50个,则智能设备会将第i+k帧设置为新的视频关键帧。
步骤210:智能设备采用三角化算法,计算提取出的视差特征点对应的地图点的三维坐标位置,并将当前读取的一个视频帧设置为新的视频关键帧。
本公开中,在已提取的视差特征点中,部分视差特征点可能尚未匹配对应的地图点,因此,智能设备会采用三角化算法,针对这部分视差特征点计算对应的地图点的地图点的三维坐标位置。
具体的,参阅图6和图9所示,假设地图点P、Q……Z点此时均未计算三维坐标位置,则智能设备会基于视差特征点Pi+1、Qi+1……Zi+1的二维坐标位置,视差特征点Pi+k、Qi+k……Zi+k的二维坐标位置,第i+1帧对应的拍摄设备的三维坐标位置Oi+1,第i+k帧对应的拍摄设备的三维坐标位置Oi+k(已在步骤207中计算获得),获得Oi+1-Pi+1和Oi+k-Pi+k,Oi+1-Qi+1和Oi+k-Qi+k,……Oi+1-Zi+1和Oi+k-Zi+k等一系列直线方程,从而计算出P、Q……Z的三维坐标位置。
步骤211:智能设备判断视频帧是否处理完毕?若是,则结束流程;否则,返回步骤206。
步骤212:智能设备调用球面模式,重新设置球面半径r,并基于新的球面半径r,计算当前读取的一个视频帧中各个匹配成功的特征点对应的地图点的三维坐标位置,接着,返回步骤201。
例如,参阅图4和图10所示,智能设备在读取到第j+1帧时,将第j+1帧与第j帧进行特征点匹配后,假设基于匹配成功的特征点Uj,Vj,Uj+1和Vj+1,无法成功计算出第j+1帧对应的拍摄设备的三维坐标位置,则智能设备会在第j帧由地图模式切换至球面模式。
具体的,在由地图模式切换至球面模式后,智能设备会将上一个视频帧(非上一个视频关键帧,就是相邻的上一个视频帧)对应的拍摄设备的三维坐标位置作为当前读取的一个视频帧对应的拍摄设备的三维坐标位置,以及将当前读取的一个视频帧设置为视频关键帧,接着,智能设备计算当前读取的一个视频帧中,所述匹配成功的特征点对应的地图点的三维坐标位置,和所述当前读取的一个视频帧对应的拍摄设备的三维坐标位置之间的平均距离(后续记为平均距离Y),再将平均距离X设置为最新的球面半径r(即对r进行了更新)。
最后,智能设备可以基于最新的球面半径r,以及所述当前读取的一个视频帧对应的拍摄设备的三维坐标位置,重新计算所述匹配成功的各个特征点对应的地图点的三维坐标位置。
至此,智能设备又进入了球面模式,则可以返回步骤201,继续读取后续的视频帧并球面模式进行处理。
例如,参阅图4和图10所示,此时,智能设备会将第j帧对应的拍摄设备的三维坐标位置Oj,设置为第j+1帧对应的拍摄设备的三维坐标位置Oj+1,接着,智能设备计算第j+1帧中,匹配成功的特征点Uj+1和Vj+1对应的地图点U和V的三维坐标位置,和Oj或Oj+1(两者相同)之间的平均距离(记为平均距离Y),再将平均距离Y设置为最新的球面半径r(即对r进行了更新),接着,基于最新的球面半径r和Oj+1,重新计算Uj+1和Vj+1对应的地图点U和V的三维坐标位置。
这相当于,在拍摄设备无法获得足够的视差特征点(如,拍摄设备发生了抖动、遮挡等等)时,智能设备会再次由地图模式进行球面模式,并在球面模式下重新进行了三维坐标系的初始化,以及沿用了地图模式下的各个地图点到最新的拍摄设备的三维位置坐标的平均距离,来设置最新的球面半径,因此,便再次实现了球面模式和地图模式之间的三维坐标系尺度的平滑过渡,使得后续使用增强现实的过程中不会出现地图点的三维坐标位置无法衔接的问题。
进一步的,参阅图1所示,结合图1介绍的背景技术内容可知,智能设备每次执行地图模式时均会执行一次初始化,而在初始化过程中,三维坐标系的单位长度即由O2-O1的真实长度确定,而如果需要重新执行初始化,新的O2-O1长度可能会变化,因此导致三维坐标系的尺度发生变化,从而导致重新建立的坐标系下的数据和先前坐标系下建立的数据无法对接,即前后建立的三维坐标系中对于同一视频帧中相机的三维坐标位置不同,致使后续计算出的特征点的三维坐标位置发生错乱,从而无法准确地计算各个地图点的三维坐标位置,进而严重影响增强现实技术的使用效果。
因此,本公开实施例中,每一次因客观原因(如,拍摄设备抖动、遮挡)而无法准确计算出拍摄设备当前的三维坐标位置时,智能设备均会进入球面模式,基于上一次地图模式下的场景平均景深(即三维坐标系的尺度)重新设置球面半径r,并采用当前设置的球面半径r粗略估算出拍摄设备当前的三维坐标位置,以保证增功现实可能的持续性使用;另一方面,在确定已获得足够多的视差特征点时,智能设备又会切换至地图模式,对三维坐标系重新进行初始化,并基于上一次球面模式下的球面半径,对三维坐标系的尺度进行缩放,这样,可以在地图模式和球面模式之间,保证三维坐标系的平均景深的平滑过渡,从而保证了保证地图模式和球面模式之间的顺畅切换及衔接,进而保证了增强现实功能不被中断或延迟,有效提高了使用可靠性。
进一步地,在由地图模式切换至球面模式后,智能设备还会采用角点检测算法,在当前读取的一个视频帧中识别出新的特征点,并保存所述新的特征点,以及采用最新的球面半径r,以及当前读取的一个视频帧对应的拍摄设备的三维坐标位置,计算各个新的特征点对应的地图点的三维坐标位置。
具体举例已在之前的公开中介绍,在此不再赘述。
基于上述公开,参阅图11所示,本公开提供一种智能设备,至少包括球面模式单元1101和地图模式单元1102,其中,
球面模式单元1101,被配置为将视频流中的第一个视频帧作为视频关键帧,并将所述第一个视频帧对应的拍摄设备的位置作为三维坐标系的原点,启用球面模式,以及设定球面半径,其中,在所述球面模式下,假设视频帧中所有特征点对应的地图点,与拍摄设备当前的三维坐标位置的距离均为所述球面半径,继续采用球面模式读取所述视频流中后续的视频帧,每读取一个视频帧,基于当前设置的球面半径,计算当前读取的一个视频帧对应的拍摄设备的三维坐标位置;
地图模式单元1102,,被配置为在确定当前读取的一个视频帧与上一个视频关键帧之间匹配成功的视差特征点的数量达到预设阈值时,切换至地图模式,对三维坐标系重新进行初始化,以及计算所述匹配成功的视差特征点对应的地图点的三维坐标位置,到所述当前读取的一个视频帧对应的拍摄设备的三维坐标位置的第一平均距离,并采用采用上一个视频帧中球面模式对应的球面半径与所述第一平均距离的比值,对已获得的各个地图点的三维坐标位置进行尺度调整;其中,所述视差特征点为视差值达到预设的视差门限值的特征点。
可选的,所述启用球面模式,设定球面半径之后,所述球面模式单元1101进一步被配置为:
采用角点检测算法,在所述第一个视频帧中提取出特征点;
基于所述原点,所述特征点在所述第一个视频帧中的二维坐标位置,以及所述球面半径,计算所述提取出的特征点中各个特征点对应的地图点的三维坐标位置。
可选的,所述基于当前设置的球面半径,计算当前读取的一个视频帧对应的拍摄设备的三维坐标位置时,所述球面模式单元1101被配置为:
将当前读取的一个视频帧与上一个视频帧进行特征点匹配,提取出匹配成功的特征点;
基于所述匹配成功的特征点对应的地图点的三维坐标位置,所述匹配成功的特征点在当前读取的一个视频帧中的二维坐标位置,以及所述当前设置的球面半径,采用PnP算法,计算当前读取的一个视频帧对应的拍摄设备的三维坐标位置。
可选的,所述切换至地图模式,对三维坐标系重新进行初始化时,所述地图模式单元1102被配置为:
基于所述匹配成功的视差特征点在当前读取的一个视频帧以及上一个视频关键帧中的二维坐标位置、所述拍摄设备当前的朝向信息,计算所述拍摄设备当前的运动方向向量;
基于所述上一个视频关键帧对应的拍摄设备的三维坐标位置和所述运动方向向量,重新计算所述当前读取的一个视频帧对应的拍摄设备的三维坐标位置;
基于所述匹配成功的视差特征点在当前读取的一个视频帧以及上一个视频关键帧中的二维坐标位置,结合重新计算的所述当前读取的一个视频帧对应的拍摄设备的三维坐标位置,采用三角化算法,重新计算所述匹配成功的视差特征点计算对应的地图点的三维坐标位置。
可选的,所述重新计算所述匹配成功的视差特征点计算对应的地图点的三维坐标位置之后,所述地图模式单元1102进一步被配置为:
继续采用地图模式读取视频流中后续的视频帧,每读取一个视频帧,对当前读取的一个视频帧和上一个视频帧进行特征点匹配,基于匹配成功的特征点在当前读取的一个视频帧中的二维坐标位置,所述匹配成功的特征点对应的地图点的三维坐标位置,采用PnP算法,计算所述当前读取的一个视频帧对应的拍摄设备的三维坐标位置。
可选的,所述计算所述当前读取的一个视频帧对应的拍摄设备的三维坐标位置之后,所述地图模式单元1102进一步被配置为:
将所述当前读取的一个视频帧与所述上一个视频关键帧进行特征点匹配,提取出视差特征点;
确定提取出的所述视差特征点的数量达到所述预设阈值时,将所述当前读取的一个视频帧设置为视频关键帧;
采用角点检测算法,在所述当前读取的一个视频帧中提取出新的特征点。
可选的,确定未成功计算出所述当前读取的一个视频帧对应的拍摄设备的三维坐标位置时,所述地图模式单元1102进一步被配置为:
切换至球面模式,并将上一个视频帧对应的拍摄设备的三维坐标位置作为当前读取的一个视频帧对应的拍摄设备的三维坐标位置,以及将当前读取的一个视频帧设置为视频关键帧;
计算当前读取的一个视频帧中,所述匹配成功的特征点对应的地图点的三维坐标位置,和所述当前读取的一个视频帧对应的拍摄设备的三维坐标位置之间的第二平均距离,再将所述第二平均距离设置为最新的球面半径;
基于所述最新的球面半径,所述当前读取的一个视频帧对应的拍摄设备的三维坐标位置,以及所述匹配成功的特征点在所述当前读取的一个视频帧中的二维坐标位置,重新计算所述匹配成功的特征点对应的地图点的三维坐标位置。
可选的,所述重新计算所述匹配成功的特征点对应的地图点的三维坐标位置后,所述地图模式单元1102进一步被配置为:
采用角点检测算法,在当前读取的一个视频帧中识别出新的特征点,以及采用所述最新的球面半径,结合当前读取的一个视频帧对应的拍摄设备的三维坐标位置,计算各个新的特征点对应的地图点的三维坐标位置。
基于同一发明构思,参阅图12所示,本公开提供一种智能设备,至少包括存储器1201和处理器1202,其中,
存储器,用于存储可执行指令;
处理器,用于读取并执行所述存储器中存储的可执行指令,以实现上述任一种方法。
基于同一发明构思,本公开提供一种存储介质,当所述存储介质中的指令由处理器执行时,使得能够执行上述任一种方法。
基于上述公开,本公开中,在启动增强现实功能时,采用球面模式进行初始化,采用预设的球面半径,粗略估算出各个特征点对应的地图点的三维坐标位置,从而节省初始化耗时,以便迅速进入增强现实的工作模式,减少用户等待时长,进一步的,在在确定拍摄设备已经能够获得足够的视差特征点时,智能设备再由球面模式切换至地图模式,并在地图模式下重新进行了三维坐标系的初始化,以及将三维坐标系的尺度按照上一帧对应的球面模式下的球面半径进行了缩放。这样,便实现了地图模式和球面模式之间的三维坐标系尺度的平滑过渡,避免出现地图点的三维坐标位置无法衔接的问题,保证了增加现实功能的持续性使用。
本领域内的技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本公开的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本公开范围的所有变更和修改。
显然,本领域的技术人员可以对本公开实施例进行各种改动和变型而不脱离本公开实施例的精神和范围。这样,倘若本公开实施例的这些修改和变型属于本公开权利要求及其等同技术的范围之内,则本公开也意图包含这些改动和变型在内。
Claims (10)
1.一种拍摄设备的定位方法,其特征在于,包括:
将视频流中的第一个视频帧作为视频关键帧,并将所述第一个视频帧对应的拍摄设备的位置作为三维坐标系的原点,启用球面模式,以及设定球面半径,其中,在所述球面模式下,假设视频帧中所有特征点对应的地图点,与拍摄设备当前的三维坐标位置的距离均为所述球面半径;
继续采用球面模式读取所述视频流中后续的视频帧,每读取一个视频帧,基于当前设置的球面半径,计算当前读取的一个视频帧对应的所述拍摄设备的三维坐标位置;
在确定当前读取的一个视频帧与上一个视频关键帧之间匹配成功的视差特征点的数量达到预设阈值时,切换至地图模式:
对三维坐标系重新进行初始化,计算所述匹配成功的视差特征点对应的地图点的三维坐标位置,到所述当前读取的一个视频帧对应的拍摄设备的三维坐标位置的第一平均距离;
采用上一个视频帧中球面模式对应的球面半径与所述第一平均距离的比值,对已获得的各个地图点的三维坐标位置进行尺度调整,其中,所述视差特征点为视差值达到预设的视差门限值的特征点。
2.如权利要求1所述的方法,其特征在于,所述启用球面模式,设定球面半径之后,进一步包括:
采用角点检测算法,在所述第一个视频帧中提取出特征点;
基于所述原点,所述特征点在所述第一个视频帧中的二维坐标位置,以及所述球面半径,计算所述提取出的特征点中各个特征点对应的地图点的三维坐标位置。
3.如权利要求1所述的方法,其特征在于,基于当前设置的球面半径,计算当前读取的一个视频帧对应的拍摄设备的三维坐标位置,包括:
将当前读取的一个视频帧与上一个视频帧进行特征点匹配,提取出匹配成功的特征点;
基于所述匹配成功的特征点对应的地图点的三维坐标位置,所述匹配成功的特征点在当前读取的一个视频帧中的二维坐标位置,以及所述当前设置的球面半径,采用PnP算法,计算当前读取的一个视频帧对应的拍摄设备的三维坐标位置。
4.如权利要求1-3任一项所述的方法,其特征在于,所述切换至地图模式,对三维坐标系重新进行初始化,包括:
基于所述匹配成功的视差特征点在当前读取的一个视频帧以及上一个视频关键帧中的二维坐标位置、所述拍摄设备当前的朝向信息,计算所述拍摄设备当前的运动方向向量;
基于所述上一个视频关键帧对应的拍摄设备的三维坐标位置和所述运动方向向量,重新计算所述当前读取的一个视频帧对应的拍摄设备的三维坐标位置;
基于所述匹配成功的视差特征点在当前读取的一个视频帧以及上一个视频关键帧中的二维坐标位置,结合重新计算的所述当前读取的一个视频帧对应的拍摄设备的三维坐标位置,采用三角化算法,重新计算所述匹配成功的视差特征点计算对应的地图点的三维坐标位置。
5.如权利要求4所述的方法,其特征在于,所述重新计算所述匹配成功的视差特征点计算对应的地图点的三维坐标位置之后,进一步包括:
继续采用地图模式读取视频流中后续的视频帧,每读取一个视频帧,对当前读取的一个视频帧和上一个视频帧进行特征点匹配,基于匹配成功的特征点在当前读取的一个视频帧中的二维坐标位置,所述匹配成功的特征点对应的地图点的三维坐标位置,采用PnP算法,计算所述当前读取的一个视频帧对应的拍摄设备的三维坐标位置。
6.如权利要求5所述的方法,其特征在于,所述计算所述当前读取的一个视频帧对应的拍摄设备的三维坐标位置之后,进一步包括:
将所述当前读取的一个视频帧与所述上一个视频关键帧进行特征点匹配,提取出视差特征点;
确定提取出的所述视差特征点的数量达到所述预设阈值时,将所述当前读取的一个视频帧设置为视频关键帧;
采用角点检测算法,在所述当前读取的一个视频帧中提取出新的特征点。
7.如权利要求5所述的方法,其特征在于,确定未成功计算出所述当前读取的一个视频帧对应的拍摄设备的三维坐标位置时,进一步包括:
切换至球面模式,并将上一个视频帧对应的拍摄设备的三维坐标位置作为当前读取的一个视频帧对应的拍摄设备的三维坐标位置,以及将当前读取的一个视频帧设置为视频关键帧;
计算当前读取的一个视频帧中,所述匹配成功的特征点对应的地图点的三维坐标位置,和所述当前读取的一个视频帧对应的拍摄设备的三维坐标位置之间的第二平均距离,再将所述第二平均距离设置为最新的球面半径;
基于所述最新的球面半径,所述当前读取的一个视频帧对应的拍摄设备的三维坐标位置,以及所述匹配成功的特征点在所述当前读取的一个视频帧中的二维坐标位置,重新计算所述匹配成功的特征点对应的地图点的三维坐标位置。
8.如权利要求7所述的方法,其特征在于,所述重新计算所述匹配成功的特征点对应的地图点的三维坐标位置后,进一步包括:
采用角点检测算法,在当前读取的一个视频帧中识别出新的特征点,以及采用所述最新的球面半径,结合当前读取的一个视频帧对应的拍摄设备的三维坐标位置,计算各个新的特征点对应的地图点的三维坐标位置。
9.一种增强现实中拍摄设备的定位装置,其特征在于,包括:
球面模式单元,被配置为将视频流中的第一个视频帧作为视频关键帧,并将所述第一个视频帧对应的拍摄设备的位置作为三维坐标系的原点,启用球面模式,以及设定球面半径,其中,在所述球面模式下,假设视频帧中所有特征点对应的地图点,与拍摄设备当前的三维坐标位置的距离均为所述球面半径,继续采用球面模式读取所述视频流中后续的视频帧,每读取一个视频帧,基于当前设置的球面半径,计算当前读取的一个视频帧对应的拍摄设备的三维坐标位置;
地图模式单元,被配置为在确定当前读取的一个视频帧与上一个视频关键帧之间匹配成功的视差特征点的数量达到预设阈值时,切换至地图模式,对三维坐标系重新进行初始化,以及计算所述匹配成功的视差特征点对应的地图点的三维坐标位置,到所述当前读取的一个视频帧对应的拍摄设备的三维坐标位置的第一平均距离,并采用上一个视频帧中球面模式对应的球面半径与所述第一平均距离的比值,对已获得的各个地图点的三维坐标位置进行尺度调整;其中,所述视差特征点为视差值达到预设的视差门限值的特征点。
10.一种电子设备,其特征在于,包括:
存储器,用于存储可执行指令;
处理器,用于读取并执行所述存储器中存储的可执行指令,以实现如权利要求1至8中任一项所述的拍摄设备的定位方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910759833.9A CN110490131B (zh) | 2019-08-16 | 2019-08-16 | 一种拍摄设备的定位方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910759833.9A CN110490131B (zh) | 2019-08-16 | 2019-08-16 | 一种拍摄设备的定位方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110490131A true CN110490131A (zh) | 2019-11-22 |
CN110490131B CN110490131B (zh) | 2021-08-24 |
Family
ID=68551573
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910759833.9A Active CN110490131B (zh) | 2019-08-16 | 2019-08-16 | 一种拍摄设备的定位方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110490131B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111105467A (zh) * | 2019-12-16 | 2020-05-05 | 北京超图软件股份有限公司 | 一种图像标定方法、装置及电子设备 |
CN112991441A (zh) * | 2019-12-12 | 2021-06-18 | 北京达佳互联信息技术有限公司 | 相机定位方法、装置、电子设备及存储介质 |
CN113361365A (zh) * | 2021-05-27 | 2021-09-07 | 浙江商汤科技开发有限公司 | 定位方法和装置、设备及存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130271625A1 (en) * | 2012-04-12 | 2013-10-17 | Qualcomm Incorporated | Photometric registration from arbitrary geometry for augmented reality |
CN105023266A (zh) * | 2014-04-29 | 2015-11-04 | 高德软件有限公司 | 增强现实实现方法、装置和终端设备 |
CN106937531A (zh) * | 2014-06-14 | 2017-07-07 | 奇跃公司 | 用于产生虚拟和增强现实的方法和系统 |
JP6275310B1 (ja) * | 2017-05-26 | 2018-02-07 | 株式会社テクテック | 拡張現実表示システム、プログラム及び方法 |
CN109035334A (zh) * | 2018-06-27 | 2018-12-18 | 腾讯科技(深圳)有限公司 | 位姿的确定方法和装置、存储介质及电子装置 |
CN109509230A (zh) * | 2018-11-13 | 2019-03-22 | 武汉大学 | 一种应用于多镜头组合式全景相机的slam方法 |
CN109816696A (zh) * | 2019-02-01 | 2019-05-28 | 西安全志科技有限公司 | 一种机器人定位与建图方法、计算机装置及计算机可读存储介质 |
CN109902725A (zh) * | 2019-01-31 | 2019-06-18 | 北京达佳互联信息技术有限公司 | 移动目标的检测方法、装置及电子设备和存储介质 |
CN109974693A (zh) * | 2019-01-31 | 2019-07-05 | 中国科学院深圳先进技术研究院 | 无人机定位方法、装置、计算机设备及存储介质 |
CN110047142A (zh) * | 2019-03-19 | 2019-07-23 | 中国科学院深圳先进技术研究院 | 无人机三维地图构建方法、装置、计算机设备及存储介质 |
-
2019
- 2019-08-16 CN CN201910759833.9A patent/CN110490131B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130271625A1 (en) * | 2012-04-12 | 2013-10-17 | Qualcomm Incorporated | Photometric registration from arbitrary geometry for augmented reality |
CN105023266A (zh) * | 2014-04-29 | 2015-11-04 | 高德软件有限公司 | 增强现实实现方法、装置和终端设备 |
CN106937531A (zh) * | 2014-06-14 | 2017-07-07 | 奇跃公司 | 用于产生虚拟和增强现实的方法和系统 |
JP6275310B1 (ja) * | 2017-05-26 | 2018-02-07 | 株式会社テクテック | 拡張現実表示システム、プログラム及び方法 |
CN109035334A (zh) * | 2018-06-27 | 2018-12-18 | 腾讯科技(深圳)有限公司 | 位姿的确定方法和装置、存储介质及电子装置 |
CN109509230A (zh) * | 2018-11-13 | 2019-03-22 | 武汉大学 | 一种应用于多镜头组合式全景相机的slam方法 |
CN109902725A (zh) * | 2019-01-31 | 2019-06-18 | 北京达佳互联信息技术有限公司 | 移动目标的检测方法、装置及电子设备和存储介质 |
CN109974693A (zh) * | 2019-01-31 | 2019-07-05 | 中国科学院深圳先进技术研究院 | 无人机定位方法、装置、计算机设备及存储介质 |
CN109816696A (zh) * | 2019-02-01 | 2019-05-28 | 西安全志科技有限公司 | 一种机器人定位与建图方法、计算机装置及计算机可读存储介质 |
CN110047142A (zh) * | 2019-03-19 | 2019-07-23 | 中国科学院深圳先进技术研究院 | 无人机三维地图构建方法、装置、计算机设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
JU-YI LIN 等: "Augmented Reality Assisted Photo Positioning for Mobile Devices", 《IEEE》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112991441A (zh) * | 2019-12-12 | 2021-06-18 | 北京达佳互联信息技术有限公司 | 相机定位方法、装置、电子设备及存储介质 |
CN111105467A (zh) * | 2019-12-16 | 2020-05-05 | 北京超图软件股份有限公司 | 一种图像标定方法、装置及电子设备 |
CN111105467B (zh) * | 2019-12-16 | 2023-08-29 | 北京超图软件股份有限公司 | 一种图像标定方法、装置及电子设备 |
CN113361365A (zh) * | 2021-05-27 | 2021-09-07 | 浙江商汤科技开发有限公司 | 定位方法和装置、设备及存储介质 |
WO2022247548A1 (zh) * | 2021-05-27 | 2022-12-01 | 上海商汤智能科技有限公司 | 定位方法和装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110490131B (zh) | 2021-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Tanskanen et al. | Live metric 3D reconstruction on mobile phones | |
CN106570507B (zh) | 单目视频场景三维结构的多视角一致的平面检测解析方法 | |
Cvišić et al. | Stereo odometry based on careful feature selection and tracking | |
EP3182373B1 (en) | Improvements in determination of an ego-motion of a video apparatus in a slam type algorithm | |
CN105374019B (zh) | 一种多深度图融合方法及装置 | |
Kolev et al. | Turning mobile phones into 3D scanners | |
EP2751777B1 (en) | Method for estimating a camera motion and for determining a three-dimensional model of a real environment | |
KR101532864B1 (ko) | 모바일 디바이스들에 대한 평면 맵핑 및 트래킹 | |
KR101616926B1 (ko) | 영상 처리 장치 및 방법 | |
US20150193935A1 (en) | Online reference generation and tracking for multi-user augmented reality | |
CN110490131A (zh) | 一种拍摄设备的定位方法、装置、电子设备及存储介质 | |
KR20140009585A (ko) | Rgbd 카메라를 이용한 머리 포즈 추정 | |
CN111127524A (zh) | 一种轨迹跟踪与三维重建方法、系统及装置 | |
JP6985897B2 (ja) | 情報処理装置およびその制御方法、プログラム | |
US20150138193A1 (en) | Method and device for panorama-based inter-viewpoint walkthrough, and machine readable medium | |
Chen et al. | A real-time markerless augmented reality framework based on SLAM technique | |
CN109410316A (zh) | 物体的三维重建的方法、跟踪方法、相关装置及存储介质 | |
CN113689503B (zh) | 目标对象的姿态检测方法、装置、设备及存储介质 | |
CN112102342B (zh) | 平面轮廓识别方法、装置、计算机设备和存储介质 | |
CN109902675B (zh) | 物体的位姿获取方法、场景重构的方法和装置 | |
CN107092348B (zh) | 一种沉浸式虚拟现实漫游系统中的视觉定位标识布局方法 | |
CN110119189A (zh) | Slam系统的初始化、ar控制方法、装置和系统 | |
Xu et al. | Video-object segmentation and 3D-trajectory estimation for monocular video sequences | |
CN110009683B (zh) | 基于MaskRCNN的实时平面上物体检测方法 | |
Xu et al. | Multi-scale voxel hashing and efficient 3D representation for mobile augmented reality |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
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 |