CN116824068B - 面向复杂动态场景中点云流的实时重建方法、装置及设备 - Google Patents
面向复杂动态场景中点云流的实时重建方法、装置及设备 Download PDFInfo
- Publication number
- CN116824068B CN116824068B CN202311102502.0A CN202311102502A CN116824068B CN 116824068 B CN116824068 B CN 116824068B CN 202311102502 A CN202311102502 A CN 202311102502A CN 116824068 B CN116824068 B CN 116824068B
- Authority
- CN
- China
- Prior art keywords
- voxel
- voxels
- point cloud
- point
- current
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 120
- 230000035515 penetration Effects 0.000 claims abstract description 57
- 239000013598 vector Substances 0.000 claims description 96
- 230000003068 static effect Effects 0.000 claims description 37
- 238000004590 computer program Methods 0.000 claims description 24
- 230000008569 process Effects 0.000 claims description 14
- 230000008030 elimination Effects 0.000 claims description 10
- 238000003379 elimination reaction Methods 0.000 claims description 10
- 238000012545 processing Methods 0.000 claims description 7
- 230000004927 fusion Effects 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 20
- 238000004891 communication Methods 0.000 description 8
- 238000002372 labelling Methods 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000005855 radiation Effects 0.000 description 3
- 241001270131 Agaricus moelleri Species 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000009792 diffusion process Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000011960 computer-aided design Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000007499 fusion processing Methods 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000149 penetrating effect Effects 0.000 description 1
- 238000004540 process dynamic Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Landscapes
- Image Generation (AREA)
- Image Processing (AREA)
Abstract
本申请涉及一种面向复杂动态场景中点云流的实时重建方法、装置及设备。方法包括:根据传感器采集的当前帧点云与传感器间的相对位置,确定搜索半径;从当前体素集合中确定与搜索半径匹配的子体素集合;当前体素集合是基于当前帧点云和在先帧点云确定;将子体素集合中的体素和当前帧点云中的点投影到预设球空间中,确定子体素集合中的体素分别投影至的子空间,以及当前帧点云中的点分别投影至的子空间;针对投影至同一子空间中的点和体素,比对点和体素分别与传感器之间的距离,根据比对结果对体素进行穿透识别;从当前体素集合中剔除被穿透的体素,并基于剔除后剩余的体素进行三维重建,得到目标重建结果。采用本方法能够提高三维重建的质量。
Description
技术领域
本申请涉及三维重建技术领域,特别是涉及一种面向复杂动态场景中点云流的实时重建方法、装置及设备。
背景技术
三维重建是计算机图形学中的经典问题之一。它涉及将点云数据转换为三维模型或场景的过程。三维重建广泛应用于虚拟现实、增强现实、计算机辅助设计、医学图像处理等领域。
传统技术中,直接基于采集的点云数据进行三维重建,无法针对性地对场景中诸如行人、车辆等的动态物体点云进行处理,导致最终的重建结果出现较多动态残影,降低了重建结果的质量。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高重建结果质量的面向复杂动态场景中点云流的实时重建方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种面向复杂动态场景中点云流的实时重建方法。所述方法包括:
根据传感器采集的当前帧点云与传感器间的相对位置,确定搜索半径;
从当前体素集合中确定与搜索半径匹配的子体素集合;当前体素集合是基于当前帧点云和在先帧点云确定;
将子体素集合中的体素和当前帧点云中的点投影到预设球空间中,确定子体素集合中的体素分别投影至的子空间,以及当前帧点云中的点分别投影至的子空间;
针对投影至同一子空间中的点和体素,比对点和体素分别与传感器之间的距离,根据比对结果对体素进行穿透识别;
从当前体素集合中剔除被穿透的体素,并基于剔除后剩余的体素进行三维重建,得到目标重建结果。
第二方面,本申请还提供了一种面向复杂动态场景中点云流的实时重建装置。装置包括:
选择单元,用于根据传感器采集的当前帧点云与传感器间的相对位置,确定搜索半径;从当前体素集合中确定与搜索半径匹配的子体素集合;当前体素集合是基于当前帧点云和在先帧点云确定;
投影单元,用于将子体素集合中的体素和当前帧点云中的点投影到预设球空间中,确定子体素集合中的体素分别投影至的子空间,以及当前帧点云中的点分别投影至的子空间;
识别单元,用于针对投影至同一子空间中的点和体素,比对点和体素分别与传感器之间的距离,根据比对结果对体素进行穿透识别;
重建单元,用于从当前体素集合中剔除被穿透的体素,并基于剔除后剩余的体素进行三维重建,得到目标重建结果。
第三方面,本申请还提供了一种计算机设备。计算机设备包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述的方法中的步骤。
第四方面,本申请还提供了一种计算机可读存储介质。计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述的方法中的步骤。
第五方面,本申请还提供了一种计算机程序产品。计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述的方法中的步骤。
上述面向复杂动态场景中点云流的实时重建方法、装置、计算机设备、存储介质和计算机程序产品,根据传感器采集的当前帧点云与传感器间的相对位置,确定搜索半径;当前体素集合是基于当前帧点云和在先帧点云确定;在基于点云流的三维重建过程中,涉及到当前帧点云范围内的场景变化,故而从当前体素集合中确定与搜索半径匹配的子体素集合,对子体素集合中的体素进行穿透识别,而非直接对当前体素集合中的体素进行穿透识别,能够减少计算量,加快三维重建的速度。进而,将子体素集合中的体素和当前帧点云中的点投影到预设球空间中,确定子体素集合中的体素分别投影至的子空间,以及当前帧点云中的点分别投影至的子空间,预设球空间中子空间的划分方式与传感器发出射线的方式相匹配,通过模拟传感器发射出的多个射线,将预设球空间划分成多个子空间,每个子空间中的点和体素可以被认为处于同一射线上,针对投影至同一子空间中的点和体素,比对点和体素分别与传感器之间的距离,根据比对结果对体素进行穿透识别;被穿透的体素在过去时刻相应物体被扫描才能出现,而当前帧点云又说明该体素的位置已经不存在物体,即,被穿透的体素很有可能就是物体运动留下的动态残影,从当前体素集合中剔除被穿透的体素,后续基于剔除后剩余的体素进行三维重建,能够减少目标重建结果中的动态残影,提高重建质量。
附图说明
图1为本申请实施例提供的一种面向复杂动态场景中点云流的实时重建方法的流程示意图;
图2为本申请实施例提供的一种在实际环境中进行数据采集,并重建出重建结果的示意图;
图3为本申请实施例提供的一种三维重建系统的三维重建流程的示意图;
图4为本申请实施例提供的一种基于可见性的重建方法得到的重建结果、和基于扇形划分和伪面剔除的改进方法得到的重建结果;
图5为本申请实施例提供的一种区域划分方法将当前体素集合划分成区域集合的示意图;
图6为本申请实施例提供的一种第一方法、第二方法、第三方法和本方法得到的点的法向量的准确率的示意图;
图7为本申请实施例提供的一种第一方法、第二方法、第三方法和本方法得到的目标重建结果的示意图;
图8为本申请实施例提供的一种剔除动态残影的第一重建结果和未剔除动态残影的第二重建结果的示意图;
图9为本申请实施例提供的一种基于扇形划分方法得到重建结果的时间性能的示意图;
图10为本申请实施例提供的一种第四方法和本方法得到的点的法向量的准确率对比的示意图;
图11为本申请实施例提供的一种目标重建结果应用于自主导航的示意图;
图12为本申请实施例提供的一种静态场景点云应用于离线重建的示意图;
图13为本申请实施例提供的一种面向复杂动态场景中点云流的实时重建装置的结构框图;
图14为本申请实施例提供的一种计算机设备的内部结构图;
图15为本申请实施例提供的另一种计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种面向复杂动态场景中点云流的实时重建方法,以该方法应用于计算机设备为例进行说明,包括以下步骤:
S102,根据传感器采集的当前帧点云与传感器间的相对位置,确定搜索半径。
其中,传感器用于采集点云。可以理解,传感器可以通过发出射线并测量反射或变形来获取点云数据。射线可以是光线或激光束。
在一些实施例中,搜索半径用于指示与当前帧点云匹配的体素搜索范围。计算机设备可以确定将传感器作为球心,与搜索半径构成的体素搜索范围。
在一些实施例中,计算机设备可以从当前帧点云中每个点与传感器间的相对距离中确定出最大的相对距离,得到搜索半径。
在一些实施例中,计算机设备可以对当前帧点云进行点云配准处理,以得到配准后的点云和传感器的里程计信息。可以理解,当进行点云配准时,通常会将传感器的里程计信息与当前帧点云对齐到同一全局坐标系下。传感器的里程计信息中包括传感器在全局坐标系下的中心位置。配准后的点云中的点具备在全局坐标系下的坐标。根据配准后的点云中点在全局坐标系下的坐标和传感器在全局坐标系下的中心位置,确定当前帧点云中的点与传感器的相对距离。
在一些实施例中,公式(1)用于确定搜索半径。
(1)
其中,r代表搜索半径。k代表当前帧点云中点的数量。pi代表当前帧点云中第i个点。s代表传感器的中心。||pi-s||代表当前帧点云中第i个点与传感器间的相对距离。
在一些实施例中,传感器可以是激光雷达。激光雷达使用激光束发射器发出射线以采集点云。
在一些实施例中,激光雷达包括环形发射器。环形由多个激光发射器组成,这些发射器均匀地分布在一个圆环形的结构上。环形发射器在多个方向上同时发射激光束,从而快速地扫描周围的环境。
在一些实施例中,计算机设备可以包括终端或服务器中的至少一种。可以理解,本申请实施例提供的方法可以应用于终端或服务器,也可以应用于包括终端和服务器的系统,通过终端和服务器的交互实现。其中,终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
S104,从当前体素集合中确定与搜索半径匹配的子体素集合;当前体素集合是基于当前帧点云和在先帧点云确定。
其中,当前体素集合中包括在先帧点云中表征静态场景的点对应的体素以及当前帧点云中每个点对应的体素。可以理解,在先帧点云是指在当前帧点云之前的接收到的点云。对于每次接收到的当前帧点云,都会综合当前帧点云中每个点对应的目标体素和在先体素集合,得到当前体素集合。之后,从当前体素集合中剔除代表动态残影的体素,能够得到下一帧点云对应的在先体素集合。
在一些实施例中,子体素集合中的体素处于以传感器为球心与搜索半径构成的球形范围内。
在一些实施例中,当前体素集合中每个体素具备坐标。计算机设备可以根据当前体素集合中每个体素的坐标确定与搜索半径匹配的子体素集合。
S106,将子体素集合中的体素和当前帧点云中的点投影到预设球空间中,确定子体素集合中的体素分别投影至的子空间,以及当前帧点云中的点分别投影至的子空间。
在一些实施例中,预设球空间可以是单位球空间。计算机设备可以将子体素集合中每个体素以及当前帧点云中的每个点投影到同一单位球空间中。
在一些实施例中,预设球空间可以是球面空间。计算机设备可以根据依据水平角和俯仰角对球面空间进行划分,确定球面空间中的至少一个子空间。比如,依据水平角和俯仰角将球面空间划分为1440*720个空间。
可以理解,传感器在采集点云时,从中心发射不同水平角和俯仰角的射线,划分预设球空间得到的每个子空间可以模拟一条射线,而投影到同一子空间中的点和体素可以被认为处于同一射线上。
在一些实施例中,计算机设备将体素和点投影到预设球空间后,可以确定体素和点分别对应的球坐标。依据体素和点分别对应的求坐标,确定体素投影至的子空间,以及点投影至的子空间。
S108,针对投影至同一子空间中的点和体素,比对点和体素分别与传感器之间的距离,根据比对结果对体素进行穿透识别。
在一些实施例中,当前帧点云中的点具备在全局坐标系下的坐标。当前体素集合中的体素具备在全局坐标系下的坐标。传感器的里程计信息包括全局坐标系下传感器的中心位置。计算机设备可以依据子体素集合中体素在全局坐标系下的坐标和传感器在全局坐标系下的中心位置确定子体素集合中体素与传感器之间的距离,得到子体素集合中体素的深度。依据当前帧点云中点在全局坐标系下的坐标和传感器在全局坐标系下的中心位置确定当前帧点云中的点与传感器之间的距离,得到当前帧点云中点的深度。
在一些实施例中,当前体素集合中的体素具备相应的穿透次数。
在一些实施例中,对于投影至同一子空间中的点和体素,在体素的深度不小于任意点的深度的情况下,将该体素对应的穿透次数保持不变。
在一些实施例中,对于投影至同一子空间中的点和体素,在体素的深度小于任意点的深度的情况下,增加该体素对应的穿透次数。可以理解,同一子空间中的点和体素被认为是同一射线采集到的,那么处于当前帧点云中点的前面的体素被穿透,即,该体素在过去时刻相应物体被扫描才能出现,而当前帧点云又说明该体素的位置已经不存在物体,那么该体素很有可能就是物体运动留下的动态残影。
在一些实施例中,计算机设备可以将穿透次数达到预设次数阈值的体素确定为被穿透的体素。可以理解,连续多次被判断为动态残影的体素,才能将其真正从体素集合中删除,避免误删的问题。
S110,从当前体素集合中剔除被穿透的体素,并基于剔除后剩余的体素进行三维重建,得到目标重建结果。
在一些实施例中,计算机设备可以计算剔除后剩余的体素上每个角点的截断有符号距离函数(Truncated Signed Distance Function,TSDF)值,进而生成整个场景空间的截断有符号距离函数场,将截断有符号距离函数场输入到三维重建算法中即可重建出整个场景的网格模型,得到目标重建结果。可以理解,本申请实施例中对于三维重建算法不限定,比如,三维重建算法可以是蒙特卡洛算法(Monte Carlo algorithm)。
在一些实施例中,如图2所示,提供了在实际环境中进行数据采集,并重建出重建结果的示意图。本申请实施例提供的方法使用搭载激光雷达的无人车进行数据采集,在无人车从1行驶至6的过程中实时输出重建结果。两侧图像中分别展示了1、2、3、4、5、6这6个实际场景和相应的重建结果。中间图像展示了由1到6的拼接后的重建结果。
上述面向复杂动态场景中点云流的实时重建方法中,根据传感器采集的当前帧点云与传感器间的相对位置,确定搜索半径;当前体素集合是基于当前帧点云和在先帧点云确定;在基于点云流的三维重建过程中,涉及到当前帧点云范围内的场景变化,故而从当前体素集合中确定与搜索半径匹配的子体素集合,对子体素集合中的体素进行穿透识别,而非直接对当前体素集合中的体素进行穿透识别,能够减少计算量,加快三维重建的速度。进而,将子体素集合中的体素和当前帧点云中的点投影到预设球空间中,确定子体素集合中的体素分别投影至的子空间,以及当前帧点云中的点分别投影至的子空间,预设球空间中子空间的划分方式与传感器发出射线的方式相匹配,通过模拟传感器发射出的多个射线,将预设球空间划分成多个子空间,每个子空间中的点和体素可以被认为处于同一射线上,针对投影至同一子空间中的点和体素,比对点和体素分别与传感器之间的距离,根据比对结果对体素进行穿透识别;被穿透的体素在过去时刻相应物体被扫描才能出现,而当前帧点云又说明该体素的位置已经不存在物体,即,被穿透的体素很有可能就是物体运动留下的动态残影,从当前体素集合中剔除被穿透的体素,后续基于剔除后剩余的体素进行三维重建,能够减少目标重建结果中的动态残影,提高重建质量。
在一些实施例中,针对投影至同一子空间中的点和体素,比对点和体素分别与传感器之间的距离,根据比对结果对体素进行穿透识别,包括:根据当前帧点云中的点和子体素集合中的体素分别与传感器之间的距离,确定当前帧点云中的点的深度以及子体素集合中的体素的深度;针对投影至同一子空间中的点和体素,将体素的深度和点的深度进行比对,在体素的深度小于点的深度的情况下,增加体素对应的穿透次数;基于预设次数阈值和子体素集合中的各体素分别对应的穿透次数,对体素进行穿透识别。
在一些实施例中,如果射线采集到了某个点,那么从传感器中心到该点之间的空间应该都是空的。假如,体素v和点p被投影至同一子空间中。在体素v的深度小于点p的深度,即|| v-s ||<|| p-s ||时,点p位于体素v后,同一射线采集到在前的点后无法采集到在后的点,故而体素v很可能在当前时刻应是空的。在这种情况下,可以称体素 v被穿透。
在一些实施例中,在体素对应的穿透次数达到预设次数阈值的情况下,计算机设备可以将该体素确定为被穿透的体素。
在一些实施例中,在体素的深度小于投影至同一空间中的任意点的深度的情况下,增加体素对应的穿透次数。此时,穿透次数用于指示穿透相应体素的各点分别属于的连续帧数。可以理解,穿透次数与连续帧数一致。比如,穿透次数为2,表征连续两帧点云中的点都穿透了相应体素。
本实施例中,通过比对投影至同一子空间中的点和体素的深度,在体素的深度小于点的深度的情况下,增加体素对应的穿透次数,根据预设次数阈值和穿透次数对体素进行穿透识别,避免仅一次比对深度不够准确的问题。
在一些实施例中,在体素的深度小于点的深度的情况下,增加体素对应的穿透次数,包括:在体素的深度小于点的深度的情况,确定点对应的截面;在体素处于截面与传感器构成的圆锥体内部的情况下,增加体素对应的穿透次数;截面的大小与点的深度相关。
在一些实施例中,对于投影至同一子空间中的体素和点,在体素的深度小于点的深度的情况下,根据该点的深度确定该点对应的截面。可以理解,该点的深度越小说明该点真实存在的置信度越高,该点对应的截面可以设置得越大。点的深度和相应的截面负相关。
在一些实施例中,激光雷达采集的数据往往稀疏且范围较大,这导致仅仅比较点和体素的深度存在误判或漏判的情况。稀疏且范围广的数据使得点p未必能代表整个子空间。假设每个点都可以代表一个小的圆形面片,圆形面片的圆心、半径、法向量分别对应点的位置、置信度、法向量。那么这个圆形面片就可以与传感器的中心 s 构成一个斜圆锥,只有体素 v 处于该斜圆锥内部才认为是真正的动态残影并增加其对应的穿透次数。
在一些实施例中,在体素处于截面与传感器构成的圆锥体内部的情况下,对体素对应的穿透次数加1。此外,为了进一步减小误差,可以规定只有两次连续被判断为动态残影的体素,即穿透次数为2的体素,才能将其真正从当前体素集合中剔除。使用体素中的穿透次数属性进行记录,初始值为0,体素每次被穿透则将穿透次数加1,如果更新后穿透次数为2则将该体素从当前体素集合中删除。
在一些实施例中,基于当前帧点云和剔除后剩余的体素进行点云融合,以将当前帧点云中的点按照空间位置分配至剔除后剩余的每个体素中,针对被分配到点的体素,将该体素的穿透次数置零。可以理解,被分配到点的体素被认为是当前时刻被观测到的体素,穿透次数归0,用于基于下一帧点云的穿透识别。
在一些实施例中,计算机设备可以基于当前帧点云和剔除后剩余的体素进行点云融合,以得到静态场景点云。可以理解,剔除后剩余的体素中包括代表静态场景的体素,将当前帧点云与代表静态场景的体素融合后即可得到静态场景点云。静态场景点云可以用于支持离线重建。
本实施例中,仅通过比对点和体素的深度存在不够准确的问题,通过在体素的深度小于点的深度的情况,确定点对应的截面;在体素处于截面与传感器构成的圆锥体内部的情况下,增加体素对应的穿透次数,能够提高穿透识别的准确性。
在一些实施例中,当前体素集合中包括代表静态场景的体素集合和代表动态残影的体素集合;代表动态残影的体素集合的规模小于代表静态场景的体素集合;方法还包括:根据当前体素集合中各体素间的法向量差异,对当前体素集合中的体素进行区域增长,以将当前体素集合划分成至少一个区域集合;根据每个区域集合的体素数量,从至少一个区域集合中确定出动态残影对应的区域集合;从当前体素集合中剔除被穿透的体素,包括:从当前体素集合中剔除被穿透的体素和动态残影对应的区域集合。
在一些实施例中,当前体素集合中的体素具备法向量和时间戳。计算机设备可以根据当前体素集合中各体素间的法向量差异或时间戳差异中的至少一种,对当前体素集合中的体素进行区域增长。
可以理解,代表动态残影的体素和静态场景的体素在法向量上和时间戳上存在差异。体素的时间戳代表该体素最后一次被更新的时间。通常情况下,静态场景会经常被扫描到,因此其时间戳更靠近当前时间;而动态残影如果已经从某个位置离开,那么那个位置的时间戳必然会停留在很久以前的时刻。另外,不同物体相接触的位置的体素之间,其法向量一般差距较大。
在一些实施例中,区域增长的规则包括朝法向量相似的邻近体素增长,或者朝时间戳相近的邻近体素增长。其中,体素间的法向量的余弦相似度越接近1则表征体素间的法向量越相似。通过这样的增长方式,可以将体素划分为若干个区域集合。由于静态场景往往较大且与地面相连接,代表静态场景的区域集合往往规模较大,相比之下代表动态物体或动态残影的体素集合往往规模较小,因此将体素数量小于预设数量阈值的区域集合视为动态残影对应的区域集合。比如,预设数量阈值可以为150。
在一些实施例中,计算机设备可以在对当前体素集合中体素进行区域增长的过程中,在相邻体素间的法向量相似度大于预设法向量相似增长阈值,或者相邻体素间的时间戳差异小于预设时间增长阈值的情况下,确定上述的相邻体素属于同一区域集合;在相邻体素间的法向量相似度不大于预设法向量相似增长阈值,并且该相邻体素间的时间戳差异不小于预设时间增长阈值的情况下,确定上述的相邻体素不属于同一区域集合。
本实施例中,通过根据当前体素集合中各体素间的法向量差异,对当前体素集合中的体素进行区域增长,以将当前体素集合划分成至少一个区域集合;根据每个区域集合的体素数量,从至少一个区域集合中确定出动态残影对应的区域集合;从当前体素集合中剔除被穿透的体素和动态残影对应的区域集合,由于点云数据的稀疏,代表动态残影的体素未必为被穿透的体素,通过区域增长的方式可以划分出代表动态残影的区域集合,尽可能地当前体素集合中代表动态残影的体素,以提高重建质量。
在一些实施例中,方法还包括:根据当前帧点云确定初始网格模型;针对初始网格模型中的每个三角面片,基于传感器和三角面片的中心确定三角面片对应的射线方向向量;确定射线方向向量与三角面片的法向量之间的相似度,得到每个三角面片对应的相似度;在相似度未达到预设相似阈值的情况下,从初始网格模型中剔除三角面片,以得到剔除后剩余的网格模型;针对当前帧点云中的每个点,从剔除后剩余的网格模型中确定包括点的至少一个三角面片,并对至少一个三角面片的法向量进行加权融合,得到点的法向量;其中,点的法向量用于确定点对应的体素的法向量。
在一些实施例中,计算机设备可以采用基于可见性的重建方法(GlobalHypothesis Point Registration,GHPR),对配准后的当前帧点云进行重建,得到初始网格模型。
在一些实施例中,计算机设备可以将对当前帧点云进行划分,得到至少一个点云子集。通过多线程并行地对每个点云子集进行重建,得到子网格模型。合并各子网格模型得到初始网格模型。
在一些实施例中,计算机设备可以对每帧点云进行扇形划分,得到各点云子集。通过多线程分别对每个点云子集并行地进行重建,得到子重建结果。合并各子重建结果得到单帧重建结果。
在一些实施例中,直接使用基于可见性的重建方法进行重建无法避免地产生伪面,即,不合理的三角面片。为了去除这些伪面,利用激光雷达的如下特性:当场景中的一个物体的表面平行于射线时,激光雷达无法准确采集到该表面的位置。因此,本申请实施例中将与射线接近平行的三角面片进行剔除。具体可以采用射线方向向量与三角面片的法向量之间的相似性判断射线与三角面片是否平行。比如,对于三角面片的三个顶点 pa,pb,pc,先求得三角面片的中心 po=( pa+ pb+ pc)/3,然后可以求出射线的方向向量 r= po-s ,其中s 是激光雷达的中心位置,是射线的起点。接着,计算出该三角面片的法向量 n=( pa- pb)×(pa- pc)。最后,得到二者的余弦相似性值。余弦相似性值越接近于0,则三角面片与射线越接近于平行。因此,可设当一个三角面片对应的余弦相似性值 w<0.02 时,该三角面片不可信,并将其从初始网格模型中剔除。
在一些实施例中,计算机设备可以根据所述至少一个三角面片分别对应的相似度,对所述至少一个三角面片中每个三角面片的法向量进行加权求和,得到所述点的法向量。
在一些实施例中,在剔除掉大部分伪面后,使用剩余的网格模型估算当前帧点云的法向量。剔除后剩余的网格模型的网格顶点与当前帧点云的点存在一一对应的关系,因此可以使用网格顶点邻接的三角面片的法向量估算当前帧点云中的点的法向量。在此,本申请实施例使用上面提到的余弦相似性值作为权重,加权求和得到网格顶点的法向量,将网格顶点的法向量作为相应的当前帧点云中点的法向量。对于当前帧点云 P 中的一点p,可以找到在网格模型上的对应顶点v。假设与顶点 v 相邻的面片集合为,则点 p的法向量 n 可以通过公式(2)计算。
(2)
其中,是三角面片mi对应的权重,/>是三角面片 mi的法向量。通过上述方式的计算,就能够得到较为准确的当前帧点云的法向量,进而为后续重建工作提供重要数据。
本实施例中,根据当前帧点云确定初始网格模型;针对初始网格模型中的每个三角面片,基于传感器和三角面片的中心确定三角面片对应的射线方向向量;确定射线方向向量与三角面片的法向量之间的相似度,得到每个三角面片对应的相似度;在相似度未达到预设相似阈值的情况下,从初始网格模型中剔除三角面片,以得到剔除后剩余的网格模型,能够去除伪面,进而针对当前帧点云中的每个点,从剔除后剩余的网格模型中确定包括点的至少一个三角面片,并对至少一个三角面片的法向量进行加权融合,得到点的法向量,能够避免伪面的影响,保证点的法向量的准确性。
在一些实施例中,根据当前帧点云确定初始网格模型,包括:对当前帧点云进行点云配准处理,得到配准后的点云;确定配准后的点云中每个点在水平面对应的极坐标;基于预设角度和每个点对应的极坐标对配准后的点云进行扇形划分,得到各点云子集;通过多线程并行地对每个点云子集分别进行重建,得到各子网格模型;对各子网格模型进行合并,得到初始网格模型。
在一些实施例中,计算机设备可以从激光雷达处接受原始的当前帧点云,对原始的当前帧点云进行点云配准处理后,得到配准后的当前帧点云以及激光雷达的里程计。可以理解,激光雷达采集到的原始点云处于局部坐标系下,需要通过特征提取、特征匹配、运动估计等一系列操作计算出点云或激光雷达在全局坐标系下的位姿。
在一些实施例中,计算机设备可以基于激光雷达的实时三维定位与建图方法(Lidar Odometry and Mapping,LOAM)进行点云配准处理。可以理解,计算机设备可以搭载LOAM的开源程序,只需要启动LOAM 提供的启动运行文件(launch文件),就可以对激光雷达发送的原始的当前帧点云进行点云配准,以实时输出配准后的点云以及激光雷达的里程计。
在一些实施例中,传感器采集到的点云在远离传感器的位置会逐渐稀疏。在近距离时,射线的扩散角度较小,每个射线可以覆盖的目标面积较小,因此可以得到更密集的点云数据。但是随着距离的增加,射线的扩散角度逐渐加大,覆盖的目标面积变大,每个射线采集到的点云数量变少,导致点云数据变得稀疏。因此,在远离传感器的位置,采集到的点云数量较少,点云较为稀疏。
本申请实施例中正是利用点云逐渐稀疏的特性,未减少数据丢失,提出了扇形划分方法。采用扇形划分方法将当前帧点云划分为均等的若干份。具体的做法是,对于当前帧点云 P,建立 k 个相互不重叠的点云子集。将当前帧点云 P 中的每个点 p 转化为极坐标形式 (pr,pθ),则可按照如下规则进行划分。其中,当前帧点云中点的极坐标不考虑竖直方向,即垂直地面方向的竖轴。通过扇形划分方法将当前帧点云划分为独立的点云子集,就可以使用多线程方式分别对每个点云子集进行重建,最终将所有重建结果合并,进而实现对计算过程的加速。
本实施例中,对当前帧点云进行点云配准处理,得到配准后的点云;确定配准后的点云中每个点在水平面对应的极坐标;基于预设角度和每个点对应的极坐标对配准后的点云进行扇形划分,得到各点云子集;通过多线程并行地对每个点云子集分别进行重建,得到各子网格模型;对各子网格模型进行合并,得到初始网格模型,能够加速重建的过程。
在一些实施例中,当前体素集合是指当前的哈希体素表;方法还包括:确定当前帧点云中每个点对应的目标体素;根据目标体素,对在先的哈希体素表中的体素进行增量更新,得到当前的哈希体素表;在先的哈希体素表包括在先帧点云中表征静态场景的点对应的体素。
可以理解,本申请实施例中基于点云流进行三维重建,那么增量更新的步骤必不可少。当接收到点规模数为 k 的当前帧点云 P 时,首先计算每个点所对应的体素。令 e为体素的边长,那么点p对应的体素坐标vi为:。
如果计算得到的体素坐标 vi在在先的哈希体素表里无法搜索到,则在哈希体素表中添加新的体素,并将点 p 的坐标和法向量直接赋给体素 v,其中vi便是体素在哈希体素表中的索引项。如果体素坐标为 vi的体素已经存在,则使用点 p 的坐标和法向量值增量更新体素 v 的位置值和法向量值。
在一些实施例中,哈希体素表中每个体素中涉及至少一个点,体素具备这些点的位置值和法向量值。体素的法向量可以是综合这些点的法向量得到的。可以理解,计算机设备可以确定当前帧点云中每个点对应的目标体素。对于在先的哈希体素表中存在的目标体素,根据目标体素对应的点的法向量和坐标进行更新,对于在先的哈希体素表中不存在的目标体素,新增至哈希体素表内,得到当前的哈希体素表。当前的哈希体素表包括当前帧点云中每个点对应的目标体素,以及当前帧点云中每个点的信息。
在一些实施例中,使用哈希体素的形式来构建当前体素集合,与其他方法不同的是,并非在体素中存储更新SDF或TSDF值,而是存储点云中的点本身具备的坐标和法向量。这也就意味着哈希体素表中不仅包含有位置信息,还包含有法向量信息。此外,为了更好地处理场景中的动态残影,体素中添加了穿透次数、时间戳等信息。
在一些实施例中,计算机设备可以对当前的哈希体素表中的体素进行区域增长,得到区域集合。可以理解,由于哈希体素表中的体素具有相应点的信息,即,哈希体素表存储的是点云中点的信息,则对体素进行区域增长实际上是对当前的哈希体素表涉及到的点云进行区域增长,得到的区域集合能够指示表征静态场景的点集合和表征动态场景的点集合。
在一些实施例中,计算机设备可以根据相邻点间的法向量差异或时间戳差异中的至少一种,对哈希体素表体素对应的点云进行区域增长,得到区域集合。
本实施例中,确定当前帧点云中每个点对应的目标体素;根据目标体素,对在先的哈希体素表中的体素进行增量更新,得到当前的哈希体素表;在先的哈希体素表包括在先帧点云中表征静态场景的点对应的体素,后续基于当前的哈希体素表中的体素进行穿透识别后进行三维重建,能够提高重建质量。
在一些实施例中,本申请实施例还提供了一种用于实现上述所涉及的面向复杂动态场景中点云流的实时重建方法的三维重建系统,三维重建系统是基于机器人操作系统(Robot Operating System,ROS)平台搭建,包括点云配准模块、单帧重建模块和多帧重建模块,三维重建系统用于在处理器上运行并完成实时重建任务。
在一些实施例中,如图3所示提供了三维重建系统的三维重建流程的示意图。点云配准模块内置有激光雷达的实时三维定位与建图方法(Lidar Odometry and Mapping,LOAM)开源程序,该模块主要从激光雷达处接受原始点云以进行实时的点云配准,输出配准后的点云以及激光雷达的里程计。激光雷达采集到的原始点云处于局部坐标系下,需要通过特征提取、特征匹配、运动估计等一系列操作计算出点云或激光雷达在全局坐标系下的位姿。
单帧重建模块,主要对点云配准模块输出的每个单帧点云进行实时重建,并根据重建结果估算点云中每个点的法向量,输出含法向点云。可以理解,含法向点云中每个点具备法向量。单帧重建模块可以根据剔除后剩余的网格模型或初始网格模型确定单帧重建结果,以用于导航场景。
多帧重建模块,主要使用单帧重建模块输出的带有法向量的点云流对场景进行精细的重建。一方面,该模块可以在运行时实时更新哈希体素表;另一方面,该模块可以在更新过程中剔除动态残影,不断输出静态场景的目标重建结果。此外,多帧重建模块还能够在采集结束后输出融合处理后的点云,即用于支持离线重建的静态场景点云,以及整体的网格模型即静态重建结果,比如,图1中间图像展示的由1到6的拼接后的重建结果。
在一些实施例中,如图4所示,提供了基于可见性的重建方法得到的重建结果、和基于扇形划分和伪面剔除的改进方法得到的重建结果。图4的左侧部分是基于可见性的重建方法得到的重建结果,图4的右侧部分是基于扇形划分和伪面剔除的改进方法得到的创建结果。扇形划分为各点云子集后并行地重建,能够提高重建的速度,达到实时重建的效果,得到的初始网格模型经过伪面剔除处理后得到剔除后剩余的网格模型,能够提高重建的质量。扇形划分方法和伪面剔除方法结合,可以得到比原始的基于可见性的重建方法更加合理的重建结果。
在一些实施例中,如图5所示,提供了区域划分方法将当前体素集合划分成区域集合的示意图。由于静态物体会经常被扫描到,因此其时间戳更靠近当前时间,代表静态物体的体素间的时间差异往往较小,并且同一物体邻接的体素之间的法向量差距较小,故而朝着相邻体素间的法向量的余弦相似度大于预设法向相似增长阈值、或时间戳差异小于预设时间增长阈值的方向进行区域增长,并且相邻体素间的法向量的余弦相似度不大于预设法向相似增长阈值、且时间戳差异不小于预设时间增长阈值不再进行区域增长,能够准确地划分区域集合。
比如,Nh代表预设法向相似增长阈值。Th代表预设时间相似增长阈值。体素i和体素j为相邻体素,则在体素i的法向量ni和体素j的法向量nj之间的余弦相似度大于预设法向相似增长阈值、或体素i的时间戳ti和体素j的时间戳tj之间的时间差小于预设时间增长阈值的情况下确认体素i和体素j属于同一区域集合。在体素i的法向量ni和体素j的法向量nj之间的余弦相似度不大于预设法向相似增长阈值、且体素i的时间戳ti和体素j的时间戳tj之间的时间差不小于预设时间增长阈值的情况下确认体素i和体素j不属于同一区域集合。从而得到代表静态场景的区域集合,以及代表动态场景的区域集合。可以理解,代表动态场景的区域集合实际上就是代表动态残影的区域集合。
在一些实施例中,如图6所示,提供了第一方法、第二方法、第三方法和本方法得到的点的法向量的准确率。灰度越小表征准确率越高。本方法相较于第一方法、第二方法和第三方法,在第一场景、第二场景、第三场景和第四场景下的法向量估算更加准确。其中,第二场景属于第一场景中的一部分。第二场景对应的法向量的准确率结果,是第一场景对应的法向量准确结果的方框标注部分。第四场景属于第三场景中的一部分。第四场景对应的法向量的准确率结果,是第三场景对应的法向量准确结果的方框标注部分
在一些实施例中,如图7所示,提供了第一方法、第二方法、第三方法和本方法得到的目标重建结果。每个场景对应的下侧部分都是上侧部分中方框标记出的部分重建结果。本方法相较于第一方法、第二方法和第三方法,在第五场景、第六场景、第七场景、第八场景和第九场景下的目标重建结果中方框标记出的部分重建结果中动态残影更少,更加规整,能够保持场景中的几何结构。显然,使用本方法能够得到更高质量的目标重建结果。
在一些实施例中,如图8所示,提供了剔除动态残影的第一重建结果和未剔除动态残影的第二重建结果。第一重建结果中方框标出的部分就是第一重建结果的标注部分,即,第一重建结果的标注部分就是第一重建结果中方框标出的部分重建结果。第二重建结果中方框标出的部分就是第二重建结果的标注部分,即,第二重建结果的标注部分就是第二重建结果中方框标出的部分重建结果。在第五场景、第六场景、第七场景、第八场景和第九场景下,第一重建结果的标注部分相较于第二重建结果的标注部分更加干净规整,有效去除了动态残影,而第二重建结果的标注部分相较于第一重建结果的标注部分更加杂乱。显然,本方法能够有效地剔除动态残影,并且剔除动态残影的第一重建结果的质量更高。
在一些实施例中,如图9所示,提供了基于扇形划分方法得到重建结果的时间性能。其中,基于扇形划分方法得到重建结果包括扇形划分得到各点云子集,并行地对各点云子集进行重建后,拼接各个子重建结果,得到最终的单帧重建结果。虚线代表实时重建对应的时间性能。图9的左侧部分中,基于扇形划分方法得到重建结果在第一数据集和第二数据集上都能够达到实时重建的效果。图9的右侧部分中,基于扇形划分方法得到重建结果能达到实时重建的效果,而基于可见性的重建方法未能达到实时重建的效果。
在一些实施例中,如图10所示,提供了第四方法和本方法得到的点的法向量的准确率对比。在第一数据集和第二数据集上,本方法对应的准确率在第四方法对应的准确率的上方,本方法估算的法向量优于第四方法估算的法向量。
在一些实施例中,如图11所示,目标重建结果应用于自主导航的示意图。领域场景对应的1102部分中示出了机器人在领域场景中行驶的路线,1104部分示出了1102部分中方框标出的部分重建结果,随着机器人的不断行进,领域场景对应的部分重建结果越来越丰富。同样地,中心站场景对应的1106部分中示出了机器人在中心站场景中行驶的路线,1108部分示出了1106部分中方框标出的部分重建结果,随着机器人的不断行进,中心站场景对应的部分重建结果越来越丰富。可以理解,目标重建结果可以实时指导机器人识别周围环境,以指示机器人识别到领域和中心站的路线。在机器人自主导航的过程中,能够使用本申请提供的方法实时重建周围的环境,得到目标重建结果。目标重建结果对于导航路线能起到很好的指导作用,并且随着机器人的不断行进,目标重建结果会越来越丰富。
在一些实施例中,如图12所示,提供了静态场景点云应用于离线重建的示意图。多帧重建模块可以输出第五场景、第六场景、第七场景、第八场景和第九场景对应的静态场景点云,静态场景点云用于支持离线重建。其中,图12中示出了第五场景、第六场景、第七场景、第八场景和第九场景分别对应的离线重建结果,并将离线重建结果中浅灰度的方框和深灰度的方框标注的部分,进行了局部放大示意。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的面向复杂动态场景中点云流的实时重建方法的面向复杂动态场景中点云流的实时重建装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个面向复杂动态场景中点云流的实时重建装置实施例中的具体限定可以参见上文中对于面向复杂动态场景中点云流的实时重建方法的限定,在此不再赘述。
在一个实施例中,如图13所示,提供了一种面向复杂动态场景中点云流的实时重建装置,包括:选择单元1302、投影单元1304、识别单元1306和重建单元1308,其中:
选择单元1302,用于根据传感器采集的当前帧点云与传感器间的相对位置,确定搜索半径;从当前体素集合中确定与搜索半径匹配的子体素集合;当前体素集合是基于当前帧点云和在先帧点云确定;
投影单元1304,用于将子体素集合中的体素和当前帧点云中的点投影到预设球空间中,确定子体素集合中的体素分别投影至的子空间,以及当前帧点云中的点分别投影至的子空间;
识别单元1306,用于针对投影至同一子空间中的点和体素,比对点和体素分别与传感器之间的距离,根据比对结果对体素进行穿透识别;
重建单元1308,用于从当前体素集合中剔除被穿透的体素,并基于剔除后剩余的体素进行三维重建,得到目标重建结果。
在一些实施例中,识别单元1306,用于根据当前帧点云中的点和子体素集合中的体素分别与传感器之间的距离,确定当前帧点云中的点的深度以及子体素集合中的体素的深度;针对投影至同一子空间中的点和体素,将体素的深度和点的深度进行比对,在体素的深度小于点的深度的情况下,增加体素对应的穿透次数;基于预设次数阈值和子体素集合中的各体素分别对应的穿透次数,对体素进行穿透识别。
在一些实施例中,识别单元1306,用于在体素的深度小于点的深度的情况,确定点对应的截面;在体素处于截面与传感器构成的圆锥体内部的情况下,增加体素对应的穿透次数;截面的大小与点的深度相关。
在一些实施例中,当前体素集合中包括代表静态场景的体素集合和代表动态残影的体素集合;代表动态残影的体素集合的规模小于代表静态场景的体素集合;识别单元1306,用于根据当前体素集合中各体素间的法向量差异,对当前体素集合中的体素进行区域增长,以将当前体素集合划分成至少一个区域集合;根据每个区域集合的体素数量,从至少一个区域集合中确定出动态残影对应的区域集合;重建单元1308,用于从当前体素集合中剔除被穿透的体素和动态残影对应的区域集合。
在一些实施例中,识别单元1306,用于根据当前帧点云确定初始网格模型;针对初始网格模型中的每个三角面片,基于传感器和三角面片的中心确定三角面片对应的射线方向向量;确定射线方向向量与三角面片的法向量之间的相似度,得到每个三角面片对应的相似度;在相似度未达到预设相似阈值的情况下,从初始网格模型中剔除三角面片,以得到剔除后剩余的网格模型;针对当前帧点云中的每个点,从剔除后剩余的网格模型中确定包括点的至少一个三角面片,并对至少一个三角面片的法向量进行加权融合,得到点的法向量;其中,点的法向量用于确定点对应的体素的法向量。
在一些实施例中,识别单元1306,用于对当前帧点云进行点云配准处理,得到配准后的点云;确定配准后的点云中每个点在水平面对应的极坐标;基于预设角度和每个点对应的极坐标对配准后的点云进行扇形划分,得到各点云子集;通过多线程并行地对每个点云子集分别进行重建,得到各子网格模型;对各子网格模型进行合并,得到初始网格模型。
在一些实施例中,当前体素集合是指当前的哈希体素表;选择单元1302,用于确定当前帧点云中每个点对应的目标体素;根据目标体素,对在先的哈希体素表中的体素进行增量更新,得到当前的哈希体素表;在先的哈希体素表包括在先帧点云中表征静态场景的点对应的体素。
上述面向复杂动态场景中点云流的实时重建装置中的各个单元可全部或部分通过软件、硬件及其组合来实现。上述各单元可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个单元对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图14所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储当前体素集合。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种面向复杂动态场景中点云流的实时重建方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图15所示。该计算机设备包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种面向复杂动态场景中点云流的实时重建方法。该计算机设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置。显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图14或图15中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random AccessMemory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (16)
1.一种面向复杂动态场景中点云流的实时重建方法,其特征在于,所述方法包括:
根据传感器采集的当前帧点云与所述传感器间的相对位置,确定搜索半径;
从当前体素集合中确定与所述搜索半径匹配的子体素集合;所述当前体素集合是基于当前帧点云和在先帧点云确定;
将所述子体素集合中的体素和所述当前帧点云中的点投影到预设球空间中,确定所述子体素集合中的体素分别投影至的子空间,以及所述当前帧点云中的点分别投影至的子空间;其中,所述预设球空间中子空间的划分方式与所述传感器发出射线的方式相匹配;划分所述预设球空间得到的每个子空间,用于模拟所述传感器发出的一条射线;
针对投影至同一子空间中的点和体素,比对所述点和体素分别与所述传感器之间的距离,根据比对结果对体素进行穿透识别;
从所述当前体素集合中剔除被穿透的体素,并基于剔除后剩余的体素进行三维重建,得到目标重建结果。
2.根据权利要求1所述的方法,其特征在于,所述针对投影至同一子空间中的点和体素,比对所述点和体素分别与所述传感器之间的距离,根据比对结果对体素进行穿透识别,包括:
根据所述当前帧点云中的点和所述子体素集合中的体素分别与所述传感器之间的距离,确定所述当前帧点云中的点的深度以及所述子体素集合中的体素的深度;
针对投影至同一子空间中的点和体素,将所述体素的深度和所述点的深度进行比对,在所述体素的深度小于所述点的深度的情况下,增加所述体素对应的穿透次数;
基于预设次数阈值和所述子体素集合中的各体素分别对应的穿透次数,对体素进行穿透识别。
3.根据权利要求2所述的方法,其特征在于,所述在所述体素的深度小于所述点的深度的情况下,增加所述体素对应的穿透次数,包括:
在所述体素的深度小于所述点的深度的情况,确定所述点对应的截面;
在所述体素处于所述截面与所述传感器构成的圆锥体内部的情况下,增加所述体素对应的穿透次数;所述截面的大小与所述点的深度相关。
4.根据权利要求1所述的方法,其特征在于,所述当前体素集合中包括代表静态场景的体素集合和代表动态残影的体素集合;所述代表动态残影的体素集合的规模小于所述代表静态场景的体素集合;
所述方法还包括:
根据所述当前体素集合中各体素间的法向量差异,对所述当前体素集合中的体素进行区域增长,以将所述当前体素集合划分成至少一个区域集合;
根据每个区域集合的体素数量,从所述至少一个区域集合中确定出动态残影对应的区域集合;
所述从所述当前体素集合中剔除被穿透的体素,包括:
从所述当前体素集合中剔除被穿透的体素和所述动态残影对应的区域集合。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
根据当前帧点云确定初始网格模型;
针对所述初始网格模型中的每个三角面片,基于所述传感器和所述三角面片的中心确定所述三角面片对应的射线方向向量;
确定所述射线方向向量与所述三角面片的法向量之间的相似度,得到每个三角面片对应的相似度;
在所述相似度未达到预设相似阈值的情况下,从所述初始网格模型中剔除所述三角面片,以得到剔除后剩余的网格模型;
针对所述当前帧点云中的每个点,从所述剔除后剩余的网格模型中确定包括所述点的至少一个三角面片,并对所述至少一个三角面片的法向量进行加权融合,得到所述点的法向量;
其中,所述点的法向量用于确定所述点对应的体素的法向量。
6.根据权利要求5所述的方法,其特征在于,所述根据当前帧点云确定初始网格模型,包括:
对当前帧点云进行点云配准处理,得到配准后的点云;
确定配准后的点云中每个点在水平面对应的极坐标;
基于预设角度和每个点对应的极坐标对所述配准后的点云进行扇形划分,得到各点云子集;
通过多线程并行地对每个点云子集分别进行重建,得到各子网格模型;
对所述各子网格模型进行合并,得到初始网格模型。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述当前体素集合是指当前的哈希体素表;
所述方法还包括:
确定所述当前帧点云中每个点对应的目标体素;
根据所述目标体素,对在先的哈希体素表中的体素进行增量更新,得到当前的哈希体素表;所述在先的哈希体素表包括在先帧点云中表征静态场景的点对应的体素。
8.一种面向复杂动态场景中点云流的实时重建装置,其特征在于,所述装置包括:
选择单元,用于根据传感器采集的当前帧点云与所述传感器间的相对位置,确定搜索半径;从当前体素集合中确定与所述搜索半径匹配的子体素集合;所述当前体素集合是基于当前帧点云和在先帧点云确定;
投影单元,用于将所述子体素集合中的体素和所述当前帧点云中的点投影到预设球空间中,确定所述子体素集合中的体素分别投影至的子空间,以及所述当前帧点云中的点分别投影至的子空间;其中,所述预设球空间中子空间的划分方式与所述传感器发出射线的方式相匹配;划分所述预设球空间得到的每个子空间,用于模拟所述传感器发出的一条射线;
识别单元,用于针对投影至同一子空间中的点和体素,比对所述点和体素分别与所述传感器之间的距离,根据比对结果对体素进行穿透识别;
重建单元,用于从所述当前体素集合中剔除被穿透的体素,并基于剔除后剩余的体素进行三维重建,得到目标重建结果。
9.根据权利要求8所述的装置,其特征在于,识别单元,用于根据所述当前帧点云中的点和所述子体素集合中的体素分别与所述传感器之间的距离,确定所述当前帧点云中的点的深度以及所述子体素集合中的体素的深度;针对投影至同一子空间中的点和体素,将所述体素的深度和所述点的深度进行比对,在所述体素的深度小于所述点的深度的情况下,增加所述体素对应的穿透次数;基于预设次数阈值和所述子体素集合中的各体素分别对应的穿透次数,对体素进行穿透识别。
10.根据权利要求9所述的装置,其特征在于,识别单元,用于在所述体素的深度小于所述点的深度的情况,确定所述点对应的截面;在所述体素处于所述截面与所述传感器构成的圆锥体内部的情况下,增加所述体素对应的穿透次数;所述截面的大小与所述点的深度相关。
11.根据权利要求8所述的装置,其特征在于,所述当前体素集合中包括代表静态场景的体素集合和代表动态残影的体素集合;所述代表动态残影的体素集合的规模小于所述代表静态场景的体素集合;识别单元,用于根据所述当前体素集合中各体素间的法向量差异,对所述当前体素集合中的体素进行区域增长,以将所述当前体素集合划分成至少一个区域集合;根据每个区域集合的体素数量,从所述至少一个区域集合中确定出动态残影对应的区域集合;重建单元,用于从所述当前体素集合中剔除被穿透的体素和所述动态残影对应的区域集合。
12.根据权利要求11所述的装置,其特征在于,识别单元,用于根据当前帧点云确定初始网格模型;针对所述初始网格模型中的每个三角面片,基于所述传感器和所述三角面片的中心确定所述三角面片对应的射线方向向量;确定所述射线方向向量与所述三角面片的法向量之间的相似度,得到每个三角面片对应的相似度;在所述相似度未达到预设相似阈值的情况下,从所述初始网格模型中剔除所述三角面片,以得到剔除后剩余的网格模型;针对所述当前帧点云中的每个点,从所述剔除后剩余的网格模型中确定包括所述点的至少一个三角面片,并对所述至少一个三角面片的法向量进行加权融合,得到所述点的法向量;其中,所述点的法向量用于确定所述点对应的体素的法向量。
13.根据权利要求12所述的装置,其特征在于,识别单元,用于对当前帧点云进行点云配准处理,得到配准后的点云;确定配准后的点云中每个点在水平面对应的极坐标;基于预设角度和每个点对应的极坐标对所述配准后的点云进行扇形划分,得到各点云子集;通过多线程并行地对每个点云子集分别进行重建,得到各子网格模型;对所述各子网格模型进行合并,得到初始网格模型。
14.根据权利要求8至13任一项所述的装置,其特征在于,所述当前体素集合是指当前的哈希体素表;选择单元,用于确定所述当前帧点云中每个点对应的目标体素;根据所述目标体素,对在先的哈希体素表中的体素进行增量更新,得到当前的哈希体素表;所述在先的哈希体素表包括在先帧点云中表征静态场景的点对应的体素。
15.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311102502.0A CN116824068B (zh) | 2023-08-30 | 2023-08-30 | 面向复杂动态场景中点云流的实时重建方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311102502.0A CN116824068B (zh) | 2023-08-30 | 2023-08-30 | 面向复杂动态场景中点云流的实时重建方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116824068A CN116824068A (zh) | 2023-09-29 |
CN116824068B true CN116824068B (zh) | 2024-01-09 |
Family
ID=88126147
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311102502.0A Active CN116824068B (zh) | 2023-08-30 | 2023-08-30 | 面向复杂动态场景中点云流的实时重建方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116824068B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106375642A (zh) * | 2016-09-27 | 2017-02-01 | 深圳大学 | 图像传感装置、采集处理装置及物体运动图像采集系统 |
KR20190123093A (ko) * | 2018-04-23 | 2019-10-31 | 부산대학교 산학협력단 | 감정 온톨로지에 기반을 둔 이모티콘 추천 장치 및 방법 |
CN113887462A (zh) * | 2021-12-06 | 2022-01-04 | 北京易航远智科技有限公司 | 一种基于多帧点云数据的3d目标检测装置和方法 |
CN116045304A (zh) * | 2023-01-04 | 2023-05-02 | 东南大学 | 一种湍流火焰动态三维结构测量装置及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109285220B (zh) * | 2018-08-30 | 2022-11-15 | 阿波罗智能技术(北京)有限公司 | 一种三维场景地图的生成方法、装置、设备及存储介质 |
-
2023
- 2023-08-30 CN CN202311102502.0A patent/CN116824068B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106375642A (zh) * | 2016-09-27 | 2017-02-01 | 深圳大学 | 图像传感装置、采集处理装置及物体运动图像采集系统 |
KR20190123093A (ko) * | 2018-04-23 | 2019-10-31 | 부산대학교 산학협력단 | 감정 온톨로지에 기반을 둔 이모티콘 추천 장치 및 방법 |
CN113887462A (zh) * | 2021-12-06 | 2022-01-04 | 北京易航远智科技有限公司 | 一种基于多帧点云数据的3d目标检测装置和方法 |
CN116045304A (zh) * | 2023-01-04 | 2023-05-02 | 东南大学 | 一种湍流火焰动态三维结构测量装置及方法 |
Non-Patent Citations (2)
Title |
---|
Dynamic 3D Scene Reconstruction and Enhancement;Cansen Jiang 等;19th International Conference on Image Analysis and Processing (ICIAP);第518-529页 * |
Real-time 3D reconstruction techniques applied in dynamic scenes: A systematic literature review;Anupama K. Ingale 等;Computer Science Review;第1-13页 * |
Also Published As
Publication number | Publication date |
---|---|
CN116824068A (zh) | 2023-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105993034B (zh) | 用于增强表面重构的轮廓求全 | |
EP3570253B1 (en) | Method and device for reconstructing three-dimensional point cloud | |
US20190318547A1 (en) | System and method for dense, large scale scene reconstruction | |
EP3326156B1 (en) | Consistent tessellation via topology-aware surface tracking | |
Najdataei et al. | Continuous and parallel lidar point-cloud clustering | |
US11748937B2 (en) | Sub-pixel data simulation system | |
CN116543117B (zh) | 一种无人机影像的高精度大场景三维建模方法 | |
Cui et al. | Dense depth-map estimation based on fusion of event camera and sparse LiDAR | |
CN117274515A (zh) | 基于ORB和NeRF映射的视觉SLAM方法及系统 | |
Lin et al. | Immesh: An immediate lidar localization and meshing framework | |
CN115375836A (zh) | 基于多元置信度滤波的点云融合三维重建方法和系统 | |
CN111222586B (zh) | 一种基于三维倾斜模型视角的倾斜影像匹配方法及装置 | |
CN117470246A (zh) | 路径规划方法、装置、存储介质及电子设备 | |
CN116824068B (zh) | 面向复杂动态场景中点云流的实时重建方法、装置及设备 | |
CN115222815A (zh) | 障碍物距离检测方法、装置、计算机设备和存储介质 | |
Florea et al. | TanDepth: Leveraging Global DEMs for Metric Monocular Depth Estimation in UAVs | |
García-Moreno | Dynamic Multi-Sensor Platform for Efficient Three-Dimensional-Digitalization of Cities | |
Kim et al. | Pose initialization method of mixed reality system for inspection using convolutional neural network | |
CN117392358B (zh) | 碰撞检测方法、装置、计算机设备和存储介质 | |
CN117974899B (zh) | 一种基于数字孪生的三维场景展示方法及其系统 | |
CN116402967B (zh) | 场景建筑快速单体化方法、装置、计算机设备和存储介质 | |
Jenco | Virtual LiDAR error models in point cloud compression | |
Funk et al. | Infinite, sparse 3d modelling volumes | |
Lin et al. | MGFusion: A Large-Scale Realtime 3D Reconstruction Based on Movable Grid | |
Wang et al. | Efficient Semantic-Aware TSDF Mapping with Adaptive Resolutions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |