深度学习中IU、IoU(Intersection over Union)的概念理解
IoU(Intersection over Union)
Intersection over Union是一种测量在特定数据集中检测相应物体准确度的一个标准。我们可以在很多物体检测挑战中,例如PASCAL VOC challenge中看多很多使用该标准的做法。
通常我们在 HOG + Linear SVM object detectors 和 Convolutional Neural Network detectors (R-CNN, Faster R-CNN, YOLO, etc.)中使用该方法检测其性能。注意,这个测量方法和你在任务中使用的物体检测算法没有关系。
IoU是一个简单的测量标准,只要是在输出中得出一个预测范围(bounding boxex)的任务都可以用IoU来进行测量。为了可以使IoU用于测量任意大小形状的物体检测,我们需要:
1、 ground-truth bounding boxes(人为在训练集图像中标出要检测物体的大概范围);
2、我们的算法得出的结果范围。
也就是说,这个标准用于测量真实和预测之间的相关度,相关度越高,该值越高。
如下图:
下图展示了ground-truth和predicted的结果,绿色标线是人为标记的正确结果,红色标线是算法预测出来的结果,IoU要做的就是在这两个结果中测量算法的准确度。
如上图,很简单,IoU相当于两个区域重叠的部分除以两个区域的集合部分得出的结果。
一般来说,这个score > 0.5 就可以被认为一个不错的结果了。
python程序实现
具体实现过程请移步:https://www.pyimagesearch.com/2016/11/07/intersection-over-union-iou-for-object-detection/
def bb_intersection_over_union(boxA, boxB):# determine the (x, y)-coordinates of the intersection rectanglexA = max(boxA[0], boxB[0])yA = max(boxA[1], boxB[1])xB = min(boxA[2], boxB[2])yB = min(boxA[3], boxB[3])# compute the area of intersection rectangleinterArea = (xB - xA + 1) * (yB - yA + 1)# compute the area of both the prediction and ground-truth# rectanglesboxAArea = (boxA[2] - boxA[0] + 1) * (boxA[3] - boxA[1] + 1)boxBArea = (boxB[2] - boxB[0] + 1) * (boxB[3] - boxB[1] + 1)# compute the intersection over union by taking the intersection# area and dividing it by the sum of prediction + ground-truth# areas - the interesection areaiou = interArea / float(boxAArea + boxBArea - interArea)# return the intersection over union valuereturn iou
后记
IoU在FCN中称为IU,初看Fully Convolutional Networks for Semantic Segmentation论文,其中的IU概念没有能理解,其实那里的IU也就是IoU,检测物体轮廓不一定非得是方框,也可以是沿着物体的边线:
在实际的任务中,根据不同的任务要求来写不同具体实现的检测方法,但说白了其实都是IoU或者IU。
另外mean IU指的是不同类别识别准确度的平均值,比如一幅图中要识别三个物体,mean IU就是三个物体分别准确度加起来的平均值。
参考资料:
https://www.pyimagesearch.com/2016/11/07/intersection-over-union-iou-for-object-detection/
https://stackoverflow.com/questions/25349178/calculating-percentage-of-bounding-box-overlap-for-image-detector-evaluation/42874377#42874377
https://stackoverflow.com/questions/25349178/calculating-percentage-of-bounding-box-overlap-for-image-detector-evaluation/42874377#42874377
深度学习中IU、IoU(Intersection over Union)的概念理解相关推荐
- 深度学习中IU、IoU(Intersection over Union)的概念理解以及python程序实现
from: 深度学习中IU.IoU(Intersection over Union)的概念理解以及python程序实现 IoU(Intersection over Union) Intersectio ...
- 目标检测中IoU(Intersection over Union)的概念理解
参考博客 深度学习中IU.IoU(Intersection over Union)的概念理解以及python程序实现 一.IoU(交并比)概念 Intersection over Union,是一种测 ...
- 深度学习中的IoU概念理解
1.什么是IoU(Intersection over Union) IoU是一种测量在特定数据集中检测相应物体准确度的一个标准.IoU是一个简单的测量标准,只要是在输出中得出一个预测范围(boundi ...
- 深度学习中7种最优化算法的可视化与理解
作者丨小小鱼@知乎 来源丨https://zhuanlan.zhihu.com/p/41799394 本文旨在优化一维函数,实际上模型参数有数百万维以上,差距很大,因此本文最好作为辅助法的理解,而非对 ...
- 深度学习中的Epoch,Batchsize,Iterations深刻理解
[嵌牛导读]Epoch,Batchsize,Iterations,这三个都是深度学习训练模型时经常遇到的概念.你一定有过这样的时刻,面对这几个词傻傻分不清楚,这三个概念究竟是什么,它们又有什么区别? ...
- 深度学习中的IOU计算方式和代码实践
IOU,全称为intersection of union, 中文名"交并比".这个概念理解起来不难,本文将从原理以及代码实践来解读IOU. 首先要说明的是,IOU在检测领域和分割领 ...
- 深度学习中Batch、Iteration、Epoch的概念与区别
在神经网络训练中,一般采用小批量梯度下降的方式. Batch Epoch Iteration 就是其中的重要的概念.我们要理解懂得它们都是什么以及它们之间的区别. 1.Batch 每次迭代时使用的一批 ...
- 深度学习中端到端(end-to-end)简要理解
端到端(end-to-end)简要理解 端到端 好处 不同领域的端到端 目标检测 非end-to-end方法 end-to-end方法 CV计算机视觉 语音识别 非端到端 端到端 参考 端到端 端到端 ...
- 深度学习中 经常提到的 end to end 的理解
本文转自https://www.cnblogs.com/zeze/p/7798080.html,感谢这位大神的讲解,为了防止以后找不到相关的知识,所以在此转载,复制到本文. End to end:指的 ...
最新文章
- 数据项目总结 -- 蛋壳公寓租金分析!
- AngularJs在IE10,11中的一个坑。
- ueditor php版使用,ueditor 1.2.6 使用方法说明
- GraphQL及元数据驱动架构在后端BFF中的实践
- 【Python】模糊匹配搜索
- C语言中错误c213是什么意思,DS1302的错误:error c213
- WPF MediaElement循环播放
- Hadoop四大组件介绍
- 微信小程序编辑与显示列表信息
- 如何给REED3阅读器都opml文件
- HDU 5144 NPY and shot(三分法)
- 基于OpenCv+Django的网络实时视频流传输(前后端分离)
- 爱普生发票打印机 每次连续打印发票,都跳页,中间一张空白
- hive计算几个月的最大最小时一定要把string类型转换成int类型
- 浅谈现在完成时被动语态
- 使用kubeadm工具箱创建kubernetes1.9集群
- python multiIndex 操作攻略
- Android——Handler、Loop、MessageQueue的工作原理
- ie 浏览器对象不支持“replaceAll”属性或方法
- Android开启usb音频输出,Android手机开发人员选项-选择USB配置-音频源,如何使用?...
热门文章
- 31道Android面试题,2021年你与字节跳动只差这份笔记,技术详细介绍
- 小程序日活500,收入多少,怎么赚钱把服务器费用赚回来啊~
- Java日志框架 -- SLF4J日志门面(入门案例、SLF4J优点、SLF4J日志绑定、SL4J桥接旧的日志框架)
- 算法排序基础(全版)
- C++不借助第三变量交换两个变量的值
- 华为机试---血型遗传检测
- mysqldump介绍,利用MySQL全备份(mysqldump),如何只恢复一个库或者一个表?
- 使用 mysqld_safe 启动 mysqld 服务
- (笔记)libc: Fatal signal 5 (SIGTRAP), code 1 (TRAP_BRKPT), fault addr 0x6f36dd63c0 in tid 29733 (examp
- AMap(创建基础地图)