You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

e2e.py 2.1 kB

4 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #coding=utf-8
  2. from keras import backend as K
  3. from keras.models import load_model
  4. from keras.layers import *
  5. import numpy as np
  6. import random
  7. import string
  8. import cv2
  9. from . import e2emodel as model
  10. chars = ["京", "沪", "津", "渝", "冀", "晋", "蒙", "辽", "吉", "黑", "苏", "浙", "皖", "闽", "赣", "鲁", "豫", "鄂", "湘", "粤", "桂",
  11. "琼", "川", "贵", "云", "藏", "陕", "甘", "青", "宁", "新", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A",
  12. "B", "C", "D", "E", "F", "G", "H", "J", "K", "L", "M", "N", "P", "Q", "R", "S", "T", "U", "V", "W", "X",
  13. "Y", "Z","港","学","使","警","澳","挂","军","北","南","广","沈","兰","成","济","海","民","航","空"
  14. ];
  15. pred_model = model.construct_model("./model/ocr_plate_all_w_rnn_2.h5")
  16. import time
  17. def fastdecode(y_pred):
  18. results = ""
  19. confidence = 0.0
  20. table_pred = y_pred.reshape(-1, len(chars)+1)
  21. res = table_pred.argmax(axis=1)
  22. for i,one in enumerate(res):
  23. if one<len(chars) and (i==0 or (one!=res[i-1])):
  24. results+= chars[one]
  25. confidence+=table_pred[i][one]
  26. confidence/= len(results)
  27. return results,confidence
  28. def recognizeOne(src):
  29. # x_tempx= cv2.imread(src)
  30. x_tempx = src
  31. # x_tempx = cv2.bitwise_not(x_tempx)
  32. x_temp = cv2.resize(x_tempx,( 160,40))
  33. x_temp = x_temp.transpose(1, 0, 2)
  34. t0 = time.time()
  35. y_pred = pred_model.predict(np.array([x_temp]))
  36. y_pred = y_pred[:,2:,:]
  37. # plt.imshow(y_pred.reshape(16,66))
  38. # plt.show()
  39. #
  40. # cv2.imshow("x_temp",x_tempx)
  41. # cv2.waitKey(0)
  42. return fastdecode(y_pred)
  43. #
  44. #
  45. # import os
  46. #
  47. # path = "/Users/yujinke/PycharmProjects/HyperLPR_Python_web/cache/finemapping"
  48. # for filename in os.listdir(path):
  49. # if filename.endswith(".png") or filename.endswith(".jpg") or filename.endswith(".bmp"):
  50. # x = os.path.join(path,filename)
  51. # recognizeOne(x)
  52. # # print time.time() - t0
  53. #
  54. # # cv2.imshow("x",x)
  55. # # cv2.waitKey()