Metadata
- name
- 3D Vision & Graphics Research
- slug
- 3d-vision-graphics
- description
- 3D视觉与计算机图形学研究助手。覆盖NeRF/3D Gaussian Splatting/点云处理/ 网格重建/纹理映射/光线追踪等方向。提供论文解读、算法对比、代码实现、 数据集推荐、实验设计指导。支持Blender/Houdini/Open3D/PyTorch3D等工具链。
- version
- 1.0.0
- author
- ai-gaoqian
- tags
- ["3d-vision","graphics","nerf","gaussian-splatting","point-cloud","mesh-reconstruction","rendering","computer-vision"]
- metadata
- {"openclaw":{"emoji":"🔮","requires":"OpenClaw >= v2026.3.22"}}
3D Vision & Graphics Research
核心能力
| 能力维度 |
覆盖范围 |
输出质量 |
| 论文解读 |
NeRF / 3DGS / InstantNGP / SuGaR / Mip-Splatting 等100+篇 |
含核心公式推导 + 创新点分析 |
| 算法对比 |
PSNR/SSIM/LPIPS 基准对比表 |
按数据集/场景分类 |
| 代码实现 |
PyTorch / CUDA / Taichi 多后端 |
含注释 + 训练配置 |
| 数据集推荐 |
30+ 常用3D数据集(含规模/场景/许可) |
按任务类型索引 |
| 工具链指导 |
Blender / Open3D / PyTorch3D / Kaolin / Houdini |
含安装配置 + 常见坑 |
| 实验设计 |
消融实验 / 对比实验 / 可视化方案 |
含评估指标选择建议 |
触发场景
- "解释3D Gaussian Splatting的核心原理"
- "NeRF和3DGS有什么区别"
- "如何训练自己的3DGS模型"
- "推荐3D重建数据集"
- "点云配准用什么算法"
- "如何在Blender中渲染点云"
- "InstantNGP的加速原理"
- "SuGaR如何从3DGS提取网格"
- "3D视觉领域最新SOTA是什么"
- "Mip-NeRF 360的贡献在哪里"
算法知识库
神经辐射场 (NeRF) 家族
| 方法 |
年份 |
核心创新 |
训练时间 |
渲染速度 |
PSNR (Synthetic) |
| NeRF |
2020 ECCV |
MLP隐式表示 + 体渲染 |
~12h |
~30s/frame |
31.01 |
| Mip-NeRF |
2021 ICCV |
锥形采样抗锯齿 |
~12h |
~30s/frame |
33.09 |
| InstantNGP |
2022 SIGGRAPH |
哈希网格编码 |
~5min |
~60fps |
32.78 |
| Mip-NeRF 360 |
2022 CVPR |
无界场景 + 蒸馏 |
~12h |
~30s/frame |
29.48 |
| TensoRF |
2022 ECCV |
张量分解 |
~30min |
~0.5s/frame |
33.14 |
| Plenoxels |
2022 CVPR |
球谐系数 + 体素 |
~11min |
~2s/frame |
31.71 |
| Zip-NeRF |
2023 ICCV |
网格采样 + 抗锯齿 |
~1h |
~0.5s/frame |
33.63 |
| K-Planes |
2023 CVPR |
多维平面分解 |
~52min |
~0.3s/frame |
32.60 |
3D Gaussian Splatting (3DGS) 家族
| 方法 |
年份 |
核心创新 |
训练时间 |
FPS |
PSNR (Mip-NeRF360) |
| 3DGS |
2023 SIGGRAPH |
显式高斯椭球 + 可微光栅化 |
~30min |
100+ |
27.21 |
| Mip-Splatting |
2024 CVPR |
3D频率滤波抗锯齿 |
~40min |
100+ |
27.65 |
| SuGaR |
2024 CVPR |
高斯→网格提取 |
~1h |
100+ |
27.03 |
| Scaffold-GS |
2024 CVPR |
锚点结构化生长 |
~25min |
100+ |
27.44 |
| GaussianPro |
2024 |
渐进式优化策略 |
~20min |
100+ |
27.82 |
| 2DGS |
2024 SIGGRAPH |
2D高斯盘面表示 |
~30min |
100+ |
27.39 |
| PixelSplat |
2024 |
前馈3DGS重建 |
~1s (inference) |
100+ |
25.89 |
| LatentSplat |
2024 ECCV |
潜在空间3DGS |
~10min |
100+ |
26.91 |
| Splatter-Image |
2024 CVPR |
单视图3DGS生成 |
~0.1s |
100+ |
23.12 |
点云处理
| 任务 |
SOTA方法 |
年份 |
关键指标 |
| 分类 |
PointNet++ / PointNeXt / Point-MAE |
2017-2023 |
OA 93.2% (ModelNet40) |
| 分割 |
PointTransformer V3 / Swin3D |
2023-2024 |
mIoU 72.6% (S3DIS) |
| 配准 |
GeoTransformer / PEAL |
2022-2024 |
RR 99.5% (3DMatch) |
| 补全 |
PointTr / AdaPoinTr |
2021-2023 |
CD 2.85 (ShapeNet) |
| 上采样 |
PU-GCN / SPU-Net |
2021-2023 |
CD 0.28 (PU1K) |
| 去噪 |
PointCleanNet / PD-Flow |
2020-2023 |
MSE 0.015 |
| 生成 |
LION / 3DShape2VecSet |
2023-2024 |
FID 4.27 |
| 检测 |
PointRCNN / 3DETR / FCAF3D |
2019-2023 |
mAP 67.3% (ScanNet) |
网格处理
| 任务 |
方法 |
特点 |
| 重建 |
Poisson / BPA / Delaunay |
经典几何方法 |
| 简化 |
QEM / Edge Collapse |
保持拓扑 |
| 平滑 |
Laplacian / Bilateral / Taubin |
去噪保特征 |
| 参数化 |
ABF / LSCM / ARAP |
UV映射 |
| 变形 |
ARAP / LBS / Cage-based |
形状编辑 |
| 细分 |
Catmull-Clark / Loop / Doo-Sabin |
增加分辨率 |
| 切割 |
MeshCNN / GraphUNet |
学习型分割 |
| 检索 |
MeshNet / LSNet |
形状匹配 |
数据集全览
多视图/场景级
| 数据集 |
场景数 |
分辨率 |
任务 |
许可 |
| LLFF |
8 |
4032×3024 |
NVS |
CC BY |
| NeRF-Synthetic |
8 |
800×800 |
NVS |
MIT |
| Tanks & Temples |
21 |
1920×1080 |
NVS+MVS |
CC BY-NC-SA |
| DTU |
124 |
1600×1200 |
MVS |
Research Only |
| Mip-NeRF 360 |
9 |
~4K |
NVS(无界) |
CC BY |
| ScanNet++ |
460 |
~1.5K |
重建+分割 |
Research Only |
| Replica |
18 |
~1K |
室内重建 |
Research Only |
| BlendedMVS |
113 |
2048×1536 |
MVS |
CC BY |
| FreeViewSynthesis |
12 |
2048×1080 |
NVS |
CC BY |
| MVImgNet |
220K对象 |
1080p |
多视图学习 |
CC BY |
物体/实例级
| 数据集 |
类别数 |
样本数 |
模态 |
许可 |
| ShapeNet |
55 |
51,300 |
3D模型 |
Custom |
| ModelNet40 |
40 |
12,311 |
3D模型 |
Custom |
| ABC |
N/A |
1M+ |
CAD模型 |
MIT |
| Thingi10K |
N/A |
10,000 |
3D打印模型 |
CC BY |
| OmniObject3D |
190 |
6,000 |
3D扫描+多视图 |
CC BY |
| Objaverse |
N/A |
800K+ |
多模态3D |
ODC-BY |
| Objaverse-XL |
N/A |
10M+ |
多模态3D |
ODC-BY |
| GSO |
17 |
1,030 |
扫描物体 |
CC BY |
| ABO |
98 |
6,327 |
电商3D模型 |
CC BY-NC |
人脸/人体
| 数据集 |
内容 |
规模 |
许可 |
| FaceScape |
3D人脸 |
938人, 20表情 |
Research Only |
| 3DFAW |
3D人脸关键点 |
23,076帧 |
Custom |
| HUMBI |
人体多视图 |
772人 |
Research Only |
| THuman |
3D人体扫描 |
200+人 |
Custom |
| RenderPeople |
商业3D人体 |
500+ |
商业许可 |
| AMASS |
人体运动 |
40h+, 300+主体 |
Research Only |
| ZJU-MoCap |
动态人体 |
9序列 |
Research Only |
工具链指南
Blender Python API 常用操作
import bpy
import numpy as np
# 导入点云
def import_pointcloud(points, colors=None):
mesh = bpy.data.meshes.new("pointcloud")
obj = bpy.data.objects.new("pointcloud", mesh)
bpy.context.collection.objects.link(obj)
mesh.from_pydata(points.tolist(), [], [])
if colors is not None:
color_attr = mesh.color_attributes.new(
name="Col", type="FLOAT_COLOR", domain="POINT"
)
for i, color in enumerate(colors):
color_attr.data[i].color = color.tolist() + [1.0]
# 导入3DGS PLY
def import_3dgs_ply(filepath):
from plyfile import PlyData
plydata = PlyData.read(filepath)
verts = plydata['vertex']
xyz = np.stack([verts['x'], verts['y'], verts['z']], axis=-1)
# 创建球体实例表示每个高斯
for i, pos in enumerate(xyz):
bpy.ops.mesh.primitive_ico_sphere_add(
subdivisions=1, radius=0.01, location=pos
)
# 渲染设置
def setup_cycles_render(samples=128, resolution=(1920, 1080)):
bpy.context.scene.render.engine = 'CYCLES'
bpy.context.scene.cycles.samples = samples
bpy.context.scene.render.resolution_x = resolution[0]
bpy.context.scene.render.resolution_y = resolution[1]
bpy.context.scene.cycles.device = 'GPU'
Open3D 点云处理
import open3d as o3d
import numpy as np
# 读取与可视化
pcd = o3d.io.read_point_cloud("scene.ply")
o3d.visualization.draw_geometries([pcd])
# 降采样
pcd_down = pcd.voxel_down_sample(voxel_size=0.02)
# 法线估计
pcd.estimate_normals(
o3d.geometry.KDTreeSearchParamHybrid(radius=0.1, max_nn=30)
)
# ICP配准
reg_p2p = o3d.pipelines.registration.registration_icp(
source, target, max_correspondence_distance=0.05,
init=np.eye(4),
estimation_method=o3d.pipelines.registration.TransformationEstimationPointToPoint()
)
# 泊松重建
mesh, densities = o3d.geometry.TriangleMesh.create_from_point_cloud_poisson(
pcd, depth=9
)
# 半径离群点去除
cl, ind = pcd.remove_radius_outlier(nb_points=16, radius=0.05)
pcd_clean = pcd.select_by_index(ind)
# DBSCAN聚类
labels = np.array(pcd.cluster_dbscan(eps=0.02, min_points=10))
常见问题排查
| 问题 |
原因 |
解决方案 |
| 3DGS训练发散 |
学习率过大/初始化不当 |
降低lr至1e-4,检查COLMAP稀疏点 |
| 点云配准失败 |
初始位姿差过大 |
先用FPFH+RANSAC全局配准 |
| CUDA OOM |
场景过大/分辨率过高 |
降低SH阶数或分辨率,使用gradient checkpointing |
| 网格有洞 |
点云密度不足 |
增加视角数,调整泊松深度 |
| 渲染闪烁 |
高斯排序不稳定 |
增加densification迭代 |
| 训练慢 |
未使用custom CUDA kernel |
安装diff-gaussian-rasterization |
| 颜色失真 |
色调映射错误 |
检查linear/sRGB色彩空间 |
| 几何塌陷 |
正则化不足 |
增加depth/normal正则化损失 |
注意事项
- 学术用途需遵守数据集许可协议
- 3DGS相关代码需要CUDA 11.6+和合适的GPU
- 商业项目注意区分开源(Apache/MIT)与Research Only许可
- 大场景训练建议至少24GB显存
- 点云处理建议使用Open3D 0.18+
- Blender脚本注意bpy在headless模式下需要特殊配置
定价
¥0.50/次,使用支付宝AI收协议。每次调用提供完整的论文解读/算法对比/代码指导/实验设计方案。