尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

从点云重建到RGB渲染:Shape As Points可微泊松求解器完整实战指南

从点云重建到RGB渲染:Shape As Points可微泊松求解器完整实战指南 从点云重建到RGB渲染Shape As Points可微泊松求解器完整实战指南【免费下载链接】shape_as_points[NeurIPS21] Shape As Points: A Differentiable Poisson Solver项目地址: https://gitcode.com/gh_mirrors/sh/shape_as_pointsShape As PointsSAP是一个 NeurIPS 2021Oral开源的可微泊松求解器它能从带噪声、离群点的无向点云中重建出干净且有方向性的点云与水密网格并进一步将重建管线扩展到RGB 图像渲染。本文带你从零跑通点云重建演示深入 PSR2SurfacePoints 的可微渲染原理并了解如何把它扩展成点云 → 网格 → RGB 渲染的完整管线。 项目总览一个可微泊松求解器能做什么Shape As Points 的核心思想是把泊松重建这一传统 3D 重建环节变成可微的从而既能用梯度优化求解也能作为神经网络管线的可微模块。它包含三条能力线优化式重建输入原始点云多分辨率32³ → 64³ → 128³ → 256³逐层精化输出有向点云与网格学习式重建用深度网络从大噪声 / 带离群点的无向点云直接恢复表面官方提供多组预训练模型渲染扩展可微地从 PSR 指示函数场提取表面点并计算 RGB 颜色与剪影损失支撑可微渲染训练。下面的动态演示展示了优化式重建对扫描点云如车轮的修复过程网格随迭代逐渐贴合真实表面 三步快速上手点云重建第 1 步创建运行环境项目使用 conda 环境文件克隆仓库后执行conda env create -f environment.yaml并激活sap环境即可另需按官方说明自行安装 PyTorch3D≥0.5与 PyTorch Scatter安装脚本见 environment.yaml 与 README.md 的 Installation 部分。第 2 步下载演示数据bash scripts/download_demo_data.sh第 3 步运行重建优化式重建对应上面车轮演示python optim_hierarchy.py configs/optim_based/teaser.yaml结果保存在out/demo_optim学习式重建大噪声点云python generate.py configs/learning_based/demo_large_noise.yaml带离群点点云python generate.py configs/learning_based/demo_outlier.yaml想用预训练模型直接选_pretrained后缀配置例如python generate.py configs/learning_based/outlier/ours_7x_pretrained.yaml脚本会自动下载权重并生成结果。大噪声点云经学习式管线重建的过程如下可以看到散乱噪点被逐步吸附到真实表面离群点场景的重建效果同样直观——远离表面的噪声被有效滤除网格轮廓保持完整 核心原理DPSR 如何用 FFT 解泊松方程传统泊松重建需要先手动设定表面偏移、再做非可微的网格提取无法接入神经网络。SAP 的DPSRDifferentiable Poisson Surface Reconstruction模块实现于src/dpsr.py把整个流程搬进了可微框架栅格化将带法向的点云point_rasterize成指示函数场PSR频域求解对场做 FFT在频率域中用DivN / Lap拉普算子一步求出泊松方程的解——这正是泊松重建的频域形式且全程张量化、可微校正通过shift和scale使表面处的函数值为零、外侧为正内侧为负得到带符号的连续场。关键参数psr_sigma高斯平滑强度与grid_res网格分辨率都定义在configs/default.yaml中直接影响重建的平滑度与细节。⚡ 深入 PSR2SurfacePoints让渲染误差回流到 3D 网格PSR2SurfacePoints是连接3D 网格与2D 图像的可微桥梁定义在src/model.pyL46-L85其前向与反向过程非常优雅前向对 PSR 场做 Marching Cubes 提取三角网格mc_from_psr再按相机位姿对网格做光线求交得到每条可见射线的表面交点坐标p_inters反向交点位置对网格顶点的扰动方向就是负的顶点法向于是用grad dL_dp · (-normal)计算梯度再通过point_rasterize把逐点梯度散射回 3D 指示函数场。这意味着图像空间的渲染误差可以穿过网格提取 → 光线求交这一非平凡几何过程直接反传到 PSR 场进而反传到点云编码器——这是后续 RGB 渲染训练的基础。姊妹模块PSR2MeshL11-L44则实现了网格顶点 → 场的同类可微回传用于 Chamfer 类损失。 管线扩展实战从点云重建到 RGB 渲染src/model_rgb.py中的SAP2Image展示了如何把重建管线扩展为可微渲染管线整个前向流程是点云 → PSR 场网络预测有向点云后经DPSR与tanh得到指示函数场场 → 表面点用PSR2SurfacePoints做光线求交并用approx_psr_grad模型内定义的中心差分梯度在交点处插值得到表面法向表面点 → RGBRenderingNetworksrc/network/net_rgb.py以位置 法向 视线方向为输入输出每个可见像素的 RGB 颜色剪影监督PSR2Mesh生成的网格经 PyTorch3D 的MeshRasterizer SoftSilhouetteShader渲染出 alpha 剪影与真实 mask 构成 silhouette loss。两个损失项l_weight.rgb与l_weight.mask均可在配置中开关按需组合即可训练重建 渲染联合模型。这种PSR 场 → 交点 → 颜色的设计避免了显式光栅化的不连续是隐式表示可微渲染的典型范式。️ 训练、评估与配置速查任务命令关键文件训练新网络python train.py configs/learning_based/CONFIG.yamltrain.py、src/training.py生成网格python generate.py configs/learning_based/CONFIG.yamlgenerate.py、src/generation.py评估网格python eval_meshes.py configs/learning_based/CONFIG.yamleval_meshes.py输出.csv/.pkl单分辨率优化python optim.py configs/optim_based/CONFIG.yamloptim.py、src/optimization.py多分辨率优化python optim_hierarchy.py configs/optim_based/CONFIG.yamloptim_hierarchy.py常用损失权重PSR 场损失、Chamfer 正则、法向损失、raw 顶点损失等集中在src/training.py的train_step中按配置项逐项累加学习式配置按数据集分为configs/learning_based/noise_small、noise_large、outlier三组每组含ours*.yaml训练用与ours*_pretrained.yaml推理用预训练权重。训练数据为 ShapeNet约 220 GBscripts/download_shapenet.sh下载优化式重建可下载 Thingi10K / SRB / Dynamic FAUST 处理版数据scripts/download_optim_data.sh约 200 MB快速体验推荐先跑演示数据。✅ 小结Shape As Points 的价值在于把泊松重建做成了既可直接优化、又可嵌入网络的可微模块DPSR提供频域可微求解PSR2SurfacePoints/PSR2Mesh打通几何与图像的梯度通路SAP2Image则示范了向 RGB 渲染的完整扩展。从一条generate.py命令的零样本重建到自定义渲染网络的联合训练这条管线对做 3D 重建、可微渲染和隐式表示的同学都是一个值得精读的起点。【免费下载链接】shape_as_points[NeurIPS21] Shape As Points: A Differentiable Poisson Solver项目地址: https://gitcode.com/gh_mirrors/sh/shape_as_points创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表