向AI转型的程序员都关注了这个号????????????
机器学习AI算法工程 公众号:datayx
ICDAR2019任务3: 发票比赛端到端识别比赛冠军,技术方案Corner+CRNN,其中的Corner方法就是本文方法。
开源代码获取
关注微信公众号 datayx 然后回复 发票 即可获取。
AI项目体验地址 https://loveai.tech
作者相关:该文章由华中科技大学白翔教授团队出品
https://arxiv.org/abs/1802.08948
方法简介:作者提出了一种可端到端训练和评估的文本检测网络,结合了目标检测和语义分割两种思路。其中,主干网络使用了VGG16,主要用于进行特征提取;网络外接两个并行分支,第一个分支用来进行边角点检测来提取文本区域;第二个分支用类似RFCN的网格划分的思路做位置敏感分割。最后,使用NMS算法对候选文本区域进行过滤。
此前,效果较好的基于深度学习的场景文本检测方法可以大致分为两类。第一类是将场景文本看作通用目标,进而使用通用目标检测算法来定位场景文本区域,通常的方式是使用回归的文本框。但是由于场景文本的多方向性和较大的宽高比,这种方法通常比较困难。第二种方法是直接分割文本区域,但大多数情况下需要复杂的后处理过程。在这篇文章中,我们提出了一种结合以上两种思路以避免各自缺陷的方法,通过定位边角点的文本框并在相关位置分割文本区域的场景文本检测算法。在模型的前向传播阶段,通过采样和分组边角点生成候选框,用于进行特征分割和NMS过滤。结合了之前的方法以后,我们所提方法能够处理多方向自然场景中的文本并且不必进行复杂的后处理过程。我们在ICDAR2013,ICDAR2015, MSRA-TD500, MLT和COCO-Text等数据集上都进行了实验,实验结果证实了我们所提出方法较好效果。其中,基于VGG16网络的模型,在ICDAR2015上达到了84.3%的F值,在MSRA-TD500上取得了81.5%的F值。
方法细节:
5.1 主要创新:
1)提出了结合目标检测和语义分割思想的新的场景文本检测算法,可实现端到端的训练评估;
2)基于位置敏感ROI pooling提出了旋转位置敏ROI pooling层实现任意方向传播;
3)可以同时处理多方向旋转文本、高长宽比文本、近距离文本区域等场景;
4)检测准确性和速度性能相比较其他方法更优。
5.2 整体流程:
如fig2所示,完整的端到端过程包含以下几个步骤。
首先经过backbone网络进行特征提取,然后,将提取好的特征并行输入到两个分支中共享特征。其中,第一个分支为Corner Detection,用来进行候选bounding box的生成,这部分类似于传统的目标检测算法;第二个分支为Position ensitive Segmentation,用于将特征图逐像素打分,和一般分割不同的是输出4个score map,分别对应左上、左下、右上、右下不同位置的得分;最后,通过Corner Detection 和 Position sensitive Segmentation共同计算得分,去掉低于置信度阈值的候选框,经过NMS后处理即得到最终的文本区域。
最近,由于在现实中日益增长的自然场景文本识别需求(商品搜索、图像修复、自动驾驶),有关从自然场景中提取文本信息的研究变得越来越热门。自然场景文本检测在多种文本阅读体系中占据着重要的角色。
长文本检测是一种挑战,其原因有二。外部原因是由于环境的问题,如噪音,模糊,光线遮挡等,这些也是自然场景目标检测的难题;内部原因是由场景文本的特点和多样性造成的。与通用目标检测对比,场景文本检测更加复杂:
1)场景文本可能在自然图片中具有多种方向,因此文本框可能是旋转矩形或者四边形;
2)宽高比巨大;
3)场景文本可能是字符、单词或文本行,算法可能在定位边界时会很困难。
过去几年,随着目标检测和语义分割研究的高速发展,场景文本检测已经被广泛研究并取得了明显的进步。一些基于通用场景目标检测和语义分割,修改为使用文本检测的模型更加精准。这些模型可以被归类划分到两个分支:第一个分支是基于通用目标检测(SSD, YOLO, DenseBox)算法的模型,例如,TextBoxes, FCRN和EAST等,这些算法直接预测候选文本框。第二个分支是基于语义分割,能够生成语义分割图,并通过后处理产生最终的文本框。
为了验证本文方法的有效性,我们在5个开源数据集上进行实验:ICDAR21015、ICDAR2013、MSRA-TD500、MLT、COCO-Text,并与其他的业界领先算法进行比较。
Implementation Details
训练:我们的模型是在SynthText上预训练,然后在其他数据集上finetuning(除了COCO-Text)。我们使用Adam作为优化器,学习率调整到1e-4。在预训练阶段,我们在SynthText上训练一个epoch。在finetuning阶段,迭代的次数取决于数据集的尺寸。
数据增强:我们使用与SSD算法中相同的数据增强方式。在输入图片中随机采样一小块,然后重放缩到512*512。
后处理:NMS是本算法的一个唯一的后处理步骤,设置阈值为0.3。
我们的方法使用PyTorch实现,所有的实验构建在工作站上(CPU: Intel(R) Xeon(R) CPU E5-2650 v3 @ 2.30GHz; GPU:Titan Pascal; RAM: 64GB)。训练的batch大小设置为24,GPU数量为4。评测时GPU为1个,batch大小设置为1。
Detecting Oriented Text
我们在ICDAR2015数据集上评估模型对于多方向文本的能力。我们将模型在ICDAR2015和ICDAR2013数据集上finetune另外500个epoch。值得强调的是,为了更好的检测垂直方向的文本,在最后的15个epoch,我们使用0.2的概率随机旋转了采样样本90度。在测试中,我们设置τ为0.7并且resize输入图片到768/*1280。参考了[53,17,16],我们也在ICDAR2015数据集上使用多尺度评估我们的模型,默认τ{512×512, 768×768, 768×1280, 1280×1280} 。
我们将本文方法与业界领先方法对比的结果列在了tab2中。本文方法性能高于其他方法很多。当使用单一尺度评测时,我们方法的F值达到了80.7%,远超其他方法;在使用多尺度评测时,F值为84.3%,超过目前最优算法3.3%。
为了探索本文基于边角点的方法和基于回归文本框的方法的差距,我们训练了一个与本文方法参数设置相同的网络命名为baseline,列在tab2中。baseline网络包含与本文方法相同的主干网络和类似SSD/DSSD的相同预测模块。在略微多的时间消耗下,本文方法取得了巨大的准确率提升(53.3% VS 80.7%)。
Detecting Horizontal Text
我们在ICDAR2013数据集上评估模型对于水平文本的能力。我们在fintuned的ICDAR2015模型的基础上使用ICDAR2013的数据集训练了60个epoch。在测试中,输入图片放缩到512*512。我们也使用了多尺寸输入来评估我们的模型。
结果被列在了tab3中,大多数使用了"Deteval"评估指标。我们的方法达到了一个非常有竞争力的结果。当使用单尺度进行评测时,我们的方法达到了85.8%的F值,仅仅比最优结果低一点。而且,我们的方法速度达到10.4FPS,远远快于大多数方法。对于多尺度评测,我们的方法达到88.0%的F值,相比较其他方法也十分具有竞争能力。
5.5 Detecting Long Oriented Tect Line
在MSRA-TD500数据集上,我们评估模型的检测长文本和多语言文本行的能力。HUST-TR400也被用做训练数据,因为MSRA-TD500仅仅包含300个训练图片。模型初始化使用在SynthText上的预训练模型,然后finetuned了另外240个epoch。在测试阶段,输入图片尺寸设置为768*768并且设置τ为0.65。
如在tab4中展示的那样,我们的方法超过先前所有方法很多。我们的方法在召回率、精度和F值等方面均达到了业界领先水准,远超先前结果。这意味着我们的方法更加适合检测任意方向的长文本。
为了评估模型的通用能力,我们使用finetuned的ICDAR2015的模型测试COCO-Text数据集。设置图片尺寸为768*768。使用标注(V1.1)来对比其他方法,为了公平起见,结果如tab6。在COCO-Text未训练的场景下,我们的模型达到了42.5%的F值,比其他方法更好。
除此之外,我们也在ICDAR2017 鲁棒性阅读挑战COCO-Text标注(V1.4)上进行了评测,我们方法在所有排名中登顶。特别是当阈值设置为0.75,我们方法超越其他方法很大一部分,这展示了本文方法在文本检测方面的优越性。
Limitations
本文方法的局限性是当两个文本实例非常接近时,它可能把两个文本行预测成为一个(fig7),因为位置敏感分割可能失效。除此之外,该方法在扭曲文本方面检测较差(fig7),因为训练集合中扭曲文本非常少。
阅读过本文的人还看了以下文章:
【全套视频课】最全的目标检测算法系列讲解,通俗易懂!
《美团机器学习实践》_美团算法团队.pdf
《深度学习入门:基于Python的理论与实现》高清中文PDF+源码
python就业班学习视频,从入门到实战项目
2019最新《PyTorch自然语言处理》英、中文版PDF+源码
《21个项目玩转深度学习:基于TensorFlow的实践详解》完整版PDF+附书代码
《深度学习之pytorch》pdf+附书源码
PyTorch深度学习快速实战入门《pytorch-handbook》
【下载】豆瓣评分8.1,《机器学习实战:基于Scikit-Learn和TensorFlow》
《Python数据分析与挖掘实战》PDF+完整源码
汽车行业完整知识图谱项目实战视频(全23课)
李沐大神开源《动手学深度学习》,加州伯克利深度学习(2019春)教材
笔记、代码清晰易懂!李航《统计学习方法》最新资源全套!
《神经网络与深度学习》最新2018版中英PDF+源码
将机器学习模型部署为REST API
FashionAI服装属性标签图像识别Top1-5方案分享
重要开源!CNN-RNN-CTC 实现手写汉字识别
yolo3 检测出图像中的不规则汉字
同样是机器学习算法工程师,你的面试为什么过不了?
前海征信大数据算法:风险概率预测
【Keras】完整实现‘交通标志’分类、‘票据’分类两个项目,让你掌握深度学习图像分类
VGG16迁移学习,实现医学图像识别分类工程项目
特征工程(一)
特征工程(二) :文本数据的展开、过滤和分块
特征工程(三):特征缩放,从词袋到 TF-IDF
特征工程(四): 类别特征
特征工程(五): PCA 降维
特征工程(六): 非线性特征提取和模型堆叠
特征工程(七):图像特征提取和深度学习
如何利用全新的决策树集成级联结构gcForest做特征工程并打分?
Machine Learning Yearning 中文翻译稿
蚂蚁金服2018秋招-算法工程师(共四面)通过
全球AI挑战-场景分类的比赛源码(多模型融合)
斯坦福CS230官方指南:CNN、RNN及使用技巧速查(打印收藏)
python+flask搭建CNN在线识别手写中文网站
中科院Kaggle全球文本匹配竞赛华人第1名团队-深度学习与特征工程
不断更新资源
深度学习、机器学习、数据分析、python
搜索公众号添加: datayx
QQ群
333972581