首页 > 编程知识 正文

软件工程技术,如何用java开发sdk

时间:2023-05-06 08:40:00 阅读:46697 作者:2470

2021SC@SDUSC

目录

一、前情回顾和背景介绍

1.1 PP-OCR字符识别策略评述

1.2 PP-OCRv2背景

1.3PP-OCRv2概述

二、PP-OCRv2战略介绍

2.1新战略概述

2.1.1文本检测器新策略

2.1.2文本识别器的新策略

2.2新战略详情

2.2.1文本检测器

2.2.2文本识别器

三. PP-OCRv2的实验测试和结果

总结

一、前情回顾和背景介绍1.1 PP-OCR文字识别策略回顾

战略选择主要用于提高模型的能力和减小模型的尺寸。 以下是PP-OCR字符识别装置采用的9个策略。

轻型主干,采用Mobiqrdg3 large x0.5,比较精度和效率; 数据增强,基本数据授权(BDA )和TIA ) Luoetal.2020 ); 分析特征图、适应多语言识别、对特征图进行下采样步幅修正,以降低余弦学习率,有效提高模型的文本识别能力; 归一化参数、权重衰减避免过拟合; 学习率预热使用同样有效的全连接层将序列特征编码为预测字符,减小模型尺寸的轻型头部; 预训练模型跳过在像ImageNet这样的大数据集上训练的、能够实现更快收敛和更好精度的PACT量化、LSTM层; 1.2 PP-OCRv2背景

光学字符识别(0CR )系统广泛应用于各种应用场合。 设计0CR系统仍然是一项具有挑战性的任务。

在以前的工作中,我们提出了实用的超轻级OCR系统(PP-OCR )来平衡精度和效率。 为了提高PP- OCR的准确性,保持效率,本文依据Paddle Paddle公式

文档提出的一种更鲁棒的OCR系统,即PP -OCRv2。

        PP -OCRv2引入了一系列技巧来训练更好的文本检测器和更好的文本识别器,其中包括协作互学习(CML)、 CopyPaste, 轻量级CPU 网络(PP-LCNet)、统一深度互学习(U-DML) 和增强CTCLoss 。
        在真实数据上的实验表明,在相同的推理成本下,PP-0CRv2的精度比PP-0CR 高7%。 它也可以与使用ResNet系列作为主干的PP-OCR 的服务器模型相媲美。上述所有模型都是开源的,代码可在GitHub 存储库PaddleOCR中找到。

1.3  PP-OCRv2的简介


        OCR (Optical Character Recognition) ,如图1所示,经过近二十年来的深入研究,具有多种应用场景,如证件电子化、身份认证、数字金融系统、车牌识别等。在实际构建OCR系统时,不仅要考虑精度,还要考虑计算效率。

        在之前,我们提出了-种实用的超轻量级0CR系统(PP-OCR) (Du et al. 2020) 来平衡精度和效率。它由文本检测、检测框校正和文本识别三部分组成。可微二值化(DB) (Liao et al. 2020a) 用于文本检测,CRNN (Shi, Bai, and Yao 2016) 用于文本识别。系统采用19种有效策略对模型进行优化和瘦身。为了提高PP-0CR的准确性并保持效率,在本文中,我们介绍一种更强大的OCR系统,即PP- -0CRv2。它引入了一系列技巧来训练更好的文本检测器和更好的文本识别器。图2说明了PP-0CRv2 的框架,大多数策略遵循PP-0CR,如绿框所示。这橙色框中的策略是PP- 0CRv2中的附加策略。

 

         
 

二、PP-OCRv2策略介绍

2.1  新增策略简介 2.1.1  文本检测器新增策略

        在文本检测中,引入了协作互学习(CML) 和CopyPaste。CML.利用两个学生网络和一个教师网络来学习更强大的文本检测器。CopyPaste 是一种新颖的数据增强技巧,已被证明可有效提高对象检测和实例分割任务的性能(Ghiasi 等人,2021 年)。我们表明它也适用于文本检测任务。

2.1.2  文本识别器新增策略

        在文本识别方面,引入了轻量级CPU网络(PP-LCNet)(Cui et al. 2021)、 Unified-Deep Mutual Learning (U-DML) 和CenterLoss。PP-LCNet是-种新设计的基于Intel CPU的轻量级主干网,它是从Mobiqrdg1 (Howard et al. 2017)修改而来的。U-DML利用两个学生网络来学习更准确的文本识别器。CenterLoss 的作用是放松相似人物的失误。我们进行了一系列消融实验来验证上述策略的有效性。此外,图2中灰色框中的策略被证明在PP-OCR 中是有效的。但这些都没有在本文中得到验证。将来,我们将采用它们来加快PP- OCRv2 - tiny中的推理速度。

2.2  新增策略详解 2.2.1  文本检测器

Col laborative Mutual Learning (CML)

        PP-OCRv2提出了CML方法(Zhang et al. 2017) 来解决文本检测蒸馏的问题。

        蒸馏有两个问题: 1. 如果teacher model的准确率接近student model,一般蒸馏方法带来的改进是有限的。2.如果teacher model的结构和student model的结构有很大的不同,一般的蒸馏方法带来的改进也很有限。
        框架组成:是由多个分别命名为student model和teacher model的模型组成的超级网络,如图3所示。CML方法可以实现蒸馏后student model的准确率超过teacher model在文本检测中的准确率。
        流程简介:在CML中,两个student model使用DML.方法相互学习(Zhang et al. 2017)。同时,有一个teacher model来指导两个student model的学习。teacher model使用ResNet18 作为主干,student model使用规模为0. 5的MobinenetV3 大型模型作为主干。
        优化student model:CML旨在优化student model模型。teacher model的参数被冻结,只有student model以设计的损失进行训练。一般来说,student model的监督信息包含三个部分,包括groundtruth标签、另一个student model的后验熵和teacher model的输出。相应地,存在三个损失函数,包括groundtruth loss Ls时、student model的peer loss L和distill teacher model L的损失。

        地面实况损失,称为GTLoss, 是为了确保训练受到真实标签的监督。我们使用DB算法(Liao et al. 2020b)来训练子学生模型。因此,ground truth loss L是一个组合损失,由概率图lp的损失、二值图lb,的损失和阈值图lt的损失组成)遵循DB。GTLoss的公式如下,其中lp、lb和lt分别是二元交叉熵损失、Dice损失和L1损失。a、 β分别是默认值5和10的超参数。

        子学生模型参考DML 方法相互学习(Zhang et al.2017)。但与DML.不同的是,子学生模型在每次迭代中同时训练,以加快训练过程。KL散度用于计算学生模型之间的距离。学生模型之间的peer loss如下,

        distill损失反映了教师模型对子学生模型的监督。教师模型可以为学生模型提供丰富的知识,这对于提高性能很重要。为了获得更好的知识,我们扩大了教师模型的响应概率图以增加对象区域。这个操作可以稍微提高教师模型的准确率。蒸馏损失如下,其中lp、lb和lt分别是二元交叉熵损失、Dice损失。y 是超参数默认为5。fm是核为矩阵[[1, 1], [1, 1]] 的扩张函数。

        最后,在训练PP- 0CR检测模型的CML方法中使用的损失函数如下:


CopyPaste

        CopyPaste是一种新颖的数据增强技巧,已被证明可有效提高对象检测和实例分割任务的性能(Ghiasi 等人,2021 年)。它可以合成文本实例来平衡训练集中正负样本的比例,这是传统的图像旋转、随机翻转和随机裁剪无法实现的。由于前景中的所有文本都是独立的,CopyPaste 将文本粘贴在随机选择的背景图像上而不会重叠。图4是CopyPaste的示例

 

 

2.2.2  文本识别器

Lightweight CPU Network (PP-LCNet)


        轻量级CPU网络(PP-LCNet) 为了在Intel CPU上获得更好的精度-速度权衡,我们设计了一个基于Intel CPU的轻量级主干网,在启用mkldnn 的情况下提供更快、更准确的OCR识别算法。整个网络的结构如图5所示。与Mobiqrdg3 相比,由于Mobiqrdg1的结构使得在Intel CPU上启用
MKLDNN时更容易优化推理速度,因此网络基于Mobiqrdg1 (Howard et al. 2017) ).为了让Mobi qrdg1有更强的特征提取能力,我们对其网络结构做了一些改动。改进策略将从以下四个方面进行说明。

更好的激活功能。为了增加Mobi qrdg1的拟合能力,我们替换了激活在原始ReLU的H-Swish网络中的函数,它可以带来准确度的显着提高,而推理时间仅略有增加。 SE模块在适当的位置。SE (Hu, Shen, and Sun 2018)模块自提出以来已被大量网络使用。它是一种对网络通道进行加权以获得更好特征的好方法,被用于许多轻量级网络,例如Mobiqrdg3(Howard et al.2019)。但是,在Intel CPU上,SE模块增加了推理时间,因此我们无法将其用于整个网络。事实上,通过大量的实验,我们发现越靠近网络尾部,SE模块越有效。所以我们只需将SE模块添加到网络尾部附近的块中。这会导致更好的精度-速度平衡。SE模块中两层的激活函数分别是ReLU和H- Sigmoid。更大的卷积核。卷积核的大小往往会影响网络的最终性能。在mixnet(Tan and Le 2019) 中,作者分析了不同大小的卷积核对网络性能的影响,最终在网络的同一层混合了不同大小的核。然而,这种混合会减慢模型的推理速度,因此我们尝试在推理时间增加尽可能少的情况下增加卷积核的大小。最后,我们将网络尾部卷积核的大小设置为5 5。GAP后更大尺寸的1xl 卷积层。在PPLCNet中,GAP后网络的输出维度很小,直接连接最终分类层会丢失特征的组合。为了赋予网络更强的拟合能力,我们将一个1280维大小的1x1 conv 连接到最终的GAP层,这将在不增加推理时间的情况下增加模型大小

        通过这四项更改,模型在ImageNet上表现良好。

Unified-Deep Mutual Learning (U-DML)

        统一深度互学习(U-DML) 深度互学习(Zhang et al.2017)是一种方法,其中两个student网络相互学习,知识提炼不需要具有预训练权重的更大的教师网络。

 

        在DML 中,对于图像分类任务,损失函数包含两部分: (1) 学生网络和groundtruth之间的损失函数。(2) 学生网络输出软标签之间的Kullback-Leibler散度(KL-Div) 损失。
        Heo提出了OverHaul (Heo et al. 2019), 其中学生网络和教师网络之间的特征图距离用于蒸馏过程。对学生网络特征图进行变换以保持特征图对齐。为了避免太耗时的教师模型训练过程,在本文中,基于DML, 我们提出了U-DML, 其中特征图也在蒸馏过程中受到监督。图6显示了U-DML. 的框架,过程有两个网络:学生网络和教师网络。它们具有完全相同的网络结构,但具有不同的初始化权重。目标是对于相同的输入图像,两个网络可以得到相同的输出,不仅对于预测结
果,对于特征图也是如此。
        总损失函数由三部分组成:

 CTC损失。由于这两个网络是从头开始训练的,因此可以使用CTC 损失来进行网络的收敛

 

DMIL 损失。预计两个网络的最终输出分布是相同的,因此需要DMIL. loss来 保证两个网络之间分布的一致性

 

特征损失。两个网络的架构是一样的,所以他们的特征图应该是一样的,特征损失可以用来约束两个网络的中间特征图距离

 

 

最后,U-DML 训练过程的总损失如下所示:


Enhanced CTCLoss

        中文识别任务中存在很多相似的字符。它们在外观上的差异非常小,经常被误认。在PP-
OCRv2中,我们设计了一个增强型CTCLosS, 它结合了原始CTCLoss和CenterLoss (Wen et al. 2016)在度量学习中的思想。做了一些改进,使其适用于序列识别任务。

        增强型CTCLoss 定义如下:



其中,xt是时间戳t的特征。cy是 yt类的中心。由于CRNN (Shi、 Bai和Yao 2016) 算法中特征和标签之间的错位,我们没有xt的明确标签yto 我们采用贪心解码策略得到yt,W是CTC头的参数:


 

三、PP-OCRv2的实验测试及结果

        下次补充,这次先讲这么多。

总结

        本篇文章介绍的大多是策略实现理论知识。不太容易理解,下篇文章讲一下PP-OCRv2利用上述增强算法的效率测试结果,利用表格更加直观感受。另外稍带一下代码讲解。因为PP-OCRv2本体还是PP-OCR所以只讲一下PP-OCRv2在文本识别模型中使用的策略部分。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。