接口 update
Showing
2 changed files
with
160 additions
and
8 deletions
| ... | @@ -179,11 +179,18 @@ class PosHandler: | ... | @@ -179,11 +179,18 @@ class PosHandler: |
| 179 | 179 | ||
| 180 | @staticmethod | 180 | @staticmethod |
| 181 | def de_mortgage_ocr_process(img_base64): | 181 | def de_mortgage_ocr_process(img_base64): |
| 182 | result_obj = {} | 182 | result_obj = { |
| 183 | 'customerName': '', | ||
| 184 | 'application': '', | ||
| 185 | 'deMortgageDate': '' | ||
| 186 | } | ||
| 183 | url = 'http://file-classification.situdata.com/bs/all' | 187 | url = 'http://file-classification.situdata.com/bs/all' |
| 184 | json_data = {"file": img_base64, "classify": consts.MVC_CLASSIFY} | 188 | json_data = {"file": img_base64, "classify": consts.MVC_CLASSIFY, "version": "green"} |
| 185 | try: | 189 | try: |
| 186 | response = requests.post(url, json=json_data) | 190 | response = requests.post(url, json=json_data) |
| 191 | if response.status_code != 200: | ||
| 192 | return result_obj | ||
| 193 | response.encoding = 'unicode_escape' | ||
| 187 | ocr_res = response.json() | 194 | ocr_res = response.json() |
| 188 | results = ocr_res.get('results') | 195 | results = ocr_res.get('results') |
| 189 | if ocr_res.get('page', '') == 'VehicleRegArea': | 196 | if ocr_res.get('page', '') == 'VehicleRegArea': |
| ... | @@ -199,10 +206,41 @@ class PosHandler: | ... | @@ -199,10 +206,41 @@ class PosHandler: |
| 199 | info = results.get('1.机动车所有人/身份证名称/号码', {}) | 206 | info = results.get('1.机动车所有人/身份证名称/号码', {}) |
| 200 | result_obj['customerName'] = info.get('words', '').split('/')[0] | 207 | result_obj['customerName'] = info.get('words', '').split('/')[0] |
| 201 | except Exception as e: | 208 | except Exception as e: |
| 202 | LoggerMixin.running_log.error('[PosHandler de_mortgage_ocr_process] [error={0}]'.format(e.format_exc())) | 209 | LoggerMixin.running_log.error("[PosHandler de_mortgage_ocr_process] error", exc_info=1) |
| 203 | result_obj = { | ||
| 204 | 'customerName': '', | ||
| 205 | 'application': '', | ||
| 206 | 'deMortgageDate': '' | ||
| 207 | } | ||
| 208 | return result_obj | 210 | return result_obj |
| 211 | |||
| 212 | @staticmethod | ||
| 213 | def de_mortgage_ocr_process1(img_base64): | ||
| 214 | result_obj = { | ||
| 215 | 'customerName': '', | ||
| 216 | 'application': '', | ||
| 217 | 'deMortgageDate': '' | ||
| 218 | } | ||
| 219 | url = 'http://file-classification.situdata.com/bs/all' | ||
| 220 | json_data = {"file": img_base64, "classify": consts.MVC_CLASSIFY, "version": "green"} | ||
| 221 | try: | ||
| 222 | response = requests.post(url, json=json_data) | ||
| 223 | if response.status_code != 200: | ||
| 224 | return result_obj | ||
| 225 | # unicode转中文 | ||
| 226 | response.encoding = 'unicode_escape' | ||
| 227 | ocr_res = response.json() | ||
| 228 | if ocr_res.get('page', '') == 'page_34': | ||
| 229 | words_result = ocr_res.get('words_result', []) | ||
| 230 | registration_bar = words_result.get('registration_bar', []) | ||
| 231 | for registration in registration_bar: | ||
| 232 | if registration.get('register_type', '') == '抵押登记': | ||
| 233 | register_info = registration.get('register_info', {}) | ||
| 234 | result_obj['application'] = register_info.get('抵押权人姓名/名称', '') | ||
| 235 | elif registration.get('register_type', '') == '解除抵押': | ||
| 236 | register_info = registration.get('register_info', {}) | ||
| 237 | result_obj['deMortgageDate'] = register_info.get('解除抵押日期', '') | ||
| 238 | elif ocr_res.get('page', '') == 'page_12': | ||
| 239 | words_result = ocr_res.get('words_result', []) | ||
| 240 | for _, word_result in words_result.items(): | ||
| 241 | if word_result.get('chinese_key', '') == '1.机动车所有人/身份证名称/号码': | ||
| 242 | result_obj['customerName'] = word_result.get('words', '').split('/')[0] | ||
| 243 | except Exception as e: | ||
| 244 | LoggerMixin.running_log.error("[PosHandler de_mortgage_ocr_process] error", exc_info=1) | ||
| 245 | return result_obj | ||
| 246 | ... | ... |
src/pos/test.py
0 → 100644
| 1 | import json | ||
| 2 | |||
| 3 | import requests | ||
| 4 | import logging | ||
| 5 | import base64 | ||
| 6 | |||
| 7 | logger = logging.getLogger() | ||
| 8 | |||
| 9 | |||
| 10 | def de_mortgage_ocr_process(img_base64): | ||
| 11 | result_obj = { | ||
| 12 | 'customerName': '', | ||
| 13 | 'application': '', | ||
| 14 | 'deMortgageDate': '' | ||
| 15 | } | ||
| 16 | url = 'http://file-classification.situdata.com/bs/all' | ||
| 17 | json_data = {"file": img_base64, "classify": 28, "version": "green"} | ||
| 18 | try: | ||
| 19 | response = requests.post(url, json=json_data) | ||
| 20 | response.encoding = 'unicode_escape' | ||
| 21 | ocr_res = response.json() | ||
| 22 | print(ocr_res) | ||
| 23 | # ocr_res = ocr_res.decode('unicode_escape') | ||
| 24 | data = ocr_res.get('data', []) | ||
| 25 | for classify_data in data: | ||
| 26 | result_data = classify_data.get('data', {}) | ||
| 27 | results = result_data.get('results') | ||
| 28 | if result_data.get('page', '') == 'VehicleRegArea': | ||
| 29 | if results.get('register_type', -1) == 1: | ||
| 30 | info = results.get('解除抵押日期', {}) | ||
| 31 | result_obj['deMortgageDate'] = info.get('words', '') | ||
| 32 | elif results.get('register_type', -1) == 0: | ||
| 33 | info = results.get('抵押权人姓名/名称', {}) | ||
| 34 | result_obj['application'] = info.get('words', '') | ||
| 35 | |||
| 36 | elif result_data.get('page', '') == 'VehicleRCI': | ||
| 37 | print('----------------------') | ||
| 38 | info = results.get('1.机动车所有人/身份证名称/号码', {}) | ||
| 39 | result_obj['customerName'] = info.get('words', '').split('/')[0] | ||
| 40 | |||
| 41 | except Exception as e: | ||
| 42 | logger.error(e) | ||
| 43 | # LoggerMixin.running_log.error('[PosHandler de_mortgage_ocr_process] [error={0}]'.format(e.format_exc())) | ||
| 44 | result_obj = { | ||
| 45 | 'customerName': '', | ||
| 46 | 'application': '', | ||
| 47 | 'deMortgageDate': '' | ||
| 48 | } | ||
| 49 | return result_obj | ||
| 50 | |||
| 51 | |||
| 52 | de_mortgage_comments = { | ||
| 53 | 'customerName': ('机动车所有人识别不一致', ), | ||
| 54 | 'application': ('抵押权人姓名/名称识别不一致', ), | ||
| 55 | 'deMortgageDate': ('解除抵押日期不一致', ) | ||
| 56 | } | ||
| 57 | |||
| 58 | |||
| 59 | def view(args): | ||
| 60 | img_files = args.get('file_base64', []) | ||
| 61 | customer_name = args.get('customerName', '') | ||
| 62 | application = args.get('application', '') | ||
| 63 | de_mortgage_date = args.get('deMortgageDate') | ||
| 64 | |||
| 65 | fields_input = { | ||
| 66 | 'customerName': customer_name, | ||
| 67 | 'application': application, | ||
| 68 | 'deMortgageDate': de_mortgage_date | ||
| 69 | } | ||
| 70 | de_mortgage_info = {} | ||
| 71 | # 绿本必须分开ocr | ||
| 72 | for img_file in img_files: | ||
| 73 | info = de_mortgage_ocr_process(img_file) | ||
| 74 | de_mortgage_info.update(info) | ||
| 75 | |||
| 76 | request_pass = True | ||
| 77 | fields_result = [] | ||
| 78 | for field_name, input_val in fields_input.items(): | ||
| 79 | field_result = { | ||
| 80 | "name": field_name, | ||
| 81 | "input": input_val, | ||
| 82 | "ocr": de_mortgage_info.get(field_name, ''), | ||
| 83 | "field_is_pass": False, | ||
| 84 | "comments": '' | ||
| 85 | } | ||
| 86 | # result, _ = cp.common_compare(field_result['input'], field_result['ocr']) | ||
| 87 | # if result == cp.RESULT_Y: | ||
| 88 | # fields_result['field_is_pass'] = result | ||
| 89 | # else: | ||
| 90 | # request_pass = False | ||
| 91 | # fields_result['comments'] = de_mortgage_comments.get(field_name, '') | ||
| 92 | |||
| 93 | fields_result.append(field_result) | ||
| 94 | |||
| 95 | result = { | ||
| 96 | "is_pass": request_pass, | ||
| 97 | "fields": fields_result | ||
| 98 | } | ||
| 99 | print(result) | ||
| 100 | |||
| 101 | |||
| 102 | if __name__ == '__main__': | ||
| 103 | # print(u'编号'.encode('ascii')) | ||
| 104 | # print(b"\u7f16\u53f7".decode('unicode_escape')) | ||
| 105 | img_base64 = r'C:\Users\EDY\Desktop\1280X1280 (1).PNG' | ||
| 106 | # img_base64 = r'C:\Users\EDY\Desktop\1280X1280.PNG' | ||
| 107 | with open(img_base64, 'rb') as f: | ||
| 108 | content = f.read() | ||
| 109 | args = { | ||
| 110 | 'file_base64': [str(base64.b64encode(content), 'utf-8')] | ||
| 111 | } | ||
| 112 | view(args) | ||
| 113 | |||
| 114 |
-
Please register or sign in to post a comment