main2.py 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import os
  2. from paddleocr import PaddleOCR
  3. from core.back import IdCardStraight
  4. from core.direction import *
  5. import json
  6. # 初始化ocr模型和后处理模型
  7. ocr = PaddleOCR(use_angle_cls=True, rec_model_dir="./idcard_rec_infer/",
  8. det_model_dir="./idcard_det_infer/", cls_model_dir="idcard_cls_infer",
  9. rec_algorithm='CRNN',
  10. ocr_version='PP-OCRv2',
  11. rec_char_dict_path="./ppocr_keys_v1.txt", lang="ch", use_gpu=False)
  12. # 定义文件路径
  13. img_path = "back.jpeg"
  14. image=cv2.imread(img_path)
  15. angle = detect_angle(image)
  16. print("------------------")
  17. print(angle)
  18. print("------------------")
  19. # 获取模型检测结果
  20. result = ocr.ocr(img_path, cls=True)
  21. scores = [line[1][1] for line in result]
  22. sc=[]
  23. for i in range(2,4):
  24. sc.append(scores[i])
  25. #scores = [line[1][1] for line in result]
  26. print("------------------")
  27. scores2=sum(scores)/len(scores)
  28. print(sc)
  29. print(scores2)
  30. print("------------------")
  31. # 将检测到的文字放到一个列表中
  32. txts = [line[1][0] for line in result]
  33. #print("......................................")
  34. #print(txts)
  35. #print("......................................")
  36. # 将结果送入到后处理模型中
  37. postprocessing = IdCardStraight(txts)
  38. id_result = postprocessing.run()
  39. result=id_result.encode('utf-8').decode('unicode_escape')
  40. result = json.loads(result)
  41. data={}
  42. data["confidence"]="null"
  43. data["orientation"]="null"
  44. data["expiry_data"]={"text":"null","confidence":"null"}
  45. data["isauthor"]={"text":"null","confidence":"null"}
  46. data["confidence"]=scores2
  47. data["orientation"]=angle
  48. data["expiry_data"]={"text":result["Data"]["FrontResult"]["data"],"confidence":sc[0]}
  49. data["isauthor"]={"text":result["Data"]["FrontResult"]["isauthor"],"confidence":sc[1]}
  50. print(data)