运动状态确定方法、装置、设备及存储介质与流程

文档序号:31355064发布日期:2022-08-31 13:29阅读:141来源:国知局
运动状态确定方法、装置、设备及存储介质与流程

1.本公开涉及但不限于计算机视觉技术领域,尤其涉及一种运动状态确定方法、装置、设备及存储介质。


背景技术:

2.异常运动检测是计算机视觉以及机器人运动领域的重要问题。异常检测技术在很多领域有重要应用,比如机器人定位、地图构建(以下称为建图)以及路径规划。
3.相关技术中,基于视觉的异常检测往往需要建立在充分建图的前提下,而在初始无场景结构或者建图失败的情况下,无法分辨出异常运动。这种情况下往往需要通过添加额外的传感器来实现,例如,碰撞检测器、惯性测量单元、飞行时间相机等;如此,会增加设备的体积和系统复杂度。此外,基于场景结构信息的异常运动检测,还容易产生错误的异常检测结果。也就是说,相关技术中的异常运动检测方法,不够灵活,且检测结果不够准确。


技术实现要素:

4.有鉴于此,本公开实施例至少提供一种运动状态确定方法、装置、设备及存储介质。
5.本公开实施例的技术方案是这样实现的:
6.一方面,本公开实施例提供一种运动状态确定方法,所述方法包括:
7.获取设备的预设方位的区域的当前图像;
8.根据获取的上一帧图像的第一关键像素点,从所述当前图像中确定与所述第一关键像素点匹配的第二关键像素点;
9.基于所述第一关键像素点和所述第二关键像素点,确定所述设备的第一当前运动特征;
10.获取所述设备的驱动部件的速度,并基于所述速度,确定所述设备的第二当前运动特征;
11.基于所述第一当前运动特征与所述第二当前运动特征,确定所述设备的当前运动状态。
12.另一方面,本公开实施例提供一种运动状态确定装置,所述装置包括:
13.获取模块,用于获取设备的预设方位的区域的当前图像;
14.确定模块,用于根据获取的上一帧图像的第一关键像素点,从所述当前图像中确定与所述第一关键像素点匹配的第二关键像素点;基于所述第一关键像素点和所述第二关键像素点,确定所述设备的第一当前运动特征;
15.所述获取模块,还用于获取所述设备的驱动部件的速度;
16.所述确定模块,还用于基于所述速度,确定所述设备的第二当前运动特征;基于所述第一当前运动特征与所述第二当前运动特征,确定所述设备的当前运动状态。
17.再一方面,本公开实施例提供一种计算机设备,包括存储器和处理器,所述存储器
存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法中的部分或全部步骤。
18.又一方面,本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法中的部分或全部步骤。
19.又一方面,本公开实施例提供一种计算机程序,包括计算机可读代码,当所述计算机可读代码在计算机设备中运行时,所述计算机设备中的处理器执行用于实现上述方法中的部分或全部步骤。
20.又一方面,本公开实施例提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序被计算机读取并执行时,实现上述方法中的部分或全部步骤。
21.本公开实施例中,通过获取设备自身的预设方位的区域的当前图像,根据获取的当前图像的上一帧图像的第一关键像素点,从当前图像中确定与第一关键像素点匹配的第二关键像素点,根据得到的相互匹配的第一关键像素点和第二关键像素点,得到设备的第一当前运动特征;这样,可以在不构建该区域的地图信息的情况下,获知设备的第一当前运动特征,进而获知第一当前运动特征所表征的第一当前运动状态;通过获取设备的驱动部件的速度,根据速度确定设备的第二当前运动特征;这样,可以获知设备的第二当前运动特征,进而获知第二当前运动特征所表征的第二当前运动状态;以及,通过根据第一当前运动特征与第二当前运动特征,确定设备的当前运动状态,这样,可以根据设备的第一当前运动状态和第二当前运动状态,最终确定出设备当前的正确运动状态,从而可以在没有构建该区域的地图信息、且不增加设备的体积和系统复杂度的情况下,实现对设备的实时运动状态的准确判定;最终,提高了判断设备的运动状态时的灵活性和准确性。
22.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开的技术方案。
附图说明
23.此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。
24.图1为本公开实施例提供的一种运动状态确定方法的实现流程示意图;
25.图2为本公开实施例提供的一种运动状态确定方法的实现流程示意图;
26.图3为本公开实施例提供的一种运动状态确定方法的实现流程示意图;
27.图4为本公开实施例提供的一种运动状态确定方法的实现流程示意图;
28.图5为本公开实施例提供的一种运动状态确定方法的实现流程示意图;
29.图6a为本公开实施例提供的示例性的一个确定第二相对位移的原理示意图;
30.图6b为本公开实施例提供的示例性的另一个确定第二相对位移的原理示意图;
31.图7为本公开实施例提供的一种运动状态确定方法的实现流程示意图;
32.图8为本公开实施例提供的一种运动状态确定方法的实现流程示意图;
33.图9为本公开实施例提供的一种运动状态确定方法的实现流程示意图;
34.图10为本公开实施例提供的一种运动状态确定方法的实现流程示意图;
35.图11为本公开实施例提供的一种运动状态确定方法的实现流程示意图;
36.图12为本公开实施例提供的示例性的根据2d-2d有效匹配点确定目标位姿的实现流程示意图;
37.图13为本公开实施例提供的一种运动状态确定装置的组成结构示意图;
38.图14为本公开实施例提供的一种计算机设备的硬件实体示意图。
具体实施方式
39.为了使本公开的目的、技术方案和优点更加清楚,下面结合附图和实施例对本公开的技术方案进一步详细阐述,所描述的实施例不应视为对本公开的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本公开保护的范围。
40.在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
41.所涉及的术语“第一/第二/第三”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一/第二/第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本公开实施例能够以除了在这里图示或描述的以外的顺序实施。
42.除非另有定义,本文所使用的所有的技术和科学术语与属于本公开的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本公开的目的,不是旨在限制本公开。
43.在对本公开实施例进行进一步详细说明之前,先对本公开实施例中涉及的名词和术语进行说明,本公开实施例中涉及的名词和术语适用于如下的解释。
44.1)二维,英文全称为two-dimension,简称2d或2d,在平面上的图形或者图像通常就是二维。
45.2)本质矩阵,是一个包含了对极几何关系的3*3大小的矩阵,反映了空间一点p的像点,在不同视角摄像机下摄像机坐标系中的表示之间的关系。
46.为了更好地理解本公开实施例提供的运动状态确定方法,下面先对相关技术中采用的异常运动检测方法进行说明。
47.相关技术中,基于场景结构信息的异常检测,需要先构建场景结构信息(即场景地图信息),之后,依据构建的场景地图信息进行异常运动的检测。此种异常检测方法,一方面,不够灵活;另一方面,导致了在复杂情形下微小的错误可能会被放大的问题;例如,在没有构建场景地图信息、且正在构建场景地图信息的过程中出现了异常运动的情况下,则无法及时发现此异常运动,从而造成构建出的地图信息本身存在错误,后续根据有错误的地图信息进行异常运动检测时,很容易造成误检测或漏检测的情况。
48.本公开实施例提供一种运动状态确定方法,该方法可以由计算机设备的处理器执行。其中,计算机设备可以是可移动机器人,也可以是笔记本电脑、平板电脑、台式计算机和服务器等具备数据处理能力的设备;以及,还可以实施为服务器,其中,服务器可以是与可移动机器人连接的服务器,也可以是是独立的物理服务器、多个物理服务器构成的服务器集群或分布式系统等。以下将以计算机设备为可移动机器人为例,对本公开实施例的技术方案进行说明。
49.图1为本公开实施例提供的一种运动状态确定方法的实现流程示意图,如图2所示,该方法包括s101~s105。
50.s101、获取设备的预设方位的区域的当前图像。
51.本公开实施例中,可移动机器人可以通过自身的图像采集设备,实时采集自身的预设方位的区域的图像,或者,可移动机器人也可以从与自身连接的其他设备处,实时获取自身的预设方位的区域的图像。
52.在一些实施例中,可移动机器人可以通过部署在自身的第一预设区域的第一图像采集装置,获取自身的上方区域的第一当前图像。第一预设区域可以是可移动机器人的任何区域,只要能通过部署在第一预设区域的第一图像采集设备采集到自身的上方区域的图像即可,本公开实施例对第一预设区域不作具体限定。示例性的,第一预设区域可以是可移动机器人的顶部区域,从而,可移动机器人可以通过部署在自身的顶部区域的第一图像采集设备,采集到自身的上方区域的图像。例如,在可移动机器人为扫地机器人的情况下,通过安装在扫地机器人顶部的相机,可以采集到扫地机器人上方的天花板区域的图像。这里,由于可移动机器人自身的上方区域受动态环境影响较小、且遮挡物较少,所以采用可移动机器人自身的上方区域的图像进行第一当前运动特征的确定,可以提高得到的第一当前运动特征的准确性。
53.在一些实施例中,可移动机器人可以通过部署在自身的第二预设区域的第二图像采集装置,获取沿自身的运动方向位于自身前方的区域的第二当前图像。同样的,第二预设区域可以是可移动机器人的任何区域,只要能通过部署在第二预设区域的第二图像采集设备,采集到沿可移动机器人的运动方向位于可移动机器人前方的区域的图像即可,本公开实施例对第二预设区域不作具体限定。示例性的,第二预设区域可以是可移动机器人的前侧区域,从而,计算机设备可以通过部署在可移动机器人的前侧区域的图像采集设备,采集到沿可移动机器人的运动方向,位于可移动机器人前方的区域的图像。例如,在可移动机器人为送餐机器人的情况下,通过安装在送餐机器人的身体前侧区域的相机,可以采集到沿送餐机器人的运动方向,位于送餐机器人前方的区域的图像。
54.s102、根据获取的上一帧图像的第一关键像素点,从当前图像中确定与第一关键像素点匹配的第二关键像素点。
55.本公开实施例中,可移动机器人在实时采集自身预设方位的区域的图像的过程中,每采集到一帧图像,可以根据获取的这一帧图像的上一帧图像的第一关键像素点,从这一帧图像中确定与第一关键像素点匹配的第二关键像素点。
56.在一些实施例中,可移动机器人还可以获取视频流,通过从视频流中抽取一个视频帧作为当前图像,并在得到当前图像的情况下,继续从视频流中抽取该当前图像的前一帧图像或前第n帧图像,得到当前图像帧的上一帧图像,之后,根据获取的当前图像的上一帧图像的第一关键像素点,从当前图像中确定与第一关键像素点匹配的第二关键像素点。
57.这里,在当前图像为采集的第一帧图像的情况下,可移动机器人可以通过关键点提取算法,对该图像进行关键点提取处理,从而提取出该图像的第一关键像素点。
58.在一些实施例中,可移动机器人可以采用特征快速检测(features from accelerated segments test,fast)算法提取该图像中的特征点(第一关键像素点),从而能够快速得到该图像中的第一关键像素点。可移动机器人通过fast算法,可以在该图像中
任选一点p,得到其像素(亮度)值ip,并以p点为中心,以3为半径画圆,得到圆上的16个像素;定义一个阈值,计算这16个像素点中p1、p9与中心p的像素差,若它们的绝对值都小于阈值,则p点不可能是特征点,直接丢弃;否则,将p点当做候选点,进行下一步判断;若p是候选点,则计算这16个像素点中p1、p5、p9、p13与中心p的像素差,若它们的绝对值有至少3个超过阈值,则当做候选点,进行下一步判断;否则,直接丢弃;若p是候选点,则计算p1到p16这16个点与中心p的像素差,若它们有至少9个超过阈值,则是特征点;否则,直接丢弃;之后,判断以特征点p为中心的一个邻域(如3x3或5x5)内是否有多个特征点,如果有多个特征点,则分别计算各个特征点的fast得分值(即计算s值,且s值是这16个点与中心p的差值的绝对值总和),如果p是邻域所有特征点中s值最大的,则保留这个特征点,否则丢弃掉;如果邻域内只有一个特征点,则将这个特征点进行保留,不参与别的计算;如此,可得到该图像的第一关键像素点。
59.在一些实施例中,可移动机器人还可以采用快速定向和旋转指示(oriented fast and rotated brief,orb)算法,提取该图像中的特征点,从而准确得到该图像中的第一关键像素点,以及每个第一关键像素点的描述符。可移动机器人采用orb算法时,可以先通过fast算法得到该图像中的第一关键像素点,之后,计算出每个第一关键像素点对应的旋转值,再根据旋转值计算出每个第一关键像素点的256维的brief描述符。
60.这里,可移动机器人根据获取的上一帧图像的第一关键像素点,从当前图像中确定与第一关键像素点匹配的第二关键像素点之后,可以得到多组相互匹配的像素点对,且每组相互匹配的像素点对中包括一个第一关键像素点和一个第二关键像素点。
61.在一些实施例中,可移动机器人还可以通过自身的目标识别模块,识别出上一帧图像中的所有物体,并将所有物体所在的区域对应的像素点,作为第一关键像素点。
62.本公开实施例中,可移动机器人在从上一帧图像中得到第一关键像素点的情况下,可以采用特征跟踪算法,从当前图像中确定出与第一关键像素点匹配的第二关键像素点。
63.在一些实施例中,可移动机器人可以采用光流法,从当前图像中确定出与第一关键像素点匹配的第二关键像素点。光流法是利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性,来找到上一帧跟当前帧之间存在的对应关系,从而计算出相邻帧之间物体的运动信息的一种方法。通过光流法,可移动机器人可以将第一关键像素点作为待跟踪的特征点,寻找第一关键像素点在当前图像中对应的像素点,如此,得到当前图像的第二关键像素点。
64.在一些实施例中,可移动机器人可以采用k近邻匹配算法,从第二图像中确定出与第一关键像素点匹配的第二关键像素点。通过k近邻匹配,可移动机器人可以从第二图像中,选择k个(通常k=2)和每个第一关键像素点最相似的点,计算这两个最相似的点中该第一关键像素点的描述符与最相似的相似点的描述符之间的欧式距离,以及计算该第一关键像素点的描述符与另一个相似点的描述符之间的欧式距离,在两个欧式距离之间的比值大于阈值的情况下,选择最相似的那个点作为该第一关键像素点的匹配点;如此,得到当前图像的第二关键像素点。
65.s103、基于第一关键像素点和第二关键像素点,确定设备的第一当前运动特征。
66.在一些实施例中,可移动机器人可以根据第一关键像素点和第二关键像素点,得
到用于表征第一关键像素点与第二关键像素点之间的对极几何关系的本质矩阵,通过对本质矩阵进行矩阵分解,得到多组分解值,并根据多组分解值,得到目标分解值,之后,根据目标分解值得到采集上一帧图像和当前图像这一时间段所对应的自身的第一当前运动特征,其中,第一当前运动特征表征这一时间段内对应的可移动机器人的第一当前运动状态。例如,上一帧图像的采集时间为t1、当前图像的采集时间为t2,从而,可以根据第一关键像素点和第二关键像素点,确定出t1至t2这一时间段所对应的可移动机器人的第一当前运动特征。
67.在一些实施例中,第一关键像素点为上一帧图像中的所有物体所在的区域对应的像素点;第二关键像素点为当前图像中所有物体所在的区域对应的像素点。可移动机器人可以通过自身的目标识别模块对第一关键像素点对应的区域进行目标物体的识别,并构建图像坐标系,将识别出的该目标物体所在的区域的区域中心的坐标,作为该目标物体在用于拍摄上一帧图像的第一时间对应的第一位置,以及,通过自身的目标识别模块对第二关键像素点对应的区域进行目标物体的识别,并构建图像坐标系,将识别出的该目标物体所在的区域的区域中心的坐标,作为该目标物体在用于拍摄当前图像的第二时间对应的第二位置;之后,可移动机器人可以建立机器人对应的空间三维坐标系,并通过图像坐标系与空间三维坐标系之间的转换关系,将第一位置和第二位置均转换为空间三维坐标系下的位置坐标;之后,根据空间三维坐标系下的这两个位置坐标,计算出可移动机器人在第一时间至第二时间这一时间段内的移动位移和移动方向中的至少一个,从而得到可移动机器人的第一当前运动特征。
68.这里,目标物体通常可以是位置固定的物体,例如,天花板上的灯、墙上的挂件等等,也可以是其他位置变化较小的物体,本公开实施例对此不作限定。
69.在一些实施例中,第一当前运动特征可以为第一相对位移;从而,可移动机器人可以得到采集上一帧图像和当前图像这一时间段内,自身的一个移动距离和一个移动方向。
70.在一些实施例中,第一当前运动特征可以为移动距离,从而,可移动机器人可以得到采集上一帧图像和当前图像这一时间段内,自身的一个移动距离。
71.在一些实施例中,第一当前运动特征可以为移动方向,从而,可移动机器人可以得到采集上一帧图像和当前图像这一时间段内,自身的一个移动方向。
72.s104、获取设备的驱动部件的速度,并基于速度,确定设备的第二当前运动特征。
73.本公开实施例中,驱动部件可以是能够带动可移动机器人运动的部件,例如,轮子等可旋转的部件或者履带等可移动的部件。示例性的,可移动机器人具有至少两个轮子,且通过轮子的转动进行运动。可移动机器人可以实时获取自身的每个轮子的速度。
74.在一些实施例中,驱动部件的速度可以是角速度或线速度等。
75.在一些实施例中,可移动机器人可以通过自身安装的轮速计,实时检测出自身的每个轮子的速度。
76.在一些实施例中,可移动机器人可以通过自身安装或外接的传感器等测量部件,检测履带等可移动部件的速度;或者通过驱动履带运动的电机等部件的参数,计算得到履带等可移动部件的速度。本公开实施例中,可移动机器人可以根据自身的每个驱动部件获取上一帧图像和当前图像这一时间段内的速度,并根据该速度以及上一帧图像和当前图像之间的时间,确定出可移动机器人的位置变化信息,并根据位置变化信息,确定出自身在这
一时间段对应的第二当前运动特征,其中,第二当前运动特征表征这一时间段对应的可移动机器人的第二当前运动状态。
77.在一些实施例中,第二当前运动特征可以为第二相对位移;从而,可移动机器人可以得到采集上一帧图像和当前图像这一时间段内,自身的另一个移动距离和另一个移动方向,并可以在第一当前运动特征为第二相对位移的情况下,根据第一相对位移和第二相对位移,后续确定出设备的当前运动状态。
78.在一些实施例中,第二当前运动特征可以为移动距离,从而,可移动机器人可以得到采集上一帧图像和当前图像这一时间段内,自身的另一个移动距离,并可以在第一当前运动特征为移动距离的情况下,根据两个移动距离,后续确定出设备的当前运动状态。
79.在一些实施例中,第二当前运动特征可以为移动方向,从而,可移动机器人可以得到采集上一帧图像和当前图像这一时间段内,自身的另一个移动方向,并可以在第一当前运动特征为移动方向的情况下,根据两个移动方向,后续确定出设备的当前运动状态。
80.s105、基于第一当前运动特征与第二当前运动特征,确定设备的当前运动状态。
81.本公开实施例中,可移动机器人根据得到的第一当前运动特征和第二当前运动特征,可以综合判定出自身在采集上一帧图像和当前图像这一时间段内,处于何种运动状态;例如,处于正常运动状态,还是异常运动状态。
82.这里,在当前运动特征为相对位移的情况下,可移动机器人可以根据得到的两个移动距离和两个移动方向,判定出自身当前处于何种运动状态。
83.在一些实施例中,可移动机器人可以在判断到第一当前运动特征和第二当前运动特征一致的情况下,确定自身当前处于正常运动状态。
84.这里,正常运动状态可以为正常移动状态或正常暂停移动状态等。
85.在一些实施例中,可移动机器人可以在判断到第一当前运动特征和第二当前运动特征不一致的情况下,确定自身当前处于异常运动状态。
86.这里,异常运动状态可以为发生碰撞、轮子空转或沿障碍物打滑等状态。
87.本公开实施例中,通过获取设备自身的预设方位的区域的当前图像,根据获取的当前图像的上一帧图像的第一关键像素点,从当前图像中确定与第一关键像素点匹配的第二关键像素点,根据得到的相互匹配的第一关键像素点和第二关键像素点,得到设备的第一当前运动特征;这样,可以在不构建该区域的地图信息的情况下,获知设备的第一当前运动特征,进而获知第一当前运动特征所表征的第一当前运动状态;通过获取设备的驱动部件的速度,根据速度确定设备的第二当前运动特征;这样,可以获知设备的第二当前运动特征,进而获知第二当前运动特征所表征的第二当前运动状态;以及,通过根据第一当前运动特征与第二当前运动特征,确定设备的当前运动状态,这样,可以根据设备的第一当前运动状态和第二当前运动状态,最终确定出设备当前的正确运动状态,从而可以在没有构建该区域的地图信息、且不增加设备的体积和系统复杂度的情况下,实现对设备的实时运动状态的准确判定;最终,提高了判断设备的运动状态时的灵活性和准确性。
88.在一些实施例中,如图2所示,上述s103可以通过s1031~s1032实现,将以图2为例进行说明。
89.s1031、通过对第一关键像素点和第二关键像素点进行过滤处理,得到第一目标像素点和第二目标像素点。
90.s1032、基于第一目标像素点和第二目标像素点,确定设备的第一当前运动特征。
91.在一些实施例中,可移动机器人可以根据第一目标像素点和第二目标像素点,得到用于表征第一目标像素点与第二目标像素点之间的对极几何关系的本质矩阵,通过对本质矩阵进行矩阵分解,得到多组分解值,并根据多组分解值,得到一组目标分级值,并根据目标分解值得到采集上一帧图像和当前图像这一时间段所对应的自身的第一当前运动特征。
92.在一些实施例中,第一目标像素点为上一帧图像中的所有物体所在的区域对应的像素点;第二目标像素点为当前图像中所有物体所在的区域对应的像素点。可移动机器人可以通过自身的目标识别模块对第一目标像素点对应的区域进行目标物体的识别,并构建图像坐标系,将识别出的该目标物体所在的区域的区域中心的坐标,作为该目标物体在用于拍摄上一帧图像的第一时间对应的第一位置,以及,通过自身的目标识别模块对第二目标像素点对应的区域进行目标物体的识别,并构建图像坐标系,将识别出的该目标物体所在的区域的区域中心的坐标,作为该目标物体在用于拍摄当前图像的第二时间对应的第二位置;之后,可移动机器人可以建立机器人对应的空间三维坐标系,并通过图像坐标系与空间三维坐标系之间的转换关系,将第一位置和第二位置均转换为空间三维坐标系下的位置坐标;之后,根据空间三维坐标系下的这两个位置坐标,计算出可移动机器人在第一时间至第二时间这一时间段内的移动位移和移动方向中的至少一个,从而得到可移动机器人的第一当前运动特征。
93.这里,可移动机器人可以通过特征过滤算法,对得到的第一关键像素点和第二关键像素点进行过滤,并将过滤后得到第一关键像素点作为第一目标像素点,以及将过滤后得到第二关键像素点,作为第二目标关键像素点。
94.在一些实施例中,可移动机器人可以采用随机采样一致性(random sample consensus,ransac)算法,对得到的第一关键像素点和第二关键像素点进行过滤。例如,可移动机器人通过该算法可以从与所有相互匹配的第一关键像素点和第二关键像素点中,随机抽选出一个样本子集,并采用选出的样本子集通过最小二乘法计算得到模型参数,之后,计算相互匹配的第一关键像素点和第二关键像素点中,每个关键像素点与该模型参数的偏差,并将得到的偏差与一个预先设定好的阈值进行比较,当偏差小于该阈值时,该像素点属于模型内样本点(inliers),否则,该像素点属于模型外样本点(outliers),通过此方法可以得到多个inliers,采用得到的多个inliers继续重新计算出模型参数,并继续执行上述方法,直至在迭代一定次数后,将inliers的个数最多的模型参数作为最终得到的模型参数,并将属于该模型参数的第一关键像素点作为第一目标像素点,以及将属于该模型参数的第二关键像素点作为第二目标像素点。
95.本公开实施例中,通过对第一关键像素点和第二关键像素点进行过滤处理,得到第一目标像素点和第二目标像素点,可以过滤掉离群的第一关键像素点和第二关键像素点,保留有效的第一关键像素点和第二关键像素点,从而可以提高得到的第一目标像素点和第二目标像素点的准确性,最终有利于提高根据第一目标像素点和第二目标像素点得到的第一当前运动特征的准确性。
96.在一些实施例中,如图3所示,上述s103还可以通过s1033~s1035实现,将以图3为例进行说明。
97.s1033、基于第一关键像素点和第二关键像素点,得到本质矩阵;本质矩阵用于表征第一关键像素点和第二关键像素点之间的对极几何关系。
98.本公开实施例中,可移动机器人可以根据第一关键像素点和第二关键像素点,计算出用于表征第一关键像素点和第二关键像素点之间的对极几何关系的本质矩阵。
99.在一些实施例中,可移动机器人可以采用图优化方法,根据第一关键像素点和第二关键像素点,得到本质矩阵。在采用图优化方法得到本质矩阵时,可移动机器人可以预先构建一个以本质矩阵和相对位移的方向向量为未知数的优化模型,对于每对匹配的第一关键像素点和第二关键像素点,使用极线约束(即一对匹配的第一关键像素点和第二关键像素点中,第二关键像素点在相对于第一关键像素点的极线上;也就是说,从用于拍摄第一关键像素点所在的上一帧图像的第一摄像机视角,沿着第一关键像素点看过去的视线投影在用于拍摄第二关键像素点所在的当前图像的第二摄像机视角上会覆盖第二关键像素点)作为该优化模型的一个求解条件;以及,将本质矩阵乘以本质矩阵的转置,等于相对位移的方向向量对应的反对称矩阵乘以相对位移的方向向量对应的反对称矩阵的转置,作为另一个求解条件,并将相对位移的方向向量是单位向量,作为另一个求解条件;根据这三个求解条件,可以求解出一个在一定误差下满足各个条件的最优的本质矩阵,将该最优的本质矩阵作为得到的本质矩阵。
100.s1034、通过对本质矩阵进行矩阵分解处理,得到多组不同的分解值;每组分解值包括相对位移和相对旋转角度。
101.本公开实施例中,可移动机器人可以通过奇异值分解(singular value decompositon,svd)方法,对得到的本质矩阵进行分解,并得到4组不同的分解值,且每组分解值中包括一个相对位移和相对旋转角度。
102.s1035、根据多组不同的分解值包括的相对位移和相对旋转角度,确定第一相对位移;第一当前运动特征包括:第一相对位移。
103.本公开实施例中,在得到多组不同的分解值的情况下,可移动机器人可以根据分解值包括的相对位移和相对旋转角度,确定出第一相对位移。
104.在一些实施例中,可移动机器人可以从多组分解值中选出一组目标分解值,并将目标分解值中包括的相对位移作为第一相对位移。
105.本公开实施例中,通过上述方法可以通过相邻图像的相互匹配的关键点,估计出可移动机器人的第一相对位移,从而提高了可移动机器人的智能性。
106.在一些实施例中,上述s1032也可以通过上述s1033~s1035所述的方法实现,其中,第一关键像素点对应第一目标像素点,第二关键像素点对应第二目标像素点。
107.在一些实施例中,如图4所示,上述s1035还可以通过s301~s305实现,将以图4为例进行说明。
108.s301、从多组分解值中选出一组目标分解值,将目标分解值中包括的相对位移的方向,作为第一方向;第一当前运动特征包括:第一相对位移;第一相对位移包括第一方向和第一距离。
109.在一些实施例中,为了提高选取效率,可移动机器人可以从多组分解值中,随机选取一组分解值作为目标分解值。
110.在一些实施例中,为了提高选取效率,可移动机器人还可以从上一帧图像的所有
第一关键像素点中,任意选出一个第一关键像素点,根据选出的该第一关键像素点和每一组分解值中包括的相对旋转角度,从多组分解值中选出一组目标分解值。
111.在一些实施例中,为了提高选取的目标分解值的准确性,可移动机器人可以从上一帧图像的所有第一关键像素点中,任意选出多个第一关键像素点,根据选出的多个第一关键像素点和每一组分解值中包括的相对旋转角度,从多组分解值中选出一组目标分解值。
112.s302、通过目标分解值中包括的相对旋转角度,对每个第一关键像素点进行旋转处理,得到每个第一关键像素点对应的第一旋转像素点;第一旋转像素点与每个第一关键像素点匹配的第二关键像素点对应。
113.本公开实施例中,对于每个第一关键像素点,可移动机器人可以根据目标分解值中的相对旋转角度,将上一帧图像中的该第一关键像素点旋转至当前图像中,并将旋转到的位置作为该第一关键像素点对应的第一旋转像素点;从而可以得到每个第一关键像素点对应的第一旋转像素点,并且,对于每个第一关键像素点而言,与该第一关键像素点对应的第一旋转像素点,也与该第一关键像素点匹配的第二关键像素点对应。
114.s303、根据预设参考点和每个第一旋转像素点,得到第一向量,以及根据预设参考点和每个第一旋转像素点对应的第二关键像素点,得到第二向量。
115.s304、对第一向量和第二向量进行叉乘处理,得到每个第一旋转像素点对应的标量值。
116.本公开实施例中,预设参考点可以为摄像机坐标系的原点,该摄像机坐标系的原点可以为摄像机的光心(中心)。
117.本公开实施例中,对于每个第一旋转像素点,可移动机器人可以根据预设参考点和该第一旋转像素点,得到从预设参考点指向该第一旋转像素点的第一向量,以及根据预设参考点和该第一旋转像素点对应的第二关键像素点,得到从预设参考点指向该第二关键像素点的第二向量,并将第一向量与第二向量进行叉乘,得到该第一旋转像素点对应的标量值。
118.s305、将第一旋转像素点对应的标量值求和,得到第一距离。
119.本公开实施例中,在得到每个第一旋转像素点对应的标量值之后,可移动机器人可以计算出所有第一旋转像素点对应的标量值的总和,并将得到的标量值的总和作为第一距离;如此,得到了方向为第一方向,且模为第一距离的第一相对位移。
120.本公开实施例中,通过上述计算方法,可以提高得到的第一相对位移的第一距离的准确度,从而有利于提高根据第一相对位移确定出的可移动机器人的当前运动状态的准确性。
121.在一些实施例中,可移动机器人可以采用以下方法进行目标分解值的选取:选取任一个第一关键像素点为第一像素点;将与该任一个第一关键像素点匹配的第二关键像素点为第二像素点;对于当前组分解值,该当前组分解值为多组分解值中的任意一组分解值,根据第一像素点,以及该当前组分解值中包括的相对旋转角度,得到第一像素点对应的第二旋转像素点;对第二旋转像素点和该当前组分解值中包括的相对位移进行叉乘处理,得到第三向量;对第二像素点和该当前组分解值中包括的相对位移进行叉乘处理,得到第四向量;根据拍摄上一帧图像的第一摄像机视角的中心位置和第一像素点,得到第一方向向
量;根据第一方向向量和该当前组分解值中包括的相对旋转角度,得到第二方向向量,根据第一方向向量和第二方向向量,确定中心向量;在第三向量的方向和第四向量的方向相同(方向相同条件)、以及第二方向向量与中心向量之间的夹角,小于第一方向向量与中心向量之间的夹角的外角(角度关系条件)的情况下,确定该当前组分解值为目标分解值。通过此方法,可移动机器人可以从多组分解值中,选出一组满足上述的方向相同条件和角度关系条件的分解值作为目标分解值。
122.在一些实施例中,可移动机器人还可以采用以下方法进行目标分解值的选取:从上一帧图像的第一关键像素点中,选择多个第一关键像素点作为多个第一像素点,将与每个第一像素点匹配的第二关键像素点作为第二像素点;对于当前组分解值,根据当前第一像素点,以及当前组分解值中包括的相对旋转角度,得到当前第一像素点对应的第二旋转像素点;当前组分解值为多组分解值中的任意一组分解值;当前第一像素点为多个第一像素点中的任意一个第一像素点;对第二旋转像素点和当前组分解值中包括的相对位移进行叉乘处理,得到第三向量;对与当前第一像素点匹配的当前第二像素点,以及当前组分解值中包括的相对位移进行叉乘处理,得到第四向量;当前第二像素点是与当前第一像素点匹配的第二像素点;根据拍摄上一帧图像的第一摄像机视角的中心位置和第一像素点,得到第一方向向量;根据第一方向向量和当前组分解值中包括的相对旋转角度,得到第二方向向量,根据第一方向向量和第二方向向量,确定中心向量;在第三向量的方向和第四向量的方向相同、以及第二方向向量与中心向量之间的夹角,小于第一方向向量与中心向量之间的夹角的外角的情况下,将当前第一像素点和当前第二像素点作为与当前组分解值对应的一对匹配点,从而得到每组分解值对应的匹配点对;将多组分解值中对应的匹配点对的数量最多的一组分解值,确定为目标分解值。通过此方法,可移动机器人可以从多组分解值中,选出一组满足上述的方向相同条件和角度关系条件的分解值作为目标分解值。
123.这里,对于每一组分解值和从上一帧图像的所有第一关键像素点中任意选出的多个第一像素点中的每个第一像素点,一方面,可移动机器人可以根据该组分解中的相对旋转角度,将该第一像素点旋转至当前图像中,并将旋转到的位置作为该第一像素点对应的第二旋转像素点,之后,可以将该第二旋转像素点与该组分解值中的相对位移做叉乘,得到第三向量;同时,可以将与该第一像素点匹配的第二像素点和该组分解值中的相对位移做叉乘,得到第四向量;另一方面,对于该组分解值,可移动机器人可以使用该组分解值中的相对旋转角度r,将用于拍摄上一帧图像的第一摄像机视角的中心位置(坐标可以为(0,0))指向该第一像素点的方向向量(以下称为第一方向向量)进行转换,得到用于拍摄当前图像的第二摄像机视角的中心位置指向与该第一像素点匹配的第二像素点的方向向量(以下称为第二方向向量);其中,第二方向向量、从第一摄像机视角的中心位置指向第二摄像机视角的中心位置的向量(以下称为中心向量),以及第一方向向量,构成一个三角形,其中,该三角形具有第一内角(第二方向向量与中心向量之间的夹角)和第二内角(第一方向向量与中心向量之间的夹角);之后,可移动机器人判断第三向量与第四向量的方向是否相同,以及判断第一内角是否小于第二内角的外角,在第三向量的方向和第四向量的方向相同,并且第一内角小于第二内角的外角的情况下,确定该第一像素点和与该第一像素点匹配的第二像素点为该组分解值的一对匹配点,如此,可以得到多组分解值中每组分解值对应的所有匹配点对,之后,可移动机器人可以按照对应的匹配点对的数量,对这多组分解值进行排
序,并选取对应的匹配点对的数量最多的一组分解值作为目标分解值。
124.本公开实施例中,得到的多组分解值中包括了一组可以使数量最多的第一关键像素点或第二关键像素点在第一摄像机视角和第二摄像机视角中的深度值均为正的分解值,还包括了使数量较多的第一关键像素点或第二关键像素点在第一摄像机视角和第二摄像机视角中的深度值为负的分解值,通过上述的方向相同条件,可以先选出包含最优的相对旋转角度的多组分解值,通过上述的角度关系条件,可以从包含最优的相对旋转角度的多组分解值中,选出包含最优的相对位移的一组分解值,其中,同时包含最优的相对旋转角度和最优的相对位移的一组分解值是多组分解值中,是数量最多的第一关键像素点或第二关键像素点在第一摄像机视角和第二摄像机视角中的深度值均为正的一组分解值,相比于从多组分解值中随机选取目标分解值而言,可以提高得到的目标分解值的准确性,从而有利于根据目标分解值得到准确的第一相对位移。
125.在一些实施例中,第二当前运动特征包括:第二相对位移;第二相对位移包括:第二方向和第二距离;如图5所示,上述s104中的基于速度,确定设备的第二当前运动特征,可以通过以下s1041~s1045实现,将以图5为例进行说明。
126.s1041、确定设备的每个驱动部件的第一位置,得到多个第一位置。
127.s1042、根据设备的每个驱动部件的速度、上一帧图像对应的第一时间和当前图像对应的第二时间,确定每个驱动部件的第二位置,得到多个第二位置。
128.本公开实施例中,在驱动部件为轮子的情况下,每个轮子具有第一位置,可移动机器人可以根据该轮子在第一时间至第二时间这一时间段内的速度和这一时间段,计算出该轮子的移动距离,并将该轮子的运动方向的前方、与该轮子的第一位置之间的垂直距离为该移动距离的位置,作为该轮子的第二位置。
129.在一些实施例中,可移动机器人可以设定一个初始位置,并将该初始位置作为每个轮子与上一帧图像对应的第一位置。示例性的,初始位置的坐标可以为(0,0)。
130.在一些实施例中,可移动机器人可以在获取到第一张图像的情况下,设定一个初始位置(例如,为(0,0)),并将该初始位置作为每个轮子与该第一张图像对应的第一位置,之后,根据每个轮子在第一张图像对应的第一时间和第二张图像对应的第二时间这一时间段内的速度和这一时间段,计算出该轮子的移动距离s1后,根据该移动距离s1,确定出该轮子的第二位置(例如,为(0,s1));并采用第一位置和第二位置确定出可移动机器人在第一时间至第二时间这一时间段内的第二相对位移;之后,在可移动机器人获取到第三张图像(即第二张图像为新的上一帧图像,第三张图像为新的当前图像)的情况下,将上述得到的该第二位置作为该轮子的新的第一位置,根据该轮子在第二张图像对应的第二时间和第三张图像对应的第三时间这一时间段内的速度和这一时间段,计算出该轮子的移动距离s2后,根据该移动距离s2,确定出该轮子的新的第二位置(例如,为(0,s1+s2));并采用新的第一位置和新的第二位置确定出可移动机器人在第二时间至第三时间这一时间段内的第二相对位移;如此循环更新,可以得到每个上一帧图像对应的每个轮子的第一位置。
131.在一些实施例中,在每个轮子的速度是线速度的情况下,可移动机器人可以直接采用每个轮子的线速度进行移动距离的计算;在一些实施例中,在每个轮子的速度是角速度的情况下,可移动机器人可以根据角速度和每个轮子的半径,确定出每个轮子的线速度,之后,根据得到的每个轮子的线速度进行移动距离的计算。
132.在一些实施例中,可移动机器人可以构建该区域的场景地图信息,并将第一时间自身在该场景地图信息中的位置作为第一位置。
133.s1043、确定由多个第一位置形成的第一线段的中心位置,或由多个第一位置形成的第一区域的中心位置,得到第一中心位置。
134.s1044、确定由多个第二位置形成的第二线段的中心位置,或由多个第二位置形成的第二区域的中心位置,得到第二中心位置。
135.s1045、将第一中心位置与第二中心位置之间的距离,作为第二距离,以及,将第二中心位置相对于第一中心位置的方位信息,作为第二方向;第二当前运动特征包括:第二相对位移;第二相对位移包括:第二方向和第二距离。
136.本公开实施例中,可移动机器人在得到自身的每个轮子的第一位置的情况下,可以确定出自身的所有轮子的第一位置形成的线段或区域的中心位置(以下称为第一中心位置);以及,可移动机器人在得到自身的每个轮子的第二位置的情况下,可以确定出自身的所有轮子形成的线段或区域的中心位置(以下称为第二中心位置);之后,可以将第一中心位置与第二中心位置之间的距离,作为第二距离,以及,将第二中心位置相对于第一中心位置的方位信息,作为第二方向。
137.在一些实施例中,第一区域或第二区域的中心位置可以是第一区域或第二区域的中心点、重心或内心所在的位置。例如,在第一区域或第二区域为不规则的三角形区域的情况下,第一区域或第二区域的中心位置可以是该三角形区域的重心或内心所在的位置;在第一区域或第二区域为不规则的四边形区域的情况下,第一区域或第二区域的中心位置,可以为该四边形区域的重心所在的位置;又例如,在第一区域或第二区域为正三角形区域或正多边形区域的情况下,第一区域或第二区域的中心位置,可以为正三角形区域或正多边形区域的中心点所在的位置。
138.示例性的,如图6a所示,可移动机器人具有2个轮子,且第1个轮子的第一位置为w1、第二位置为w2,第2个轮子的第一位置为w3、第二位置为w4,w1与w3形成的第一线段的中心位置为w11,w2与w4形成的第二线段的中心位置为w22,根据w11和w22,可以得到可移动机器人的第二相对位移t1。
139.示例性的,如图6b所示,可移动机器人具有4个轮子,且第1个轮子的第一位置为w1、第二位置为w1’,第2个轮子的第一位置为w2、第二位置为w2’,第3个轮子的第一位置为w3、第二位置为w3’,第4个轮子的第一位置为w4、第二位置为w4’;其中,w1、w2、w3和w4形成的第一区域的中心位置为w11,w1’、w2’、w3’和w4’形成的第二区域的中心位置为w22,根据w11和w22,可以得到可移动机器人的第二相对位移t1。
140.本公开实施例中,通过上述方法,可以在不依赖设备周围的场景的图像的情况下,得到设备在一段时间内的相对位移,从而提高了确定设备的相对位移时的灵活性。
141.在一些实施例中,在第一当前运动特征和第二当前运动特征均为移动距离,且第一当前运动特征为第一相对位移的第一距离,第二当前运动特征为第二相对位移的第二距离的情况下,可移动机器人可以将第一距离与第一预设阈值进行比较,以及将第二距离与第二预设阈值进行比较;在第一距离大于第一预设阈值、且第二距离大于第二预设阈值的情况下,或者,在第一距离小于或等于第一预设阈值、且第二距离小于或等于第二预设阈值的情况下,确定设备当前处于正常运动状态;而在第一距离大于第一预设阈值、且第二距离
小于或等于第二预设阈值,或者,第一距离小于或等于第一预设阈值、且第二距离大于第二预设阈值的情况下,确定设备当前处于异常运动状态。
142.在一些实施例中,第一预设阈值可以为0.01,也可以为其他数值,本公开实施例对此也不作限定。这里,将第一预设阈值设置为0.01,可以根据第一距离与0.01之间的大小关系,清楚地获知可移动机器人在采集上一帧图像和当前图像这一时间段内是否有移动,即在第一距离小于或等于0.01的情况下,通过视觉判断出可移动机器人在采集上一帧图像和当前图像这一时间段内没有移动,即处于静止或纯旋转状态;而在第一距离大于0.01的情况下,通过视觉判断出可移动机器人在采集上一帧图像和当前图像这一时间段内发生了移动。
143.在一些实施例中,第二预设阈值可以为1cm,也可以为其他数值,本公开实施例对此不作限定。这里,由于1cm这一数值较小,这样,通过此预设阈值进行运动状态判断时,即使判断出错,对于后续时间段的运动状态的判断造成的影响也比较微小,即,不会影响后续时间段的运动状态判断,从而可以提高运动状态检测时的容错率。
144.上述方法中,通过两个移动距离,可以快速进行设备的当前运动状态的确定,从而提高了确定设备的运动状态时的效率。
145.在一些实施例中,在第一当前运动特征和第二当前运动特征均为移动方向,且第一当前运动特征为第一相对位移的第一方向,第二当前运动特征为第二相对位移的第二方向的情况下,可移动机器人可以将第一方向与第二方向进行比较;在第一方向与第二方向相同的情况下,确定设备当前处于正常运动状态;而在第一方向与第二方向不同的情况下,确定设备当前处于异常运动状态。
146.上述方法中,通过两个移动方向,可以快速进行设备的当前运动状态的确定,从而提高了确定设备的运动状态时的效率。
147.在一些实施例中,第一当前运动特征包括:第一相对位移;第二当前运动特征包括:第二相对位移;当前运动状态包括:第一正常运动状态。基于此,如图7所示,上述s105可以通过s1051实现,将以图7为例进行说明。
148.s1051、在第一相对位移的第一距离小于或等于第一预设阈值,且第二相对位移的第二距离小于或等于第二预设阈值的情况下,确定设备当前处于第一正常运动状态。
149.本公开实施例中,在第一相对位移的第一距离小于或等于第一预设阈值,且第二相对位移的第二距离小于或等于第二预设阈值的情况下,可以认为第一当前运动特征与第二当前运动特征是一致的,也就是说,根据视觉得到的当前运动特征和根据驱动部件的速度得到的当前运动特征是一致的,因而可以确定可移动机器人当前处于第一正常运动状态。
150.这里,在第一相对位移的第一距离小于或等于第一预设阈值,且第二相对位移的第二距离小于或等于第二预设阈值的情况下,可以确定可移动机器人在对应的时间段内处于正常暂停移动的状态。
151.本公开实施例中,通过上述方法,可以判断出可移动机器人当前处于何种正常运动状态,从而提高了对运动状态检测的智能性。
152.在一些实施例中,第一当前运动特征包括:第一相对位移;第二当前运动特征包括:第二相对位移;当前运动状态包括:第二正常运动状态。如图8所示,上述s105还可以通
过s1052实现,将以图8为例进行说明。
153.s1052、在第一相对位移的第一距离大于第一预设阈值、第二相对位移的第二距离大于第二预设阈值,以及第一相对位移的第一方向与第二相对位移的第二方向相同的情况下,确定设备当前处于第二正常运动状态;第一当前运动特征包括:第一相对位移;第二当前运动特征包括:第二相对位移;当前运动状态包括:第二正常运动状态。
154.本公开实施例中,在第一相对位移的第一距离大于第一预设阈值、第二相对位移的第二距离大于第二预设阈值,以及第一相对位移的第一方向与第二相对位移的第二方向相同的情况下,可以认为第一当前运动特征与第二当前运动特征一致,也就是说,根据视觉得到的当前运动特征和根据驱动部件的速度得到的当前运动特征是一致的,因而,可以确定可移动机器人在采集上一帧图像和当前图像这一时间段内处于第二正常运动状态。
155.这里,在第一距离大于第一预设阈值、第二距离大于第二预设阈值,以及第一相对位移的第一方向与第二相对位移的第二方向相同的情况下,可以认为可移动机器人处于正常移动状态。
156.本公开实施例中,通过上述方法,可以判断出可移动机器人当前处于何种正常运动状态,从而提高了对运动状态检测的智能性。
157.在一些实施例中,第一当前运动特征包括:第一相对位移的第一距离;第二当前运动特征包括:第二相对位移的第二距离;当前运动状态包括:第一异常运动状态。如图9所示,上述s105可以通过s1053实现,将以图9为例进行说明。
158.s1053、在第一距离小于或等于第一预设阈值,且第二距离大于第二预设阈值的情况下,确定设备当前处于第一异常运动状态;第一当前运动特征包括:第一相对位移的第一距离;第二当前运动特征包括:第二相对位移的第二距离;当前运动状态包括:第一异常运动状态。
159.本公开实施例中,在第一相对位移的第一距离小于或等于第一预设阈值,且第二相对位移的第二距离大于第二预设阈值的情况下,可以认为第一当前运动特征与第二当前运动特征不一致;也就是说,根据视觉得到的当前运动特征和根据驱动部件的速度得到的当前运动特征是不一致的。因而,可以确定可移动机器人在采集上一帧图像和当前图像这一时间段内处于第一异常运动状态。
160.这里,在第一相对位移的第一距离小于或等于第一预设阈值,且第二相对位移的第二距离大于第二预设阈值的情况下,可以认为可移动机器人当前发生碰撞或轮子空转等异常状态。
161.本公开实施例中,通过上述方法,可以判断出可移动机器人当前处于何种异常运动状态,从而提高了对运动状态检测的智能性。
162.在一些实施例中,第一当前运动特征包括:第一相对位移;第二当前运动特征包括:第二相对位移;当前运动状态包括:第二异常运动状态。如图10所示,上述s105可以通过s1054实现,将以图10为例进行说明。
163.s1054、在第一相对位移的第一距离大于第一预设阈值、第一相对位移的第二距离大于第二预设阈值,以及第一相对位移的第一方向与第一相对位移的第二方向不相同的情况下,确定设备当前处于第二异常运动状态;第一当前运动特征包括:第一相对位移;第二当前运动特征包括:第二相对位移;当前运动状态包括:第二异常运动状态。
164.本公开实施例中,在第一相对位移的第一距离大于第一预设阈值、第二相对位移的第二距离大于第二预设阈值,以及第一相对位移的第一方向与第二相对位移的第二方向不相同的情况下,可以认为第一当前运动特征与第二当前运动特征不一致;也就是说,根据视觉得到的当前运动特征和根据驱动部件的速度得到的当前运动特征是不一致的。因而,可以确定可移动机器人在采集上一帧图像和当前图像这一时间段内处于第二异常运动状态。
165.这里,在第一距离大于第一预设阈值、第二距离大于第二预设阈值,以及第一方向与第二方向不相同的情况下,可以认为可移动机器人当前处于沿障碍物打滑等异常状态。
166.本公开实施例中,通过上述方法,可以判断出可移动机器人当前处于何种异常运动状态,从而提高了对运动状态检测的智能性。
167.下面以图11和图12为例,说明本公开实施例提供的运动状态确定方法在实际场景中的应用。
168.s1、对相邻两帧图像进行2d关键点跟踪。
169.这里,根据上一帧图像的关键点,使用光流法得到当前图像中的对应点,从而得到上一帧图像和当前图像的2d-2d匹配点;采用ransac方法对得到的这相邻两帧的2d-2d匹配点进行过滤,得到2d-2d有效匹配点。
170.s2、相对运动估计。
171.这里,如图12所示,在步骤s22中,根据步骤s21得到的该相邻两帧图像的2d-2d有效匹配点,计算出对应的本质矩阵,在步骤s23中,通过对本质矩阵进行分解,得到候选位姿,在步骤s24中,采用相交约束条件和同向约束条件,从候选位姿中选取目标位姿;之后,根据目标位姿确定出第一相对位移;以及,根据轮速计检测到的每个轮子的速度,确定出第二相对位移。
172.这里,候选位姿为上述多组分解值,目标位姿为上述目标分解值。同向约束条件对应上述第三向量的方向和第四向量的方向相同,相交约束条件对应上述第二方向向量与中心向量之间的夹角,小于第一方向向量与中心向量之间的夹角的外角。
173.s3、一致性判断。
174.这里,将第一相对位移与第二相对位移进行比较,在第一相对位移的第一距离小于或等于0.01,且第二相对位移的第二距离小于或等于1cm的情况下,确定可移动机器人在该相邻两帧图像对应的时间段内处于正常暂停移动的状态;在第一距离大于0.01、第二距离大于1cm,以及第一相对位移的第一方向与第二相对位移的第二方向相同的情况下,确定可移动机器人在该相邻两帧图像对应的时间段内处于正常移动状态;在第一相对位移的第一距离小于或等于0.01,且第二相对位移的第二距离大于1cm的情况下,确定可移动机器人在该相邻两帧图像对应的时间段内处于发生碰撞或轮子空转的异常状态;在第一距离大于0.01、第二距离大于1cm,以及第一方向与第二方向不相同的情况下,确定可移动机器人在这相邻两帧图像对应的时间段内处于沿障碍物打滑的异常状态。
175.s4、在检测到处于异常运动状态的情况下,输出异常检测结果。
176.这里,在检测到处于异常运动状态的情况下,可移动机器人可以向对应的上层应用程序发送提示消息,以提示当前发生何种异常。
177.在一些实施例中,通过上述运动状态确定方法,可移动机器人还可以在检测到发
生异常的情况下,将发生异常的位置进行标记,从而可以在后续对该区域构建地图信息时,屏蔽发生异常的位置,以提高构建出的该区域的地图信息的准确性;以及,可以在该区域中进行自身定位时,屏蔽发生异常的位置,使得在该区域中的定位更加准确。
178.在一些实施例中,通过上述运动状态确定方法,可移动机器人还可以在检测到发生异常的情况下,将发生异常的位置点进行标记,从而后续在该区域内进行路径规划时,避开发生异常的位置,提高路径规划的准确性。
179.基于前述的实施例,本公开实施例提供一种运动状态确定装置,该装置包括所包括的各单元、以及各单元所包括的各模块,可以通过计算机设备中的处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为中央处理器(central processing unit,cpu)、微处理器(microprocessor unit,mpu)、数字信号处理器(digital signal processor,dsp)或现场可编程门阵列(field programmable gate array,fpga)等。
180.图13为本公开实施例提供的一种运动状态确定装置的组成结构示意图,如图13所示,运动状态确定装置600包括:获取模块610,用于获取设备的预设方位的区域的当前图像;确定模块620,用于根据获取的上一帧图像的第一关键像素点,从所述当前图像中确定与所述第一关键像素点匹配的第二关键像素点;基于所述第一关键像素点和所述第二关键像素点,确定所述设备的第一当前运动特征;所述获取模块610,还用于获取所述设备的驱动部件的速度;所述确定模块620,还用于基于所述速度,确定所述设备的第二当前运动特征;基于所述第一当前运动特征与所述第二当前运动特征,确定所述设备的当前运动状态。
181.在一些实施例中,所述确定模块620,还用于通过对所述第一关键像素点和所述第二关键像素点进行过滤处理,得到第一目标像素点和第二目标像素点;基于所述第一目标像素点和所述第二目标像素点,确定所述设备的第一当前运动特征。
182.在一些实施例中,所述第一当前运动特征包括:第一相对位移;所述确定模块620,还用于基于所述第一关键像素点和所述第二关键像素点,得到本质矩阵;所述本质矩阵用于表征所述第一关键像素点与所述第二关键像素点之间的对极几何关系;通过对所述本质矩阵进行矩阵分解处理,得到多组不同的分解值;每组分解值包括相对位移和相对旋转角度;根据所述多组不同的分解值包括的相对位移和相对旋转角度,确定所述第一相对位移。
183.在一些实施例中,所述第一相对位移包括:第一方向和第一距离;所述确定模块620,还用于基于任一个第一关键像素点,从所述多组分解值中选出一组目标分解值,将所述目标分解值中包括的相对位移的方向,作为所述第一方向;通过所述目标分解值中包括的相对旋转角度,对每个第一关键像素点进行旋转处理,得到所述每个第一关键像素点对应的第一旋转像素点;所述第一旋转像素点与所述每个第一关键像素点匹配的第二关键像素点对应;根据预设参考点和每个第一旋转像素点,得到第一向量;以及根据所述预设参考点和所述每个第一旋转像素点对应的第二关键像素点,得到第二向量;对所述第一向量和所述第二向量进行叉乘处理,得到所述每个第一旋转像素点对应的标量值;将所述每个第一旋转像素点对应的标量值求和,得到所述第一距离。
184.在一些实施例中,所述确定模块620,还用于从所述多组分解值中选出一组目标分解值,并将所述目标分解值中包括的相对位移作为所述第一相对位移。
185.在一些实施例中,所述确定模块620,还用于从所述上一帧图像的第一关键像素点
中,选择多个第一关键像素点作为多个第一像素点,将与每个第一像素点匹配的第二关键像素点作为第二像素点;对于当前组分解值,根据当前第一像素点,以及所述当前组分解值中包括的相对旋转角度,得到所述当前第一像素点对应的第二旋转像素点;所述当前组分解值为所述多组分解值中的任意一组分解值;所述当前第一像素点为所述多个第一像素点中的任意一个;对所述第二旋转像素点和所述当前组分解值中包括的相对位移进行叉乘处理,得到第三向量;对与所述当前第一像素点匹配的当前第二像素点,以及所述当前组分解值中包括的相对位移进行叉乘处理,得到第四向量;根据拍摄所述上一帧图像的第一摄像机视角的中心位置和所述第一像素点,得到第一方向向量;根据所述第一方向向量和所述当前组分解值中包括的相对旋转角度,得到第二方向向量,根据所述第一方向向量和所述第二方向向量,确定中心向量;在所述第三向量的方向和所述第四向量的方向相同、以及所述第二方向向量与所述中心向量之间的夹角,小于所述第一方向向量与所述中心向量之间的夹角的外角的情况下,将所述当前第一像素点和所述当前第二像素点作为所述当前组分解值对应的一对匹配点,从而得到每组分解值对应的匹配点对;将所述多组分解值中,对应的所述匹配点对的数量最多的一组分解值,确定为所述目标分解值。
186.在一些实施例中,所述第二当前运动特征包括:第二相对位移;所述第二相对位移包括:第二方向和第二距离;所述确定模块620,还用于确定设备的每个驱动部件的第一位置,得到多个第一位置;根据所述设备的每个驱动部件的速度、所述上一帧图像对应的第一时间和所述当前图像对应的第二时间,确定所述每个驱动部件的第二位置,得到多个第二位置;确定由所述多个第二位置形成的第二线段的中心位置,或由所述多个第二位置形成的第二区域的中心位置,得到第二中心位置;将所述第一中心位置与所述第二中心位置之间的距离,作为所述第二距离,以及,将所述第二中心位置相对于所述第一中心位置的方位信息,作为所述第二方向。
187.在一些实施例中,所述获取模块610,还用于通过部署在所述设备的第一预设区域的第一图像采集装置,获取所述设备的上方区域的第一当前图像;或,通过部署在所述设备的第二预设区域的第二图像采集装置,获取沿所述设备的运动方向,位于所述设备前方的区域的第二当前图像。
188.在一些实施例中,所述第一当前运动特征包括:第一相对位移;所述第二当前运动特征包括:第二相对位移;所述当前运动状态包括:第一正常运动状态;所述确定模块620,还用于在所述第一相对位移的第一距离小于或等于第一预设阈值,且所述第二相对位移的第二距离小于或等于第二预设阈值的情况下,确定所述设备当前处于所述第一正常运动状态。
189.在一些实施例中,所述第一当前运动特征包括:第一相对位移;所述第二当前运动特征包括:第二相对位移;所述当前运动状态包括:第二正常运动状态;所述确定模块620,还用于在所述第一相对位移的第一距离大于第一预设阈值、所述第二相对位移的第二距离大于第二预设阈值,以及所述第一相对位移的第一方向与所述第二相对位移的第二方向相同的情况下,确定所述设备当前处于所述第二正常运动状态。
190.在一些实施例中,所述第一当前运动特征包括:第一相对位移的第一距离;所述第二当前运动特征包括:第二相对位移的第二距离;所述当前运动状态包括:第一异常运动状态;所述确定模块620,还用于在所述第一距离小于或等于第一预设阈值,且所述第二距离
大于第二预设阈值的情况下,确定所述设备当前处于所述第一异常运动状态。
191.在一些实施例中,所述第一当前运动特征包括:第一相对位移;所述第二当前运动特征包括:第二相对位移;所述当前运动状态包括:第二异常运动状态;所述确定模块620,还用于在所述第一相对位移的第一距离大于第一预设阈值、所述第二相对位移的第二距离大于第二预设阈值,以及所述第一相对位移的第一方向与所述第二相对位移的第二方向不相同的情况下,确定所述设备当前处于所述第二异常运动状态。
192.以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上述方法实施例描述的方法,对于本公开装置实施例中未披露的技术细节,请参照本公开方法实施例的描述而理解。
193.需要说明的是,本公开实施例中,如果以软件功能模块的形式实现上述方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本公开各个实施例所述方法的全部或部分。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read only memory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本公开实施例不限制于任何特定的硬件、软件或固件,或者硬件、软件、固件三者之间的任意结合。
194.本公开实施例提供一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法中的部分或全部步骤。
195.本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法中的部分或全部步骤。所述计算机可读存储介质可以是瞬时性的,也可以是非瞬时性的。
196.本公开实施例提供一种计算机程序,包括计算机可读代码,在所述计算机可读代码在计算机设备中运行的情况下,所述计算机设备中的处理器执行用于实现上述方法中的部分或全部步骤。
197.本公开实施例提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序被计算机读取并执行时,实现上述方法中的部分或全部步骤。该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一些实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一些实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(software development kit,sdk)等等。
198.这里需要指出的是:上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考。以上设备、存储介质、计算机程序及计算机程序产品实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本公开设备、存储介质、计算机程序及计算机程序产品实施例中未披露的技术细节,请参照本公开方法实施例的描述而理解。
199.需要说明的是,图14为本公开实施例中计算机设备的一种硬件实体示意图,如图
14所示,该计算机设备700的硬件实体包括:处理器701、通信接口702和存储器703,其中:
200.处理器701通常控制计算机设备700的总体操作。
201.通信接口702可以使计算机设备通过网络与其他终端或服务器通信。
202.存储器703配置为存储由处理器701可执行的指令和应用,还可以缓存待处理器701以及计算机设备700中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(flash)或随机访问存储器(random access memory,ram)实现。处理器701、通信接口702和存储器703之间可以通过总线704进行数据传输。
203.应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本公开的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本公开的各种实施例中,上述各步骤/过程的序号的大小并不意味着执行顺序的先后,各步骤/过程的执行顺序应以其功能和内在逻辑确定,而不应对本公开实施例的实施过程构成任何限定。上述本公开实施例序号仅仅为了描述,不代表实施例的优劣。
204.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
205.在本公开所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
206.上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
207.另外,在本公开各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
208.本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(read only memory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。
209.或者,本公开上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算
机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本公开各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、磁碟或者光盘等各种可以存储程序代码的介质。
210.以上所述,仅为本公开的实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1