本文概述
- 要求
- 1.安装PassportEye
- 2.从CLI使用PassportEye
- 3.使用python API
在本文中, 我们将向你展示如何使用Python的PassportEye库从护照图片中检索MRZ信息。
要求 你将需要在系统上安装OCR引擎Tesseract, 并且可以从PATH获得。你可以在任何系统(unix或Windows)上轻松安装此工具, 因此请在Github上查看官方存储库。
你还可以使用以下命令从cli检查tesseract的可用性:
tesseract --help
1.安装PassportEye PassportEye是一个python库, 用于对使用机器可读旅行格式的身份证件进行图像处理。该软件包提供了一套工具包, 用于从扫描的身份证件中识别机器可读区域(MRZ)。文档可以在页面上任意放置-代码尝试查找类似于MRZ的内容并从那里进行解析。识别过程可能很慢-有些文档大约需要10秒钟或更长时间。它的精度不是很完美, 但是就开发人员可用的测试文档而言似乎还不错。在大约80%的情况下, 只要页面上有清晰可见的MRZ, 系统就会识别出该文本并将其提取到底层OCR引擎(Google Tesseract)的最佳功能。
你可以使用以下命令安装此库:
pip install PassportEye
安装过程将花费一些时间。有关此库的更多信息, 请访问Github上的官方存储库。
2.从CLI使用PassportEye PassportEye库将全局公开mrz命令, 此工具将处理给定的文件名, 提取找到的MRZ信息并以表格形式打印出来。运行mrz – json < 文件名> 将在JSON中输出相同的信息。此外, 运行mrz – save-roi < roi.png> 还将把检测到的MRZ(“ 感兴趣区域” )提取到一个单独的png文件中, 以供进一步探索。请注意, 该工具仅对PDF文件提供有限的支持, 它会尝试从PDF中提取第一个DCT编码的图像并对其进行识别。对于大多数由扫描仪生成的一页PDF来说, 这似乎可以正常工作, 但尚未经过广泛的测试。
该命令的最基本用法如下:
mrz image.jpg
【如何使用PassportEye库使用Python从护照图像中检索机器可读区域】但是, 由于键和值将用单个空格分隔, 因此输出的格式将不正确, 而是可以很好地对其进行格式设置, 并使其可以由某些编程语言使用json格式进行处理。你可以使用以下格式生成输出, 在命令中添加– json标志:
mrz image.jpg --json
例如, 将输出以下图像:
文章图片
以下数据:
{"mrz_type": "TD3", "valid_score": 62, "type": "P<
", "country": "PRT", "number": "1700044<
<
", "date_of_birth": "740407", "expiration_date": "220616", "nationality": "PRT", "sex": "F", "names": "INES", "surname": "GARCAO DE MAGALHAES", "personal_number": "99999999<
<
<
<
<
<
", "check_number": "9", "check_date_of_birth": "6", "check_expiration_date": "1", "check_composite": "0", "check_personal_number": "8", "valid_number": false, "valid_date_of_birth": true, "valid_expiration_date": true, "valid_composite": false, "valid_personal_number": true, "method": "direct", "walltime": 2.2025797367095947, "filename": "image.jpg"}
3.使用python API 如果你想将此工具集成到你的python代码中, 那么你将需要遵循一个非常简单的逻辑。从PassportEye库中导入read_mrz函数, 并作为第一个参数提供要处理的图像的路径(它可以是磁盘上文件的路径, 也可以是包含图像数据的字节流)。获得结果之后, 转换to_dict方法以获得mrz数据并使用键(使用上一步中的JSON字符串中提到的键)获得它:
# Import PassportEyefrom passporteye import read_mrz# Process imagemrz = read_mrz("passport_image.jpg")# Obtain imagemrz_data = http://www.srcmini.com/mrz.to_dict()print(mrz_data['country'])print(mrz_data['names'])print(mrz_data['surname'])print(mrz_data['type'])# And so on with the rest of shown properties in the previous JSON string
编码愉快!
推荐阅读
- Python数据科学导论
- python自动化办公|用python实现自动化办公------Excel操作(2)
- python自动化办公|用python实现自动化办公------定时发送邮件
- python自动化办公|用python实现自动化办公------定时发送微信消息
- ARM开发板 嵌入式Linux 修改开机启动LOGO
- Dynamics 365基于FetchXml的S S R S报表开发实例
- Qt 官方示例 | 网络入门 | http 下载小工具
- 浅析ARM公司在物联网领域的战略布局
- Qt小知识 | 用一篇小短文,带你进入 QML 的美妙世界