参数统一为一维np数组,先预测标签,后label
# HTER
def get_hter(pre, label, lamda=1e-10):
import numpy as np
pre, label = pre.astype(np.int32), label.astype(np.int32)
tp_list = list(pre & label)
fp_list = list(pre & ~label)
tp = tp_list.count(1) # 统计TP的个数
fp = fp_list.count(1) # 统计FP的个数
part = pre ^ label # 对结果进行分类,亦或使得判断正确的为0,判断错误的为1
pcount = np.bincount(part)
tn = pcount[0] - tp # 统计TN的个数
fn = 0
if len(pcount) == 2:
fn = pcount[1] - fp
frr = float(fn) / (fn + tp + lamda)
far = float(fp) / (fp + tn + lamda)
hter = (frr + far) / 2.
return hter
# file_list = glob.glob(path_source + "**/*.jpg", recursive=True)