原始效果:
代码修改之后的效果:
修改F:\SoftWarelnstall\Anaconda3\envs\torch1.10\Lib\site- packages\pycocotools\cocoeval.py
这个文件,别找错了虚拟环境了哟,我这里修改的是自己配置好的torch1.10
虚拟环境里面的文件
在cocoeval.py
中定位到def _summarizeDets():
,然后进行如下修改👇
# ------------------------------------------------------lwd edit-------------------------------------------------- #
print('-' * 30)
stats[12] = _summarize(1, iouThr=.5, areaRng='small', maxDets=self.params.maxDets[2])
stats[13] = _summarize(1, iouThr=.5, areaRng='medium', maxDets=self.params.maxDets[2])
stats[14] = _summarize(1, iouThr=.5, areaRng='large', maxDets=self.params.maxDets[2])
print('-' * 30)
stats[15] = _summarize(0, iouThr=.5, areaRng='small', maxDets=self.params.maxDets[2])
stats[16] = _summarize(0, iouThr=.5, areaRng='medium', maxDets=self.params.maxDets[2])
stats[17] = _summarize(0, iouThr=.5, areaRng='large', maxDets=self.params.maxDets[2])
# ------------------------------------------------------lwd edit-------------------------------------------------- #
上面的_summarize()
函数里面可以传入4个参数,默认参数值是ap=1, iouThr=None, areaRng='all', maxDets=100
:
ap
:为1
就表示是计算Average Precision
,0
是Average Recall
iouThr
:iou值,默认值是None
,然后就是计算0.5:0.95
,通常还可以设置为.5
、.75
areaRng
:计算范围,默认是all
,还可以是small
、medium
、large
maxDets
:最大的检测目标数,默认是100
,通常还可以填写0
、10
通过设置上面的参数,就可以得到自己想要的值了
用完了之后记得还原哟!