有关mean iou 言简意赅的介绍 及python 代码实现

IOU全名为(Intersection over Union),又称为交并比,通常被应用在目前目标检测算法的评价中,IOU值越高,说明算法对目标的预测精度越高,下面本文将以图的方式来解释IOU的定义。
假设A是真实框(人为标记的框),C为预测框(目标检测算法预测的框),B为真实框A和预测框C的交集。
IOU的计算公式为:
在这里插入图片描述
有关mean iou 言简意赅的介绍 及python 代码实现_第1张图片
IOU的值越大,代表预测框和真实框的重叠面积越大,说明预测框预测的越为精准,此预测框的参数可以更好的代表该目标物在图像中的位置。
有关mean iou 言简意赅的介绍 及python 代码实现_第2张图片

上图中黑框1代表的是人工标记真实框,红框2和黄框3分别是不同目标检测算法确定的预测框,其中预测框3和真实框1的IOU值大于预测框2和真实框1的IOU值,说明预测框3的目标检测算法比预测框2的目标检测算法精度高。

源码实现:

def iou_np(y_true, y_pred, **kwargs):
    """
    compute iou for binary segmentation map via numpy
    y_true 真实值
    y_pred 预测值
    """
    axes = (0, 1) 
    intersection = np.sum(np.abs(y_pred * y_true), axis=axes) 
    mask_sum = np.sum(np.abs(y_true), axis=axes) + np.sum(np.abs(y_pred), axis=axes)
    union = mask_sum  - intersection # 减去重合的部分
    
    smooth = .001
    iou = (intersection + smooth) / (union + smooth)
    return iou

你可能感兴趣的:(科研日常,笔记,学习生活,python,目标检测,深度学习)