def IOU(A, B):
    """
    计算两个boxes的IOU值
    Args:
        矩形A = [xmin, ymin, xmax, ymax]
        矩形B = [xmin, ymin, xmax, ymax]
    Returns:
        矩形A和矩形B的IOU值
    """
    W = min(A[3], B[3]) - max(A[1], B[1])
    H = min(A[2], B[2]) - max(A[0], B[0])
    if W <= 0 or H <= 0: #不存在交集
        return 0
    A_area = (A[3] - A[1]) * (A[2] - A[0])  #矩形A的面积
    B_area = (B[3] - B[1]) * (B[2] - B[0])  #矩形B的面积
    cross_area = W * H  #交集的面积
    return cross_area / (A_area + B_area - cross_area)