只用十行 Python 代码就提取了韦小宝的身份证信息

本文介绍了如何利用Python和百度云API接口,通过几行代码轻松提取身份证上的信息。通过比较普通模式和高精度模式,展示了高精度模式在准确性上的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理

记得以前有个广告词叫:“学好数理化,走遍天下都不怕”,感觉应该再加一句:“带上身份证”,本文我们看一下如何使用 Python 提取身份证信息。

实现方式

实现方式大致可以分为两种:

  • 自己造轮子,如:使用 OpenCV 等自己编码实现,该方式所有功能都需自己来实现,比较耗时耗力,优点是更灵活一些

  • 使用现成的轮子,如:百度云,平台已经实现好了核心功能,并对外提供了 API 接口,我们直接调用接口即可,该方式省时省力,但灵活性可能差一些

实现过程

因为我们要实现的功能也比较简单,这里就用第二种方式来演示一下,下面简单看一下实现过程。

SDK 安装

百度云 SDK 对多种语言提供了支持,这里我们安装 Python 版的 SDK,使用 pip install baidu-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 的 Python SDK 客户端,代码实现如下:

# 自己的 APPID AK SK
APP_ID = '自己的 App ID'
API_KEY = '自己的 Api Key'
SECRET_KEY = '自己的 Secret Key'

client = AipOcr(APP_ID, API_KEY, SECRET_KEY)

信息的提取有普通和高精度两种模式,普通模式代码实现如下:

# 打开并读取文件内容
fp = open("card.jpg", "rb").read()
res = client.basicGeneral(fp) # 普通
# 遍历结果
for tex in res["words_result"]:
    row = tex["words"]
    print(row)

输出结果如下:

姓名韦小宝
性别男民族汉
出生1654年12月20日
住址北京市东城区景山前街4号
紫禁城敬事房
公民身份证号码112441654122日2438

再来试一下高精度模式,代码实现如下:

# 打开并读取文件内容
fp = open("card.jpg", "rb").read()
res = client.basicAccurate(fp) # 高精度
# 遍历结果
for tex in res["words_result"]:
    row = tex["words"]
    print(row)

输出结果如下:

姓名韦小宝
性别男民族汉
出生1654年12月20日
住址北京市东城区景山前街4号
紫禁城敬事房
公民身份证号码11204416541220243X

通过输入结果我们可以看到:高精度模式提取了正确的身份证号码,普通模式提取的身份证号码是有一些误差的。

总结

本文我们使用 Python 结合百度云接口几行代码就提取了身份证信息,其实除了身份证信息也可以提取其他卡片信息,比如银行卡信息等,有兴趣的可以试一下。

示例代码: py-discern

想要获取更多Python学习资料可以加
QQ:2955637827私聊
或加Q群630390733
大家一起来学习讨论吧!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值