向AI转型的程序员都关注了这个号 👇👇👇
机器学习AI算法工程 公众号:datayx
本任务是准确识别出身份证中包含姓名、出生日期、地址、签发机关等在内的多个关键信息,然而赛题所提供的训练集数据中,图像在亮度、清晰度等方面差别很大,初赛和复赛分别添加不同样式的水印。上述内容都对关键信息的提取带来了巨大的挑战。
我们的系统采取了将传统计算机视觉算法与深度学习方法相结合的方案,通过模板匹配、腐蚀膨胀、二值化等传统的方法,从原始不规则的数据集中得到规则身份证图片的切片,简单快速,效果出色。接着规则的身份证图片输入到去水印模块中,去除水印带来的干扰。然后将处理后的图像输入到文本识别模块中,对各个文本元素进行识别。为了进一步提高识别的准确率,最后将识别的结果输入到文本纠正模块中,对识别出错的文本信息根据事先设定的规则进行最大程度上的纠正,输出最终识别的结果。
本文相关代码 项目获取方式:
关注微信公众号 datayx 然后回复 OCR 即可获取。
AI项目体验地址 https://loveai.tech
去除水印的过程在一定程度上可以看做是图像恢复的工作,而生成对抗网络能够有效处理这类任务。我们采用条件生成对抗网络来完成去除水印的工作,生成器输入带水印的图片,生成去除水印之后的图片,判别器对生成不带水印的图像和真实不带水印的图像进行真伪的判别,输入原始带水印的图像作为条件约束,通过判别器和生成器之间的对抗训练,提高生成器的能力,改善去除水印的效果。
最终去水印的效果如图所示,可以看到我们的去水印模块在不同亮度、模糊程度、透明度的图像上都有非常出色的表现。即使一些图片人眼无法识别出被遮挡的文字内容,我们的模型也依然能够很大程度上恢复出被遮挡的信息,大大减小了文本识别的难度。
文本识别的模型采用的是CRNN。我们的识别模型可以识别6030个字符(包含汉字、部分标点、阿拉伯数字),由于训练出一个鲁棒的模型需要大量数据,因此训练过程中使用了生成图片用于训练,同时在训练过程中随机调整图片亮度、对比度,达到数据增强的效果。
身份证上很多信息都有着明确的组成格式要求,如果能够充分利用这些先验条件,即使一些文本识别出错,我们也能够将其纠正,得到正确的结果。我们的文本纠正模块采用了规则纠正法和最大字符匹配法,规则纠正法利用了身份证中不同关键信息的冗余,比如身份证号码中包含出生年月日信息,前六位包含省市县三级行政区域的信息,可以用来与住址,签发机关相互纠正;民族信息使用相近字来纠正,在这个纠正过程中,我们搜集了全国的行政区号,签发机关,具体地址信息(具体到村级),用于辅助纠正。而对于性别和民族的识别结果,则通过最大字符匹配法进行纠正。
我们提出的文本识别方案识别准确率高,各个模块之前相对独立,灵活性好,即使更换不同的文本识别场景,依然能够快速部署,完成相关的识别任务。此外,我们的方案抗干扰的能力好,训练的方法通用,更换其他样式的水印干扰,水印去除模块也能够有效完成去干扰的工作。如果使用更出色的去模糊方法,文本识别的准确率还能有望得到进一步的提高。
阅读过本文的人还看了以下文章:
《深度学习入门:基于Python的理论与实现》高清中文PDF+源码
2019最新《PyTorch自然语言处理》英、中文版PDF+源码
《21个项目玩转深度学习:基于TensorFlow的实践详解》完整版PDF+附书代码
PyTorch深度学习快速实战入门《pytorch-handbook》
【下载】豆瓣评分8.1,《机器学习实战:基于Scikit-Learn和TensorFlow》
李沐大神开源《动手学深度学习》,加州伯克利深度学习(2019春)教材
【Keras】完整实现‘交通标志’分类、‘票据’分类两个项目,让你掌握深度学习图像分类
如何利用全新的决策树集成级联结构gcForest做特征工程并打分?
Machine Learning Yearning 中文翻译稿
斯坦福CS230官方指南:CNN、RNN及使用技巧速查(打印收藏)
中科院Kaggle全球文本匹配竞赛华人第1名团队-深度学习与特征工程
不断更新资源
深度学习、机器学习、数据分析、python
搜索公众号添加: datayx
长按图片,识别二维码,点关注