美文网首页
2022-08-20 文本识别背景

2022-08-20 文本识别背景

作者: 破阵子沙场秋点兵 | 来源:发表于2022-08-27 13:32 被阅读0次

    引用1 自然场景文本检测识别 - 综述 - Part I

    目标检测

    目标检测任务,就是在图像中检测出物体的存在、位置与类别。目标检测的主流算法分为两步法和一步法两种。

    • 两步法
      在两步法中,我们需要首先找出目标存在的区域,再将该区域的内容识别出来。我们也可以理解为从一张大图片中先截出各个目标的小图片,再对小图片做图像分类任务。但实际操作中,由于检测目标的存在位置与小图片的识别都需要多层卷积神经网络得到的语义信息,因此这两个任务可以共享一个骨干卷积神经网络,得到了卷积层语义特征后,再分别用于后续的子任务。


      目标位置检测与识别共享骨干卷积神经网络

      在检测目标存在和位置的任务中,我们需要输出矩形目标框的位置,通常使用预设锚框的方法。我们对卷积层上的每个像素点,预设好几个不同大小和长宽比的目标框提案,我们称之为锚框。在Faster RCNN中,作者使用了三种大小和三种长宽比,一共九种锚框。这些锚框代表着我们预设的目标可能存在的区域。在骨干网络的基础之上,我们预测每个锚框对应于目标或背景的二分类概率和锚框相对于真实目标框的位置偏差。例如,Faster RCNN中额外增加3x3和1x1卷积层,最终的1x1卷积层使用6N个卷积核,N=9为锚框的种类数。对于每一个锚框,我们分别输出该锚框是目标和背景的概率(2N),该锚框与真实锚框中心位置在x和y方向的偏差(2N),和该锚框与真实锚框长和宽的偏差(2N)。拥有这些信息之后,我们便可以取概率大的锚框并修正其位置大小作为模型的预测结果。另外,除了预设锚框的方法以外,还可以直接预测每个像素点到目标框上下左右的距离。


      预设锚框,分别做目标背景二分类和锚框位置回归
      在得到了目标所在区域后,我们需要将该区域输入到识别网络做图像分类。然而,由于图像识别网络通常需要固定长宽的输入窗格,而目标区域的形状千差万别,我们需要将目标区域通过ROI Pooling或ROI Align转化为符合识别网络要求的大小。在这一过程中,我们通常保持目标区域的纵横比不变,确定缩放比例使得目标区域的长边与窗格的短边对齐,对于目标区域短边的方向则通过补零以对齐窗格。假设原目标区域比窗格大,在ROI Pooling中,窗格中的每一个格点对应原目标区域中多个格点,我们用极大值或平均值聚合再用极大值或平均值来聚合这多个格点的值;在ROI Align中,我们先将窗格中的格点坐标线性映射到原目标区域,由于映射后的点很可能不在目标区域的格点上,我们使用插值法得到该位置的值。
      预设锚框,分别做目标背景二分类和锚框位置回归
      在得到了目标所在区域后,我们需要将该区域输入到识别网络做图像分类。然而,由于图像识别网络通常需要固定长宽的输入窗格,而目标区域的形状千差万别,我们需要将目标区域通过ROI Pooling或ROI Align转化为符合识别网络要求的大小。在这一过程中,我们通常保持目标区域的纵横比不变,确定缩放比例使得目标区域的长边与窗格的短边对齐,对于目标区域短边的方向则通过补零以对齐窗格。假设原目标区域比窗格大,在ROI Pooling中,窗格中的每一个格点对应原目标区域中多个格点,我们用极大值或平均值聚合再用极大值或平均值来聚合这多个格点的值;在ROI Align中,我们先将窗格中的格点坐标线性映射到原目标区域,由于映射后的点很可能不在目标区域的格点上,我们使用插值法得到该位置的值。
    • 一步法
      两步法的目标检测通常准确性较好,但速度较慢。一步法省去了截取目标区域通过ROI输入识别网络的步骤,直接在预测目标框位置的同时,做目标的分类。例如,在YOLO中,我们依然预测目标框的概率和位置,但除此之外,模型还直接预测该目标对应于各个类别的条件概率。


      同时预测目标框位置、目标概率和各类别概率

    目标框筛选

    不论是两步法还是一步法,目标框预测网络在卷积层上的每一个像素点都会预测目标框,模型会输出大量的提案,我们如何从中提取有效的信息呢?在模型推断和训练时,这个问题有不同的答案。

    在推断过程中,模型输出了大量的目标框提案,我们可以通过设定目标概率阈值来筛选出对应于目标的提案。然而,还会存在多个目标框交叠在一起且同时对应于相同目标的情况。对此,我们采用Non-Maximum Suppression(NMS)方法进一步筛选。在NMS中,我们循环如下步骤:(1)选出当前剩余提案中目标概率最大的目标框提案,(2)剔除所有与这个目标框交叠大于阈值(0.7)的提案。由此可输出一系列交叠不多的目标提案。


    NMS去除交叠的对应同一目标的提案

    在训练过程中,我们需要设计损失函数,也就是模型预测与真实情况的差异,并最小化这一损失以提升模型效果。由于模型预测了大量的目标框而真实图像中只有少量的目标,绝大多数目标框对应于背景。通常实际操作中,我们以提案与真实目标框的交叠比例IOU(Intersection Over Union)作为指标,IOU等于二者交集与并集面积的商,认为IOU大于一定阈值(如0.7)的提案对应于目标(正样本),而其他提案对应于背景(负样本)。如果将所有负样本都计入损失函数,模型损失可能被负样本主导,训练出来的模型将善于识别背景而不是目标,这显然不是我们想要的。


    IOU计算示意
    为了解决这一类别不平衡问题,研究者们提出来各种方案,如仅计入IOU小于一定阈值(0.3)的负样本或为负样本设置小于1的权重等。在这里我主要介绍OHEM(Online Hard Example Mining),它是后续要讲的文本检测中常用的方法。在OHEM中,我们不计入所有对应于背景的目标框,而是仅仅从中选出一部分计入。选择的标准是模型输出的该框对应于背景的概率要低。换句话说,我们挑选出模型对于该框是背景最不确定的部分,即最难分辨的负样本计入损失函数,而忽略大多数简单的负样本。这些较难的负样本有利于模型提升对背景的判断能力,而忽略掉的简单提案则用处不大。正样本的损失则全部计入损失函数。具体操作中,我们先让所有目标框提案通过检测网络,输出目标背景二分类概率,然后利用标注选出负样本,接着我们对模型判断的背景概率做排序,选出概率最低的一部分,注意选择的过程中我们要使用NMS去除交叠太大的重复提案,最后用这一部分负样本和正样本一起重新再通过一遍检测网络,记录梯度以便后续学习。
    OHEM模型架构,所有目标框提案都通过第一道绿色的网络做前向传播,接着筛选出较难的负样本,与正样本一起再经过第二道红色的网络做前向和反向传播

    图像分割

    图像分割任务的与目标检测非常类似,目的在于找出图片中的各种目标。然而不同之处在于,目标检测需要输出矩形目标框,而图像分割需要找出所有对应于相同目标的像素点。


    图像分割任务

    图像分割任务同样需要卷积神经网络输出的深层语义特征,因此它通常也在骨干卷积网络的基础上,增加一个任务。以Mask RCNN为例,模型在识别网络增加一个子任务,用少量卷积层,对每一个目标类生成一个二值的mapping,判断每一个像素点是否属于该目标类。模型最后采用识别网络的识别结果类对应的mapping作为图像分割任务的输出。

    相关文章

      网友评论

          本文标题:2022-08-20 文本识别背景

          本文链接:https://www.haomeiwen.com/subject/rmzpgrtx.html