一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

室内导航定位方法和相关装置与流程

2022-02-22 03:13:56 来源:中国专利 TAG:


1.本公开涉及导航定位的技术领域,具体涉及一种室内导航定位方法和相关装置。


背景技术:

2.随着时代的发展和人们生活水平的提高,越来越多的人会选择出门逛街购物、旅游或走亲访友等。对于出行路线的规划,通常会选用导航定位软件来进行位置的确定及路径的引导。
3.目前市场上,存在很多基于北斗或gps(global positioning system,全球定位系统)的导航定位软件,但都限于室外场景下使用。当我们进入某一建筑物后,由于建筑物内结构布局复杂且没有提供足够多的导航牌,因而快速找到建筑物内的具体位置(例如写字楼里的卫生间,商场里的某家商店或地下停车场的某个车辆停放位置)较为不易,此情况下为人们提供室内导航定位技术变得十分必要。
4.机器人领域存在一些基于slam(simultaneous localization and mapping,同步定位与地图构建)技术来辅助机器人完成室内导航定位的方案。这些方案应用到人们出行场景中能够构建室内地图,但由于室内地图是完全依赖采集到的图像构建,因而在采集环境下光线或摄像头采集视角不好时,室内地图的导航定位效果不佳。


技术实现要素:

5.为了解决上述技术问题,本公开提供了一种室内导航定位方法、系统和电子设备及计算机可读存储介质,能够辅助人们快速精准地到达目的地。
6.根据本公开第一方面,提供了一种室内导航定位方法,包括:
7.根据针对目标建筑物构建的室内地图向用户推送在所述目标建筑物内从起始地址到目的地址的导航路径;
8.在用户根据所述导航路径行进时,获取所述用户周围的属于所述目标建筑物内预设场景的场景图像并将所述场景图像输入识别模型,由所述识别模型输出所述场景图像的位置信息;
9.将识别模型输出的所述位置信息推送给所述用户,以便所述用户基于所述位置信息确定自己当前的位置是否在所述导航路径上。
10.可选地,所述识别模型包括孪生神经网络;
11.所述孪生神经网络同时输入所述场景图像和多个参照图像中的一个,且对应于一个所述参照图像输出一个特征向量,其中,一个所述参照图像为所述目标建筑物内一个预设场景被预先拍摄到的图像;
12.所述识别模型还用于基于所述特征向量计算欧式距离,并判断得到的多个欧式距离中的最大值是否大于预设值,若大于则将得到所述最大值的所述参照图像的位置信息确定为所述场景图像的位置信息。
13.可选地,所述孪生神经网络为已预先训练好的网络模型,其中,
14.训练所述孪生神经网络的样本集,包括:所述目标建筑物内预设场景的不同角度的图像;
15.训练所述孪生神经网络的过程中输入所述网络模型的成对图像,包括:所述目标建筑物内同一预设场景同一角度拍摄的两图像、所述目标建筑物内同一预设场景不同角度拍摄的两图像、或者所述目标建筑物内不同预设场景的两图像。
16.可选地,根据针对目标建筑物构建的室内地图向用户推送在所述目标建筑物内从起始地址到目的地址的导航路径,包括:
17.将所述目标建筑物内的一个预设场景视为一个点,构建点集合;
18.在所述点集合中确定从所述起始地址到所述目的地址的最短路径途径的多个节点,以得到所述导航路径;
19.将得到的所述导航路径推送给所述用户。
20.可选地,根据针对目标建筑物构建的室内地图向用户推送在所述目标建筑物内从起始地址到目的地址的导航路径,还包括:向所述用户推送所述多个节点中任两个相邻节点的间距。
21.可选地,所述室内地图为所述目标建筑物的室内结构布局图上嵌入标注信息后形成的,向所述用户推送的所述导航路径显示在所述室内地图上,其中,所述标注信息包括方位信息和/或结构类型信息。
22.可选地,所述目标建筑物的预设场景还贴有携带位置信息的二维码,所述方法还包括:
23.在所述用户根据所述导航路径行进时,获取所述用户周围二维码的图像;
24.从获取的二维码图像中解析二维码携带的位置信息;
25.将二维码图像中解析到的位置信息推送给所述用户,以便所述用户结合二维码图像中解析出的位置信息和所述识别模型输出的位置信息确定自己当前的位置是否在所述导航路径上。
26.根据本公开第二方面,提供了一种室内导航定位系统,包括:
27.服务器,用于执行第一方面任一种室内导航定位方法;
28.地图构建设备,和所述服务器通信连接,用于构建所述室内地图并将构建的所述室内地图发送给所述服务器;
29.移动终端,和所述服务器通信连接,用于向所述服务器发送所述起始地址和所述目的地址,采集所述用户周围的场景图像并将采集到的场景图像发送给所述服务器,以及,接收所述服务器推送的位置信息并将接收到的位置信息显示给所述用户。
30.可选地,所述地图构建设备用于执行下述步骤:
31.构建目标建筑物的室内结构布局图;
32.获取与所述室内结构布局图对应的标注信息,并将所述标注信息嵌入到所述室内结构布局图中,形成所述室内地图;
33.其中,所述标注信息包括方位信息和/或结构类型信息。
34.可选地,所述移动终端还用于采集所述用户周围二维码的图像并将采集到的二维码图像发送到所述服务器,以及,接收所述服务器推送的从二维码图像中解析出的位置信息。
35.根据本公开第三方面,提供了一种电子设备,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现第一方面任一种所述方法的步骤。
36.根据本公开第四方面,提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序或指令,所述计算机程序或指令被处理器执行时实现第一方面任一种所述方法的步骤。
37.本公开的有益效果:
38.本公开所述的室内导航定位方法在用户根据导航路径行进时,获取用户周围的场景图像并将获取的场景图像输入识别模型,以由识别模型输出场景图像的位置信息,接着将位置信息推送给用户,因而用户能够基于识别模型得到位置信息确定自己当前的位置是否在导航路径上,其中,若因室内地图不清楚等原因导致用户偏离了导航路径则能得到纠正,因而弥补了室内地图的不足,人们能够较快速且精准地到达目的地。
39.应当说明的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
40.图1示出根据本公开实施例提供的室内导航定位系统的示意图;
41.图2示出根据本公开实施例提供的一种室内导航定位方法的流程图;
42.图3示出根据本公开实施例提供的确定导航路径的方法流程图;
43.图4示出根据本公开实施例提供的另一种室内导航定位方法的流程图;
44.图5示出根据本公开实施例的一种二维码定位示意图;
45.图6示出根据本公开实施例提供的电子设备的结构示意图。
具体实施方式
46.为了便于理解本公开,下面将参照相关附图对本公开进行更全面的描述。附图中给出了本公开的较佳实施例。但是,本公开可以通过不同的形式来实现,并不限于本文所描述的实施例。相反的,提供这些实施例的目的是使对本公开的公开内容的理解更加透彻全面。
47.图1所示为本公开提供的一种室内导航定位系统。参照图1,该导航定位系统包括地图构建设备100、服务器200和移动终端300,服务器200分别和地图构建设备100以及移动终端300通信连接。
48.地图构建设备100用于构建建筑物的室内地图,并将构建的室内地图上传到服务器200。
49.示例性地,地图构建设备100为一个基于slam技术搭建的平台,该平台的基础框架采用nvidia推出的jetson tx2机器视觉开发板,这种开发板搭载256个nvidia的cuda加速核心,具有很强的图像处理和神经网络计算能力,能够较好地满足室内地图搭建中的数据处理需求;该平台还包括摄像头和传感器等子设备,其中,摄像头用于对目标建筑物内的场景进行图像采集,传感器用于对目标建筑物的室内结构布局进行扫描,然后开发板基于摄像头采集的图像和传感器扫描的数据完成室内地图的构建。
50.需要说明的是,地图构建设备100在使用中,移动在建筑物内,摄像头采集的是视频数据,开发板需要先采用opencv对摄像头采集的视频数据进行帧图像的转换处理,得到摄像头采集到的一帧帧图像。这里开发板基于摄像头采集的图像和传感器扫描的数据构建室内地图,可以采用现有slam的相关方案,本公开不作具体描述。
51.进一步,地图构建设备100采用的摄像头可以为双目摄像头,一方面实现轻松变焦,这样采集的图像即使放大依然较为清楚;另一方面实现测距,从而辅助传感器较好地完成室内结构布局的扫描。
52.移动终端300用于向服务器200发送起始地址和目的地址,以便服务器200根据室内地图确定用户从起始地址到目的地址的导航路径;移动终端300还用于采集用户行进中周围的场景图像并将采集到的场景图像发送给服务器200,以便服务器200确定场景图像的位置信息,即确定用户的当前位置。
53.示例性地,移动终端300为用户随身携带的手机,移动终端300内可以安装室内导航定位app(application,应用程序)来实现上述功能。具体地,该app供用户输入起始地址和目的地址,可以采用tcp、ip协议与服务器200进行通信和数据交互,从而能够获取服务器确定的导航路径和位置信息并向用户显示导航路径以及位置信息。该实施例方法中,室内导航定位app需要完成与服务器200通信端口的绑定、监听以及数据传输和解析等,可以通过socket编程方法实现。
54.服务器200用于确定上述导航路径和位置信息。本公开中,服务器200内设置有识别模型,场景图像输入识别模型后由识别模型输出场景图像的位置信息。
55.在一些实施例中,识别模型通过孪生神经网络(siamese网络)构建,从而利用孪生神经网络从多个参照图像中确定和场景图像相似的图像,进而将参照图像的位置信息确定为场景图像的位置信息。这里使用的孪生神经网络为预先训练好的网络模型。
56.示例性地,在针对目标建筑物进行室内导航定位的应用中,孪生神经网络的训练过程包括以下步骤:
57.a、构建训练样本集和测试样本集,训练样本集和测试样本集中的各个样本为目标建筑物的室内场景图像且关联有对应场景的类标签,这里的类标签表示对应场景是目标建筑物内的哪一具体位置,具有同一类标签的场景为目标建筑物内的同一位置。
58.b、将训练样本集中的样本成对输入当前孪生神经网络,以便当前孪生神经网络针对一对样本输出一个特征向量。
59.c、分别针对各成对输入样本对应的特征向量和输入数据,计算前向传播的对比损失函数,其中,前向传播的对比损失函数表达式如公式(1)所示。
[0060][0061]
这里,(a1,a2)表示成对输入的样本;w为网络的权重值;y为判别器,y值为1或0,如果a1,a2属于同一类别则y=0,否则y=1;m是大于0的边际价值(margin value);dw为孪生神经网络的欧式距离,其表达式如公式(2)所示。
[0062][0063]
这里,p为样本的特征维数。在针对特征向量计算前向传播的对比损失函数时,
为特征向量中对应第一样本输出的像素特征值,为特征向量中对应第一样本输出的像素特征值;在针对输入数据计算前向传播的对比损失函数时,为输入的第一样本的像素值,为输入数据中对应第一样本输出的像素特征值。
[0064]
d、将上述计算得到的两函数值的差确定为误差,在误差大于误差阈值的情况下对误差进行反向传播以确定权重更新梯度。
[0065]
e、基于确定的权重更新梯度调整当前孪生神经网络的权重,并将权重调整后的孪生神经网络确定为当前孪生神经网络,返回执行步骤b,直到步骤d中计算得到的误差不大于误差阈值,完成训练。
[0066]
f、将测试样本集中的各图像输入训练完的孪生神经网络,针对测试样本集中的各图像得出其与训练样本集中各图像的归一化后的相似度值(这里的相似度值可以通过欧式距离表示,欧式距离越小相似度越高),然后将得到的最大相似度值与预设值进行比较,若大于预设值则表明匹配成功,进而可以根据类标签信息获取匹配成功的训练样本的位置,即定位了测试样本的位置。若位置定位准确,则正确计数参数tp加1,否则失败计数参数fp加1,最终模型的预测精度precision通过公式(3)计算。
[0067][0068]
这里,模型的预测精度precision越高越好,在计算出模型的预测精度precision小于精度阈值的情况下需要调整孪生神经网络的超参数(例如层数),并返回执行步骤b,直到步骤f计算出的模型预测精度precision不小于精度阈值。
[0069]
图2所示为本公开提供的一种导航定位方法的流程图,该导航定位方法通过上述服务器200执行。参照图2,用户在目标建筑物内要从起始地址到达目的地址,该导航定位方法包括:
[0070]
步骤s210,根据针对目标建筑物构建的室内地图向用户使用的移动终端300推送目标建筑物内从起始地址到目的地址的导航路径;
[0071]
步骤s230,在用户根据导航路径行进时,获取用户周围的属于目标建筑物内预设场景的场景图像并将场景图像输入识别模型,由识别模型输出场景图像的位置信息;
[0072]
步骤s250,将识别模型输出的位置信息推送给用户使用的移动终端300,以便用户基于位置信息确定自己当前的位置是否在导航路径上,若用户发现在自己当前位置不在导航路径上则能及时纠正。
[0073]
本公开实施例中,识别模型为一种神经网络模型,神经网络模型经过机器学习后能够具有符合要求的图像匹配功能,从而能够将同一场景的不同图像(包括拍摄角度不同、拍摄设备的设置参数不同乃至清晰度稍有不同)匹配上,继而能将匹配到的图像的位置确定为场景图像的位置(即用户的当前位置)。用户在根据导航路径行进的过程中,若因室内地图不清楚等原因导致偏离了导航路径,则能得到识别模型所输出位置信息的提醒,即识别模型输出的位置信息弥补了室内地图的不足,便于人们准确地沿着导航路径行进,从而快速到达目的地。
[0074]
示例性地,识别模型基于以上所述服务器200上设置的孪生神经网络构建,而由孪生神经网络输出场景图像的位置信息,包括:孪生神经网络同时输入场景图像和多个参照
图像中的一个,且对应于一个参照图像输出一个特征向量,其中,一个参照图像为目标建筑物内一个预设场景被预先拍摄到的图像;识别模型还基于特征向量计算欧式距离,并判断得到的多个欧式距离中的最大值是否大于预设值,若大于则表示得到最大值的参照图像和场景图像为同一场景的两个图像,这样得到最大值的参照图像的位置信息即可确定为场景图像的位置信息。
[0075]
进一步地,训练孪生神经网络的样本集,包括:目标建筑物内预设场景的不同角度的图像;训练孪生神经网络的过程中输入网络模型的成对图像,包括:目标建筑物内同一预设场景同一角度拍摄的两图像、目标建筑物内同一预设场景不同角度拍摄的两图像、或目标建筑物内不同预设场景的两图像,从而训练好的孪生神经网络不仅能识别出不同场景的图像,还能将同一场景的同一角度的不同清晰度的图像进行匹配,乃至将同一场景不同角度拍摄的图像进行匹配。
[0076]
具体地,上述预设场景可以选用目标建筑物内自身有明显特征或有明显标记的场景,例如电梯处、道路交叉处、卫生间、房间门牌处,这样利于孪生神经网络较准确地进行图像匹配,继而给出较准确的位置信息,从而提高导航定位的准确性,辅助用户快速到达目的地址。
[0077]
在一个可选的实施例中,参照图3,步骤s210,根据针对目标建筑物构建的室内地图向用户推送在目标建筑物内从起始地址到目的地址的导航路径,包括:
[0078]
步骤s211,将目标建筑物内各预设场景视为一个点,构建点集合m;
[0079]
步骤s212,利用迪杰斯特拉(dijkstra)算法,在点集合m中确定从起始地址到目的地址的最短路径途径的多个节点s,以得到导航路径;
[0080]
步骤s213,将得到的导航路径推送给用户。
[0081]
需要说明的是,dijkstra算法是从一个点到其余各点的最短路径算法,解决的是有权图中最短路径问题。dijkstra算法主要特点是从起始点开始,采用贪心算法的策略,每次遍历到与起始点距离最近且未访问过的点的邻接点,直到扩展到终点为止,因而,dijkstra算法能够从点集合m中确定从起始地址到目的地址的最短路径途径的多节点s,具体可以参照dijkstra算法的相关原理,这里不再进行赘述。
[0082]
本实施例中,服务器200能够使确定的导航路径为从起始地址到目的地址的最短可行路径。
[0083]
进一步,还可以向用户推送多个节点s中任两个相邻节点的间距,以便用户结合相邻节点的间距从当前节点来找到下一个节点,这样有利于用户避免偏离导航路径,从而促使用户快速到达目的地址。
[0084]
进一步,室内地图为目标建筑物的室内结构布局图上嵌入标注信息后形成的,向用户推送的导航路径显示在室内地图上。需要强调的是,上述地图构建设备100基于摄像头采集的图像和传感器扫描的数据并采用slam技术构建室内地图的过程中只能构建这里的室内结构布局图,构建成的室内结构布局图需要人为添加标注信息后方可形成室内地图,即地图构建设备100需要在得到室内结构布局图后获取与室内结构布局图对应的标注信息,并将标注信息嵌入到室内结构布局图中而形成所述室内地图。其中,标注信息包括方位信息(例如东、西、南、北)和/或结构类型信息(例如电梯、卫生间)。这里室内地图携带有标注信息,因而用户能够在室内地图上较清楚地理解导航路径,从而有利于用户减少偏离导
航路径的概率。
[0085]
在一个可选的实施例中,参照图4,目标建筑物的预设场景还贴有携带位置信息的二维码,上述导航定位方法还包括:
[0086]
步骤s240,在用户根据导航路径行进时,获取用户周围二维码的图像,并从获取的二维码图像中解析二维码携带的位置信息;
[0087]
步骤s260,将二维码图像中解析到的位置信息推送给用户使用的移动终端300,以便用户结合二维码图像中解析出的位置信息和识别模型输出的位置信息确定自己当前的位置是否在导航路径上。
[0088]
应当理解的是,在该实施例中,移动终端300还用于在用户根据导航路径行进过程中采集用户周围二维码的图像并将采集到的二维码图像发送到服务器200,以及,接收服务器推送的从二维码图像中解析出的位置信息。
[0089]
具体地,服务器200可以基于opencv执行上述从获取的二维码图像中解析二维码携带的位置信息。opencv是intel开源计算机视觉库,由一系列c函数和少量c 类构成,实现了图像处理和计算机视觉方面的很多通用算法,能够为二维码图像的解析提供全面的算法支持。
[0090]
上述从获取的二维码图像中解析二维码携带的位置信息,可以先对获取的整个二维码图像进行图像预处理,包括灰度化、二值化、开闭操作等,以减少外界的噪声干扰和增大后续定位识别的成功率;然后对预处理后的整个二维码图像进行轮廓(即呈正方形的二维码的边)检测以定位和提取二维码,其中,参照图5,轮廓检测例如为检测四个轮廓各自的中心点q1、q2、q3和q4是否组成正方形,若是则鉴于二维码呈正方形且粘贴的二维码很少遭受中心部分掏空式的损坏,因而一般可确定该二维码无残缺,至少确定该二维码能被解析出其中的位置信息,接着通过四个轮廓定位二维码并提取二维码;最后,对从轮廓内提取出的二维码在python下调用开源的zbar库进行识别,进而可以获取到用户的位置信息来辅助定位工作。
[0091]
上述轮廓检测中涉及到计算轮廓上两点之间直线距离,具体可以采用公式(4)计算。
[0092][0093]
这里,x1和y1分别表示轮廓a中心点的横坐标和纵坐标,x2和y2分别表示轮廓b中心点的横坐标和纵坐标。参照图5,轮廓a和轮廓b示例为点qi所在轮廓(即图中以粗点线表示的点qi所在的二维码的一条边)和点qj所在轮廓(即图中以粗点线表示的点qj所在的二维码的一条边),其中,i=1,2,3,4,j=1,2,3,4,且i≠j。需要说明的是,上述轮廓即二维码的边。若更具体地以i=1和j=2进行说明,轮廓a为线段p1p4,轮廓b为线段p1p2,其中,二维码的四条边分别为线段p1p2、线段p2p3、线段p3p4、线段p4p1。
[0094]
进一步,目标建筑物内预设场景贴设的二维码还可以携带有关目标建筑物的除位置信息以外的额外信息,例如建筑物内设施调整信息、商家的商品信息等。相应地,服务器200还会将这些额外信息解析出来后同位置信息一起推送给用户使用的移动终端,这样会给进入目标建筑物的用户提供关于目标建筑物的更多信息,从而对用户提供更大便利。例如,若用户通过这些额外信息得知自己要买的商品已下架,则可以节省无效寻找时间。
[0095]
上述提供的导航定位方法,通过slam准确地对复杂的室内场景建立起室内结构布局图;通过识别模型输出的位置信息乃至二维码图像解析出的位置信息对用户进行准确定位,并通过定位提醒用户的当前位置是否在导航路径上;进一步,还会将推送给用户的导航路径显示在嵌入了标注信息的室内地图上,来降低用户偏离导航路径的概率。因而,上述导航定位方法有效提升了定位精度和导航性能。
[0096]
本公开实施例还提供了一种电子设备1300,如图6所示,包括存储器1310和处理器1320及存储在存储器1310上并可在处理器1320上运行的程序,该程序被处理器1320执行时可实现上述导航定位方法中各实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。当然,该电子设备还可以包括电源组件1330、网络接口1340和输入输出接口1350等辅助子设备。
[0097]
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读的可读存储介质中,并由处理器进行加载和执行。为此,本公开实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序或指令,该计算机程序或指令被处理器执行时可实现上述导航定位方法中各实施例的各个过程。其中,计算机可读存储介质,如u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0098]
由于该可读存储介质中所存储的指令,可以执行本公开实施例所提供的任一种导航定位方法中的步骤,因此,可以实现本公开实施例所提供的任一种导航定位方法所能实现的有益效果,详见前面的实施例,在此不再赘述。以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
[0099]
需要说明的是,本说明书中在对各个实施例进行描述时,均重点说明的是与其他实施例的不同之处,而对于各个实施例之间相同或相似的部分可互相参考进行理解。对于系统实施例而言,由于其与方法实施例基本相似,因此相关之处可参考对方法实施例部分的说明。
[0100]
此外,需要指出的是,在本公开的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行,某些步骤可以并行或彼此独立地执行。对本领域的普通技术人员而言,能够理解本公开的方法和装置的全部或者任何步骤或者部件,可以在任何计算装置(包括处理器、存储介质等)或者计算装置的网络中,以硬件、固件、软件或者它们的组合加以实现,这是本领域普通技术人员在阅读了本公开的说明的情况下运用他们的基本编程技能就能实现的。
[0101]
最后应说明的是:显然,上述实施例仅仅是为清楚地说明本公开所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引申出的显而易见的变化或变动仍处于本公开的保护范围之中。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献