火车票身份证一致性验证
引导式阅读
Python
火车票身份证一致性验证
作者
C***
上架时间
2020-12-22 09:28:10

功能介绍

使用华为云文字识别OCR服务SDK,智能识别身份证和火车票图片信息,用户通过实时访问和调用OCR服务身份证识别接口、OCR服务火车票识别接口输出身份证、火车票文字信息,帮助用户自动进行对比火车票中乘车人姓名和身份证号是否与身份证图片中姓名和身份证号匹配(对比票证是否一致),打造智能化业务系统,提升业务效率。

前提条件

1、申请服务:用户在OCR管理控制台页面“服务管理”栏选择人脸检测服务申请开通。具体操作请参见申请服务章节。
2、配置环境:获取SDK和样例工程,导入到开发Python环境中。搭建好开发环境。
3、在使用火车票识别之前,需要您完成服务申请和认证鉴权,具体操作流程请参见申请服务认证鉴权章节
4、使用SDK(Python)请参见链接
5、地区和终端节点 请参见链接
6、华为云开发工具包(SDK)下载文字识别PythonJAVA版SDK 请参见链接
7、接口与API对应关系 请参见链接

  • 1)、身份证识别API 请参见链接
  • 2)、火车票识别API 请参见链接

8、OCR API使用资源时的地区和终端节点(识别服务的Endpoint),请参见地区和终端节点

示例代码

from HWOcrClientAKSK import HWOcrClientAKSK from HWOcrClientToken import HWOcrClientToken import json AK = "{your ak string}" # AK from authentication. SK = "{your sk string}" # SK from authentication. region = "cn-north-4" # http region information. def aksk_request(req_uri,img_path): ##AK/SK认证方式 option = {} # option["side"]="front" try: ocr_client = HWOcrClientAKSK(AK, SK, region) # Initialize the ocr_client. response = ocr_client.request_ocr_service_base64(req_uri, img_path, option) # Call the OCR API to recognize image. print("Status code:" + str(response.status_code) + "\ncontent:" + response.text) except ValueError as e: print(e) if response.status_code==200: return json.loads(response.text) else: return None def get_info(trainImg,cardImg): req_uri = "/v1.0/ocr/train-ticket" train_data=aksk_request(req_uri,trainImg) if train_data==None: print('获取车票信息失败!请重新验证。') return False req_uri = "/v1.0/ocr/id-card" card_data=aksk_request(req_uri,cardImg) if card_data==None: print('获取身份证信息失败!请重新验证。') return False if len(card_data['result']['number'])!=18: #这里仅处理18位的身份证号 print('您的身份证号非18位,校验信息失败,请联系工作人员!') return False number=train_data['result']['id_number'] # number = number[:6] + '*' * 8 + number[-4:] number = number[:10] + '*' * 4 + number[-4:] if(train_data['result']['name']==card_data['result']['name'] and train_data['result']['id_number']==number): print('身份证和火车票信息一致,您可以来开火车了!') return True else: print('身份证和火车票信息不一致,请重新验证!') return False if __name__ == '__main__': trainImg = "./data/1.jpg" cardImg = "./data/id-card-demo0.jpg" get_info(trainImg,cardImg)

运行示例

  • 根据实际情况替换如下变量 {AK}、{SK}、{region}、{trainImg} 、{cardImg}
  • 执行 OCRDemo.py文件

运行结果

  • 执行完 文件后,在 console 查看日志打印了“身份证和火车票信息一致,您可以来开火车了!”。