最近初步完成了一项海外证件全信息识别的项目,主要有四大模块:证件定位(BISNET分割),文本检测(DBnet),文本识别(CRNN+CTC),信息抽取(规则)。目前,证件定位的准确率为99%;本检测的准确率为99.2%;识别的准确率为98%(以字段为单位)。本文主要整理OCR模块,有空整理完代码放到github上。由于工作比较忙,暂时没空整理代码到git上,有问题欢迎直接留言。
一.文本检测模块
考虑到证件是用户用手机拍摄,有畸变,有旋转问题,光照和遮挡问题,所以采取了DBnet的思路。关于DBnet的原理,大家可以自行搜索相关资料学习,网上介绍的资料也非常多。
1.1标注
标注方式我是采用以行为单位的文本框四边形标注,标注文档以json的格式存放。格式如图所示:
polygon的顶点坐标为浮点数,这是标注工具自动生成的,训练和验证的时候需要转成整数。
1.2 训练
见github代码。
1.3 推理
见github代码。
二.文本识别
由于海外证件不确定信息较多,如住址,职业,发证地址等,属于不定长文本识别。考虑使用crnn+ctc的思路。
2.1标注格式
文本图像,jpg格式,同名的txt文件,标签为文本图像的内容。同时还有字符映射表,也是txt文档,可根据自己的任务更改映射表的内容。
2.2 训练
见github代码。
2.3 推理
见github代码。
最后,放上代码链接地址: