首页> 中国专利> 视觉定位方法、视觉定位装置、存储介质与电子设备

视觉定位方法、视觉定位装置、存储介质与电子设备

摘要

本公开提供了一种视觉定位方法、装置、计算机可读存储介质与电子设备,涉及计算机视觉技术领域。其中,所述方法包括:获取当前帧图像的表面法向量;通过将所述表面法向量投影至曼哈顿坐标系,确定所述当前帧图像与参考帧图像间的第一变换参数;匹配所述当前帧图像的特征点与所述参考帧图像的特征点,根据匹配结果确定所述当前帧图像与所述参考帧图像间的第二变换参数;基于所述第一变换参数与所述第二变换参数,确定目标变换参数;根据所述目标变换参数输出所述当前帧图像对应的视觉定位结果。本公开降低了视觉定位对图像特征质量的依赖,解决了弱纹理环境下的视觉定位问题,并具有较低的实现成本。

著录项

  • 公开/公告号CN113096185A

    专利类型发明专利

  • 公开/公告日2021-07-09

    原文格式PDF

  • 申请/专利权人 OPPO广东移动通信有限公司;

    申请/专利号CN202110336267.8

  • 发明设计人 周宇豪;李姬俊男;郭彦东;

    申请日2021-03-29

  • 分类号G06T7/73(20170101);G06T7/66(20170101);G06T7/33(20170101);G06K9/46(20060101);G06K9/62(20060101);

  • 代理机构44232 深圳市隆天联鼎知识产权代理有限公司;

  • 代理人刘抗美

  • 地址 523860 广东省东莞市长安镇乌沙海滨路18号

  • 入库时间 2023-06-19 11:45:49

说明书

技术领域

本公开涉及计算机视觉技术领域,尤其涉及一种视觉定位方法、视觉定位装置、计算机可读存储介质与电子设备。

背景技术

视觉定位是一种新型的定位技术,通过图像采集设备(如手机、RGB相机等)采集环境图像,配合图像算法和数学推理来实时计算与更新当前位姿,具有高速、高精度、易使用等优点,已广泛应用于AR(AugmentedReality,增强现实)、室内导航等场景下。

相关技术中,在进行视觉定位时,通常需要对图像进行特征提取与特征匹配,以计算位姿。可见,其定位结果极大地依赖于图像中的特征质量。然而,当视觉环境出现弱纹理的情况时,将影响所提取的图像特征质量,导致定位漂移甚至定位失败。

发明内容

本公开提供了一种视觉定位方法、视觉定位装置、计算机可读存储介质与电子设备,进而至少在一定程度上改善相关技术中在弱纹理环境下定位不准确的问题。

根据本公开的第一方面,提供一种视觉定位方法,包括:获取当前帧图像的表面法向量;通过将所述表面法向量投影至曼哈顿坐标系,确定所述当前帧图像与参考帧图像间的第一变换参数;匹配所述当前帧图像的特征点与所述参考帧图像的特征点,根据匹配结果确定所述当前帧图像与所述参考帧图像间的第二变换参数;基于所述第一变换参数与所述第二变换参数,确定目标变换参数;根据所述目标变换参数输出所述当前帧图像对应的视觉定位结果。

根据本公开的第二方面,提供一种视觉定位装置,包括:表面法向量获取模块,被配置为获取当前帧图像的表面法向量;第一变换参数确定模块,被配置为通过将所述表面法向量投影至曼哈顿坐标系,确定所述当前帧图像与参考帧图像间的第一变换参数;第二变换参数确定模块,被配置为匹配所述当前帧图像的特征点与所述参考帧图像的特征点,根据匹配结果确定所述当前帧图像与所述参考帧图像间的第二变换参数;目标变换参数确定模块,被配置为基于所述第一变换参数与所述第二变换参数,确定目标变换参数;视觉定位结果输出模块,被配置为根据所述目标变换参数输出所述当前帧图像对应的视觉定位结果。

根据本公开的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面的视觉定位方法及其可能的实现方式。

根据本公开的第四方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述第一方面的视觉定位方法及其可能的实现方式。

本公开的技术方案具有以下有益效果:

利用当前帧图像中的表面法向量在曼哈顿坐标系中的投影,确定当前帧图像与参考帧图像间的第一变换参数,由此对通过特征点匹配所得到的第二变换参数进行优化,根据优化后得到的目标变换参数输出视觉定位结果。一方面,本方案通过表面法向量的投影与特征点的匹配两方面来确定变换参数,并结合两方面的结果以进行视觉定位,降低了对单方面的依赖性,提高了方案的鲁棒性。特别是降低了对图像中特征质量的依赖,即使在弱纹理环境下,也能够通过优化第二变换参数,提高目标变换参数与最终视觉定位结果的准确性,从而解决弱纹理环境下的视觉定位问题。另一方面,本方案采用特征点匹配的方式确定第二变换参数,特征点的提取与匹配处理所需的计算量较低,有利于提高响应速度与视觉定位的实时性。再一方面,本方案基于普通的单目RGB相机即可实现,无需增加辅助传感器,具有较低的实现成本。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

图1示出本示例性实施方式中一种电子设备的结构示意图;

图2示出本示例性实施方式中一种视觉定位方法的流程图;

图3示出本示例性实施方式中当前帧图像与表面法向量的示意图;

图4示出本示例性实施方式中通过表面法向量估计网络进行处理的示意图;

图5示出本示例性实施方式中一种获取表面法向量的流程图;

图6示出本示例性实施方式中一种确定第一变换参数的流程图;

图7示出本示例性实施方式中一种确定当前帧图像对应的相机坐标系-曼哈顿坐标系变换参数的示意图;

图8示出本示例性实施方式中一种特征点匹配的流程图;

图9示出本示例性实施方式中一种特征点匹配的示意图;

图10示出本示例性实施方式中一种输出视觉定位结果的流程图;

图11示出本示例性实施方式中对三维点云进行投影的示意图;

图12示出本示例性实施方式中一种特征点与投影点匹配的流程图;

图13示出本示例性实施方式中目标场景的三维点云示意图;

图14示出本示例性实施方式中一种视觉定位初始化的流程图;

图15示出本示例性实施方式中确定第i帧目标变换参数的流程图;

图16示出本示例性实施方式中确定第i帧目标变换参数的示意图;

图17示出本示例性实施方式中一种视觉定位装置的结构示意图。

具体实施方式

现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。

此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。

附图中所示的流程图仅是示例性说明,不是必须包括所有的步骤。例如,有的步骤还可以分解,而有的步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。

为了提高在弱纹理环境下视觉定位的准确性,相关技术中出现了采用辅助传感器的方案。例如,采用激光传感器(如激光雷达)、深度传感器(如RGB-D相机)等直接获取图像像素对应位置处的深度信息,从而恢复出三维点云信息来进行视觉定位。但是这样增加了方案实现的硬件成本。

鉴于上述问题,本公开的示例性实施方式首先提供一种视觉定位方法,其应用场景包括但不限于:用户处于商场内部,需要室内导航时,可以通过具有拍摄功能的终端对环境进行拍摄,终端对环境图像进行特征点提取,并上传至云端,由云端执行本示例性实施方式的视觉定位方法,确定终端的定位结果,提供室内导航服务。

本公开的示例性实施方式还提供一种电子设备,用于执行上述视觉定位方法。该电子设备可以是上述终端或云端的服务器,包括但不限于计算机、智能手机、可穿戴设备(如增强现实眼镜)、机器人、无人机等。一般的,电子设备包括处理器和存储器。存储器用于存储处理器的可执行指令,也可以存储应用数据,如图像数据、视频数据等;处理器配置为经由执行可执行指令来执行本示例性实施方式中的视觉定位方法。

下面以图1中的移动终端100为例,对上述电子设备的构造进行示例性说明。本领域技术人员应当理解,除了特别用于移动目的的部件之外,图1中的构造也能够应用于固定类型的设备。

如图1所示,移动终端100具体可以包括:处理器110、内部存储器121、外部存储器接口122、USB(Universal Serial Bus,通用串行总线)接口130、充电管理模块140、电源管理模块141、电池142、天线1、天线2、移动通信模块150、无线通信模块160、音频模块170、扬声器171、受话器172、麦克风173、耳机接口174、传感器模块180、显示屏190、摄像模组191、指示器192、马达193、按键194以及SIM(Subscriber Identification Module,用户标识模块)卡接口195等。

处理器110可以包括一个或多个处理单元,例如:处理器110可以包括AP(Application Processor,应用处理器)、调制解调处理器、GPU(Graphics ProcessingUnit,图形处理器)、ISP(Image Signal Processor,图像信号处理器)、控制器、编码器、解码器、DSP(Digital Signal Processor,数字信号处理器)、基带处理器和/或NPU(Neural-Network Processing Unit,神经网络处理器)等。

编码器可以对图像或视频数据进行编码(即压缩),例如对拍摄的场景图像进行编码,形成对应的码流数据,以减少数据传输所占的带宽;解码器可以对图像或视频的码流数据进行解码(即解压缩),以还原出图像或视频数据,例如对场景图像的码流数据进行解码,得到完整的图像数据,便于执行本示例性实施方式的定位方法。移动终端100可以支持一种或多种编码器和解码器。这样,移动终端100可以处理多种编码格式的图像或视频,例如:JPEG(Joint Photographic Experts Group,联合图像专家组)、PNG(Portable NetworkGraphics,便携式网络图形)、BMP(Bitmap,位图)等图像格式,MPEG(Moving PictureExperts Group,动态图像专家组)1、MPEG2、H.263、H.264、HEVC(High Efficiency VideoCoding,高效率视频编码)等视频格式。

在一种实施方式中,处理器110可以包括一个或多个接口,通过不同的接口和移动终端100的其他部件形成连接。

内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器121可以包括易失性存储器与非易失性存储器。处理器110通过运行存储在内部存储器121的指令,执行移动终端100的各种功能应用以及数据处理。

外部存储器接口122可以用于连接外部存储器,例如Micro SD卡,实现扩展移动终端100的存储能力。外部存储器通过外部存储器接口122与处理器110通信,实现数据存储功能,例如存储图像,视频等文件。

USB接口130是符合USB标准规范的接口,可以用于连接充电器为移动终端100充电,也可以连接耳机或其他电子设备。

充电管理模块140用于从充电器接收充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为设备供电;电源管理模块141还可以监测电池的状态。

移动终端100的无线通信功能可以通过天线1、天线2、移动通信模块150、无线通信模块160、调制解调处理器以及基带处理器等实现。天线1和天线2用于发射和接收电磁波信号。移动通信模块150可以提供应用在移动终端100上的包括2G/3G/4G/5G等无线通信的解决方案。无线通信模块160可以提供应用在移动终端100上的包括WLAN(Wireless LocalArea Networks,无线局域网)(如Wi-Fi(Wireless Fidelity,无线保真)网络)、BT(Bluetooth,蓝牙)、GNSS(Global Navigation Satellite System,全球导航卫星系统)、FM(Frequency Modulation,调频)、NFC(Near Field Communication,近距离无线通信技术)、IR(Infrared,红外技术)等无线通信解决方案。

移动终端100可以通过GPU、显示屏190及AP等实现显示功能,显示用户界面。例如,当用户开启拍摄功能时,移动终端100可以在显示屏190中显示拍摄界面和预览图像等。

移动终端100可以通过ISP、摄像模组191、编码器、解码器、GPU、显示屏190及AP等实现拍摄功能。例如,用户可以启动视觉定位的相关服务,触发开启拍摄功能,此时可以通过摄像模组191采集当前场景的图像,并进行定位。

移动终端100可以通过音频模块170、扬声器171、受话器172、麦克风173、耳机接口174及AP等实现音频功能。

传感器模块180可以包括深度传感器1801、压力传感器1802、陀螺仪传感器1803、气压传感器1804等,以实现相应的感应检测功能。

指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。马达193可以产生振动提示,也可以用于触摸振动反馈等。按键194包括开机键,音量键等。

移动终端100可以支持一个或多个SIM卡接口195,用于连接SIM卡,以实现通话与移动通信等功能。

下面结合图2对本示例性实施方式的视觉定位方法进行说明,图2示出了视觉定位方法的示例性流程,可以包括:

步骤S210,获取当前帧图像的表面法向量;

步骤S220,通过将表面法向量投影至曼哈顿坐标系,确定当前帧图像与参考帧图像间的第一变换参数;

步骤S230,匹配当前帧图像的特征点与参考帧图像的特征点,根据匹配结果确定当前帧图像与参考帧图像间的第二变换参数;

步骤S240,利用第一变换参数优化第二变换参数,得到目标变换参数;

步骤S250,根据目标变换参数输出当前帧图像对应的视觉定位结果。

基于上述方法,利用当前帧图像中的表面法向量在曼哈顿坐标系中的投影,确定当前帧图像与参考帧图像间的第一变换参数,由此对通过特征点匹配所得到的第二变换参数进行优化,根据优化后得到的目标变换参数输出视觉定位结果。一方面,本示例性实施方式通过表面法向量的投影与特征点的匹配两方面来确定变换参数,并结合两方面的结果以进行视觉定位,降低了对单方面的依赖性,提高了方案的鲁棒性。特别是降低了对图像中特征质量的依赖,即使在弱纹理环境下,也能够通过优化第二变换参数,提高目标变换参数与最终视觉定位结果的准确性,从而解决弱纹理环境下的视觉定位问题。另一方面,本示例性实施方式采用特征点匹配的方式确定第二变换参数,特征点的提取与匹配处理所需的计算量较低,有利于提高响应速度与视觉定位的实时性。再一方面,本示例性实施方式基于普通的单目RGB相机即可实现,无需增加辅助传感器,具有较低的实现成本。

下面对图2中的每个步骤进行具体说明。

参考图2,步骤S210中,获取当前帧图像的表面法向量。

当前帧图像是当前针对目标场景所拍摄的图像,目标场景即用户当前所处的环境场景,例如房间、商场等。在视觉定位的场景中,通常需要终端连续拍摄多帧场景图像,当前帧图像是其中最新一帧图像。当前帧图像的表面法向量包括当前帧图像中至少一部分像素点的表面法向量。举例来说,当前帧图像的高度与宽度分别为H、W,则当前帧图像的像素数为H*W,获取每个像素点的表面法向量,每个像素点的表面法向量包括3个维度的轴坐标,则当前帧图像的表面法向量包括H*W*3个数值。图3示出了表面法向量的可视化示意图,其中图像I

在一种实施方式中,可以预先训练表面法向量估计网络,其可以是CNN(Convolutional Neural Network,卷积神经网络)等深度学习网络,利用该表面法向量估计网络处理当前帧图像,得到当前帧图像的表面法向量。

图4示出了表面法向量估计网络的结构示意图,可以基于传统的U-Net(一种U型网络)结构进行变化。该网络主要包括三部分:编码子网络(Encoder),解码子网络(Decoder),卷积子网络(Convolution)。参考图5所示,获取表面法向量的过程可以包括:

步骤S510,利用编码子网络对当前帧图像进行下采样操作,得到下采样中间图像与下采样目标图像;

步骤S520,利用解码子网络对下采样目标图像进行上采样操作以及与下采样中间图像的拼接操作,得到上采样目标图像;

步骤S530,利用卷积子网络对上采样目标图像进行卷积操作,得到表面法向量。

一般的,将当前帧图像输入表面法向量估计网络后,首先进入编码子网络,在编码子网络中需要依次进行多次下采样操作。例如进行g次下采样操作(g≥2),第1次至第g-1次下采样操作所得到的图像为下采样中间图像,第g次下采样操作所得到的图像为下采样目标图像。下采样中间图像与下采样目标图像均可视为编码子网络输出的图像。下采样操作可以捕捉图像中的语义信息。

接下来,下采样目标图像进入解码子网络,依次进行多次上采样与拼接操作。每次进行上采样操作后,将得到的图像与对应的下采样中间图像进行拼接,得到上采样中间图像,再对该上采样中间图像进行下一次上采样与拼接操作。解码子网络的上采样操作与编码子网络的下采样操作相对应,可以与图像中的语义信息进行定位。在完成最后一次上采样与拼接操作后,解码子网络输出上采样目标图像。需要说明的是,在解码子网络的处理中,也可以将拼接操作视为上采样操作中的一个环节,将上述上采样与拼接操作统称为上采样操作,本公开对此不做限定。

最后,上采样目标图像进入卷积子网络。卷积子网络可以由多个尺度不变的卷积层组成,通过对上采样目标图像进行卷积操作,进一步学习图像特征,提高图像解码能力,并最终输出表面法向量。

在一种实施方式中,表面法向量估计网络的训练过程可以包括以下步骤:

构建初始的表面法向量估计网络,其结构可以如图4所示;

建立表面法向量估计网络的损失函数,可以如下所示:

L=∑

其中,p

设置Mini-batch的训练方式与Adam算法,并设置训练学习率和训练步数,如分别为0.001和100万步数;

输入包含RGB图像与表面法向量图像的数据集,如Taskonomy和NYUv2,开始训练;

完成训练并测试通过后,对表面法向量估计网络的结构与参数进行固化,并保存为相应的文件,以供调用。

下面结合图4,对表面法向量估计网络的处理过程进一步举例说明:将当前帧图像输入网络,由Encoder进行5次下采样操作;每次下采样操作可以包括两次3*3的卷积操作与一次2*2的最大池化操作,且5次下采样操作所用的卷积核数目依次翻倍,分别为1、64、128、256、512和1024;每次下采样操作后得到对应的下采样中间图像,其尺寸依次递减,最后一次下采样操作后得到下采样目标图像。由Decoder对下采样目标图像进行与下采样操作相对应的多次上采样操作;每次上采样操作可以包括一次2*2的转置卷积(或称反卷积)操作,一次与对应相同尺寸的下采样中间图像的拼接操作,以及两次3*3的卷积操作;每次上采样操作后得到对应的上采样中间图像,其尺寸依次递增,最后一次上采样操作后得到上采样目标图像。再由Convolution对上采样目标图像进行全卷积操作,最终输出表面法向量。

继续参考图2,步骤S220中,通过将表面法向量投影至曼哈顿坐标系,确定当前帧图像与参考帧图像间的第一变换参数。

曼哈顿世界(Manhattan World)假设是指假设环境中存在垂直或正交的信息,例如在图3所示的当前帧图像I

需要说明的是,本示例性实施方式所述的变换参数,可以包括旋转参数(如旋转矩阵)与平移参数(如平移向量)。

在步骤S210中,可以获取当前帧图像中每个像素点的表面法向量。在步骤S220中,可以将每个像素点的表面法向量均投影至曼哈顿坐标系,经过后续处理得到第一变换参数。或者,也可以将一部分像素点的表面法向量投影至曼哈顿坐标系,例如选取当前帧图像中低平坦度区域(通常是纹理变化较大的区域)的像素点,将其表面法向量投影至曼哈顿坐标系。

在一种实施方式中,参考图6所示,步骤S220可以通过以下步骤S610至S630实现:

步骤S610中,利用参考帧图像对应的相机坐标系-曼哈顿坐标系变换参数,将上述表面法向量映射至曼哈顿坐标系。

其中,相机坐标系一般指以相机的光心为原点的笛卡尔坐标系,可以表示为SO(3);曼哈顿坐标系一般指以单位球构成的向量坐标系,可以表示为so(3),如图7所示的法向量球,法向量球上的每一个点表示相机坐标系下表面法向量的起点移至球心后,表面法向量的终点所在的位置。步骤S210中所获取的表面法向量是在相机坐标系下的信息,利用相机坐标系-曼哈顿坐标系变换参数,可以将其映射至曼哈顿坐标系中。

相机坐标系中x、y、z轴的方向与相机的位姿相关,曼哈顿坐标系中x、y、z轴的方向是对目标场景建立曼哈顿坐标系时所确定的,与目标场景的真实世界信息相关,无论相机如何运动,曼哈顿坐标系中x、y、z轴的方向是固定的。因此,相机坐标系与曼哈顿坐标系间的变换关系包括两坐标系间的旋转变换关系。由于表面法向量仅表示方向,与像素点的位置无关,例如图3所示的当前帧图像I

在一种实施方式中,步骤S610可以包括:

利用参考帧图像对应的相机坐标系-曼哈顿坐标系变换参数,将上述表面法向量在参考帧图像对应的相机坐标系下的三维轴坐标映射为在曼哈顿坐标系下的三维轴坐标;

将表面法向量在曼哈顿坐标系下的三维轴坐标映射为在曼哈顿坐标系的轴的切向平面上的二维坐标。

举例来说,将参考帧图像对应的相机坐标系-曼哈顿坐标系旋转矩阵表示为R

其中,n

然后通过对数映射(logarithm map)将其映射至曼哈顿坐标系的轴的切向平面上,例如映射到z轴的切向平面上,得到:

其中,

步骤S620中,基于表面法向量在曼哈顿坐标系下的偏移,确定当前帧图像对应的相机坐标系-曼哈顿坐标系变换参数。

基于曼哈顿世界假设,如果相机坐标系-曼哈顿坐标系变换参数准确,则将表面法向量映射到曼哈顿坐标系后,表面法向量应当与曼哈顿坐标系的轴方向相同。参考图7所示,由于在步骤S610进行采用参考帧图像对应的相机坐标系-曼哈顿坐标系变换参数R

在一种实施方式中,步骤S620可以包括:

对表面法向量在切向平面上的二维坐标进行聚类,根据聚类中心确定表面法向量在切向平面上的偏移;

将上述偏移在切向平面上的二维坐标映射为在曼哈顿坐标系下的三维轴坐标;

根据参考帧图像对应的相机坐标系-曼哈顿坐标系变换参数与上述偏移在曼哈顿坐标系下的三维轴坐标,确定当前帧图像对应的相机坐标系-曼哈顿坐标系变换参数。

其中,对表面法向量的二维坐标聚类时,实际上是对表面法向量在切向平面上的投影点进行聚类,可以分别对每个维度的坐标进行聚类,本公开对于聚类的具体方式不做限定。

举例来说,使用传统Mean-Shift算法(均值偏移,是一种聚类算法)计算m

其中,c为高斯核的宽度,s

然后通过指数映射将s

此时,s

其中,

在一种实施方式中,对于上述相对旋转矩阵

步骤S630中,根据参考帧图像对应的相机坐标系-曼哈顿坐标系变换参数与当前帧图像对应的相机坐标系-曼哈顿坐标系变换参数,确定当前帧图像与参考帧图像间的第一变换参数。

参考图7所示,参考帧图像对应的相机坐标系c

其中,c

继续参考图2,步骤S230中,匹配当前帧图像的特征点与参考帧图像的特征点,根据匹配结果确定当前帧图像与参考帧图像间的第二变换参数。

特征点是指图像中具有局部代表性的点,能够反映图像的局部特征,通常从纹理较为丰富的边界区域提取特征点,并通过一定的方式对特征点加以描述,得到特征点描述子。本示例性实施方式可以采用FAST(Features From Accelerated Segment Test,基于加速分割检测的特征)、BRIEF(Binary Robust Independent Elementary Features,二进制鲁棒独立基本特征)、ORB(Oriented FAST and Rotated BRIEF,面向FAST和旋转BRIEF)、SIFT(Scale-Invariant Feature Transform,尺度不变特征变换)、SURF(Speeded UpRobust Features,加速鲁棒特征)、SuperPoint(基于自监督学习的特征点检测和描述符提取)、R2D2(Reliable and Repeatable Detector and Descriptor,可靠可重复的特征点与描述符)等算法提取特征点并对特征点进行描述。

以SIFT特征为例进行说明。SIFT特征是对图像中检测到的特征点用128维的特征向量进行描述,具有对图像缩放、平移、旋转不变的特性,对于光照、仿射和投影变换也有一定的不变性。从参考帧图像与当前帧图像提取特征点并通过SIFT特征进行表示,对两图像中的SIFT特征进行匹配。一般可以计算两特征点的SIFT特征向量的相似度,如通过欧式距离、余弦相似度等对相似度进行度量,如果相似度较高,则说明两特征点匹配,形成匹配点对。将参考帧图像与当前帧图像中的匹配点对形成集合,得到上述匹配结果。

在一种实施方式中,参考图8所示,步骤S230可以包括:

步骤S810,将参考帧图像的特征点向当前帧图像的特征点进行匹配,得到第一匹配信息;

步骤S820,将当前帧图像的特征点向参考帧图像的特征点进行匹配,得到第二匹配信息;

步骤S830,根据第一匹配信息与第二匹配信息得到匹配结果。

举例来说,从参考帧图像c

将D

在步骤S810与步骤S820中,匹配方向不同,所得到的匹配结果也不同,分别表示为第一匹配信息

进一步的,可以综合第一匹配信息与第二匹配信息,得到最终的匹配结果。

在一种实施方式中,可以对第一匹配信息与第二匹配信息取交集,得到匹配结果。例如,在第一匹配信息中确定不同特征点对的第一匹配概率;在第二匹配信息中确定不同特征点对的第二匹配概率;对同一特征点对,在第一匹配概率与第二匹配概率中取较小值作为综合匹配概率;然后筛选出综合匹配概率高于预设的匹配阈值的特征点对,得到匹配结果。或者,在第一匹配信息中筛选出匹配概率高于匹配阈值的特征点对,得到第一匹配点对集合;在第二匹配信息中筛选出匹配概率高于匹配阈值的特征点对,得到第二匹配点对集合;然后对第一匹配点对集合与第二匹配点对集合取交集,得到匹配结果。通过取交集的方式,实现了Cross-Check惩罚的匹配,保证了匹配点对的质量。

在另一种实施方式中,也可以对第一匹配信息与第二匹配信息取并集,得到匹配结果。与上述取交集的方式区别在于,在上述第一匹配概率与第二匹配概率中取较大值作为综合匹配概率,或者对上述第一匹配点对集合与第二匹配点对集合取并集。

在一种实施方式中,确定参考帧图像与当前帧图像的匹配点对后,可以利用图像间的几何约束关系,如对极约束等,通过RANSAC(RandomSample Consensus,随机采样一致性)等算法剔除参考帧图像与当前帧图像中的误匹配点对,以提高特征点匹配与后续处理结果的准确性。

图9示出了参考帧图像与当前帧图像之间的特征点的匹配关系。基于特征点的匹配关系,可以采用SVD算法计算两图像间的第二变换参数,可以包括旋转矩阵

继续参考图2,步骤S240中,基于第一变换参数与第二变换参数,确定目标变换参数。

由上可知,第一变换参数是通过表面法向量的投影而确定的,第二变换参数是通过特征点匹配而确定的,这两方面的算法均可能存在一定局限性。本示例性实施方式通过综合第一变换参数与第二变换参数,得到更加准确的目标变换参数。例如,基于第一变换参数与第二变换参数中的一个去优化另一个,优化后得到目标变换参数。

在一种实施方式中,第一变换参数包括第一旋转矩阵,第二变换参数包括第二旋转矩阵。可以采用BA算法(Bundle Adjustment,光束平差法)优化其中任一个。具体地,步骤S240可以包括:

基于第一旋转矩阵与第二旋转矩阵间的误差,建立损失函数;

通过迭代调整第二旋转矩阵,优化损失函数的最小值,将调整后的第二旋转矩阵作为目标变换参数中的旋转矩阵。

示例性的,用于优化旋转矩阵的损失函数可以如下所示:

其中,第二旋转矩阵

继续参考图2,步骤S250中,根据目标变换参数输出当前帧图像对应的视觉定位结果。

目标变换参数用于表示当前帧图像与参考帧图像间的相对位姿关系。一般的,参考帧图像的位姿已被确定,在参考帧图像的位姿基础上,通过目标变换参数进行仿射变换,得到当前帧图像对应的视觉定位结果,如可以是6DoF(Degree of Freedom,自由度)位姿。

在一种实施方式中,参考图10所示,步骤S250可以包括:

步骤S1010,根据目标变换参数与参考帧图像对应的位姿,确定当前帧图像对应的第一位姿;

步骤S1020,利用第一位姿将目标场景的三维点云投影至当前帧图像的平面,得到对应的投影点;

步骤S1030,匹配当前帧图像的特征点与投影点,根据当前帧图像的特征点与投影点的匹配点对确定当前帧图像的第二位姿;

步骤S1040,将第二位姿作为当前帧图像对应的视觉定位结果进行输出。

其中,第一位姿与第二位姿分别指通过不同方式所确定的当前帧图像的位姿。在确定目标变换参数后,基于参考帧图像对应的位姿进行仿射变换,所得到的位姿为第一位姿。本示例性实施方式在第一位姿的基础上做进一步优化,得到更加准确的第二位姿,以作为最终的视觉定位结果加以输出。

目标场景为当前帧图像与参考帧图像所拍摄的场景,也是待定位设备当前所处的场景。图11示出了三维点云投影至当前帧图像平面的示意图,将三维点云从世界坐标系投影至当前帧图像对应的相机坐标系或图像坐标系后,得到对应的投影点。匹配当前帧图像的特征点与投影点,得到匹配点对。本示例性实施方式可以对投影点进行与特征点相同方式的描述,例如对特征点进行SIFT特征描述,对投影点也进行SIFT特征描述,这样通过计算特征点的SIFT特征向量与投影点的SIFT特征向量的相似度,可以进行特征点与投影点的匹配。

在一种实施方式中,参考图12所示,上述匹配当前帧图像的特征点与投影点,可以包括:

步骤S1210,将投影点向当前帧图像的特征点进行匹配,得到第三匹配信息;

步骤S1220,将当前帧图像的特征点向投影点进行匹配,得到第四匹配信息;

步骤S1230,根据第三匹配信息与第四匹配信息得到当前帧图像的特征点与投影点的匹配点对。

在得到投影点与当前帧图像的特征点的匹配点对后,将其中的投影点替换为三维点云中的点,得到当前帧图像的特征点(二维点)与三维点的匹配关系,进而通过PnP(Perspective-n-Point,一种基于2D-3D匹配关系求解位姿的算法)等算法求解得到第二位姿。

需要说明的是,图2所示的视觉定位方法可以应用于SLAM(SimultaneousLocalization And Mapping,同时定位与建图)的场景,也可以应用于在已构建地图的情况下进行视觉定位的场景。下面以已构建地图的情况下进行视觉定位的场景为例,对视觉定位的流程做进一步说明。

在构建地图的环节,由工作人员使用手机、全景相机等图像采集设备采集目标场景的图像,并通过SFM(Structure From Motion,运动恢复结构)流程构建由三维点云形成的地图,可以参考图13所示。

假设某一用户位于目标场景中的某个位置,拿出手机对周围环境连续拍摄多帧图像,与此同时进行视觉定位。流程如下:

(一)视觉定位初始化

图14示出了视觉定位初始化的流程图。输入第1帧图像,一方面获取表面法向量,构建曼哈顿坐标系。一般的,可以设置曼哈顿坐标系与第1帧图像对应的相机坐标系的原点与轴方向均相同,由此得到初始的相机坐标系-曼哈顿坐标系变换参数,其中旋转矩阵R

(二)确定目标变换参数

图15示出了对第i帧图像进行处理的流程图,图16示出了对第i帧图像进行处理的示意图。参考图15与图16所示,输入第i帧图像,当i大于或等于2时,获取表面法向量,以第i-1帧图像为参考帧图像,获取第i-1帧的相机坐标系-曼哈顿坐标系变换参数(C-M变换参数),利用该变换参数将第i帧的表面法向量映射至曼哈顿坐标系M,并通过聚类计算偏移,以得到第i帧的C-M变换参数;进而在计算第i帧与第i-1帧间的第一变换参数。从第i帧图像中提取特征点并通过SIFT特征进行描述,与第i-1帧图像的特征点进行匹配,以得到第i帧与第i-1帧间的第二变换参数。利用第一变换参数优化第二变换参数,得到目标变换参数。

(三)输出视觉定位结果

根据第i-1帧的位姿,输出第i帧的第一位姿,通过第一位姿对目标场景的三维点云进行重投影,得到对应的投影点;基于投影点的SIFT特征与第i帧图像的SIFT特征,得到投影点-特征点的匹配点对;最后根据匹配点对求解PnP算法,输出第i帧的第二位姿,即最终的视觉定位结果。基于每一帧的视觉定位结果,可以得到待定位设备的运动轨迹,由此实现实时的室内导航或其他功能。

本公开的示例性实施方式还提供一种视觉定位装置。参考图17所示,该视觉定位装置1700可以包括:

表面法向量获取模块1710,被配置为获取当前帧图像的表面法向量;

第一变换参数确定模块1720,被配置为通过将表面法向量投影至曼哈顿坐标系,确定当前帧图像与参考帧图像间的第一变换参数;

第二变换参数确定模块1730,被配置为匹配当前帧图像的特征点与参考帧图像的特征点,根据匹配结果确定当前帧图像与参考帧图像间的第二变换参数;

目标变换参数确定模块1740,被配置为基于第一变换参数与第二变换参数,确定目标变换参数;

视觉定位结果输出模块1750,被配置为根据目标变换参数输出当前帧图像对应的视觉定位结果。

在一种实施方式中,表面法向量获取模块1710,被配置为:

利用预先训练的表面法向量估计网络对当前帧图像进行处理,得到当前帧图像的表面法向量。

在一种实施方式中,表面法向量估计网络包括编码子网络、解码子网络与卷积子网络。表面法向量获取模块1710,被配置为:

利用编码子网络对当前帧图像进行下采样操作,得到下采样中间图像与下采样目标图像;

利用解码子网络对下采样目标图像进行上采样操作以及与下采样中间图像的拼接操作,得到上采样目标图像;

利用卷积子网络对上采样目标图像进行卷积操作,得到表面法向量。

在一种实施方式中,第一变换参数确定模块1720,被配置为:

利用参考帧图像对应的相机坐标系-曼哈顿坐标系变换参数,将表面法向量映射至曼哈顿坐标系;

基于表面法向量在曼哈顿坐标系下的偏移,确定当前帧图像对应的相机坐标系-曼哈顿坐标系变换参数;

根据参考帧图像对应的相机坐标系-曼哈顿坐标系变换参数与当前帧图像对应的相机坐标系-曼哈顿坐标系变换参数,确定当前帧图像与参考帧图像间的第一变换参数。

在一种实施方式中,第一变换参数确定模块1720,被配置为:

利用参考帧图像对应的相机坐标系-曼哈顿坐标系变换参数,将表面法向量在参考帧图像对应的相机坐标系下的三维轴坐标映射为在曼哈顿坐标系下的三维轴坐标;

将表面法向量在曼哈顿坐标系下的三维轴坐标映射为在曼哈顿坐标系的轴的切向平面上的二维坐标。

在一种实施方式中,第一变换参数确定模块1720,被配置为:

对表面法向量在切向平面上的二维坐标进行聚类,根据聚类中心确定表面法向量在切向平面上的偏移;

将偏移在切向平面上的二维坐标映射为在曼哈顿坐标系下的三维轴坐标;

根据参考帧图像对应的相机坐标系-曼哈顿坐标系变换参数与偏移在曼哈顿坐标系下的三维轴坐标,确定当前帧图像对应的相机坐标系-曼哈顿坐标系变换参数。

在一种实施方式中,第二变换参数确定模块1730,被配置为:

将参考帧图像的特征点向当前帧图像的特征点进行匹配,得到第一匹配信息;

将当前帧图像的特征点向参考帧图像的特征点进行匹配,得到第二匹配信息;

根据第一匹配信息与第二匹配信息得到匹配结果。

在一种实施方式中,第二变换参数确定模块1730,被配置为:

对第一匹配信息与第二匹配信息取交集,得到匹配结果。

在一种实施方式中,第一变换参数包括第一旋转矩阵,第二变换参数包括第二旋转矩阵。目标变换参数确定模块1740,被配置为:

基于第一旋转矩阵与第二旋转矩阵间的误差,建立损失函数;

通过迭代调整第二旋转矩阵,优化损失函数的最小值,将调整后的第二旋转矩阵作为目标变换参数中的旋转矩阵。

在一种实施方式中,视觉定位结果输出模块1750,被配置为:

根据目标变换参数与参考帧图像对应的位姿,确定当前帧图像对应的第一位姿;

利用第一位姿将目标场景的三维点云投影至当前帧图像的平面,得到对应的投影点,目标场景为当前帧图像与参考帧图像所拍摄的场景;

匹配当前帧图像的特征点与投影点,根据当前帧图像的特征点与投影点的匹配点对确定当前帧图像的第二位姿;

将第二位姿作为当前帧图像对应的视觉定位结果进行输出。

在一种实施方式中,视觉定位结果输出模块1750,被配置为:

将投影点向当前帧图像的特征点进行匹配,得到第三匹配信息;

将当前帧图像的特征点向投影点进行匹配,得到第四匹配信息;

根据第三匹配信息与第四匹配信息得到当前帧图像的特征点与投影点的匹配点对。

上述装置中各部分的细节在方法部分实施方式中已经详细说明,因而不再赘述。

本公开的示例性实施方式还提供了一种计算机可读存储介质,可以实现为一种程序产品的形式,其包括程序代码,当程序产品在电子设备上运行时,程序代码用于使电子设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。在一种实施方式中,该程序产品可以实现为便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在电子设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。

计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。

应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的示例性实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。

所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施方式。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施方式仅被视为示例性的,本公开的真正范围和精神由权利要求指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号