一种建图方法、装置、电子设备及存储介质转让专利

申请号 : CN202110908036.X

文献号 : CN113610702B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张晋川

申请人 : 北京百度网讯科技有限公司

摘要 :

本公开提供了建图方法,涉及视觉定位、深度学习、增强现实等人工智能技术领域,尤其涉及视觉建图技术领域。具体实现方案为:获取针对目标场景采集的雷达数据对应的位姿,以及图像对应的位姿;基于图像中的关键点,以及图像对应的位姿,确定图像中的关键点所表征的目标场景的三维点;基于雷达数据,以及雷达数据对应的位姿,确定雷达数据中的三维点所表征的目标场景的三维点;以所确定的目标场景的各个三维点作为待构建视觉地图的位置点,构建目标场景的视觉地图。通过本公开的方案,可以提高视觉建图鲁棒性。

权利要求 :

1.一种建图方法,包括:

获取针对目标场景采集的雷达数据对应的位姿,以及图像对应的位姿;其中,所述雷达数据对应的位姿为雷达设备在采集所述雷达数据时的位姿,所述图像对应的位姿为摄像设备在采集所述图像时的位姿,所述雷达设备和所述摄像设备相互绑定;

基于所述图像中的关键点,以及所述图像对应的位姿,确定所述图像中的关键点所表征的所述目标场景的三维点;

基于所述雷达数据,以及所述雷达数据对应的位姿,确定所述雷达数据中的三维点所表征的所述目标场景的三维点;

以所确定的所述目标场景的各个三维点作为待构建视觉地图的位置点,构建所述目标场景的视觉地图。

2.根据权利要求1所述的方法,其中,所述获取针对目标场景采集的雷达数据对应的位姿,以及图像对应的位姿,包括:

获取目标位姿信息;其中,所述目标位姿信息为在摄像设备和雷达设备对目标场景进行数据采集时,惯性传感器所采集的位姿信息;所述摄像设备、所述雷达设备以及所述惯性传感器相互绑定;

基于所获取的目标位姿信息,确定针对所述目标场景采集的雷达数据对应的位姿,以及图像对应的位姿。

3.根据权利要求1或2所述的方法,其中,在所述基于所述雷达数据,以及所述雷达数据对应的位姿,确定所述雷达数据中的三维点所表征的所述目标场景的三维点之前,还包括:确定各个第一类三维点的重投影误差,以及确定各个第二类三维点的观测误差;其中,所述各个第一类三维点包括所述图像中关键点所表征的所述目标场景的三维点,所述各个第二类三维点包括所述雷达数据中的三维点;

基于所确定的重投影误差以及观测误差,对各个第一类三维点和各个第二类三维点进行误差调整。

4.根据权利要求3所述的方法,其中,所述确定各个第二类三维点的观测误差,包括:确定各个第二类三维点的类型;其中,所述类型为直线点或平面点;

针对类型为直线点的每一第二类三维点,在该第二类三维点对应的三维点云中,确定该第二类三维点与邻近直线点云对应直线之间的最短距离,作为该第二类三维点的观测误差;

针对类型为平面点的每一第二类三维点,在该第二类三维点对应的三维点云中,确定该第二类三维点与邻近平面点云对应平面之间的最短距离,作为该第二类三维点的观测误差;

其中,每一第二类三维点对应的三维点云为:基于所述雷达数据中与该第二类三维点相距预设距离内的三维点所构建的三维点云。

5.根据权利要求3所述的方法,其中,所述基于所确定的重投影误差以及观测误差,对各个第一类三维点和各个第二类三维点进行误差调整,包括:采用非线性优化的方式,利用所确定的重投影误差以及观测误差,对各个第一类三维点和各个第二类三维点进行误差调整。

6.根据权利要求5所述的方法,其中,所述采用非线性优化的方式,利用所确定的重投影误差以及观测误差,对各个第一类三维点和各个第二类三维点进行误差调整,包括:对各个第一类三维点、各个第二类三维点、所述雷达数据对应的位姿、所述图像对应的位姿以及所确定的重投影误差和观测误差进行非线性优化,得到误差调整后各个第一类三维点、误差调整后的各个第二类三维点以及误差调整后的所述雷达数据对应的位姿。

7.根据权利要求1或2所述的方法,其中,所述基于所述图像中的关键点,以及所述图像对应的位姿,确定所述图像中的关键点所表征的所述目标场景的三维点,包括:基于所述图像中每一关键点对应的特征,确定所述图像的各关键点中特征相匹配的多个关键点,作为表征所述目标场景中同一三维点的多个关键点;

基于每一组表征所述目标场景中同一三维点的多个关键点,以及每一关键点所属图像对应的位姿,确定该组多个关键点所表征的所述目标场景的三维点。

8.根据权利要求7所述的方法,其中,所述图像为多帧图像,所述图像对应的位姿为:每帧图像对应的位姿;

所述基于每一组表征所述目标场景中同一三维点的多个关键点,以及每一关键点所属图像对应的位姿,确定该组多个关键点所表征的所述目标场景的三维点,包括:针对每一组表征所述目标场景中同一三维点的多个关键点,基于该组每一关键点在所属图像中的位置,以及该组每一关键点所属图像对应的位姿,计算该组多个关键点所表征的三维点在所述目标场景中的位置,得到该组多个关键点所表征的所述目标场景的三维点。

9.一种建图装置,包括:

位姿获取模块,用于获取针对目标场景采集的雷达数据对应的位姿,以及图像对应的位姿;其中,所述雷达数据对应的位姿为雷达设备在采集所述雷达数据时的位姿,所述图像对应的位姿为摄像设备在采集所述图像时的位姿,所述雷达设备和所述摄像设备相互绑定;

第一确定模块,用于基于所述图像中的关键点,以及所述图像对应的位姿,确定所述图像中的关键点所表征的所述目标场景的三维点;

第二确定模块,用于基于所述雷达数据,以及所述雷达数据对应的位姿,确定所述雷达数据中的三维点所表征的所述目标场景的三维点;

地图构建模块,用于以所确定的所述目标场景的各个三维点作为待构建视觉地图的位置点,构建所述目标场景的视觉地图。

10.根据权利要求9所述的装置,其中,所述位姿获取模块,具体用于获取目标位姿信息;基于所获取的目标位姿信息,确定针对所述目标场景采集的雷达数据对应的位姿,以及图像对应的位姿;其中,所述目标位姿信息为在摄像设备和雷达设备对目标场景进行数据采集时,惯性传感器所采集的位姿信息;所述摄像设备、所述雷达设备以及所述惯性传感器相互绑定。

11.根据权利要求9或10所述的装置,其中,所述装置还包括:误差确定模块,用于在所述第二确定模块执行所述基于所述雷达数据,以及所述雷达数据对应的位姿,确定所述雷达数据中的三维点所表征的所述目标场景的三维点之前,确定各个第一类三维点的重投影误差,以及确定各个第二类三维点的观测误差;其中,所述各个第一类三维点包括所述图像中关键点所表征的所述目标场景的三维点,所述各个第二类三维点包括所述雷达数据中的三维点;

误差调整模块,用于基于所确定的重投影误差以及观测误差,对各个第一类三维点和各个第二类三维点进行误差调整。

12.根据权利要求11所述的装置,其中,所述误差确定模块,具体用于确定各个第二类三维点的类型;其中,所述类型为直线点或平面点;针对类型为直线点的每一第二类三维点,在该第二类三维点对应的三维点云中,确定该第二类三维点与邻近直线点云对应直线之间的最短距离,作为该第二类三维点的观测误差;针对类型为平面点的每一第二类三维点,在该第二类三维点对应的三维点云中,确定该第二类三维点与邻近平面点云对应平面之间的最短距离,作为该第二类三维点的观测误差;其中,每一第二类三维点对应的三维点云为:基于所述雷达数据中与该第二类三维点相距预设距离内的三维点所构建的三维点云。

13.根据权利要求11所述的装置,其中,所述误差调整模块,具体用于采用非线性优化的方式,利用所确定的重投影误差以及观测误差,对各个第一类三维点和各个第二类三维点进行误差调整。

14.根据权利要求13所述的装置,其中,所述误差调整模块,具体用于对各个第一类三维点、各个第二类三维点、所述雷达数据对应的位姿、所述图像对应的位姿以及所确定的重投影误差和观测误差进行非线性优化,得到误差调整后各个第一类三维点、误差调整后的各个第二类三维点以及误差调整后的所述雷达数据对应的位姿。

15.根据权利要求9或10所述的装置,其中,所述第一确定模块,包括:第一确定子模块,用于基于所述图像中每一关键点对应的特征,确定所述图像的关键点中特征相匹配的多个关键点,作为表征所述目标场景中同一三维点的多个关键点;

第二确定子模块,用于基于每一组表征所述目标场景中同一三维点的多个关键点,以及每一关键点所属图像对应的位姿,确定该组多个关键点所表征的所述目标场景的三维点。

16.根据权利要求15所述的装置,其中,所述图像为多帧图像,所述图像对应的位姿为:每帧图像对应的位姿;

所述第二确定子模块,具体用于针对每一组表征所述目标场景中同一三维点的多个关键点,基于该组每一关键点在所属图像中的位置,以及该组每一关键点所属图像对应的位姿,计算该组多个关键点所表征的三维点在所述目标场景中的位置,得到该组多个关键点所表征的所述目标场景的三维点。

17.一种电子设备,包括:

至少一个处理器;以及

与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1‑8中任一项所述的方法。

18.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1‑8中任一项所述的方法。

19.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1‑8中任一项所述的方法。

说明书 :

一种建图方法、装置、电子设备及存储介质

技术领域

[0001] 本公开涉及视觉定位、深度学习、增强现实等人工智能领域技术领域,尤其涉及视觉建图领域,具体涉及一种建图方法、装置、电子设备及存储介质。

背景技术

[0002] 随着手机等便携摄影设备的发展,基于摄像头的低成本视觉定位方法逐渐受到大家的关注,而在实际使用定位功能前,需要先对场景进行视觉建图。
[0003] 相关技术中,多采用摄像头建图的方式构建场景的视觉地图。然而,在采用诸如全景相机等摄像设备进行建图的过程中,由于场景中存在无纹理或者弱纹理的局部场景,例
如,玻璃反光、白墙等,往往导致所建立的视觉地图中存在没有数据的局部区域。因此,相关
建图方案的鲁棒性较差。

发明内容

[0004] 本公开提供了一种提高建图鲁棒性的建图方法、装置、电子设备以及存储介质。
[0005] 根据本公开的一方面,提供了一种建图方法,包括:
[0006] 获取针对目标场景采集的雷达数据对应的位姿,以及图像对应的位姿;其中,所述雷达数据对应的位姿为雷达设备在采集所述雷达数据时的位姿,所述图像对应的位姿为摄
像设备在采集所述图像时的位姿,所述雷达设备和所述摄像设备相互绑定;
[0007] 基于所述图像中的关键点,以及所述图像对应的位姿,确定所述图像中的关键点所表征的所述目标场景的三维点;
[0008] 基于所述雷达数据,以及所述雷达数据对应的位姿,确定所述雷达数据中的三维点所表征的所述目标场景的三维点;
[0009] 以所确定的所述目标场景的各个三维点作为待构建视觉地图的位置点,构建所述目标场景的视觉地图。
[0010] 根据本公开的另一方面,提供了一种建图装置,包括:
[0011] 位姿获取模块,用于获取针对目标场景采集的雷达数据对应的位姿,以及图像对应的位姿;其中,所述雷达数据对应的位姿为雷达设备在采集所述雷达数据时的位姿,所述
图像对应的位姿为摄像设备在采集所述图像时的位姿,所述雷达设备和所述摄像设备相互
绑定;
[0012] 第一确定模块,用于基于所述图像中的关键点,以及所述图像对应的位姿,确定所述图像中的关键点所表征的所述目标场景的三维点;
[0013] 第二确定模块,用于基于所述雷达数据,以及所述雷达数据对应的位姿,确定所述雷达数据中的三维点所表征的所述目标场景的三维点;
[0014] 地图构建模块,用于以所确定的所述目标场景的各个三维点作为待构建视觉地图的位置点,构建所述目标场景的视觉地图。
[0015] 根据本公开的另一方面,提供了一种电子设备,包括:
[0016] 至少一个处理器;以及
[0017] 与所述至少一个处理器通信连接的存储器;其中,
[0018] 所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行建图方法。
[0019] 根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行建图方法。
[0020] 根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现建图方法。
[0021] 应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。

附图说明

[0022] 附图用于更好地理解本方案,不构成对本公开的限定。其中:
[0023] 图1是根据本公开第一实施例的示意图;
[0024] 图2是根据本公开第二实施例的示意图;
[0025] 图3是根据本公开第二实施例的示意图;
[0026] 图4是用来实现本公开实施例的建图方法的电子设备的框图。

具体实施方式

[0027] 以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识
到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同
样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0028] 基于摄像头的低成本视觉定位方法,是指利用手机等便携摄影设备采集环境的图像,进而利用预先构建好的视觉地图与采集到的图像实现定位。举例而言,在公共场所,例
如商场、超市等室内环境,当用户需要定位时,用户可以通过手机采集周围环境图像,进而
利用预先构建的视觉地图与采集到的图像确定用户当前的位置。
[0029] 上述过程依赖针对场景预先构建的视觉地图,因此,在实现基于摄像头的低成本视觉定位功能之前,需要预先对场景进行视觉建图。
[0030] 相关技术中,多采用摄像头建图的方式构建场景的视觉地图。举例而言,使用全局相机采集目标场景的场景图像,进而通过对场景图像的处理,建立目标场景的视觉地图。
[0031] 然而,对于任意一个场景,当该场景中存在无纹理或者弱纹理的局部场景时,例如,玻璃反光、白墙等,使用全景相机采集图像时,往往无法采集到有效的图像,进而在利用
包含无纹理或弱纹理的场景图像,建立视觉地图时,所建立的视觉地图中往往存在没有数
据的局部区域,并且局部纹理信息的缺失,也容易导致全局建图失败。因此,相关建图方案
的鲁棒性较差。
[0032] 另一方面,对于采用摄像头建图的方式而言,由于视觉地图的构建仅基于摄像头采集的图像,使得所建立的视觉地图中仅包含图像信息。而用户在实际导航定位时需要使
用真实世界的尺度,例如,导航定位时需要知道从第一定位点到第二定位点的实际距离是
多少米,而相关建图方案所构建的数据地图缺乏尺度信息。同时,在使用全景相机采集场景
图像的过程中,还需要采集人员稳定行走,采集图像的过程中不能产生大幅度晃动,使得采
集图像的过程较为困难。进而需要专业的图像采集人员,增高了建图成本。
[0033] 为了解决相关技术中上述所存在的技术问题,本公开实施例提供一种建图方法。
[0034] 需要说明的,在具体应用中,本公开实施例所提供的建图方法可以应用于各类电子设备,例如,个人电脑、服务器、以及其他具有数据处理能力的设备。另外,可以理解的是,
本公开实施例提供的建图方法可以通过软件、硬件或软硬件结合的方式实现。
[0035] 其中,本公开实施例所提供的一种建图方法,可以包括:
[0036] 获取针对目标场景采集的雷达数据对应的位姿,以及图像对应的位姿;其中,雷达数据对应的位姿为雷达设备在采集雷达数据时的位姿,图像对应的位姿为摄像设备在采集
图像时的位姿,雷达设备和摄像设备相互绑定;
[0037] 基于图像中的关键点,以及图像对应的位姿,确定图像中的关键点所表征的目标场景的三维点;
[0038] 基于雷达数据,以及雷达数据对应的位姿,确定雷达数据中的三维点所表征的目标场景的三维点;
[0039] 以所确定的目标场景的各个三维点作为待构建视觉地图的位置点,构建目标场景的视觉地图。
[0040] 本公开提供的上述方案,可以获取针对目标场景采集的雷达数据对应的位姿、以及图像对应的位姿,进而可以基于图像的位姿确定每帧图像中关键点所表征的目标场景的
三维点,并基于雷达数据的位姿确定雷达数据中三维点所表征的目标场景中的三维点,进
一步的根据所确定的目标场景中的三维点构建目标场景的视觉地图,由于对于雷达数据而
言,即使目标场景中存在无纹理或弱纹理的区域,雷达设备也可以采集到完整的雷达数据,
从而使得基于雷达数据所建立的视觉地图中,不会存在没有数据的区域,提高了视觉地图
构建的鲁棒性。
[0041] 同时,由于摄像设备的位姿以及雷达设备的位姿记录有现实世界的尺度信息,因此,建图过程中,图像对应位姿以及雷达数据对应位姿的使用,可以使所建立的视觉地图中
具有现实世界的尺度信息。
[0042] 进一步的,由于可以利用图像对应的位姿,确定图像中关键点所对应的目标场景中的三维点的过程中,以及利用雷达数据对应的位姿,确定雷达数据中三维点对应的目标
场景中的三维点,这也就是意味着,只需要在摄像设备和雷达设备在采集数据的过程中记
录设备的位姿,即可利用设备所采集的数据,而无需确保设备在采集过程中的稳定性,从而
降低了数据采集的难度,进而无需要专业的数据采集人员,降低了建图成本。
[0043] 下面结合附图对本公开实施例所提供的一种建图方法进行介绍。
[0044] 如图1所示,本公开实施例提供所一种建图方法,可以包括如下步骤:
[0045] S101,获取针对目标场景采集的雷达数据对应的位姿,以及图像对应的位姿;其中,雷达数据对应的位姿为雷达设备在采集雷达数据时的位姿,图像对应的位姿为摄像设
备在采集图像时的位姿,雷达设备和摄像设备相互绑定;
[0046] 其中,上述目标场景为需要构建视觉地图的场景,例如商场、超市等。
[0047] 需要说明的是,针对目标场景所采集的雷达数据和图像,是经过了目标场景相应管理人员授权后,通过雷达设备和摄像设备针对目标场景所采集的,相关数据采集过程符
合法律法规。
[0048] 上述雷达设备为利用电磁波探测目标的电子设备。每帧雷达数据为雷达设备采集的目标相对于雷达设备所处方位的数据。举例而言,对于雷达数据中包含的三维点A(1,0,
0),该点位于雷达设备正东方向1个单位距离的位置。
[0049] 需要说明的是,上述针对目标场景采集的雷达数据可以为雷达设备针对目标场景所采集数据的全部雷达数据,或者,也可以为雷达设备针对目标场景所采集全部雷达数据
中的部分雷达数据,或者,还可以为仅针对目标场景中无纹理和/或弱纹理所在区域所采集
的雷达数据。
[0050] 上述摄像设备为图像采集设备,例如,手机、全景相机、摄像机等。
[0051] 需要说明的是,上述针对目标场景采集的图像可以为摄像设备针对目标场景所采集数据的全部图像,或者,也可以为摄像设备针对目标场景所采集全部图像中的部分图像,
或者,还可以为仅针对目标场景有纹理区域所采集的图像,其中,有纹理区域为除无纹理
和/或弱纹理所在区域之外的区域。
[0052] 在本公开实施例中,雷达设备与摄像设备相互绑定,使得雷达设备与摄像设备在采集数据的过程中位姿的变化是一致的,举例而言,雷达设备从位置点A移动到位置点B,且
从姿态1变化为姿态2,姿态1到姿态2的姿态变化量为Δθ,同步的,摄像设备也将从位置点A
移动至位置点B,从姿态3变化为姿态4,且姿态3到姿态4的姿态变化量也为Δθ。
[0053] 可选的,上述雷达数据可以包含多帧,即多帧雷达数据,上述雷达数据对应的位姿可以为多帧雷达数据中每帧雷达数据对应的位姿,或者,还可以为多帧雷达数据中部分雷
达数据对应的位姿,这都是可以的。
[0054] 与雷达数据相似的,上述图像可以包含多帧,即多帧图像,上述图像对应的位姿可以为多帧图像帧每帧图像对应的位姿,或者,还可以为多帧图像帧部分图像对应的位姿,这
都是可以的。
[0055] 可选的,在一种实现方式中,获取针对目标场景采集的雷达数据对应的位姿,以及图像对应的位姿,可以包括步骤1‑步骤2:
[0056] 步骤1,获取目标位姿信息;其中,目标位姿信息为在摄像设备和雷达设备对目标场景进行数据采集时,惯性传感器所采集的位姿信息;摄像设备、雷达设备以及惯性传感器
相互绑定;
[0057] 其中,惯性传感器(IMU,Inertial Measurement Unit)是测量物体三轴姿态角及加速度的装置。一般惯性传感器包括三轴陀螺仪及三轴加速度计。通过惯性传感器,可以在
设备移动过程中,测量设备的加速度以及角速度。从而,可以在已知起始速度(对于数据采
集而言,起始速度多为0),以及起始姿态(一般为默认姿态)的情况下,可以基于移动过程中
设备的加速度,计算设备在每一时刻相对于起始点的位置,以及基于移动过程中设备的角
速度,计算设备在每一时刻的姿态。
[0058] 本公开实施例中,摄像设备、雷达设备以及惯性传感器相互绑定,其意味着雷达设备、摄像设备与惯性传感器的位姿变化是一致的。当需要确定摄像设备和雷达设备采集数
据时的位姿,可以从惯性传感器中读取,在摄像设备和雷达设备针对目标场景采集数据的
期间内,惯性传感器所采集的位姿信息,即目标位姿信息。其中,位姿信息为惯性传感器采
集的加速度以及角速度。
[0059] 步骤2,基于所获取的目标位姿信息,确定针对目标场景采集的雷达数据对应的位姿,以及图像对应的位姿。
[0060] 其中,由于摄像设备、雷达设备以及惯性传感器相互绑定,其意味着雷达设备、摄像设备与惯性传感器的位姿变化是一致的,进而可以通过惯性传感器测量的位姿,确定雷
达设备与摄像设备在采集数据时的位姿。
[0061] 在一种实现方式中,可以预先对摄像设备、雷达设备以及惯性传感器进行位姿标定,即确定摄像设备、雷达设备以及惯性传感器之间的位姿转换关系。上述位姿标定方式可
以采用已有软件工具进行设备间位姿标定。
[0062] 在一种位姿标定方式中,可以标定惯性传感器与雷达设备之间的位姿转换关系,进而惯性传感器与摄像设备之间的位姿转换关系。
[0063] 此时,在获取到目标位姿信息后,可以基于目标位姿信息中的加速度与角速度,确定在每一时刻惯性传感器的位姿,进而基于所确定的惯性传感器位姿,基于惯性传感器与
雷达设备之间的位姿转换关系,确定雷达传感器在每一雷达数据采样时刻的位姿,以及基
于所确定的惯性传感器位姿,基于惯性传感器与摄像设备之间的位姿转换关系,确定摄像
传感器在每一图像采样时刻的位姿。
[0064] 在另一种位姿标定方式中,在确保雷达设备与摄像设备起始位置及起始姿态一致的情况下,可以仅标定惯性传感器与雷达设备之间的位姿转换关系。
[0065] 此时,在获取到目标位姿信息后,可以基于目标位姿信息中的加速度与角速度,确定在每一时刻惯性传感器的位姿,进而基于所确定的惯性传感器位姿,基于惯性传感器与
雷达设备之间的位姿转换关系,确定雷达传感器在每一雷达数据采样时刻的位姿,进一步
的,基于所确定的雷达设备的位姿,确定摄像设备在每一图像采样时刻的位姿。
[0066] 可选的,惯性传感器、雷达设备以及摄像设备的采样频率是不同的,且往往惯性传感器的采样频率大于雷达设备,但小于摄像设备,示例性的,惯性传感器的采样频率为
30HZ,雷达设备的采样频率为10HZ,摄像设备的采样频率为60HZ。
[0067] 由于惯性传感器的采样频率大于雷达设备,这也就意味着,雷达设备在每一采样时刻的姿态都可以准确通过惯性传感器的姿态确定。而由于惯性传感器的采样频率小于摄
像设备,这也就意味着,摄像设备仅在部分采样时刻的姿态可以准确通过惯性传感器的姿
态确定。基于此,对于摄像设备而言,可以将摄像设备在每一采样时刻的位姿,使用雷达设
备在与该采样时刻最接近的雷达设备的采样时刻的位姿代替。举例而言,如表1所示:
[0068] 表1
[0069]
[0070] 雷达设备在T2时刻采集第1帧雷达数据,在T5时刻采集第2帧雷达数据。由于摄像设备的采样频率高于雷达设备,故而,摄像设备分别在T1、T2、T3、T4、T5和T6时刻,采集了第
1帧图像、第2帧图像、第3帧图像、第4帧图像、第5帧图像和第6帧图像。通过惯性传感器,确
定雷达设备在采集第1帧雷达数据时为位姿1,以及在采集第2帧雷达数据时为位姿2。对于
摄像设备而言,对于第1帧图像、第2帧图像和第3帧图像而言,采样时刻最接近的为雷达设
备采集第1帧雷达数据的时刻,故而,第1帧图像、第2帧图像和第3帧图像对应的位置为位姿
1,对于第4帧图像、第5帧图像和第6帧图像而言,采样时刻最接近的为雷达设备采集第2帧
雷达数据的时刻,故而,第4帧图像、第5帧图像和第6帧图像对应的位置为位姿2。
[0071] 当然,在惯性传感器与摄像设备的起始位姿一致的情况下,摄像设备的位姿除利用雷达设备的位姿代替以外,也可以利用惯性传感器的位姿代替,具体实现方式与雷达设
备相似,在此不再赘述。
[0072] 在一种实现方式中,可以在预先已知雷达设备和摄像设备起始位姿的情况下,可以直接基于目标位姿信息,计算雷达设备在每一采样时刻的位姿,以及摄像设备在每一采
样时刻的位姿,其计算方式,与惯性传感器基于目标位姿信息,计算位姿的方式一致,在此
不再赘述。
[0073] S102,基于图像中的关键点,以及图像对应的位姿,确定图像中的关键点所表征的目标场景的三维点;
[0074] 其中,在图像处理中,图像中的关键点本质上是一种特征,是对一个固定区域或者空间物理关系的抽象描述,描述的是一定邻域范围内的组合或上下文关系。它不仅仅是一
个点信息,或代表一个位置,更代表着上下文与周围邻域的组合关系。
[0075] 在执行本步骤之前,可以使用2D(Two Dimensional,二维)图像特征提取方法,提取出图像的关键点及其特征。2D图像特征提取方法可以包括点回归的方法以及点分类的方
法。
[0076] 在确定出图像中的关键点之后,可以利用三角化方法基于图像中的关键点,以及图像对应的位姿,确定图像中的关键点所表征的目标场景的三维点。
[0077] 可选的,在一种实现方式中,上述步骤S102可以包括步骤a‑步骤b:
[0078] 步骤a,基于图像中每一关键点对应的特征,确定图像的关键点中特征相匹配的多个关键点,作为表征目标场景中同一三维点的多个关键点;
[0079] 其中,每一关键点对应的特征可以为该关键点所在位置的纹理特征、结构特征等特性。对于目标场景中每一三维点而言,其在摄像设备采集的各帧图像中所对应的关键点
的特征应当相同或相似,因此,可以在各帧图像的关键点中,确定特征相匹配的多个关键
点,作为表征目标场景中同一三维点的多个关键点。上述相匹配的多个关键点可以为特征
差异满足预设条件的多个关键点,例如小于预设阈值。
[0080] 在一种实现方式中,可以对各帧图像中的关键点做特征比对,从而确定相匹配的表征目标场景中同一三维点的多个关键点。
[0081] 步骤b,基于每一组表征目标场景中同一三维点的多个关键点,以及每一关键点所属图像对应的位姿,确定该组多个关键点所表征的目标场景的三维点。
[0082] 其中,在上述图像可以为多帧图像,上述图像对应的位姿为:每帧图像对应的位姿。对于图像而言,摄像设备移动的过程中,目标场景中每一三维点,与该三维点在两帧图
像中的关键点之间应当满足三角关系,因此,可以结合三角化方法,确定相邻图像中表征同
一目标场景中三维点的关键点。
[0083] 在使用三角化方式的过程中,需要确定目标场景中同一三维点的多个关键点之间的位置关系,例如两关键点之间的距离,而两关键点之间的位置关系可以通过关键点所属
图像对应的位姿确,以及两关键点在图像中的位置确定,此时,上述步骤b,可以包括:
[0084] 针对每一组表征目标场景中同一三维点的多个关键点,基于该组每一关键点在所属图像中的位置,以及该组每一关键点所属图像对应的位姿,计算该组多个关键点所表征
的三维点在目标场景中的位置,得到该组多个关键点所表征的目标场景的三维点。
[0085] 其中,针对每一组表征目标场景中同一三维点的多个关键点,可以基于该组每一关键点在所属图像中的位置,以及该组每一关键点所属图像对应的位姿,确定任意两个关
键点之间的位置关系,进而结合三角化方法,计算该组多个关键点所表征的三维点相对摄
像设备的位置,进而基于相机设备的位姿以及与该三维点之间的相对位置,确定该组多个
关键点所表征的三维点在目标场景中的位置,从而得到该组多个关键点所表征的目标场景
的三维点。
[0086] S103,基于雷达数据,以及雷达数据对应的位姿,确定雷达数据中的三维点所表征的目标场景的三维点;
[0087] 其中,雷达数据对应的位姿可以为每帧雷达数据对应的位姿,雷达数据中的三维点所表征的目标场景的三维点可以为每帧雷达数据中的三维点所表征的目标场景的三维
点,而每帧雷达数据中的三维点所表征的是:目标场景的三维点在雷达设备采集该帧雷达
数据时,在雷达设备的坐标系下的位置,即相对于雷达设备的位置。因此,可以进一步的基
于雷达设备的位姿,确定雷达设备相对于目标场景的位置,进而确定每帧雷达数据中的三
维点所表征三维点在目标场景中的位置,即得到每帧雷达数据中的三维点所表征的目标场
景的三维点。
[0088] S104,以所确定的目标场景的各个三维点作为待构建视觉地图的位置点,构建目标场景的视觉地图。
[0089] 在得到所确定的目标场景的各个三维点后,即可将所确定的目标场景的各个三维点作为待构建视觉地图的位置点,从而完成目标场景的视觉地图的构建。
[0090] 可选的,在一种实现方式,为了进一步的丰富视觉地图中的信息,可以将目标位置信息,以及所确定的雷达数据的位姿以及图像的位姿均配置在视觉地图中,进一步的丰富
视觉地图中的信息。从而在后续使用视觉地图进行定位时,可以结合目标位置信息等更准
确的对目标进行定位。上述雷达数据的位姿可以为每帧雷达数据的位姿,上述图像的位姿
可以为每帧图像的位姿。
[0091] 需要说明的是,本公开实施例针对目标场景构建视觉地图是经过目标场景相应管理者的授权后所构建的,其构建过程符合相关法律法规。
[0092] 本公开提供的上述方案,由于对于雷达数据而言,即使目标场景中存在无纹理或弱纹理的区域,雷达设备也可以采集到完整的雷达数据,从而使得基于雷达数据所建立的
视觉地图中,不会存在没有数据的区域,提高了视觉地图构建的鲁棒性,还可以使得所建立
的视觉地图中具有现实世界的尺度信息,同时也降低数据采集的难度,从而降低了建图成
本。
[0093] 如图2所示,本公开的另一实施例所提供的建图方法,可以包括如下步骤:
[0094] S201,获取针对目标场景采集的雷达数据对应的位姿,以及图像对应的位姿;其中,雷达数据对应的位姿为雷达设备在采集雷达数据时的位姿,图像对应的位姿为摄像设
备在采集图像时的位姿,雷达设备和摄像设备相互绑定;
[0095] 本步骤的实现方式与步骤S101相同或相似,在此不再赘述。
[0096] S202,基于图像中的关键点,以及图像对应的位姿,确定图像中的关键点所表征的目标场景的三维点;
[0097] 本步骤的实现方式与步骤S102相同或相似,在此不再赘述。
[0098] S203,确定各个第一类三维点的重投影误差,以及确定各个第二类三维点的观测误差;其中,各个第一类三维点包括图像中关键点所表征的目标场景的三维点,各个第二类
三维点包括雷达数据中的三维点;
[0099] 其中,重投影误差(Reprojection error),可以理解为:针对每一目标场景中的三维点,将该三维点投影到某一图像上的投影点,与该图像上表征该三维点的关键点之间距
离,距离越大,重投影误差越大。其中,将该三维点投影到某一图像的投影角度为按照该图
像对应位姿所确定的,即该投影角度与摄像设备采集该图像时的拍摄角度相同。
[0100] 上述观测误差为由于采集数据时所存储的误差导致,所采集的第二类三维点与该第二类三维点实际所在位置的误差。可选的,在一种实现方式中,可以采用如下方式确定各
个第二类三维点的观测误差,包括步骤A‑步骤C:
[0101] 步骤A,确定各个第二类三维点的类型;其中,类型为直线点或平面点;
[0102] 雷达数据中各个三维点可以分为直线点和平面点,其中,直线点为在三维点云中位于直线上的三维点,平面点为在三维点云中位于平面上的点。
[0103] 为了确定各个第二类三维点的类型,可以针对每一第二类三维点构建对应的三维点云。其中,每一第二类三维点对应的三维点云为:基于雷达数据中与该第二类三维点相距
预设距离内的三维点所构建的三维点云。
[0104] 上述预设距离可以为根据实际需求所确定的。例如5m。
[0105] 可选的,上述雷达数据为多帧雷达数据,则每一第二类三维点相距预设距离内的三维点可以为与该第二类三维点所属雷达数据周围预设距离采集的雷达数据组所合成的
三维点云。
[0106] 可选的,可以将上述预设距离转换为雷达设备采集该预设距离的数据所需花费的时长,作为预设时长。此时,基于雷达数据中与该第二类三维点相距预设距离内的三维点所
构建的三维点云可以为:基于与该第二类三维点所属雷达数据采样间隔小于预设时长的多
帧雷达数据,所构建的。
[0107] 构建每一第二类三维点对应的点云后,可以确定该第二类三维点是属于直线点,还是属于平面点。
[0108] 步骤B,针对类型为直线点的每一第二类三维点,在该第二类三维点对应的三维点云中,确定该第二类三维点与邻近直线点云对应直线之间的最短距离,作为该第二类三维
点的观测误差;
[0109] 其中,针对类型为直线点的每一第二类三维点,则该第二类三维点理论上应当位于邻近直线点云对应直线。因此,需要计算该第二类三维点与邻近直线点云对应直线之间
的最短距离,作为该第二类三维点的观测误差。
[0110] 步骤C,针对类型为平面点的每一第二类三维点,在该第二类三维点对应的三维点云中,确定该第二类三维点与邻近平面点云对应平面之间的最短距离,作为该第二类三维
点的观测误差。
[0111] 其中,与直线点类似的,针对类型为平面点的每一第二类三维点,该第二类三维点理论上应当位于邻近平面点云对应平面上。因此,需要计算该第二类三维点与邻近平面点
云对应平面之间的最短距离,作为该第二类三维点的观测误差。
[0112] S204,基于所确定的重投影误差以及观测误差,对各个第一类三维点和各个第二类三维点进行误差调整。
[0113] 可选的,一种误差调整方式,可以基于所确定的重投影误差对各个第一类三维点进行误差调整,并基于所确定的观测误差,对各个第二类三维点进行误差调整。
[0114] 另一种误差调整方式,对各个第一类三维点和各个第二类三维点进行误差调整,可以包括:
[0115] 采用非线性优化的方式,利用所确定的重投影误差以及观测误差,对各个第一类三维点和各个第二类三维点进行误差调整。
[0116] 其中,上述非线性优化的方式可以为Bundle Adjustment(捆绑调整)方式进行优化,即同时对各个第一类三维点和各个第二类三维点进行误差调整,将所确定的重投影误
差以及观测误差,分散到各个第一类三维点和各个第二类三维点进行误差调整,从而可以
达到整体最优的效果。
[0117] 可选的,为了进一步的提高误差调整效果,在一种实现方式中,可以包括:
[0118] 对各个第一类三维点、各个第二类三维点、雷达数据对应的位姿、图像对应的位姿以及所确定的重投影误差和观测误差进行非线性优化,得到误差调整后各个第一类三维
点、误差调整后的各个第二类三维点以及误差调整后的雷达数据对应的位姿。
[0119] 上述雷达数据对应的位姿可以为每帧雷达数据对应的位姿,上述图像对应的位姿可以为每帧图像对应的位姿。
[0120] 对各个第一类三维点、各个第二类三维点、每帧雷达数据对应的位姿、每帧图像对应的位姿以及所确定的重投影误差和观测误差进行非线性优化即意味着,计算各个第一类
三维点、各个第二类三维点、每帧雷达数据对应的位姿、每帧图像对应的位姿以及所确定的
重投影误差和观测误差进行非线性优化的最优解,作为误差调整后各个第一类三维点、误
差调整后的各个第二类三维点以及误差调整后的每帧雷达数据对应的位姿。
[0121] S205,基于雷达数据,以及雷达数据对应的位姿,确定雷达数据中的三维点所表征的目标场景的三维点;
[0122] 需要说明的是,经过步骤S203和步骤S204的处理,雷达数据,以及雷达数据对应的位姿均是进行误差调整后的数据,与未经过误差调整相比,雷达数据,以及雷达数据对应的
位姿更加准确,从而所确定的每帧雷达数据中的三维点所表征的目标场景的三维点也更加
准确,进而提高了视觉地图的精度。
[0123] 除数据本身更准确以外,本步骤的具体实现方式与步骤S103相同,在此不再赘述。
[0124] S206,以所确定的目标场景的各个三维点作为待构建视觉地图的位置点,构建目标场景的视觉地图。
[0125] 本步骤的实现方式与步骤S104相同或相似,在此不再赘述。
[0126] 本公开提供的上述方案,由于对于雷达数据而言,即使目标场景中存在无纹理或弱纹理的区域,雷达设备也可以采集到完整的雷达数据,从而使得基于雷达数据所建立的
视觉地图中,不会存在没有数据的区域,提高了视觉地图构建的鲁棒性,还可以使得所建立
的视觉地图中具有现实世界的尺度信息,同时也降低数据采集的难度,从而降低了建图成
本。
[0127] 进一步的,可以确定第一类三维点的重投影误差以及第二类三维点的观测误差,进而对第一类三维点和第二类三维点进行误差调整,从而可以提高第一类三维点和第二类
三维点的准确度,进而使得构建的视觉地图更准确。
[0128] 根据本公开的实施例,如图3所示,本公开还提供了一种建图装置,上述装置包括:
[0129] 位姿获取模块301,用于获取针对目标场景采集的雷达数据对应的位姿,以及图像对应的位姿;其中,雷达数据对应的位姿为雷达设备在采集雷达数据时的位姿,图像对应的
位姿为摄像设备在采集图像时的位姿,雷达设备和摄像设备相互绑定;
[0130] 第一确定模块302,用于基于图像中的关键点,以及图像对应的位姿,确定图像中的关键点所表征的目标场景的三维点;
[0131] 第二确定模块303,用于基于雷达数据,以及雷达数据对应的位姿,确定雷达数据中的三维点所表征的目标场景的三维点;
[0132] 地图构建模块304,用于以所确定的目标场景的各个三维点作为待构建视觉地图的位置点,构建目标场景的视觉地图。
[0133] 可选的,位姿获取模块,具体用于获取目标位姿信息;基于所获取的目标位姿信息,确定针对目标场景采集的多帧雷达数据中雷达数据对应的位姿,以及多帧图像中图像
对应的位姿;其中,目标位姿信息为在摄像设备和雷达设备对目标场景进行数据采集时,惯
性传感器所采集的位姿信息;摄像设备、雷达设备以及惯性传感器相互绑定。
[0134] 可选的,装置还包括:误差确定模块,用于在第二确定模块执行基于雷达数据,以及雷达数据对应的位姿,确定雷达数据中的三维点所表征的目标场景的三维点之前,确定
各个第一类三维点的重投影误差,以及确定各个第二类三维点的观测误差;其中,各个第一
类三维点包括图像中关键点所表征的目标场景的三维点,各个第二类三维点包括雷达数据
中的三维点;
[0135] 误差调整模块,用于基于所确定的重投影误差以及观测误差,对各个第一类三维点和各个第二类三维点进行误差调整。
[0136] 可选的,误差确定模块,具体用于确定各个第二类三维点的类型;其中,类型为直线点或平面点;针对类型为直线点的每一第二类三维点,在该第二类三维点对应的三维点
云中,确定该第二类三维点与邻近直线点云对应直线之间的最短距离,作为该第二类三维
点的观测误差;针对类型为平面点的每一第二类三维点,在该第二类三维点对应的三维点
云中,确定该第二类三维点与邻近平面点云对应平面之间的最短距离,作为该第二类三维
点的观测误差;其中,每一第二类三维点对应的三维点云为:基于雷达数据中与该第二类三
维点相距预设距离内的三维点所构建的三维点云。
[0137] 可选的,误差调整模块,具体用于采用非线性优化的方式,利用所确定的重投影误差以及观测误差,对各个第一类三维点和各个第二类三维点进行误差调整。
[0138] 可选的,误差调整模块,具体用于对各个第一类三维点、各个第二类三维点、雷达数据对应的位姿、图像对应的位姿以及所确定的重投影误差和观测误差进行非线性优化,
得到误差调整后各个第一类三维点、误差调整后的各个第二类三维点以及误差调整后的雷
达数据对应的位姿。
[0139] 可选的,第一确定模块,包括:
[0140] 第一确定子模块,用于基于图像中每一关键点对应的特征,确定图像的关键点中特征相匹配的多个关键点,作为表征目标场景中同一三维点的多个关键点;
[0141] 第二确定子模块,用于基于每一组表征目标场景中同一三维点的多个关键点,以及每一关键点所属图像对应的位姿,确定该组多个关键点所表征的目标场景的三维点。
[0142] 可选的,图像为多帧图像,图像对应的位姿为:每帧图像对应的位姿;
[0143] 第二确定子模块,具体用于针对每一组表征目标场景中同一三维点的多个关键点,基于该组每一关键点在所属图像中的位置,以及该组每一关键点所属图像对应的位姿,
计算该组多个关键点所表征的三维点在目标场景中的位置,得到该组多个关键点所表征的
目标场景的三维点。
[0144] 本公开提供的上述方案,由于对于雷达数据而言,即使目标场景中存在无纹理或弱纹理的区域,雷达设备也可以采集到完整的雷达数据,从而使得基于雷达数据所建立的
视觉地图中,不会存在没有数据的区域,提高了视觉地图构建的鲁棒性,还可以使得所建立
的视觉地图中具有现实世界的尺度信息,同时也降低数据采集的难度,从而降低了建图成
本。
[0145] 根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
[0146] 本公开实施例提供了一种电子设备,包括:
[0147] 至少一个处理器;以及
[0148] 与所述至少一个处理器通信连接的存储器;其中,
[0149] 所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行建图方法。
[0150] 本公开实施例一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行建图方法。
[0151] 本公开实施例一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现建图方法。
[0152] 图4示出了可以用来实施本公开的实施例的示例电子设备400的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字
助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种
形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算
装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限
制本文中描述的和/或者要求的本公开的实现。
[0153] 如图4所示,设备400包括计算单元401,其可以根据存储在只读存储器(ROM)402中的计算机程序或者从存储单元408加载到随机访问存储器(RAM)403中的计算机程序,来执
行各种适当的动作和处理。在RAM 403中,还可存储设备400操作所需的各种程序和数据。计
算单元401、ROM 402以及RAM 403通过总线404彼此相连。输入/输出(I/O)接口405也连接至
总线404。
[0154] 设备400中的多个部件连接至I/O接口405,包括:输入单元406,例如键盘、鼠标等;输出单元407,例如各种类型的显示器、扬声器等;存储单元408,例如磁盘、光盘等;以及通
信单元409,例如网卡、调制解调器、无线通信收发机等。通信单元409允许设备400通过诸如
因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
[0155] 计算单元401可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元401的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工
智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及
任何适当的处理器、控制器、微控制器等。计算单元401执行上文所描述的各个方法和处理,
例如建图方法。例如,在一些实施例中,建图方法可被实现为计算机软件程序,其被有形地
包含于机器可读介质,例如存储单元408。在一些实施例中,计算机程序的部分或者全部可
以经由ROM 402和/或通信单元409而被载入和/或安装到设备400上。当计算机程序加载到
RAM 403并由计算单元401执行时,可以执行上文描述的建图方法的一个或多个步骤。备选
地,在其他实施例中,计算单元401可以通过其他任何适当的方式(例如,借助于固件)而被
配置为执行建图方法。
[0156] 本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统
的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实
现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算
机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器
可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出
装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至
少一个输出装置。
[0157] 用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处
理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的
功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件
包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0158] 在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可
读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电
子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合
适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计
算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM
或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD‑ROM)、光学储存设备、磁储存设备、或
上述内容的任何合适组合。
[0159] 为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视
器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来
将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的
反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用
任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
[0160] 可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算
系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界
面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部
件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数
字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网
(LAN)、广域网(WAN)和互联网。
[0161] 计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端‑服务器关系的计
算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的
服务器,或者是结合了区块链的服务器。
[0162] 应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,
只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
[0163] 上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开
的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。