基于DBnet+CRNN+CTC的证件OCR任务,tensorflow2.x实现

最近初步完成了一项海外证件全信息识别的项目,主要有四大模块:证件定位(BISNET分割),文本检测(DBnet),文本识别(CRNN+CTC),信息抽取(规则)。目前,证件定位的准确率为99%;本检测的准确率为99.2%;识别的准确率为98%(以字段为单位)。本文主要整理OCR模块,有空整理完代码放到github上。由于工作比较忙,暂时没空整理代码到git上,有问题欢迎直接留言。

一.文本检测模块

考虑到证件是用户用手机拍摄,有畸变,有旋转问题,光照和遮挡问题,所以采取了DBnet的思路。关于DBnet的原理,大家可以自行搜索相关资料学习,网上介绍的资料也非常多。

1.1标注

标注方式我是采用以行为单位的文本框四边形标注,标注文档以json的格式存放。格式如图所示:

基于DBnet+CRNN+CTC的证件OCR任务,tensorflow2.x实现_第1张图片

polygon的顶点坐标为浮点数,这是标注工具自动生成的,训练和验证的时候需要转成整数。

1.2 训练

见github代码。

1.3 推理

见github代码。

二.文本识别

由于海外证件不确定信息较多,如住址,职业,发证地址等,属于不定长文本识别。考虑使用crnn+ctc的思路。

2.1标注格式

文本图像,jpg格式,同名的txt文件,标签为文本图像的内容。同时还有字符映射表,也是txt文档,可根据自己的任务更改映射表的内容。

2.2 训练

见github代码。

2.3 推理

见github代码。

最后,放上代码链接地址:

 

 

你可能感兴趣的:(深度学习,tensorflow,深度学习,tensorflow)