本文适用于初学者进行代码复现,便于初学者更好地体会代码以及论文的含义。
原论文:Cascaded Partial Decoder for Fast and Accurate Salient Object Detection(CPD)
原文链接代码:代码
下载好代码后下载数据集ECSSD和DUTS-TE(选择下载两个)将两个数据集放入文件夹中。(文件夹后文会展示)
再在原文链接中下载
放入\CPD-master文件夹下。
将vgg.py文件内的
# pre_train = torch.load('G:/Github/Saliency/CPD-master/model/vgg16-397923af.pth')
# self._initialize_weights(pre_train)
两行注释掉。(这两行用于预训练)
然后修改代码路径:
dataset_path = 'E:/pytorchlearn/CPD-master/CPD-master/data/ECSSD'
dataset_path = './data/'
这两种写成哪一种都可以(对于初学者来说路径真是令人头疼)。
然后数据集这里改成:
test_datasets = ['DUTS-TE','ECSSD']
然后将数据集放在上述路径下,并更更改mask和images的名字
由于scipy.misc无法调用imsave,经查找,使用opencv进行图片保存。
在anaconda ptompt中,输入conda activate pytorch激活pytorch,然后输入下列命令即可安装opencv(由于我pytorch就是使用conda安装因此opencv也使用conda安装)
conda install -c https://conda.binstar.org/menpo opencv
然后将imsave代码行注释掉使用cv2.imwrite存储图片,在代码最开始也要加import cv2
# misc.imsave(save_path+name, res)
cv2.imwrite(save_path+name, res)
然后运行test_CPD.py文件,运行之前要在pycharm中配置好环境。
原mask(DUTS-TE数据集)
上图为预测结果。
可见在某些图片预测结果和原mask还是存在一些差距。
以上是利用已经训练好的模型进行预测,如果想自己训练可运行train.py文件进行训练。
接下来的几篇我可能会写论文的学习笔记。还是有关显著性检测方面的。