交并比原理
# -*- coding:utf-8 -*-
'''
@Author: knocky
@Blog: https://blog.csdn.net/zzx188891020
@E-mail: 188891020@qq.com
@File: kalman.py
@CreateTime: 2020/5/5 10:50
'''
from numba import jit
# 计算IOU的方法
@jit # 使用numba加速
def iou(bb_test, bb_gt):
# 左上角坐标的最大值
xx1 =np.maximum(bb_test[0],bb_gt[0])
yy1 =np.maximum(bb_test[1],bb_gt[1])
# 右下角坐标
xx2= np.minimum(bb_test[2], bb_gt[2])
yy2 = np.minimum(bb_test[3], bb_gt[3])
# 交的宽高
w = np.maximum(0,xx2-xx1)
h = np.maximum(0,yy2-yy1)
# 交的面积
wh = w*h
# 并的面积
s = (bb_test[2]-bb_test[0])*(bb_test[3]-bb_test[1])+(bb_gt[2]-bb_gt[0])*(bb_gt[3]-bb_gt[1])-wh
return wh/s
if __name__ == '__main__':
a = [0,0,2,2]
b = [1,1,3,3]
c = iou(a,b)
print(c)