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

文档序号:36200552发布日期:2023-11-30 02:57阅读:47来源:国知局
一种用于执行

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


背景技术:

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

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


技术实现思路

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

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

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

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

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

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

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

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

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

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

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

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

13、(1)在图像中选取像素p,假设它的亮度为ip;

14、(2)设置一个阈值t(ip的20%);

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

16、(4)假如选取的圆上有连续的n个点的亮度大于ip+t或小于ip-t那像素p可以被认为是特征点(n通常取12,即fast-12);

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

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

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

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

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

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

23、s301,利用仿生眼相机的归一化平面投影方程,计算左仿生眼相机像素平面的4个位于顶点的像素点ul(0,0)、ul(m,0)、ul(m,n)和ul(0,n)在所述左仿生眼相机归一化平面上的投影坐标,所述计算公式如下所示,

24、

25、

26、上式中,ρcn(·)为仿生眼相机的归一化平面投影方程;m和n分别为仿生眼相机像素平面w和h方向的最大像素坐标;

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

28、

29、

30、上式中,tl0p为全景相机相对于左仿生眼相机初始位姿坐标系(以左仿生眼相机的光圈中心为坐标原点建立左仿生眼相机初始位姿坐标系)的位姿,该变换矩阵通过标定获得;tl0l为左仿生眼相机当前位姿相对其初始位姿坐标系的位姿,该变换矩阵通过仿生眼相机控制反馈模块获得;

31、s303,在全景相机坐标系中,将左仿生眼相机初始位姿坐标系的坐标原点(所述左仿生眼相机坐标系的坐标原点为左仿生眼相机的光圈中心)与pp(0,0)、pp(m,0)、pp(m,n)和pp(0,n)分别连接,得到4条表示左仿生眼相机视场4个顶点的投影直线lp1、lp2、lp3和lp4;所述4条投影直线方程表达式为,

32、

33、上式中,p1表示p(0,0);p2表示p(m,0);p3表示p(m,n);p4表示p(0,n);pl0表示左仿生眼相机初始位姿坐标系的坐标原点;a、b、c为常数参数,均表示直线方向向量的方向数;

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

35、x2+y2+z2=1

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

37、s304,利用全景相机的归一化球面到其像素平面的投影方程将交点pp1、pp2、pp3和pp4投影至全景相机的像素平面上,得到交点pp1、pp2、pp3和pp4的投影点;所述全景相机的归一化球面到其像素平面的投影方程ρb→i(·)如下所示,

38、upii=ρb→i(ppi),(i=1,2,3,4)

39、s305,连接所述交点pp1、pp2、pp3和pp4的投影点,得到所述左视场投影区域(即为所述左仿生眼相机像素平面在所述全景相机的像素平面的投影,也即在所述全景价值图像上的投影)。

40、s306,所述右仿生眼相机按照上述步骤s301至s305即可得到所述右视场投影区域。

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

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

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

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

45、优选地,所述价值阈值vth基于slam算法运行过程中成功跟踪的特征点数量进行选定,目的是为了使运动控制模块准确地做出运动决策。若当前双目视场投影区域的价值均值vmc>vth,意味着当前双目视场投影区域场景的价值能够满足slam算法良好运行的需求,即使将双目视场投影区域移动至价值均值vmc更高的区域提升也有限,反而可能因为运动导致的抖动影响slam的性能,此时选择不进行视线转移运动;若当前双目视场投影区域的价值均值vmc≤vth,意味着此时双目视场投影区域场景中的价值不足以支持slam算法的稳定运行,可能是场景中可提取的特征点数量不足或者是场景中包含动态物体,此时选择将视线转移至当前场景中价值均值高于价值阈值vth且与当前双目视场投影区域距离最近的目标双目视场投影区域。

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

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

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

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

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

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

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

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

54、s601,利用全景相机的归一化球面到其像素平面的投影方程ρb→i(·)将全景价值图像中目标双目视场投影区域的中心像素坐标upt反投影至全景相机的归一化球面上,得到球面目标点;然后将球面目标点转换至所述左仿生眼相机初始位姿坐标系中,得到左仿生眼相机的目标姿态pl0t,具体计算公式如下,

55、

56、上式中,pl0t表示将左仿生眼相机的视场由全景价值图像中的当前双目视场投影区域移动至目标双目视场投影区域,左仿生眼相机需要运动的目标姿态;upt为全景价值图中目标双目视场投影区域的中心像素坐标;

57、s602,利用左仿生眼相机的归一化平面投影方程ρcn(·),将左仿生眼相机像素平面的中心点ulc=[m/2,n/2]t反投影至左仿生眼相机的归一化平面,得到左仿生眼相机的当前姿态pl0c,具体计算公式如下,

58、

59、上式中,pl0c表示左仿生眼相机在初始位姿坐标系中的当前姿态;ulc为左仿生眼相机像素平面的中心点;

60、s603,利用得到的左仿生眼相机的当前姿态和目标姿态,计算两个姿态间的旋转矩阵rct,具体为:

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

62、

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

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

65、

66、最后,根据旋转向量的旋转轴nct和旋转角度θct,利用罗德里格斯公式得到旋转矩阵rct,

67、

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

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

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

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

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

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

74、(1)本发明为了解决机器人在未知环境中执行slam时因纹理稀少或动态物体较多而导致跟踪失败的问题,基于人眼周边视觉与中心视觉感知机制,采用全景相机模拟周边视觉,提出基于全景相机构建全景价值图像,引导双目仿生眼的主动视线控制,并提出了基于全景价值图的双目仿生眼视线控制策略,帮助获取未知全场景视觉信息中的高纹理关键信息。具体为:本发明首先利用了fast角点检测算法提取全场景中的特征点,同时利用yolov7检测全场景中的动态物体;然后利用像素赋值的方式将全景图中的特征点及周边邻域的像素赋予较高的价值,价值随着邻域半径的增大逐渐降低,对动态物体检测目标框中的所有像素赋予低价值,从而获得全景价值图像;再利用仿生眼相机的归一化平面投影方程以及全景相机的球面投影到像素平面的投影方程计算仿生眼相机注视的区域在全景价值图中的投影;再利用系统定义的价值阈值vth对当前所注视区域场景的价值进行评估;最后利用罗德里格斯公式计算仿生眼由当前姿态运动到目标姿态所需的旋转运动。在其中一项实施例中,本发明定位方法能使机器人轨迹连续,并未出现跟踪失败的现象,有效提高了slam系统的稳定性。

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

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

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