一种相机位姿的估计方法、装置、存储介质及机器人与流程

文档序号:17118506发布日期:2019-03-15 23:34阅读:130来源:国知局
本发明涉及机器人领域,尤其涉及一种相机位姿的估计方法、装置、存储介质及机器人。
背景技术
::slam(simultaneouslocalizationandmapping)支持同时定位和构图,主要分为激光雷达和摄像头两大类。近年扫地机器人行业发展迅速,经随机式、规划式、导航式三代发展后,目前基于摄像头的slam算法--vslam机器视觉算法的导航式扫地机器人取得了较好的实用效果。vslam(visualsimultaneouslocalizationandmapping)分为前端(特征点提取和匹配)、后端(优化)、建图、回环检测四个阶段,其中前端进行特征点提取和匹配需要消耗较多资源,包括时间和内存资源等,所以需要较高性能的cpu和较大的内存空间才能保证前端的计算不会影响整个vslam的实时性和准确性。为了让vslam广泛应用到低性能嵌入式设备,需要能够在更低性能的cpu和较小的内存空间实现其前端算法的技术方案。技术实现要素:本发明的主要目的在于克服上述现有技术的缺陷,提供一种相机位姿的估计方法、装置、存储介质及机器人,以解决现有技术中vslam机器视觉算法需要较高性能的cpu和较大的内存空间才能保证前端的计算不会影响整个算法的实时性和准确性的问题。本发明一方面提供了一种相机位姿的估计方法,包括:识别当前图像中的预定固定物体,并标记识别出的所述预定固定物体的第一区域;在标记的所述第一区域中进行相邻帧图像的特征点匹配,以得到相邻帧图像的匹配特征点信息;根据匹配得到的相邻帧图像的匹配特征点信息进行相机位姿的估计。可选地,在标记的所述第一区域中进行相邻帧图像的特征点匹配,以得到相邻帧图像的匹配特征点信息,包括:获取所述第一区域的相邻两帧图像;对获取的所述两帧图像分别进行角点检测,以得到所述两帧图像的角点;将所述两帧图像的角点作为特征点,对所述两帧图像进行特征点匹配,以得到所述两帧图像的匹配特征点信息。可选地,在识别当前图像中的预定固定物体之前,还包括:检测当前图像中是否存在预定运动物体,所述预定的运动物体,包括:人和/或动物;若检测到当前图像中存在预定运动物体,则在当前图像中过滤掉检测到的所述预定运动物体的第二区域;和/或;对当前图像进行前景和背景分离,以分离出当前图像的前景区域,并从当前图像中过滤掉分离出的所述前景区域;识别当前图像中的预定固定物体,包括:识别过滤掉所述预定运动物体的区域和/或所述前景区域后的当前图像中的预定固定物体。可选地,检测当前图像中是否存在预定运动物体,包括:通过目标检测识别算法检测当前图像中是否存在所述预定运动物体,可选地,对当前图像进行前景和背景分离,包括:通过帧差法或背景减法对所述当前图像进行前景和背景的分离。本发明另一方面提供了一种相机位姿的估计装置,包括:识别单元,用于识别当前图像中的预定固定物体,并标记识别出的所述预定固定物体的第一区域;匹配单元,用于在所述识别单元标记的所述第一区域中进行相邻帧图像的特征点匹配,以得到相邻帧图像的匹配特征点信息;位姿估计单元,用于根据所述匹配单元匹配得到的相邻帧图像的匹配特征点信息进行相机位姿的估计。可选地,所述匹配单元,包括:获取子单元,用于获取所述第一区域的相邻两帧图像;检测子单元,用于对所述获取子单元获取的所述两帧图像分别进行角点检测,以得到所述两帧图像的角点;匹配子单元,用于将所述检测子单元检测得到的所述两帧图像的角点作为特征点,对所述两帧图像进行特征点匹配,以得到所述两帧图像的匹配特征点信息。可选地,还包括:检测单元,用于检测当前图像中是否存在预定运动物体,所述预定的运动物体,包括:人和/或动物;第一过滤单元,用于若所述检测单元检测到当前图像中存在预定运动物体,则在当前图像中过滤掉检测到的所述预定运动物体的第二区域;和/或;分离单元,用于对当前图像进行前景和背景分离,以分离出当前图像的前景区域;第二过滤单元,用于从当前图像中过滤掉分离出的所述前景区域;所述识别单元,进一步用于:识别过滤掉所述预定运动物体的区域和/或所述前景区域后的当前图像中的预定固定物体。可选地,所述检测单元,检测当前图像中是否存在预定运动物体,包括:通过目标检测识别算法检测当前图像中是否存在所述预定运动物体。可选地,所述分离单元,对当前图像进行前景和背景分离,包括:通过帧差法或背景减法对所述当前图像进行前景和背景的分离。本发明又一方面提供了一种存储介质,其上存储有计算机程序,所述程序被处理器执行时实现前述任一所述方法的步骤。本发明再一方面提供了一种机器人,包括处理器、存储器以及存储在存储器上可在处理器上运行的计算机程序,所述处理器执行所述程序时实现前述任一所述方法的步骤。本发明再一方面提供了一种机器人,包括前述任一所述的相机位姿的估计装置。根据本发明的技术方案,选定特定的固定物体作为路标进行识别和跟踪,只对跟踪到的固定物体的区域进行特征点提取和匹配,能够减小特征点的计算区域,从而减小运算复杂度和运算时间;选定特定的运动物体进行识别和跟踪,过滤掉运动物体相应的区域和/或使用图像前景/背景分离法,在邻近帧中找到相对运动的前景区域,并过滤掉前景区域,能够进一步减小特征点的计算区域,从而减小运算复杂度和运算时间;根据本发明的技术方案,在低性能cpu和较小内存的嵌入式设备中能保证vslam前端能提取足够数量的特征点进行特征点匹配,节省了嵌入式设备的成本,提升产品竞争力,并扩大了vslam的应用场景。附图说明此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:图1是本发明提供的相机位姿的估计方法的一实施例的方法示意图;图2是根据本发明实施例的在标记的所述第一区域中进行相邻图像的特征点匹配的步骤的一具体实施方式的流程示意图;图3是根据本发明实施例的标记识别出的预定固定物体的第一区域的示意图;图4是本发明提供的相机位姿的估计方法的另一实施例的方法示意图;图5是根据本发明实施例的标记检测到的预定运动物体的第二区域,并过滤掉该第二区域的示意图;图6是本发明提供的相机位姿的估计方法的又一实施例的方法示意图;图7是本发明提供的相机位姿的估计装置的一实施例的结构示意图;图8是根据本发明实施例的匹配单元的一具体实施方式的结构框图;图9是本发明提供的相机位姿的估计装置的另一实施例的结构示意图;图10是本发明提供的相机位姿的估计装置的又一实施例的结构示意图。具体实施方式为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明具体实施例及相应的附图对本发明技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。本发明提供一种相机位姿的估计方法。该方法可以用于基于机器视觉的同时定位构图(vslam)的前端处理中,也就是相机位姿的估计。图1是本发明提供的相机位姿的估计方法的一实施例的方法示意图。如图1所示,根据本发明的一个实施例,所述相机位姿的估计方法至少包括步骤s140、步骤s150和步骤s160。步骤s140,识别当前图像中的预定固定物体,并标记识别出的所述预定固定物体的第一区域。所述预定固定物体具体可以为预先设定的用于作为路标的位置固定的物体,例如可以为桌子、椅子、墙角等物体。具体地,可以通过ai物体识别算法对预定固定物体进行识别,例如基于ai深度学习目标检测识别算法。识别出预定固定物体之后,标记识别出的预定固定物体的第一区域。例如,参考图3所示,识别出预定固定物体椅子(chair)和桌子(table)后,并标记出识别出的预定固定物体的第一区域1。步骤s150,在标记的所述第一区域中进行相邻图像的特征点匹配,以得到相邻图像的匹配特征点信息。具体而言,对标记的所述第一区域的两帧相邻图像进行特征点匹配。图2是根据本发明实施例的在标记的所述第一区域中进行相邻图像的特征点匹配的步骤的一具体实施方式的流程示意图。如图2所示步骤s150具体可以包括步骤s151、步骤s152和步骤s153。步骤s151,获取所述第一区域的相邻两帧图像。步骤s152,对获取的所述两帧图像分别进行角点检测,以得到所述两帧图像的角点。步骤s153,将所述两帧图像的角点作为特征点,对所述两帧图像进行特征点匹配,以得到所述两帧图像的匹配特征点信息。具体地,基于检测得到的角点分别计算所述两帧图像的特征点描述子;根据计算得到的所述两帧图像的特征点描述子,生成特征向量,根据生成的特征向量对所述两帧图像进行特征点匹配,以得到所述两帧图像的匹配特征点信息。其中,对获取的所述两帧图像分别进行角点检测可以使用光流法或harris角点检测算法。步骤s160,根据匹配得到的相邻帧图像的匹配特征点信息进行相机位姿的估计。具体地,根据匹配得到的相邻两帧图像的匹配特征点信息,估计两帧之间相机的平移和旋转,例如可以使用p3p/pnp算法估计两帧之间相机的平移和旋转。更具体而言,根据两帧之间相机位置、角度的变化估计两帧之间相机的平移和旋转。根据本发明上述实施例,选定特定的固定物体作为路标,对路标进行识别和跟踪,vslam只对跟踪到的固定物体的区域进行特征点提取和匹配,能够减小特征点的计算区域,从而减小运算复杂度和运算时间。图4是本发明提供的相机位姿的估计方法的另一实施例的方法示意图。如图4所示,根据本发明的一个实施例,所述相机位姿的估计方法包括步骤s140、步骤s150和步骤s160,还进一步包括步骤s110和步骤s120。步骤s110,检测当前图像中是否存在预定运动物体。具体而言,可以在识别当前图像中的预定固定物体之前,检测当前图像中是否存在预定运动物体。所述预定的运动物体具体可以包括:人和/或动物,例如,猫、狗等。具体地,可以通过ai物体识别算法对预定运动物体进行检测识别,例如基于ai深度学习目标检测识别算法,例如r-cnn、fastr-cnn、fasterr-cnn、yolo等识别算法。步骤s120,若检测到当前图像中存在预定运动物体,则在当前图像中过滤掉检测到的所述预定运动物体的第二区域。具体地,若检测到当前图像中存在预定运动物体,可以标记检测到的预定运动物体的第二区域,并在当前图像中过滤掉该第二区域。例如,图5是根据本发明实施例的标记检测到的预定运动物体的第二区域,并过滤掉该第二区域的示意图。参考图5所示,检测识别到当前图像中有人之后,并标记出检测到的人的第二区域2。相应地,在步骤s140中,识别过滤掉所述预定运动物体的第二区域后的当前图像中的预定固定物体。根据本发明上述实施例,过滤掉预定运动物体相应的区域之后再识别过滤掉所述预定运动物体的第二区域后的当前图像中的预定固定物体,能够减小特征点的计算区域,从而减小运算复杂度和运算时间。图6是本发明提供的相机位姿的估计方法的又一实施例的方法示意图。如图6所示,基于上述任一实施例,所述相机位姿的估计方法还包括步骤s130。步骤s130,对当前图像进行前景和背景分离,以分离出当前图像的前景区域,并从当前图像中过滤掉分离出的所述前景区域。具体地,可以通过帧差法或背景减法对所述当前图像进行前景和背景的分离。例如,通过背景减法对所述当前图像进行前景和背景的分离时,通过相邻帧相减——阈值处理——去除噪声——膨胀连通——查找轮廓——外接矩形的步骤分离出当前图像额的前景区域,过滤掉分离出的前景区域。前景是指人或动物等在前面的物体;因为vslam需要获取的图片特征点是需要固定不动的物体,才能保证算法的准确性,所以把移动的前景物体过滤掉。相应地,在步骤s140中识别过滤掉所述预定运动物体的区域和/或所述前景区域后的当前图像中的预定固定物体。根据本发明上述实施例,使用图像前景/背景分离法,在邻近帧中找到相对运动的前景区域,vslam在对整副图像进行特征点提取和匹配过程中过滤掉前景区域,能够减小特征点的计算区域,从而减小运算复杂度和运算时间。图7是本发明提供的相机位姿的估计装置的一实施例的结构示意图。如图7所示,所述相机位姿的估计装置100包括:识别单元140、匹配单元150、位姿估计单元160。识别单元140用于识别当前图像中的预定固定物体,并标记识别出的所述预定固定物体的第一区域;匹配单元150用于在所述识别单元140标记的所述第一区域中进行相邻帧图像的特征点匹配,以得到相邻帧图像的匹配特征点信息;位姿估计单元160用于根据匹配得到的相邻帧图像的匹配特征点信息进行相机位姿的估计。识别单元140识别当前图像中的预定固定物体,并标记识别出的所述预定固定物体的第一区域。所述预定固定物体具体可以为预先设定的用于作为路标的位置固定的物体,例如可以为桌子、椅子、墙角等物体。具体地,识别单元140可以通过ai物体识别算法对预定固定物体进行识别,例如基于ai深度学习目标检测识别算法。识别单元140识别出预定固定物体之后,标记识别出的预定固定物体的第一区域。例如,参考图3所示,识别出预定固定物体椅子(chair)和桌子(table)后,并标记出识别出的预定固定物体的第一区域1。匹配单元150在所述识别单元140标记的所述第一区域中进行相邻帧图像的特征点匹配,以得到相邻帧图像的匹配特征点信息。图8是根据本发明实施例的匹配单元的一具体实施方式的结构框图。如图8所示,所述匹配单元150包括:获取子单元151、检测子单元152和匹配子单元153。获取子单元151用于获取所述第一区域的相邻两帧图像;检测子单元152用于对所述获取子单元151获取的所述两帧图像分别进行角点检测,以得到所述两帧图像的角点;匹配子单元153用于将所述检测子单元152检测得到的所述两帧图像的角点作为特征点,对所述两帧图像进行特征点匹配,以得到所述两帧图像的匹配特征点信息。具体地,获取子单元151获取所述第一区域的相邻两帧图像,检测子单元152对所述获取子单元151获取的所述两帧图像分别进行角点检测,以得到所述两帧图像的角点。匹配子单元153基于检测得到的角点分别计算所述两帧图像的特征点描述子;根据计算得到的所述两帧图像的特征点描述子,生成特征向量,根据生成的特征向量对所述两帧图像进行特征点匹配,以得到所述两帧图像的匹配特征点信息。其中,对获取的所述两帧图像分别进行角点检测可以使用光流法或harris角点检测算法。位姿估计单元160根据匹配得到的相邻帧图像的匹配特征点信息进行相机位姿的估计。具体地,位姿估计单元160根据匹配得到的相邻两帧图像的匹配特征点信息,估计两帧之间相机的平移和旋转,例如可以使用p3p/pnp算法估计两帧之间相机的平移和旋转。更具体而言,根据两帧之间相机位置、角度的变化估计两帧之间相机的平移和旋转。根据本发明上述实施例,选定特定的固定物体作为路标,对路标进行识别和跟踪,vslam只对跟踪到的固定物体的区域进行特征点提取和匹配,能够减小特征点的计算区域,从而减小运算复杂度和运算时间。图9是本发明提供的相机位姿的估计装置的另一实施例的结构示意图。如图9所示,基于上述实施例,所述相机位姿的估计装置100还包括检测单元110和第一过滤单元120。检测单元110用于检测当前图像中是否存在预定运动物体,所述预定的运动物体。第一过滤单元120用于若检测单元110检测到当前图像中存在预定运动物体,则在当前图像中过滤掉检测到的所述预定运动物体的第二区域。具体而言,检测单元110可以在识别当前图像中的预定固定物体之前,检测当前图像中是否存在预定运动物体。所述预定的运动物体具体可以包括:人和/或动物,例如,猫、狗等。具体地,可以通过ai物体识别算法对预定运动物体进行检测识别,例如基于ai深度学习目标检测识别算法,例如r-cnn、fastr-cnn、fasterr-cnn、yolo等识别算法。若检测单元110检测到当前图像中存在预定运动物体,第一过滤单元120可以标记检测到的预定运动物体的第二区域,并在当前图像中过滤掉该第二区域。例如,参考图4所示,检测识别到当前图像中有人之后,并标记出检测到的人的第二区域2。相应地,识别单元140识别过滤掉所述预定运动物体的第二区域后的当前图像中的预定固定物体。根据本发明上述实施例,过滤掉预定运动物体相应的区域之后再识别过滤掉所述预定运动物体的第二区域后的当前图像中的预定固定物体,能够减小特征点的计算区域,从而减小运算复杂度和运算时间。图10是本发明提供的相机位姿的估计装置的又一实施例的结构示意图。如图10所示,基于上述实施例,所述相机位姿的估计装置100还包括分离单元130和第二过滤单元131。分离单元130用于对当前图像进行前景和背景分离,以分离出当前图像的前景区域。第二过滤单元131从当前图像中过滤掉分离出的所述前景区域。具体地,分离单元130可以通过帧差法或背景减法对所述当前图像进行前景和背景的分离。例如,通过背景减法对所述当前图像进行前景和背景的分离时,通过相邻帧相减——阈值处理——去除噪声——膨胀连通——查找轮廓——外接矩形的步骤分离出当前图像额的前景区域,第二过滤单元131过滤掉分离出的前景区域。前景是指人或动物等在前面的物体;因为vslam需要获取的图片特征点是需要固定不动的物体,才能保证算法的准确性,所以把移动的前景物体过滤掉。相应地,识别单元140识别过滤掉所述预定运动物体的区域(在包括所述检测单元110和所述第一过滤单元120的情况下)和/或所述前景区域后的当前图像中的预定固定物体。根据本发明上述实施例,使用图像前景/背景分离法,在邻近帧中找到相对运动的前景区域,vslam在对整副图像进行特征点提取和匹配过程中过滤掉前景区域,能够减小特征点的计算区域,从而减小运算复杂度和运算时间。本发明还提供对应于所述相机位姿的估计方法的一种存储介质,其上存储有计算机程序,所述程序被处理器执行时实现前述任一所述方法的步骤。本发明还提供对应于所述相机位姿的估计方法的一种机器人,包括处理器、存储器以及存储在存储器上可在处理器上运行的计算机程序,所述处理器执行所述程序时实现前述任一所述方法的步骤。本发明还提供对应于所述相机位姿的估计装置的一种机器人,包括前述任一所述的相机位姿的估计装置。据此,本发明提供的方案,选定特定的固定物体作为路标进行识别和跟踪,只对跟踪到的固定物体的区域进行特征点提取和匹配,能够减小特征点的计算区域,从而减小运算复杂度和运算时间;选定特定的运动物体进行识别和跟踪,过滤掉运动物体相应的区域和/或使用图像前景/背景分离法,在邻近帧中找到相对运动的前景区域,并过滤掉前景区域,能够进一步减小特征点的计算区域,从而减小运算复杂度和运算时间;根据本发明的技术方案,在低性能cpu和较小内存的嵌入式设备中能保证vslam前端能提取足够数量的特征点进行特征点匹配,节省了嵌入式设备的成本,提升产品竞争力,并扩大了vslam的应用场景。本文中所描述的功能可在硬件、由处理器执行的软件、固件或其任何组合中实施。如果在由处理器执行的软件中实施,那么可将功能作为一或多个指令或代码存储于计算机可读媒体上或经由计算机可读媒体予以传输。其它实例及实施方案在本发明及所附权利要求书的范围及精神内。举例来说,归因于软件的性质,上文所描述的功能可使用由处理器、硬件、固件、硬连线或这些中的任何者的组合执行的软件实施。此外,各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为控制装置的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。以上所述仅为本发明的实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1