Ваша задача выглядит как проблема двоичной сегментации. Вы можете использовать такие метрики, как точность (процент правильно классифицированных пикселей), MCR, т. Е. Коэффициент ошибочной классификации, который по существу равен 1 точности, или средний IOU, о котором вы можете прочитать здесь .
Кроме того, что я хотел бы предложить, если вы хотите рассчитать точность, вы используете cv2.bitwise_xor
для этой задачи.
EDIT
def cal_miou(pred_mask, sample_mask):
tp = np.sum(cv2.bitwise_and(pred_mask, sample_mask))
fp = np.sum(cv2.bitwise_and(pred_mask, cv2.bitwise_not(sample_mask)))
fn = np.sum(cv2.bitwise_and(cv2.bitwise_not(pred_mask), sample_mask))
return tp/(tp+fp+fn)
Эта функция может использоваться для вычисления MIOU, где pred_mask и sample_mask - это 2d массивы.