相机姿态确定方法、装置、存储介质及电子设备与流程

文档序号:19611694发布日期:2020-01-03 14:17阅读:296来源:国知局
相机姿态确定方法、装置、存储介质及电子设备与流程

本申请涉及网络安全领域,尤其涉及一种相机姿态确定方法、装置、存储介质及电子设备。



背景技术:

计算机视觉是当前工业和科研的热点领域,视觉slam(simultaneouslocalizationandmapping,同时定位与地图构建)是指搭载相机的主体,在没有环境先验信息的情况下,于运动过程中建立环境的模型,同时估计自己的运动的技术。

增强现实(augmentedreality,ar)是虚拟现实(virtualreality,vr)的一种变化形式,能够让用户看到真实世界,并且将虚拟的物体叠加或者组合到真实世界中,因此是一种可以将虚拟世界和真实世界融合在一起的技术。在增强现实领域内,需要对相机的姿态进行实时估计,确保实时性、稳定性和鲁棒性。

目前,现有的视觉slam系统可以采用dso(directsparseodometry,直接稀疏里程计)方法来确定相机姿态,这类方法不需要提取图像的特征点,直接通过联合优化所有像素来确定当前相机的姿态,并构建出所看到的地图,优化时的目标函数是最小化光度误差(photometricerror)。

但是,由于dso需要对成像时的光照模型进行精细的物理建模,其是直接在图像原图中进行光度优化,不仅容易受到模糊图像的细节噪声的影响,而且如果光照违反了光照模型的建模,其优化的目标函数则会失效,影响系统的稳定性与精度,可靠性差。



技术实现要素:

本申请实施例提供一种相机姿态确定方法、装置、存储介质及电子设备,能尽量避免细节噪声和光照对相机姿态定位的影响,提高相机姿态的定位精准性和可靠性。

本申请实施例提供了一种相机姿态确定方法,包括:

获取当前帧图像、前一帧图像以及上一关键帧图像;

确定所述上一关键帧图像的特征点集、所述当前帧图像的第一缩略图以及所述前一帧图像的第二缩略图;

根据所述第一缩略图和所述第二缩略图,确定所述当前帧图像与所述上一关键帧图像对应的初始全局单应矩阵;

根据所述初始全局单应矩阵、所述当前帧图像和所述特征点集确定初始姿态参数;

根据所述初始姿态参数、所述当前帧图像和所述特征点集确定所述当前帧图像的相机姿态参数,以确定相机姿态。

本申请实施例还提供了一种相机姿态确定方法,包括:

获取当前帧图像、前一帧图像以及上一关键帧图像;

确定所述上一关键帧图像的特征点集、所述当前帧图像的第一缩略图以及所述前一帧图像的第二缩略图;

根据所述第一缩略图和所述第二缩略图,确定所述当前帧图像与所述上一关键帧图像对应的初始全局单应矩阵;

根据所述初始全局单应矩阵、所述当前帧图像和所述特征点集确定初始姿态参数;

根据所述初始姿态参数、所述当前帧图像和所述特征点集确定所述当前帧图像的相机姿态参数,以确定相机姿态;

根据所述当前帧图像的相机姿态参数生成场景更新指令;

根据所述场景更新指令和所述当前帧图像的相机姿态参数在已生成的全局场景中确定新增平面;

根据所述新增平面更新所述已生成的全局场景。

本申请实施例还提供了一种相机姿态确定装置,包括:

获取模块,用于获取当前帧图像、前一帧图像以及上一关键帧图像;

第一确定模块,用于确定所述上一关键帧图像的特征点集、所述当前帧图像的第一缩略图以及所述前一帧图像的第二缩略图;

第二确定模块,用于根据所述第一缩略图和所述第二缩略图,确定所述当前帧图像与所述上一关键帧图像对应的初始全局单应矩阵;

第三确定模块,用于根据所述初始全局单应矩阵、所述当前帧图像和所述特征点集确定初始姿态参数;

第四确定模块,用于根据所述初始姿态参数、所述当前帧图像和所述特征点集确定所述当前帧图像的相机姿态参数,以确定相机姿态。

其中,所述第二确定模块具体包括:

第一获取单元,用于获取所述前一帧图像和所述上一关键帧图像对应的第一全局单应矩阵;

第一确定单元,用于根据所述第一缩略图和第二缩略图,确定所述当前帧图像和所述前一帧图像对应的第二全局单应矩阵;

第二确定单元,用于根据所述第一全局单应矩阵和第二全局单应矩阵,确定所述当前帧图像与所述上一关键帧图像对应的初始全局单应矩阵。

其中,所述第一确定单元具体用于:

确定所述第一缩略图的第一图像梯度以及第一像素值矩阵;

确定所述第二缩略图的的第二图像梯度以及第二像素值矩阵;

根据所述第一图像梯度、第二图像梯度、第一像素值矩阵和第二像素值矩阵,确定所述当前帧图像和所述前一帧图像对应的第二全局单应矩阵。

其中,所述第三确定模块具体用于:

根据所述初始全局单应矩阵,将所述特征点集中的特征点投影到所述当前帧图像上,以得到第一投影点集;

根据所述第一投影点集和特征点集确定第一重投影误差函数;

根据所述第一重投影误差函数确定初始姿态参数。

其中,所述第四确定模块具体包括:

投影单元,用于根据所述初始姿态参数,将所述特征点集中的特征点投影到所述当前帧图像上,以得到第二投影点集;

第三确定单元,用于从所述特征点集中确定与所述第二投影点集匹配成功的第一匹配点;

第四确定单元,用于确定所述第一匹配点的数量,并从所述第二投影点集中获取与所述第一匹配点对应的第一目标投影点;

第五确定单元,用于根据所述第一匹配点的数量、第一目标投影点和第一匹配点确定所述当前帧图像的相机姿态参数。

其中,所述第五确定单元具体用于:

根据所述第一匹配点和第一目标投影点,确定所述当前帧图像与所述关键帧图像对应的第一局部单应矩阵;

判断所述第一匹配点的数量是否大于预设数量;

若是,则根据所述第一局部单应矩阵、第一缩略图和第二缩略图对所述初始全局单应矩阵进行修正,以得到修正全局单应矩阵;

根据所述修正全局单应矩阵、当前帧图像和上一关键帧图像确定所述当前帧图像的相机姿态参数。

其中,在判断所述第一匹配点的数量是否大于预设数量之后,所述第五确定单元还用于:

若否,则根据所述第一局部单应矩阵,将所述特征点集中除所述第一匹配点之外的剩余特征点投影到所述当前帧图像上,以得到第三投影点集;

从所述特征点集中确定与所述第三投影点集匹配成功的第二匹配点;

确定所述第二匹配点的数量,并从所述第三投影点集中获取与所述第二匹配点对应的第二目标投影点;

确定所述第二匹配点的数量和所述第一匹配点的数量之间的和值;

根据所述和值、第一目标投影点、第一匹配点、第二目标投影点和第二匹配点确定所述当前帧图像的相机姿态参数。

其中,所述第五确定单元具体用于:

当所述和值大于预设数量时,根据所述第一匹配点、第一目标投影点、第二匹配点和第二目标投影点确定第二局部单应矩阵;

根据所述第二局部单应矩阵、第一缩略图和第二缩略图对所述初始全局单应矩阵进行修正,以得到修正全局单应矩阵;

根据所述修正全局单应矩阵、当前帧图像和上一关键帧图像确定所述当前帧图像的相机姿态参数。

其中,所述第五确定单元还用于:

当所述和值小于或等于预设数量时,确定所述当前帧图像和上一帧图像之间间隔的时间差;

根据所述时间差、第一匹配点、第一目标投影点、第二匹配点、第二目标投影点、第一缩略图和第二缩略图,确定所述当前帧图像的相机旋转速度;

确定包含所述当前帧图像的滑动窗;

获取所述滑动窗内,除所述当前帧之外的剩余帧图像的相机姿态参数;

根据所述当前帧图像的相机旋转速度和所述剩余帧图像的相机姿态参数,确定所述当前帧图像的相机姿态参数。

其中,所述相机姿态确定装置还包括更新模块,用于:

在所述第四确定模块根据所述初始姿态参数、当前帧图像和特征点集确定所述当前帧图像的相机姿态参数之后,获取所述上一关键帧图像的相机姿态参数;

根据所述特征点集、上一关键帧图像的相机姿态参数和所述当前帧图像的相机姿态参数,确定相机夹角;

当所述相机夹角不小于预设夹角时,将所述当前帧图像标记为新关键帧图像;

根据所述新关键帧图像更新已生成的全局场景。

其中,所述更新模块具体用于:

确定所述新关键帧图像的目标特征点集、以及所述已生成的全局场景的已检测平面;

在所述已检测平面上,对所述目标特征点集中的目标特征点进行分配;

获取分配失败的所述目标特征点;

根据所述分配失败的目标特征点在所述已生成的全局场景中确定新增平面;

根据所述新增平面更新已生成的全局场景。

本申请实施例还提供了一种计算机可读存储介质,所述存储介质中存储有多条指令,所述指令适于由处理器加载以执行上述任一项相机姿态确定方法。

本申请实施例还提供了一种电子设备,包括处理器和存储器,所述处理器与所述存储器电性连接,所述存储器用于存储指令和数据,所述处理器用于执行上述任一项相机姿态确定方法中的步骤。

本申请提供的相机姿态确定方法、装置、存储介质及电子设备,通过获取当前帧图像、前一帧图像以及上一关键帧图像,并确定该上一关键帧图像的特征点集、该当前帧图像的第一缩略图以及该前一帧图像的第二缩略图,之后,根据该第一缩略图和第二缩略图,确定该当前帧图像与该上一关键帧图像对应的初始全局单应矩阵,并根据该初始全局单应矩阵、当前帧图像和特征点集确定初始姿态参数,之后,根据该初始姿态参数、当前帧图像和特征点集确定该当前帧图像的相机姿态参数,从而能尽量避免细节噪声和光照对相机姿态定位的影响,提高相机姿态的定位精准性和可靠性。

附图说明

下面结合附图,通过对本申请的具体实施方式详细描述,将使本申请的技术方案及其它有益效果显而易见。

图1为本申请实施例提供的相机姿态确定系统的场景示意图。

图2为本申请实施例提供的相机姿态确定方法的流程示意图。

图3为本申请实施例提供的图像上特征点的示意图。

图4为本申请实施例提供的相机姿态确定方法的另一流程示意图。

图5为本申请实施例提供的步骤s1054的流程示意图。

图6为本申请实施例提供的ar设备系统的框架示意图。

图7为本申请实施例提供的相机姿态确定方法的另一流程示意图。

图8为本申请实施例提供的单个ar全局场景的相机姿态、稀疏点云与检测平面的局部显示示意图。

图9为本申请实施例提供的相机姿态确定装置的结构示意图。

图10为本申请实施例提供的相机姿态确定装置的另一结构示意图。

图11为本申请实施例提供的电子设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

计算机视觉技术(computervision,cv)计算机视觉是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取信息的人工智能系统。计算机视觉技术通常包括图像处理、图像识别、图像语义理解、图像检索、ocr、视频处理、视频语义理解、视频内容/行为识别、三维物体重建、3d技术、虚拟现实、增强现实、同步定位与地图构建等技术,还包括常见的人脸识别、指纹识别等生物特征识别技术。

本申请实施例提供的方案涉及人工智能的ar技术,具体通过如下实施例进行说明:

本申请实施例提供一种相机姿态确定方法、装置、存储介质及电子设备。

请参阅图1,图1为相机姿态确定系统的场景示意图,该相机姿态确定系统可以包括本申请实施例提供的任一种相机姿态确定装置,该相机姿态确定装置可以集成在电子设备,比如增强现实(ar)设备中。

该电子设备可以获取当前帧图像、前一帧图像以及上一关键帧图像;确定该上一关键帧图像的特征点集、该当前帧图像的第一缩略图以及该前一帧图像的第二缩略图;根据该第一缩略图和第二缩略图,确定该当前帧图像与该上一关键帧图像对应的初始全局单应矩阵;根据该初始全局单应矩阵、当前帧图像和特征点集确定初始姿态参数;根据该初始姿态参数、当前帧图像和特征点集确定该当前帧图像的相机姿态参数,以确定相机姿态。

其中,该关键帧图像是指从已拍摄图像中选择出来的满足指定条件的单帧图像,在ar技术中通常用于指导全局场景,相邻两帧关键帧图像对应的相机夹角在一定范围内,首帧关键帧可以是特征点足够多的图像。该特征点集中的特征点可以为orb(orientedfastandrotatedbrief)特征点,其通常采用fast(featuresfromacceleratedsegmenttest)角点检测算法来检测图像的特征点,采用brief算法来确定特征点的属性信息(也即描述子),该属性信息可以包括特征点位置、特征点尺度和特征点方向等。

该缩略图可以是对图像降采样得到,其降采样参数可以人为设定,比如40*30像素点。该全局单应矩阵主要是平面单应矩阵,用于描述两个平面之间的关系,其中单应是射影几何中的概念,又称为射影变换,它把一个射影平面上的点(三维齐次矢量)映射到另一个射影平面上,并且把直线映射为直线,具有保线性质。该相机姿态参数和初始姿态参数主要用于描述相机的姿态,其包括相机旋转速度、相机位置和相机移动速度等参数。

譬如,ar设备在使用过程中,可以通过相机实时获取相邻两帧拍摄图像、以及已确定出的上一关键帧图像,之后通过降采样方式确定出这两帧拍摄图像的缩略图,同时通过fast算法和brief算法确定关键帧图像中的特征点集,之后,基于该缩略图,可以借助opencv(opensourcecomputervisionlibrary,开源计算机视觉库)来计算这两帧拍摄图像对应的初始全局单应矩阵,并根据该初始全局单应矩阵、当前帧图像和特征点集确定当前帧图像的初始姿态参数,之后,根据初始姿态参数、当前帧图像和特征点集确定当前帧图像最终的相机姿态参数。

请参见图2,图2是本申请实施例提供的相机姿态确定方法的流程示意图,该相机姿态确定方法可以应用于ar设备等电子设备中,具体流程可以如下:

s101.获取当前帧图像、前一帧图像以及上一关键帧图像。

本实施例中,该当前帧图像和前一帧图像是相机连续拍照的两帧相邻图像,该关键帧图像是指从已拍摄图像中选择出来的满足指定条件的单帧图像,该上一关键帧图像是指距离当前帧图像时间最近的关键帧图像,通常,相邻两帧关键帧图像之间应该有足够宽的距离,也即相邻两帧关键帧图像对应的相机夹角在一定范围内,首帧关键帧可以是特征点足够多的图像帧。

s102.确定该上一关键帧图像的特征点集、该当前帧图像的第一缩略图以及该前一帧图像的第二缩略图。

本实施例中,该特征点集中的特征点可以为orb(orientedfastandrotatedbrief)特征点,其通常采用fast(featuresfromacceleratedsegmenttest)角点检测算法来检测图像的特征点,采用brief算法来确定特征点的属性信息(也即描述子),该属性信息可以包括特征点位置、特征点尺度和特征点方向等,譬如,请参见图3,对于图像上的单个特征点m,圆心是特征位置,圆的大小代表特征尺度,圆里的线段代表特征方向。该第一缩略图和第二缩略图可以是对相应图像降采样后高斯模糊处理得到,其降采样参数可以人为设定,比如40*30像素点。

s103.根据该第一缩略图和第二缩略图,确定该当前帧图像与该上一关键帧图像对应的初始全局单应矩阵。

本实施例中,全局单应矩阵主要是平面单应矩阵,用于描述两个平面之间的关系,其中单应是射影几何中的概念,又称为射影变换,它把一个射影平面上的点(三维齐次矢量)映射到另一个射影平面上,并且把直线映射为直线,具有保线性质。

例如,请参见图4,上述步骤s103具体可以包括:

s1031.获取该前一帧图像和该上一关键帧图像对应的第一全局单应矩阵。

本实施例中,在拍摄得到每一帧图像时,可以实时计算该帧图像与其上一关键帧图像对应的全局单应矩阵,作为第一全局单应矩阵,这样在计算下一帧图像对应的初始全局单应矩阵时,可以直接获取。

s1032.根据该第一缩略图和第二缩略图,确定该当前帧图像和该前一帧图像对应的第二全局单应矩阵。

本实施例中,对于第二缩略图上的每一个像素,可以通过初始全局单应矩阵转换到第一缩略图的位置,并将这个位置处的像素颜色与第一缩略图上的像素颜色的颜色差作为优化项目求取第二全局单应矩阵其公式(1)可以为:

其中,为第i帧图像与第i-1帧图像对应的全局单应矩阵(也即第二全局单应矩阵)的优化函数,h为优化函数中待优化的全局单应矩阵,ω是缩略图的像素点范围,ii(x)是像素点x在第i帧图像的缩略图上的像素颜色,ii-1(hx)为像素点x转换到第i-1帧图像的缩略图上的像素颜色。

例如,上述步骤s1032具体可以包括:

确定该第一缩略图的第一图像梯度以及第一像素值矩阵;

确定该第二缩略图的的第二图像梯度以及第二像素值矩阵;

根据该第一图像梯度、第二图像梯度、第一像素值矩阵和第二像素值矩阵,确定该当前帧图像和该前一帧图像对应的第二全局单应矩阵。

本实施例中,可以计算缩略图中每个像素沿长宽两个方向的梯度,作为图像梯度,该第一像素值矩阵和第二像素值矩阵通常是像素位置相对应的像素颜色值组成的矩阵,在上述公式(1)的优化过程中,涉及图像梯度和像素值矩阵的使用。

s1033.根据该第一全局单应矩阵和第二全局单应矩阵,确定该当前帧图像与该上一关键帧图像对应的初始全局单应矩阵。

本实施例中,可以利用公式计算初始全局单应矩阵,其中,为第i帧图像与第r帧关键帧图像对应的全局单应矩阵(也即初始全局单应矩阵),为第i帧图像与第i-1帧关键帧图像对应的全局单应矩阵(也即第二全局单应矩阵),为第i-1帧图像与第r帧关键帧图像对应的全局单应矩阵(也即第一全局单应矩阵)。

需要说明的是,这种初始全局单应矩阵的确定方法是采用缩略图,联合广度与几何来实现单应性优化,相对于dso(directsparseodometry,直接稀疏里程计)方法中直接在原图中进行光度优化来确定单应性的方法来说,优化速度快,优化效果好。

s104.根据该初始全局单应矩阵、当前帧图像和特征点集确定初始姿态参数。

本实施例中,该初始姿态参数主要用于描述相机初始的姿态,其包括相机旋转速度、相机位置和相机移动速度等参数。

例如,上述步骤s104具体可以包括:

根据该初始全局单应矩阵,将该特征点集中的特征点投影到该当前帧图像上,以得到第一投影点集;

根据该第一投影点集和特征点集确定第一重投影误差函数;

根据该第一重投影误差函数确定初始姿态参数。

本实施例中,可以利用下述公式(2)来确定初始姿态参数:

其中,[ri|ti]是第i帧图像的相机姿态参数的优化函数,r是优化函数中待优化的相机旋转矩阵,t为相机位移参数,π()为投影函数。xij是特征点j在第i帧图像的投影,通过获得,xrj为特征点j在第r帧关键帧图像的投影,为第i帧图像与第r帧关键帧图像对应的全局单应矩阵。

s105.根据该初始姿态参数、当前帧图像和特征点集确定当前帧图像的相机姿态参数。

本实施例中,该相机姿态参数主要用于描述相机优化后的姿态,其同样包括相机旋转速度、相机位置和相机移动速度等参数。

例如,在图4中,上述步骤s105具体可以包括:

s1051.根据该初始姿态参数,将该特征点集中的特征点投影到该当前帧图像上,以得到第二投影点集。

s1052.从该特征点集中确定与该第二投影点集匹配成功的第一匹配点。

本实施例中,可以以初始姿态参数为指导,将上一关键帧图像上已重建出空间点的特征点,投影到当前帧图像,得到第二投影点,并在第二投影点周围寻找可以匹配的特征点。该匹配是指将两个特征点的属性信息,比如特征位置、特征尺度和特征方向进行对比,如果在合理范围内,则匹配成功,否则匹配失败。

s1053.确定该第一匹配点的数量,并从该第二投影点集中获取与该第一匹配点对应的第一目标投影点。

s1054.根据该第一匹配点的数量、第一目标投影点和第一匹配点确定该当前帧图像的相机姿态参数。

例如,请参见图5,上述步骤s1054具体可以包括:

s10541.根据该第一匹配点和第一目标投影点,确定该当前帧图像与该关键帧图像对应的第一局部单应矩阵;

s10542.判断该第一匹配点的数量是否大于预设数量,若是,则执行下述步骤s10543,若否,则执行下述步骤s10544-s10548。

s10543.根据该第一局部单应矩阵、第一缩略图和第二缩略图确定修正全局单应矩阵;根据该修正全局单应矩阵、当前帧图像和上一关键帧图像确定该当前帧图像的相机姿态参数。

本实施例中,该预设数量可以人为设定,主要用于界定匹配点数量是否足够。如果第一次匹配后匹配点的数量足够多,则认为跟踪成功,可以直接根据第一次匹配成功的特征点确定当前图像的相机姿态参数,比如优化这些特征点的重投影误差以获得更加准确的相机姿态参数,并过滤重投影误差过大的匹配点,如果第一次匹配后匹配点的数量不够多,则跟踪失败,需要进行二次匹配。

可以通过ransac算法(randomsampleconsensus,随机抽样一致算法)对第一匹配点和第一目标投影点进行处理,来计算第一局部单应矩阵,该相机姿态参数的计算方式和上述初始姿态参数的计算方式类似,此处不再赘述。

该修正全局单应矩阵可以利用下述公式(3)来计算:

其中,为第i帧图像与第r帧关键帧图像对应的修正全局单应矩阵的优化函数,h为优化函数中待优化的修正全局单应矩阵,ω是缩略图的像素点范围,ii(x)是像素点x在第i帧图像的缩略图上的像素颜色,ir(hx)为像素点x转换到第r帧关键帧图像的缩略图上的像素颜色,xrj是特征点j在第r帧关键帧图像上的投影,xij为特征点j在第i帧图像上的投影,π()为投影函数,mr,i是匹配成功的特征点对(也即第一匹配点和第一目标投影点)。

s10544.根据该第一局部单应矩阵,将该特征点集中除该第一匹配点之外的剩余特征点投影到该当前帧图像上,以得到第三投影点集;

s10545.从该特征点集中确定与该第三投影点集匹配成功的第二匹配点;

s10546.确定该第二匹配点的数量,并从该第三投影点集中获取与该第二匹配点对应的第二目标投影点;

s10547.确定该第二匹配点的数量和该第一匹配点的数量之间的和值;

s10548.根据该和值、第一目标投影点、第一匹配点、第二目标投影点和第二匹配点确定该当前帧图像的相机姿态参数。

本实施例中,当二次匹配完成时,如果这两次匹配后匹配点的总数量足够多,则认为跟踪成功,可以根据这两次匹配成功的特征点确定当前图像的相机姿态参数,如果两次匹配后匹配点的总数量较少,则认为跟踪失败,说明当前帧图像过于模糊或者是固定点旋转,此时,需要放弃基于特征点来确定相机姿态参数的方式,采用其他方式来确定。

具体的,上述步骤s10548具体包括:

1-1.当该和值大于预设数量时,根据该第一匹配点、第一目标投影点、第二匹配点和第二目标投影点确定第二局部单应矩阵;

根据该第二局部单应矩阵、第一缩略图和第二缩略图确定修正全局单应矩阵;

根据该修正全局单应矩阵、当前帧图像和上一关键帧图像确定该当前帧图像的相机姿态参数。

本实施例中,同样可以通过ransac算法对第一匹配点、第一目标投影点、第二匹配点和第二目标投影点进行处理,来计算第二局部单应矩阵,之后,同样可以参见上述公式(3)中修正全局单应矩阵的计算方法来计算此时的修正全局单应矩阵,且此时的相机姿态参数的计算方式和上述初始姿态参数的计算方式类似,此处不再赘述。

另外,上述步骤s10548还包括:

1-2.当该和值小于或等于预设数量时,确定该当前帧图像和上一帧图像之间间隔的时间差;

根据该时间差、第一匹配点、第一目标投影点、第二匹配点、第二目标投影点、第一缩略图和第二缩略图,确定该当前帧图像的相机旋转速度;

确定包含该当前帧图像的滑动窗;

获取该滑动窗内,除该当前帧之外的剩余帧图像的相机姿态参数;

根据该当前帧图像的相机旋转速度和该剩余帧图像的相机姿态参数,确定该当前帧图像的相机姿态参数。

本实施例中,可以通过下述公式(4)计算相机旋转速度:

其中,wi是第i帧图像的相机旋转速度的优化函数,w为优化函数中待优化的相机旋转速度,ω是缩略图的像素点范围,ii-1(x)为像素点x在第i-1帧图像的像素值,ii(x)为像素点x在第i帧图像的像素值,k为相机的内参数矩阵,r为相机旋转矩阵,△ti为第i帧图像与第i-1帧图像之间间隔的时间差,π()为投影函数,xij是特征点j在第i帧图像上的投影,xrj为特征点j在第r帧关键帧图像上的投影,mr,i是当前帧图像(也即第i帧图像)与关键帧图像(也即第r帧图像)上所有匹配成功的特征点对,也即第一匹配点、第一目标投影点、第二匹配点和第二目标投影点。

该滑动窗的大小可以人为设定,比如是10帧图像组成的滑动窗,通常,每帧图像在拍摄之后,可以计算对应的相机姿态参数,并进行存储。当确定出当前帧图像的相机旋转速度时,可以进一步根据相机旋转速度对滑动窗内部的投影误差、相机位置误差、位移速度误差与旋转速度误差进行最小化,从而估计出当前帧图像的相机姿态参数。当然,当通过这种方式确定出相机姿态参数后,还可以进一步根据该相机姿态参数确定出此时的全局单应矩阵,也即修正全局单应矩阵,以便后续关键帧图像的筛选。

需要强调的是,在特征点匹配操作完成后,确定出当前帧图像过于模糊或者是固定点旋转时,通过放弃特征点匹配,转而通过联合光度与几何快速优化相机旋转速度,之后联合优化多个相邻帧图像的相机旋转速度,以确定相机姿态参数,从而可以在没有imu((inertialmeasurementunit,惯性测量单元),且摄像头固定点旋转时,依然可以确定相机姿态参数,提高了操作可靠性和稳定性。

此外,在计算出当前帧图像的相机姿态参数后,可以进一步分析当前帧图像是否可以作为新的关键帧图像,也即,请参见上述图4,在上述步骤s105之后,该相机姿态确定方法还可以包括:

s106.获取该上一关键帧图像的相机姿态参数,并根据该特征点集、上一关键帧图像的相机姿态参数和该当前帧图像的相机姿态参数,确定相机夹角;

s107.当该相机夹角不小于预设夹角时,将该当前帧图像标记为新关键帧图像;根据该新关键帧图像更新已生成的全局场景。

本实施例中,该全局场景可以是游戏中用户与虚拟物体的互动场景。由于键帧图像决定了与当前帧图像匹配的特征点是哪些,故其选取非常重要,通常,为了保证特征点的精度,关键帧图像上必须有足够多的特征点,且相邻两帧关键帧图像之间应该有足够宽的距离,也即相邻两帧关键帧图像对应的相机夹角需不小于预设夹角,换言之,可以根据上一关键帧图像、以及当前帧图像的相机姿态参数中的相机位置来确定这两帧图像间的相机夹角,通过相机夹角来确定是否可以将当前帧图像作为新关键帧图像。

例如,上述步骤s107具体可以包括:

确定该新关键帧图像的目标特征点集、以及该已生成的全局场景的已检测平面;

在该已检测平面上,对该目标特征点集中的目标特征点进行分配;

获取分配失败的该目标特征点;

根据该分配失败的目标特征点在该已生成的全局场景中确定新增平面;

根据该新增平面更新已生成的全局场景。

本实施例中,在将目标特征点分配到已检测平面上,以构建局部场景时,为了避免实际上不位于同一个完整平面上的目标特征点被分配到同一个平面,我们在分配点到平面时,除了检测该目标特征点到平面的距离,也会检查该目标特征点是否与平面上的特征点在图像上相邻,其中,在图像上是否相邻采用delaunay三角剖分算法,该delaunay算法以图像上的特征点为顶点,将图像划分为三角区域,相连的特征点认为在图像上相邻。

检测新的平面时,可以每次抽取一个三角片元,计算出平面的空间方程,然后按照上述分配目标特征点到这个平面上的方法分配到这个平面,如果该平面获得的目标特征点足够多,则将该平面作为新增平面保留下来,如果一个目标特征点被分配到多个新检测出的平面,则优先将该目标特征点分配到点多的平面。

以下将以该相机姿态确定方法应用于ar设备中为例,对相机姿态确定方法的流程进行简要说明。

请参见图6,图6为ar设备系统的框架示意图,具体的,ar设备中的相机实时将拍摄的视频传入ar设备系统设备系统中,ar设备系统可以分为五大模块,每个模块占据一个单独的线程,比如线程1~线程5,其中,线程1和线程2同时进行,线程1主要用于实时生成相邻两帧拍摄图像各自的降采样缩略图,用于之后的光度优化,线程2主要用于提取上一关键帧图像的特征点,得到特征点集(具体可参见上述步骤s101-s102),通过两个不同线程同时对同一图像进行处理,避免了单线程处理的等待时间,提高了处理速度,之后,请参见上述步骤s103-s104,线程3先根据线程1的降采样缩略图确定对应相邻两帧拍摄图像的初始全局单应矩阵,并利用该初始全局单应矩阵确定相机的初始姿态参数,比如相机旋转速度、相机位置和相机移动速度等参数,之后,请参见上述步骤s10541-s10543,线程3以该初始姿态参数为指导,对特征点集中的特征点进行第一次匹配,当第一次匹配点的数量足够多,也即跟踪成功时,可以根据此时匹配成功的匹配点进行初始全局单应矩阵的修正(也即得到修正全局单应矩阵)和初始姿态参数的优化(也即得到相机最终的相机姿态参数)。请参见上述步骤s10544-s10548,当第一次匹配点的数量不够多,也即跟踪失败时,可以根据此时匹配成功的匹配点确定局部单应矩阵,根据局部单应矩阵指导特征点的第二次匹配。请参见上述步骤1-1,如果第二次匹配时跟踪成功,则根据此时匹配成功的匹配点进行初始全局单应矩阵的修正(也即得到修正全局单应矩阵)和初始姿态参数的优化(也即得到相机最终的相机姿态参数)。请参见上述步骤1-2,如果第二次匹配时跟踪失败,则根据此时匹配成功的匹配点优化相机旋转速度,并根据相机旋转速度优化滑动窗姿态和速度(也即对滑动窗内部的投影误差、相机位置误差、位移速度误差与旋转速度误差进行优化),并根据滑动窗的优化结果对初始姿态参数进行优化(也即得到相机最终的相机姿态参数)、以及对初始全局单应矩阵进行修正(也即得到修正全局单应矩阵)。之后,请参见上述步骤s106-s108,线程3会进行新关键帧图像的选择,当发现存在新关键帧图像时,线程4根据该新关键帧图像构建局部场景并检测平面,之后,对局部场景进行优化,包括相机姿态、场景点与平面的优化,之后,通过单独的线程5对全局场景进行优化。

由上述可知,本申请提供的相机姿态确定方法,通过获取当前帧图像、前一帧图像以及上一关键帧图像,并确定该上一关键帧图像的特征点集、该当前帧图像的第一缩略图以及该前一帧图像的第二缩略图,之后,根据该第一缩略图和第二缩略图,确定该当前帧图像与该上一关键帧图像对应的初始全局单应矩阵,并根据该初始全局单应矩阵、当前帧图像和特征点集确定初始姿态参数,之后,根据该初始姿态参数、当前帧图像和特征点集确定该当前帧图像的相机姿态参数,从而尽量避免细节噪声和光照对相机姿态定位的影响,提高相机姿态的定位精准性和可靠性。

根据上述实施例所描述的方法,本实施例从产品侧的角度进一步进行描述,请参见图7,该相机姿态确定方法具体流程可以包括:

s201.获取当前帧图像、前一帧图像以及上一关键帧图像;

s202.确定所述上一关键帧图像的特征点集、所述当前帧图像的第一缩略图以及所述前一帧图像的第二缩略图;

s203.根据所述第一缩略图和所述第二缩略图,确定所述当前帧图像与所述上一关键帧图像对应的初始全局单应矩阵;

s204.根据所述初始全局单应矩阵、所述当前帧图像和所述特征点集确定初始姿态参数;

s205.根据所述初始姿态参数、所述当前帧图像和所述特征点集确定所述当前帧图像的相机姿态参数,以确定相机姿态;

s206.根据所述当前帧图像的相机姿态参数生成场景更新指令;

s207.根据所述场景更新指令和所述当前帧图像的相机姿态参数在已生成的全局场景中确定新增平面;

s208.根据所述新增平面更新已生成的全局场景。

其中,步骤s201-s205的具体操作可参见上述步骤s101-s105,此处不再赘述。在步骤s206中,可以获取上一关键帧图像的相机姿态参数,并根据该特征点集、上一关键帧图像的相机姿态参数和该当前帧图像的相机姿态参数,确定相机夹角,当该相机夹角不小于预设夹角时,说明当前帧图像满足关键帧图像的要求,可以将当前帧图像作为新关键帧图像,并生成场景更新指令。在步骤s207中,请参见图8,图8为单个ar全局场景的相机姿态、稀疏点云与检测平面的局部显示示意图,该稀疏点云是根据关键帧图像重建出的大量特征点,每一个图形m由单个时刻的相机姿态参数描绘成,每一个图形m对应一个时刻的相机姿态,每一个图形n由四个特征点描绘成,每一个图形n代表一个检测平面,具体的,在更新全局场景时,可以先根据当前帧图像(也即新关键帧图像)的相机姿态参数重建特征点,并根据重建出的特征点在已生成的全局场景中进行平面检测,之后根据检测出的平面构建局部场景,并根据优化后的局部场景对全局场景优化,从而使虚拟场景与现实场景有更好的融合效果。

根据上述实施例所描述的方法,本实施例将从相机姿态确定装置的角度进一步进行描述,该相机姿态确定装置具体可以作为独立的实体来实现,也可以集成在电子设备中,比如路由器来实现。

请参阅图9,图9具体描述了本申请实施例提供的相机姿态确定装置,应用于电子设备,该相机姿态确定装置可以包括:获取模块10、第一确定模块20、第二确定模块30、第三确定模块40和第四确定模块50,其中:

(1)接收模块10

获取模块10,用于获取当前帧图像、前一帧图像以及上一关键帧图像。

本实施例中,该当前帧图像和前一帧图像是相机连续拍照的两帧相邻图像,该关键帧图像是指从已拍摄图像中选择出来的满足指定条件的单帧图像,该上一关键帧图像是指距离当前帧图像时间最近的关键帧图像,通常,相邻两帧关键帧图像之间应该有足够宽的距离,也即相邻两帧关键帧图像对应的相机夹角在一定范围内,首帧关键帧可以是特征点足够多的图像帧。

(2)第一确定模块20

第一确定模块20,用于确定该上一关键帧图像的特征点集、该当前帧图像的第一缩略图以及该前一帧图像的第二缩略图。

本实施例中,该特征点集中的特征点可以为orb(orientedfastandrotatedbrief)特征点,其通常采用fast(featuresfromacceleratedsegmenttest)角点检测算法来检测图像的特征点,采用brief算法来确定特征点的属性信息(也即描述子),该属性信息可以包括特征点位置、特征点尺度和特征点方向等,譬如,请参见图3,对于图像上的单个特征点m,圆心是特征位置,圆的大小代表特征尺度,圆里的线段代表特征方向。该第一缩略图和第二缩略图可以是对相应图像降采样后高斯模糊处理得到,其降采样参数可以人为设定,比如40*30像素点。

(3)第二确定模块30

第二确定模块30,用于根据该第一缩略图和第二缩略图,确定该当前帧图像与该上一关键帧图像对应的初始全局单应矩阵。

本实施例中,全局单应矩阵主要是平面单应矩阵,用于描述两个平面之间的关系,其中单应是射影几何中的概念,又称为射影变换,它把一个射影平面上的点(三维齐次矢量)映射到另一个射影平面上,并且把直线映射为直线,具有保线性质。

例如,请参见图10,该第二确定模块30具体包括:

第一获取单元31,用于获取该前一帧图像和该上一关键帧图像对应的第一全局单应矩阵。

本实施例中,在拍摄得到每一帧图像时,可以实时计算该帧图像与其上一关键帧图像对应的全局单应矩阵,作为第一全局单应矩阵,这样在计算下一帧图像对应的初始全局单应矩阵时,可以直接获取。

第一确定单元32,用于根据该第一缩略图和第二缩略图,确定该当前帧图像和该前一帧图像对应的第二全局单应矩阵。

本实施例中,对于第二缩略图上的每一个像素,可以通过初始全局单应矩阵转换到第一缩略图的位置,并将这个位置处的像素颜色与第一缩略图上的像素颜色的颜色差作为优化项目,求取第二全局单应矩阵,其公式(1)可以为:

其中,为第i帧图像与第i-1帧图像对应的全局单应矩阵(也即第二全局单应矩阵)的优化函数,h为优化函数中待优化的全局单应矩阵,ω是缩略图的像素点范围,ii(x)是像素点x在第i帧图像的缩略图上的像素颜色,ii-1(hx)为像素点x转换到第i-1帧图像的缩略图上的像素颜色。

例如,该第二确定单元33具体用于:

确定该第一缩略图的第一图像梯度以及第一像素值矩阵;

确定该第二缩略图的的第二图像梯度以及第二像素值矩阵;

根据该第一图像梯度、第二图像梯度、第一像素值矩阵和第二像素值矩阵,确定该当前帧图像和该前一帧图像对应的第二全局单应矩阵。

本实施例中,可以计算缩略图中每个像素沿长宽两个方向的梯度,作为图像梯度,该第一像素值矩阵和第二像素值矩阵通常是像素位置相对应的像素颜色值组成的矩阵,在上述公式(1)的优化过程中,涉及图像梯度和像素值矩阵的使用。

第二确定单元33,用于根据该第一全局单应矩阵和第二全局单应矩阵,确定该当前帧图像与该上一关键帧图像对应的初始全局单应矩阵。

本实施例中,可以利用公式计算初始全局单应矩阵,其中,为第i帧图像与第r帧关键帧图像对应的全局单应矩阵(也即初始全局单应矩阵),为第i帧图像与第i-1帧关键帧图像对应的全局单应矩阵(也即第二全局单应矩阵),为第i-1帧图像与第r帧关键帧图像对应的全局单应矩阵(也即第一全局单应矩阵)。

需要说明的是,这种初始全局单应矩阵的确定方法是采用缩略图,联合广度与几何来实现单应性优化,相对于dso(directsparseodometry,直接稀疏里程计)方法中直接在原图中进行光度优化来确定单应性的方法来说,优化速度快,优化效果好。

(4)第三确定模块40

第三确定模块40,用于根据该初始全局单应矩阵、当前帧图像和特征点集确定初始姿态参数。

本实施例中,该初始姿态参数主要用于描述相机初始的姿态,其包括相机旋转速度、相机位置和相机移动速度等参数。

例如,该第三确定模块40具体用于:

根据该初始全局单应矩阵,将该特征点集中的特征点投影到该当前帧图像上,以得到第一投影点集;

根据该第一投影点集和特征点集确定第一重投影误差函数;

根据该第一重投影误差函数确定初始姿态参数。

本实施例中,可以利用下述公式(2)来确定初始姿态参数:

其中,[ri|ti]是第i帧图像的相机姿态参数的优化函数,r是优化函数中待优化的相机旋转矩阵,t为相机位移参数,π()为投影函数。xij是特征点j在第i帧图像的投影,通过获得,xrj为特征点j在第r帧关键帧图像的投影,为第i帧图像与第r帧关键帧图像对应的全局单应矩阵。

(5)第四确定模块50

第四确定模块50,用于根据该初始姿态参数、当前帧图像和特征点集确定该当前帧图像的相机姿态参数。

本实施例中,该相机姿态参数主要用于描述相机优化后的姿态,其同样包括相机旋转速度、相机位置和相机移动速度等参数。

例如,在图10中,该第四确定模块50具体包括:

投影单元51,用于根据该初始姿态参数,将该特征点集中的特征点投影到该当前帧图像上,以得到第二投影点集。

第三确定单元52,用于从该特征点集中确定与该第二投影点集匹配成功的第一匹配点。

本实施例中,可以以初始姿态参数为指导,将上一关键帧图像上已重建出空间点的特征点,投影到当前帧图像,得到第二投影点,并在第二投影点周围寻找可以匹配的特征点。该匹配是指将两个特征点的属性信息,比如特征位置、特征尺度和特征方向进行对比,如果在合理范围内,则匹配成功,否则匹配失败。

第四确定单元53,用于确定该第一匹配点的数量,并从该第二投影点集中获取与该第一匹配点对应的第一目标投影点。

第五确定单元54,用于根据该第一匹配点的数量、第一目标投影点和第一匹配点确定该当前帧图像的相机姿态参数。

例如,上述第五确定单元54具体可以用于:

s10541.根据该第一匹配点和第一目标投影点,确定该当前帧图像与该关键帧图像对应的第一局部单应矩阵;

s10542.判断该第一匹配点的数量是否大于预设数量,若是,则执行下述步骤s10543,若否,则执行下述步骤s10544-s10548。

s10543.根据该第一局部单应矩阵、第一缩略图和第二缩略图确定修正全局单应矩阵;根据该修正全局单应矩阵、当前帧图像和上一关键帧图像确定该当前帧图像的相机姿态参数。

本实施例中,该预设数量可以人为设定,主要用于界定匹配点数量是否足够。如果第一次匹配后匹配点的数量足够多,则认为跟踪成功,可以直接根据第一次匹配成功的特征点确定当前图像的相机姿态参数,比如优化这些特征点的重投影误差以获得更加准确的相机姿态参数,并过滤重投影误差过大的匹配点,如果第一次匹配后匹配点的数量不够多,则跟踪失败,需要进行二次匹配。

可以通过ransac算法(randomsampleconsensus,随机抽样一致算法)对第一匹配点和第一目标投影点进行处理,来计算第一局部单应矩阵,该相机姿态参数的计算方式和上述初始姿态参数的计算方式类似,此处不再赘述。

该修正全局单应矩阵可以利用下述公式(3)来计算:

其中,为第i帧图像与第r帧关键帧图像对应的修正全局单应矩阵的优化函数,h为优化函数中待优化的修正全局单应矩阵,ω是缩略图的像素点范围,ii(x)是像素点x在第i帧图像的缩略图上的像素颜色,ir(hx)为像素点x转换到第r帧关键帧图像的缩略图上的像素颜色,xrj是特征点j在第r帧关键帧图像上的投影,xij为特征点j在第i帧图像上的投影,π()为投影函数,mr,i是匹配成功的特征点对(也即第一匹配点和第一目标投影点)。

s10544.根据该第一局部单应矩阵,将该特征点集中除该第一匹配点之外的剩余特征点投影到该当前帧图像上,以得到第三投影点集;

s10545.从该特征点集中确定与该第三投影点集匹配成功的第二匹配点;

s10546.确定该第二匹配点的数量,并从该第三投影点集中获取与该第二匹配点对应的第二目标投影点;

s10547.确定该第二匹配点的数量和该第一匹配点的数量之间的和值;

s10548.根据该和值、第一目标投影点、第一匹配点、第二目标投影点和第二匹配点确定该当前帧图像的相机姿态参数。

本实施例中,当二次匹配完成时,如果这两次匹配后匹配点的总数量足够多,则认为跟踪成功,可以根据这两次匹配成功的特征点确定当前图像的相机姿态参数,如果两次匹配后匹配点的总数量较少,则认为跟踪失败,说明当前帧图像过于模糊或者是固定点旋转,此时,需要放弃基于特征点来确定相机姿态参数的方式,采用其他方式来确定。

具体的,在执行上述步骤s10548时,上述第五确定单元54具体可以用于:

1-1.当该和值大于预设数量时,根据该第一匹配点、第一目标投影点、第二匹配点和第二目标投影点确定第二局部单应矩阵;

根据该第二局部单应矩阵、第一缩略图和第二缩略图确定修正全局单应矩阵;

根据该修正全局单应矩阵、当前帧图像和上一关键帧图像确定该当前帧图像的相机姿态参数。

本实施例中,同样可以通过ransac算法对第一匹配点、第一目标投影点、第二匹配点和第二目标投影点进行处理,来计算第二局部单应矩阵,之后,同样可以参见上述公式(3)中修正全局单应矩阵的计算方法来计算此时的修正全局单应矩阵,且此时的相机姿态参数的计算方式和上述初始姿态参数的计算方式类似,此处不再赘述。

另外,在执行上述步骤s10548时,上述第五确定单元54还可以用于:

1-2.当该和值小于或等于预设数量时,确定该当前帧图像和上一帧图像之间间隔的时间差;

根据该时间差、第一匹配点、第一目标投影点、第二匹配点、第二目标投影点、第一缩略图和第二缩略图,确定该当前帧图像的相机旋转速度;

确定包含该当前帧图像的滑动窗;

获取该滑动窗内,除该当前帧之外的剩余帧图像的相机姿态参数;

根据该当前帧图像的相机旋转速度和该剩余帧图像的相机姿态参数,确定该当前帧图像的相机姿态参数。

本实施例中,可以通过下述公式(4)计算相机旋转速度wi:

其中,wi是第i帧图像的相机旋转速度的优化函数,w为优化函数中待优化的相机旋转速度,ω是缩略图的像素点范围,ii-1(x)为像素点x在第i-1帧图像的像素值,ii(x)为像素点x在第i帧图像的像素值,k为相机的内参数矩阵,r为相机旋转矩阵,△ti为第i帧图像与第i-1帧图像之间间隔的时间差,π()为投影函数,xij是特征点j在第i帧图像上的投影,xrj为特征点j在第r帧关键帧图像上的投影,mr,i是当前帧图像(也即第i帧图像)与关键帧图像(也即第r帧图像)上所有匹配成功的特征点对,也即第一匹配点、第一目标投影点、第二匹配点和第二目标投影点。

该滑动窗的大小可以人为设定,比如是10帧图像组成的滑动窗,通常,每帧图像在拍摄之后,可以计算对应的相机姿态参数,并进行存储。当确定出当前帧图像的相机旋转速度时,可以进一步根据相机旋转速度对滑动窗内部的投影误差、相机位置误差、位移速度误差与旋转速度误差进行最小化,从而估计出当前帧图像的相机姿态参数。当然,当通过这种方式确定出相机姿态参数后,还可以进一步根据该相机姿态参数确定出此时的全局单应矩阵,也即修正全局单应矩阵,以便后续关键帧图像的筛选.

需要强调的是,在特征点匹配操作完成后,确定出当前帧图像过于模糊或者是固定点旋转时,通过放弃特征点匹配,转而通过联合光度与几何快速优化相机旋转速度,之后联合优化多个相邻帧图像的相机旋转速度,以确定相机姿态参数,从而可以在没有imu((inertialmeasurementunit,惯性测量单元),且摄像头固定点旋转时,依然可以确定相机姿态参数,提高了操作可靠性和稳定性。

此外,在计算出当前帧图像的相机姿态参数后,可以进一步分析当前帧图像是否可以作为新的关键图像,也即,在图10中,该相机姿态确定装置还可以包括更新模块60,用于:

s106.在该第四确定模块50根据该初始姿态参数、当前帧图像和特征点集确定该当前帧图像的相机姿态参数之后,获取该上一关键帧图像的相机姿态参数,并根据该特征点集、上一关键帧图像的相机姿态参数和该当前帧图像的相机姿态参数,确定相机夹角;

s107.当该相机夹角不小于预设夹角时,将该当前帧图像标记为新关键帧图像;根据该新关键帧图像更新已生成的全局场景。

本实施例中,该全局场景可以是游戏中用户与虚拟物体的互动场景。由于键帧图像决定了与当前帧图像匹配的特征点是哪些,故其选取非常重要,通常,为了保证特征点的精度,关键帧图像上必须有足够多的特征点,且相邻两帧关键帧图像之间应该有足够宽的距离,也即相邻两帧关键图像对应的相机夹角需不小于预设夹角,换言之,可以根据上一关键帧图像、以及当前帧图像的相机姿态参数中的相机位置来确定这两帧图像间的相机夹角,通过相机夹角来确定是否可以将当前帧图像作为新关键帧图像。

例如,在执行上述步骤s107时,更新模块60具体可以用于:

确定该新关键帧图像的目标特征点集、以及该已生成的全局场景的已检测平面;

在该已检测平面上,对该目标特征点集中的目标特征点进行分配;

获取分配失败的该目标特征点;

根据该分配失败的目标特征点在该已生成的全局场景中确定新增平面;

根据该新增平面更新已生成的全局场景。

本实施例中,在将目标特征点分配到已检测平面上,以构建局部场景时,为了避免实际上不位于同一个完整平面上的目标特征点被分配到同一个平面,我们在分配点到平面时,除了检测该目标特征点到平面的距离,也会检查该目标特征点是否与平面上的特征点在图像上相邻,其中,在图像上是否相邻采用delaunay三角剖分算法,该delaunay算法以图像上的特征点为顶点,将图像划分为三角区域,相连的特征点认为在图像上相邻。

检测新的平面时,可以每次抽取一个三角片元,计算出平面的空间方程,然后按照上述分配目标特征点到这个平面上的方法分配到这个平面,如果该平面获得的目标特征点足够多,则将该平面作为新增平面保留下来,如果一个目标特征点被分配到多个新检测出的平面,则优先将该目标特征点分配到点多的平面。

在更新全局场景时,可以先根据新增平面对构建的局部场景进行优化,之后,根据优化后的局部场景对全局场景优化,从而使虚拟场景与现实场景有更好的融合效果。

具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。

由上述可知,本实施例提供的相机姿态确定装置,通过获取模块10获取当前帧图像、前一帧图像以及上一关键帧图像,第一确定模块20确定该上一关键帧图像的特征点集、该当前帧图像的第一缩略图以及该前一帧图像的第二缩略图,之后,第二确定模块30根据该第一缩略图和第二缩略图,确定该当前帧图像与该上一关键帧图像对应的初始全局单应矩阵,第三确定模块40根据该初始全局单应矩阵、当前帧图像和特征点集确定初始姿态参数,之后,第四确定模块50根据该初始姿态参数、当前帧图像和特征点集确定该当前帧图像的相机姿态参数,从而尽量避免细节噪声和光照对相机姿态定位的影响,提高相机姿态的定位精准性和可靠性。

相应的,本发明实施例还提供一种相机姿态确定系统,包括本发明实施例所提供的任一种相机姿态确定装置,该相机姿态确定装置可以集成在电子设备,比如ar设备中。

其中,电子设备可以获取当前帧图像、前一帧图像以及上一关键帧图像;确定该上一关键帧图像的特征点集、该当前帧图像的第一缩略图以及该前一帧图像的第二缩略图;根据该第一缩略图和第二缩略图,确定该当前帧图像与该上一关键帧图像对应的初始全局单应矩阵;根据该初始全局单应矩阵、当前帧图像和特征点集确定初始姿态参数;根据该初始姿态参数、当前帧图像和特征点集确定该当前帧图像的相机姿态参数。

以上各个设备的具体实施可参见前面的实施例,在此不再赘述。

由于该相机姿态确定系统可以包括本发明实施例所提供的任一种相机姿态确定装置,因此,可以实现本发明实施例所提供的任一种相机姿态确定装置所能实现的有益效果,详见前面的实施例,在此不再赘述。

相应的,本发明实施例还提供一种电子设备,如图11所示,其示出了本发明实施例所涉及的电子设备的结构示意图,具体来讲:

该电子设备可以包括一个或者一个以上处理核心的处理器401、一个或一个以上计算机可读存储介质的存储器402、射频(radiofrequency,rf)电路403、电源404、输入单元405、以及显示单元406等部件。本领域技术人员可以理解,图11中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:

处理器401是该电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。可选的,处理器401可包括一个或多个处理核心;优选的,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。

存储器402可用于存储软件程序以及模块,处理器401通过运行存储在存储器402的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器401对存储器402的访问。

rf电路403可用于收发信息过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器401处理;另外,将涉及上行的数据发送给基站。通常,rf电路403包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(sim)卡、收发信机、耦合器、低噪声放大器(lna,lownoiseamplifier)、双工器等。此外,rf电路403还可以通过无线通信与网络和其他设备通信。该无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(gsm,globalsystemofmobilecommunication)、通用分组无线服务(gprs,generalpacketradioservice)、码分多址(cdma,codedivisionmultipleaccess)、宽带码分多址(wcdma,widebandcodedivisionmultipleaccess)、长期演进(lte,longtermevolution)、电子邮件、短消息服务(sms,shortmessagingservice)等。

电子设备还包括给各个部件供电的电源404(比如电池),优选的,电源404可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源404还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。

该电子设备还可包括输入单元405,该输入单元405可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,在一个具体的实施例中,输入单元405可包括触敏表面以及其他输入设备。触敏表面,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面上或在触敏表面附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器401,并能接收处理器401发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面。除了触敏表面,输入单元405还可以包括其他输入设备。具体地,其他输入设备可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。

该电子设备还可包括显示单元406,该显示单元406可用于显示由用户输入的信息或提供给用户的信息以及电子设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元406可包括显示面板,可选的,可以采用液晶显示器(lcd,liquidcrystaldisplay)、有机发光二极管(oled,organiclight-emittingdiode)等形式来配置显示面板。进一步的,触敏表面可覆盖显示面板,当触敏表面检测到在其上或附近的触摸操作后,传送给处理器401以确定触摸事件的类型,随后处理器401根据触摸事件的类型在显示面板上提供相应的视觉输出。虽然在图11中,触敏表面与显示面板是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面与显示面板集成而实现输入和输出功能。

尽管未示出,电子设备还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,电子设备中的处理器401会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能,如下:

获取当前帧图像、前一帧图像以及上一关键帧图像;

确定该上一关键帧图像的特征点集、该当前帧图像的第一缩略图以及该前一帧图像的第二缩略图;

根据该第一缩略图和第二缩略图,确定该当前帧图像与该上一关键帧图像对应的初始全局单应矩阵;

根据该初始全局单应矩阵、当前帧图像和特征点集确定初始姿态参数;

根据该初始姿态参数、当前帧图像和特征点集确定该当前帧图像的相机姿态参数,以确定相机姿态。

该电子设备可以实现本发明实施例所提供的任一种相机姿态确定装置所能实现的有效效果,详见前面的实施例,在此不再赘述。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(rom,readonlymemory)、随机存取记忆体(ram,randomaccessmemory)、磁盘或光盘等。

以上对本发明实施例所提供的一种相机姿态确定方法、装置、存储介质和电子设备进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1