如何用 Python 提取韦小宝身份证信息
发布日期:2021-06-30 11:44:40 浏览次数:2 分类:技术文章

本文共 1692 字,大约阅读时间需要 5 分钟。

记得以前有个广告词叫:“学好数理化,走遍天下都不怕”,感觉应该再加一句:“带上身份证”,本文我们看一下如何使用 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 SKAPP_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 结合百度云接口几行代码就提取了身份证信息,其实除了身份证信息也可以提取其他卡片信息,比如银行卡信息等,有兴趣的可以试一下。

源码在公众号 Python小二 后台回复 201216 获取。

本文非首发于个人号

转载地址:https://ityard.blog.csdn.net/article/details/115051984 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Python 实现图片转字符画,静态图、GIF 都能转
下一篇:用 Python 画一个捂脸表情

发表评论

最新留言

感谢大佬
[***.8.128.20]2024年04月07日 23时09分24秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

【NLP学习笔记】NLP基础知识框架图 2019-04-30
【深度学习笔记】卷积的输入输出的通道、维度或尺寸变化过程 2019-04-30
【NLP学习笔记】训练集、验证集和测试集的概念及划分 2019-04-30
【NLP学习笔记】conda换源 2019-04-30
【深度学习笔记】常见的图像增强方法:scaling、rotating、flipping、random cropping 2019-04-30
【深度学习笔记】标准卷积 2019-04-30
【深度学习笔记】组卷积 2019-04-30
【深度学习笔记】循环神经网络和递归神经网络区别 2019-04-30
【学习笔记】英文科技论文常见英语句式积累 2019-04-30
【深度学习笔记】PixelShuffle 2019-04-30
【python3学习笔记】斜杠和双斜杠运算符的区别 2019-04-30
【深度学习笔记】torch.nn.Sequential(* args) 与 torch.nn.Module 2019-04-30
【深度学习笔记】用torch.nn.Sequential()搭建神经网络模型 2019-04-30
【深度学习笔记】用torch.nn.ModuleList搭建神经网络 2019-04-30
【解决错误】AttributeError: module ‘scipy.misc‘ has no attribute ‘imread‘ 2019-04-30
【解决错误】复现RCAN的时候遇到了ImportError: cannot import name ‘_update_worker_pids’ from ‘torch._C’ 2019-04-30
【解决错误】ModuleNotFoundError: No module named ‘skimage‘ 2019-04-30
【深度学习笔记】pytorch的点乘(dot product) 2019-04-30
【深度学习笔记】残差 2019-04-30
【错误解决】cv2.error: OpenCV(4.2.0) C:\projects\opencv-python\opencv\modules\imgproc\sr 2019-04-30