gaussian grouping训练自定义数据集

gaussian grouping是一个语义分割3DGS的方法。

它在每个3DGS点云中加入一个叫Identity Encoding的特征向量,

在渲染时把特征向量渲染到2D图像,每个像素位置为一个特征向量,使用额外的线性分类层对每个2D位置的特征向量分类。得到mask。

这个mask和gt mask计算2D损失,同时3D正则化损失利用3D空间一致性,强制执行Identity Encoding在特征距离上接近其最近的3D高斯点。

训练Identity Encoding和线性分类层。

如果训练时有比较完美的mask, 渲染的效果也是很好的。

下面以mip360/kitchen为例训练gaussian grouping. 其他数据集类似。

假设初步只有一些拍摄的图像。放在input文件夹。

用3DGS的convert.py文件处理mip360/kitchen之后,

可得到images和相关下采样图像文件夹,sparse文件夹。

kitchen数据集自带标注好的mask, 如果没有,需要自己标注mask(可以用prepare_pseudo_label.sh),

mask放在kitchen/object_mask文件夹下,格式为png.

train.json设置:

假设mask里面只有2类物体,即前景和背景,前景的像素值取的是255, 背景是0,

那么,在gaussian-grouping/config/gaussian_dataset/train.json中,

"num_classes"要写256.

你会纳闷,为什么只有2类却要写256类?

因为你的前景像素值取的是255,从数字上看,它是第255个类别,想输出类别255,分类器中就要有>=255个类别。如果前景像素值取1,那么"num_classes"可以写2。

类别写小了会报错cuda非法内存访问。

当cuda内存有限时,可以设置较小的"reg3d_max_points"和"reg3d_sample_size"。

train.py

数据集图片过大时可能需要resize,用到images_2, images_4文件夹,

而假设你标注的mask只有一个尺寸。

那么训练的时候就需要把mask调整到和渲染mask一个尺寸。

python 复制代码
logits = classifier(objects)
# Object Loss
if len(viewpoint_cam.objects.shape) > 2:
    gt_obj = viewpoint_cam.objects[:,:,0]  #mask是单通道时不需要这步
    gt_obj_reshaped = gt_obj.unsqueeze(0).unsqueeze(0)
    gt_obj_resized = F.interpolate(gt_obj_reshaped,
                                   size=(logits.shape[1], logits.shape[2]),
                                   mode='nearest')
    gt_obj_resized = gt_obj_resized.squeeze(0).squeeze(0)
    gt_obj = gt_obj_resized.cuda().long()
else:
    gt_obj = viewpoint_cam.objects.cuda().long()

训练很简单,

bash 复制代码
train.py -s data/mip360/kitchen -r 2  -m output/kitchen --config_file config/gaussian_dataset/train.json

渲染时,num_classes要和前面一致:

bash 复制代码
render.py -m output/kitchen --num_classes 256

会在output/kitchen中得到mask等结果。

相关推荐
一切皆是因缘际会4 小时前
从概率拟合到内生心智:2026 下一代 AI 架构演进与落地实践
人工智能·深度学习·算法·架构
科研前沿4 小时前
镜像视界 CameraGraph™+多智能体:构建自感知自决策的全域空间认知网络技术方案
大数据·运维·人工智能·数码相机·计算机视觉
爱学习的张大4 小时前
具身智能论文问答(2):Diffusion Policy
人工智能
AI科技星4 小时前
全域数学·72分册·射影原本 无穷维射影几何卷细化子目录【乖乖数学】
人工智能·线性代数·算法·机器学习·数学建模·数据挖掘·量子计算
Chef_Chen4 小时前
论文解读:MemOS首次把记忆变成大模型的一等公民资源,Scaling Law迎来第三条曲线
人工智能·agent·memory
风落无尘4 小时前
《智能重生:从垃圾堆到AI工程师》——第四章 变化的艺术
人工智能·线性代数·算法
发哥来了4 小时前
AI视频生成模型选型指南:五大核心维度对比评测
大数据·人工智能·机器学习·ai·aigc
发哥来了5 小时前
AI驱动生产线的实际落地:一个东莞厂商的技术选型实录
大数据·人工智能·机器学习·ai·aigc
AC赳赳老秦5 小时前
知识产权辅助:用 OpenClaw 批量生成专利交底书 / 软著申请材料,自动校验格式与内容合规性
java·人工智能·python·算法·elasticsearch·deepseek·openclaw
AI科技5 小时前
原因大揭秘:为什么别人的编曲伴奏做得又快又好,2026年度甄选5款AI编曲软件汇总
人工智能