大话文字检测经典模型:PixelLink

文字检测是AI的一项重要应用,在以前的文章中已经介绍过了几种基于深度学习的文字检测模型:CTPN(详见文章:大话文字检测经典模型CTPN)、SegLink(详见文章:大话文字检测经典模型SegLink)、EAST(详见文章:大话文字检测经典模型EAST),这些模型主要依赖于深度学习,可应用于天然场景中进行文字检测,其主要的实现步骤是判断是否是文本,而且给出文本框的位置和角度,以下图:算法

从上图能够看出,CTPN、SegLink、EAST等文字检测模型至少须要执行两个预测:经过分类判断是文本/非文本,经过回归肯定边界框的位置和角度。回归的耗时比分类要多得多,并且准确率也是一个挑战。那么有没有一种方法是只须要利用“分类”,就能实现对文本/非文本的判断,并同时给出文本框的位置和角度呢?微信

答案是“有的”,这就是今天要介绍的另外一个文字检测的经典模型:PixelLink(像素链接)网络

 

一、PixelLink总体框架框架

PixelLink的总体框架以下图:分布式

从模型的名称PixelLink(像素链接)能够看出,该模型主要有两个关键部分:Pixel(像素)、Link(链接)。函数

PixelLink主要是基于CNN网络,作某个像素(pixel)的文本/非文本的分类预测,以及该像素的8个邻域方向是否存在链接(link)的分类预测(即上图中虚线框内的八个热图,表明八个方向的链接预测)。而后基于OpenCV的minAreaRect(最小外接矩形)这种基于连通域的操做,获取不一样大小的文本连通域,再进行噪声滤除操做,最后经过“并查集”(disjoint-set data structure)并出最终的文本边界框。oop

 

二、PixelLink网络结构学习

PixelLink的网络结构以下图所示:大数据

 

PixelLink网络结构的骨干(backbone)采用VGG16做为特征提取器,将最后的全链接层fc六、fc7替换为卷积层,特征融合和像素预测的方式基于FPN思想(feature pyramid network,金字塔特征网络),即卷积层的尺寸依次减半,但卷积核的数量依次增倍,这种思想跟EAST模型的网络结构很像(详见文章:大话文字检测经典模型EAST)。人工智能

该模型结构有两个独立的头,一个用于文本/非文本预测(Text/non-text Prediction),另外一个用于链接预测(Link Prediction),这二者都使用了Softmax,输出1x2=2通道(文本/非文本的分类)和8x2=16通道(8个邻域方向是否有链接的分类)。

在论文中做者给出了两种网络结构:PixelLink+VGG16 2s和PixelLink+VGG16 4s 。其中conv2_2的feature map(特征图)大小为原图1/2,而conv3_3的feature map(特征图)大小为原图1/4,若是最后的输出部分是从conv2_2中汇聚出来,则为PixelLink+VGG16 2s,若是是从conv3_3中汇聚出来,则为PixelLink+VGG16 4s。

 

三、PixelLink实现过程

(1)Pixel定义

Pixel(像素)分为正像素(positive)、负像素(negative)。全部落在文本区域内的像素标记为正像素(positive),文本区域之外的像素标记为负像素(negative),多个文本交叠区域也标记为负像素(negative)。

(2)Link定义

Link是由两个Pixel双向决定的,对于一个给定的像素以及其临近的八个像素点,若是:

两个像素都是正像素(positive),则它们之间的Link为正链接(positive)

若是一个像素是正像素,另外一个是负像素,则它们之间的Link也为正链接(positive)

若是两个像素都是负像素,则它们之间的Link为负链接(negative)

(3)实例分割

对于Pixel(像素)、Link(链接)的预测结果,经过设定两个不一样的阈值获得pixel positive集合和link positive集合(如超过指定阈值,则判为positive,不然为negative),使用正链接将正像素分组在一块儿,产生CCs(conected compoents,连通域)集合,集合中的每一个元素表明的就是文本实例,每一个CC就表示检测到的文本实例,这就实现了文本的实例分割,以下图:

(4)提取文本框

经过对CC(连通域)集合使用OpenCV的连通域方法minAreaRect得到最终的连通域,此时每一个连通域都有本身的最小外接矩形,最后使用disjoint-set(并查集)方法造成最终的文本框,并查集主要用于将具备某种关联关系的集合进行合并的操做方法,以下图对集合的合并处理:

从这一步能够看出,文本边界框是直接从实例分割得到的,并非经过位置回归得到的,这是跟其它检测方法的区别。另外,对文本的方向没有限制,也便可实现多角度的检测。

(5)去除噪声

因为使用基于连通域的方法进行文本像素汇聚,该方法对噪声比较敏感,最终会产生一些比较小的错误连通域,所以,经过对长度、宽度、面积、长宽比等信息,根据必定的阈值进行去除处理。具体方法是,选择训练数据集中排在99%位的做为阈值,例如在IC15数据集中99%的文本实例短边≥10像素,99%的文本域面积≥300像素,所以,将短边小于10像素或面积小于300像素的看成错误连通域进行去除。

 

四、PixelLink检测效果

基于IC15数据集的检测效果,以下表所示:

能够看出,PixelLink在召回率(R)、准确率(P)、F分值(F)都要比EAST、SegLink、CTPN等方法的效果要好

 

PixelLink的检测效果,以下图所示,支持多角度的文本检测:

五、总结

(1)PixelLink采用纯分割的思路,彻底没有利用目标检测的方法,放弃了采用边界框回归的方法,而是进行实例分割,再直接生成边界框。PixelLink所有转化为分类任务,这样作的优点是训练更容易学习,训练速度更快,效果更好。

(2)PixelLink方法,只需对feature map(特征图)上的像素以及它相邻的像素进行预测,即每一个神经元只负责检测本身及其邻域内的状态,这就不须要大的感觉野就能把这些信息学到,对感觉野的要求少,所以也就更加容易学习,减小迭代次数。但也致使不能检测字与字之间相隔太远的文本(由于太远了Link不到)。

(3)不须要采用预训练模型,直接使用经过xavier(一种颇有效的神经网络初始化方法)随机初始化的VGG网络,在训练过程当中也不须要太多的数据,迭代次数也比较少。

(4)该方法适合于进行端到端的文字检测,直接输入图片,而后获得检测结果。

 

欢迎关注本人的微信公众号“大数据与人工智能Lab”(BigdataAILab),获取更多信息

 

推荐相关阅读

一、AI 实战系列

二、大话深度学习系列

三、图解 AI 系列

四、AI 杂谈

五、大数据超详细系列

相关文章
相关标签/搜索