1.问题

验证目标检测模型性能时候,模型输出检测目标需要和真值目标匹配,然后计算精度acc。主要涉及bounding box和label的匹配。

2.目标检测流程

(1)图片输入模型,并输出检测目标的bond_boxes,labels和probs。

(2)把bond_boxes通过尺寸缩放到原图对应尺寸,并对超出图像边界框进行去除

(3)对bond_boxes根据置信度probs过滤,去掉执行度低的(常0.5为阈值)

(4)对bond_boxes 进行非极大值抑制处理(NMS)

(5)处理时候,根据过滤后bond_boxes 的索引(index)同步更新labels和probs。

更名为det_bond_boxes,det_labels

(6)读取该图片对应真值文件(ground truth)中的bond_boxes和labels。

更名为gt_bond_boxes,gt_labels

(7)根据det_bond_boxes和gt_bond_boxes的IOU来匹配,这一步是需要操作技巧。具体流程如下

import numpy as npif __name__ == "__main__":#依次拿检测到的gt_boxes和真值ground truth中gt_box匹配,计算两者IOU,假设det_box为a,gt_box=ba = [[1,2,4,5],[4,5,6,7],[8,9,10,11,12],[13,14,15,16]]b = [[4, 5, 6, 7],[1, 2, 4, 5],[8, 9, 10, 11, 12],]det_boxes = np.array(a)gt_boxes  = np.array(b)#假设IOU计算如下,一共12个,第一列是第一个dt_box和3个gt_box的IOUIOU = [[0.1, 0.8, 0.1],[0.8, 0.1, 0.1],[0.1, 0.1, 0.9],[0.1, 0.1, 0.2]]#找出每个det_box和三个gt_box IOU最值iou_max = np.max(IOU,axis = 1)print(iou_max)#iou_max = [0.8 0.3 0.9 0.9]# 对IOU进行过滤小于0.5淘汰iou_max_index = iou_max > 0.5print(iou_max_index)#iou_max_index=[ True  True False  True]new_det_boxes =det_boxes[iou_max_index]#[list([1, 2, 4, 5]) list([4, 5, 6, 7]) list([8, 9, 10, 11, 12])#已经过滤掉det_box的第四个box#这时候需要给每个det_box 匹配对应的gt_box,首先去除IOU中那个属于错误检测框的IOU,也就是IOU第三列gt_match_dt_index = np.argmax(IOU,axis=0)#返回给gt_box匹配IOU最大的对应det_box的索引print(gt_match_dt_index)#[1 0 2]new_gt_boxes = gt_boxes[gt_match_dt_index]## [list([1, 2, 4, 5]) list([4, 5, 6, 7]) list([8, 9, 10, 11, 12])#完成检测框和真值框的一一匹配

目标检测_0.1检测目标和真值(ground truth)匹配相关推荐

  1. 自动驾驶之-MATLAB环境下基于深度学习的目标检测(停车标志检测)

    深度学习,一个大号的,现代的,黑箱的,信号/图像处理器,本文程序运行环境为MATLAB R2018A. 本文简要讲解如何使用深度学习(R-CNN网络)来训练一个停车标志检测器.R-CNN是一种目标检测 ...

  2. 目标跟踪介绍(单目标)

    Abstract 视觉跟踪技术是计算机视觉领域(人工智能分支)的一个重要课题,有着重要的研究意义:且在军事制导.视频监控.机器人视觉导航.人机交互.以及医疗诊断等许多方面有着广泛的应用前景.随着研究人 ...

  3. 面向量产的3D目标与车道线检测方法

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 Part 1 背景介绍 1. 1 团队介绍 商汤科技自动驾驶团队依托公司为背景,以 SenseParr ...

  4. 【目标检测】grid cell、bounding box、ground truth的含义

    记录几个名词解释,如果有表达不准确或不充分的地方欢迎指正. grid cell 就相当于划分好的网格,比如说YOLOv1是将图片分成7*7的网格,然后这49个网格每个网格就是一个grid cell. ...

  5. 【目标检测】56、目标检测超详细介绍 | Anchor-free/Anchor-based/Backbone/Neck/Label-Assignment/NMS/数据增强

    文章目录 1.双阶段和单阶段目标检测器 1.1 双阶段目标检测器 1.1.1 R-CNN 1.1.2 SPP 1.1.3 Fast R-CNN 1.1.4 Faster R-CNN 1.2 单阶段目标 ...

  6. 【camera】自动驾驶感知系统实现(车道线检测和拟合、目标检测与跟踪、道路可行驶区域分割、深度估计、图像视野到BEV空间映射、像平面到地平面映射)

    自动驾驶感知系统实现(车道线检测和拟合.目标检测与跟踪.道路可行驶区域分割.深度估计.图像视野到BEV空间映射.像平面到地平面映射) 项目下载地址:项目下载地址 推理引擎下载地址:推理引擎下载地址 支 ...

  7. 我理解的分类、目标检测、目标识别、目标定位、目标跟踪

    分类:判断一张图片是什么类别?不需要给出物体的位置信息. 目标检测:找到图中所有的目标和它们的位置.(可能有多个目标) 目标识别:输出一张图片中是不是包含目标?(单个目标) 目标定位:输出目标的确切位 ...

  8. 运动目标检测、阴影检测及目标跟踪中用得到的标准测试视频下载

    运动目标检测.阴影检测及目标跟踪中用得到的标准测试视频下载 转载 2016年03月16日 09:53:28 标签: 目标跟踪 / 755

  9. 摄像头图像分析目标物体大小位置_小目标检测的增强算法

    版权声明:本文来源 程序媛的小世界https://zhuanlan.zhihu.com/p/135397874 Augmentation for small object detection 摘要 近 ...

最新文章

  1. 幽门螺杆菌感染会增加代谢综合征和糖尿病风险,竟然“男女有别”?
  2. visualize_object_model_3d算子说明
  3. Solr7 安装部署 管理界面介绍
  4. 什么决定了电商双11大促的成败
  5. 关于HBITMAP,CBITMAP,BITMAP的转换以及图像显示的一点归纳
  6. C++算法一些常用的stl函数
  7. 《LeetBook》LeetCode题解(1) : Two Sum[E]——哈希Map的应用
  8. python箱线图代码找出异常_matplotlib中的箱线图:标记和异常值
  9. 用百宝云在线表单制作一个简单的投票系统
  10. cad文件格式(dwg、dxf、dwf、dws等)转其他格式(svg、,tiff、jpej、png、xml、pdf等)的四种方式(java)
  11. C++图像缩放(StretchBlt,StretchDIBits,双线性内插法)
  12. 谷歌搜索技巧大全,google高级搜索语法指令怎么用
  13. 什么是服务器?服务器是干什么用的?
  14. 读《大学生上课为什么一定要认真听讲》有感
  15. Python爬虫---爬取腾讯动漫全站漫画
  16. YourBatman表白了,在Java 27岁生日这天
  17. gitee 链接报错
  18. 【PaddleNLP实战】对话意图分类方案
  19. win7打不开chm格式文件
  20. javaScript中三大家族总结

热门文章

  1. 服务器操作系统加固软件,服务器操作系统安全加固软件
  2. Unity3D 入门:安装 Unity3D 并配置与 Visual Studio 的协作开发环境
  3. 西门子变频器G120智能操作面板的功能和特点分享
  4. 水印,数字水印,频域水印(隐形水印)很麻烦!用这个分分钟搞定!
  5. java计算机毕业设计库存管理系统源码+系统+数据库+lw文档+mybatis+运行部署
  6. Unity FairyGUI(一)
  7. 【AI实时变声器,声音甜甜的小姐姐背后竟是抠脚大汉】
  8. 初一年级上学期计算机课知识总结,精选七年级上册信息技术教案范文3篇
  9. php 接口的token
  10. 省市县三级联动数据库