掌桥专利:专业的专利平台
掌桥专利
首页

位姿优化方法、位姿优化装置、存储介质与电子设备

文献发布时间:2023-06-19 09:44:49


位姿优化方法、位姿优化装置、存储介质与电子设备

技术领域

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

背景技术

在SLAM(Simultaneous Localization And Mapping,同时定位和建图)、视觉导航等场景中,通常会在拍摄场景图像时跟踪相机位姿,便于将场景图像与三维地图进行匹配,实现进一步的建图或导航等功能。

然而,位姿跟踪的精度对于环境的变化非常敏感,当出现光照强烈变化、弱纹理环境、相机剧烈运动等非常规情况时,可能导致位姿结果与实际的较大偏差,影响定位与建图准确性。

发明内容

本公开提供了一种位姿优化方法、位姿优化装置、计算机可读存储介质与电子设备,进而至少在一定程度上改善相关技术中位姿跟踪精度受环境影响较大的问题。

本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。

根据本公开的第一方面,提供一种位姿优化方法,包括:获取针对目标场景所采集的多帧场景图像;通过位姿估计模型对第一图像序列进行处理,得到所述第一图像序列的图像相对位姿,所述第一图像序列是由所述多帧场景图像中的至少部分场景图像所形成的序列;利用所述场景图像中参考图像的位姿与所述第一图像序列的图像相对位姿,对第二图像序列的图像相对位姿进行优化,所述第二图像序列是由所述多帧场景图像中的至少部分场景图像所形成的序列;根据优化后的所述第二图像序列的图像相对位姿,更新所述第二图像序列中场景图像的位姿。

根据本公开的第二方面,提供一种位姿优化装置,包括:场景图像获取模块,用于获取针对目标场景所采集的多帧场景图像;第一图像序列处理模块,用于通过位姿估计模型对第一图像序列进行处理,得到所述第一图像序列的图像相对位姿,所述第一图像序列是由所述多帧场景图像中的至少部分场景图像所形成的序列;第二图像序列处理模块,用于利用所述场景图像中参考图像的位姿与所述第一图像序列的图像相对位姿,对第二图像序列的图像相对位姿进行优化,所述第二图像序列是由所述多帧场景图像中的至少部分场景图像所形成的序列;位姿更新模块,用于根据优化后的所述第二图像序列的图像相对位姿,更新所述第二图像序列中场景图像的位姿。

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

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

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

在终端采集场景图像时,通过位姿估计模型得到第一图像序列的图像相对位姿,并以此对第二图像序列的图像相对位姿进行优化,进而更新第二图像序列中场景图像的位姿。一方面,利用了场景图像中的序列化特征以及位姿估计模型的稳定性,可以降低对环境变化的敏感性,解决如光照强烈变化、弱纹理环境、相机剧烈运动等导致的位姿偏差问题,提高位姿跟踪的鲁棒性。另一方面,相较于常规SLAM系统中的特征点匹配、PnP算法(Perspective-n-Point,求解3D-2D点对运动的方法),本方案采用位姿估计模型的方式降低了算法复杂度,减少了耗时,有利于实现快速定位。再一方面,在第二图像序列的范围内对相对位姿进行优化,能够减小位姿累积误差的影响,提高位姿精度,进而改善定位与建图的准确性。

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

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施方式,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

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

图2示出本示例性实施方式中一种位姿优化方法的流程图;

图3示出本示例性实施方式中对第一图像序列输出图像相对位姿的示意图;

图4示出本示例性实施方式中一种提取第一图像序列的示意图;

图5示出本示例性实施方式中一种训练位姿估计模型方法的流程图;

图6示出本示例性实施方式中LSTM的cell结构示意图;

图7示出本示例性实施方式中一种提取第一图像序列和第二图像序列的示意图;

图8示出本示例性实施方式中一种优化图像相对位姿方法的流程图;

图9示出本示例性实施方式中另一种优化图像相对位姿方法的流程图;

图10示出本示例性实施方式中一种语义分割的示意图;

图11示出本示例性实施方式中一种位姿跟踪的流程架构图;

图12示出本示例性实施方式中一种位姿优化装置的结构示意图。

具体实施方式

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

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

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

本公开的示例性实施方式首先提供一种位姿优化方法,其应用场景包括但不限于:用户处于商场中,需要前往某家餐厅,传统的GPS(Global Positioning System,全球定位系统)等服务无法提供足够的导航精度,用户可以使用智能手机等终端连续拍摄多帧场景图像,执行本示例性实施方式的位姿优化方法以实现高精度连续定位,进而规划出前往餐厅的路径;或者用户使用终端拍摄多帧场景图像后,将图像上传到云端,云端执行位姿优化方法以对终端进行连续定位,进而生成导航信息,发送到终端,实现室内导航服务。

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

下面以图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,根据优化后的第二图像序列的图像相对位姿,更新第二图像序列中场景图像的位姿。

其中,目标场景是终端当前所在的场景,如可以是商场、街道等。场景图像的位姿是指采集场景图像时终端的位姿(一般具体指终端上的相机或摄像头位姿),可以是终端在目标场景中的绝对位姿,如可以是6DOF(Degree of Freedom,自由度)位姿数据,包括3个位置坐标和3个旋转角度,也可以是终端在目标场景中相对于某个基准位姿(如目标场景世界坐标系的原点)的相对位姿,如可以包括旋转矩阵和平移向量,本公开对此不做限定。

通过上述方法,在终端采集场景图像时,通过位姿估计模型得到第一图像序列的图像相对位姿,并以此对第二图像序列的图像相对位姿进行优化,进而更新第二图像序列中场景图像的位姿。一方面,利用了场景图像中的序列化特征以及位姿估计模型的稳定性,可以降低对环境变化的敏感性,解决如光照强烈变化、弱纹理环境、相机剧烈运动等导致的位姿偏差问题,提高位姿跟踪的鲁棒性。另一方面,相较于常规SLAM系统中的特征点匹配、PnP算法,本方案采用位姿估计模型的方式降低了算法复杂度,减少了耗时,有利于实现快速定位。再一方面,在第二图像序列的范围内对相对位姿进行优化,能够减小位姿累积误差的影响,提高位姿精度,进而改善定位与建图的准确性。

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

步骤S210中,获取针对目标场景所采集的多帧场景图像。

本示例性实施方式中,终端可以开启视频拍摄或连续拍照功能,在移动与转动的同时采集目标场景的图像,得到多帧场景图像。

继续参考图2,步骤S220中,通过位姿估计模型对第一图像序列进行处理,得到第一图像序列的图像相对位姿。

第一图像序列是由上述多帧场景图像中的至少部分场景图像所形成的序列,是对场景图像进行序列化处理以得到相对位姿的单位。可以将上述多帧场景图像全部排列为第一图像序列,也可以将其中一部分场景图像排列为第一图像序列。在排列场景图像时,一般按照采集时间的先后顺序排列,采集时间早的场景图像在前,采集时间晚的场景图像在后。需要说明的是,本公开对于第一图像序列的数量不做限定,例如可以从已采集的场景图像中提取多组图像,形成多个第一图像序列。

第一图像序列的图像相对位姿是指第一图像序列中不同场景图像间的相对位姿的集合,可以包括:第一图像序列中任意两帧场景图像间的相对位姿,每一帧场景图像相对于序列中特定一帧(如第一帧)场景图像的相对位姿,每相邻两帧场景图像间的位姿等。

位姿估计模型是预先训练的用于估计图像相对位姿的模型。参考图3所示,假设第一图像序列包括第1帧至第5帧共5帧场景图像,将第一图像序列输入位姿估计模型后,通过位姿估计模型提取场景图像间的序列化特征并进行处理,输出对应的图像相对位姿,为对应的5组相对位姿数据形成的序列,包括(RT)

在一种实施方式中,位姿估计模型可以是具有序列化结构的模型,例如RNN(Recurrent Neural Network,循环神经网络)、LSTM(Long Short-Term Memory,长短期记忆网络)、GRU(Gated Recurrent Unit,门控循环单元)等。

在一种实施方式中,可以确定第一预设数量m,例如根据经验、设备性能、应用场景对于位姿的实时性需求等,确定每运行一次位姿估计模型所能处理的图像数量,即为m,m为不小于2的正整数。将m作为第一图像序列的长度,即第一图像序列包括m张场景图像。位姿估计模型的输入层也可以具有m个通道,能够一次性输入包含m张场景图像的第一图像序列。

在一种实施方式中,可以在上述多帧场景图像中提取连续m帧场景图像,形成第一图像序列。连续m帧场景图像是终端连续拍摄的图像,序列特征更为鲜明,有利于位姿估计模型提取到高质量特征,以输出更为准确的图像相对位姿。

在一种实施方式中,可以在每采集一帧场景图像时,提取以当前帧场景图像为结尾的连续m帧场景图像,形成第一图像序列。当前帧场景图像是当前采集的最新一帧场景图像。参考图4举例说明,终端采集场景图像,按照第1帧、第2帧的顺序排列;当采集第m帧场景图像时,以第m帧为当前帧,提取第1帧到第m帧场景图像,形成第一图像序列P

图5示出了训练位姿估计模型的示例性流程,包括以下步骤S510至S540:

步骤S510,获取建立目标场景的地图数据时所采集的样本场景图像与样本场景图像的位姿。

其中,样本场景图像是在对目标场景的建图阶段所采集的场景图像,可用于作为训练位姿估计模型的样本图像。在建图时,需要确定图像位姿,可以采用SFM(Structure-From-Motion,运动化结构)或其他算法对图像进行三维重建处理,得到图像位姿;或者通过激光雷达辅助进行定位,得到图像位姿。

步骤S520,根据样本场景图像的位姿确定样本场景图像间的相对位姿,以作为相对位姿标签。

在建图时确定的图像位姿一般是绝对位姿,或者相对于某个基准位姿相对位姿,对两张样本场景图像位姿进行计算,可以得到其相对位姿,作为训练的标签。

步骤S530,将样本场景图像形成样本图像序列,输入至待训练的位姿估计模型,输出对应的相对位姿样本数据。

可以采用提取第一图像序列的方式,从样本场景图像中提取样本图像序列,例如提取连续m帧样本场景图像形成样本图像序列。

在一种实施方式中,可以对样本场景图像进行增强或“反向增强”处理,例如将样本场景图像的局部模糊化或锐化,增加亮度以模拟强光照、过曝光效果,降低亮度以模拟暗环境、欠曝光效果,或者将样本图像序列中的不同图像用不同的方式来处理,以模拟环境剧烈变化的效果等,由此提高样本场景图像的分布性,以模拟实际的场景图像中可能出现的各种缺陷或异常情况,有利于提高后续训练的位姿估计模型的泛化性。

待训练的位姿估计模型为初始构建的模型,其参数一般是初始化得到的。将样本图像序列输入至位姿估计模型中,输出对应的相对位姿样本数据。相对位姿样本数据与上述图像相对数据的格式相同,是由不同样本图像间的相对位姿数据形成的序列。

步骤S540,根据相对位姿样本数据与相对位姿标签的偏差,更新位姿估计模型的参数。

相对位姿样本数据与相对位姿标签之间存在偏差,由此可以计算位姿估计模型的损失函数,并通过损失函数对位姿估计模型中的参数进行更新。实际训练中,通过大量的样本图像序列与相对位姿标签,迭代训练位姿估计模型,直到其达到一定的准确率,表示训练完成,获得可用的位姿估计模型。

在位姿跟踪时,将上述第一图像序列输入至训练后的位姿估计模型中,输出对应的图像相对位姿。以LSTM为例,图6示出了LSTM中cell的结构。图6中示出了3个cell,其输入分别为X

继续参考图2,步骤S230中,利用场景图像中参考图像的位姿与第一图像序列的图像相对位姿,对第二图像序列的图像相对位姿进行优化。

参考图像是上述多帧场景图像中已确定位姿的任意一帧或多帧图像。参考图像的位姿是步骤S230中优化相对位姿的基础,本公开对于获取参考图像位姿的方式不做限定。举例来说,可以通过VPS(Visual Planar Semantic,视觉平面语义)将场景图像与目标场景的地图数据进行匹配,以确定该场景图像的位姿;或者建立终端与目标场景中固定设备的蓝牙、Wi-Fi连接,通过蓝牙信号、Wi-Fi信号来确定一帧或多帧位姿;或者在目标场景中设置锚点(如二维码),引导用户拍摄包含锚点的场景图像,确定该场景图像的位姿;当然也可以结合上述多种方式来实现初始定位。

第二图像序列是由多帧场景图像中的至少部分场景图像所形成的序列,是对场景图像间的相对位姿进行优化的单位。可以将上述多帧场景图像全部排列为第二图像序列,也可以将其中一部分场景图像排列为第二图像序列。需要说明的是,第二图像序列与第一图像序列可以相同,也可以不同,本公开对于第二图像序列的数量不做限定。

在一种实施方式中,可以确定第二预设数量n,例如根据经验、设备性能、应用场景对于位姿的实时性需求等,确定每进行一次相对位姿优化所能处理的图像数量,即为n,n为不小于2的正整数。将n作为第二图像序列的长度,即第二图像序列包括n张场景图像。

在一种实施方式中,可以在上述多帧场景图像中提取连续n帧场景图像,形成第二图像序列。连续n帧场景图像是终端连续拍摄的图像,其相互间的相对位姿的连续性较强,有利于实现更有效的优化。

在一种实施方式中,可以在每采集一帧场景图像时,提取以当前帧场景图像为结尾的连续n帧场景图像,形成第二图像序列。具体方式可以参考上述提取第一图像序列的内容。本公开对以下两种情况进行说明:

(一)m=n。当采集到第m帧场景图像时,生成第一图像序列和第二图像序列,两序列相同。通过位姿估计模型估计第一图像序列的图像相对位姿,再结合参考图像的位姿,对图像相对位姿进行优化。当采集到第m+1帧场景图像时,生成新的第一图像序列和第二图像序列,重复上述过程以优化相对位姿。

(二)m

实际应用中,可以生成长度为m的第一滑动窗口和长度为n的第二滑动窗口,在按采集时间的顺序排列的全部场景图像中,将第一滑动窗口和第二滑动窗口的末端移动至当前帧场景图像,以选取第一图像序列和第二图像序列,并随着图像采集不断移动第一滑动窗口和第二滑动窗口,以得到新的第一图像序列和第二图像序列。

在一种实施方式中,参考图像可以是第二图像序列中的第1帧场景图像,也可以是第二图像序列中的第1帧~第n-1帧场景图像。

参考图像的位姿是通过位姿估计模型以外的方式得到的,第一图像序列的图像相对位姿是通过位姿估计模型得到的,由此形成了两种不同的数据来源;特别的,当具有多帧参考图像时,相当于提供了多种数据来源;并且,当步骤S230中采用多个第一图像序列的图像相对位姿时,位姿估计模型具有泛化性,也相当于提供了多个数据来源。由此形成了多于两种的数据来源,通过不同的数据来源计算的位姿之间存在偏差,并且数据本身存在一定的噪声,也会导致偏差,基于偏差可以对第二图像序列的图像相对位姿进行优化。

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

步骤S810,利用参考图像的位姿与第一图像序列的图像相对位姿,计算第二图像序列中场景图像的位姿。

根据第一图像序列的图像相对位姿,可以得到参考图像与第二图像序列中场景图像间的相对位姿,进而在参考图像的位姿基础上进行仿射变换,得到第二图像序列中场景图像的位姿。

参考图7举例说明,假设得到第1帧场景图像的位姿,将其作为参考图像;当采集到第m帧场景图像时,得到第一图像序列P

在一种实施方式中,利用参考图像的位姿与第一图像序列的图像相对位姿可能无法计算出第二图像序列中每一帧场景图像的位姿,则计算出一部分场景图像的位姿,然后通过插值等方式得到另一部分场景图像的位姿。

步骤S820,基于第二图像序列中场景图像的位姿与第二图像序列的图像相对位姿,建立代价函数。

在一种实施方式中,代价函数如下所示:

ε(R

其中,ε表示代价函数。Q表示第二图像序列,i和j是Q中的任意两帧场景图像,R

此外,也可以通过其他数据之间的偏差建立代价函数。在一种实施方式中,步骤S820可以包括:

基于第二图像序列中场景图像的位姿,对目标场景的地图数据进行重投影,得到第二图像序列中每一帧场景图像对应的重投影图像;

如果重投影图像缺少背景,则对重投影图像进行背景渲染,例如可以采用相同的背景颜色或效果对全部重投影图像进行渲染,得到环境一致的重投影图像;

将重投影图像形成重投影图像序列,通过位姿估计模型处理,得到重投影图像序列的图像相对位姿;

基于第二图像序列的图像相对位姿与重投影图像序列的图像相对位姿,建立代价函数。

代价函数如下所示:

ε(RT

其中,Q表示第二图像序列,RT

步骤S830,通过优化代价函数的最小值,得到第二图像序列的图像相对位姿的最优值。

一般的,通过迭代调整第二图像序列中的相对位姿,使代价函数的值不断减小,直到满足收敛条件。

其中,收敛条件包括以下至少一条:

①代价函数在本轮迭代中的迭代差值为负且大于第一阈值。

迭代差值是指代价函数在相邻两轮迭代中的后一轮函数值减去前一轮函数值,如果当前为第k轮迭代,以ε

Δε

条件①可以表示为Δε

②代价函数在连续Z1轮迭代中的迭代差值均为正,属于连续收敛的判定。Z1为不小于2的正整数,可以根据经验或实际需求设定。当满足条件②时,说明代价函数已经达到局部最小值,因此可以收敛。

③代价函数在连续Z2轮迭代中的迭代差值均为负且大于第二阈值,也属于连续收敛的判定。Z2为不小于2的正整数,Z2与第二阈值T2均可以根据经验或实际需求设定。条件③表示连续N轮迭代中代价函数的优化程度较低,因此可以收敛。

在一种实施方式中,第二阈值可以小于第一阈值。

④达到预设迭代轮数。属于强制收敛条件,例如设置预设迭代轮数为100,则达到100轮迭代后,无论代价函数是否实际达到最小,均强制收敛,认为已实现了最优。

实际应用中,可以结合上述多个条件使用。当满足收敛条件时,确定达到了优化目标,此时得到的第二图像序列的图像相对位姿为最优值

继续参考图2,步骤S240中,根据优化后的第二图像序列的图像相对位姿,更新第二图像序列中场景图像的位姿。

一般的,可以在参考图像的位姿基础上,利用优化后的相对位姿计算场景图像的位姿,以更新步骤S230中计算的初始位姿。步骤S240中更新后的位姿可以作为最终输出的位姿,由此实现位姿跟踪。

需要说明的是,步骤S240也可以在上述优化代价函数的过程中执行,例如在优化代价函数(1)或(2)的过程中,每轮迭代中调整第二图像序列的图像相对位姿后,利用调整后的图像相对位姿更新一次第二图像序列中场景图像的位姿,再代入代价函数中计算代价函数值;如果未满足收敛条件,则继续迭代;如果满足收敛条件,则确定优化完成,最近一次更新的第二图像序列中场景图像的位姿,即最终输出的位姿。

步骤S230和S240实现了第二图像序列中的位姿优化。在一种实施方式中,还可以在更大的范围内进行位姿优化。参考图9所示,可以在步骤S240之后执行以下步骤S910和S920:

步骤S910,根据已确定的场景图像的位姿,对第三图像序列的图像相对位姿进行优化;

步骤S920,根据优化后的第三图像序列的图像相对位姿,更新第三图像序列中场景图像的位姿。

第三图像序列是由多帧场景图像中的至少部分场景图像所形成的序列,是比第二图像序列更大的位姿优化单元。第二图像序列是第三图像序列的子集,例如可以在全部场景图像的序列中,将第二图像序列向前扩展一定长度,得到第三图像序列;也可以将全部场景图像的序列作为第三图像序列,即第三图像序列为全局图像序列。由此可见,步骤S910和S920实质上是在更大范围内再执行步骤S230和S240,这样可以利用更大范围内的全局位姿关系实现更有效的优化,特别是第三图像序列为全局图像序列时,可以利用整个全局范围内的位姿关系实现优化。

由于第三图像序列中的场景图像数量一般较多,优化所需的时间较长。在一种实施方式中,可以设置两个线程:线程一用于执行步骤S230和S240,处理第二图像序列范围内的位姿优化解算,其过程耗时相对较短,可以得到实时或接近实时的解算结果,实现实时定位;线程二用于执行步骤S910和S920,处理第三图像序列范围内的位姿优化解算,其过程耗时相对较长,但可以纠正线程一的输出结果的误差,特别是当线程一的输出结果存在累积误差时,由线程二进行周期性的优化修正,能够进一步提高位姿精度。

在一种实施方式中,可以通过图像特征信息的检索来确定位姿,以对上述位姿优化中得到的位姿进行补充,或者从后端对位姿进行纠偏。具体地,可以执行以下步骤:

在目标场景的视觉词袋中对场景图像的特征信息进行检索,根据检索结果确定场景图像的位姿。

其中,目标场景的视觉词袋是记录了目标场景中不同对象的特征信息的词典。例如,对目标场景中的不同对象,如门、地板、墙壁、电梯、栏杆等不同对象分别提取特征点并进行描述,将特征点描述子作为对象的特征信息,建立特征信息的集合,即目标场景的视觉词袋。视觉词袋可以包括视觉语义词袋,对目标场景中的不同对象进行语义识别,得到对象的语义信息,以此形成对象的特征信息(其中也可以加入对象的特征点描述子),从而建立视觉语义词袋。

在获取场景图像时,可以对场景图像提取与视觉词袋维度相同的特征信息。例如,如果视觉词袋中的特征信息包括对象的特征点描述子,则对场景图像提取特征点并进行描述,将特征点描述子形成场景图像的特征信息;如果视觉词袋中的特征信息包括对象的语义信息,则对场景图像提取语义信息,参考图10所示,对两帧场景图像进行语义分割,得到对应的语义图像,其中不同区域对应不同的语义标签,由此可以形成场景图像的语义信息。

在提取场景图像的特征信息后,将其与视觉词袋中的特征信息进行比对检索。例如对场景图像进行语义分割后,对每个区域计算视觉词向量,得到场景图像中包含的多个视觉词向量,分别与词袋模型中不同对象的视觉词向量进行比对。根据检索结果,可以确定场景图像包括目标场景中的哪些对象,进而通过目标场景中这些对象的位置,确定场景图像的位姿。

在一种实施方式中,可以根据上述检索结果将场景图像与目标场景的地图数据进行匹配,以确定场景图像的位姿。例如根据检索结果确定场景图像的二维点与目标场景的地图数据中三维点的匹配关系,通过PnP等算法计算场景图像的位姿。

需要说明的是,上述通过图像特征信息的检索来确定位姿的过程,可以由专门的线程执行,例如在上述线程一和线程二之外,设置线程三,以通过提取场景图像的特征信息,在视觉词袋中进行检索来确定位姿。三个线程之间是并行关系。

上述通过图像特征信息的检索来确定位姿的方式,可以对图2中的位姿优化过程进行补充,同时实现回环检测,进一步提高全局的位姿精度。

在一种实施方式中,可以将上述根据检索结果确定位姿的场景图像确定为参考图像,利用参考图像的位姿执行步骤S230和S240中的位姿优化。由此提供了一种获得参考图像位姿的方式,且能够保证参考图像位姿准确性,进而保证位姿优化结果的准确性。

图11示出了本示例性实施方式的一种位姿跟踪的流程架构,采集场景图像后,通过位姿估计模型进行序列化位姿估计,得到第一图像序列的图像相对位姿;然后对第二图像序列进行位姿优化,以实现局部优化位姿;再对第三图像序列进行位姿优化,以实现全局优化位姿;同时,对场景图像进行语义分割后,得到语义图像,提取语义信息,在目标场景的视觉语义词袋中进行检索,从而实现回环检测,并确定位姿;结合全局优化得到的位姿和回环检测得到的位姿,输出位姿跟踪过程中的实时位姿。

本公开的示例性实施方式还提供一种位姿优化装置。参考图12所示,该位姿优化装置1200可以包括:

场景图像获取模块1210,用于获取针对目标场景所采集的多帧场景图像;

第一图像序列处理模块1220,用于通过位姿估计模型对第一图像序列进行处理,得到第一图像序列的图像相对位姿;

第二图像序列处理模块1230,用于利用场景图像中参考图像的位姿与第一图像序列的图像相对位姿,对第二图像序列的图像相对位姿进行优化;

位姿更新模块1240,用于根据优化后的第二图像序列的图像相对位姿,更新第二图像序列中场景图像的位姿。

在一种实施方式中,第一图像序列处理模块1220,被配置为:

在上述多帧场景图像中提取连续m帧场景图像,形成第一图像序列,m为不小于2的正整数。

在一种实施方式中,第一图像序列处理模块1220,被配置为:

每采集一帧场景图像时,提取以当前帧场景图像为结尾的连续m帧场景图像,以形成第一图像序列。

在一种实施方式中,第二图像序列处理模块1230,被配置为:

在上述多帧场景图像中提取连续n帧场景图像,形成第二图像序列,n为不小于2的正整数。

在一种实施方式中,第二图像序列处理模块1230,被配置为:

每采集一帧场景图像时,提取以当前帧场景图像为结尾的连续n帧场景图像,以形成第二图像序列。

在一种实施方式中,第一图像序列和第二图像序列相同。

在一种实施方式中,位姿优化装置1200还包括位姿估计模型获取模块,其被配置为:

获取建立目标场景的地图数据时所采集的样本场景图像与样本场景图像的位姿;

根据样本场景图像的位姿确定样本场景图像间的相对位姿,以作为相对位姿标签;

将样本场景图像形成样本图像序列,输入至待训练的位姿估计模型,输出对应的相对位姿样本数据;

根据相对位姿样本数据与相对位姿标签的偏差,更新位姿估计模型的参数。

在一种实施方式中,第二图像序列处理模块1230,被配置为:

利用参考图像的位姿与第一图像序列的图像相对位姿,计算第二图像序列中场景图像的位姿;

基于第二图像序列中场景图像的位姿与第二图像序列的图像相对位姿,建立代价函数;

通过优化代价函数的最小值,得到第二图像序列的图像相对位姿的最优值。

在一种实施方式中,位姿优化装置1200还包括第三图像序列处理模块,其被配置为:

根据已确定的场景图像的位姿,对第三图像序列的图像相对位姿进行优化,第三图像序列是由多帧场景图像中的至少部分场景图像所形成的序列,第二图像序列是第三图像序列的子集;

根据优化后的第三图像序列的图像相对位姿,更新第三图像序列中场景图像的位姿。

在一种实施方式中,第三图像序列包括全部场景图像。

在一种实施方式中,位姿优化装置1200还包括视觉词袋检索模块,其被配置为:

在目标场景的视觉词袋中对场景图像的特征信息进行检索,根据检索结果确定场景图像的位姿。

在一种实施方式中,视觉词袋检索模块,被配置为:

根据检索结果将场景图像与目标场景的地图数据进行匹配,以确定场景图像的位姿。

在一种实施方式中,视觉词袋检索模块,被配置为:

将根据检索结果确定位姿的场景图像确定为参考图像。

在一种实施方式中,上述视觉词袋包括视觉语义词袋;上述场景图像的特征信息包括场景图像的语义信息。

在一种实施方式中,位姿估计模型包括循环神经网络、长短期记忆网络或门控循环单元。

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

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

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

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

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

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

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

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

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

相关技术
  • 位姿优化方法、位姿优化装置、存储介质与电子设备
  • 位姿优化方法、装置、电子设备及存储介质
技术分类

06120112280564