论文解读|[CVPR2021]Progressive Contour Regression for Arbitrary-Shape Scene Text Detection

动机

作者认为现在的解决文本检测的方法都是自下而上的建模方式,都是基于像素级、小组件,因此会对噪声比较敏感,且依赖于复杂的启发式后处理操作。

网络框架

网络处理步骤

1. 特征提取:图片送入“特征提取和增强”模块(CNN+FPN)拿到多层次融合的特征图 F_{e} ,步长为4;

2. 水平建议生成模块:生成“水平文本框”。用“中心点热图”和“大小热图”预测水平文本框的中心点和大小;

3. 定向文本建议生成模块:对上一步生成的“水平文本框”的角点进行回归,生成定向文本框(倾斜的文本框);

4. 任意形状文本轮廓生成网络:对上一步生成的“定向文本框”进行细化,生成任意形状的文本框。

水平文本建议生成模块

通过两个卷积模块对 F_{e} 进行卷积得到中心热图(center heatmap)和大小热图(size heatmap)。

定向文本建议生成模块

主要作用:对“水平边界框”的角点进行回归,生成“定向文本框”。

1. 沿着“水平边界框”的边界均匀采样N_{0}=64个点 X。(训练时用的是 ground-truth 的水平文本框,测试时预测框);

2. 使用 CLM(轮廓定位机制)来估计这些采样点(X)的新位置。

3. 角点生成模块 将每个文本框的角点计算为:X^{'}[i * \left \lfloor \frac{N_{0}}{N_{c}} \right \rfloor]N_{c}=4表示角点的数量。

CLM

1. CLM 中有一个 CFE(轮廓特征提取器),根据采样点X(x_{i})从特征图F_{e}中获取采样点的特征F^{sem}\in R^{N_{0}\times D_{e}}D_{e}=64。(F^{sem} 叫做语义特征)

2. 考虑轮廓点的位置信息 F^{loc}\in R^{N_{0}\times 2}:计算为:F^{loc}_{i}=X_{i}-X_{min}X_{min}表示轮廓点的最左上角坐标。

3. F^{sem} + F^{loc} 生成 原始轮廓特征 F_{c}\in R^{N_{0}\times (D_{e}+2)}

4. 轮廓上有一些点时多余的,因此,F_{c} 输入到 CIA 做一些特征强化,生成更具代表性的边界框特征 F_{cia}\in R^{N_{0}\times D}

5. F_{cia}\in R^{N_{0}\times D}送入 OPH(偏移预测头)生成角点的偏移量O\in R^{N_{0}\times 2}。OPH 由3个 1x1 卷积组成,前两层有 Relu,滤波器数量分别为256,64,2。

6. 新的角点 {X}'=X+O

注意:CLM 中的OPH 用来预测点的偏移,输入的是角点预测的就是角点的偏移,输入的是轮廓点预测的就是轮廓点的偏移。

CIA 

\widetilde{R}_{u}\in \mathbb{R}^{N\times (N_{g}+1)}

主要作用:由F_{c}得到F_{cia},丰富轮廓的特征表示。

流程:特征 F_{c} 一次走 9x9 的 CirConv(输出128维,有128个滤波器)--Relu--BN 和 7个CIA Unit(三种不同的空洞率:1,2,4。输出维度为N\times D_{u}D_{u}=128,N是点的数量,即 N_{0}),然后将四组特征进行 cat 得到特征 C,之后走一个 1x1 conv 和 maxpool 得到特征 P,最后特征 C 和 P 做一个 feature distributed 即可得到F_{cia}

CIA Unit

输入到 CIA Unit 的特征 F_{u} 被扩张循环卷积沿着闭合轮廓的点的循环行编码:生成特征F^{a}_{u}\in R^{N\times D_{u}}F^{b}_{u}\in R^{N\times D_{u}}F^{c}_{u}\in R^{N\times D_{u}}。N是轮廓点数量,D_{u}表示特征维度。

对于轮廓特征 F^{b}_{u},由于轮廓点的冗余性和噪声,我们只使用 N_{g} 局部汇聚节点来收集沿着轮廓的的信息。轮廓的全局上下文,也可以看作是一个全局语义汇聚节点。F^{b}_{u} 与局部汇聚节点的特征联级,形成聚合特征 F^{bg}_{u}\in R^{(N_{g}+1)\times D_{u}}

F^{bg}_{u}=[\mathcal{P}_{max}(F^{b}_{u});\phi (F^{b}_{u},N_{g})]

其中,\mathcal{P}_{max} 表示最大池化操作,\phi 表示特征收集操作,它是通过无参数策略实现的,例如自适应平均池化。

同理,从F^{c}_{u} 中得到聚合特征 F^{cg}_{u}\in R^{(N_{g}+1)\times D_{u}}

轮廓点和汇聚节点之间的相关性 \widetilde{R}_{u}\in \mathbb{R}^{N\times (N_{g}+1)} 可以表示为

R_{u}=\frac{1}{\sqrt{D_{u}}}F^{a}_{u}\cdot (F^{bg}_{u})^{T}, \widetilde{R}^{ij}_{u}=\frac{R^{ij}_{u}}{\sum ^{N}_{i=1}R^{ij}_{u}}

\widetilde{R}^{ij}_{u} 表示第 i 个轮廓点和第 j 个汇聚节点之间的关系。因此,汇聚节点特征被分布到轮廓点,生成聚合特征 {F}'_{u}\in \mathbb{R}^{N\times D_{u}}

{F}'_{u}=F_{u}\oplus \widetilde{R} _{u}\cdot F^{cg}_{u}

\oplus 表示元素相加。

任意形状文本轮廓生成网络

主要作用: 对定向文本框进行细化。

1. 在定向文本框上初始化 N_{a}=128 个点(训练时:定向文本框是 ground-truth; 测试时:定向文本框是定向文本建议生成模块的结果);

2. 使用 K 个 CLM 对 N_{a} 个初始点进行优化,使其贴近文本。

3. 可能有假正例,使用 RCLM(可靠的轮廓定位机制)对回归的点进行过滤。增加检查到的轮廓的置信度。

4. RCLM 输出:最终的轮廓点位置\widehat{X}^{final}\in \mathbb{R}^{N_{t}\times N_{a}\times 2} 以及轮廓置信度S \in \mathbb{R}^{N_{t}\times 2}

RLCM

相较于 CLM,RCLM 中多了一个 CSM(轮廓评分机制)。

1. 与 CLM 相同,轮廓点输入 CFE(轮廓特征提取器)获取轮廓特征F_{c}F_{c} 经过 CIA 得到 F_{cia}

2. F_{cia} 送入 OPH 生成轮廓点新坐标 \widehat{X}^{final},同时送入 CSM 生成轮廓评分 S

S=\varphi (F_{cia};\Theta _{csm})

\varphi 表示轮廓评分网络,\Theta是网络参数。在 \varphi 中

1. F_{cia} 首先经过一个1x1 卷积(256个滤波器)得到特征表示 F_{csm}

2. 用平均池化操作 \mathcal{P}_{avg} 和最大池化操 \mathcal{P}_{max} 作生成全局特征表示 {F}'_{csm} 

{F}'_{csm}=\left [ \mathcal{P} _{avg}(F_{csm});\mathcal{P} _{max}(F_{csm}) \right ]

 3. 最后,三个全连接层(隐藏尺寸为:512、256和2)和一个 softmax 层,生成文本/非文本的最终轮廓得分。

注意:前两个全连接层配备有 LeakyReLU-BN-Dropout

猜你喜欢

转载自blog.csdn.net/qq_44950283/article/details/134801283