Java教程

电商场景海报文本智能检测算法

本文主要是介绍电商场景海报文本智能检测算法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

人工智能技术已经广泛应用于电商平台的众多业务,融入人们的生活之中。以计算机视觉为代表的人工智能技术更是在京东的搜索、推荐、广告、风控、机器人配送等多个领域发挥重要的作用,本文主要集中介绍计算机视觉领域中深度学习算法在海报文本检测任务中的技术概览。

文本检测是一种泛指对所有图像文字检测和识别的技术,包括传统的OCR和复杂场景的STR:OCR(Optical Character Recognition)光学字符识别,是指对输入的文本文档图像进行文字信息的检测识别的传统任务;STR(Scene Text Recognition)场景文字识别,特指检测识别环境更为复杂的自然场景图片中的文字信息。传统文档识别技术如今已经发展很成熟,而包括电商场景海报在内应用范围更广泛的自然场景里的文字识别技术,因为其文字展现形式的复杂性使得在自然场景图像中进行文字识别的难度要远远高于传统文档中进行文字识别。

对于以电商海报为代表的场景文字识别任务,目前存在两种解决方案:一种是两阶段的文字检测+文字识别的模型;另一种则是在一个模型中完成文字检测和文字识别工作的端到端的模型。下面将会对文字检测,文字识别和端到端的方法三部分进行阐述。

文字检测

文字检测的目标是要检测出图片中文字所在的区域,属于一种特殊的目标检测任务,但是由于文本行的长度以及长宽比例范围很大,并且文本行有横向,竖向,弯曲,旋转,扭曲等样式相较于常规的物体更难检测。

CTPN

电商场景海报文本智能检测算法

CTPN的主干网是一个全卷积网络,接受任意尺寸的图像为输入,能够直接在卷积层中定位文本行。

技术要点:

使用VGG16网络提取特征,得到conv5的大小为NWHC的特征图;在conv5的特征图上,使用33的窗口进行密集滑动,每次滑动得到一个33C的特征向量;然后将每一行的33C作为双向LSTM的输入,学习每一行的序列特征;随后连接一个全连接FC层,最后接一个输出层。

CTPN是基于Anchor的方法,每一个33C的slide window预测k个(宽度在图片中为16像素、高度为11~273像素)anchor,这些anchor在同一水平位置,有k个垂直高度值。输出层输出2k个垂直坐标向量(中心点y坐标和高度),2k个text/non-text score和k个anchor的side-refinement offset。

CTPN由于anchor的水平设定,仅对横向分布的文字检测效果较好,无法支持倾斜文本的检测。

TextBoxes和TextBoxes++

TextBoxes系列算法的检测方式启发于一阶段的目标检测方法SSD:

TextBoxes

电商场景海报文本智能检测算法

技术要点:

主干网络是一个全卷积网络,总共包含28层,前13层来自于VGG-16(conv_1到conv4_3),后接9个额外的卷积层(conv6,conv7,conv8_2,conv9_2,conv10_2,global);运用了空间金字塔的多重特征层做输出,这些特征层被称为text-box layers,为6个卷积层, 分别conv6,conv7,conv8_2,conv9_2,conv10_2和global;为了适应文本行检测,在text-box layer使用的了不规则的1x5卷积核,而不是常规的3*3大小的卷积核。

文本更倾向于大的横纵比,定义了1,2,3,5,7,10 六种default box。由于这些default box都是细长型的,会导致default box在水平方向密集在垂直方向上稀疏,为了解决这个问题,给每个default box加上垂直偏移(每个cell高度的一半),这样default box的数量为12个。

由于TextBoxes仅是在SSD的基础上对水平和垂直方向做了改良并未涉及default box的旋转,因此仅适用于水平文本的检测。

TextBoxes++

电商场景海报文本智能检测算法

TextBoxes++是TextBoxes的扩展,TextBoxes++的总体网络架构和TextBoxes类似,为了能够检测任意方向的文本主要对三个地方进行改进:

default box的纵横比改为1,2,3,5,1/2,1/3,1/5;在text-box layer里,卷积核的大小由1x5改为3x5;适应倾斜文本输出的两种检测框形式RBOX和QUAD。原始TextBoxes的输出为文本目标得分text score(2-d)和Bbox offsets(4-d),而TextBoxes++的输出为文本目标得分text score(2-d),和horizontal Bbox offsets(4-d)、Rotated Box(RBox)(5-d)或Quadrangle(QUAD)(8-d)。

SegLink

SegLink算法将检测任务分成两部分segment和links。其中Segment指的是能够覆盖一个单词或者文本行的box;link连接两个相邻近的segment,表明它们属于同一单词或者文本行。

网络架构借鉴SSD网络架构,网络能够同时检测segment和segment之间的link信息:

网络的后六个卷积层用于检测不同尺度的box,segment box是RBOX形式;Within-Layer Link Detection用于检测同一特征层中segment的连接;Cross-layer Link Detection用于检测两个相邻特征层中的segment连接。电商场景海报文本智能检测算法

SegLink擅长处理多方向和任意长度的文本,对于长文本检测效果也很好。

EAST

EAST是一个高效且准确的场景文字检测算法,仅仅包括两个步骤:利用全卷积网络检测文本行候选框;使用NMS算法过滤冗余的候选框。网络架构借鉴U-net的思想,包括三部分:特征提取主干,特征合并分支和输出层。

电商场景海报文本智能检测算法

输出层输出单通道的分数特征图和多通道的几何特征图。特征合并分支整合了不同尺度的特征图,可以检测不同尺寸的文字EAST通过输出两种几何形状,Rotated Box(RBox)和Quadrangle(QUAD)提供了文字的方向信息,可检测不同方向的文字。

作者在EAST方法中改进了传统的NMS算法,采用时间复杂度为O(n)的Locality-Aware NMS使结果的合并更加高效。EAST损失函数由分数特征图的损失函数和几何形状的特征图组成:前者使用类平衡交叉熵损失函数;后者采用IoU损失函数。

文字识别

文字识别部分主要存在如下图的四种算法策略:CNN+softmax,CNN+RNN+CTC, CNN+RNN+Attention和CNN+stacked CNN+CTC。

电商场景海报文本智能检测算法

CNN+softmax

假设输入图片为X,字符序列为S最大长度为N,要识别的字符序列为,S的长度为L且每个字符相互独立,识别任务就可转换为在训练集上学习模型 , 在图片上识别出序列S的概率计算公式为:

模型整体架构:对一个字符的识别先使用卷积网络提取特征,然后使用softmax分类器分类。使用卷积网络提取特征H,然后使用N+1个softmax分类器分别对每个字符进行分类,图示如下:

电商场景海报文本智能检测算法

该网络架构简单可以处理不定长的序列,但是由于缺乏识别文本特征之间的上线文信息,仅适合简单的文字识别,如字符和字母识别,且序列长度不宜过长。

CNN+RNN+CTC

电商场景海报文本智能检测算法

CRNN加入了上下文的空间特征信息,用CNN提取图片特征,将提取到的特征转换成特征序列作为RNN的输入,用于对卷积层输出的学历提升特征序列的每一帧进行预测;最后使用CTC算法将循环层的每帧预测转化为标签序列。

CRNN是一个端到端的模型,因为RNN可以处理任意长度的序列,仅仅需要固定输入图片的高度,宽度不定长。直接从序列标签中学习,简单实用被广泛应用于组合各种检测网络进行文字识别。

CNN+RNN+attention

电商场景海报文本智能检测算法

该方法在传统识别网的基础上引入注意力机制。识别流程大概分为以下步骤:CNN用于提取输入图片的特征,然后将特征序列作为Encoder-Decoder模型的输入。Encoder部分通常选择LSTM对特征序列进行编码,Decoder部分加入Attention机制进行解码,输出标签序列。

CNN+stacked CNN+CTC

不论是CNN+RNN+CTC还是CNN+RNN+attention在场景文字识别方面,RNN架构必不可少,但是RNN的串行计算和梯度消失或者梯度爆炸关系使得RNN计算复杂和难以训练。该框架针对上述问题进行改良,通过使用堆叠的卷积网络去获取序列之间的上下文依赖关系,并且为了增强前景文本的显示和抑制背景噪声的影响,作者在一个小的densely connected network中加入residual attention modules整个网络架构分为三部分:Attention feature encoder, Convolutional sequence modeling和CTC:

电商场景海报文本智能检测算法

Attention feature encoder是一个带有residual attention 的densely connected network,用来提取特征序列,特征序列中的每一个向量都和输入图像中某个局部区域相对应;Convolutional sequence modeling使用CNN获取序列中的上下文关系,首先需要将上一步得到的特征序列合并成一个2维的特征图,堆叠的卷积层生成hierarchical representation,能够迅速扩大感受野的大小;最后使用CTC算法获得最后的标签序列。

端到端模型

传统的文本检测识别任务是先检测后识别分为两个任务,每个任务分别对应不同的算法,这样任务之间缺乏特征的耦合性并且大大增加了时耗。因此同时完成检测和识别任务的端到端系统逐渐成为成为一种趋势。

Towards End-to-End Text Spotting with Conventional Recurrent Neural Network电商场景海报文本智能检测算法

该模型以一张图片作为输入,同时输出图片文本的bbox和相应的文本标签,整个网络架构主要包括:Text Proposal Network(TPN), Region Feature Encoder(RFE),Text Detection Network(TDN)和Text Recognition Network(TRN)。

1. 利用VGG-16作为主干网络对图像进行特征提取;

2. Text Proposal Network(TPN)网络会提取出一系列的文本区域候选框;

3. Region Feature Encoder(RFE)以VGG网络提取的特征图Conv Feature和TPN提取得到的Text Proposals为输入,依据文本相应的纵横比重采样文本区域,然后使用RNN将不同长度的特征图编码成固定长度的向量;

4.随后将固定长度的向量送入Text Detection Network(TDN)去计算textness scores 和 bbox offsets,将TDN网络生成的Bbox转化为固定长度的向量;

5. 最后Text Recognition Network(TRN)在检测的bbox中识别出相应的文字标签。

STN-OCR

电商场景海报文本智能检测算法

STR-OCR训练集仅仅需要图片和图片上文字的标签信息,并不需要文字的区域信息。模型的检测部分使用空间转换检测文本,包含三个组件:

Localization Network以图片作为输入,输出N个二维的affine transformation matrices;Grid Generator利用LR网络输出的affine transformation matrices输出N个文本区域;Image Sampling使用双线性差值提取相应区域。

识别部分则在原图像中检测出N个区域,从图片中提取这N个区域进行识别类似于CNN+softmax。

FOTS

电商场景海报文本智能检测算法

FOTS整体架构包含四部分:卷积共享网络(shared convolutions),文本检测分支网络(the text detection branch),RoIRotate变换(RoIRotate operation)和文本识别分支网络(the text recognition branch)。

1. Share convolutions用卷积共享网络提取图片特征图。模型采用ResNet50作为共享主干网分别得到1/4、1/8、1/16、1/32特征图,并利用FPN的方式进行特征融合,最终得到的融合特征图是原图尺寸的1/4。

2. The text detection branch是建立在共享卷积网的特征图之上的,对于特征图上的每一个特征像素分别提供两类预测,分类预测score值(即该点是检测框内像素的概率)和回归预测geometry坐标,该分支借鉴于EAST算法;

3. RoIRotate将有角度的文本块,经过仿射变换,转化为正常的轴对齐的文本矩形块;

4. The text recognition branch类似于CRNN算法,将文本候选特征输入到RNN编码器和CTC解码器以进行文本识别。

总结与展望

时至今日以电商场景海报为代表的复杂场景文本检测与识别技术依然存在巨大挑战并体现在以下几个方面:1.文字的多形态差异性,存在着语言、字体、倾斜、排版等各种各样的形态;2.背景的复杂性,比如几乎无法区分的元素(标志、底纹等);3.干扰的多样性,诸如噪声、模糊、失真、低分辨率、拉伸、遮挡等情况。这也要求算法工程师们针对业务需求设计更强大的模型来一一应对以上的困难与挑战。

这篇关于电商场景海报文本智能检测算法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!