Пример #1
0
        # 前50, 100, 200 看一下是否搞错了
        if (step in [50, 500]) or (step > 0 and step % args.test_display == 0):

            test_predict = total_image_predict(
                ori_image_path=args.test_image_path,
                input_placeholder=image,
                logits_prob_node=logits_prob,
                is_training_placeholder=model._is_training,
                sess=sess,
                multi_scale=args.multi_scale)

            test_label = cv2.imread(args.test_label_path, cv2.IMREAD_GRAYSCALE)

            # 保存图片
            cv2.imwrite(filename='%spredict_color_%d.png' % (log_path, step),
                        img=color_predicts(img=test_predict))

            result = iou(y_pre=np.reshape(test_predict, -1),
                         y_true=np.reshape(test_label, -1))

            print("======================%d======================" % step)
            for key in result.keys():
                offset = 40 - key.__len__()
                print(key + ' ' * offset + '%.4f' % result[key])

            test_summary = tf.Summary(value=[
                tf.Summary.Value(tag=key, simple_value=result[key])
                for key in result.keys()
            ])

            # 记录summary
            sess=sess,
            multi=False,
            size=512)
        g_truth = cv2.resize(np.array(Image.open(line[2])), (512, 512))
        result = iou(y_pre=np.reshape(test_predict, -1),
                     y_true=np.reshape(g_truth, -1))
        label_valid = np.unique(g_truth)
        for key in sorted(result.keys()):
            if key in key_map and not key_map[key] in label_valid:
                continue
            if np.isnan(result[key]) or result[key] != result[key]:
                continue
            if not key in all_tests_result:
                all_tests_result[key] = [result[key]]
            else:
                all_tests_result[key].append(result[key])
        test_label = color_predicts(img=g_truth)
        test_predict = color_predicts(img=test_predict)
        full_image = np.concatenate((img_rgb, test_label, test_predict),
                                    axis=1)
        out_name = line[0].split('/')[-1].split('.')[0] + '_predict.jpg'
        out_path = result_dir + '/' + out_name
        cv2.imwrite(out_path, full_image)
        print('Saved ' + out_path)
avg_tests_result = {}
for key in sorted(all_tests_result.keys()):
    avg_tests_result[key] = sum(all_tests_result[key]) / len(
        all_tests_result[key])
    offset = 40 - key.__len__()
    print(key + ' ' * offset + '%.4f' % avg_tests_result[key])