多种文本检测算法性能对比及算法介绍
(https://blog.csdn.net/qq_39707285/article/details/108754444)
Character Region Awareness for Text Detection
1. 关键点
先前的文本检测算法通常使用刚性单词级别的训练集去训练模型,导致这类算法在检测任意形状文本区域方面存在局限性。
本文设计了一种新的文本检测算法,通过检测每个字符和字符之间的联系来有效地检测文本区域。由于目前的文本检测数据集大多都是基于单词级别的,很少有基于字符级别的标注,为解决这个问题,本文使用合成数据生成字符级别的标注,并且训练过渡模型估计真实图像的字符级标注。
在6个基准数据集上进行了测试,都取得了SOTA(state-of-the-art),根据测试结果发现,该算法在处理复杂的场景文本(如任意方向的、弯曲的或变形的文本)时,能够保证高度的灵活性。
2. 算法
该算法的主要目标是在自然图像中精确地定位每个字符。通过训练一个深层神经网络来预测字符区域和字符之间的关系, 由于没有可用的公共字符级数据集,所以模型是以弱监督的方式训练的。
2.1 网络结构
采用基于VGG-16的全卷积网络结构,使用BN,为了聚集低层特征,在解码的部分使用跳层连接(类似于U-Net),最终输出两个分数图,region score和affinity score,具体结构如图2所示。
2.2 训练
2.2.1 生成GT
对于每张训练的图片,都需要生成字符级别的region score和affinity score标签,region score标签表示给定的像素是字符的中心点的概率,affinity score标签表示相邻字符之间空间的中心概率。
与其他分割算法不同的时,标签不是二值化的,而是用高斯热图编码的字符中心的概率。 这种热图在其他应用中也有使用,例如用在姿态估计中,因为它在处理不是刚性有界的GT区域时具有很高的灵活性。
图3介绍了合成图像的标签生成过程, 直接计算边界框内每个像素的高斯分布值是非常耗时的,由于图像上的字符包围框通常通过透视投影被扭曲,所以使用以下步骤来生成region score和affinity score的标签:
- 准备二维各向同性高斯图
- 计算高斯映射区域和每个字符box之间的透视变换
- 扭曲高斯图到box区域
这种生成GT的方式,即使使用小的接收域,也使模型能够检测大的或长的文本实例。
2.2.2 弱监督学习
和合成的数据集不同的是,大多数数据集都是基于单词级别标注的,所以设计了一个弱监督学习的中间模型,把单词级别的box变成字符级别的box,称之为伪标签,具体如图4所示。为了反映中间模型预测的可靠性,每个单词box上的置信度值按检测到的字符数除以真实字符数的值计算,作为训练时的学习权重。
图6是完整的字符级别标注的生成过程:
- 从原始图片中裁剪出标注框
- 用最新训练的模型预测区域得分
- 用分水岭算法分割字符区域
- 使用裁剪步骤的逆变换将字符box的坐标转换回原始图像坐标
最后region score和affinity score的伪标签使用图3的方式生成。
对于单词级别标注的训练数据中的样本 w w w,用 R ( w ) R(w) R(w)表示BB(bounding box),用 l ( w ) l(w) l(w)表示该单词的长度,通过字符分割程序,可以得到字符BB和其对应的长度 l c ( w ) l^c(w) lc(w),则样本 w w w的置信度 s c o n f w s_{conf}{w} sconfw计算方式为:
则该图片的像素级别的置信度map S c