图片中字符级别的定位(论文阅读笔记)

WordSup: Exploiting Word Annotations for Character based Text Detection

主要思想是,现存的字符级别的标定太少,引入弱监督来调整字符坐标的定位。
分为2大部分,character detector部分,得到的输出是字符对应的坐标。Text structure analysis部分,得到的是词的坐标(如果为词)。

WordSup整体结构

1 Character Detector部分

Character Detector网络结构

该部分有两部分组成。Basic Character Detector部分和利用词坐标对字符坐标进行监督更新的部分。

1.1 Basic Character Detector

Basic Character Detector部分可以看作为预训练。网络设置如下:

  1. 预测使用原图1/4的尺寸的特征(因为很多情况文字在图片中的比例太小)。
  2. 将高层特征与底层特征融合,借鉴FPN,使用eltsum将两层的特征求和。(需要参数少)
  3. 最终的feature用于同时预测是否为文本(01)和标定框坐标回归。生成5k=(1+4)k个score map。1为是否为文本,4为坐标回归。K为anchor。K=3代表对角线长度为24、26、12像素的字符。字符的对角线是anchor的0.7~1.4的,视为正样本。(此处不是很明白,一个feature的像素对应5*3个label?)
  4. Two-level hard negative example mining approach:用于减少背景干扰,1)online hard negative mining,所有的正样本用于计算loss,负样本中只有top2评分的计算loss,正负比例为3:1。2)hard patch mining,当前模型的false positive样本在后续中增加采样的概率。
  5. 样本正负比例1:1。正样本为随机字符和anchor的裁剪,加入随机缩放和旋转。
  6. 10k次迭代后,加入hard patch mining,负样本中比包含当前的false positive样本。
  7. 多尺寸的图片,2{0,-1,-2,-3,-4,-5},用IoU阈值为0.5的NMS非极大值抑制来选择最终字符,因为anchor=3,此处必不可缺。

1.2 依据词坐标对字符坐标进行调整

Basic Character Detector训练一段时间后,在依据词坐标对字符坐标进行调整。词坐标做监督的部分主要为两步:

1)利用字符模型,自动依据词坐标生成Character mask;
2)用Character mask来更新词模型。此部分仅在训练阶段存在。

下面对两步进行展开:

1.2.1 生成Character mask:
  1. 根据当前字符模型,在词标定框中生成候选字符。
  2. 依据式(1)最大化,在候选字符中选择真实字符。
    式1
    Bchars B c h a r s 为选择字符的标定框, Banno B a n n o 为词标定框,area(.)为面积, λ1 λ 1 λ2 λ 2 为选择字符中心坐标的协方差矩阵的第一第二大的特征值,w=0.5为权重。 s1 s 1 偏好选择的字符在词中占比例大, s2 s 2 偏好所有的字符在同一条直线上(s->max, λ2/λ1->min, λ2->min,即λ1>>λ2也就是说协方差只在一个方向上大)。
  3. s最大化方法为:
    1) 利用式(2)计算出所有候选字符之间knn聚类后的pair weights,得到字符图G。
    式2
    d¯ d ¯ 为knn节点之间的所有距离均值, ti t i 为候选字符 i i 的是否为字符的评分。
    2)用字符图G得到最大生成树M。消除M中的一个边相当于是将字符分成2组。每一次分组我们选择式(1)计算的最大分数对应的组。贪婪分组,直到式(1)分数不再增加。

1.2.2 字符网络更新

损失函数为式(3)
式3
L是一般的损失,s为式(1)的评分。

2 Text Structure Analysis

在上一步完成之后,再对得到的字符定位进行结构分析。首先是对字符进行聚类,再用个line model描述line,再讲line分成词。

2.1 字符聚类

将字符聚类成为一行或者一块。此处用一个更高维的损失,可以衡量3个字符之间的关系。且处理有方向的、变形的文本。

首先,用字符对作为knn的节点,字符对通过小空间距离(字符中心坐标的欧式距离和对角线长度)确定。图边为两对有共同字符的字符对。用unary损失即可描述字符与文本类型的关系,用贪婪损失最小实现字符聚类。

unary损失(对应为图中的点)为:
式4
nl nr n r 为一个字符对中的两个字符,p(.)为是否为文本的评分,d(.)为欧式距离。
Pairwise损失(图的边)为:
式7
θ(m,n) θ ( m , n ) 为字符对m和n的角度距离。

2.2 line model的估计和矫正

2.2.1 line model 估计

对于每一个字符组,用3个复杂度的line model去fit。0-order model为水平或者竖直的line model。1-order为任意角度的有方向的line。Piecewise linear model为代表一个text line的受限的多边形。

Text line是可表示为一组中心线 lin(i=1) l i ( i = 1 ) n 和一个高度值h, li=(ai,bi,ci) l i = ( a i , b i , c i ) 代表为 aix+biy+ci=0 a i x + b i y + c i = 0 的直线。对于0-order和1-order模型,用text line中全部的字符中心坐标估一个直线即可。Piecewise linear model需要为每一个字符分开估计N个线,用k=min(n,11)近邻(n=N,字符个数)。hP为所有字符的顶点坐标,d(P, l_i)为p到直线l_i的距离。

模型的选择为最小化:
式6
hm h m 为模型m的高度,越小说明拟合越好。 Cm C m 为模型m的复杂度惩罚,0-order、1-order和piecewise对应为1、1.2、1.4。

2.2.2 矫正

Line model确定了之后,需要将text line 矫正为32*W的带状图像。
1. 计算代表text line的多边形。每一个字符估计两个control point,对称落在中心线两边,两点连线过字符中心点。Control point为多边形边缘。
2. 用TPS做矫正,顶点作为控制点。

2.2.3 词分隔

并不是必要的,只是为了方便后面识别。
CNN-RNN(LSTM)做词空格检测,并以此作为词分隔。输入为矫正过的text line image。Conv1_1~conv3_3为7层卷积,得到特征图为1/4的原图尺寸。BLSTM为水平方向的预测,标签为是否是词分隔。

BLSTM


Text-Attentional Convolutional Neural Network for Scene Text Detection

主要思想是尽可能多的给模型相关的辅助标签。
首先使用CE-MSERs在图片中检测出候选字符元素,再使用Text-CNN筛除不是字符的元素。Text line合并。

1 CE-MSERs

为Contrast-Enhanced MSERs,解决了两个方面的MSERs的不足:1、背景干扰使得字符没有检测到;2、低对比度低质量的字符没有被检测到。解决方案如下:

  1. 文本区域内加强局部稳定性,即为加强区域的对比度。

    • 聚类,全图依据对比度和空间特征聚类
    • 融合所有因素形成contrast region
      该方法可以加强显著大区域的对比度,但是会抛弃掉小的元素
  2. 增强小区域的对比度

    • 计算non-contrast region的主要颜色
    • 用色彩空间平滑方法,在目前non-contrast region内得到contrast region
  3. 1和2生成的contrast region map共同作用于原图,得到候选元素。
    CEMSER
    [49] H. Fu, X. Cao, and Z. Tu, “Cluster-based co-saliency detection,” IEEE Trans. Image Processing (TIP), vol. 22, no. 10, pp. 3766–3778, 2013.
    [50] M.-M. Cheng, G.-X. Zhang, N. J. Mitra, X. Huang, and S.-M. Hu, “Global contrast based salient region detection,” 2011, in IEEE Computer Vision and Pattern Recognition (CVPR).

2 Text-CNN

多层强监督,需要label包括:text region segmentation、character label和binary text/non-text。是否为text为主模型,其他俩为辅助模型。

  1. 训练过程为multi-task learning(MTL),整体的损失函数看为式(2)
    式2
    加号右边为辅助任务,是否为text分类、字符标签分类和字符区域回归的损失如下:
    式345
    输入图像为 xiR(32×32×3) x i ∈ R ( 32 × 32 × 3 )
    是否为text分类 ybi={0,1}R2 y i b = { 0 , 1 } ∈ R 2
    字符标签分类 yli={0...9,A...Z,a...z}R62 y i l = { 0...9 , A . . . Z , a . . . z } ∈ R 62
    字符区域回归 yri={0,1}R32×32 y i r = { 0 , 1 } ∈ R 32 × 32 大小与输入图像一致,模型估计的是每一个像素为字符的概率。辅助任务只在训练过程中有。

  2. 结构图:
    structure
    有3层卷积,2层全连接,第2层卷积后面跟一个max pooling。第2层卷积之后分支出来,两层反卷积后得到32×32概率map。

  3. 只用一个pooling是因为,pooling层是以牺牲空间信息为代价减少模型系数和复杂度,此处输入很小,不需要过多pooling。

  4. pooling不可逆,所以分支在pooling之前
  5. 训练过程从两个辅助任务开始,回归任务停止后再开始主任务。可以将辅助任务看作为是模型的预训练。

3 Text line 合并

  1. 相邻的元素组成字符对,根据水平位置、高度和方向等
  2. 字符对合并,如果包含同一个元素,且方向相同
  3. 根据字符之间的距离,text-line分为很多词

Text Flow: A Unified Text Detection System in Natural Scene Images

整体来说分为2步,用候选字符检测得到很多的字符框标定,然后通过最小化整体cost,同时完成筛选字符、找同一个text line的字符的工作。
main

1. 候选字符检测

参考X. Chen and A. Yuille. Detecting and reading text in natural scenes. In Computer Vision and Pattern Recognition (CVPR), pages 366–373, 2004. 2, 3

  1. 移动窗口的快速级联Adaboost。
    adaboost
  2. 此处特征只有6个:pixel intensity(像素取值)、水平和垂直的梯度、二阶梯度。(论文中说6个,但是看出来只有5个啊?)。
  3. 每一个像素都计算特征,窗口内的所有特征串联得到的特征向量,用于训练。此处在移动窗口中忽略大块的pattern。
  4. 正样本为标定的字符框,负样本为bootstrap过程中的误判。
  5. 此处的字符被看作为一个整体
  6. 检测的字符和标定IoU>0.5就算正样本,

2. Min-cost flow 网络

Flow network由source、sink、nodes和edges组成。每一个Edge 有flow cost和flow capacity表示flow通过这个边的成本和能否通过。Min-cost flow是指,一个flow从source到sink所需要的最小cost。Nodes代表候选字符,flows代表text line。

Network要解决4个问题:
1) 字符置信度
2) transition constraint(保证数据不会进入一个不可能的状态的限制)
3) 相邻字符的cost
4) 选择一个字符作为开始和重点的概率

前提假设:text line水平、从左到右,

提取text line 的任务可以用最小化cost来表示,四个cost为:
1) data cost:为字符的置信度
2) pairwise smoothness cost:两个相邻的字符为同一个text line的可能性
3) entry & exit cost:每个字符链接source和sink的cost
flow
Smoothness cost对应的是连接两个相邻字符的边,每个字符都连接着source 和sink。

2.1 transition constraint

每一个字符A,下一个与其相邻的字符B的判定:
1. A和B之间的水平距离满足 H(A,B)/min(WA,WB)<TH H ( A , B ) / m i n ⁡ ( W A , W B ) < T H ,此处 TH=2 T H = 2
2. A和B的竖直距离满足 V(A,B)/min(WA,WB)>TV V ( A , B ) / m i n ⁡ ( W A , W B ) > T V TV=0.6 T V = 0.6
3. A和B的尺寸相近程度满足 |(WAWB)|/min(WA,WB)<TS | ( W A − W B ) | / m i n ⁡ ( W A , W B ) < T S TS=0.2 T S = 0.2
阈值的选择需要靠训练数据集情况选择。
transition constraint

2.2Flow network costs

详细展开4个cost

2.2.1 data cost

C1(A)=p(Text|A) C 1 ( A ) = − p ( T e x t | A )
A为候选字符图片, p(Text|A) p ( T e x t | A ) 为A是为文本的概率。高的置信度对应text flow通过的cost低。
此处概率来自一个CNN分类网络,3层conv + max pooling + normalization,后加2层全连接和一个softmax。训练使用Adaboost生成的样本,IoU>0.5的为正样本。

2.2.2 smoothness cost

C2(A,B)=αD(A,B)+(1α)S(A,B) C 2 ( A , B ) = α ∗ D ( A , B ) + ( 1 − α ) ∗ S ( A , B )
D(A,B) D ( A , B ) 为字符A和B中心的欧氏距离(nomalized by 他们窗口宽度的均值)。 S(A,B) S ( A , B ) 为A和B的大小的差别, S(A,B)=|(WAWB)|/min(WA,WB) S ( A , B ) = | ( W A − W B ) | / m i n ⁡ ( W A , W B )
C2 C 2 大则说明A和B不像是相邻字符。此处 α α 不敏感,可为[0.3,0.5],此处设为0.4。

2.2.3 entry & exit cost

每一个字符都有可能连接source和sink,但是有不同的概率。
Entry cost为:
Cen(A)=maxjC1(j)
j j 代表所有能够到达A字符的字符(能够到达用transition constraint判断)。如果没有字符能到达A的Cen(A)=0
Exit cost中的j表示为A字符能够到达的字符集合。
此处, Cen(A) C e n ( A ) 不仅取决于A的空间位置,也取决于于其相关联的字符的置信度。

2.3Min-cost flow network 整体

2.3.1 全局损失公式

整个网络偏好组成的候选字符为有相近的大小、距离挨着比较近、判定为字符的置信度比较高。
式4
C1(i) C 1 ( i ) 为候选字符i的data cost, C2(i,j) C 2 ( i , j ) 为候选字符i和j的smoothness cost, Cen(i) C e n ( i ) Cex(i) C e x ( i ) i i 的entry cost和exit cost。
fi为过判断是否为字符的edge的flow数, f(i,j) f ( i , j ) 过pairwise edge的flow数, f(en,i) f ( e n , i ) 为过source到点 i i 的flow数,f(i,ex)为过点 i i 到exit的flow数。f均为0或1。
Γ为所有从source到sink的所有可行路径。
β β 不敏感,可为[1.5,2.5],此处设为2。

2.3.2 min-cost flow algorithm

如何求解单个flow的min-cost见A. V. Goldberg. An efficient implementation of a scaling minimum-cost flow algorithm. Journal of algorithms, pages 1–29, 1997. 5, 6
本network整体求最优的过程如下:

alg1
2.2.2中α的设置和2.3.1中 β β <script type="math/tex" id="MathJax-Element-77">β</script>的设置,正确text line使得cost为负。
注意,在min-cost对应的那个flow中的那些字符,如果其他候选字符跟他们之间的iou>0.5,要删除那些候选字符。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值