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

一种用于执行SLAM任务时的仿生眼双目视觉的主动定位方法

文献发布时间:2024-04-18 19:58:21


一种用于执行SLAM任务时的仿生眼双目视觉的主动定位方法

技术领域

本发明属于机器人视觉技术领域,具体涉及一种用于执行SLAM任务时的仿生眼双目视觉的主动定位方法。

背景技术

眼睛是人类与外部环境进行交互的最重要的器官之一,人类感知外部环境有90%以上的信息是通过眼睛获得的。对于仿生机器人而言,眼睛对于其正确执行复杂任务的重要性不言而喻。随着机器人视觉技术的不断发展,用户对仿生眼机器人的获取外部信息能力的要求也在逐渐提高,要求仿生眼能够主动获取全场景的视觉信息中的关键信息。但是,目前机器人搭载的视觉系统大多都只是将视觉传感器直接固定在机器人上,其视觉感知能力与人眼相比有着不可逾越的差距。例如,人眼能够实现快速精确的视线定位、平滑地追踪运动的目标以及通过前庭动眼反射机制在头部运动时保持视线的稳定等,但机器人仿生眼无法实现。

人眼的视觉被分为中央视觉和周边视觉两部分:在识别具体的事物时,中心视觉发挥了最大的作用;而在对整体场景进行感知时,周边视觉更加关键。搭载视觉传感器的机器人在未知环境中运行SLAM时,系统基本是被动地接收机器人运动过程中视觉传感器采集的图像数据,根据这些数据对机器人的位姿以及周围环境进行感知。当任务中视觉传感器采集的图像中出现纹理稀少、动态物体较多等情况时,SLAM系统会面临跟踪失败的问题。因此,基于人眼周边视觉和中心视觉感知机制的启发,可以构建一个具有周边视觉和中心视觉的仿生眼系统,使该系统拥有主动视觉能力。在执行SLAM任务时,仿生眼可以主动获取全场景的视觉信息中的关键信息,并控制运动将视线转移至关键信息(高价值)区域。

发明内容

针对现有技术中存在的问题和不足,本发明的目的在于提供一种用于执行SLAM任务时的仿生眼双目视觉的主动定位方法。

基于上述目的,本发明采用如下技术方案:

本发明第一方面提供了一种用于执行SLAM任务时的仿生眼双目视觉的主动定位方法,包括如下步骤:

S100,采用全景相机获取全景图像,然后检测全景图像中影响SLAM任务执行的关键场景信息;

S200,基于关键场景信息对全景图像中的像素点进行赋值,得到全景价值图像(在全景相机的像素平面上);

S300,将左右两个仿生眼相机的视场区域分别投影到全景价值图像中,得到左视场投影区域和右视场投影区域;同时控制左视场投影区域和右视场投影区域重叠;合并左视场投影区域和右视场投影区域,得到当前双目视场投影区域;

S400,在全景价值图像中得到当前双目视场投影区域的价值均值;

S500,判断当前双目视场投影区域的价值均值与价值阈值的大小:若当前双目视场投影区域的价值均值大于价值阈值,则不移动当前双目视场投影区域,并将左右两个仿生眼相机当前采集的高价值图像作为SLAM系统的输入;若当前双目视场投影区域的价值均值小于等于价值阈值,则在全景价值图像中搜索双目视场投影区域大小的价值均值比价值阈值更高的目标双目视场投影区域,然后进入步骤S600;

S600,根据当前双目视场投影区域和目标双目视场投影区域,分别计算左右两个仿生眼相机所需的位移量;根据位移量分别移动左右两个仿生眼相机,最后将左右两个仿生眼相机在所述目标双目视场投影区域中采集的高价值图像作为SLAM系统的输入。

优选地,所述全景相机可采集周围360°的场景信息。进一步地,采用所述全景相机的目的是为了模拟人眼的周边视觉。

优选地,步骤S100中,所述关键场景信息为影响SLAM任务执行时的运行精度和鲁棒性的场景信息;所述关键场景信息包括特征点和动态物体。

优选地,步骤S100中,所述特征点的提取方法为采用FAST关键点检测算法提取所述特征点;特征点提取时,由于不需要进行特征匹配,所以省略了SLAM算法提取的ORB特征点中的BRIEF描述子计算。进一步地,所述FAST是一种角点,主要检测局部像素灰度变化明显的地方,以速度快著称。它的思想是:如果一个像素与邻域的像素差别较大(过亮或过暗),那么它更可能是角点。FAST关键点检测算法的检测过程如下:

(1)在图像中选取像素p,假设它的亮度为I

(2)设置一个阈值T(I

(3)以像素p为中心,选取半径为3的圆上的16个像素点;

(4)假如选取的圆上有连续的N个点的亮度大于I

(5)循环以上4步,对每一个像素执行相同的操作。

优选地,步骤S100中,所述动态物体的检测方法为采用YOLO v7检测算法检测所述动态物体;所述动态物体用检测目标框表示。对于动态物体检测,使用YOLO v7检测算法检测全景图中的行人、动物等动态或对地图复用具有负面作用的潜在动态物体。

优选地,步骤S200中,所述基于关键场景信息对全景图像中的像素点进行赋值的步骤具体为:采用像素赋值的方式将全景图像中位于特征点的像素点和位于特征点邻域的像素点赋予高灰度值,将位于动态物体的检测目标框内的所有像素点赋予低灰度值;其中,所述位于特征点邻域的像素点被赋予的灰度值随着邻域半径的增大而降低;若同一像素点被多次赋值,则该像素点取其被赋予的最大值。

进一步地,由于特征点是SLAM算法重点关注对象,因此特征点及其邻域被赋予高灰度值;所述高灰度值的标准为高于240的灰度值。对于严重破坏SLAM算法性能的动态物体,将动态物体的检测目标框中的所有像素点赋予低灰度值,甚至低于没有检测出特征点的区域;所述低灰度值的标准为低于80的灰度值。

优选地,步骤S300中,将左右两个仿生眼相机的视场区域分别投影到全景价值图像中的步骤具体为:利用仿生眼相机的归一化平面投影方程和全景相机的归一化球面的投影方程,分别计算左右两个仿生眼相机的视场区域(像素平面)在全景相机的全景价值图像(像素平面)上的投影。

更加优选地,所述计算左右两个仿生眼相机的像素平面在全景相机的像素平面上的投影的步骤具体为:

S301,利用仿生眼相机的归一化平面投影方程,计算左仿生眼相机像素平面的4个位于顶点的像素点u

上式中,ρ

S302,以全景相机的光圈中心为坐标原点建立全景相机坐标系,利用下述公式将步骤S301得到的4个投影坐标变换至全景相机坐标系中,

上式中,T

S303,在全景相机坐标系中,将左仿生眼相机初始位姿坐标系的坐标原点(所述左仿生眼相机坐标系的坐标原点为左仿生眼相机的光圈中心)与P

上式中,P

所述全景相机的归一化球面方程如下所示,

x

联立上述投影直线方程和归一化球面方程,得到所述投影直线和所述全景相机的归一化球面的交点;由于每条直线与球面有两个交点,但是由于仿生眼相机受限于运动范围无法观测到全景相机坐标系x<0范围内的场景,因此只保留x>0的4个交点P

S304,利用全景相机的归一化球面到其像素平面的投影方程将交点P

u

S305,连接所述交点P

S306,所述右仿生眼相机按照上述步骤S301至S305即可得到所述右视场投影区域。

需要说明的是,所述左视场投影区域和右视场投影区域为不规则四边形,这是在全景相机的球面投影过程中发生的畸变问题。

更加优选地,步骤S300中,所述控制左视场投影区域和右视场投影区域重叠的步骤具体为:利用仿生眼运动控制模块会控制左右仿生眼相机的运动,尽量将左视场投影区域和右视场投影区域重叠,即控制左右两个仿生眼相机近似注视同一片场景区域。进一步地,左视场投影区域和右视场投影区域虽然不能完全重叠,但可以控制左视场投影区域和右视场投影区域尽可能多地重叠。

优选地,步骤S300中,所述合并左视场投影区域和右视场投影区域的具体步骤为:取左视场投影区域和右视场投影区域的并集,得到并集区域;然后生成所述并集区域的最大外接矩形,得到当前双目视场投影区域。

优选地,步骤S400中,所述在全景价值图像中得到当前双目视场投影区域的价值均值的具体步骤为:根据全景价值图像中像素点的赋值结果,计算当前双目视场投影区域内像素点的赋值的均值,得到当前双目视场投影区域的价值均值。

优选地,所述价值阈值V

优选地,步骤S500中,所述在全景价值图像中搜索比价值阈值更高的目标双目视场投影区域的具体步骤为:

S501,在全景价值图像中生成与当前双目视场投影区域大小相同和位置相同的矩形框;

S502,将当前的矩形框以步长s由近及远进行平移,计算每次平移后矩形框内的价值均值;

S503,比较平移后矩形框内的价值均值与价值阈值的大小:若平移后矩形框内的价值均值高于价值阈值,则将该平移后的矩形框记为目标双目视场投影区域;若平移后矩形框内的价值均值低于或等于价值阈值,则返回步骤S502,同时更新当前的矩形框为上一次平移后矩形框。

优选地,步骤S600中,所述位移量为角位移量,也即左右两个仿生眼相机的运动方式为纯旋转运动没有平移。进一步地,当所述位移量为角位移量和线位移量时,左右两个仿生眼相机的运动方式除了旋转还有平移。

优选地,步骤S600中,所述根据位移量分别移动左右两个仿生眼相机的步骤具体为:通过电机分别控制左右两个仿生眼相机的偏航角和俯仰角以移动左右两个仿生眼相机。进一步地,所述电机可通过仿生眼控制模块下达的旋转指令进行控制。

优选地,步骤S600中,所述计算左右两个仿生眼相机所需的位移量的步骤为:利用左或右仿生眼相机的归一化平面投影方程,计算得到左或右仿生眼相机在其初始位姿坐标系中的当前姿态;利用全景相机的归一化球面到全景相机像素平面的投影方程,计算得到左或右仿生眼相机的视场由全景价值图像中的当前双目视场投影区域移动至目标双目视场投影区域的目标姿态;最后根据左或右仿生眼相机的当前姿态和目标姿态,计算得到两个姿态间的旋转矩阵R

更加优选地,步骤S600中,所述计算左右两个仿生眼相机所需的位移量的具体步骤为:

S601,利用全景相机的归一化球面到其像素平面的投影方程ρ

上式中,P

S602,利用左仿生眼相机的归一化平面投影方程ρ

上式中,P

S603,利用得到的左仿生眼相机的当前姿态和目标姿态,计算两个姿态间的旋转矩阵R

首先,根据叉乘的定义,两个向量之间的旋转,计算旋转轴为,

由于旋转向量中旋转轴为单位向量,因此上式中对叉乘后的向量进行归一化;

然后根据下式计算旋转角度,

最后,根据旋转向量的旋转轴n

即可计算出将左仿生眼相机的视场由全景价值图像中当前双目视场投影区域移动至目标双目视场投影区域时需要做的角位移量;

S604,所述右仿生眼相机按照上述步骤S601至S603即可得到所述右仿生眼相机的视场由全景价值图像中当前双目视场投影区域移动至目标双目视场投影区域时需要做的角位移量。

需要说明的是,当全景相机继续拍摄下一张图像后,左右仿生眼相机会重复上述定位方法重新寻找下一个目标注视区域,以获得可以作为SLAM系统输入的高价值图像。

本发明第二方面提供了一种电子设备,包括存储器和处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的用于执行SLAM任务时的仿生眼双目视觉的主动定位方法中的任一步骤。

本发明第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面所述的用于执行SLAM任务时的仿生眼双目视觉的主动定位方法中的任一步骤。

与现有技术相比,本发明的有益效果如下:

(1)本发明为了解决机器人在未知环境中执行SLAM时因纹理稀少或动态物体较多而导致跟踪失败的问题,基于人眼周边视觉与中心视觉感知机制,采用全景相机模拟周边视觉,提出基于全景相机构建全景价值图像,引导双目仿生眼的主动视线控制,并提出了基于全景价值图的双目仿生眼视线控制策略,帮助获取未知全场景视觉信息中的高纹理关键信息。具体为:本发明首先利用了FAST角点检测算法提取全场景中的特征点,同时利用YOLOv7检测全场景中的动态物体;然后利用像素赋值的方式将全景图中的特征点及周边邻域的像素赋予较高的价值,价值随着邻域半径的增大逐渐降低,对动态物体检测目标框中的所有像素赋予低价值,从而获得全景价值图像;再利用仿生眼相机的归一化平面投影方程以及全景相机的球面投影到像素平面的投影方程计算仿生眼相机注视的区域在全景价值图中的投影;再利用系统定义的价值阈值V

(2)本发明利用全景相机拍摄的全景图像模拟人眼的周边视觉,通过对全景图像的自定义赋值得到高价值图像,然后另双目相机会始终注视高价值区域,提高了系统在场景中获取高价值信息的能力,特别是在执行SLAM任务时,避免了因为相机采集的图像出现纹理稀少、动态物体较多等情况下,SLAM系统面临跟踪丢失的问题,从而提高了SLAM系统的稳定性,使得视觉SLAM方法能够在未知环境下实现准确的定位与建图。本发明方法具有重要的实际应用价值,可以广泛应用于机器人导航、自动驾驶等领域,为相关行业的技术创新和进步提供了有力支持。

本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书来实现和获得。

附图说明

图1为本发明仿生眼双目视觉的主动定位方法设计流程图;

图2为本发明实施例1中的全景价值图像;图中,方框为检测出的动态物体,其内所有像素点被赋予低像素值;

图3为本发明全景价值图像引导左右仿生眼视线控制示意图;图中,绿色矩形框为左右仿生眼相机的当前双目视场投影区域,红色矩形框为左右仿生眼相机的目标双目视场投影区域;

图4为本发明实施例1中机器人在灌木丛场景中执行SLAM任务的实验结果图。

具体实施方式

为使本发明的目的、技术方案及优点更加清楚明白,以下通过实施例结合附图,对本发明作进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。

实施例1

本实施例提供一种用于执行SLAM任务时的仿生眼双目视觉的主动定位方法,包括如下步骤:

S100,采用可采集周围360°的场景信息的全景相机获取全景图像;然后检测全景图像中影响SLAM运行精度和鲁棒性的关键场景信息,如特征点和动态物体。

其中,特征点的提取方法为采用FAST关键点检测算法提取;特征点提取时,由于不需要进行特征匹配,所以省略了SLAM算法提取的ORB特征点中的BRIEF描述子计算。进一步地,所述FAST是一种角点,主要检测局部像素灰度变化明显的地方,以速度快著称。它的思想是:如果一个像素与邻域的像素差别较大(过亮或过暗),那么它更可能是角点。FAST关键点检测算法的检测过程如下:

(1)在图像中选取像素p,假设它的亮度为I

(2)设置一个阈值T(I

(3)以像素p为中心,选取半径为3的圆上的16个像素点;

(4)假如选取的圆上有连续的N个点的亮度大于I

(5)循环以上4步,对每一个像素执行相同的操作。

动态物体的检测方法为采用YOLO v7检测算法检测;所述动态物体用检测目标框表示。对于动态物体检测,使用YOLO v7检测算法检测全景图中的行人、动物等动态或对地图复用具有负面作用的潜在动态物体。

S200,基于关键场景信息对全景图像中的像素点进行赋值,得到全景价值图像,如图2所示。

其中,基于关键场景信息对全景图像中的像素点进行赋值的步骤具体为:采用像素赋值的方式将全景图像中位于特征点的像素点和位于特征点邻域的像素点赋予高灰度值,将位于动态物体的检测目标框内的所有像素点赋予低灰度值;其中,所述位于特征点邻域的像素点被赋予的灰度值随着邻域半径的增大而降低;若同一像素点被多次赋值,则该像素点取其被赋予的最大值。

进一步地,由于特征点是SLAM算法重点关注对象,因此特征点及其邻域被赋予高灰度值;所述高灰度值的标准为高于240的灰度值。对于严重破坏SLAM算法性能的动态物体,将动态物体的检测目标框中的所有像素点赋予低灰度值,甚至低于没有检测出特征点的区域;所述低灰度值的标准为低于80的灰度值。

S300,将左右两个仿生眼相机的视场区域分别投影到全景价值图像中,得到左视场投影区域和右视场投影区域;同时控制左视场投影区域和右视场投影区域重叠;合并左视场投影区域和右视场投影区域,得到当前双目视场投影区域,如图3中绿色矩形框所示。

其中,将左右两个仿生眼相机的视场区域分别投影到全景价值图像中的步骤具体为:利用仿生眼相机的归一化平面投影方程和全景相机的归一化球面的投影方程,分别计算左右两个仿生眼相机的视场区域(像素平面)在全景相机的全景价值图像(像素平面)上的投影。

进一步地,计算左右两个仿生眼相机的像素平面在全景相机的像素平面上的投影的步骤具体为:

S301,利用仿生眼相机的归一化平面投影方程,计算左仿生眼相机像素平面的4个位于顶点的像素点u

上式中,ρ

S302,以全景相机的光圈中心为坐标原点建立全景相机坐标系,利用下述公式将步骤S301得到的4个投影坐标变换至全景相机坐标系中,

上式中,T

S303,在全景相机坐标系中,将左仿生眼相机初始位姿坐标系的坐标原点(所述左仿生眼相机坐标系的坐标原点为左仿生眼相机的光圈中心)与P

上式中,P

所述全景相机的归一化球面方程如下所示,

x

联立上述投影直线方程和归一化球面方程,得到所述投影直线和所述全景相机的归一化球面的交点;由于每条直线与球面有两个交点,但是由于仿生眼相机受限于运动范围无法观测到全景相机坐标系x<0范围内的场景,因此只保留x>0的4个交点P

S304,利用全景相机的归一化球面到其像素平面的投影方程将交点P

u

S305,连接所述交点P

S306,所述右仿生眼相机按照上述步骤S301至S305即可得到所述右视场投影区域。

需要说明的是,所述左视场投影区域和右视场投影区域为不规则四边形,这是在全景相机的球面投影过程中发生的畸变问题。

所述控制左视场投影区域和右视场投影区域重叠的步骤具体为:利用仿生眼运动控制模块会控制左右仿生眼相机的运动,尽量将左视场投影区域和右视场投影区域重叠,即控制左右两个仿生眼相机近似注视同一片场景区域。进一步地,左视场投影区域和右视场投影区域虽然不能完全重叠,但可以控制左视场投影区域和右视场投影区域尽可能多地重叠。

进一步地,所述合并左视场投影区域和右视场投影区域的具体步骤为:取左视场投影区域和右视场投影区域的并集,得到并集区域;然后生成所述并集区域的最大外接矩形,得到当前双目视场投影区域。

S400,在全景价值图像中得到当前双目视场投影区域的价值均值,具体为:根据全景价值图像中像素点的赋值结果,计算当前双目视场投影区域内像素点的赋值的均值,得到当前双目视场投影区域的价值均值。

其中,所述价值阈值V

S500,判断当前双目视场投影区域的价值均值与价值阈值的大小:若当前双目视场投影区域的价值均值大于价值阈值,则不移动当前双目视场投影区域,并将左右两个仿生眼相机当前采集的高价值图像作为SLAM系统的输入;若当前双目视场投影区域的价值均值小于等于价值阈值,则在全景价值图像中搜索双目视场投影区域大小的价值均值比价值阈值更高的目标双目视场投影区域(如图3中红色矩形框所示),然后进入步骤S600。

所述在全景价值图像中搜索比价值阈值更高的目标双目视场投影区域的具体步骤为:

S501,在全景价值图像中生成与当前双目视场投影区域大小相同和位置相同的矩形框;

S502,将当前的矩形框以步长s由近及远进行平移,计算每次平移后矩形框内的价值均值;

S503,比较平移后矩形框内的价值均值与价值阈值的大小:若平移后矩形框内的价值均值高于价值阈值,则将该平移后的矩形框记为目标双目视场投影区域;若平移后矩形框内的价值均值低于或等于价值阈值,则返回步骤S502,同时更新当前的矩形框为上一次平移后矩形框。

S600,根据当前双目视场投影区域和目标双目视场投影区域,分别计算左右两个仿生眼相机所需的位移量;根据位移量分别移动左右两个仿生眼相机,然后将左右两个仿生眼相机当前采集的高价值图像作为SLAM系统的输入。

其中,所述位移量为角位移量,也即左右两个仿生眼相机的运动方式为纯旋转运动没有平移。

所述计算左右两个仿生眼相机所需的角位移量的步骤为:利用左或右仿生眼相机的归一化平面投影方程,计算得到左或右仿生眼相机在其初始位姿坐标系中的当前姿态;利用全景相机的归一化球面到全景相机像素平面的投影方程,计算得到左或右仿生眼相机的视场由全景价值图像中的当前双目视场投影区域移动至目标双目视场投影区域的目标姿态;最后根据左或右仿生眼相机的当前姿态和目标姿态,计算得到两个姿态间的旋转矩阵R

进一步地,所述计算左右两个仿生眼相机所需的位移量的具体步骤为:

S601,利用全景相机的归一化球面到其像素平面的投影方程ρ

上式中,P

S602,利用左仿生眼相机的归一化平面投影方程ρ

上式中,P

S603,利用得到的左仿生眼相机的当前姿态和目标姿态,计算两个姿态间的旋转矩阵R

首先,根据叉乘的定义,两个向量之间的旋转,计算旋转轴为,

由于旋转向量中旋转轴为单位向量,因此上式中对叉乘后的向量进行归一化;

然后根据下式计算旋转角度,

最后,根据旋转向量的旋转轴n

即可计算出将左仿生眼相机的视场由全景价值图像中当前双目视场投影区域移动至目标双目视场投影区域时需要做的角位移量;

S604,所述右仿生眼相机按照上述步骤S601至S603即可得到所述右仿生眼相机的视场由全景价值图像中当前双目视场投影区域移动至目标双目视场投影区域时需要做的角位移量。

所述根据位移量分别移动左右两个仿生眼相机的步骤具体为:通过电机分别控制左右两个仿生眼相机的偏航角和俯仰角以移动左右两个仿生眼相机。进一步地,所述电机可通过仿生眼控制模块下达的旋转指令进行控制。

需要说明的是,当全景相机继续拍摄下一张图像后,左右仿生眼相机会重复上述定位方法重新定位,以获得可以作为SLAM系统输入的高价值图像。

图4为机器人在使用本发明定位方法后在小灌木丛执行SLAM任务时所建的八叉树地图。由图4可以看出,移动机器人在环境复杂的灌木丛中运行一个完整回环的结果,机器人轨迹连续,未出现轨迹断点问题,提示SLAM的跟踪并未丢失,后在另外4个不同的小灌木丛重复实验仍能保证该结果;而未使用本发明定位方法的机器人在上述5个小灌木丛执行SLAM任务时,有2次会出现轨迹断点现象,因此本发明定位方法达到了提高SLAM跟踪稳定性的技术效果。

实施例2

一种电子设备,包括存储器和处理器,所述存储器存储由计算机程序,处理器执行计算机程序时实现如实施例1所述的用于执行SLAM任务时的仿生眼双目视觉的主动定位方法。

实施例3

一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现如实施例1所述的用于执行SLAM任务时的仿生眼双目视觉的主动定位方法。

综上所述,本发明有效克服了现有技术中的不足,且具高度产业利用价值。上述实施例的作用在于说明本发明的实质性内容,但并不以此限定本发明的保护范围。本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的实质和保护范围。

相关技术
  • 一种巡逻机器人执行追踪任务时的主动隐藏方法
  • 一种用于AUV执行多任务时的重心调节装置及方法
技术分类

06120116481238