GitHub-peaktangf/RecognizeCard: 能识别中国二代身份证的iOS Demo
一、项目简介
这是一个iOS平台上的Demo项目,旨在识别中国二代身份证。开发者由于在网上未找到合适免费的OCR相关的身份证识别demo,所以自己进行研究开发。项目中运用到了多种图像处理和文字识别技术,并且使用了OpenCV和TesseractOCRiOS开源框架。
二、核心技术
-
图像处理技术
- 灰度化处理:将图片每个像素点的RGB三个分量通过算法算出灰度值,使图像只含亮度信息。
- 二值化:把经过灰度化处理的图片转换为只含黑色和白色两种颜色的图像。
- 腐蚀:将二值图中的黑色块放大,连接相邻黑色像素点元素,用于连接身份证号码成矩形区域。
- 轮廓检测:在图片经过腐蚀操作后找出大的区域,从而定位身份证号码区域。
-
文字识别技术
通过识别图像将图像信息转化为计算机可输入的技术,例如项目中对身份证号码区域图像进行识别转化为字符串形式的号码。
-
开源框架
- OpenCV:一个开源跨平台计算机视觉和机器学习库,可完成人脸识别、身份证识别等图像相关功能。
- TesseractOCRiOS:针对iOS平台封装的Tesseract引擎库,是较为准确的开源OCR引擎。
三、实践案例
创建一个iOS项目,用CocoPods导入OpenCV和TesseractOCRiOS库,处理库不支持Bitcode机制等问题,并手动导入TesseractOCRiOS所需的英语语言包。创建RecogizeCardManager管理身份证识别相关代码,由于相关库基于c++编写,将RecogizeCardManager.m后缀改成.mm。在识别过程中,先利用OpenCV对身份证图片进行扫描和预处理,定位号码区域图片,再用TesseractOCR识别文字。在RecogizeCardViewController中实现拍照或从相册选取照片后进行身份证识别,并根据识别结果进行相应展示。
四、项目总结
该程序对身份证识别的正确率接近90%,识别正确率主要取决于图像预处理环节,包括腐蚀、取出身份证号码区域(轮廓提取)的算法等。识别速度方面,TesseractOCRiOS对清晰文字识别速度较快,但二值图处理后识别速度降低,可进一步优化。此系统原理还可应用于身份证其他信息、银行卡、车牌号等的识别。欢迎大家留言讨论对这个项目的看法或提出改进建议。
项目地址
数据统计
数据评估
本站链氪巴士提供的GitHub-peaktangf/RecognizeCard: 能识别中国二代身份证的iOS Demo都来源于网络,不保证外部链接的准确性和完整性,同时,对于该外部链接的指向,不由链氪巴士实际控制,在2024年12月6日 上午12:00收录时,该网页上的内容,都属于合规合法,后期网页的内容如出现违规,可以直接联系网站管理员进行删除,链氪巴士不承担任何责任。
相关导航
GitHub上的cytle/wechat_web_devtools项目是针对Linux环境下微信开发者工具的支持项目。它能让微信开发者工具在Linux桌面环境运行,其原理是基于微信开发者工具本质为nw.js程序进行移植,对于部分功能利用wine运行。项目详细介绍了从下载、初始化到各种启动方式(开发调试网页、开发预览小程序、命令行和HTTP调用等)以及在Docker中的应用。同时也列出了使用过程中可能遇到的错误如nw.js下载失败、编译错误等的解决办法,还提及了Ubuntu环境下编辑器字体问题的解决方案。这对于想在Linux下进行微信小程序等开发工作的开发者来说是个很实用的项目。
DocViewer是一个在GitHub上开源的项目,采用MIT license许可证。这个项目专注于文档查看,能够支持如word、excel、pdf、rtf等多种格式的文件,这些文件来源可以是本地或者其他app分享过来的。项目基于Objective - C语言开发,使用了WebKit.framework系统库并涉及AFNetworking3.x三方库(需自行添加)。项目包含如文档列表显示、文档详情显示、与其他应用交互等功能相关的多个模块,每个模块有各自的配置和操作方式。在使用过程中可能遇到iOS9下HTTP请求等问题,需要特定的Info.plist配置解决,也欢迎使用者反馈问题来改进项目。
react - native - puti - pay是一个基于ReactNative的插件,专注于实现微信支付和支付宝支付功能。它详细阐述了在iOS和Android系统上的安装步骤,包含在iOS的XCode中的项目操作,如库添加、系统库设置等,以及在Android上的MainActivity.java、settings.gradle和build.gradle的配置等内容。还提供了支付功能的使用方式,并对常见的支付集成问题进行了分析,如安卓微信支付闪退和iOS支付无返回商家按钮等问题,为需要集成这两种支付方式的ReactNative项目提供了全面的参考。