评估DeepLab-v2的分割结果:pixel accuracy、IoU

上篇文章详细记录了deeplab-v2的训练程:
https://blog.csdn.net/v1_vivian/article/details/80411444
这篇文章记录一下deeplab-v2的评估方法.deeplab-v2自带了评估代码,在:

/new/xxx/DeepLab/deeplab_v2/deeplab-public-ver2/matlab/my_script/

主要涉及到三个.m文件,分别是:

  • EvalSegResults.m
    程序入口,也是后面要执行的文件,在这个文件开头引入了SetupEnv文件,在SetupEnv里面定义了一些变量,根据这里定义的变量值,EvalSegResults.m里的变量有不同的取值,需要根据自己的情况,耐心一些修改即可。主要修改的变量值有:
    output_mat_folder:val的测试结果mat的路径(如果后面使用mat格式评估需要注意修改这个路径)
    save_root_folder: val经过后处理之后产生的.bin的路径
    seg_res_dir :val的分割结果根路径,在往下两层就存着val集分割.png的结果
    seg_root :val 原图路径
    gt_dir: val标签图路径
    这些都修改好了之后,就不要再改了,之后每次验证,只需要修改post_folder路径值,传入要评估的验证集的后处理之后的路径即可。
    EvalSegResults.m主要是定义了一些路径值。再者调用了两个比要重要的函数:
VOCopts = GetVOCopts(seg_root, seg_res_dir, trainset, testset, 'VOC2012');
[accuracies, avacc, conf, rawcounts] = MyVOCevalseg(VOCopts, id);
这两个函数一个用于读取VOC数据集,一个用于计算IoU,分别位于以下两个文件内:
  • GetVOCopts.m
    这个文件按照VOC数据集的格式,配置了很多VOCopts变量,用于分割的也仅仅涉及到:VOCopts.seg部分,变量值都是按照标准VOC数据集的格式来的。这里涉及到val_id.txt的路径以及验证集labels的路径,保证这部分正确即可。
    另外,这个文件中需要按照自己的数据集修改VOCopts.classes={}

  • MyVOCevalseg.m
    这个文件进行IoU的计算,确保传入的路径正确即可。因为我的路径和VOC的路径不一致,所以,我直接在这个文件里写死了VOCopts.seg.clsimgpath(放的是val_id.txt)和VOC.seg.imgsetpath(放的是验证集的labels)路径,省的传参出错…

以上三个文件都修改好了之后就可以执行:

matlab -nodesktop -nosplash -r EvalSegResults

会输出验证集上pixel accuracy、IoU等信息
评估DeepLab-v2的分割结果:pixel accuracy、IoU_第1张图片
三个文件的修改,上传在:https://download.csdn.net/download/v1_vivian/10644922
做一个备份,需要的可以下载参考,不过是按照我自己的路径,需要注意修改。

你可能感兴趣的:(语义分割)