文章目录
- 1 写在前面
- 2 代码效果
- 3 代码修改
1 写在前面
- 夹带私货,可能有用呢:YOLOv7-tiny,通过pycocotools包得到预测大中小尺寸目标的指标值
仅供参考!写这个代码的目的是能够打印出iou=0.50的AP、AR的小中大3个尺寸的值,原始代码是不会打印出来的!
最好是一次性使用!因为这个是在动pycocotools这个包的源代码了,所以最好是用完之后就当场改回去,以免影响其他模型使用pycocotools包!!!
2 代码效果
原始效果:

代码修改之后的效果:

3 代码修改
本地电脑上:修改F:\SoftWarelnstall\Anaconda3\envs\torch1.10\Lib\site- packages\pycocotools\cocoeval.py这个文件,别找错了虚拟环境了哟,我这里修改的是自己配置好的torch1.10虚拟环境里面的文件
AutoDL云服务器上:在./miniconda3/envs/py38/lib/python3.8/site-packages\pycocotools\cocoeval.py修改,在云服务器上我的虚拟环境名是py38
在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 RecalliouThr:iou值,默认值是None,然后就是计算0.5:0.95,通常还可以设置为.5、.75areaRng:计算范围,默认是all,还可以是small、medium、largemaxDets:最大的检测目标数,默认是100,通常还可以填写0、10
通过设置上面的参数,就可以得到自己想要的值了
用完了之后记得还原哟!







![[WUSTCTF2020]alison_likes_jojo 1](https://img-blog.csdnimg.cn/direct/3e598e111eda4251a2466a795cb5bec6.png)










