技术领域
[0001] 本发明涉及计算机技术领域,尤其涉及一种快速获取户型结构的方法及装置。
相关背景技术
[0002] 常规的户型图多由人工测量手动绘制得到,但人工测量工作量繁琐,且已经正常入住的房屋中容易受到物体遮挡的影响而不方便测量,绘制户型图的效率低下。
[0003] 随着计算机技术的发展,目前存在由房屋三维模型直接生成二维户型图的方法,但是需要首先通过扫描等方式得到完整的房屋三维模型,并且橱柜、家具等物体对墙体的遮挡同样会影响到生成户型图的质量。
具体实施方式
[0048] 为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0049] 下面结合图1‑图21描述本发明的快速获取户型结构的方法及装置。
[0050] 图1是本发明提供的快速获取户型结构的方法的流程示意图之一。如图1所示,所述方法包括:
[0051] 步骤101、对于房屋的房间,利用移动终端的Lidar扫描仪获取墙体的碰撞点的位姿矩阵,根据所述位姿矩阵获取所述碰撞点的三维坐标和法向量。
[0052] 移动终端如智能手机、平板电脑等。利用移动终端的Lidar扫描仪对墙体进行扫描,墙体扫描使用点击触碰的方式,选取一个碰撞点,基于ARKit的raycast获得碰撞点的位姿矩阵,计算出碰撞点的三维坐标和碰撞点的法向量。碰撞点即Lidar开始工作时,发射的激光信号碰撞到房屋的墙体时的接触点。可以根据位姿矩阵求得墙体的位置与对应各方位(可以是基于ARKit的坐标系的各方向)的欧拉角(通过方向余弦矩阵求欧拉角),根据欧拉角确定碰撞点的法向量。
[0053] 步骤102、根据所述碰撞点的三维坐标和法向量获取所述墙体的位置和朝向。
[0054] 碰撞点为墙体上一点,碰撞点的三维坐标表示碰撞点的位置,碰撞点的法向量表示经过碰撞点且垂直于碰撞点所在墙体的向量。可以利用碰撞点的法向量来表示墙体的朝向,因此,获知碰撞点的三维坐标和法向量,即可获取墙体的位置和朝向。
[0055] 步骤103、根据所述墙体的位置和朝向得到所述房间的第一房间结构。
[0056] 扫描房间的所有墙体后,获得房间的所有墙体的位置和朝向,根据房间的所有墙体的位置和朝向可以得到房间的第一房间结构。第一房间结构包括房间的墙体构造情况。
[0057] 步骤104、在所述房间的第一房间结构中添加门窗结构,得到所述房间的第二房间结构。
[0058] 在每个房间的扫描过程中,需要同时利用移动终端的Lidar扫描仪进行门窗的扫描。门窗可以使用两个点位标记,如采集门窗左右两侧各一点的三维坐标。在房间的第一房间结构中添加门窗结构,得到房间的第二房间结构。房间的第二房间结构包括了房间的墙体及门窗的构造情况。
[0059] 步骤105、根据所述房间的第二房间结构得到所述房屋的户型结构。
[0060] 得到房屋的各个房间的第二房间结构后,根据房屋的各个房间的第二房间结构可以得到房屋的户型结构。在第二房间结构为立体结构时,可以通过将房屋的各个房间的第二房间结构进行平面投影,从而得到房屋的户型结构。
[0061] 本发明提供的快速获取户型结构的方法,通过利用移动终端的Lidar扫描仪获取墙体的碰撞点的位姿矩阵,根据位姿矩阵获取碰撞点的三维坐标和法向量,根据碰撞点的三维坐标和法向量获取墙体的位置和朝向,根据墙体的位置和朝向得到房间的第一房间结构,在房间的第一房间结构中添加门窗结构,得到房间的第二房间结构,根据房间的第二房间结构得到房屋的户型结构,实现了户型结构的快速自动化获取,并且提高了户型结构的质量。
[0062] 根据本发明提供的一种快速获取户型结构的方法,所述根据所述墙体的位置和朝向得到所述房间的第一房间结构,具体包括:根据连续扫描的相邻墙体的所述墙体的位置和朝向获取相邻墙体的墙线及墙线交点,利用所述墙线交点连接相邻墙体的墙线得到所述房间的第一房间结构。
[0063] 扫描完一个墙体后,得到墙体的位置和朝向。采集完门窗的三维点后,得到门窗的位置。可以将得到的数据投影到二维平面上进行处理,利用墙线表示墙体,利用多边形表示房间的第一房间结构。可以将门窗的两个三维坐标投影到水平面上得到门窗线段,用于表示门窗结构。在得到用多边形表示的房间的第一房间结构后,在第一房间结构中添加门窗结构,从而得到房间的第二房间结构。
[0064] 扫描完一个墙体后,可以得到墙体的位置和朝向,在连续扫描下一个墙体后,又得到下一个墙体的位置和朝向。根据连续扫描的相邻墙体的位置和朝向可以获取相邻墙体的墙线及墙线交点。以此继续连续扫描墙体,并利用墙线交点连接相邻墙线,则在扫描完一个房间的墙体后,由墙线交点连接相邻墙线实现闭合效果,得到房间的第一房间结构。
[0065] 由于有的房间的墙体可能是不规则的,因此如果对墙体无序扫描的话,会对后续第一房间结构的确定带来麻烦。而对墙体连续扫描则可以确定相邻墙体的位置关系,并且可以获取墙线交点,通过墙线交点连接相邻墙体的墙线则可以实现第一房间结构的确定,提高了处理效率。
[0066] 本发明提供的快速获取户型结构的方法,通过对墙体进行连续扫描,并利用墙线交点连接相邻墙线,最终获得房间的第一房间结构,提高了房间的第一房间结构的获取效率。
[0067] 根据本发明提供的一种快速获取户型结构的方法,所述方法还包括:根据所述墙线交点的坐标计算墙体长度,并在所述第一房间结构中添加所述墙体长度。
[0068] 可以在房间的第一房间结构中标注测量值,因此,在得到房间的第一房间结构之前,可以根据墙线交点的坐标计算墙体长度,并在第一房间结构中添加墙体长度。由此,在房间的第一房间结构中添加门窗结构,得到房间的第二房间结构,根据房间的第二房间结构得到房屋的户型结构后,户型结构中也将携带墙体的测量结果。
[0069] 本发明提供的快速获取户型结构的方法,通过根据墙线交点的坐标计算墙体长度,并在第一房间结构中添加墙体长度,实现了带有测量值的户型结构的获取。
[0070] 根据本发明提供的一种快速获取户型结构的方法,所述方法还包括:利用Lidar扫描仪获取地板或天花板的位置;所述根据所述房间的第二房间结构得到所述房屋的户型结构,具体包括:根据所述墙体的位置和朝向进行房间拼合;和/或,根据所述地板或所述天花板的位置进行房间分层,从而得到所述房屋的户型结构。
[0071] 对于单层的房屋,在根据房间的第二房间结构得到房屋的户型结构时,只需根据墙体的位置和朝向进行房间拼合,即可得到房屋的户型结构。若房屋为多层,则在对房屋的各个房间进行扫描处理时,还需记录房间的分层信息,房间的分层信息可以根据房间的天花板或地板的高度信息获取。因此,若房屋为多层,在利用Lidar扫描仪扫描时,还需获取地板或天花板的位置。在根据房间的第二房间结构得到房屋的户型结构时,需根据地板或天花板的位置进行房间分层,并对同一层的房间的第二房间结构进行房间拼合,得到分别对应于每层的户型结构,从而得到房屋的户型结构。
[0072] 本发明提供的快速获取户型结构的方法,通过利用Lidar扫描仪获取地板或天花板的位置,根据述墙体的位置和朝向进行房间拼合,和/或,根据地板或天花板的位置进行房间分层,从而得到房屋的户型结构,实现了多类型房屋的户型结构的获取。
[0073] 根据本发明提供的一种快速获取户型结构的方法,所述方法还包括:在所述移动终端的扫描界面的预设位置显示户型雷达图,所述户型雷达图用于实时显示所述移动终端的定位状态和/或扫描处理状态。
[0074] 可以在移动终端的显示器上显示当前的扫描界面,扫描界面的显示内容包括Lidar扫描仪的镜头采集的空间图像,如当前采集的房间的某个角度的图像。另外,还可以在扫描界面的预设位置显示户型雷达图。可以根据移动终端的定位状态和/或扫描处理状态对户型雷达图的显示实时更新。
[0075] 本发明提供的快速获取户型结构的方法,通过在在移动终端的扫描界面的预设位置显示户型雷达图,用于实时显示移动终端的定位状态和/或扫描处理状态,有利于直观显示当前的处理进程,提高了交互效果。
[0076] 根据本发明提供的一种快速获取户型结构的方法,所述户型雷达图显示有所述移动终端的位置和视角、根据所述墙体的位置和朝向获取的画墙结果、所述第一房间结构、所述第二房间结构及所述户型结构中的至少一种。
[0077] 图2是本发明提供的快速获取户型结构的方法中一种状态下的户型雷达图的显示示意图。图3是本发明提供的快速获取户型结构的方法中另一种状态下的户型雷达图的显示示意图。图4是本发明提供的快速获取户型结构的方法中另一种状态下的户型雷达图的显示示意图。图5是本发明提供的快速获取户型结构的方法中另一种状态下的户型雷达图的显示示意图。图6是本发明提供的快速获取户型结构的方法中另一种状态下的户型雷达图的显示示意图。图7是本发明提供的快速获取户型结构的方法中另一种状态下的户型雷达图的显示示意图。
[0078] 户型雷达图显示有移动终端的位置和视角、根据墙体的位置和朝向获取的画墙结果、第一房间结构、第二房间结构及户型结构中的至少一种。图2~图7分别示出了不同状态下的户型雷达图。如图2所示,显示的是对移动终端未定位成功状态下的户型雷达图,图中只在中部显示一个白点。如图3所示,显示的是对移动终端定位成功状态下的户型雷达图,定位成功后,定位点可以利用设定的颜色表示,如蓝色,并且显示有视角方向。如图4所示,显示的是扫描完一个墙体后的户型雷达图,户型雷达图中显示了画墙结果。如图5所示,显示的是扫描完一个房间的所有墙体后的户型雷达图,图中由不同方向的墙体构成闭合空间。如图6所示,显示的是标记门窗过程中的户型雷达图,图中标记了门窗的一个三维点,如左侧线段中的白点所示。如图7所示,显示的是标记完门窗后的第二房间结构。另外,在扫描完房屋的所有房间时,还可以显示房屋的户型结构。
[0079] 本发明提供的快速获取户型结构的方法,通过使得户型雷达图显示有移动终端的位置和视角、根据墙体的位置和朝向获取的画墙结果、第一房间结构、第二房间结构及户型结构中的至少一种,提高了户型雷达图显示内容的丰富性。
[0080] 根据本发明提供的一种快速获取户型结构的方法,所述方法还包括:在获取到点击所述户型雷达图的信息时,在所述扫描界面放大显示户型预览图;其中,所述户型预览图与不同状态下的所述户型雷达图相对应,并且,所述户型预览图中去除所述移动终端的位置和视角的显示。
[0081] 在获取到点击户型雷达图的信息时,在扫描界面放大显示户型预览图,可以将户型预览图在扫描界面满页显示。户型预览图用于预览生成的户型图,但是在尚未生成户型图时,仍然可以查看当前扫描状态下生成的部分户型图。户型预览图与不同状态下的户型雷达图相对应,并且,由于,户型预览图目的是展示户型,不需显示移动终端的位置和视角。
[0082] 图8是本发明提供的快速获取户型结构的方法中一种状态下的户型预览图的显示示意图。如图8所示,显示的是未定位成功状态下的户型预览图。图9是本发明提供的快速获取户型结构的方法中另一种状态下的户型预览图的显示示意图。如图9所示,显示的是定位成功状态下的户型预览图。图10是本发明提供的快速获取户型结构的方法中另一种状态下的户型预览图的显示示意图。如图10所示,显示的是扫描完一个房间的所有墙体后的户型预览图。图11是本发明提供的快速获取户型结构的方法中另一种状态下的户型预览图的显示示意图。如图11所示,显示的是一个房间标注门窗的过程中或标注门窗完毕后的户型预览图。
[0083] 本发明提供的快速获取户型结构的方法,通过点击户型雷达图显示与户型雷达图对应的户型预览图,便于直观查看户型生成效果。
[0084] 根据本发明提供的一种快速获取户型结构的方法,所述方法还包括:获取所述移动终端的所述定位状态和/或所述扫描处理状态,根据所述定位状态和/或所述扫描处理状态,在所述扫描界面和/或所述户型预览图中显示预设分步操作提醒信息。
[0085] Lidar扫描空间是一种依赖新型设备的技术方式,在此之前的同类型产品/功能应用的也并不广泛,所以在本发明中为了帮助用户尽快的熟悉功能,了解使用方法,设置进行分步引导与提醒。分步引导与提醒需要获取移动终端的定位状态和/或扫描处理状态,根据移动终端的定位状态和/或扫描处理状态进行分步引导与提醒。分步引导与提醒可以通过在扫描界面和/或户型预览图中显示预设分步操作提醒信息实现。
[0086] 如图8所示,在未定位成功时,户型预览图中显示“请移动至门口或入户门处,并将手机尽量靠近”,以采集入户门或室内门的坐标,以构建房间基于ARKit坐标的相对坐标系进行数据处理。
[0087] 图12是本发明提供的快速获取户型结构的方法中一种扫描界面的显示示意图。如图12所示,显示的是开始扫描状态下的扫描界面,扫描界面显示有“请进行墙面扫描”的提示信息。图13是本发明提供的快速获取户型结构的方法中另一种扫描界面的显示示意图。如图12所示,显示的是扫描过程中的扫描界面,扫描界面显示有“请扫描下一个连续墙面”的提示信息。图14是本发明提供的快速获取户型结构的方法中另一种扫描界面的显示示意图。如图14所示,显示的是扫描过程中的扫描界面,扫描界面显示有“请扫描连续墙面,直到再次扫描第一面墙”的提示信息。
[0088] 本发明提供的快速获取户型结构的方法,通过获取移动终端的定位状态和/或扫描处理状态,在扫描界面和/或户型预览图中显示预设分步操作提醒信息,进一步提高了交互性能,有利于户型结构的快速、成功获取。
[0089] 根据本发明提供的一种快速获取户型结构的方法,所述方法还包括:在所述扫描界面和/或所述户型预览图中显示预设操作反馈信息;其中,所述预设操作反馈信息包括在获知对于一个房间未进行墙体连续扫描时,需要连续扫描墙体的提示信息。
[0090] 还可以在扫描界面和/或户型预览图中显示预设操作反馈信息,预设操作反馈信息用于对于用户的操作进行反馈。预设操作反馈信息比如包括:在获知对于一个房间未进行墙体连续扫描时,需要连续扫描墙体的提示信息。如前所述,无序扫描墙体虽然也可以得到第一房间结构,但是连续扫描的情况下第一房间结构获取的速率更快,也更可靠,因此在扫描过程中需要进行墙体的连续扫描。移动终端可以根据扫描得到的墙体的位置和方向判断是否在进行连续扫描,在获知未进行连续扫描时,显示需要连续扫描墙体的提示信息。
[0091] 本发明提供的快速获取户型结构的方法,通过设置预设操作反馈信息,在操作过程中针对用户行为进行实时反馈,在约束用户行为的同时,帮助用户快速准确的进行空间结构的扫描。
[0092] 根据本发明提供的一种快速获取户型结构的方法,所述方法还包括:在所述墙体的扫描过程中,跟随所述Lidar扫描仪的镜头在所述扫描界面显示预设的瞄准准星图标。
[0093] 在墙体的扫描过程中,跟随Lidar扫描仪的镜头显示预设的瞄准准星图标,预设的瞄准准星图标用于表示当前的扫描方向。瞄准准星图标的样式可以根据需要设定,如图12~14所示,利用虚线圆+中心白点作为瞄准准星图标。
[0094] 本发明提供的快速获取户型结构的方法,通过在墙体的扫描过程中,跟随Lidar扫描仪的镜头显示预设的瞄准准星图标,进一步增强了交互性能,有利于识别当前的扫描位置。
[0095] 根据本发明提供的一种快速获取户型结构的方法,所述方法还包括:在所述墙体扫描成功时,根据所述墙体的位置和朝向在所述墙体的表面贴合显示所述瞄准准星图标。
[0096] 在墙体扫描成功时,根据墙体的位置和朝向在墙体的表面贴合显示瞄准准星图标。图15是本发明提供的快速获取户型结构的方法中另一种扫描界面的显示示意图。如图15所示,在扫描完墙体后,瞄准准星图标贴合于墙面显示。
[0097] 本发明提供的快速获取户型结构的方法,通过在墙体扫描成功时,根据墙体的位置和朝向在墙体的表面贴合显示瞄准准星图标,有利于明晰当前扫描成功的墙体。
[0098] 根据本发明提供的快速获取户型结构的方法,所述方法还包括:在所述墙体扫描成功时,在所述扫描界面中的所述墙体上利用预设扫描成功提示图标打标记。
[0099] 由于瞄准准星图标是跟随镜头移动的,在扫描其余墙体时,瞄准准星图标将显示于其他墙体。为了明晰已扫描成功的墙体的情况,可以通过在墙体上打标记实现。在墙体扫描成功时,可以利用比较明显的提示图标在墙体上进行展示,以表示当前墙体已被成功扫描。这个提示图标即预设扫描成功提示图标,样式可以根据需要设定。
[0100] 图16是本发明提供的快速获取户型结构的方法中另一种扫描界面的显示示意图。如图16所示,通过一个“对勾”图标作为预设扫描成功提示图标。
[0101] 本发明提供的快速获取户型结构的方法,通过在墙体扫描成功时,在扫描界面中的墙体上利用预设扫描成功提示图标打标记,有利于明晰扫描进程。
[0102] 根据本发明提供的一种快速获取户型结构的方法,所述在所述墙体扫描成功时,在所述扫描界面中的所述墙体上利用预设扫描成功提示图标打标记,具体包括:在所述墙体扫描成功时,在所述扫描界面中的所述瞄准准星图标的预设位置利用所述预设扫描成功提示图标打标记;并且,对应于单个墙体,所述预设扫描成功提示图标只标记一次,当所述瞄准准星图标位置改变时,所述预设扫描成功提示图标的位置保持不变。
[0103] 在墙体扫描成功时,根据墙体的位置和朝向在墙体的表面贴合显示瞄准准星图标,同时,可以在扫描界面中的瞄准准星图标的预设位置利用预设扫描成功提示图标打标记,比如在瞄准准星图标的中部打对勾。对应于单个墙体,预设扫描成功提示图标只需标记一次即可,当瞄准准星图标位置改变时,预设扫描成功提示图标的位置保持不变。
[0104] 图17是本发明提供的快速获取户型结构的方法中另一种扫描界面的显示示意图。如图17,在墙体扫描成功后,在墙体上进行了预设扫描成功提示图标打标记。当Lidar扫描仪的镜头移动时,瞄准准星图标跟随镜头移动,并且始终贴合于墙面显示。并且,预设扫描成功提示图标的位置保持不变。
[0105] 本发明提供的快速获取户型结构的方法,通过在墙体扫描成功时,在扫描界面中的瞄准准星图标的预设位置利用预设扫描成功提示图标打标记;并且,对应于单个墙体,预设扫描成功提示图标只标记一次,当瞄准准星图标位置改变时,预设扫描成功提示图标的位置保持不变,提高了灵活性,增强了交互显示效果。
[0106] 根据本发明提供的一种快速获取户型结构的方法,所述方法还包括:在所述墙体扫描成功时,在所述预设扫描成功提示图标附近显示预设动画效果。
[0107] 在墙体扫描成功时,除了在墙体的表面贴合显示瞄准准星图标、在扫描界面中的墙体上利用预设扫描成功提示图标打标记外,还可在预设扫描成功提示图标附近显示预设动画效果。比如,可以通过基于Lidar获取的深度图计算得到当前墙体的点云,使用shader实现一个扩散的动画效果。
[0108] 图18是本发明提供的快速获取户型结构的方法中另一种扫描界面的显示示意图。如图18所示,在墙体扫描成功时,在墙体表面显示了扩散的动画效果。
[0109] 本发明提供的快速获取户型结构的方法,通过在墙体扫描成功时,在预设扫描成功提示图标附近显示预设动画效果,进一步增强了交互效果。
[0110] 根据本发明提供的一种快速获取户型结构的方法,所述方法还包括:获取所述墙体距所述移动终端的距离,并根据所述距离对所述瞄准准星图标进行缩放显示。
[0111] 瞄准准星图标不仅可以用于移动终端的Lidar扫描仪的扫描方向的指示,还可以用于当前扫描的墙体和移动终端距离的指示。可以通过对每一帧图像进行ARKit射线检测,获取碰撞点和Lidar扫描仪的距离,也即获得墙体距移动终端的距离,并根据这个距离对瞄准准星图标进行缩放显示。当墙体距移动终端的距离较近时,将瞄准准星图标放大显示,当墙体距移动终端的距离较远时,将瞄准准星图标缩小显示。
[0112] 本发明提供的快速获取户型结构的方法,通过获取墙体距移动终端的距离,并根据距离对瞄准准星图标进行缩放显示,进一步增强了交互效果。
[0113] 根据本发明提供的一种快速获取户型结构的方法,所述方法还包括:在所述Lidar扫描仪的镜头方向移动时,根据设置的动画延迟和/或通过对位置进行滤波确定所述瞄准准星图标的显示位置。
[0114] 在Lidar扫描仪的镜头方向移动时,瞄准准星图标是跟随Lidar扫描仪的镜头方向移动的。而由于Lidar扫描仪的镜头方向移动可能较快,为避免显示的卡顿和计算量过大,可以对瞄准准星图标的显示设置动画延迟,同时可对瞄准准星图标的位置进行滤波。对瞄准准星图标的显示设置动画延迟,是指对瞄准准星图标的显示设置一个延时时间,避免了在移动非常小的距离时持续处理瞄准准星图标的显示,造成资源的浪费。对瞄准准星的位置进行滤波,可以实现瞄准准星更加平滑的移动。可以通过计算当前位置和上一位置的加权和获取最终的瞄准准星图标的显示位置。比如上一位置(0,0,0)的权重是0.8,当前位置(0,1,0)的权重是0.2,则以加权计算得到的位置(0,0.2,0)作为更新位置,以减少抖动。
[0115] 本发明提供的快速获取户型结构的方法,通过在Lidar扫描仪的镜头方向移动时,根据设置的动画延迟和/或通过对位置进行滤波确定瞄准准星图标的显示位置,增强了显示效果,避免了冗余计算及显示的卡顿。
[0116] 根据本发明提供的一种快速获取户型结构的方法,所述方法还包括:将所述房屋的户型结构转换为预设的svg矢量图进行展示。
[0117] 得到房屋的户型结构后,可以根据需要转换成预设的svg矢量图进行展示。可以通过离线解析房屋结构化数据,转换成svg矢量数据展示。
[0118] 本发明提供的快速获取户型结构的方法,通过将所述房屋的户型结构转换为预设的svg矢量图进行展示,提高了户型展示的灵活性。
[0119] 图19是本发明提供的快速获取户型结构的方法的流程示意图之二。如图19所示,本发明提供快速获取户型结构的方法包括:
[0120] 在扫描空间结构之前,需要用户进行定位,获取南北朝向、位置及高度信息,用户在移动过程中会实时定位,系统自动将扫描的房间拼合、分层。定位后即可开始扫描,需要先扫描一个或多个闭合的空间,再在其上添加门窗等房屋结构,添加房屋结构时,会根据当前所处位置,自动判断添加到不同的房间中。本发明采用户型雷达图的方式,基于ARKit给予用户反馈当前定位状态的同时,会给予用户当前扫描动作反馈结构特征,比如,扫描一面墙,会在勾勒出墙面的位置,不同的户型雷达图也代表着当前扫描状态的不同;同时,点击户型雷达图进入户型预览图,用户可以对房间名称进行编辑,以生成更精确的户型图。为了帮助用户了解当前扫描步骤和约束,本发明预留一定空间区域,进行分步提醒。
[0121] 其中,在扫描部分,包括:
[0122] 1、位姿获取:墙体使用点击触碰的方式,门窗结构使用两个点位标记。基于ARKit的raycast获得碰撞点的位姿矩阵,计算出位置和触碰点法向量提供给算法。
[0123] 2、瞄准准星显示:每一帧进行ARKit射线检测,获得第一个碰撞点和相机的距离,作为缩放依据、获取具体位置的法向量,用于图片贴合依据。移动时为了效果流畅,会有0.3s的动画延迟,同时对位置进行滤波。
[0124] 3、流程实现:实现添加房间‑>添加墙‑>闭合检测‑>门窗‑>房间的扫描流程。
[0125] 4、本地化展示:本地展示框线obj,位姿与ARKit世界坐标对齐。
[0126] 5、点击墙体时的效果实现:基于Lidar获取的深度图计算得到当前的点云,使用shader实现一个扩散的动画效果。
[0127] 6、svg图展示:纯离线解析房屋结构化数据,转换成svg矢量数据展示。
[0128] 在雷达小地图实时展示部分,包括:
[0129] 1、根据手机雷达扫描获取的墙体位姿和距移动终端的距离,将扫描简略结果实时更新到雷达小地图内,然后根据位姿求得墙体的位置与对应各方位(ARKit世界坐标中的三个方向)的欧拉角(方向余弦矩阵求欧拉角),根据欧拉角确定墙体的朝向,在扫描下一个墙体时根据当前墙体朝向和上一个墙体朝向求得墙体之间的交点(此处用到了世界坐标系转换和空间坐标中求交点相关知识),然后连接墙体达到闭合效果,并将墙体之间的连线实时更新到雷达小地图中。
[0130] 2、扫描结束后给出墙体长度。
[0131] 3、基于iOS中scenekit对算法生成的点云obj文件进行读取,扫描完墙体之后实时渲染到雷达小地图中,同时根据ARKit实时进行室内定位:以ARKit获取到的实时位姿实时更新手机当前在房间内的位置,视角跟随手机移动。
[0132] 本发明提供的快速获取户型结构的方法,利用Lidar镜头对空间深度探测较准确的特征以及AR定位技术,帮助用户以快速简单的方式获得较为精准且完整的空间结构。该功能以明确的交互方式帮助用户在扫描中分步骤标定一些空间特征,实时呈现扫描过程中的结构预览结果,最终获得带有测量值的户型结构。
[0133] 下面对本发明提供的快速获取户型结构的装置进行描述,下文描述的快速获取户型结构的装置与上文描述的快速获取户型结构的方法可相互对应参照。
[0134] 图20是本发明提供的一种快速获取户型结构的装置的结构示意图。如图20所示,所述装置包括碰撞点信息获取模块10、墙体信息获取模块20、第一房间结构获取模块30、第二房间结构获取模块40及户型结构获取模块50,其中:碰撞点信息获取模块10用于:对于房屋的房间,利用移动终端的Lidar扫描仪获取墙体的碰撞点的位姿矩阵,根据所述位姿矩阵获取所述碰撞点的三维坐标和法向量;墙体信息获取模块20用于:根据所述碰撞点的三维坐标和法向量获取所述墙体的位置和朝向;第一房间结构获取模块30用于:根据所述墙体的位置和朝向得到所述房间的第一房间结构;第二房间结构获取模块40用于:在所述房间的第一房间结构中添加门窗结构,得到所述房间的第二房间结构;户型结构获取模块50用于:根据所述房间的第二房间结构得到所述房屋的户型结构。
[0135] 本发明提供的快速获取户型结构的装置,通过利用移动终端的Lidar扫描仪获取墙体的碰撞点的位姿矩阵,根据位姿矩阵获取碰撞点的三维坐标和法向量,根据碰撞点的三维坐标和法向量获取墙体的位置和朝向,根据墙体的位置和朝向得到房间的第一房间结构,在房间的第一房间结构中添加门窗结构,得到房间的第二房间结构,根据房间的第二房间结构得到房屋的户型结构,实现了户型结构的快速自动化获取,并且提高了户型结构的质量。
[0136] 根据本发明提供的一种快速获取户型结构的装置,第一房间结构获取模块30具体用于:根据连续扫描的相邻墙体的所述墙体的位置和朝向获取相邻墙体的墙线及墙线交点,利用所述墙线交点连接相邻墙体的墙线得到所述房间的第一房间结构。
[0137] 本发明提供的快速获取户型结构的装置,通过对墙体进行连续扫描,并利用墙线交点连接相邻墙线,最终获得房间的第一房间结构,提高了房间的第一房间结构的获取效率。
[0138] 根据本发明提供的一种快速获取户型结构的装置,第一房间结构获取模块30还用于:根据所述墙线交点的坐标计算墙体长度,并在所述第一房间结构中添加所述墙体长度。
[0139] 本发明提供的快速获取户型结构的装置,通过根据墙线交点的坐标计算墙体长度,并在第一房间结构中添加墙体长度,实现了带有测量值的户型结构的获取。
[0140] 根据本发明提供的一种快速获取户型结构的装置,第一房间结构获取模块30还用于:利用Lidar扫描仪获取地板或天花板的位置;户型结构获取模块50具体用于:根据所述墙体的位置和朝向进行房间拼合;和/或,根据所述地板或所述天花板的位置进行房间分层,从而得到所述房屋的户型结构。
[0141] 本发明提供的快速获取户型结构的装置,通过利用Lidar扫描仪获取地板或天花板的位置,根据述墙体的位置和朝向进行房间拼合,和/或,根据地板或天花板的位置进行房间分层,从而得到房屋的户型结构,实现了多类型房屋的户型结构的获取。
[0142] 根据本发明提供的一种快速获取户型结构的装置,所述装置还包括展示模块,所述展示模块用于:在所述移动终端的扫描界面的预设位置显示户型雷达图,所述户型雷达图用于实时显示所述移动终端的定位状态和/或扫描处理状态。
[0143] 本发明提供的快速获取户型结构的装置,通过在在移动终端的扫描界面的预设位置显示户型雷达图,用于实时显示移动终端的定位状态和/或扫描处理状态,有利于直观显示当前的处理进程,提高了交互效果。
[0144] 根据本发明提供的一种快速获取户型结构的装置,所述户型雷达图显示有所述移动终端的位置和视角、根据所述墙体的位置和朝向获取的画墙结果、所述第一房间结构、所述第二房间结构及所述户型结构中的至少一种。
[0145] 本发明提供的快速获取户型结构的装置,通过使得户型雷达图显示有移动终端的位置和视角、根据墙体的位置和朝向获取的画墙结果、第一房间结构、第二房间结构及户型结构中的至少一种,提高了户型雷达图显示内容的丰富性。
[0146] 根据本发明提供的一种快速获取户型结构的装置,所述展示模块还用于:在获取到点击所述户型雷达图的信息时,在所述扫描界面放大显示户型预览图;其中,所述户型预览图与不同状态下的所述户型雷达图相对应,并且,所述户型预览图中去除所述移动终端的位置和视角的显示。
[0147] 本发明提供的快速获取户型结构的装置,通过点击户型雷达图显示与户型雷达图对应的户型预览图,便于直观查看户型生成效果。
[0148] 根据本发明提供的一种快速获取户型结构的装置,所述展示模块还用于:获取所述移动终端的所述定位状态和/或所述扫描处理状态,根据所述定位状态和/或所述扫描处理状态,在所述扫描界面和/或所述户型预览图中显示预设分步操作提醒信息。
[0149] 本发明提供的快速获取户型结构的装置,通过获取移动终端的定位状态和/或扫描处理状态,在扫描界面和/或户型预览图中显示预设分步操作提醒信息,进一步提高了交互性能,有利于户型结构的快速、成功获取。
[0150] 根据本发明提供的一种快速获取户型结构的装置,所述展示模块还用于:在所述扫描界面和/或所述户型预览图中显示预设操作反馈信息;其中,所述预设操作反馈信息包括在获知对于一个房间未进行墙体连续扫描时,需要连续扫描墙体的提示信息。
[0151] 本发明提供的快速获取户型结构的装置,通过设置预设操作反馈信息,在操作过程中针对用户行为进行实时反馈,在约束用户行为的同时,帮助用户快速准确的进行空间结构的扫描。
[0152] 根据本发明提供的一种快速获取户型结构的装置,所述展示模块还用于:在所述墙体的扫描过程中,跟随所述Lidar扫描仪的镜头在所述扫描界面显示预设的瞄准准星图标。
[0153] 本发明提供的快速获取户型结构的装置,通过在墙体的扫描过程中,跟随Lidar扫描仪的镜头显示预设的瞄准准星图标,进一步增强了交互性能,有利于识别当前的扫描位置。
[0154] 根据本发明提供的一种快速获取户型结构的装置,所述展示模块还用于:在所述墙体扫描成功时,根据所述墙体的位置和朝向在所述墙体的表面贴合显示所述瞄准准星图标。
[0155] 本发明提供的快速获取户型结构的装置,通过在墙体扫描成功时,根据墙体的位置和朝向在墙体的表面贴合显示瞄准准星图标,有利于明晰当前扫描成功的墙体。
[0156] 根据本发明提供的一种快速获取户型结构的装置,所述展示模块还用于:在所述墙体扫描成功时,在所述扫描界面中的所述墙体上利用预设扫描成功提示图标打标记。
[0157] 本发明提供的快速获取户型结构的装置,通过在墙体扫描成功时,在扫描界面中的墙体上利用预设扫描成功提示图标打标记,有利于明晰扫描进程。
[0158] 根据本发明提供的一种快速获取户型结构的装置,所述展示模块在用于所述在所述墙体扫描成功时,在所述扫描界面中的所述墙体上利用预设扫描成功提示图标打标记时,具体用于:在所述墙体扫描成功时,在所述扫描界面中的所述瞄准准星图标的预设位置利用所述预设扫描成功提示图标打标记;并且,对应于单个墙体,所述预设扫描成功提示图标只标记一次,当所述瞄准准星图标位置改变时,所述预设扫描成功提示图标的位置保持不变。
[0159] 本发明提供的快速获取户型结构的装置,通过在墙体扫描成功时,在扫描界面中的瞄准准星图标的预设位置利用预设扫描成功提示图标打标记;并且,对应于单个墙体,预设扫描成功提示图标只标记一次,当瞄准准星图标位置改变时,预设扫描成功提示图标的位置保持不变,提高了灵活性,增强了交互显示效果。
[0160] 根据本发明提供的一种快速获取户型结构的装置,所述展示模块还用于:在所述墙体扫描成功时,在所述预设扫描成功提示图标附近显示预设动画效果。
[0161] 本发明提供的快速获取户型结构的装置,通过在墙体扫描成功时,在预设扫描成功提示图标附近显示预设动画效果,进一步增强了交互效果。
[0162] 根据本发明提供的一种快速获取户型结构的装置,所述展示模块还用于:获取所述墙体距所述移动终端的距离,并根据所述距离对所述瞄准准星图标进行缩放显示。
[0163] 本发明提供的快速获取户型结构的装置,通过获取墙体距移动终端的距离,并根据距离对瞄准准星图标进行缩放显示,进一步增强了交互效果。
[0164] 根据本发明提供的一种快速获取户型结构的装置,所述展示模块还用于:在所述Lidar扫描仪的镜头方向移动时,根据设置的动画延迟和/或通过对位置进行滤波确定所述瞄准准星图标的显示位置。
[0165] 本发明提供的快速获取户型结构的装置,通过在Lidar扫描仪的镜头方向移动时,根据设置的动画延迟和/或通过对位置进行滤波确定瞄准准星图标的显示位置,增强了显示效果,避免了冗余计算及显示的卡顿。
[0166] 根据本发明提供的一种快速获取户型结构的装置,所述装置还包括svg矢量图转换模块,所述svg矢量图转换模块用于:将所述房屋的户型结构转换为预设的svg矢量图进行展示。
[0167] 本发明提供的快速获取户型结构的装置,通过将所述房屋的户型结构转换为预设的svg矢量图进行展示,提高了户型展示的灵活性。
[0168] 图21是本发明提供的电子设备的结构示意图,如图21所示,该电子设备可以包括:处理器(processor)2110、通信接口(Communications Interface)2120、存储器(memory)
2130和通信总线2140,其中,处理器2110,通信接口2120,存储器2130通过通信总线2140完成相互间的通信。处理器2110可以调用存储器2130中的逻辑指令,以执行快速获取户型结构的方法,该方法包括:对于房屋的房间,利用移动终端的Lidar扫描仪获取墙体的碰撞点的位姿矩阵,根据所述位姿矩阵获取所述碰撞点的三维坐标和法向量;根据所述碰撞点的三维坐标和法向量获取所述墙体的位置和朝向;根据所述墙体的位置和朝向得到所述房间的第一房间结构;在所述房间的第一房间结构中添加门窗结构,得到所述房间的第二房间结构;根据所述房间的第二房间结构得到所述房屋的户型结构。
[0169] 此外,上述的存储器2130中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read‑Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0170] 另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的快速获取户型结构的方法,该方法包括:对于房屋的房间,利用移动终端的Lidar扫描仪获取墙体的碰撞点的位姿矩阵,根据所述位姿矩阵获取所述碰撞点的三维坐标和法向量;根据所述碰撞点的三维坐标和法向量获取所述墙体的位置和朝向;根据所述墙体的位置和朝向得到所述房间的第一房间结构;在所述房间的第一房间结构中添加门窗结构,得到所述房间的第二房间结构;根据所述房间的第二房间结构得到所述房屋的户型结构。
[0171] 又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的快速获取户型结构的方法,该方法包括:对于房屋的房间,利用移动终端的Lidar扫描仪获取墙体的碰撞点的位姿矩阵,根据所述位姿矩阵获取所述碰撞点的三维坐标和法向量;根据所述碰撞点的三维坐标和法向量获取所述墙体的位置和朝向;根据所述墙体的位置和朝向得到所述房间的第一房间结构;在所述房间的第一房间结构中添加门窗结构,得到所述房间的第二房间结构;根据所述房间的第二房间结构得到所述房屋的户型结构。
[0172] 以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0173] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0174] 最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。