1.将数据集的网格文件转化为点云,并计算UDF,将顶点数据、三角形数据、点云数据、查询点坐标、标签和梯度数据保存为一个 .npz 文件
python3 preprocess_udf.py ../CLOTH3D/top-garments/ ../CLOTH3D/top-garments-udf
2.利用第一步处理得到的点云数据作为输入进行训练,学习生成UDF。将代码悬挂后台训练
nohup python3 train_encdec.py /root/data1/DrapeNet-main/cfg/encdec.yaml >/root/data1/DrapeNet-main/encdec/log/train.log 2>&1 &
3.将训练的模型应用于数据集的测试集,提取点云数据的潜在表示,并将潜在表示进行保存。(输入包括:2中训练获得的ckpt_pth,它包括模型的权重和状态;数据集中的测试集)。它的配置文件run.yaml是2中获得的run.yaml
python3 export_codes.py /root/data1/DrapeNet-main/logs/2023-11-01-18-27-18/run.yaml
4。将点云数据导出为网格(与3没有先后关系),它的配置文件为encdec.yaml
python3 export_meshes.py /root/data1/DrapeNet-main/cfg/encdec.yaml
DrapeNet文章实现服装编辑的具体方式
-
潜在编码编辑框架: 作者提出的框架允许我们通过调整服装的潜在编码来编辑服装。潜在编码是一个数值化的向量,代表了服装的特征和风格。
-
语义标签分配: 为了赋予编辑的结果语义含义,作者首先对100个训练服装进行了语义标签的分配。例如,可以标记为“短袖”(标签 = 0)或“长袖”(标签 = 1)。这些标签对应了服装的特定特征。
-
逻辑回归模型: 针对每个标签,作者使用逻辑回归模型对服装的潜在编码进行训练。模型学习了哪些潜在编码维度与标签中定义的特征相关。
-
编辑过程: 在训练完成后,逻辑回归模型的权重指示了潜在空间中哪些维度控制了感兴趣的特征。通过对权重进行最小-最大归一化,并将小于某个阈值(经验设定为0.5)的权重置为零,得到了一组非零权重。这些非零权重指示了在编辑特定特征时应该增加或减少的潜在编码的维度。
-
编辑效果展示: 作者通过这个简单的过程来控制服装的袖长、前开等特征。在图表中,展示了通过编辑潜在编码,保持服装其他几何特征不变的情况下,成功地编辑了具体的服装特征。
总体而言,这个框架允许我们通过对服装潜在编码的编辑来实现对服装特定语义特征的精准控制,使得我们能够定向地改变服装的外观而不影响其他方面。
为了进行尺码编辑,最好的情况是拥有不同尺码的现有服装网格进行训练。这样的训练数据可以帮助模型学习不同尺码之间的关系,以及每个尺码标签在潜在编码中的表示方式。有了这样的数据,你可以使用监督学习的方法,将每个服装的尺码信息与对应的潜在编码关联起来。通过这样的训练,模型就能学会在潜在空间中表示不同尺码的服装变化。如果没有现有尺码的服装网格进行训练,模型可能会难以准确地理解尺码变化的模式,从而导致编辑效果不如预期。因此,如果可行的话,收集并使用包含不同尺码的服装网格数据是非常有帮助的。