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

news/2024/11/25 15:56:30/

调用华为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)

3.3实验结果

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


http://www.ppmy.cn/news/95444.html

相关文章

JavaScript 进阶 (一)

目录 作用域 局部作用域 函数作用域 块作用域 全局作用域 作用域链 JS垃圾回收机制 闭包 变量提升 函数进阶 函数提升 函数参数 箭头函数 基本语法 箭头函数参数 箭头函数this 解构赋值 数组解构 对象解构 遍历数组 forEach 方法(重点) …

C语言之网络编程(必背知识点)

一、认识网络 1、网络发展史 网络的来历_百度知道 ARPnetA--Internet--移动互联网--物联网 2、局域网和广域网 局域网(LAN) 局域网的缩写是LAN,local area network,顾名思义,是个本地的网络,只能实现小范围…

Linux:环境变量

否则就不会输出: 这只能临时生效,一旦重启linux后就会消失: 针对用户生效,在文件中的最后写上export 变量名变量值: 打开文件: 输入命令(保存):source .bashrc 因为是正对用户设置的变量&#…

高级Java多线程面试题及回答

高级Java多线程面试题及回答 1)现在有T1、T2、T3三个线程,你怎样保证T2在T1执行完后执行,T3在T2执行完后执行? 这个线程问题通常会在第一轮或电话面试阶段被问到,目的是检测你对”join”方法是否熟悉。这个多线程问题比较简单,可…

C++强类型枚举

C11引入了强类型枚举(enum class),也称为枚举类。 强类型枚举是一种更加类型安全的枚举类型,相对于传统的枚举类型,强类型枚举可以提供更好的安全性和可读性。 注意项: 强制类型转换:强类型枚…

利用 Pytorch 加载词向量库文件

1. 示例代码 完整代码: import torch from torch.nn import Embedding# 载入讯飞词向量文件 word_vector_file ../Downloads/tencent-ailab-embedding-zh-d100-v0.2.0-s.txt # 库文件的路径。本程序选择了最小的一个库文件。 word_vectors {} with open(word_ve…

中间件SOME/IP简述

SOME/IP SOME/IP 不是广义上的中间件,严格的来讲它是一种通信协议,但中间件这个概念太模糊了,所以我们也一般称 SOME/IP 为通信中间件。 SOME/IP 全称是 Scalable service-Oriented MiddlewarE over IP。也就是基于 IP 协议的面向服务的可扩…

数论专题(3)逆元

目录 初步认识 逆元 定义 应用 费马小定理 好久没有更新我们的数论专题板块了,今天,我们就来探究一下新知——逆元。 初步认识 在数据非常大的情景下,我们通常会对数据先进行取模运算,来计算在一定的范围内进行处理。而运算…