TextSnake: A Flexible Representation for Detecting Text of Arbitrary Shapes

思想:
【TextSnake: A Flexible Representation for Detecting Text of Arbitrary Shapes】通过一系列同一中轴线的,有序的,重叠的圆盘来表示曲折的文本,其中,每个圆盘有可能变化的半径和方向
结构:
TextSnake: A Flexible Representation for Detecting Text of Arbitrary Shapes
文章图片

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
    文章图片
网络先通过生成一个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
    文章图片

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

    TextSnake: A Flexible Representation for Detecting Text of Arbitrary Shapes
    文章图片

    首先在实例分割的区域上任意取一点,根据该点可以做出该点的切线和法线。然后法线和实例分割的区域相交的中点就是该点中心化后的点。然后基于该点,分别左右各取一定步长:
( (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
文章图片

M为相邻点的余弦距离,将M中的数值两两相乘,乘积最接近-1 的,说明是头尾两端(平行但方向相反)。然后取头尾两端的中点作为字体骨架的两端。被该头尾分开的上下两端各取等量的散点,并将上下的散点连接起来,取连接线的中心点作为骨架点,将所有的中点连接起来,生成字体区域的骨架线。
后续再对骨架线的左右两端各缩小1/2rend的距离,rend表示TCL 在头尾两个端点处的半径。最后膨胀TCL区域1/5r,得到一个相对较宽的TCL区域。因为单独的一个点对于噪声是比较敏感的。
r是中心线上的点到对应的边的距离,Θ是与相邻点的夹角

    推荐阅读