python:目标检测模型预测准确度计算方式(基于IoU)


Posted in Python onJanuary 18, 2020

训练完目标检测模型之后,需要评价其性能,在不同的阈值下的准确度是多少,有没有漏检,在这里基于IoU(Intersection over Union)来计算。

希望能提供一些思路,如果觉得有用欢迎赞我表扬我~

IoU的值可以理解为系统预测出来的框与原来图片中标记的框的重合程度。系统预测出来的框是利用目标检测模型对测试数据集进行识别得到的。

计算方法即检测结果DetectionResult与GroundTruth的交集比上它们的并集,如下图:

蓝色的框是:GroundTruth

黄色的框是:DetectionResult

绿色的框是:DetectionResult ⋂GroundTruth

红色的框是:DetectionResult ⋃GroundTruth

python:目标检测模型预测准确度计算方式(基于IoU)

python:目标检测模型预测准确度计算方式(基于IoU)

基本思路是先读取原来图中标记的框信息,对每一张图,把所需要的那一个类别的框拿出来,与测试集上识别出来的框进行比较,计算IoU,选择最大的值作为当前框的IoU值,然后通过设定的阈值(漏检0, 0.3, 0.5, 0.7)来进行比较统计,最后得到每个阈值下的所有的判定为正确检测(IoU值大于阈值)的框的数量,然后与原本的标记框的数量一起计算准确度。

其中计算IoU的时候是重新构建一个背景为0的图,设定框所在的位置为1,分别利用原本标注的框和测试识别的框来构建两个这样的图,两者相加就能够让重叠的部分变成2,于是就可以知道重叠部分的大小(交集),从而计算IoU。

构建代码如下:

#读取txt-标准txt为基准-分类别求阈值-阈值为0. 0.3 0.5 0.7的统计
import glob
import os
import numpy as np
 
#设定的阈值
threshold1=0.3
threshold2=0.5
threshold3=0.7
 
#阈值计数器
counter0=0
counter1=0
counter2=0
counter3=0
 
stdtxt=''#标注txt路径
testtxt=''#测试txt路径
 
txtlist=glob.glob(r'%s\*.txt' %stdtxt)#获取所有txt文件
for path in txtlist:#对每个txt操作
  
  txtname=os.path.basename(path)[:-4]#获取txt文件名
  label=1
  eachtxt=np.loadtxt(path) #读取文件
  for line in eachtxt:
    if line[0]==label:
      #构建背景为0框为1的图
      map1=np.zeros((960,1280))
      map1[line[2]:(line[2]+line[4]),line[1]:(line[1]+line[3])]=1
      
      testfile=np.loadtxt(testtxt + txtname + '.txt')
      c=0
      iou_list=[]#用来存储所有iou的集合
      for tline in testfile:#对测试txt的每行进行操作
        if tline[0]==label:
          c=c+1
          map2=np.zeros((960,1280))
          map2[tline[2]:(tline[2]+tline[4]),tline[1]:(tline[1]+tline[3])]=1
          map3=map1+map2
          a=0
          for i in map3:
            if i==2:
              a=a+1
          iou=a/(line[3]*line[4]+tline[3]*tline[4]-a)#计算iou
          iou_list.append(iou)#添加到集合尾部
          
      threshold=max(iou_list)#阈值取最大的
      #阈值统计
      if threshold>=threshold3:
        counter3=counter3+1
      elif threshold>=threshold2:
        counter2=counter2+1
      elif threshold>=threshold1:
        counter1=counter1+1
      elif threshold<threshold1:#漏检
        counter0=counter0+1

以上这篇python:目标检测模型预测准确度计算方式(基于IoU)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中的二叉树查找算法模块使用指南
Jul 04 Python
python里使用正则表达式的组嵌套实例详解
Oct 24 Python
基于Python log 的正确打开方式
Apr 28 Python
Django 跨域请求处理的示例代码
May 02 Python
python-docx修改已存在的Word文档的表格的字体格式方法
May 08 Python
Python3 文章标题关键字提取的例子
Aug 26 Python
python调用matplotlib模块绘制柱状图
Oct 18 Python
浅谈cv2.imread()和keras.preprocessing中的image.load_img()区别
Jun 12 Python
python退出循环的方法
Jun 18 Python
MATLAB数学建模之画图汇总
Jul 16 Python
Python爬虫过程解析之多线程获取小米应用商店数据
Nov 14 Python
对Keras自带Loss Function的深入研究
May 25 Python
Python实现计算长方形面积(带参数函数demo)
Jan 18 #Python
python实现的Iou与Giou代码
Jan 18 #Python
Python 简单计算要求形状面积的实例
Jan 18 #Python
python实现用类读取文件数据并计算矩形面积
Jan 18 #Python
python不使用for计算两组、多个矩形两两间的iou方式
Jan 18 #Python
浅谈Python3实现两个矩形的交并比(IoU)
Jan 18 #Python
利用setuptools打包python程序的方法步骤
Jan 18 #Python
You might like
PHP生成sitemap.xml地图函数
2013/11/13 PHP
将PHP程序中返回的JSON格式数据用gzip压缩输出的方法
2016/03/03 PHP
PHP微信开发之微信录音临时转永久存储
2018/01/26 PHP
PHP保存Base64图片base64_decode的问题整理
2019/11/04 PHP
编写自己的jQuery插件简单实现代码
2011/04/19 Javascript
JavaScript模块随意拖动示例代码
2014/05/27 Javascript
JS折半插入排序算法实例
2015/12/02 Javascript
jQuery自定义图片缩放拖拽插件imageQ实现方法(附demo源码下载)
2016/05/27 Javascript
jquery实现的回旋滚动效果完整实例【附demo源码下载】
2016/09/20 Javascript
浅谈js中几种实用的跨域方法原理详解
2016/12/02 Javascript
微信小程序如何获取地址
2019/12/24 Javascript
JavaScript中的this基本问题实例小结
2020/03/09 Javascript
微信小程序自定义弹出模态框禁止底部滚动功能
2020/03/09 Javascript
js验证密码强度解析
2020/03/18 Javascript
Python常用随机数与随机字符串方法实例
2015/04/09 Python
Python函数中的函数(闭包)用法实例
2016/03/15 Python
Python实现信用卡系统(支持购物、转账、存取钱)
2016/06/24 Python
python rsa 加密解密
2017/03/20 Python
python实现京东秒杀功能
2018/07/30 Python
Opencv+Python 色彩通道拆分及合并的示例
2018/12/08 Python
python切片的步进、添加、连接简单操作示例
2019/07/11 Python
为什么从Python 3.6开始字典有序并效率更高
2019/07/15 Python
keras 模型参数,模型保存,中间结果输出操作
2020/07/06 Python
django使用channels实现通信的示例
2020/10/19 Python
浅析pandas随机排列与随机抽样
2021/01/22 Python
美国咖啡批发网站:Coffee.org
2017/06/29 全球购物
夏尔巴人登珠峰品牌:Sherpa Adventure Gear
2018/02/08 全球购物
杭州-DOTNET笔试题集
2013/09/25 面试题
毕业生自我鉴定
2013/11/05 职场文书
个人简历自荐信
2013/12/05 职场文书
省优秀教师事迹材料
2014/01/30 职场文书
员工拓展培训方案
2014/02/15 职场文书
工伤事故赔偿协议书
2014/04/15 职场文书
医院保洁服务方案
2014/06/11 职场文书
2014年建筑工程工作总结
2014/12/03 职场文书
法人代表资格证明书
2015/06/18 职场文书