多标签图像检测求精确率,召回率,AP,mAP

首先我有一个文件夹,里面包含两百多张已经用labelImg标注好的图片,每个图片对应一个xml文件。这些图片中可能会包含五种标签。

现需要利用mmdetection计算每种标签的精确率(precision),召回率(recall),AP,和这个模型的mAP。并且将检测结果写成xml,且该xml可被labelimg识别。

网上大多讨论的是二分类的做法,当下的问题相当于五类,说一下我的思路。

对某一个标签来说:

       Precision :识别正确的个数 / 识别出的总个数  (准)

       Recall:识别正确的个数 / 实际的个数  (全)

       AP(Average Precision): 每一张图片的P值之和 / 图片数量

对所有标签(这个模型)来说:

      mAP(mean Average Precision): 每个标签的AP值之和 / 标签数量

利用混淆矩阵计算 Precision,Recall

矩阵为 (5* 6)如下:

列:实际的标签

行:检测到的标签类别、没检出来的

这里是将所有图片中的所有标签的结果都放在这个矩阵中

例如计算label1的Precision = 3/(3+1+0+0+2) = 0.5       Recall = 3/(3+1+1+0+0+1) = 0.5

计算AP

   根据ap的定义来算。

首先定义两个列表,这两个列表长度等于图片数量

#保存原始所有图片的每个标签的实际个数
original_matrix_pics = []
#保存检测到的所有图片的每个标签的个数
detected_matrix_pics = []

然后在定义一个列表,保存每张图片的信息

#每张图片各标签的检测个数   num_classes_fzp = 5
origin_pic = np.zeros(num_classes_fzp)   #[0, 0, 0, 0, 0]
#每张图片各标签的检测成功个数
detected_pic = np.zeros(num_classes_fzp) #[0, 0, 0, 0, 0]

然后循环处理每一张图片,将结果append到original_matrix_picsdetected_matrix_pics ,然后计算每张图片每个标签的P、AP值

如果该图片中实际没有该标签,那么计算AP是应该排除这张图片,即总数不计该图片。

计算mAP

mAP = 5个标签AP之和/5

如果所有图片中实际只有四个标签,那么应该除以4

结果

刚接触目标检测,可能理解有不到位或者偏差的地方,欢迎指正。

 

 

其他

重要参考:

      https://blog.csdn.net/leviopku/article/details/80835929

      https://blog.csdn.net/weixin_40369473/article/details/102653018  (该博客中 P=(一张图片上某一类别识别的正确数量)/一张图片上某一类别的总数量  分母应该是识别的总数量,不是实际)

     https://blog.csdn.net/mr_muli/article/details/91897566

    http://www.sohu.com/a/135668355_556897

读写XML可使用ElementTree

参考:https://blog.csdn.net/hu694028833/article/details/81089959

xml美化,缩进

参考:https://blog.csdn.net/weixin_42997255/article/details/100090114

创建矩阵可用numpy

参考:https://blog.csdn.net/qq_39161737/article/details/78814743

IOU计算

参考:

https://www.cnblogs.com/mengxiangtiankongfenwailan/p/11392409.html

 

 

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值