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)的概念理解相关推荐

  1. 深度学习中IU、IoU(Intersection over Union)的概念理解以及python程序实现

    from: 深度学习中IU.IoU(Intersection over Union)的概念理解以及python程序实现 IoU(Intersection over Union) Intersectio ...

  2. 目标检测中IoU(Intersection over Union)的概念理解

    参考博客 深度学习中IU.IoU(Intersection over Union)的概念理解以及python程序实现 一.IoU(交并比)概念 Intersection over Union,是一种测 ...

  3. 深度学习中的IoU概念理解

    1.什么是IoU(Intersection over Union) IoU是一种测量在特定数据集中检测相应物体准确度的一个标准.IoU是一个简单的测量标准,只要是在输出中得出一个预测范围(boundi ...

  4. 深度学习中7种最优化算法的可视化与理解

    作者丨小小鱼@知乎 来源丨https://zhuanlan.zhihu.com/p/41799394 本文旨在优化一维函数,实际上模型参数有数百万维以上,差距很大,因此本文最好作为辅助法的理解,而非对 ...

  5. 深度学习中的Epoch,Batchsize,Iterations深刻理解

    [嵌牛导读]Epoch,Batchsize,Iterations,这三个都是深度学习训练模型时经常遇到的概念.你一定有过这样的时刻,面对这几个词傻傻分不清楚,这三个概念究竟是什么,它们又有什么区别? ...

  6. 深度学习中的IOU计算方式和代码实践

    IOU,全称为intersection of union, 中文名"交并比".这个概念理解起来不难,本文将从原理以及代码实践来解读IOU. 首先要说明的是,IOU在检测领域和分割领 ...

  7. 深度学习中Batch、Iteration、Epoch的概念与区别

    在神经网络训练中,一般采用小批量梯度下降的方式. Batch Epoch Iteration 就是其中的重要的概念.我们要理解懂得它们都是什么以及它们之间的区别. 1.Batch 每次迭代时使用的一批 ...

  8. 深度学习中端到端(end-to-end)简要理解

    端到端(end-to-end)简要理解 端到端 好处 不同领域的端到端 目标检测 非end-to-end方法 end-to-end方法 CV计算机视觉 语音识别 非端到端 端到端 参考 端到端 端到端 ...

  9. 深度学习中 经常提到的 end to end 的理解

    本文转自https://www.cnblogs.com/zeze/p/7798080.html,感谢这位大神的讲解,为了防止以后找不到相关的知识,所以在此转载,复制到本文. End to end:指的 ...

最新文章

  1. 数据项目总结 -- 蛋壳公寓租金分析!
  2. AngularJs在IE10,11中的一个坑。
  3. ueditor php版使用,ueditor 1.2.6 使用方法说明
  4. GraphQL及元数据驱动架构在后端BFF中的实践
  5. 【Python】模糊匹配搜索
  6. C语言中错误c213是什么意思,DS1302的错误:error c213
  7. WPF MediaElement循环播放
  8. Hadoop四大组件介绍
  9. 微信小程序编辑与显示列表信息
  10. 如何给REED3阅读器都opml文件
  11. HDU 5144 NPY and shot(三分法)
  12. 基于OpenCv+Django的网络实时视频流传输(前后端分离)
  13. 爱普生发票打印机 每次连续打印发票,都跳页,中间一张空白
  14. hive计算几个月的最大最小时一定要把string类型转换成int类型
  15. 浅谈现在完成时被动语态
  16. 使用kubeadm工具箱创建kubernetes1.9集群
  17. python multiIndex 操作攻略
  18. Android——Handler、Loop、MessageQueue的工作原理
  19. ie 浏览器对象不支持“replaceAll”属性或方法
  20. Android开启usb音频输出,Android手机开发人员选项-选择USB配置-音频源,如何使用?...

热门文章

  1. 31道Android面试题,2021年你与字节跳动只差这份笔记,技术详细介绍
  2. 小程序日活500,收入多少,怎么赚钱把服务器费用赚回来啊~
  3. Java日志框架 -- SLF4J日志门面(入门案例、SLF4J优点、SLF4J日志绑定、SL4J桥接旧的日志框架)
  4. 算法排序基础(全版)
  5. C++不借助第三变量交换两个变量的值
  6. 华为机试---血型遗传检测
  7. mysqldump介绍,利用MySQL全备份(mysqldump),如何只恢复一个库或者一个表?
  8. 使用 mysqld_safe 启动 mysqld 服务
  9. (笔记)libc: Fatal signal 5 (SIGTRAP), code 1 (TRAP_BRKPT), fault addr 0x6f36dd63c0 in tid 29733 (examp
  10. AMap(创建基础地图)