• 调用华为API实现身份证识别


    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-8
    
    from 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_data
    
    if __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)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40

    3.3实验结果

    ![在这里插入图片描述](https://img-blog.csdnimg.cn/e96e627eb1de404e98252973a7f2e1c0.png

  • 相关阅读:
    node框架之express
    计算机毕业设计springboot紧急自救知识教学与交流平台9c75u源码+系统+程序+lw文档+部署
    win和linux动静态链接库介绍,以及win下动态库生成和调用方法
    Excel多线程导入数据库
    C++: 多态
    rocketmq总结
    正厚软件干货|redis key键
    LeetCo
    linux批量修改多个文件的同一部分内容
    【JavaScript-BOM】this指向,同步异步问题
  • 原文地址:https://blog.csdn.net/m0_37758063/article/details/130891561