用于VSLAM前端处理的优化方法、装置、电子设备及存储介质与流程

文档序号:19787956发布日期:2020-01-24 13:51阅读:191来源:国知局
用于VSLAM前端处理的优化方法、装置、电子设备及存储介质与流程

本发明涉及计算机应用技术领域,特别地涉及一种用于vslam前端处理的优化方法、装置、电子设备及存储介质。



背景技术:

基于视觉的同时定位和构图(即:视觉导航)(visualsimultaneouslocalizationandmapping,vslam)主要是利用摄像机对周围环境进行图像采集,并对图像进行滤波和计算,完成自身位置确定和路径识别,并做出导航决策的导航技术。随着当前嵌入式设备运算能力的大幅提升,部分vlsam算法已经在机器人、无人车等智能设备得到广泛运行。

vslam可分为前端(视觉里程计)、后端(非线性优化)、建图、回环检测四个部分。其中,前端主要进行图像处理,如特征点提取和匹配,在现有前端处理过程中主要存在的问题是:对采集的所有视频信息均需要进行处理,难以保证处理结果的实时性,需要较高性能的处理器处理能力和占用较大的内存空间,难以能保证前端的计算不会影响整个vslam的实时性和准确性;同时,当环境中有运动物体存在时,如运动的人、动物(猫,狗)、车辆或风吹动的窗帘等等,会导致特征点匹配方法存在误匹配的情况发生,导致vslam的运行结果不准确和存在较大的误差。



技术实现要素:

本发明提供一种用于vslam前端处理的优化方法、装置、电子设备及存储介质,以解决现有的vslam算法运行效果较差的问题。

为解决上述技术问题,本发明实施例提出如下技术方案:

本发明第一方面提供一种用于vslam前端处理的优化方法,包括:

对接收到的视频信息进行处理,得到多帧图像;

利用深度神经网络分别对每帧图像内的物体进行识别,得到识别结果,其中,识别结果中包括物体的种类信息和位置信息;

判断所述多帧图像中任意相邻两帧图像内的每个物体是否发生位姿变换;

对相邻两帧图像中发生位姿变换的物体对应的图像进行处理,以完成优化。

结合第一方面,在第一方面的第一种可能的实现方式中,上述执行所述判断所述多帧图像中任意相邻两帧图像内的每个物体是否发生位姿变换的步骤包括:

计算所述多帧图像中任意相邻两帧图像内的每个物体的位姿变换矩阵,其中,所述位姿变换矩阵包括对应物体的旋转矩阵和平移矩阵;

根据旋转矩阵和位移矩阵判断各个物体是否发生位姿变换。

结合第一方面,在第一方面的第二种可能的实现方式中,上述执行判断所述多帧图像中任意相邻两帧图像内的每个物体是否发生位姿变换的步骤包括:

提取所述多帧图像中任意相邻两帧图像内每个物体的特征点,并进行匹配;

利用匹配的特征点分别计算该相邻两帧图像内每个物体的位姿变换矩阵;

分别计算该相邻两帧图像内各个物体的位姿变换矩阵的旋转矩阵和平移矩阵,并根据旋转矩阵和平移矩阵判断每个物体是否发生位姿变换。

结合第一方面,在第一方面的第三种可能的实现方式中,上述位姿变换矩阵为:

f=k-ttxrk-1

其中,f是位姿变换矩阵,k是相机内参,tx是平移矩阵,r是旋转矩阵。

结合第一方面,在第一方面的第四种可能的实现方式中,上述方法包括:

对每个物体在任意相邻两帧图像内的位姿变换矩阵分别进行计算,得到上帧图像内的第一旋转矩阵和第一平移矩阵,以及得到下帧图像内的第二旋转矩阵和第二平移矩;

分别判断所述第一旋转矩阵和所述第二旋转矩阵,以及所述第一平移矩阵和所述第二平移矩阵是否一致,若一致,则确定该物体未发生位移,若不一致,则确定该物体发生位移。

结合第一方面,在第一方面的第五种可能的实现方式中,上述执行对相邻两帧图像中发生位姿变换的物体对应的图像进行处理,以完成优化的步骤包括:

在各帧图像中移除相邻两帧图像中发生位姿变换的物体对应的图像。

结合第一方面,在第一方面的第六种可能的实现方式中,上述执行对相邻两帧图像中发生位姿变换的物体对应的图像进行处理,以完成优化的步骤包括:

在各帧图像中,对相邻两帧图像中发生位姿变换的物体对应图像的特征点进行标记,以不再识别该物体。

本发明第二方面提供一种用于vslam前端处理的优化装置,包括:

接收模块,用于对接收到的视频信息进行处理,得到多帧图像;

识别模块,用于利用深度神经网络分别对每帧图像内的物体进行识别,得到识别结果,其中,识别结果中包括物体的种类信息和位置信息;

判断模块,用于判断所述多帧图像中任意相邻两帧图像内的每个物体是否发生位姿变换;

处理模块,用于对相邻两帧图像中发生位姿变换的物体对应的图像进行处理,以完成优化。

本发明第三方面提供一种电子设备,包括存储器和处理器,所述存储器上存储有计算机程序,该计算机程序被所述处理器执行时,执行上述的用于vslam前端处理的优化方法。

本发明第四方面提供一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时,执行上述的用于vslam前端处理的优化方法。

本发明提供的用于vslam前端处理的优化方法、装置、电子设备及存储介质,与现有技术相比,至少具备有以下有益效果:

该方法通过对接收到的视频信息进行处理,得到多帧图像;利用深度神经网络分别对每帧图像内的物体进行识别,判断所述多帧图像中任意相邻两帧图像内的每个物体是否发生位姿变换;对相邻两帧图像中发生位姿变换的物体对应的图像进行处理,以完成优化。由此,减少了发生位姿变换的物体的再次运算,只需要对未发生位姿变换的物体进行计算即可,从而有效的降低了对处理器的处理能力的要求和对存储器存储空间大要求,有效保证vslam运算结果的实时性和准确性。

附图说明

在下文中将基于实施例并参考附图来对本发明进行更详细的描述。

图1为本发明实施例提供的一种用于vslam前端处理的优化方法的流程示意图。

图2a和图2b分别为本发明实施例提供的前后两帧识别物体的示意图。

图3为图2a和图2b中图像处理结果的示意图。

图4为图1中步骤s130的流程示意图。

图5为图1中步骤s130的另一流程示意图。

在附图中,相同的部件使用相同的附图标记,附图并未按照实际的比例绘制。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达到相应技术效果的实现过程能充分理解并据以实施。本申请实施例以及实施例中的各个特征,在不相冲突前提下可以相互结合,所形成的技术方案均在本发明的保护范围之内。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

请参阅图1,本发明实施例提供了一种可应用于电子设备的用于vslam前端处理的优化方法,该电子设备可以是但不限于全景摄像头、扫地机器人等。该方法应用于电子设备时,执行步骤s110至步骤s140:

步骤s110:对接收到的视频信息进行处理,得到多帧图像。

在一些实施例中,通过全景摄像头采集视频信息,该视频信息中包括以图2a和图2b为例的内容,并将上述视频信息发送至电子设备。

电子设备对接收到的视频信息进行分割得到多帧图像,鉴于对视频信息的分割可以采用任意公知方法,在此不作赘述。

步骤s120:利用深度神经网络分别对每帧图像内的物体进行识别,得到识别结果,其中,识别结果中包括物体的种类信息和位置信息。

可以理解,通过步骤s120实现对多帧图像内所有物体进行识别。

在一些实施例中,该深度神经网络可以是yolov3算法,也可以是fast-yolo算法,只要能够准确识别每一帧图像中的所有物体,以及每个物体对应的种类信息和位置信息。

以相邻两帧图像分别对应图2a和图2b为例,上一帧图像内识别的人物a1对应于下一帧图像内识别的人物a2(即为人物a,下同);上一帧图像内识别的门b1对应于下一帧图像内识别的门b2;上一帧图像内识别的处于折叠状态的椅子c1对应于下一帧图像内识别的处于折叠状态的椅子c2(即为椅子c,下同);上一帧图像内识别的多个椅子d1对应于下一帧图像内识别的多个椅子d2;上一帧图像内识别的人物e1对应于下一帧图像内识别的人物e2;上一帧图像内识别的桌子f1对应于下一帧图像内识别的桌子f2;上一帧图像内识别的人物g1对应于下一帧图像内识别的人物g2;上一帧图像内识别的椅子h1对应于下一帧图像内识别的椅子h2。

步骤s130:判断所述多帧图像中任意相邻两帧图像内的每个物体是否发生位姿变换。

请参阅图4,在一些实施例中,执行所述判断所述多帧图像中任意相邻两帧图像内的每个物体是否发生位姿变换的步骤包括:

步骤s131a:计算所述多帧图像中任意相邻两帧图像内的每个物体的位姿变换矩阵,其中,所述位姿变换矩阵包括对应物体的旋转矩阵和平移矩阵。

可以理解,通过步骤s131a实现对多帧图像内所有物体进行识别。

步骤s132a:根据旋转矩阵和位移矩阵判断各个物体是否发生位姿变换。

其中,旋转矩阵对应了两帧图像内对应物体的旋转关系,平移矩阵对应了两帧图像内对应物体的平移关系。

对于图2a和图2b为例,对于人物a,计算图2a中人物a的在上一帧内的位姿变换矩阵a1,计算图2b中人物a的在下一帧内的位姿变换矩阵a2,由于该相邻两帧人物a的位姿变换矩阵计算得到的旋转矩阵和平移矩阵不同,确认人物a发生位姿变换(即为发生了运动)。

同样地,对于门b,计算图2a中门b的在上一帧内的位姿变换矩阵b1,计算图2b中门b的在下一帧内的位姿变换矩阵b2,由于该相邻两帧门b的位姿变换矩阵计算得到的旋转矩阵和平移矩阵相同,确认门b未发生位姿变换(即为未发生了运动)。

此外,椅子c、椅子d、人物e、人物g、桌子f和椅子h判断过程同上,在此不作赘述。

请参阅图5,更为具体地,在一些实施例中,执行所述判断所述多帧图像中任意相邻两帧图像内的每个物体是否发生位姿变换的步骤包括:

步骤s131b:提取所述多帧图像中任意相邻两帧图像内每个物体的特征点,并进行匹配。

步骤s132b:利用匹配的特征点分别计算该相邻两帧图像内每个物体的位姿变换矩阵。

步骤s133b:分别计算该相邻两帧图像内各个物体的位姿变换矩阵的旋转矩阵和平移矩阵,并根据旋转矩阵和平移矩阵判断每个物体是否发生位姿变换。

承上述,位姿变换矩阵为:

f=k-ttxrk-1

其中,f是位姿变换矩阵,k是相机内参,tx是平移矩阵,r是旋转矩阵。

承上述,以人物a为例,分别提取人物a在图2a和图2b中对应图像的特征点,并进行匹配;利用体征点分别计算人物a在图2a中的位姿变换矩阵a1和在图2b中的位姿变换矩阵a2,从位姿变换矩阵a1中计算得到人物a在图2a中的旋转矩阵r1和平移矩阵t1,从位姿变换矩阵a2中计算得到人物a在图2b中的旋转矩阵r2和平移矩阵t2,由于r1和r2的是否一致和/或t1和t2是否一致确认人物a是否发生位姿变换。在本实施例中,由于r1≠r2和t1≠t2,可知,人物a发生了位姿变换。

可知,人物a、人物e和人物g发生了位姿变换,处于移动状态。门b、椅子c、椅子d、桌子f和椅子h未发生位姿变换,处于静止状态。

可以理解,对于步骤s133b具体可为:

对每个物体在任意相邻两帧图像内的位姿变换矩阵分别进行计算,得到上帧图像内的第一旋转矩阵和第一平移矩阵,以及得到下帧图像内的第二旋转矩阵和第二平移矩;

分别判断所述第一旋转矩阵和所述第二旋转矩阵,以及所述第一平移矩阵和所述第二平移矩阵是否一致,若一致,则确定该物体未发生位移,若不一致,则确定该物体发生位移。

需要特殊说明的是,本实施例仅以相邻两帧图像为例,具有两帧以上图像时只要对所有帧图像均进行识别和位姿变换判断即可。

步骤s140:对相邻两帧图像中发生位姿变换的物体对应的图像进行处理,以完成优化。

在一些实施例中,对于执行所述对相邻两帧图像中发生位姿变换的物体对应的图像进行处理可选以下两种方式进行:

第一种方式:在各帧图像中移除相邻两帧图像中发生位姿变换的物体对应的图像。

请参阅图3,对应于图2a和图2b,将运动的人物a、人物e和人物g分别对应的图像从每帧图像中移除,由此,只需要将静止的门b、椅子c、椅子d、桌子f和椅子h进行下一步计算即可。

第二种方式:在各帧图像中,对相邻两帧图像中发生位姿变换的物体对应图像的特征点进行标记,以不再识别该物体。

可以理解,对应于图2a和图2b,将运动的人物a、人物e和人物g分别对应的图像的特征点进行标记,在对静止的门b、椅子c、椅子d、桌子f和椅子h进行构图时不再识别上述的人物a、人物e和人物g即可。

承上述,在vslam算法的接下来的后端、回环检测和建图等过程中,减少了发生位姿变换的物体的再次运算,只需要对未发生位姿变换的物体进行计算即可,从而有效的降低了对处理器的处理能力的要求和对存储器存储空间大要求,有效保证vslam运算结果的实时性和准确性。

在上述基础上,本发明还提供一种电子设备,所述电子设备包括存储器和处理器,所述存储器上存储有计算机程序,该计算机程序被处理器执行时,执行如上述的用于vslam前端处理的优化方法。

所述存储器与所述处理器相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。

其中,所述存储器可以是,但不限于,随机存取存储器(randomaccessmemory,ram),只读存储器(readonlymemory,rom),可编程只读存储器(programmableread-onlymemory,prom),可擦除只读存储器(erasableprogrammableread-onlymemory,eprom),电可擦除只读存储器(electricerasableprogrammableread-onlymemory,eeprom)等。

所述处理器可以是一种集成电路芯片,具有信号处理能力。所述处理器也可以是通用处理器,如中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)、微处理器等;还可以是数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件;处理器还可以是任何常规的处理器,可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。

所述电子设备可以是但不限于手机、电脑、电视或平板电脑,在此不做具体限定,根据实际需求进行设置即可。

由于所述电子设备能够执行上述的用于vslam前端处理的优化方法,因此,所述电子设备具有与上述基于图像识别的信息分享方法相同或相应的技术特征并能达到相同或相应的技术效果,在此不作一一赘述。

在上述基础上,本公开还提供一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时,执行上述的用于vslam前端处理的优化方法。

综上,本发明提供的一种用于vslam前端处理的优化方法、装置、电子设备及存储介质,该方法通过对接收到的视频信息进行处理,得到多帧图像;利用深度神经网络分别对每帧图像内的物体进行识别,判断所述多帧图像中任意相邻两帧图像内的每个物体是否发生位姿变换;对相邻两帧图像中发生位姿变换的物体对应的图像进行处理,以完成优化。由此,减少了发生位姿变换的物体的再次运算,只需要对未发生位姿变换的物体进行计算即可,从而有效的降低了对处理器的处理能力的要求和对存储器存储空间大要求,有效保证vslam运算结果的实时性和准确性。

在本发明实施例所提供的几个实施例中,应该理解到,所揭露的系统和方法,也可以通过其它的方式实现。以上所描述的系统和方法实施例仅仅是示意性的。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

虽然本发明所揭露的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

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