文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python调用百度AI怎样实现身份证识别

2023-06-25 20:15

关注

Python调用百度AI怎样实现身份证识别,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

一、安装baidu-aip模块

按win+R打开cmd,在里面输入

pip3 install baidu-aip

若出现如下界面,即成功安装了baidu-aip模块:

Python调用百度AI怎样实现身份证识别

如果想快速了解识别营业执照代码原理,可以跳过第二部分,先看第三部分的内容。

二、获取百度AI接口密钥

在应用python识别身份证的过程中,有三行代码使用了百度AI接口密钥,故先阐述如何获得该密钥。首先,进入如下百度AI官方网站:https://ai.baidu.com/tech/ocr

有百度账户的输入账户密码进行登录,没有的点击注册,按指示输入相关信息即可注册登录。

Python调用百度AI怎样实现身份证识别

登录后找到文字识别中的产品列表,下方有卡证文字识别内容,点击了解详情。

  Python调用百度AI怎样实现身份证识别

可以发现卡证文字识别中包含了我们常见的一些证件的识别,比如身份证、银行卡、营业执照、户口本、护照等。本文阐述营业执照的识别,感兴趣的同学可以自行研究其它证件的识别。在卡证文字识别的详情中可以发现如下产品列表:

Python调用百度AI怎样实现身份证识别

找到身份证识别,点击了解详情,即可进入如下界面:

Python调用百度AI怎样实现身份证识别

点击立即使用,就会出现如下服务协议:

Python调用百度AI怎样实现身份证识别

点击我已同意百度AI开放平台服务协议,就可以进入如下界面:

Python调用百度AI怎样实现身份证识别

下滑后点击卡证OCR,就可以发现身份证别功能,点击开通按钮。

Python调用百度AI怎样实现身份证识别

可以进入如下筛选开通付费页面:

Python调用百度AI怎样实现身份证识别

在确认开通之前,要先进行实名验证,按指示进行操作即可完成实名验证。

Python调用百度AI怎样实现身份证识别

接着可以勾选要开通的识别功能,具体如下:

Python调用百度AI怎样实现身份证识别

然后点击去支付,由于每天前多少次是免费的,且采取后付费模式,故不需提前付费。若开通成功,会出现如下界面:

Python调用百度AI怎样实现身份证识别

开通成功后,点击概览中的创建应用。

Python调用百度AI怎样实现身份证识别

填写应用名称(自己想一个贴合自己应用场景的名字即可)、选择文字识别包名、选择应用归属、填写应用描述,点击立即创建即可。

Python调用百度AI怎样实现身份证识别

最后,点击应用详情,即可找到我们需要的接口密钥(红框对应的值)。

Python调用百度AI怎样实现身份证识别

三、调用百度接口识别身份证

安装好baidu-aip模块,获取了百度AI接口密钥后,即可调用百度接口识别身份证了。身份证识别每天有5百次的免费调用机会,首先来看下今天要识别的身份证。

Python调用百度AI怎样实现身份证识别

这张身份证是在百度上下载的一张虚拟身份证,如有侵权,请联系我删除。识别该身份证的具体python代码如下:

import reimport osimport timefrom aip import AipOcros.chdir(r'F:\公众号\27.证件识别')#设置证件存放的路径APP_ID = 'XXX'API_KEY = 'XXXXXXXX'SECRET_KEY = 'XXXXXXXXXXXX'#百度账号和密钥,需替换成你的picture = open('2_身份证_v3.jpg', 'rb')img = picture.read()#读取图片idCardSide = 'front'  #身份证正面#idCardSide = 'back'   #身份证反面options = {}options['detect_direction'] = 'true' #是否检测图像朝向,默认不检测options['detect_risk'] = 'false'     #是否开启身份证风险类型client = AipOcr(APP_ID, API_KEY, SECRET_KEY)text = client.idcard(img, idCardSide, options)#识别图片中的信息concat_text = []if isinstance(text, dict):    words = text['words_result']    for k, v in words.items():        print(u'{k}:{v}'.format(k=k, v=v['words']))        tt = u'{k}:{v}'.format(k=k, v=v['words'])        concat_text.append(tt)#把字典解析成我们熟悉的形式

注:其中os.chdir中的内容应该替换成你存储图片的地址,APP_ID、API_KEY、SECRET_KEY应该替换成第二章末尾你获取的百度密钥。

得到结果如下:

Python调用百度AI怎样实现身份证识别

对比原始图片可以发现,出生是直接从身份证号码中截取的,住址的信息可能由于反光没有识别出来,结果为空。这里有个小插曲,我之前一直使用png格式的身份证图片进行调用识别,但一直报如下错误:

ConnectionError: ('Connection aborted.', ConnectionResetError(10054, '远程主机强迫关闭了一个现有的连接。', None, 10054, None))

后面调整为jpg图片后,就没有出现该问题了,所以建议在进行身份证识别时最好把图片的格式设置为jpg。为进一步规范输出成标准格式,通过如下代码进行规范化:

import pandas as pddate_concat_text = pd.DataFrame(concat_text)date_concat_text.columns =['text']df = date_concat_text["text"].str.split(':',expand=True)date_concat_text['label'] = df.iloc[:,0]date_concat_text['content'] = df.iloc[:,1]date_concat_text.to_csv("id_card_to_text.csv")

得到结果如下:

Python调用百度AI怎样实现身份证识别

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网行业资讯频道,感谢您对编程网的支持。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯