训练之前,会先提取2种特征,
一种是每张图片的image encoding, 它的size是(64,64),代表每个像素处的特征向量。这个向量用于特征匹配(选中的目标和每个像素的相似度)。
一种是SAM提取的所有mask(用于计算mask所在目标的特征向量)。
extract_features.py提取的是SAM模型predictor.set_image的image encoding (1,256,64,64)
extract_segment_anything提取的是SAM的generate产生的自动mask
这里保存每张图片所有mask, float形式,resize到(200,200), 原图是(1024,1024).
SAM用法:
predictor.predict预测的是含有prompt的mask, 而generate是自动产生所有mask.
训练3DGS的语义特征在traiin_contrastive_feature.py
3DGS模型的每个点增加语义特征
feature_dim=32
只不过Scene里面有一个gaussians还有一个feature_gaussians, 刚开始都是load scene_point_cloud.ply(3DGS),后面只用feature_gaussians,gaussians会删除。
feature_gaussians里面的get_point_features(807321,32), 这应该是每个点的语义特征.
get_features(807321,16,3) 这个是颜色特征,包括了feature_dc(SH颜色
本文详细解读了3D分割算法SAGA的训练过程,涉及特征提取、SAM模型的使用、3DGS模型的语义特征增强以及训练中的优化策略。介绍了如何从图像和mask中提取特征,通过映射模型将特征降至低维空间,并进行平均池化处理。同时,文章还讨论了在训练过程中采用的损失函数和正则项,以及优化器的参数更新方式。
订阅专栏 解锁全文
2268

被折叠的 条评论
为什么被折叠?



