本发明的实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请部分实施例进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。然而,本领域的普通技术人员可以理解,在本申请的各实施例中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施例的种种变化和修改,也可以实现本申请所要求保护的技术方案。
本申请的第一实施例涉及一种定位方法,该定位方法可应用于终端或者云端,终端可以是智能机器人、无人驾驶车辆、盲人导航装置等。云端与终端通信连接,为终端提供定位的结果。本实施例以终端为例说明定位过程,云端执行该定位方法的过程可以参考本申请实施例的内容。本实施例中视觉定位以vSLAM定位方式为例进行说明,当然,也可以使用其他高精度、高耗能的视觉定位方式,本实施例不限制终端的视觉定位方式。该定位方法的具体流程如图1所示:
步骤101:获取终端在当前时段内所处场景的置信度。其中,置信度用于表示终端在当前时段内所处场景与上一时段内所处场景的差异程度。
一个具体实现中,获取当前时段内终端所处场景的图像数据,以及获取终端的角度信息;根据图像数据和角度信息,确定终端在当前时段内所处场景的置信度。
具体的说,当前时段内终端所处场景的图像数据可以通过视觉传感器获取,例如,摄像头,红外传感器等。当前时段内终端的角度信息可以通过角度传感器获取,例如,倾角传感器、陀螺仪等。本实施例中不限制获取图像数据的传感器类型,也不限制获取终端角度信息的传感器类型。
在本步骤中,终端确定当前时段内所处场景的置信度的方式可以是:根据图像数据,确定在当前时段内所处场景的纹理质量变化程度,以及确定在当前时段内所处场景的光照变化程度;根据角度信息,确定在当前时段内所处场景的角度变化程度;计算纹理质量变化程度、光照变化程度和角度变化程度三者的平均值,并将平均值作为终端在当前时段内所处场景的置信度。
下面将分别对确定纹理质量变化程度、确定光照变化程度以及确定角度变化程度进行详细说明。
可以理解的是,确定当前时段内所处场景的纹理质量变化程度的方法包括但不限于以下两种:
方式一:获取该图像数据中的特征像素点,并统计特征像素点的个数,计算特征像素点的个数与预设像素点个数的第一比值,并将该第一比值作为该场景的纹理质量变化程度。
具体的说,一个图像数据是由一个一个像素点组成,提取该图像数据中的特征像素点,特征像素点的提取方式有多种,例如:使用尺度不变特征变换、加速稳健特征的方式进行图像的特征像素点的提取。统计该图像数据中提取到的所有的特征像素点的个数,计算统计到的特征像素点的个数与预设像素点个数的第一比值,预设像素点个数可以根据实际情况进行设置,例如,预设像素点个数可以为1000、也可以为10000。第一比值的计算如:假设统计的特征像素点的个数为F,预设像素点个数为1000,那么第一比值TF=F/1000,并将该第一比值作为该场景的纹理质量变化程度。
方式二:检测图像数据中属于边缘的像素点,并统计属于边缘的像素点的个数,计算属于边缘的像素点的个数与预设像素点个数的第二比值,并将第二比值作为场景的纹理质量变化程度。
具体的说,提取该图像数据中属于边缘的像素点的个数,提取方式可以采用边缘提取方法,此处将不再进行赘述。预设像数点个数与方式一中设置方式大致相同,此处也不再详述。第二比值计算如下:假设提取属于边缘的像素点的个数为F’,预设像素点个数为1000,那么第二比值TF’=F’/1000,并将第二比值作为该场景的纹理质量变化程度。
下面详细介绍确定当前时段内所处场景的光照变化程度的方法。
一个具体实现中,计算图像数据中预设区域内的平均灰度值;根据平均灰度值以及预设灰度值,确定在当前时段内所处场景的光照变化程度。
具体的说,计算该图像数据中预设区域内的平均灰度值,例如:预设区域可以为整个该图像数据的大小,也可以是该图像数据的中间区域,预设区域可以根据实际的需要进行设置。该预设区域内的平均灰度值可以是该预设区域内每个像素点的灰度值总和除以该预设区域内的所有的像素点的总和的值,当然,也可以由其他的方式计算该预设区域内的平均灰度值,此处不再一一例举。
将计算的灰度平均值与预设灰度值进行比较,确定出当前时段内所处场景的光照变化程度。例如,预设灰度值为255,计算的平均灰度值为G,那么当前时段内所处场景的光照变化程度(TG)可以为:TG=1-G/255,将TG作为当前时段内所处场景的光照变化程度。
当然,也可以用其他方式计算所处场景的光照变化程度,本实施例中不再一一例举。
以下详细介绍确定当前时段内所处场景的角度变化程度的方法。
一个具体的实现中,计算预设角度与角度信息的差值;计算差值与预设角度的第三比值,将第三比值作为当前时段内所处场景的角度变化程度。
例如,角度信息为A,预设角度可以为180度,或者360度,可以根据具体的实际情况设置,那么第三比值TA=1-A/180,并将TA作为当前时段内所处场景的角度变化程度。
在确定当前时段内所处场景中纹理质量变化程度、光照变化程度,以及角度变化程度之后,即可求取三者的平均值,例如,假设光照变化程度为TG、纹理质量变化程度为TF、角度变化程度为TA,那么当前时段内所处场景的置信度TH=(TF+TG+TA)/3。
本实施例中的当前时段内所处场景的置信度是根据纹理质量变化程度、光照变化程度和角度变化程度确定的,可以理解的是,当前时段内所处场景的置信度也可以仅根据纹理质量变化程度确定,或者仅根据光照变化程度确定,或者仅根据角度变化程度确定的;当然,当前时段内所处场景的置信度还可以是根据纹理质量变化程度、光照变化程度和角度变化程度三者中任意两个的组合确定,本实施例不限制确定当前时段内所处场景的置信度的方法。
需要说明的是,当前时段内终端所处场景的图像数据为当前时段内采集的最后一帧的图像数据或者采集到当前时段内的所有帧的图像数据。可以理解的是,若图像数据为采集到当前时段内的所有帧的图像数据,那么可以通过计算当前时段内所有帧的图像数据平均的纹理质量变化程度、平均的光照变化程度以及平均的角度变化程度,计算当前时段内场景的置信度。
步骤102:根据终端在当前时段内所处场景的置信度,调整第一定位频率。其中,置信度与第一定位频率成反比。
具体的说,当前时段内所处场景的置信度越高,表明当前时段内所处场景与上一时段内所处场景的变化越小,该场景越稳定,终端可以降低第一频率,以降低功耗。当前时段内所处场景的置信度越小,表明当前时段内所处场景与上一时段内所处场景的变化越大、该场景越不稳定,终端可以调高第一定位频率,以提高定位精度。
可以理解的是,为了便于调整第一定位频率,可以预先存储关于置信度与第一定位频率之间的对应关系。当确定出当前时段内所处场景的置信度,即可根据预先存储的对应关系,确定出当前时段所处场景所需的第一定位频率。例如,预存的对应关系如表1所示,其中,表1中,△t1>△t2>△t3;若当前时段内所处场景的置信度为0.3,那么将第一频率调整为△t2。表1中仅为举例,实际生活中,置信度不止表1中列举的数量。
[Table 1]
置信度 |
第一定位频率 |
0.1 |
△t1 |
0.3 |
△t2 |
0.9 |
△t3 |
表1
需要说明的是,若终端开机时,默认当前置信度为最小值,采用最高的第一频率进行定位。
步骤103:按照调整后的第一定位频率在当前时段所处场景内进行视觉定位。
相对于现有技术而言,本申请部分实施例中,由于第一定位频率与置信度呈反比,而置信度表示当前时段内所处的场景与上一时段内所处场景的变化程度,当置信度低时,表明当前时段对所处场景与上一时段所处场景之间的变化大、场景不稳定,采用高频率的第一定位频率,确保定位的准确性,若置信度高时,表明场景变化不大、场景稳定,采用低频率的第一定位频率对当前时段内的场景进行定位,降低定位的功耗,同时也大大减少了跟丢情况的发生概率。本实施例中,根据置信度的大小,灵活调节第一定位频率,使得不降低终端的定位精度的情况下,降低定位的功耗,提高终端的续航能力。
本申请的第二实施例涉及一种定位方法,第二实施例是对第一实施例的进一步改进,主要改进之处在于,本实施例在进行视觉定位的过程中增加了辅助定位,通过辅助定位,在降低功耗的同时,进一步确保终端的定位的精确度。本实施例中视觉定位以vSLAM定位为例,辅助定位以视觉惯性测量/测量单元(Visual-Inertial Odometry/Inertialmeasurement unit简称“VIO/IMU”)定位为例进行说明。该定位方法的具体流程如图2所示:
步骤201:获取终端在当前时段内所处场景的置信度。
步骤202:根据终端在当前时段内所处场景的置信度,调整第一定位频率。
需要说明的是,本实施例的步骤201至步骤202与第一实施例中的步骤101至步骤102大致相同,此处不再详述。
步骤203:按照调整后的第一定位频率在当前时段所处场景内进行第N次视觉定位,得到第N次视觉定位的定位结果。N为大于0的整数。
步骤204:在第N次视觉定位与第N+1次视觉定位的中间时段,在第N次视觉定位的定位结果的基础上进行至少一次辅助定位。
下面将对在第N次视觉定位与第N+1次视觉定位的中间时段,增加至少一次辅助定位的过程进行举例说明。
例如,TN表示第N次视觉定位的时刻,TN+1表示第N+1次视觉定位的时刻,那么在TN~TN+1的时段内,可以采用辅助定位的方式进行一次辅助定位,获取该辅助定位的定位结果。其中,辅助定位的时刻可以选取TN~TN+1的时段的中间时刻,也可以选取其他时刻。可以理解的是,在TN~TN+1的时段内还可以进行多次辅助定位,其中,辅助定位均匀分布在TN~TN+1的时段内。如图3所示,在TN~TN+1的时段内均匀分布2次辅助定位(辅助定位以VIO/IMU定位方式为例)。
一个具体的实现中,辅助定位还可以按照第二定位频率进行。
具体的说,第二定位频率可以是固定频率,为了提高辅助定位的定位准确性,该固定频率可以选择高频率。
可以理解的是,第二频率还可以根据置信度进行动态调节。终端在第N次视觉定位的定位结果的基础上进行至少一次辅助定位之前,获取第二定位频率,获取方式为:根据该终端在当前时段内所处场景的置信度,以及置信度与占比之间的对应关系,确定第二定位频率,其中,该占比为第一定位频率与第二定位频率的比值。
具体的说,由于辅助定位用于辅助视觉定位,因而,第一定位频率高的时候,对应的第二定位频率应降低,若第一定位频率低的时候,对应的第二定位频率应当增加。置信度与占比之间的对应关系可以预先存储,如表2所示:
[Table 2]
置信度 |
占比(第一定位频率/第二定位频率) |
0.1 |
9:1 |
0.3 |
7:3 |
0.9 |
1:9 |
表2
表2中为了仅列出了三种置信度与占比之间的对应关系,在实际中,置信度与占比之间的对应关系不限于表2中列举的。
以一个具体的例子说明获取第二定位频率的过程:假设置信度为0.9,调整后的第一定位频率为△t1,那么根据表2中的对应关系,即可确定出第二定位频率为9△t1。
步骤205:根据最近一次辅助定位的定位结果,按照调整后的第一定位频率在当前时段所处场景内进行第N+1次定位。
具体的说,进行第N+1次视觉定位时,以最近一个辅助定位的定位结果为依据,即可以通过最近一次的辅助定位的定位结果确定第N+1次的视觉定位的区域,确保第N+1次视觉定位准确性,防止出现目标跟丢的情况。
下面以一个具体的例子说明按照调整后的第一频率进行视觉定位过程。
根据置信度,确定调整后的第一定位频率为△t1,第二定位频率为△h2,按照△t1的频率进行第1次视觉定位(采用vSLAM定位方式)的时刻表示为T1,第2次视觉定位的时刻表示为T2,那么在T1~T2的时段内,按照△h2的定位频率进行辅助定位(采用VIO/IMU的定位方式),如图4所示,在T1~T2的时间段内按照△h2频率,可进行3次VIO/IMU定位。vSLAM第1次视觉定位的定位结果A,VIO/IMU定位根据该定位结果A,以及VIO/IMU获取到的终端的加速度、方向信息,即可确定出VIO/IMU定位的第1次定位结果B,VIO/IMU定位的第2次和第3次定位此处不再赘述,而h3时刻是辅助定位最近一次定位的时刻,获取此次定位的定位结果D,即可确定出在T2时刻进行第二次视频定位的区域,便于进行第二次视觉定位。
与现有技术相比,本实施例提供的定位方法,在视觉定位的过程中增加辅助定位,进一步提高了视觉定位的准确性,避免发生视觉定位出现目标跟丢的情况。
本申请的第三实施例涉及一种定位装置50,包括:置信度获取模块501、频率调整模块502和定位模块503,具体的结构如图5所示。
置信度获取模块501用于获取终端在当前时段内所处场景的置信度,置信度用于表示终端在当前时段内所处场景与上一时段内所处场景的差异程度;频率调整模块502用于根据终端在当前时段内所处场景的置信度,调整第一定位频率,其中,置信度与第一定位频率成反比;定位模块503用于按照调整后的第一定位频率在当前时段所处场景内进行视觉定位。
本实施例是与上述定位方法对应的虚拟装置实施例,上述方法实施例中技术细节在本实施例中依然适用,此处不再赘述。
需要说明的是,以上所述的装置实施例仅仅是示意性的,并不对本申请的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的,此处不做限制。
本申请的第四实施例涉及一种终端,如图6所示,包括至少一个处理器601;以及,与至少一个处理器601通信连接的存储器602。其中,存储器602存储有可被至少一个处理器601执行的指令,指令被至少一个处理器601执行,以使至少一个处理器601能够执行上述定位方法。
第四实施例中,处理器以中央处理器(Central Processing Unit,CPU)为例,存储器以可读写存储器(Random Access Memory,RAM)为例。处理器、存储器可以通过总线或者其他方式连接,图6中以通过总线连接为例。存储器作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。处理器通过运行存储在存储器中的非易失性软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述定位方法。
存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储选项列表等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至外接设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
一个或者多个模块存储在存储器中,当被一个或者多个处理器执行时,执行上述任意方法实施例中的定位方法。
上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果,未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法。
本申请的第五实施例涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现以上任意方法实施例所描述的定位方法。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施例是实现本申请的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本申请的精神和范围。