zoukankan      html  css  js  c++  java
  • python实现IoU

    IoU公式

    重合程度通过检测评价函数IoU(Intersection over Union)来判断,IoU计算公式如下:
    IoU计算公式
    参数说明:
    IoU公式中参数说明

    python实现IoU源码:

    import numpy as np
    
    # get IoU overlap ratio
    def iou(a, b):
    	# get area of a
        area_a = (a[2] - a[0]) * (a[3] - a[1])
    	# get area of b
        area_b = (b[2] - b[0]) * (b[3] - b[1])
    
    	# get left top x of IoU
        iou_x1 = np.maximum(a[0], b[0])
    	# get left top y of IoU
        iou_y1 = np.maximum(a[1], b[1])
    	# get right bottom of IoU
        iou_x2 = np.minimum(a[2], b[2])
    	# get right bottom of IoU
        iou_y2 = np.minimum(a[3], b[3])
    
    	# get width of IoU
        iou_w = iou_x2 - iou_x1
    	# get height of IoU
        iou_h = iou_y2 - iou_y1
    
    	# get area of IoU
        area_iou = iou_w * iou_h
    	# get overlap ratio between IoU and all area
        iou = area_iou / (area_a + area_b - area_iou)
    
        return iou
    
    # [x1, y1, x2, y2]
    a = np.array((50, 50, 150, 150), dtype=np.float32)
    
    b = np.array((60, 60, 170, 160), dtype=np.float32)
    
    print(iou(a, b))
    
  • 相关阅读:
    flask 第三方组件
    Flask基础与进阶
    odoo10 视图
    odoo10 ORM操作
    odoo10基础
    字典的setdefault方法
    redis常用操作
    git常用命令与操作
    vue_axios
    odoo 权限设置
  • 原文地址:https://www.cnblogs.com/wojianxin/p/12581056.html
Copyright © 2011-2022 走看看