Hole Filling Filter(空洞填充过滤器)
Hole Filling(空洞填充)过滤器可以填充点云中的缺失点。它会在点云中缺失点周围的圆形邻域中插入被认为是丢失的点。缺失点可能是被其他过滤器移除的,或者一开始就没有重建。
备注
建议在添加空洞填充过滤器之前应用 移除过滤器 。这样可以防止噪点的插值。
为什么需要空洞填充过滤器?
如果您的算法需要特定的点云密度,则此过滤器可以帮助填补密度较低的区域。
考虑以下场景,其中有一个装满消费品的箱子:
在使用消费品(Consumer Goods)类别的快速预设参数时,您将获得下方左侧显示的结果。现在,将其与*默认(default)*和*强(strong)* 空洞填充设置下的结果进行比较。这可能是计算针对所有物体的良好抓取位姿成为可能的原因。
Hole Filling filter disabled |
||
Hole Filling filter 0.2 (default) |
||
Hole Filling 0.7 (strong) |
如何控制空洞填充过滤器
Enabled
打开/关闭过滤器
HoleSize
将要填充的孔的相对直径。增加该值会填充更多的点,但需要更多的计算时间。允许填充的最大孔尺寸与成像距离是比例关系,因此我们允许在更远的距离(以毫米为单位)处填充更大的孔。”
Strictness
该参数表示考虑是否应填充一个点时的严格程度。更高级别的严格程度将要求缺失点被更多边上的有效点包围,该缺失点才会被填充。增加这个值会填充更少的点,但填充非圆形间隙的可能性较小,例如两条边之间的间隙。
建议使用以下参数值:
参数 |
数值 |
条件 |
---|---|---|
|
|
如果您不接受推断出来的数据,或者如果您负担不了额外增加的处理时间。 |
|
如果您的算法需要更高的点云密度,而您目前遇到了点云较为稀疏的问题。 |
|
|
|
只填充最小的空洞(快速) |
|
(默认值)在1000毫米距离处以至多约8毫米的近似半径填充空洞 [1] |
|
|
在1000毫米距离处填充半径至多约为25毫米的较大空洞 [1] (慢) |
|
|
|
即使在圆形邻域中几乎没有有效点时也可以填充空洞 |
|
仅填充圆形邻域中被有效点包围的空洞 |
可视化Hole Size
在下面的可视化工具中,孔尺寸显示为黄色圆圈。它按比例绘制在Zivid标定板的顶部。轴显示了给定距离处相机的FOV。因此,您实际上可以看到棋盘格占据了多少FOV。
处理时间
由于过滤器的操作方式,处理时间随 hole size
参数呈指数增长。只要您有一台功能强大的PC,那么这通常不是问题,比如 11th Gen Intel(R) Core(TM) i9-11900K @ 3.50GHz with NVIDIA GeForce RTX 3070
。对于较便宜的硬件,尤其是集成GPU,应该注意设置了较大的孔尺寸的处理时间。在低端硬件上最高设置可能需要几秒钟。
备注
空洞填充过滤器在每个3D捕获中会增加以下处理时间:
过滤器 |
Intel UHD i5G1 |
NVIDIA 4070 |
Intel UHD 770 |
---|---|---|---|
Low-end [2] |
High-end [3] |
||
Hole Filling |
65 (±3) ms |
9 (±1) ms |
40 (±2) ms |
Low-end machine with GPU: Intel UHD Graphics i5 G1 (ID:0x8A56) and CPU: Intel(R) Core(TM) i5-1035G1 CPU @ 1.00GHz, 1GbE
High-end machine with GPU: Intel UHD Graphics 770 and CPU: 13th Gen Intel(R) Core(TM) i9-13900K, 10GbE
过滤器 |
Intel UHD 750 |
Intel UHD i3G1 |
NVIDIA 3070 |
---|---|---|---|
High-end [4] |
Low-end [5] |
High-end [6] |
|
Hole Filling |
129 (±4) ms |
199 (±103) ms |
22 (±3) ms |
搭载了GPU:Intel UHD Graphics 750 (ID:0x4C8A) 和 CPU:11th Gen Intel(R) Core(TM) i9-11900K @ 3.50GHz, 10GbE 的高端机器
Low-end machine with GPU: Intel UHD Graphics i3 G1 (ID:0x8A56) and CPU: Intel(R) Core(TM) i3-1005G1 CPU @ 1.20GHz, 1GbE
搭载了GPU:NVIDIA GeForce RTX 3070 和 CPU:11th Gen Intel(R) Core(TM) i9-11900K @ 3.50GHz, 10GbE 的高端机器
过滤器 |
Intel UHD 750 |
Intel UHD i3G1 |
NVIDIA 3070 |
---|---|---|---|
High-end [7] |
Low-end [8] |
High-end [9] |
|
Hole Filling |
212 (±3) ms |
335 (±2) ms |
23 (±3) ms |
搭载了GPU:Intel UHD Graphics 750 (ID:0x4C8A) 和 CPU:11th Gen Intel(R) Core(TM) i9-11900K @ 3.50GHz, 10GbE 的高端机器
Low-end machine with GPU: Intel UHD Graphics i3 G1 (ID:0x8A56) and CPU: Intel(R) Core(TM) i3-1005G1 CPU @ 1.20GHz, 1GbE
搭载了GPU:NVIDIA GeForce RTX 3070 和 CPU:11th Gen Intel(R) Core(TM) i9-11900K @ 3.50GHz, 10GbE 的高端机器
特殊的注意事项
空洞填充为点云增加了点,但实际上并没有增加信息。添加的点是根据应用其他过滤器后保留的信息进行插值处理的。空洞填充适用于系统其他部分有一定柔性的应用。例如,使用吸盘进行抓取的应用,无论抓取目标是单个SKU还是多个SKU。这些应用在密集点云的情况下可能表现更好,因为提供良好抓取位姿的机会更高。
有些应用依赖于每个单独点的绝对精度。比如高分辨率检测和/或3D模型构建。这些应用可能不太适合使用空洞填充功能。
版本历史
SDK |
变更 |
---|---|
2.9.0 |
增加了空洞填充过滤器 |