ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Shape As Points网络架构全解析:PointNet编码器+平面UNet解码器如何搞定7倍离群点

Shape As Points网络架构全解析:PointNet编码器+平面UNet解码器如何搞定7倍离群点 Shape As Points网络架构全解析PointNet编码器平面UNet解码器如何搞定7倍离群点【免费下载链接】shape_as_points[NeurIPS21] Shape As Points: A Differentiable Poisson Solver项目地址: https://gitcode.com/gh_mirrors/sh/shape_as_pointsShape As Points简称 SAP是 NeurIPS 2021 的 Oral 论文项目提出了一个可微泊松求解器Differentiable Poisson Solver用于从无序、含噪、含离群点的点云做3D 表面重建。本文将拆解它的网络架构PointNet 局部池化编码器如何提取特征、平面/体积 UNet 如何组织特征场、解码器又如何预测法线与偏移量最终实现即使混入 7 倍离群点也能重建出干净网格。 一张图看懂整体流程SAP 的学习式重建管线只有三步编码器src/network/encoder.py 中的LocalPoolPointnet把无序点云编码成平面/体素特征场解码器src/network/decoder.py 中的LocalDecoder为每个点采样局部特征预测法线和偏移量可微泊松重建带法线的点直接灌入泊松网格默认 128³经可微 Marching Cubes 提取网格src/model.py上图左侧是混入大量离群点的输入点云右侧是 SAP 重建出的网格——离群点被完全无视。 编码器PointNet 局部池化编码器核心是LocalPoolPointnet处理流程每个点先经全连接层fc_pos输入 3 维坐标 → 2×hidden_dim可选位置编码堆叠 5 个ResNet 残差块每块内部做一次局部池化pool_local把点的特征按坐标散列scatter_max到平面或 3D 网格上再 gather 回原位置实现感知邻居的局部特征最后压到c_dim默认 32 维的紧凑特征关键在于它支持两种特征场形态由配置plane_type决定特征形态说明后处理网络平面[xz,xy,yz]点投影到 3 个 2D 平面默认 64×642D UNetsrc/network/unet.py体素grid点散列到 32³ 体积3D UNetsrc/network/unet3d.py平面/体素特征由generate_plane_features/generate_grid_features生成后送入 UNet 精修——这就是平面 UNet的角色它不是解码器而是把稀疏点特征涂成规整图像特征图、让卷积充分挖掘空间关系。 解码器按点采样特征 预测法线与偏移LocalDecoder的思路很轻巧用双线性插值grid_sample在平面/体素特征场上按点采样局部特征拼接点坐标特征过 5 个残差块输出两类结果法线预测器3 维输出给每个点一个法向偏移预测器3 × num_offset维每个点预测多个偏移向量偏移量是 SAP 处理脏点云的神来之笔——下面细说。 7倍离群点是怎么被搞定的看 7x 配置 configs/learning_based/outlier/ours_7x.yaml 的关键参数pointcloud_n: 3000输入仅 3000 个点num_offset: 7每个点预测7 个偏移输出点扩充为 3000 × 7 21000 个s_offset: 0.001偏移尺度极小只允许点在局部微调位置grid_res: 128、psr_sigma: 2泊松网格与重建参数原理原始点可能落在噪声位置、法线不可靠但以原点为中心、在极小半径内预测 7 个候选点法线让网络有机会自我纠偏——错误的点会被整体投票纠正离群点则因为周围没有一致的邻居支撑而被抑制。对比 3 平面特征变体configs/learning_based/outlier/ours_3plane.yamlours_3plane用 3 个平面 UNet 5 个偏移而 7x 用 32³ 体素 3D UNet 7 个偏移精度更高。左侧椅子即使叠加了强高斯噪声右侧重建依然完整平滑——同一套架构也适用于大噪声场景configs/learning_based/noise_large/ours.yaml。 配置速查网络结构在哪里定义所有超参集中在 YAML 里核心是model:段encoder: local_pool_pointnetencoder_kwargshidden_dim、plane_type、unet/unet3d 参数decoder: simple_localdecoder_kwargshidden_size、sample_modec_dim: 32特征维度predict_normal/predict_offset开关法线与偏移预测模型组装入口在 src/model.py 的Encode2Points它按配置实例化编码器与两个解码器前向时完成编码 → 偏移扩充 → 法线预测的完整链路。 快速上手3 行命令出重建结果克隆仓库并搭建环境依赖见 environment.yamlgit clone https://gitcode.com/gh_mirrors/sh/shape_as_points cd shape_as_points conda env create -f environment.yaml下载演示数据bash scripts/download_demo_data.sh跑 7 倍离群点的预训练模型自动下载权重零训练直接出图python generate.py configs/learning_based/outlier/ours_7x_pretrained.yaml输出在out/.../generation_pretrained目录若要训练自己的网络换用python train.py configs/learning_based/outlier/ours_7x.yaml训练与评估脚本train.py、generate.py、eval_meshes.py均支持同一套 YAML 配置。小结SAP 架构的精髓可以浓缩为三句话PointNet 局部池化编码器把无序点云变成规整的特征场平面/体素 UNet充当特征精修器按点采样解码器用法线 多偏移输出让 3000 个脏点膨胀成 21000 个干净点再交给可微泊松求解器一键成网格——这就是它能正面硬刚 7 倍离群点的原因。【免费下载链接】shape_as_points[NeurIPS21] Shape As Points: A Differentiable Poisson Solver项目地址: https://gitcode.com/gh_mirrors/sh/shape_as_points创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表