3D分割之SAGA训练流程解读

时间:2024-06-08 07:22:55

训练之前,会先提取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颜色) 和feature_rest

语义feature初始化为随机数