def er_overall_framewise(O, T):
    if len(O.shape) == 3:
        O, T = utils.reshape_3Dto2D(O), utils.reshape_3Dto2D(T)
    TP = ((2 * T - O) == 1).sum()
    Nref, Nsys = T.sum(), O.sum()
    ER = (max(Nref, Nsys) - TP) / (Nref + 0.0)
    return ER
Пример #2
0
def f1_overall_framewise(O, T):
    if len(O.shape) == 3:
        O, T = utils.reshape_3Dto2D(O), utils.reshape_3Dto2D(T)
    TP = ((2 * T - O) == 1).sum()
    Nref, Nsys = T.sum(), O.sum()

    prec = float(TP) / float(Nsys + utils.eps)
    recall = float(TP) / float(Nref + utils.eps)
    f1_score = 2 * prec * recall / (prec + recall + utils.eps)
    return f1_score
Пример #3
0
def er_overall_1sec(O, T, block_size):
    if len(O.shape) == 3:
        O, T = utils.reshape_3Dto2D(O), utils.reshape_3Dto2D(T)
    new_size = int(O.shape[0] / block_size)
    O_block = np.zeros((new_size, O.shape[1]))
    T_block = np.zeros((new_size, O.shape[1]))
    for i in range(0, new_size):
        O_block[i, :] = np.max(O[int(i * block_size):int(i * block_size + block_size - 1), ], axis=0)
        T_block[i, :] = np.max(T[int(i * block_size):int(i * block_size + block_size - 1), ], axis=0)
    return er_overall_framewise(O_block, T_block)
Пример #4
0
def er_overall_framewise(O, T):
    if len(O.shape) == 3:
        O, T = utils.reshape_3Dto2D(O), utils.reshape_3Dto2D(T)
    FP = np.logical_and(T == 0, O == 1).sum(1)
    FN = np.logical_and(T == 1, O == 0).sum(1)

    S = np.minimum(FP, FN).sum()
    D = np.maximum(0, FN - FP).sum()
    I = np.maximum(0, FP - FN).sum()

    Nref = T.sum()
    ER = (S + D + I) / (Nref + 0.0)
    return ER
Пример #5
0
def f1_overall_1sec(O, T, block_size):
    if len(O.shape) == 3:
        O, T = utils.reshape_3Dto2D(O), utils.reshape_3Dto2D(
            T)  # si riuniscono i T in un unico time slot
    new_size = int(
        np.ceil(O.shape[0] / block_size)
    )  #block size è fram in 1 sec,new size è cmapionato ogni 43 frames o ogni secondo
    O_block = np.zeros((new_size, O.shape[1]))
    T_block = np.zeros((new_size, O.shape[1]))
    for i in range(0, new_size):
        O_block[i, :] = np.max(O[int(i * block_size):int(i * block_size +
                                                         block_size - 1), ],
                               axis=0)
        T_block[i, :] = np.max(T[int(i * block_size):int(i * block_size +
                                                         block_size - 1), ],
                               axis=0)
    return f1_overall_framewise(O_block,
                                T_block)  #chiama un'altra cazzo di funzione