使用pycocotools打印更多数据,并且数值扩展到小数点后6位(注意,修改后最好再还原!最好是一次性使用!也可以长期使用,只要记得这里改了的就行[手动狗头])

本文介绍了如何修改pycocotools库的代码,以打印出YOLOv7-tiny模型在小、中、大尺寸目标上的IoU=0.5的AP和AR值,同时提供了在本地和云服务器上进行代码调整的详细步骤。
摘要由CSDN通过智能技术生成

1 写在前面

仅供参考!写这个代码的目的是能够打印出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

  1. 打印小数点后五位数:在cocoeval.py中定位到iStr =然后将后面的{:0.3f}里的3改为想要的小数点位数,例如我想要5位数就改为5

在这里插入图片描述

  1. 打印更多数据:在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

  1. ap:为1就表示是计算Average Precision0Average Recall
  2. iouThr:iou值,默认值是None,然后就是计算0.5:0.95,通常还可以设置为.5.75
  3. areaRng:计算范围,默认是all,还可以是smallmediumlarge
  4. maxDets:最大的检测目标数,默认是100,通常还可以填写010

通过设置上面的参数,就可以得到自己想要的值了

用完了之后记得还原哟!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孟孟单单

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值