test.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import os
  2. import cv2
  3. import numpy as np
  4. from PIL import Image
  5. import paddlex as pdx
  6. model_dir = "output/unet_1/best_model/"
  7. save_dir = 'output/gt_pred'
  8. if not os.path.exists(save_dir):
  9. os.makedirs(save_dir)
  10. color = [0, 0, 0, 255, 255, 255]
  11. model = pdx.load_model(model_dir)
  12. with open('tiled_dataset/val_list.txt', 'r') as f:
  13. for line in f:
  14. items = line.strip().split()
  15. img_file_1 = os.path.join('tiled_dataset', items[0])
  16. img_file_2 = os.path.join('tiled_dataset', items[1])
  17. label_file = os.path.join('tiled_dataset', items[2])
  18. # 预测并可视化预测结果
  19. im1 = cv2.imread(img_file_1)
  20. im2 = cv2.imread(img_file_2)
  21. image = np.concatenate((im1, im2), axis=-1)
  22. pred = model.predict(image)
  23. vis_pred = pdx.seg.visualize(
  24. img_file_1, pred, weight=0., save_dir=None, color=color)
  25. # 可视化标注文件
  26. label = np.asarray(Image.open(label_file))
  27. pred = {'label_map': label}
  28. vis_gt = pdx.seg.visualize(
  29. img_file_1, pred, weight=0., save_dir=None, color=color)
  30. ims = cv2.hconcat([im1, im2])
  31. labels = cv2.hconcat([vis_gt, vis_pred])
  32. data = cv2.vconcat([ims, labels])
  33. cv2.imwrite("{}/{}".format(save_dir, items[0].split('/')[-1]), data)