CXX目标识别学习一 ---- IOU
一、什么是IOU
IOU 的全称为交并比(Intersection over Union),通过这个名称我们大概可以猜到 IOU 的计算方法。IOU 计算的是 “预测的边框” 和 “真实的边框” 的交集和并集的比值。
二、IOU的作用
IOU究竟做什么的呢?
IOU 是目标检测算法性能 MAP 计算的一个非常重要的函数,是一种测量在特定数据集中检测相应物体准确度的一个标准。换句话来说IOU是一个简单的测量标准,只要是在输出中得出一个预测范围(bounding boxex)的任务都可以用IOU来进行测量。
为了可以使IOU用于测量任意大小形状的物体检测,我们需要人为在训练集图像中标出要检测物体的大概范围,也就是说这个标准用于测量真实和预测之间的相关度,相关度越高,该值越高。
三、IOU怎么进行计算
由上图可以看出,实现IOU主要是要计算出输入数据的交集和并集。
例如:计算一个一维的交集和并集,假设A合集为【x1,x2】,B合集为【y1,y2】
那么
交集为 :max(x1,y1) min(x2,y2)
并集为 :min(x1,y1) max(x2,y2)
例如:计算一个二维的交集和并集,就是计算两个维度的交集和并集,计算四个边缘。
四、代码实现
实现一:一维
#--------------#
#函数名称:iou
#函数功能:一维 iou 的计算
#函数输入:set_a (left, right)
# set_b
#函数返回:iou
#--------------#
def iou(set_a, set_b