检测评价函数 intersection-over-union ( IOU )
Posted 武睿傲雪
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了检测评价函数 intersection-over-union ( IOU )相关的知识,希望对你有一定的参考价值。
1、概念
在目标检测的评价体系中,有一个参数叫做 IoU ,简单来讲就是模型产生的目标窗口和原来标记窗口的交叠率。具体我们可以简单的理解为: 即检测结果(DetectionResult)与 Ground Truth 的交集比上它们的并集,即为检测的准确率 IoU :
如下图所示:GT = GroundTruth; DR = DetectionResult;
黄色边框框起来的是:
GT⋂DR
绿色框框起来的是:
GT⋃DR
应该够详细了,上幅图直观些。当然最理想的情况就是 DR 与 GT 完全重合,即
IoU=1
下面附上图例说明,及 IOU 的python实现,已经测试无误,自行取用。
原图:
"""
Created on Sun Aug 07 14:26:51 2016
@author: Eddy_zheng
"""
def IOU(Reframe,GTframe):
"""
自定义函数,计算两矩形 IOU,传入为均为矩形对角线,(x,y) 坐标。·
"""
x1 = Reframe[0];
y1 = Reframe[1];
width1 = Reframe[2]-Reframe[0];
height1 = Reframe[3]-Reframe[1];
x2 = GTframe[0];
y2 = GTframe[1];
width2 = GTframe[2]-GTframe[0];
height2 = GTframe[3]-GTframe[1];
endx = max(x1+width1,x2+width2);
startx = min(x1,x2);
width = width1+width2-(endx-startx);
endy = max(y1+height1,y2+height2);
starty = min(y1,y2);
height = height1+height2-(endy-starty);
if width <=0 or height <= 0:
ratio = 0
else:
Area = width*height;
Area1 = width1*height1;
Area2 = width2*height2;
ratio = Area*1./(Area1+Area2-Area);
return ratio,Reframe,GTframe
以上是关于检测评价函数 intersection-over-union ( IOU )的主要内容,如果未能解决你的问题,请参考以下文章
YOLOv5小目标检测(方法与评价)
显著性检测(saliency detection)评价指标之KL散度距离Matlab代码实现
基于四分之一车体模型加速度的路面平整度检测及评价
目标检测评价指标总结
深度学习目标检测之评价指标
如何开发一个异常检测系统:如何评价一个异常检测算法