本文章属于个人学习过程中的一个记录,不涉及深入内容。在初学阶段本人也在平台阅读各个大佬的文章,颇有所得。但是本人愚笨,仍有些东西不通,因此写下此文希望可以帮助到和我一样的人。至于标题,哈哈哈哈,普通标题没人看,引流一下咯,欢迎阅读、点赞、收藏!
一、数据集制作与放置
该部分对于初学者而言可以不做任何改变,按照S3DIS数据集的格式制作数据,放置其位置即可。至于打标签最常用的就是CloudCompare软件,将每一个类别目视分割出来单独保存,最后合在一起即可完成一个部分,具体参考S3DIS数据,就不多赘述。在每次目视分割过程中记得删除自动添加的标量,在训练中是不需要的。
二、网络参数的修改部分
制作好数据集按照S3DIS格式放置好后就可以调整代码啦。
1.data_utils文件夹
在该文件夹下meta文件夹中含有两个文件,anno_paths和class_names,第一个文件中写下训练测试区域的位置,第二个写下类别,大家一看便知。
indoor3d_util文件中需要g_class2color参数,根据自己的类别数据设置其显示的颜色即可,对于多余的直接注释,少了直接添加。
S3DISDataLoader文件中首先根据自己数据修改你的训练和测试的区域,其它参数可自行根据数据设置,主要需要修改的地方如下:1的位置是自己的类别数,2是类别数加一。
以上参数都设置好就可以数据预处理了,该网络的数据输入格式是npy,所以首先需要生成这个,生成好后需要自己将npy文件移动到stanford_indoor3d文件夹下,如果你对代码有一定的熟练度你也可以修改一下。
2.train开始训练
这部分其实没什么需要特别注意的,model、batchsize、epoch等都是根据自己的设备和数据集进行选择,需要改的是数据集的位置和类别。
如果你是windows系统,那你应该还要注意num_workers设置为0,否则会报错的。
3.test测试
同样的batchsize、采样点、测试区域自己设置,修改数据集路径和类别数目,需要注意visual改成true,否则测试完不显示成果,只有精度txt。
另外如果测试过程中很慢,最直接的方法是修改S3DISDataLoader文件中的stride参数,当然该参数的提高最后的效果会受到影响。