MyTool Saliency maps 发现少的图(工具)

因为有些算法在下述情况会出现问题:
如果saliency map中有全黑图片,也就是算法没能检测到图片。
有些评测算法在这种情况下会出现NaN,或者报错,所以有些作者采取了粗暴的解决办法‘删除相关全黑图片’

此时算法运算会报错,因此有些作者的做法是吧全黑色的图删除,这就会发现我们的Saliency map尤其是OMRON各种算法作者提供的图数量不一样,虽然很多顶会文章会这样做,但是还是有点投机取巧的嫌疑。

下面记录下各个算法删除的图片

EGNet
5168-5166
DUT-OMRON中差出来的2张图片名字
sun_akxddynsopjifavt.png
sun_barwtmnxkuxyttlj.png

 

 

 

 

 

 

 

 

 

下面提供了一个脚本来发现这些少了的图片:(大家可以拿去用,很方便)

import cv2
import sys
import numpy as np
import os
mySys = 'win'  # win
filePath1 = '/home/nk/zjc/PycharmProjects/Nk_val/Val-matlab/SODEvalToolkit-master/tools/SaliencyMaps/DUTS/MLMSNet/'
list_png1 = os.listdir(filePath1)
list_png1 = sorted(list_png1)

# 多的
filePath2 = '/home/nk/zjc/PycharmProjects/Nk_val/Val-matlab/SODEvalToolkit-master/tools/GroundTruth/DUTS-2/'
list_png2 = os.listdir(filePath2)
list_png2 = sorted(list_png2)


if mySys == 'mac':
    list_png1 = list_png1[1:]
    list_png2 = list_png2[1:]

print('1', len(list_png1), type(list_png1))
print('2', len(list_png2), type(list_png1))
# ECSSD PASCALS DUTS-TE DUT-OMRON HKU-IS
x =0
if __name__ == '__main__':
    for i in list_png1:

        b = list_png2[x]
        x= x+1
        # 只要名字
        i = i.split(".")[0]
        b = b.split(".")[0]

        if i==b:
            pass
        else:
            print('no ', i,'and', b)
            print(b, 'should be delete')
            break

 

你可能感兴趣的:(遇到问题,SOD评测)