inference_equation_denoise.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import os
  2. import re
  3. import sys
  4. from glob import glob
  5. import cv2
  6. import numpy as np
  7. import tensorflow as tf
  8. sys.path.append(os.path.dirname(os.path.abspath(__file__)) + "/../")
  9. from model import u_net_denoise
  10. from utils import pil_resize
  11. package_dir = os.path.abspath(os.path.dirname(__file__))
  12. image_shape = (32, 192, 1)
  13. model_path = package_dir + "/models/denoise_loss_53.97.h5"
  14. def denoise(image_np, model=None, sess=None):
  15. if sess is None:
  16. sess = tf.compat.v1.Session(graph=tf.Graph())
  17. if model is None:
  18. with sess.as_default():
  19. with sess.graph.as_default():
  20. model = u_net_denoise(input_shape=image_shape, class_num=image_shape[2])
  21. model.load_weights(model_path)
  22. X = []
  23. img = pil_resize(image_np, image_shape[0], image_shape[1])
  24. img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
  25. img = np.expand_dims(img, axis=-1)
  26. img = img / 255.
  27. X.append(img)
  28. X = np.array(X)
  29. with sess.as_default():
  30. with sess.graph.as_default():
  31. pred = model.predict(X)
  32. pred = np.uint8(pred[0]*255.)
  33. # cv2.imshow("origin", image_np)
  34. # cv2.imshow("pred", pred)
  35. # cv2.waitKey(0)
  36. return pred
  37. if __name__ == "__main__":
  38. # _path = "../data/test/char_9.jpg"
  39. _paths = glob(r"D:\Project\captcha\data\equation\*")
  40. # _paths = glob("../data/test/FileInfo1021/*")
  41. for _path in _paths:
  42. denoise(cv2.imread(_path))