0%

MeshSegNet使用指南V1

自动摘要: |版本号|作者|发布日期|修订| ||||| |V1.0.0|@叶子扬||初始版| |V1.1 ……..

版本号 作者 发布日期 修订
V1.0.0 @叶子扬 初始版
V1.1.0 @Sindre Yang(sindre) 2023年3月17日 整理并修正

🔖 参考资料

  • 本次迭代周期中没有涉及到值得一提的参考资料

🛒 项目环境

  1. python 3.7.6
  2. pytorch 1.6.0
  3. numpy 1.18.1
  4. pandas 1.1.3
  5. vedo 2020.4.2
  6. scikit-learn 0.22.1
  7. visdom 0.1.8.9 (optional; for step3)
  8. thundersvm (optional; for step6)
  9. pygco (0.0.1) (optional; for step6)

🛒 项目流程

  1. 数据前处理

    1. 文件:stl_To_vtp.py
      1. 采用21组上下颌降采样的stl模型数据和txt标签数据,导出为vtp格式
      2. 将对颌牙打上相同的标签原数据命名为Sample_0{n}_d.vtp,做镜像处理的数据命名为'Sample_0{n}_d.vtp'.format(j+1000)
      3. 保存在_./models/rerrangge_文件夹中
  2. 数据增强

    1. 文件:step1_augmentation.py
      1. 为了增加训练数据集,通过旋转、放大、平移每个网格原数据和镜像处理后的网格数据,命名为stl_To_vtp.pyA{0}_Sample_0{1}_d.vtp'.format(i_aug, i_sample+1000)
      2. 保存在_./models/augmentation_vtk_data_ ”文件夹
  3. 生成训练集和验证集

    1. 文件:step2_get_list.py
      1. 定义变量num_augmentationnum_samples,使用21组数据中的16组80%为训练集、20%为验证集、测试集来自训练集
      2. 测试集、训练集、验证集分别被分为六个csv文件,存储训练、验证网格的相对地址和测试网格的ID
      3. combine_train.py便于训练,合并六个训练子集
  4. 训练数据

    1. 文件:step3_training.py
      1. 15个类(14颗牙齿和牙龈),特征数为15个包括三个顶点坐标(9)、法向量(3),相对位置向量(3)
      2. 准备输入特征和进一步增强的数据以及计算相邻矩阵(AS和AL)都是由Mesh_dataset.py进行的
      3. 为了进一步扩充数据集,在“_./models/augmentation_vtk_data_ 中的原数据中选择所有牙齿面片并随机选择一些牙龈面片形成 6,000 个面片训练。
      4. 输出losses_metrics_vs_epoch.csv得到loss,DSC,SEN,PPV,val_loss,val_DSC,val_SEN,val_PPV指标
    2. 文件:step3_1_continous_training.py
      1. 作者在_./models_ 文件夹中提供了两个经过训练的模型(一个上部和一个下部)和训练曲线
        • dsc_vs_epoch.png
        • loss_vs_epoch.png
        • ppv_vs_epoch.png
        • sen_vs_epoch.png
        • MeshSegNet_Man_15_classes_72samples_lr1e-2_best.zip
        • MeshSegNet_Max_15_classes_72samples_lr1e-2_best.zip
  • 可以选择自己的训练模型或者是作者的来继续训练输出losses_metrics_vs_epoch.csv得到 loss, DSC, SEN, PPV, val_loss, val_DSC, val_SEN, val_PPV 指标

  1. 模型测试

    1. 文件: step4_test.py
  2. 模型推理

    1. 文件:step5_predict.py
      1. 得到Example_d_predicted.vtp

  1. 结果优化-图切
    1. 文件:step6_predict_with_post_processing_pygco.py
      1. python包pygco实现
      2. 得到降采样后的模型Example_d_predicted_refined.vtp(简化模型),升采样后的模型Example_predicted_refined.vtp(通过KNN进行还原的网格)


欢迎关注我的其它发布渠道