TextSnake: A Flexible Representation for Detecting Text of Arbitrary Shapes

思想:

通过一系列同一中轴线的,有序的,重叠的圆盘来表示曲折的文本,其中,每个圆盘有可能变化的半径和方向

结构:

TextSnake: A Flexible Representation for Detecting Text of Arbitrary Shapes_第1张图片
S(t)={D0,D1,……,Di,……,Dn},其中,Di表示第i个圆盘,参数为D=(c,r,Θ)。其中,c为中心点坐标,r为圆盘的半径(主要体现在text的宽上),Θ为中心线与水平线的夹角

优点:

检测是通过一系列圆盘参数的预测及一条分割出来的中心线组成的,这种结构不但可以很好的表示任何曲折的文本,而且其可以为文本的重构做到形状精确和相对位置一致。同时,用中心线的方式,不会存在重叠的情况,可以很好的区分不同的text

步骤:

  1. 总体流程图:
    TextSnake: A Flexible Representation for Detecting Text of Arbitrary Shapes_第2张图片

网络先通过生成一个text region(TR)分割图与Text center line(TCL)分割图,通过TR对TCL做mask,得到Masked TCL,后通过Disjoint Set得到不同的text个例,最后,利用生成的radius, cosΘ,sinΘ得到最后的text区域

  1. 参数的生成

  2. TextSnake: A Flexible Representation for Detecting Text of Arbitrary Shapes_第3张图片
    网络的最后是输入大小长宽的1/2,w * h * 7的feature maps,其中,TR, TCL各自为两个通道的softmax,其他参数各自一个通道

  3. segmented TCL
    TextSnake: A Flexible Representation for Detecting Text of Arbitrary Shapes_第4张图片
    TextSnake: A Flexible Representation for Detecting Text of Arbitrary Shapes_第5张图片
    首先在实例分割的区域上任意取一点,根据该点可以做出该点的切线和法线。然后法线和实例分割的区域相交的中点就是该点中心化后的点。然后基于该点,分别左右各取一定步长:

( (1/2)r × cosθ; (1/2)r × sinθ) and (- (1/2)r × cosθ; - (1/2)r × sinθ)

这样左右各得到一个新的点,再基于这2个新的点做中心化,这样一直持续到TCL两端,最后每个点画圆,得到输出最终的文本曲框。
(因为去中心化的关系,Fig 2中每一个圆环中标出的中心,不满足在striding步骤中的步长公式( (1/2)r × cosθ; (1/2)r × sinθ) and (- (1/2)r × cosθ; - (1/2)r × sinθ))

  1. 过滤false positive 区域
    TCL区域的像素个数至少是平均半径的0.2倍。
    至少一半的像素在重建文本区域应该被分类为TR。

label的生成

TextSnake: A Flexible Representation for Detecting Text of Arbitrary Shapes_第6张图片
M为相邻点的余弦距离,将M中的数值两两相乘,乘积最接近-1 的,说明是头尾两端(平行但方向相反)。然后取头尾两端的中点作为字体骨架的两端。被该头尾分开的上下两端各取等量的散点,并将上下的散点连接起来,取连接线的中心点作为骨架点,将所有的中点连接起来,生成字体区域的骨架线。

后续再对骨架线的左右两端各缩小1/2rend的距离,rend表示TCL 在头尾两个端点处的半径。最后膨胀TCL区域1/5r,得到一个相对较宽的TCL区域。因为单独的一个点对于噪声是比较敏感的。

r是中心线上的点到对应的边的距离,Θ是与相邻点的夹角

你可能感兴趣的:(文本检测)