目录
一、概念
IoU是一种测量在特定数据集中检测相应物体准确度的一个标准。IoU是 一个简单的测量标准,只要是在输出中得出一个预测范围(bounding boxex)的 任务都可以用IoU来进行测量。为了可以使IoU用于测量任意大小形状的物体检 测,我们需要:
ground-truth bounding boxes(人为在训练集图像中标出要检测物体的大 概范围) 我们的算法得出的结果范围。 也就是说,这个标准用于测量真实和预测之间的相关度,相关度越高,该值 越高。如下图所示。绿色标线是人为标记的正确结果(ground-truth),红色 标线是算法预测的结果(predicted)。
二、IOU计算
IoU是两个区域重叠的部分除以两个区域的集合部分得出的结果,通过设定 的阈值,与这个IoU计算结果比较。
计算的公式为:
扫描二维码关注公众号,回复:
17491908 查看本文章

可以看到IOU是一个比值,即交并比。 在分子部分,值为预测框和实际框之间的重叠区域;
在分母部分,值为预测框和实际框所占有的总区域。
交区域和并区域的比值,就是IOU。
那么我们为什么要用IOU?
目标检测任务的结果是框的锁定,
因此当我们输入图片时,模型应该给出一个推测,也就是它认为在照片中 哪些地方有物体,以及物体的范围。由此,模型推测的结果和目标之间就会出 现一个误差,而评价这个误差程度的方法就是IoU。
Iou是一种评价指标,让我们能够比较不同的目标检测任务或者模型的优 劣。
三、代码实现:
# #实现IOU
#
# """
# 1.两个框iou计算
# 注意:边框以左上为原点
# 2,box:[x1,y1,x2,y2]依次为左上右下坐标
#
# """
"""
1. 导入相关的头文件
2. 设置两个框(bbox). 并两个框之间做乘法运算两个框之间做乘法运算
3. 求两个框的交集,
4, 计算出两个框的交并比
5, 自定义两个框的三维矩阵
6, 两个框做交并比运算得出结果
"""
import os
import numpy as np输出结果为:
第十章 , 单阶段目标检测--重要知识点之一
NMS
1,概念:
def iou(box1,box2):
#获取矩形框交集对应的左上角和右下角的坐标(intersection)---先求
高度,宽度
h = max(0,min(box1[2],box2[2]) - max(box1[0],box2[0]))
w = max(0,min(box1[3],box2[3]) - max(box1[1],box2[1]))
## 计算两个矩形框面积
area_box1 = ((box1[2]-box1[0]) *(box1[3]-box1[1])) #C的
面积 预测框
area_box2 = ((box2[2] - box2[0]) * (box2[3] - box2[1]))
#G的面积 真实框
inter = w * h #交集 area = w * h #C∩G的⾯积
union = area_box1 + area_box2 -inter #并集
iou = inter / union # 交集除以并集
return iou #返回iou
box1 = [100,100,200,200]
box2 = [120,120,200,200]
Iou = iou(box1,box2)
print(Iou)
输出结果为: