文本检测算法损失函数汇总

前言

最近在研究文本检测算法的优化,想改一下EAST算法的损失函数。所以收集一下各个算法的损失函数。

CTPN

Anchor Softmax loss:该Loss用于监督学习每个Anchor中是否包含文本。(分类,用Softmax损失)
Anchor y coord regression loss:该Loss用于监督学习每个包含为本的Anchor的Bouding box regression y方向offset,类似于Smooth L1 loss。(位置回归,用Smooth L1损失)
Anchor x coord regression loss:该Loss用于监督学习每个包含文本的Anchor的Bouding box regression x方向offset,与y方向同理。前两个Loss存在的必要性很明确,但这个Loss有何作用作者没有解释(从训练和测试的实际效果看,作用不大)

EAST

文本检测算法损失函数汇总_第1张图片

分数图损失(score map loss)
论文中采用的是类平衡交叉熵,用于解决类别不平衡训练,避免通过 平衡采样和硬负挖掘 解决目标物体的不不平衡分布,简化训练过程,具体公式如下:

文本检测算法损失函数汇总_第2张图片
但是在具体实战中,一般采用dice loss,它的收敛速度会比类平衡交叉熵快
在这里插入图片描述

几何形状损失(geometry loss)
文本在自然场景中的尺寸变化极大。直接使用L1或者L2损失去回归文本区域将导致损失偏差朝更大更长.因此论文中采用IoU损失在RBOX回归的AABB部分,尺度归一化的smoothed-L1损失在QUAD回归,来保证几何形状的回归损失是尺度不变的.

SegLink

在这里插入图片描述
在这里插入图片描述为softmax loss,用于计算segments和links置信度的损失。
在这里插入图片描述为Smooth L1 regression loss

Textboxes

在这里插入图片描述
N是匹配ground truth盒子的默认盒子的数量,α设置为1,。我们采用的smooth L1损失函数作为Lloc的损失,2分类的softmax损失作为Lconf。

RRPN

在这里插入图片描述
在这里插入图片描述
使用的是log损失函数:分类损失。
在这里插入图片描述
采用的smooth L1损失:
在这里插入图片描述

Pixellink

在这里插入图片描述
整体损失函数分为pixel分类的损失和link分类的损失。由于pixel分类任务更重要,这里λ =2.0。
在这里插入图片描述
Pixel分类的损失如上面式子所示,L表示softmax_cross_entrop,W表示预测的pixel分类的权值矩阵,r表示负正样本比例,论文中r=3,S表示每个文本实例的面积。最终,当文本实例的面积比较大,占的loss损失就会被相对拉小,文本实例的面积比较小,占的loss损失就会被相对拉大。这样做的好处就是使得小的文本实例不会被大的文本实例的loss掩盖掉,也可以有loss回传。

同时pixel分类任务还使用了OHEM策略,每次回传S(正样本实例像素和)+r*S(负样本像素和)的loss,更加有利于分类任务的学习。这点改进比EAST中所有像素的loss都回传可以得到更好的分类结果,而不是像EAST那样,一个实例中间的像素分类的好,边缘的像素分类的差的情况。
在这里插入图片描述
Link分类的损失如上图所示。其中r表示负正样本比例,
在这里插入图片描述
L表示正负实例的分类损失。具体的表示为实例的pixel分类权值矩阵和

link的分类softmax_cross_entrop的乘积,W表示正负实例的pixel分类权值矩阵。
在这里插入图片描述
具体的W的计算表示为pixel分类权值矩阵和link分类矩阵基于每个通道的element_wise乘积。

MobileNetV3

categorical_crossentropy loss(交叉熵损失函数)

最后

可以看出大多数分类损失使用softmax损失,大多数位置回归使用Smooth L1 损失。

你可能感兴趣的:(机器学习)