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

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

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

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

蓝色的框是:GroundTruth

黄色的框是:DetectionResult

绿色的框是:DetectionResult ⋂GroundTruth

红色的框是:DetectionResult ⋃GroundTruth

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

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

构建代码如下:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

#读取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 pathin txtlist:#对每个txt操作

txtname=os.path.basename(path)[:-4]#获取txt文件名

label=1

eachtxt=np.loadtxt(path)#读取文件

for linein 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 tlinein 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 iin 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

counter0=counter0+1

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

原文链接:https://blog.csdn.net/malvas/article/details/84957820

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

  1. 如何一个模型走天下?集成训练多数据集,打造通用目标检测模型方法详解

    在目标检测的实际应用中,常常会出现需要泛化的目标检测系统的情况.如城市安防中,需要目标检测系统能够检测足够多类别的目标,才能达到更好的安防效果. 但目前常用的目标检测数据集中包含的类别数量有限,使用单 ...

  2. python实现目标检测_由浅入深:教你如何构建一个行人目标检测模型(Python)

    摘要: 零基础也能构建一个目标检测(对象检测)模型?小编教你使用Image AI库从头开始构建一个行人检测模型. 当我们看到一张图片时,我们的大脑会立即识别图片中所包含的物体.而对于机器来说,识别这些 ...

  3. [Python图像识别] 四十八.Pytorch构建Faster-RCNN模型实现小麦目标检测

    该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...

  4. 1.8M超轻量目标检测模型NanoDet,比YOLO跑得快

    机器之心报道,项目作者:RangiLyu 目标检测一直是计算机视觉领域的一大难题,其目标是找出图像中的所有感兴趣区域,并确定这些区域的位置和类别.目标检测中的深度学习方法已经发展了很多年,并出现了不同 ...

  5. 用OpenCV实现超轻量的NanoDet目标检测模型!

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨nihate 审稿丨邓富城 编辑丨极市平台 导读 本文作者用OpenCV部署了超轻量目标检测模型 ...

  6. windows缩放200模糊_1.8M超轻量目标检测模型NanoDet,比YOLO跑得快,上线两天Star量超200...

    机器之心报道 项目作者:RangiLyu 如何把 anchor-free 模型移植到移动端或嵌入式设备?这个项目对单阶段检测模型三大模块(Head.Neck.Backbone)进行轻量化,得到模型大小 ...

  7. 使用TF lite 优化 MobileDet 目标检测模型部署

    文 / Sayak Paul,Google Developer Expert 今年,来自威斯康星大学麦迪逊分校和 Google 的研究人员发表了他们在 MobileDet 上所做的研究工作.他们在 M ...

  8. 收藏 | 超轻量目标检测模型NanoDet,比YOLO跑得快,上线两天Star量超200

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:机器之心 AI博士笔记系列推荐 周志华<机器学习> ...

  9. YOLOV3目标检测模型训练实例

    YOLOV3目标检测 从零开始学习使用keras-yolov3进行图片的目标检测,比较详细地记录了准备以及训练过程,提供一个信号灯的目标检测模型训练实例,并提供相关代码与训练集. DEMO测试 YOL ...

最新文章

  1. 对应生成树的基本回路_数据结构与算法——最小生成树
  2. 路由与交换 基础 1:组播
  3. [翻译-ASP.NET MVC]Contact Manager开发之旅迭代3 - 验证表单
  4. amesim安装失败_Win10系统安装AMEsim14的方法【图文教程】
  5. 初始化方法-使用参数设置属性初始值
  6. mysql命令_MySQL常用操作命令
  7. 原创--DataGrid自动分页例子,通过存储过程
  8. ES6中的React生命周期详解
  9. [3]2020-IEEE Access-Batch Active Learning With Two-Stage Sampling 论文笔记
  10. 家里网连github慢怎么办_果农问事台:果树拉枝后枝条梢头有上翘生长怎么办?...
  11. php远程获取文件大小,PHP 获取远程文件大小的3种解决方法
  12. LUA脚本语言的简介
  13. 裴礼文《数学分析中的典型问题与方法》P61~90
  14. 模拟集成电路—拉扎维第三章知识点
  15. Oracle启动报错ORA-03113解决
  16. VMware安装macOS High Sierra V10.13.6完整版
  17. 机器学习 | 台大林轩田机器学习基石课程笔记12 --- Nonlinear Transformation
  18. 微信小程序python解析获取用户手机号_微信小程序如何获取用户绑定手机号
  19. 浮点数的表示及范围 IEEE754
  20. 我的时间都去哪里了?

热门文章

  1. 避免修改构造函数输入参数引起的 breaking change
  2. SAP C4C,CRM和S4HANA的Saved Query使用介绍
  3. Spring 中的事件处理
  4. SAP BSP - how to access javascript file via Mime API
  5. 通过document id和content拿到SAP document的binary data
  6. enter opportunity line item detail page AG3
  7. Angular Table test
  8. 如何处理SAP Fiori Launchpad KPI tile点击后出现的错误消息
  9. SAP云平台里Run index.html和Run as SAP Fiori Launchpad的区别
  10. SAP CRM IBASE头部字段读取的具体实现