gt_save_map = np.argmax(gt_save_mask,axis=-1)
	save = True
	if save:
		pred_dir = os.path.join(model_folder, 'pred_{}'.format(subset))
		generate_folder(pred_dir)
		for pi, fn in enumerate(test_ids):
			imsave(pred_dir+'/{}'.format(fn), pr_save_map[pi,:,:])
		io.imsave(model_folder+'/pr_{}.png'.format(fn.split('.')[0]), pr_save_map[pi,:,:])
	
	y_true=gt_save_map.flatten(); y_pred = pr_save_map.flatten()
	cf_mat = confusion_matrix(y_true, y_pred)
	prec_scores = []; recall_scores = []; f1_scores = []; iou_scores=[]
	for i in range(cf_mat.shape[0]):
		prec_scores.append(precision(i,cf_mat))
		recall_scores.append(recall(i,cf_mat))
		f1_scores.append(f1_score(i,cf_mat))
	print('Precision:{:.4f},{:,.4f},{:.4f}'.format(prec_scores[0], prec_scores[1], prec_scores[2]))
	print('mean precision: {:.4f}\n'.format(np.mean(prec_scores)))
	print('Recall:{:.4f},{:,.4f},{:.4f}'.format(recall_scores[0], recall_scores[1], recall_scores[2]))
	print('mean recall:{:.4f}\n'.format(np.mean(recall_scores)))
	# f1 score
	print('f1-score (pixel):{:.4f},{:,.4f},{:.4f}'.format(f1_scores[0],f1_scores[1],f1_scores[2]))
	print('mean f1-score (pixel):{:.4f}\n'.format(np.mean(f1_scores)))

	with open(result_dir+'/{}_summary_{}.txt'.format(subset, epoch), 'w+') as f:
		# save iou and dice
		f.write('iou_classes: {:.4f},{:.4f},{:.4f}; mIoU: {:.4f}'.format(iou_classes[0],iou_classes[1],iou_classes[2], mIoU))
		f.write('dice_classes: {:.4f},{:.4f},{:.4f}; mDice: {:.4f}'.format(dice_classes[0],dice_classes[1],dice_classes[2], mDice))
		# save confusion matrix
		f.write('confusion matrix:\n')
		np.savetxt(f, cf_mat, fmt='%-7d')
Esempio n. 2
0
	gt_maps=gt_maps[:,offset1:offset2,offset1:offset2]
	pr_maps=pr_maps[:,offset1:offset2,offset1:offset2]
	print('PSP output: {}'.format(pr_maps.shape))

y_true=gt_maps.flatten(); y_pred = pr_maps.flatten()
cf_mat = confusion_matrix(y_true, y_pred)
cf_mat_reord = np.zeros(cf_mat.shape)
cf_mat_reord[1:,1:]=cf_mat[:3,:3];cf_mat_reord[0,1:]=cf_mat[3,0:3]; cf_mat_reord[1:,0]=cf_mat[0:3,3]
cf_mat_reord[0,0] = cf_mat[3,3]
print('Confusion matrix:')
print(cf_mat_reord)
prec_scores = []; recall_scores = []; f1_scores = []; iou_scores=[]
for i in range(cf_mat.shape[0]):
    prec_scores.append(precision(i,cf_mat_reord))
    recall_scores.append(recall(i,cf_mat_reord))
    f1_scores.append(f1_score(i,cf_mat_reord))
print('Precision:{:.4f},{:,.4f},{:.4f},{:.4f}'.format(prec_scores[0], prec_scores[1], prec_scores[2], prec_scores[3]))
print('Recall:{:.4f},{:,.4f},{:.4f},{:.4f}'.format(recall_scores[0], recall_scores[1], recall_scores[2], recall_scores[3]))
# f1 score
print('f1-score (pixel):{:.4f},{:,.4f},{:.4f},{:.4f}'.format(f1_scores[0],f1_scores[1],f1_scores[2],f1_scores[3]))
print('mean f1-score (pixel):{:.4f}'.format(np.mean(f1_scores)))

with open(model_folder+'/metric_summary.txt','w+') as f:
	# save iou and dice
	for metric, value in zip(metrics, scores[1:]):
		f.write("mean {}: {:.5}\n".format(metric.__name__, value))
	# save confusion matrix
	f.write('confusion matrix:\n')
	np.savetxt(f, cf_mat_reord, fmt='%-7d')
	# save precision
	f.write('precision:{:.4f},{:,.4f},{:.4f},{:.4f}\n'.format(prec_scores[0], prec_scores[1], prec_scores[2], prec_scores[3]))
Esempio n. 3
0
 cf_mat = confusion_matrix(y_true, y_pred)
 cf_mat_reord = np.zeros(cf_mat.shape)
 cf_mat_reord[1:, 1:] = cf_mat[:3, :3]
 cf_mat_reord[0, 1:] = cf_mat[3, 0:3]
 cf_mat_reord[1:, 0] = cf_mat[0:3, 3]
 cf_mat_reord[0, 0] = cf_mat[3, 3]
 print('Confusion matrix:')
 print(cf_mat_reord)
 prec_scores = []
 recall_scores = []
 f1_scores = []
 iou_scores = []
 for i in range(cf_mat.shape[0]):
     prec_scores.append(precision(i, cf_mat_reord))
     recall_scores.append(recall(i, cf_mat_reord))
     f1_scores.append(f1_score(i, cf_mat_reord))
 print('Precision:{:.4f},{:,.4f},{:.4f},{:.4f}'.format(
     prec_scores[0], prec_scores[1], prec_scores[2], prec_scores[3]))
 print('Recall:{:.4f},{:,.4f},{:.4f},{:.4f}'.format(recall_scores[0],
                                                    recall_scores[1],
                                                    recall_scores[2],
                                                    recall_scores[3]))
 # f1 score
 print('f1-score (pixel):{:.4f},{:,.4f},{:.4f},{:.4f}'.format(
     f1_scores[0], f1_scores[1], f1_scores[2], f1_scores[3]))
 print('mean f1-score (pixel):{:.4f}'.format(np.mean(f1_scores)))
 with open(result_dir + '/{}_summary_{}.txt'.format(subset, epoch),
           'w+') as f:
     # save iou and dice
     f.write(
         'iou_classes: {:.4f},{:.4f},{:.4f},{:.4f}; mIoU: {:.4f}\n'.format(