当前位置: 首页 > 后端技术 > Python

用Python提取韦小宝的身份证信息

时间:2023-03-26 16:47:29 Python

记得有一个广告说:学好数理化,走遍天下都不怕。提取身份信息。实现方式大致分为两种:自造轮子,如:使用OpenCV等自行编码实现。该方法所有功能都需要自己实现,费时费力。优点是比较灵活,使用现成的轮子。比如:百度云,平台已经实现了核心功能,对外提供了API接口。我们可以直接调用接口。这种方式省时省力,但是在实现过程中灵活性可能会差一些,因为我们要实现的功能也比较简单,这里是第二种方式的演示,我们简单看一下实现过程。SDK安装百度云SDK提供多语言支持,这里我们安装Python版的SDK,使用pipinstallbaidu-aip命令,SDK目录结构如下:├──README.md├──aip//SDK目录│├──__init__.py//导出类│├──base.py//aip基类│├──http.py//http请求│└──ocr.py//OCR└──setup.py//setuptools安装和创建应用程序SDK安装完成后,我们需要创建一个应用程序。这里我们需要一个百度账号或者百度云账号。如果您没有,可以自己注册一个。登录注册地址为:https://login.bce.baidu.com/?redirect=http%3A%2F%2Fcloud.baidu.com%2Fcampaign%2Fcampus-2018%2Findex.html,具体过程基本类似关于车牌识别,不清楚的可以看车牌识别一文。具体实现,我们先找一张身份证的图片,如图:然后看代码实现,首先创建AipOcr,AipOcr是OCR的PythonSDK客户端,代码实现如下:#自己的APPIDAKSKAPP_ID='OwnAppID'API_KEY='OwnApiKey'SECRET_KEY='OwnSecretKey'client=AipOcr(APP_ID,API_KEY,SECRET_KEY)以上三个参数也可以参考车牌识别中的介绍。信息提取有两种模式:普通模式和高精度模式。普通模式代码实现如下:#打开并读取文件内容fp=open("card.jpg","rb").read()res=client.basicGeneral(fp)#Common#遍历结果为texinres["words_result"]:row=tex["words"]print(row)输出结果如下:姓名韦小宝性别男汉族出生1654年12月20日地址北京市东城区京山前大街4号故宫尊室市民身份证号1124416541222438我们再试试高精度模式,代码实现如下:#打开并读取文件内容fp=open("card.jpg","rb").read()res=client.basicAccurate(fp)#highprecision#遍历结果fortexinres["words_result"]:row=tex["words"]print(row)输出结果如下:name韦小宝性别男民族汉族16542020年12月20日地址北京市东城区景山前大街4号故宫住宅市民身份证号11204416541220243X通过input结果,我们可以看到在高精度模式下提取的是正确的身份证号,而在普通模式下提取的身份证号有一些错误。综上所述,在本文??中,我们使用Python结合百度云接口,通过几行代码实现了提取身份证信息。其实除了身份证信息,还可以提取其他卡信息,比如银行卡信息。如果您有兴趣,可以尝试一下。源码获取自公众号Python小二后台回复201216免责声明:本文未发表于个人账号