点云地图更新的方法及设备
文献发布时间:2024-04-18 19:58:21
技术领域
本申请涉及定位及图像处理领域,尤其涉及一种点云地图更新的方法及设备。
背景技术
视觉定位系统(visual positioning system,VPS)是基于终端设备采集的图像,对终端设备进行定位的技术。例如,终端设备采集周围环境获得第一图像,通过将第一图像与数据库中的预存的图像匹配,得到数据库中与第一图像匹配度最高的第二图像,根据第二图像的拍摄位置确定当前终端设备所在位置。
可以看出,VPS定位技术是以环境图像作为匹配粒度进行定位的,并且随着图像拍摄的时间、频次、角度等的调整,图像可以实现及时准确地反映现实世界环境的变化。而该及时准确的环境变化数据正是用于地图更新的关键数据。因此,如何将VPS定位技术应用于地图更新,提高地图更新的准确性和时效性,成为值得关注的问题。
发明内容
本申请实施例提供了一种点云地图更新的方法及设备,通过借助时间维度和新旧环境图像之间的特征匹配关系及不同类型图像的数量信息,解决点云地图更新效率低的问题。
第一方面,提供了一种点云地图更新的方法,应用于云端,所述方法包括:
获取终端设备发送的图像信息,所述图像信息包括第一区域的图像和所述第一区域的图像对应的位置信息;
根据所述第一区域的图像对应的位置信息,通过视觉定位系统VPS获取所述图像的定位结果,其中,定位结果准确的图像为正常定位图像,定位结果不准确的图像为异常定位图像;
根据异常定位图像的数量获取是否需要更新所述第一区域对应的点云地图;
当需要更新所述第一区域对应的点云地图时,获取所述第一区域对应的场景图,所述场景图的节点为具有特征匹配关系的所述正常定位图像和所述异常定位图像,所述场景图的边为所述节点对应的图像之间匹配的特征数目;
根据所述场景图中所述正常定位图像的数量和所述异常定位图像的数量,更新所述第一区域对应的点云地图。
根据本实现方式提供的点云地图更新的方法,通过云端与终端设备的交互获取已建图区域的图像,并基于VPS定位技术判断对点云地图更新的必要性,能够实现无需过度耗费人力,不仅极大地节约了地图更新的成本,还更加智能化地提升了点云地图更新时机的准确性,保证了点云地图鲜度。此外,本方法在更新之前基于构建的场景图判断新旧部分的点云地图的融合性,能够保证更新部分更好地融合到原有的离线三维模型中,获取融合效果更好的点云地图。
结合第一方面,在第一方面的某些实现方式中,所述方法还包括:
存储离线三维模型,所述离线三维模型对应的区域为已建图区域;其中,
所述离线三维模型包括第一部分和其他部分,所述第一部分为未更新的所述第一区域对应的点云地图,所述其他部分为所述已建图区域中剩余其他区域对应的点云地图。
在一种实现方式中,剩余其他区域是指已建图区域中除第一GPS区域之外的区域,例如可以对应下文图2中箭头所指的GPS区域之外的其它区域。
在一种实现方式中,云端将已建图区域划分为多个小块的GPS区域,这些GPS区域包括第一GPS区域。其中,云端可以将这些小块的GPS区域作为点云地图更新的处理单元,避免一次性处理规模较大的点云地图更新数据,提高数据处理的灵活性和稳定性。
结合第一方面,在第一方面的某些实现方式中,所述图像信息还包括所述其他区域的图像和所述其他区域的图像对应的位置信息,所述方法还包括:
根据所述图像信息中的位置信息和所述第一区域的位置,进行图像分类,获取属于所述第一区域的图像。
结合第一方面,在第一方面的某些实现方式中,所述根据异常定位图像的数量获取是否需要更新所述第一区域对应的点云地图,具体包括:
若所述异常定位图像的数量等于或大于第一阈值,则确定需要更新所述第一区域对应的点云地图。
结合第一方面,在第一方面的某些实现方式中,所述根据异常定位图像的数量获取是否需要更新所述第一区域对应的点云地图,具体包括:
若所述异常定位图像的数量等于或大于第一阈值,且在某个异常时间之后,所述异常定位图像的占比等于或大于第二阈值,则确定需要更新所述第一区域对应的点云地图。
结合第一方面,在第一方面的某些实现方式中,所述根据异常定位图像的数量获取是否需要更新所述第一区域对应的点云地图,具体包括:
若所述异常定位图像的数量等于或大于第一阈值;以及,
在某个异常时间之后,所述异常定位图像的占比等于或大于第二阈值;以及,
所述正常定位图像和所述异常定位图像在语义分割后的语义类别差距大于预设差距,则确定需要更新所述第一区域对应的点云地图。
结合第一方面,在第一方面的某些实现方式中,所述当需要更新所述第一区域对应的点云地图时,获取所述第一区域对应的场景图,具体包括:
对所述第一区域在异常时间之前的所述正常定位图像和所述异常时间之后的异常定位图像进行共视判断;
将共视判断后与其他图像具有共同特征的图像作为所述节点,将两两图像之间匹配的特征数目作为所述两两图像对应节点之间的边,获取所述场景图。
结合第一方面,在第一方面的某些实现方式中,所述根据所述场景图中所述正常定位图像的数量和所述异常定位图像的数量,对所述第一区域对应的点云地图进行更新,具体包括:
当所述场景图包括的所述正常定位图像的数量等于或大于第三阈值,以及所述场景图包括的异常定位图像的数量等于或大于第四阈值时,统计所述场景图包括的所述正常定位图像的占比是否等于或大于第五阈值;若所述场景图包括的所述正常定位图像的占比是否等于或大于第五阈值,则对所述第一区域对应的点云地图进行更新。
结合第一方面,在第一方面的某些实现方式中,所述更新所述第一区域对应的点云地图,具体包括:
对所述第一区域对应的所述正常定位图像和所述异常定位图像均包括的同一位置作为特征点;
对所述特征点进行三角化处理,获取与所述特征点对应的三维点云信息;
在所述离线三维模型中,基于所述三维点云信息更新所述第一区域对应的点云地图。
结合第一方面,在第一方面的某些实现方式中,所述图像信息还包括时间信息;
所述根据所述图像信息中的位置信息和所述第一区域的位置,进行图像分类,获取属于所述第一区域的图像,还包括:
所述根据所述图像信息中时间信息,进行图像分类,获取属于所述第一区域的且在同一时间段内的图像。
第二方面,提供了一种设备,包括:
一个或多个处理器;
一个或多个存储器;
所述一个或多个存储器存储有一个或多个计算机程序,所述一个或多个计算机程序包括指令,当所述指令被所述一个或多个处理器执行时,使得所述设备执行如上述第一方面中任一项所述的方法。
第三方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行程序指令,所述计算机可执行程序指令在被计算机上运行时,使所述计算机执行如上述第一方面中任一项所述的方法。
第四方面,提供了一种计算机程序产品,所述计算机程序产品包括计算机程序代码,当所述计算机程序代码在计算机上运行时,使所述计算机执行如上述第一方面中任一实现方式所述的方法。
附图说明
图1A和图1B所示,为本申请实施例分别提供的一种区域实景示意图和三维点云模型的示意图。
图2为本申请实施例提供的一种对已建图区域划分GPS区域的示意图。
图3为本申请实施例提供的一种点云地图更新的方法适用的系统架构的示意图。
图4为本申请实施例提供的一种终端设备100的结构示意图。
图5为本申请实施例提供的一种终端设备100的软件结构框图。
图6为本申请实施例提供的一种云端200的结构示意图。
图7为本申请实施例提供的一种第一GPS区域对应的位置示意图。
图8A至图8D为本申请实施例提供的一些地图更新的方法在实现过程可能涉及到的场景示意图。
图9为本申请实施例提供的一种点云地图更新的方法的示意性流程图。
图10为本申请实施例提供的一种场景图对应的模型示意图。
图11为本申请实施例提供的一种点云地图更新的方法的示意性流程图。
具体实施方式
需要说明的是,本申请实施例的实施方式部分使用的术语仅用于对本申请的具体实施例进行解释,而非旨在限定本申请。在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联障碍物的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,在本申请实施例的描述中,除非另有说明,“多个”是指两个或多于两个,“至少一个”、“一个或多个”是指一个、两个或两个以上。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”特征可以明示或者隐含地包括一个或者更多个该特征。
在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其它一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其它方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其它方式另外特别强调。
众所周知,随着时间的发展,我们生活的环境会不断发生变化。小到某建筑物上增加广告牌、马路旁增设路标;大到新建某个地标性建筑、道路的重新规划等。我们生活的真实世界的环境几乎每时每刻都在发生变化。
在很多情况下,地图已经成为辅助人们出行的重要工具,地图的准确性影响着人们出行的效率。如果在真实环境已经发生了变化,但地图却没有更新,就会严重影响用户体验。目前,点云地图(或称三维(3dimensions,3D)点云地图)产品的更新方式一般是当真实环境发生变化后,由人工现场进行地图检查,也就是需要安排专业人员重新采集环境信息,之后再对点云地图进行更新。然而,这种点云地图的更新方式不仅消耗人力,还会严重影响更新效率。
有鉴于此,本申请实施例提供了一种点云地图更新的方法及设备。该方法通过对终端设备上报的已建图区域的图像进行VPS定位,通过query图像与已建立的离线三维模型(也即点云地图对应模型)对应位置的图像进行特征匹配,获取其中定位准确的图像(下称正常定位图像)和定位不准确的图像(下称异常定位图像)。之后根据预设的第一条件判断是否需要对点云地图进行更新。若需要进行点云地图更新,则在更新过程中利用共视判断构建场景图,然后根据预设的第二条件判断更新部分可否较好地融入原有的离线三维模型。
与现有的人工现场检查地图不同,在本申请实施例提供的点云地图更新的方法中,一方面的改进包括:云端通过第一条件自主判断点云地图是否需要更新;另一方面的改进包括:通过对环境变化前后图像进行共视判断,构建场景图,之后通过第二条件判断更新部分与原有点云地图的融入效果。其中,第一条件可能与异常定位图像的数量,异常定位图像的占比随时间的变化,以及异常定位图像和正常定位图像的语义类别差距关联;第二条件可能与场景图中正常定位图像的数量,异常定位图像的数量以及正常定位图像的占比关联。关于第一条件和第二条件的具体内容将分别在下文实施例中进行介绍,此处暂不详述。
根据本申请实施例提供的点云地图更新的方法,通过云端与终端设备的交互获取已建图区域的图像,并基于VPS定位技术获取的异常定位图像的数量信息,判断对点云地图更新的必要性,能够实现无需过度耗费人力,不仅极大地节约了地图更新的成本,还更加智能化地提升了更新地图的时机的准确性,保持了地图鲜度。此外,本方法在最终更新点云地图之前,基于构建的场景图对点云地图更新融合性进行判断,能够保证更新部分更好地融合到原有的离线三维模型中,获取融合效果更好的点云地图。
需要说明的是,本申请实施例提供的点云地图更新的方法可以适用于多种场景。示例性的,例如对任意点云地图进行更新的场景,或者基于3D模型构建的高精地图进行更新的场景等。也可以应用于虚拟现实(virtual reality,VR)/增强现实(augmentedreality,AR)场景下的点云地图更新,或者对智能交通(如无人驾驶)、智能导航中涉及的点云地图进行更新。本申请实施例对本申请提供的点云地图更新的方法应用的场景不作任何限定。
为了更好地理解本申请实施例提供的点云地图更新的方法,以下首先对本文可能出现的一些技术术语或者定义进行介绍。
1.已建图区域
在本申请实施例中,对于某些区域,可以预先根据这些区域的形貌、布局等进行建模,构建该区域对应的三维模型,并将该三维模型存储至云端,本申请将已建有三维模型的区域定义为已建图区域。其中,这里的三维模型具体可以是离线三维模型,可对应于本申请中待更新的点云地图。
2.视觉定位系统VPS
VPS是指通过机器视觉来完成定位任务的系统。例如,在进行实景导航的过程中,将实时采集的图像与云端存储的地图进行匹配,以得到精确的定位。在本申请实施例中,用户可以通过具有VPS功能的终端设备采集图像,并将图像上传至云端。针对云端获取的这些图像(下称待匹配(query)图像),云端可以基于query图像的位置信息在离线三维模型中检索与其对应的图像信息,之后对query图像和被检索到的图像进行特征匹配,获取该query图像的定位结果。
3.异常定位图像、正常定位图像
在本申请实施例中,云端基于VPS技术对query图像进行特征匹配之后,可以获取两种类型的图像,一种是定位结果准确的图像,本申请将其定义为正常定位图像;另一种是定位结果不准确的图像,本申请将其定义为异常定位图像。
其中,定位结果准确可以指,query图像与离线三维模型中对应图像的图像匹配度等于或大于某个预设的第一数值(如75%、80%等);或者,query图像与离线三维模型中对应图像的特征匹配数目较多,例如特征匹配数目等于或大于预设的第二数值。结果不准确可以指,query图像与离线三维模型中对应图像的图像匹配度小于预设的第一数值(如75%、80%等);或者,query图像与离线三维模型中对应图像的特征匹配数目较少,例如特征匹配数目小于预设的第二数值。
可以理解的,正常定位图像可以表示其对应的真实环境与对该区域建模时的一致。假如云端获取的query图像全部与离线三维模型中分别对应的图像实现正常的图像匹配,也即query图像均为正常定位图像,这说明真实环境没有发生变化,此时也就无需对该区域的点云地图进行更新。异常定位图像可以表示其对应的真实环境与对该区域建模时的不一致,说明该区域的真实环境发生变化,此时可能需要对该区域的点云地图进行更新。
4.全球定位系统(global positioning system,GPS)区域/网格区域
GPS区域(或称网格区域)是指为了避免一次性处理规模较大的点云地图更新数据,而将面积较大的已建图区域划分为多个小块区域。云端可以将这些小块的GPS区域作为处理单元,减少一次性处理的数据量。通常情况下,可以根据GPS信息对已建图区域进行划分,故在本申请中将这些小块区域定义为GPS区域(或网格区域)。
以下结合附图,以某一已建图区域为例,对本申请实施例提供的点云地图更新的方法的实现过程进行场景化介绍。
示例性的,如图1A和图1B所示,分别为本申请实施例提供的一种区域实景示意图和对应的三维模型的示意图。
在一些实施例中,云端可以预先获取已建图区域对应的三维模型。云端获取该三维模型的方式不限,比如云端可以自己对已建图区域建模,或者云端也可以从第三方获取该三维模型。其中,这里的三维模型可以采用现有的方式获取,比如通过激光雷达采集环境中的三维点云数据,基于这些三维点云数据生成三维模型,本申请实施例对此不作限定。
在一些实施例中,云端可以将三维模型存储至数据库,获取离线三维模型。
示例性的,如图2所示,为本申请实施例提供的一种对已建图区域划分GPS区域的示意图。
在一些实施例中,云端可以基于已建图区域的GPS信息,将其划分为多个网格区域。例如,在已建图区域的GPS地图中,根据GPS位置将其划分为多个GPS区域。云端可以存储各个GPS区域的位置信息,如GPS区域对应的GPS范围值、顶点位置、尺寸大小等等。
示例性的,如图3所示,为本申请实施例提供的一种点云地图更新的方法适用的系统架构的示意图。该系统架构包括至少一个终端设备100和云端200。
作为示例,图3以终端设备100是手机为例进行介绍。但在实际应用中,终端设备100可以是具有VPS功能及通信功能的多种类型的电子设备。例如,平板电脑、可穿戴设备、数码相机、上网本、个人数字助理(personal digital assistant,PDA)等。本申请实施例对终端设备100的类型不做任何限制。
在一些实施例中,终端设备100可以用于采集已建图区域中的图像。此外,终端设备100还可以获取位置信息,如通过GPS获取位置坐标。可选地,终端设备100还可以获取所采集的图像对应的时间信息,如终端设备100可以在图像信息中添加时间戳。示例性的,图像对应的时间信息例如可以是终端设备100采集图像时的系统时间,或者是终端设备100自带的计时器时间,再或者是终端设备100从第三方设备获取的时间等等,本申请实施例对此不作限定。
在一些实施例中,终端设备100可以通过无线通信链路与云端200实现信息交互,如将图像信息上传至云端。其中,该图像信息可以包括终端设备100通过VPS功能采集的图像(即query图像)、图像对应的时间信息以及图像对应的位置信息等。终端设备100与云端200之间的无线通信链路对应的网络类型可以是基于现有通信技术标准的无线网络,如长期演进(long term evolution,LTE)无线网络、车联网(vehical to everything,V2X)、第五代移动通信技术(the 5th generation,5G),以及未来有可能出现的其他类型无线网络,如第六代移动通信技术(the 6th generation,6G)等等。
在一些实施例中,云端200可以是一个服务器或者包括多个服务器的服务器集群。云端200具有多种能力,如无线通信能力、存储能力以及基于VPS的计算能力等等。举例来说,云端200可以用于存储终端设备上传的query图像,并对图像和离线三维模型进行特征匹配,然后基于匹配结果执行判断点云地图是否需要更新的操作,以及执行对点云地图的更新流程等。此外,云端200还可以对接收到的query图像进行分类。例如,根据位置信息对图像进行分类,将同一GPS区域中的图像被划分为同一类;再例如,根据时间信息对图像进行分类,如将同一GPS区域中的图像按照季节分类。
示例性的,如图4所示,为本申请实施例提供的一种终端设备100的示意性结构图。
终端设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本发明实施例示意的结构并不构成对终端设备100的具体限定。在本申请另一些实施例中,终端设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是终端设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
I2C接口是一种双向同步串行总线,包括一根串行数据线(serial data line,SDA)和一根串行时钟线(derail clock line,SCL)。在一些实施例中,处理器110可以包含多组I2C总线。处理器110可以通过不同的I2C总线接口分别耦合触摸传感器180K,充电器,闪光灯,摄像头193等。例如:处理器110可以通过I2C接口耦合触摸传感器180K,使处理器110与触摸传感器180K通过I2C总线接口通信,实现终端设备100的触摸功能。
I2S接口可以用于音频通信。在一些实施例中,处理器110可以包含多组I2S总线。处理器110可以通过I2S总线与音频模块170耦合,实现处理器110与音频模块170之间的通信。在一些实施例中,音频模块170可以通过I2S接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。
PCM接口也可以用于音频通信,将模拟信号抽样,量化和编码。在一些实施例中,音频模块170与无线通信模块160可以通过PCM总线接口耦合。在一些实施例中,音频模块170也可以通过PCM接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。所述I2S接口和所述PCM接口都可以用于音频通信。
UART接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。在一些实施例中,UART接口通常被用于连接处理器110与无线通信模块160。例如:处理器110通过UART接口与无线通信模块160中的蓝牙模块通信,实现蓝牙功能。在一些实施例中,音频模块170可以通过UART接口向无线通信模块160传递音频信号,实现通过蓝牙耳机播放音乐的功能。
MIPI接口可以被用于连接处理器110与显示屏194,摄像头193等外围器件。MIPI接口包括摄像头串行接口(camera serial interface,CSI),显示屏串行接口(displayserial interface,DSI)等。在一些实施例中,处理器110和摄像头193通过CSI接口通信,实现终端设备100的拍摄功能。处理器110和显示屏194通过DSI接口通信,实现终端设备100的显示功能。
GPIO接口可以通过软件配置。GPIO接口可以被配置为控制信号,也可被配置为数据信号。在一些实施例中,GPIO接口可以用于连接处理器110与摄像头193,显示屏194,无线通信模块160,音频模块170,传感器模块180等。GPIO接口还可以被配置为I2C接口,I2S接口,UART接口,MIPI接口等。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为终端设备100充电,也可以用于终端设备100与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他终端,例如AR设备等。
可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对终端设备100的结构限定。在本申请另一些实施例中,终端设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过终端设备100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为终端供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
终端设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。终端设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在终端设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
无线通信模块160可以提供应用在终端设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,终端设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得终端设备100可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(codedivision multiple access,CDMA),宽带码分多址(wideband code division multipleaccess,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(global navigation satellite system,GLONASS),北斗卫星导航系统(beidounavigation satellite system,BDS),准天顶卫星系统(quasi-zenith satellitesystem,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
终端设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。显示屏194用于显示图像,视频等。
终端设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当终端设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。视频编解码器用于对数字视频压缩或解压缩。NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展终端设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。
终端设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。陀螺仪传感器180B可以用于确定终端设备100的运动姿态。磁传感器180D包括霍尔传感器。终端设备100可以利用磁传感器180D检测翻盖皮套的开合。加速度传感器180E可检测终端设备100在各个方向上(一般为三轴)加速度的大小。当终端设备100静止时可检测出重力的大小及方向。还可以用于识别终端姿态,应用于横竖屏切换,计步器等应用。接近光传感器180G可以包括例如发光二极管(LED)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。终端设备100通过发光二极管向外发射红外光。环境光传感器180L用于感知环境光亮度。终端设备100可以根据感知的环境光亮度自适应调节显示屏194亮度。指纹传感器180H用于采集指纹。温度传感器180J用于检测温度。触摸传感器180K,也称“触控面板”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。骨传导传感器180M可以获取振动信号。
此外,终端设备100还包括气压传感器180C和距离传感器180F。其中,气压传感器180C用于测量气压。在一些实施例中,终端设备100通过气压传感器180C测得的气压值计算海拔高度,辅助定位和导航。
距离传感器180F,用于测量距离。终端设备100可以通过红外或激光测量距离。在一些实施例中,拍摄场景,终端设备100可以利用距离传感器180F测距以实现快速对焦。
示例性的,终端设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的Android系统为例,示例性说明终端设备100的软件结构。图5是本申请实施例的终端设备100的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime),系统库,内核层,硬件抽象层(hardwareabstraction layer,HAL)以及硬件层。
应用程序层可以包括一系列应用程序包。如图5所示,应用程序包可以包括相机,日历,地图,WLAN,音乐,短信息,图库,通话,导航,蓝牙,视频等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。如图5所示,应用程序框架层可以包括窗口管理器,内容提供器,电话管理器,资源管理器,通知管理器,视图系统等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供终端设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,终端振动,指示灯闪烁等。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行障碍物生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像传感器驱动,音频驱动,传感器驱动。
示例性的,如图6所示,为本申请实施例提供的一种云端200的结构示意图。
在一些实施例中,该云端200可以包括获取模块、数据库模块、分类模块、共视判断模块、地图更新模块以及条件判断模块。其中,条件判断模块还可以包括数量统计子模块、时间统计子模块。可选地,该条件判断模块还可以包括语义判断子模块。
在一些实施例中,获取模块可以对应于云端200的无线通信模块,可以用于与终端设备100进行无线通信。具体地,获取模块可以通过云端200与终端设备100之间的通信链路接收终端设备100上传的图像,以及图像对应的时间信息、位置信息等。
在一些实施例中,数据库模块可以用于存储云端获取的已建图区域的离线三维模型。此外,数据库模块还可以用于存储终端设备100在一定历史时长内上传的图像,比如可以存储一个统计周期的图像信息,如一周、一个月、一个季度等。可选地,数据库模块可以位于云端200本地(例如云端200的本地的内存空间),也可以是云端200的外部存储空间,本申请实施例对此不作限定。
可选地,云端200可以对数据库中的无效图像信息进行清理。这里的无效图像信息可以包括点云地图更新之后,之前统计周期内收到的图像信息,也即不再用于地图更新流程的陈旧图像信息。具体地,云端清除陈旧图像信息的操作可以由图像清理模块(图中未示出)执行。
在一些实施例中,分类模块可以用于将获取到query图像按照位置信息进行分类,或者按照位置信息和时间信息进行分类。以按照位置信息对query图像进行分类为例,如图7所示,本申请实施例提供的第一GPS区域对应的位置示意图。结合图示,可以获知该第一GPS区域是以(X
在一些实施例中,针对已建图区域划分得到的GPS区域可以是任意形状,比如矩形(如图2或图7所示)或者圆形等。为了便于理解,请参见表1,本申请实施例以GPS区域的形状是矩形为例,提供了一种按照位置信息对query图像进行划分的分类结果示例。
表1
需要说明的是,上述表1所示的分类结果仅为示例。在实际应用中,该分类结果还可以包括其他更多的信息项,比如图像对应的时间信息、图像所对应的季节(可参见下表2)等,本申请实施例对此不作限定。
在一些实施例中,条件判断模块可以基于云端200获取的query图像判断对应的GPS区域是否满足更新点云地图的第一条件,也即首先判断该GPS区域是否需要更新点云地图。若需要更新点云地图,则可以对该GPS区域执行后续的点云地图更新流程。示例性的,条件判断模块可以具体包括数量统计子模块、时间统计子模块和语义判断子模块。其中,数量统计子模块可以用于统计异常定位图像的数量,或者可以用于统计异常定位图像的数量和正常定位图像的数量。时间统计子模块可以用于统计异常定位图像的占比随时间的变化情况。语义判断子模块可以用于对同一GPS区域内的正常定位图像和异常定位图像进行语义分割,并统计显著语义类别,判断两种类型图像的语义类别的差距。
在一些实施例中,可以根据数量统计子模块和时间统计子模块的输出结果判断是否更新点云地图;或者,根据数量统计子模块、时间统计子模块以及语义判断子模块的输出结果判断是否更新点云地图。
在一些实施例中,共视判断模块可以用于对GPS区域所有的query图像(包括正常定位图像和异常定位图像)进行特征匹配,构建场景图(scene graph)。此外,共视判断模块还可以用于判断场景图的连通性以及正常定位图像的数量,以保证需要更新的地图部分能够更好地融合到原点云地图中。其中,具体的处理过程及相关原理将在下文实施例中进行说明,此处暂不详述。
需要说明的是,图6所示的云端200的结构仅为示例。在实际应用中,云端200还可以包括其他更多或更少的模块,或者云端200包括的模块还可以用于执行其他更多的功能,本申请实施例对此不作限定。
以下结合附图,对本申请提供的点云地图更新的方法可能涉及的实现场景进行介绍。示例性的,如图8A至图8D所示,为本申请实施例提供的地图更新的方法在实现过程可能涉及到的一些场景示意图。
首先请参见图8A,为第一GPS区域示意图。在一些场景中,当用户进入该第一GPS区域后,终端设备(下文以手机为例)可以开启VPS定位功能。示例性的,VPS定位功能开启的方式可以有多种,比如:方式1,用户在进入该GPS区域之后,可以手动开启手机自带的VPS定位功能;方式2,在获得用户授权手机使用VPS功能的基础上,当检测到用户进入第一GPS区域时(如基于手机的GPS位置),手机可以自动开启VPS定位功能。
在一些实施例中,VPS定位功能可以是手机出厂自带的功能,也可以是通过第三方应用程序(application,App)实现的功能。一个手机可以从不同角度拍摄同一GPS区域的多张图像,如图8A所示,手机可以从不同角度拍摄的同一建筑物,如图示的第一角度、第二角度和第三角度。不同角度的图像可以呈现该建筑物上不同部分的特征。比如,第一角度对应的图像可以如图8B所示;第二角度对应的图像可以如图8C所示;第三角度对应的图像可以如图8D所示。
之后,手机将拍摄的图像上传至云端,随图像一起上传的还包括图像对应的位置信息和时间信息等。在一些实施例中,手机向云端上传图像信息的方式可以有多种,比如:方式(1),手机可以实时地向云端上传图像信息;方式(2),手机可以在用户的手动操作下向云端上传图像信息;方式(3),手机可以周期性地向云端上传图像信息(如每天固定时刻上传);方式(4),手机可以在连接到特定类型的网络时,向云端上传图像信息,如无线保真(wireless fidelity,Wi-Fi)网络。本申请实施例对手机向云端上传图像信息的具体方式不做限定。
在一些实施例中,云端获取图像之后,可以按照位置信息对上传的图像进行分类。之后,云端通过VPS对同一GPS区域的图像定位,获取该GPS区域中的正常定位图像和异常定位图像。再之后,云端可以根据第一条件,判断是否触发更新点云地图的后续流程。若执行后续流程,则云端可以通过共视判断,构造场景图,并根据第二条件判断更新部分可否较好地融入原有的离线三维模型/原有的点云地图。若满足第二条件,则云端可以对该GPS区域全景图中的两种类型图像的特征点进行三维转化,获取该部分对应的三维点云数据,然后利用这些三维点云数据更新原有离线三维模型中的相应部分。该第二条件可以用于判断场景图的连通性、以及与原有点云模型其他部分的融合效果。
需要说明的是,云端通过不同角度的图像,提取建筑物在不同角度下的特征,可以便于云端获取建筑物较全面的形貌,还可以增加图像特征与三维模型匹配的准确性。换句话说,点云地图更新的准确性与云端获取的图像的数量以及角度的多样性关联。如果云端获取某一GPS区域的图像的数量越多,且角度越多样化,则云端针对该GPS区域的地图更新的准确性可能更高。
根据本申请实施例提供的点云地图更新的方法,可以通过云端与终端设备的交互自动获取已建图区域的图像信息,并根据获取的图像信息在准确的时机触发对点云地图的更新操作。整个点云地图更新过程无需过度耗费人力,不仅能够极大地节约地图更新的成本,还能够更加智能化地提升地图更新时机的准确性,保持了地图鲜度。
上文对本申请实施例提供的点云地图更新的方法中可能涉及到的设备的结构、系统架构、应用场景以及可视层面的实现流程进行了介绍。为了更好地理解本申请实施例提供的方法,以下结合附图对该方法的底层实现逻辑进行介绍。
示例性的,如图9所示,为本申请实施例提供的一种点云地图更新的方法的示意性流程图。该流程可以由终端设备(仍以手机为例)和云端作为主体来执行,具体可以包括以下步骤:
S901,用户在已建图区域使用VPS定位功能。
其中,这里的已建图区域可以指预先建立有离线三维模型的区域,比如该已建图区域是一个商场时,说明云端已存储有该商场对应的离线三维模型,也即点云地图。
在一些实施例中,用户可以在已建图区域主动使用VPS定位功能。例如,某些已建图区域的管理后台可以通过推送、通知等方式告知用户在该区域内可以使用VPS定位功能,基于此,用户可以主动开启该功能,或者授权手机使用该功能。
在一种可能的情况下,手机还可以向云端上报用户的GPS位置,当云端检测到用户进入到已建图区域的GPS范围内,可以指示手机开启VPS定位功能,或者通过手机提示用户同意开启VPS定位功能,或者通过手机提示用户手动开启VPS定位功能。之后,手机可以自动地或者经由用户授权使用或者用户手动操作后,开启VPS定位功能。
在一些实施例中,手机开启VPS定位功能之后,可以自动采集环境中的图像,或者在用户手动操作下采集环境中的图像。可选地,当自动采集图像时,手机可以进行周期性采集,例如3秒,10秒等。
S902,手机向云端上传图像,云端保存所有使用VPS定位的query图像,及其时间信息、位置信息。
其中,query图像是指云端获取的,由手机上传的某GPS区域的图像。在一些描述中,结合上下文意思,query图像也被直接描述为图像。在实际应用中,该query图像可以是RGB图像或者图片序列。
在一些实施例中,手机在向云端发送图像时,还可以向云端发送该图像对应的位置信息(如GPS位置)。此外,还可以向云端发送该图像对应的时间信息,如在图像信息中添加时间戳。可选地,时间信息例如可以是图像被采集时手机的系统时间,或者手机向云端发送该图像时的系统时间。
S903,云端对上传的图像按照位置信息进行分类,并判断VPS定位是否成功。
在一些实施例中,云端可以按照图像对应的GPS位置进行分类。示例性的,该过程例如可以包括:云端预先将大面积的已建图区域划分为多个面积较小的GPS区域;每个GPS区域都可以对应一个尺寸范围值(如10m×10m)和GPS范围值,比如图7所示的矩形GPS区域,其GPS范围值可以根据该矩形的四个顶点确定。之后,云端根据query图像的GPS位置判断query图像属于哪一个GPS区域,并将位于同一个GPS区域的query图像归于同一类。示例性的,分类后的结果例如可以参见上表1所示。
可选地,GPS区域对应的形状也可以设定为圆形或其它形状。其中,若GPS区域为圆形,该GPS区域的位置例如可以根据圆心的位置和半径确定。
需要说明的是,由于相机的视野范围有限,每张图像展现的范围有限,因而将整个大环境划分为多个小块的GPS区域,就可以针对这些规模较小的GPS区域,逐个进行点云地图更新处理,或者针对几个GPS区域并行进行点云地图更新处理,而无须对整体已建图区域进行一次性大规模处理,提高了地图更新处理的灵活性以及稳定性。
在一些实施例中,云端判断VPS定位是否成功可以依据query图像与离线三维模型中对应图像的图像匹配度来判断。例如,query图像与离线三维模型中对应位置图像的图像匹配度等于或大于某个预设的第一数值(如75%、80%等),则认为该query图像对应的定位结果准确;或者,query图像与离线三维模型中对应图像的特征匹配数目等于或大于预设的第二数值,则认为该query图像对应的定位结果准确。Query图像与离线三维模型中对应图像的图像匹配度小于预设的第一数值(如75%、80%等),则认为该query图像对应的定位信息不准确;或者,query图像与离线三维模型中对应图像的特征匹配数目小于预设的第二数值,则认为该query图像对应的定位信息不准确。可选地,云端确定query图像的定位结果准确性之后,可以向手机反馈定位结果信息,提示当前定位准确;或者,提示当前定位不准确。
可以理解的是,如果query图像的定位结果准确,则意味着该区域当前的真实环境与离线三维模型对应的环境差异较小,相比于建模时期,该环境未发生明显变化,故该情形下点云地图需要更新的可能性较小。如果query图像的定位结果不准确,则意味着该区域当前的真实环境与离线三维模型对应的环境差异较大,相比于建模时期,该环境可能发生了明显变化,故该情形下点云地图需要更新的可能性较大。
需要说明的是,在本申请VPS定位过程中用于获取图像匹配度的特征可以是一种图像描述符(image descriptor)。简单地说,图像描述符的输出是特征向量,是图像本身的抽象,它可以是用于表示图像的数字列表。以局部聚合描述符的向量(vector of locallyaggregated descriptors,Vlad)为例,提取图像描述符的过程可以包括:将待提取图像(即query图像)输入卷积神经网络,可以获取H*W*D(H为待提取图像的高度,W为待提取图像的宽度,D为特征维度)的特征矩阵;将该特征矩阵输入卷积网络层,通过卷积和归一化指数函数,可以获取聚类中心,并获取待提取图像的局部特征与聚类中心的残差分布;最后利用该残差分布,通过归一化操作,输出待提取图像的图像描述符。
在一些实施例中,在提取出query图像的图像描述符之后,还可以通过暴力匹配算法或者快速最近邻算法(fast libary for approximate nearest neighbors,FLANN)等进行匹配,获取图像匹配结果。可选地,在前述图像匹配过程中,为了结果更加准确,还可以通过交叉匹配算法等进行匹配结果优化,该具体实现流程可以参见现有技术,本申请对此不作赘述。
S904,云端进行异常判断,也即判断是否需要对GPS区域的点云地图进行更新。
在一些实施例中,云端可以根据预设的第一条件判断是否需要更新GPS区域的点云地图。其中,根据第一条件判断主要包括:云端根据异常定位图像的数量和/或异常定位图像的占比随时间的变化,判断是否需要更新GPS区域的点云地图。
示例性的,本申请实施例中用于判断是否更新点云地图的第一条件可以根据需要设置为不同内容。比如,该第一条件可以设置为:若GPS区域中的异常定位图像的数量等于或大于第一阈值,则确定需要更新该GPS区域对应的点云地图。再比如,该第一条件还可以设置为:若GPS区域中的异常定位图像的数量等于或大于第一阈值,以及该GPS区域的异常定位图像的占比在某一时间(定义为异常时间)等于或大于第二阈值,则确定需要更新该GPS区域对应的点云地图。又比如,该第一条件还可以设置为:若GPS区域中的异常定位图像的数量等于或大于第一阈值,以及该GPS区域的异常定位图像占比在异常时间等于或大于第二阈值,以及正常定位图像和异常定位图像进行语义分割后,语义类别差距大于预设差距,则确定需要更新该GPS区域对应的点云地图。其中,基于正常定位图像和异常定位图像的语义类别差距结果判断是否更新点云地图的步骤,可以是可选的。
其中,这里所说的异常定位图像的占比是指异常定位图像的数量在同一类别的query图像中所占的比例。该同一类别是指云端对query图像分类的类别,比如同一GPS区域、同一季节等。
针对上述第一种类型的第一条件,判断的过程可以包括以下步骤:
S904(1)a,云端统计其获取的异常定位图像的数量,该统计方式例如可以是周期性的,如每周、每个月或者每个季度等。
S904(1)b,若在统计周期内,GPS区域的异常定位图像的数量等于或大于第一阈值,则云端执行对地图的更新流程,也即可以执行下文中的步骤S905和步骤S906。
针对上述第二种类型的第一条件,判断的过程可以包括以下步骤:
S904(2)a,云端统计其获取的异常定位图像的数量,该统计方式例如可以是周期性的,如每周、每个月或者每个季度等。
S904(2)b,若在统计周期内,GPS区域的异常定位图像的数量等于或大于第一阈值,则统计该周期内,异常定位图像的占比是否在异常时间等于或大于第二阈值。
需要说明的是,考虑到GPS区域内的行人活动、季节更替等因素会对图像所呈现的真实环境的准确性带来不可避免的影响,如行人遮挡某部分商场布局,季节更替导致树木形态变化等,在正常情况下,异常定位图像的占比通常会固定在某个比例(如在15%)附近。但如果GPS区域发生实质性变化,比如增加或拆减建筑物、道路更改、广告牌更换等,那么异常定位图像的占比就会在某个时间(即异常时间)之后明显增加。因而通过步骤S904(2)b可以解决不可避免因素会对更新点云地图带来误差的问题。
在一些实施例中,考虑到季节变化对真实环境的影响,云端还可以再按照图像的时间戳所在的季节对query图像进一步分类。示例性的,如下表2所示,为本申请实施例提供的另一种query图像分类结果示例。
表2
需要说明的是,在本申请实施例中,按照季节进行图像分类可以作为可选方式。容易理解地,在实际应用中,针对不同地域,可以灵活选择是否按照图像时间进行分类,或者灵活地按其他时间划分方式(如按照每周、每月作为周期)进行分类,而无需必须按照传统的四季划分的形式进行分类。比如,在四季分明的地区(如黄河流域附近区域),可以按照上述表2的方式进行分类;然而,如果在四季不分明的地区(如赤道附近区域),则可以无需按照季节对图像进行分类。
或者,在室外环境可以按照时间信息进行图像分类,而在室内环境则无需按照时间信息进行图像分类。在一些实施例中,云端可以通过图像识别确定该图像对应的环境是室内还是室外,例如可以通过图像中天空的占比进行识别。
S904(2)c,若该周期内,异常定位图像的占比在异常时间等于或大于第二阈值,则云端执行对地图的更新流程,也即可以执行下文中的步骤S905和步骤S906。
针对上述第三种类型的第一条件,判断的过程可以包括以下步骤:
S904(3)a,云端统计其获取的异常定位图像的数量。
S904(3)b,若在统计周期内,GPS区域的异常定位图像的数量等于或大于第一阈值,则统计该周期内,异常定位图像的占比是否在异常时间等于或大于第二阈值。
S904(3)c,若在该周期内,异常定位图像的占比在异常时间等于或大于第二阈值,则统计该GPS区域内异常定位图像和正常定位图像的语义类别的差距是否达到目标差距。
在一些实施例中,云端可以对GPS区域内异常定位图像和正常定位图像进行语义分割,并统计显著语义类别,之后判断异常定位图像和正常定位图像的语义类别是否相差目标差距。其中,云端对异常定位图像和正常定位图像进行语义分割的方式可以基于传统方法和/或基于卷积神经网络(convolutional neural networks,CNN)的方法。其中,传统的语义分割方法例如包括基于统计的方法和基于几何的方法;基于CNN的方法例如包括基于语义分割CNN模型的方法,或者基于全卷积网络(fully convolutional networks,FCN)模型的方法等等。语义分割的详细流程可以参见现有流程,本申请实施例对此不再详述。
S904(3)d,若该GPS区域异常定位图像和正常定位图像的语义类别的差距达到目标差距,则云端执行对地图的更新流程,也即可以执行下文中的步骤S905和步骤S906。
S905,云端通过共视判断,确定新获取的图像能够用于更新地图。
其中,这里新获取的图像可以指在统计周期内,云端获取的GPS区域的query图像。
为了便于理解,可以将步骤S905涉及的过程分为三个阶段:阶段1,云端构建场景图;阶段2,云端确定场景图连通;阶段3,统计场景图中正常定位图像的数量达到或超过一定数目。
首先,针对阶段1,需要说明的是,同一个场景图中的图像是具有共视关系的。构建场景图的原理可以理解为,如果两张图像之间具有共视关系,有可以匹配的特征,那么以特征匹配数目作为边,可以将两个节点连接起来,这两个节点可以对应上述两张图像。类似地,可以把该GPS区域中具有共视关系的图像都作为节点,通过两两图像可以匹配的特征数目作为边,将两两图像连接起来,最终获取节点全部为具有连接关系的完整场景图。示例性的,该场景图对应的模型可以如图10所示。
示例性的,云端构建场景图的具体过程可以包括:(1)云端对该GPS区域在异常时间之前的正常定位图像,以及在异常时间之后的异常定位图像进行特征提取,其中,这里的异常时间也即上文所述的该GPS区域的异常定位图像的占比明显增大的时间,也即对应于该GPS区域中一场定位图象的占比等于或大于第二阈值的时间。这里的特征例如可以是任何一种特异性较强的点特征,如利用尺度不变特征变换(scale-invariant featuretransform,SIFT)算法获取的图像点特征。(2)SIFT算法的匹配是基于外观的匹配,没有考虑图像之间的几何关系,不能保证对应的特征能映射到同一三维场景点,因此,云端接下来可以利用RANSAC的方法计算(正常定位图像和异常定位图像)两两图像的基础矩阵和单应性矩阵,根据几何关系筛选出可靠度比较高的匹配对,剔除外点。(3)云端输出该GPS区域对应的完整场景图,该场景图的节点是图像,边是图像特征匹配的数目。
针对阶段2,云端确定场景图连通的过程可以包括:(1)统计场景图包括的两种类型图像(也即正常定位图像和异常定位图像)的数量。(2)如果场景图包括的正常定位图像的数量和异常定位图像的数量分别达到预设数量,例如场景图包括的正常定位图像的数量等于或大于第三阈值,以及场景图包括的异常定位图像的数量等于或大于第四阈值,则意味着正常定位图像和异常定位图像之间具有一定数量的共性的特征,而不是全部为相同类型的图像连接,或者一种类型的图像连接数量远远大于两种不同类型图像的连接数量。
判断场景图的连通性,是为了保证真实环境变化之后,异常定位图像和原来正常定位图像有一定的关联性,从而保证这些异常定位图像就是在该GPS区域采集到的,环境变化的确是发生在该GPS区域的,而不是将其他环境的图像误用到分析当前GPS区域的地图变化。
针对阶段3,需要说明的是,云端之所以需要统计场景图中正常定位图像占比是否达到或超过一定比例(如第五阈值),是因为从实际情况来说,即使某个GPS区域的真实环境发生变化,通常变化的部分会少于或者远少于未变化的部分,从这个角度来说,该阶段3的操作可以辅助证明数据是否可靠。此外,该操作更为关键的目的是,为了保证新的部分最终能够更好地替换离线三维模型中原有的对应部分,也即更好地融合到原本的点云地图中,而非生硬地加入。换句话说,本申请实施例中的场景图对应于一个GPS区域,而该GPS区域可能仅对应于离线三维模型的一小部分,然而点云地图更新的最终目的是将该GPS区域的变化的部分融合到已建图区域对应的完整离线三维模型中,因而如果场景图中正常定位图像比例太小,那么最终进行融合时,就会存在较大误差,无法获得较好的融合效果。
其中,阶段2和阶段3中判断过程所依据的是上文所述的第二条件。也即,第二条件可以包括:场景图包括的两种类型图像(也即正常定位图像和异常定位图像)的数量是否分别达到预设数量,比如场景图包括的正常定位图像的数量等于或大于第三阈值,以及场景图包括的异常定位图像的数量等于或大于第四阈值;以及场景图中正常定位图像的占比是否达到或超过一定比例,比如场景图中正常定位图像的占比等于或大于第五阈值。
S906,云端对GPS区域对应的点云地图进行更新。
在一些实施例中,云端进行地图更新的过程可以包括:将GPS区域对应的多个不同视角下图像的同一位置作为特征点,对这些特征点进行三角化处理,将特征点信息转化为三维点云信息,之后,基于该三维点云信息对离线三维模型中对应的部分进行更新,即可获取更新后的点云地图。
根据本申请实施例提供的点云地图更新的方法,通过云端与终端设备的交互获取已建图区域的图像,并基于VPS定位技术判断对点云地图更新的必要性,能够实现无需过度耗费人力,不仅极大地节约了地图更新的成本,还更加智能化地提升了地图更新时机的准确性,保持了地图鲜度。此外,本方法在更新之前基于构建的场景图进行点云地图更新融合性的判断,能够保证更新部分更好地融合到原有的离线三维模型中,获取融合效果更好的点云地图。
示例性的,如图11所示,为本申请实施例提供的一种点云地图更新的方法的示意性流程图。该方法可以由云端作为执行主体,具体可以包括以下步骤:
S1101,获取终端设备发送的图像信息,该图像信息包括第一区域的图像和第一区域的图像对应的位置信息。
其中,该第一区域可以对应于上文实施例中的GPS区域,如第一GPS区域。
本申请主要以GPS作为示例进行介绍,但在实际应用中,本方法中的位置信息也可以通过其他方式获得,比如通过北斗卫星定位系统等,本申请实施例对此不作限定。
S1102,根据第一区域的图像对应的位置信息,通过VPS获取图像的定位结果,其中,定位结果准确的图像为正常定位图像,定位结果不准确的图像为异常定位图像。
S1103,根据异常定位图像的数量获取是否需要更新第一区域对应的点云地图。
S1104,当需要更新第一区域对应的点云地图时,获取第一区域对应的场景图,该场景图的节点为与其他图像具有特征匹配关系的正常定位图像和异常定位图像,该场景图的边为节点对应的图像之间匹配的特征数目。
S1105,根据场景图中正常定位图像的数量和异常定位图像的数量,更新第一区域对应的点云地图。
在一些实施例中,所述方法还包括:存储离线三维模型,所述离线三维模型对应的区域为已建图区域;其中,所述离线三维模型包括第一部分和其他部分,所述第一部分为未更新的所述第一区域对应的点云地图,所述其他部分为所述已建图区域中剩余其他区域对应的点云地图。
在一些实施例中,所述图像信息还包括所述其他区域的图像和所述其他区域的图像对应的位置信息,所述方法还包括:根据所述图像信息中的位置信息和所述第一区域的位置,进行图像分类,获取属于所述第一区域的图像。
在一些实施例中,所述根据异常定位图像的数量获取是否需要更新所述第一区域对应的点云地图,具体包括:若所述异常定位图像的数量等于或大于第一阈值,则确定需要更新所述第一区域对应的点云地图。
在一些实施例中,所述根据异常定位图像的数量获取是否需要更新所述第一区域对应的点云地图,具体包括:若所述异常定位图像的数量等于或大于第一阈值,且在某个异常时间之后,所述异常定位图像的占比等于或大于第二阈值,则确定需要更新所述第一区域对应的点云地图。
在一些实施例中,所述根据异常定位图像的数量获取是否需要更新所述第一区域对应的点云地图,具体包括:若所述异常定位图像的数量等于或大于第一阈值;以及,在某个异常时间之后,所述异常定位图像的占比等于或大于第二阈值;以及,所述正常定位图像和所述异常定位图像在语义分割后的语义类别差距大于预设差距,则确定需要更新所述第一区域对应的点云地图。
在一些实施例中,所述当需要更新所述第一区域对应的点云地图时,获取所述第一区域对应的场景图,具体包括:对所述第一区域在异常时间之前的所述正常定位图像和所述异常时间之后的异常定位图像进行共视判断;将共视判断后与其他图像具有共同特征的图像作为所述节点,将两两图像之间匹配的特征数目作为所述两两图像对应节点之间的边,获取所述场景图。
在一些实施例中,所述根据所述场景图中所述正常定位图像的数量和所述异常定位图像的数量,对所述第一区域对应的点云地图进行更新,具体包括:当所述场景图包括的所述正常定位图像的数量等于或大于第三阈值,以及所述场景图包括的异常定位图像的数量等于或大于第四阈值时,统计所述场景图包括的所述正常定位图像的占比是否等于或大于第五阈值;若所述场景图包括的所述正常定位图像的占比是否等于或大于第五阈值,则对所述第一区域对应的点云地图进行更新。
在一些实施例中,所述对所述第一区域对应的点云地图进行更新,具体包括:对所述第一区域对应的所述正常定位图像和所述异常定位图像均包括的同一位置作为特征点;对所述特征点进行三角化处理,获取与所述特征点对应的三维点云信息;在所述离线三维模型中,基于所述三维点云信息对所述第一区域对应的点云地图进行更新。
在一些实施例中,所述图像信息还包括时间信息;所述根据所述图像信息中的位置信息和所述第一区域的位置,进行图像分类,获取属于所述第一区域的图像,还包括:所述根据所述图像信息中时间信息,进行图像分类,获取属于所述第一区域的且在同一时间段内的图像。
根据本申请实施例提供的点云地图更新的方法,通过云端与终端设备的交互获取已建图区域的图像,并基于VPS定位技术判断对点云地图更新的必要性,能够实现无需过度耗费人力,不仅极大地节约了地图更新的成本,还更加智能化地提升了地图更新时机的准确性,保持了地图鲜度。此外,本方法在更新之前基于构建的场景图进行点云地图更新融合性的判断,能够保证更新部分更好地融合到原有的离线三维模型中,获取融合效果更好的点云地图。
基于同样的技术构思,本申请实施例还提供了一种云端设备,包括一个或多个处理器;一个或多个存储器;所述一个或多个存储器存储有一个或多个计算机程序,所述一个或多个计算机程序包括指令,当所述指令被所述一个或多个处理器执行时,使得计算机或处理器执行上述任一个方法中的一个或多个步骤。
基于同样的技术构思,本申请实施例还提供了一种终端设备,包括一个或多个处理器;一个或多个存储器;所述一个或多个存储器存储有一个或多个计算机程序,所述一个或多个计算机程序包括指令,当所述指令被所述一个或多个处理器执行时,使得计算机或处理器执行上述任一个方法中的一个或多个步骤。
基于同样的技术构思,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机可执行程序指令,所述计算机可执行程序指令在被计算机上运行时,使得计算机或处理器执行上述任一个方法中的一个或多个步骤。
基于同样的技术构思,本申请实施例还提供了一种包含指令的计算机程序产品,所述计算机程序产品包括计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机或处理器执行上述任一个方法中的一个或多个步骤。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其它可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者通过所述计算机可读存储介质进行传输。所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如,固态硬盘(solid state disk,SSD))等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:ROM或随机存储记忆体RAM、磁碟或者光盘等各种可存储程序代码的介质。
以上所述,仅为本申请实施例的具体实施方式,但本申请实施例的保护范围并不局限于此,任何在本申请实施例揭露的技术范围内的变化或替换,都应涵盖在本申请实施例的保护范围之内。因此,本申请实施例的保护范围应以所述权利要求的保护范围为准。
- 一种激光点云数据的识别方法、装置、设备和介质
- 点云处理方法、高精地图更新方法、装置及计算机设备
- 点云处理方法、高精地图更新方法、装置及计算机设备