调用华为API实现身份证识别
- 1、作者介绍
- 2、调用华为API实现身份证识别
- 2.1 算法介绍
- 2.1.1OCR简介
- 2.1.2身份证识别原理
- 2.1.3身份证识别应用场景
- 2.2 调用华为API流程
- 3、代码实现
- 3.1安装相关的包
- 3.2代码复现
- 3.3实验结果
1、作者介绍
雷千龙,男,西安工程大学电子信息学院,2022级研究生
研究方向:机器视觉与人工智能
电子邮件:2387360343@qq.com
张思怡,女,西安工程大学电子信息学院,2022级研究生,张宏伟人工智能课题组
研究方向:机器视觉与人工智能
电子邮件:981664791@qq.com
2、调用华为API实现身份证识别
2.1 算法介绍
2.1.1OCR简介
OCR (Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程。
2.1.2身份证识别原理
识别原理为文字识别,通过识别身份证图片中的文字内容,并将识别的结果以JSON格式返回给用户。支持身份证翻拍检测功能,并可以判断是否是复印件、原件。
2.1.3身份证识别应用场景
在智能科技信息快速发展的当下,很多APP、小程序、都需要填写各种个人身份信息,像姓名、户籍住址、身份证号码等等。身份证OCR识别可快速实现用户信息输入。
2.2 调用华为API流程
(1)百度搜索华为云或输入huaweiicloud.com访问华为云官网进入后搜索“文字识别”
(2)获取访问AK/SK
点击新增访问,在描写处填写身份证识别。会生成并下载csv文件,打开csv文件可获得Access Key Id和Secret Access Key。
(3)API调试
在开发工具处点击API调试即可进入。并点击身份证识别进行调试。
(4)参数设置
在image处输入图像的base64编码
side输入front
return_verification选择true
return_text_locaton选择true
(5)base64编码获取
将图片拖入浏览器中并打开,按F12后点击source点击{},此时可获得图片的base64编码,将其全部选中并回到API Exploer中输入到image中即可调试成功。
3、代码实现
3.1安装相关的包
pip install huaweicloudsdkcore
pip install huaweicloudsdkocr
3.2代码复现
# coding: utf-8from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkocr.v1.region.ocr_region import OcrRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkocr.v1 import *
import base64#### base64编码格式
def image_to_base64(self):with open(self, 'rb') as f:base64_data = base64.b64encode(f.read()) # 将图像转换为 base64数据格式return base64_dataif __name__ == "__main__":ak = "你的ak"sk = "你的sk"credentials = BasicCredentials(ak, sk) \client = OcrClient.new_builder() \.with_credentials(credentials) \.with_region(OcrRegion.value_of("cn-north-4")) \.build()try:request = RecognizeIdCardRequest()request.body = IdCardRequestBody(return_text_location=True,return_verification=True,side="front",image= image_to_base64('path') ## 调用之前定义的 base64 编码 并且输入自己的图片路径)response = client.recognize_id_card(request)print(response)except exceptions.ClientRequestException as e:print(e.status_code)print(e.request_id)print(e.error_code)print(e.error_msg)