一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

图像处理模型训练方法、图像处理方法及相关设备与流程

2021-11-26 23:03:00 来源:中国专利 TAG:


1.本技术属于人工智能技术领域,具体涉及一种图像处理模型训练方法、图像处理方法、图像处理模型训练装置、图像处理装置、计算机可读介质以及电子设备。


背景技术:

2.深度神经网络能够很好地完成图像分类和物体检测等图像处理任务,但是深度神经网络在图像处理任务中的处理效果一般与网络参数量和网络计算量成正比,这也导致相关模型对于硬件设备的运算能力提出了较高的要求。因此,如何降低模型的硬件设备需求是目前亟待解决的问题。


技术实现要素:

3.本技术的目的在于提供一种图像处理模型训练方法、图像处理方法、图像处理模型训练装置、图像处理装置、计算机可读介质以及电子设备,至少在一定程度上克服图像处理模型存在的计算量大、硬件设备要求高等技术问题。
4.本技术的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本技术的实践而习得。
5.根据本技术实施例的一个方面,提供一种图像处理模型训练方法,该方法包括:获取经过量化感知训练得到的嵌入伪量化算子的第一图像处理模型,所述伪量化算子用于对图像数据进行量化处理和反量化处理;移除所述第一图像处理模型中的伪量化算子,得到与所述第一图像处理模型具有相同模型结构的第二图像处理模型;以所述第二图像处理模型作为教师模型,对所述第一图像处理模型进行知识蒸馏训练,得到目标图像处理模型。
6.根据本技术实施例的一个方面,提供一种图像处理方法,该方法包括:获取待处理的人脸图像;基于以上技术方案中图像处理模型训练方法训练得到的目标图像处理模型对所述人脸图像进行图像处理,得到所述人脸图像中的人脸关键点识别结果。
7.根据本技术实施例的一个方面,提供一种图像处理模型训练装置,该装置包括:模型获取模块,被配置为获取经过量化感知训练得到的嵌入伪量化算子的第一图像处理模型,所述伪量化算子用于对图像数据进行量化处理和反量化处理;算子移除模块,被配置为移除所述第一图像处理模型中的伪量化算子,得到与所述第一图像处理模型具有相同模型结构的第二图像处理模型;蒸馏训练模块,被配置为以所述第二图像处理模型作为教师模型,对所述第一图像处理模型进行知识蒸馏训练,得到目标图像处理模型。
8.在本技术的一些实施例中,基于以上技术方案,所述模型获取模块包括:初始模型获取单元,被配置为获取图像数据样本和待训练的初始图像处理模型;初始特征输出单元,被配置为通过所述初始图像处理模型对所述图像数据样本进行特征提取和映射处理,得到所述初始图像处理模型输出的初始样本特征;模型参数更新单元,被配置为根据所述初始样本特征迭代更新所述初始图像处理模型的模型参数,得到预训练模型;第一量化训练单元,被配置为向所述预训练模型中嵌入伪量化算子,并基于所述图像数据样本对所述预训
练模型进行量化感知训练,得到嵌入伪量化算子的第一图像处理模型。
9.在本技术的一些实施例中,基于以上技术方案,所述模型获取模块包括:初始模型获取单元,被配置为获取图像数据样本和待训练的初始图像处理模型;伪量化算子嵌入单元,被配置为向所述初始图像处理模型中嵌入伪量化算子,得到待训练的量化模型;第二量化训练单元,被配置为基于所述图像数据样本对所述量化模型进行量化感知训练,得到嵌入伪量化算子的第一图像处理模型。
10.在本技术的一些实施例中,基于以上技术方案,所述第二量化训练单元包括:样本特征输出子单元,被配置为分别通过所述量化模型和所述初始图像处理模型对相同的图像数据样本进行特征提取和映射处理,得到所述量化模型输出的量化样本特征和所述初始图像处理模型输出的浮点样本特征;量化模型更新子单元,被配置为根据所述量化样本特征与所述浮点样本特征之间的损失误差,迭代更新所述量化模型的模型参数。
11.在本技术的一些实施例中,基于以上技术方案,所述伪量化算子包括量化算子和反量化算子,所述量化算子用于根据量化参数对输入的图像数据进行量化处理得到量化输出数据,所述反量化算子用于根据所述量化参数对所述量化输出数据进行反量化处理得到浮点输出数据。
12.在本技术的一些实施例中,基于以上技术方案,所述第一图像处理模型包括多个依次连接的图像处理区块,位于所述第一图像处理模型的输入端的一个或者多个图像处理区块为嵌入伪量化算子的区块,位于所述第一图像处理模型的输出端的一个或者多个图像处理区块为未嵌入伪量化算子的区块。
13.在本技术的一些实施例中,基于以上技术方案,所述知识蒸馏训练的学习率大于所述量化感知训练的学习率。
14.在本技术的一些实施例中,基于以上技术方案,所述图像处理模型是用于对人脸图像进行关键点识别的人脸关键点识别模型。
15.在本技术的一些实施例中,基于以上技术方案,所述蒸馏训练模块包括:样本特征输出单元,被配置为分别通过所述第一图像处理模型和所述第二图像处理模型对相同的图像数据样本进行特征提取和映射处理,得到所述第一图像处理模型输出的第一样本特征和所述第二图像处理模型输出的第二样本特征;模型参数更新单元,被配置为获取所述第一样本特征与所述第二样本特征之间的损失误差,并根据所述损失误差迭代更新所述第一图像处理模型的模型参数,得到目标图像处理模型。
16.在本技术的一些实施例中,基于以上技术方案,所述第一样本特征包括分别由所述第一图像处理模型的多个图像处理区块输出的多个第一样本特征分量,所述第二样本特征包括分别由所述第二图像处理模型的多个图像处理区块输出的多个第二样本特征分量;所述模型参数更新单元还被配置为:获取对应于同一图像处理区块的第一样本特征分量和第二样本特征分量之间的损失误差分量;将对应于各个图像处理区块的损失误差分量进行融合处理,得到所述第一样本特征与所述第二样本特征之间的损失误差。
17.在本技术的一些实施例中,基于以上技术方案,输出样本特征分量的图像处理区块包括全部的或者部分的未嵌入伪量化算子的区块。
18.在本技术的一些实施例中,基于以上技术方案,输出样本特征分量的图像处理区块包括作为图像处理模型的输出层的全连接层区块以及在所述全连接层区块之前的一个
或者多个隐藏层区块。
19.根据本技术实施例的一个方面,提供一种图像处理装置,该装置包括:图像获取模块,被配置为获取待处理的人脸图像;图像处理模块,被配置为基于以上技术方案中所述的方法训练得到的目标图像处理模型对所述人脸图像进行图像处理,得到所述人脸图像中的人脸关键点识别结果。
20.根据本技术实施例的一个方面,提供一种计算机可读介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如以上技术方案中的方法。
21.根据本技术实施例的一个方面,提供一种电子设备,该电子设备包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器被配置为经由执行所述可执行指令来执行如以上技术方案中的方法。
22.根据本技术实施例的一个方面,提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行如以上技术方案中的方法。
23.在本技术实施例提供的技术方案中,首先基于量化感知训练得到嵌入伪量化算子的第一图像处理模型,然后再以移除伪量化算子之后得到的第二图像处理模型作为教师模型对第一图像处理模型进行知识蒸馏训练得到目标图像处理模型。通过量化感知训练可以大幅降低图像处理模型的网络参数规模,减少模型在图像处理中的网络计算量,而通过知识蒸馏训练可以在一定程度上降低因模型量化而产生的精度损失,进一步提高模型的稳定性。
24.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。
附图说明
25.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
26.图1示意性地示出了应用本技术技术方案的示例性系统架构框图。
27.图2示出了本技术一个实施例中的图像处理模型训练方法的步骤流程图。
28.图3示出了本技术一个实施例中基于迁移学习训练量化模型的步骤流程图。
29.图4示出了本技术一个实施例中基于从零开始训练量化模型的步骤流程图。
30.图5示出了本技术一个实施例中嵌入伪量化算子的效果示意图。
31.图6示出了本技术一个实施例中进行知识蒸馏训练的图像处理模型的模型示意图。
32.图7示意性地示出了本技术实施例提供的图像处理模型训练装置的结构框图。
33.图8示意性地示出了本技术实施例提供的图像处理装置的结构框图。
34.图9示意性示出了适于用来实现本技术实施例的电子设备的计算机系统结构框图。
具体实施方式
35.现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本技术将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
36.此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本技术的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本技术的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本技术的各方面。
37.附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
38.附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
39.本技术实施例主要涉及人工智能(artificial intelligence,ai)技术领域,尤其涉及基于人工智能中的机器学习技术训练图像处理模型,进而利用图像处理模型执行图像处理任务的技术方案。
40.人工智能是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
41.人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
42.计算机视觉技术(computer vision,cv)计算机视觉是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取信息的人工智能系统。计算机视觉技术通常包括图像处理、图像识别、图像语义理解、图像检索、ocr、视频处理、视频语义理解、视频内容/行为识别、三维物体重建、3d技术、虚拟现实、增强现实、同步定位与地图构建等技术,还包括常见的人脸识别、指纹识别等生物特征识别技术。
43.机器学习(machine learning,ml)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。
机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。
44.图1示意性地示出了应用本技术技术方案的示例性系统架构框图。
45.如图1所示,系统架构100可以包括终端设备110、网络120和服务器130。终端设备110可以包括智能手机、平板电脑、笔记本电脑、台式电脑等各种电子设备。服务器130可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器。网络120可以是能够在终端设备110和服务器130之间提供通信链路的各种连接类型的通信介质,例如可以是有线通信链路或者无线通信链路。
46.根据实现需要,本技术实施例中的系统架构可以具有任意数目的终端设备、网络和服务器。例如,服务器130可以是由多个服务器设备组成的服务器群组。另外,本技术实施例提供的技术方案可以应用于终端设备110,也可以应用于服务器130,或者可以由终端设备110和服务器130共同实施。举例而言,本技术实施例可以通过服务器130执行图像处理模型训练方法训练得到图像处理模型,在将训练完成的图像处理模型配置在终端设备110上,从而可以通过终端设备110对用户的人脸图像或者其他待处理的图像数据执行图像分类、图像识别等各种图像处理任务。
47.下面结合具体实施方式对本技术提供的图像处理模型训练方法、图像处理方法、图像处理模型训练装置、图像处理装置、计算机可读介质以及电子设备等技术方案做出详细说明。
48.图2示出了本技术一个实施例中的图像处理模型训练方法的步骤流程图,该方法可以由终端设备或者服务器执行,本技术实施例以终端设备执行的图像处理模型训练方法作为示例进行说明。如图2所示,该图像处理模型训练方法主要可以包括如下的步骤s210至步骤s230。
49.步骤s210:获取经过量化感知训练得到的嵌入伪量化算子的第一图像处理模型,伪量化算子用于对图像数据进行量化处理和反量化处理。
50.量化感知训练(quantization aware training)是模型量化方法中的一种,其目的是通过在对数据进行量化处理的同时进行网络训练以降低模型参数规模和模型计算量。在模型训练过程以及模型使用过程中,将模型中的高精度运算转化到低精度标准上进行运算,例如将基于32位浮点数float32的模型运算转化为基于8位整数int8的模型运算。相比于未经量化处理的模型,经过量化感知训练得到的模型具有多种优点。举例而言,可以减小模型尺寸和存储空间,例如int8量化可以减少75%的模型大小;可以加快推理速度,访问一次32位浮点型可以访问四次int8型,运算更快;可以减少设备功耗,内存耗用少了推理速度快了自然减少了设备功耗。可以支持微处理器,有些微处理器属于8位的,低功耗运行浮点运算速度慢,需要进行8bit量化。
51.伪量化算子(fakequantize)用于对图像数据进行量化处理和反量化处理,嵌入在第一图像处理模型中的伪量化算子可以先将输入的高精度数据进行量化处理以映射为低精度数据,然后再对低精度数据进行反量化处理,得到输出的高精度数据。伪量化算子可以保持输入数据和输出数据均为浮点数,但不同之处在于,输入数据为连续取值的浮点数,而输出数据为离散定量化之后的浮点数。
52.本技术实施例提供的图像处理模型训练方法可以适用于人脸关键点算法,用于训
练对人脸图像进行关键点识别的人脸关键点识别模型,提升人脸关键点识别模型的关键点稳定性。另外,本技术实施例也适用于其他需要量化的图像处理任务。
53.步骤s220:移除第一图像处理模型中的伪量化算子,得到与第一图像处理模型具有相同模型结构的第二图像处理模型。
54.图像处理模型中包括有各种不同类型的操作子(op),例如可以包括实现卷积操作的卷积操作子、实现池化操作的池化操作子、实现激活操作的激活操作子、实现全连接操作的全连接操作子,等等。对于一个需要进行量化操作的操作子,本技术实施例可以在该操作子之前和之后的模型结构中分别嵌入一个伪量化算子。
55.基于嵌入伪量化算子的方式进行量化感知训练可以得到第一图像处理模型,在移除其中的所有伪量化算子后,可以得到具有相同模型结构且未嵌入伪量化算子的第二图像处理模型。第二图像处理模型可以保持第一图像处理模型中除伪量化算子以外的其他操作子的模型结构,并保持各个操作子的模型参数。
56.步骤s230:以第二图像处理模型作为教师模型,对第一图像处理模型进行知识蒸馏训练,得到目标图像处理模型。
57.知识蒸馏(knowledge distillation)是通过引入预先训练得到的教师模型(teacher modle),利用教师模型输出的软目标(soft

target)诱导学生模型(student modle)的训练过程,使得学生模型能够学习教师模型的预测行为,从而将教师模型的泛化能力迁移至学生模型。
58.在本技术实施例中,嵌入伪量化算子的第一图像处理模型为量化模型,量化模型中的至少一部分操作子(例如,嵌入伪量化算子的部分)是对具有离散定量化数值的特征图(feature map)进行运算处理。经过伪量化运算可以降低模型计算量,但可能会产生严重的稳定性退化问题。移除伪量化算子的第二图像处理模型为浮点模型,浮点模型中的所有操作子都是对连续取值的浮点数特征图进行运算处理,虽然模型计算量比量化模型大,但是能够保持模型预测稳定性的特点。
59.本技术实施例以移除伪量化算子的第二图像处理模型作为教师模型,对嵌入伪量化算子的第一图像处理模型进行知识蒸馏训练,可以使第一图像处理模型学习第二图像处理模型具有输出稳定性的特征,克服因模型量化而带来的稳定性退化问题。由于第一图像处理模型与第二图像处理模型具有相同的模型结构,可以在特征图层面由浮点模型向量化模型提供监督训练。
60.在本技术实施例提供的图像处理模型训练方法中,首先基于量化感知训练得到嵌入伪量化算子的第一图像处理模型,然后再以移除伪量化算子之后得到的第二图像处理模型作为教师模型对第一图像处理模型进行知识蒸馏训练得到目标图像处理模型。通过量化感知训练可以大幅降低图像处理模型的网络参数规模,减少模型在图像处理中的网络计算量,而通过知识蒸馏训练可以在一定程度上降低因模型量化而产生的精度损失,进一步提高模型的稳定性。
61.在本技术的一个实施例中,可以基于迁移学习的方式训练量化模型,图3示出了本技术一个实施例中基于迁移学习训练量化模型的步骤流程图。如图3所示,在以上实施例的基础上,步骤s210中的获取经过量化感知训练得到的嵌入伪量化算子的第一图像处理模型,可以包括如下的步骤s310至步骤s340。
62.步骤s310:获取图像数据样本和待训练的初始图像处理模型。
63.图像数据样本是具有样本标签的训练数据,初始图像处理模型是对模型框架进行参数初始化得到网络模型,其中模型初始化中导入的模型参数可以是预设的初始化参数,也可以是经过迁移学习(transfer learning)得到的预训练参数。
64.步骤s320:通过初始图像处理模型对图像数据样本进行特征提取和映射处理,得到初始图像处理模型输出的初始样本特征。
65.初始图像处理模型可以包括输入层、输出层以及位于输入层和输出层之间的一个或者多个隐藏层,每个隐藏层可以根据不同的网络结构实现不同的数据处理功能。例如,卷积层用于对输入数据进行卷积运算,以提取得到数据的深层次特征;池化层用于对输入数据进行下采样,以减小数据空间大小,降低网络参数数量和计算量;全连接层用于对输入数据进行全连接训练,以将特征图由隐层特征空间映射至样本标记空间。
66.步骤s330:根据初始样本特征迭代更新初始图像处理模型的模型参数,得到预训练模型。
67.将初始图像处理模型输出的初始样本特征与图像数据样本的样本标签共同输入预设的损失函数,可以得到初始样本特征与预测目标之间的损失误差。在对损失误差进行反向传播后,可以根据各个网络层的误差梯度更新初始图像处理模型的模型参数,完成一轮训练,并继续开启下一轮训练。在经过多次正向传播和反向传播后,可以通过迭代更新不断优化模型参数,直至满足预设的训练终止条件后,得到训练完成的预训练模型。训练终止条件例如可以包括损失误差小于误差阈值或者模型训练轮次达到轮次数量阈值。
68.步骤s340:向预训练模型中嵌入伪量化算子,并基于图像数据样本对预训练模型进行量化感知训练,得到嵌入伪量化算子的第一图像处理模型。
69.在本技术的一个实施例中,可以在预训练模型的每个操作子前后均嵌入相应的伪量化算子,以达到全部量化的效果,基于全部量化可以获得更高的模型量化程度和更高的模型量化收益。另外,本技术实施例也可以在预训练模型的其中一部分操作子前后嵌入伪量化算子,以达到部分量化的效果,基于部分量化可以降低因模型量化而带来的稳定性退化程度。
70.向预训练模型中嵌入伪量化算子之后,继续对图像数据样本进行特征提取和映射处理,并基于数据处理结果迭代更新预训练模型的模型参数。在满足预设的训练终止条件后,得到训练完成的第一图像处理模型。
71.在本技术实施例中,首先通过预训练步骤可以训练得到浮点模型,在嵌入伪量化算子后继续进行量化感知训练对浮点模型进行参数微调,可以在模型量化的同时进行模型训练,使得模型参数能够更好地适应量化带来的信息损失。
72.在本技术的一个实施例中,也可以基于从零开始的方式进行量化感知训练。图4示出了本技术一个实施例中基于从零开始训练量化模型的步骤流程图。如图4所示,在以上实施例的基础上,步骤s210中的获取经过量化感知训练得到的嵌入伪量化算子的第一图像处理模型,可以包括如下的步骤s410至步骤s430。
73.步骤s410:获取图像数据样本和待训练的初始图像处理模型。
74.图像数据样本是具有样本标签的训练数据,初始图像处理模型是对模型框架进行参数初始化得到网络模型,其中模型初始化中导入的模型参数可以是随机初始化参数,也
可以是经过迁移学习得到的预训练参数。
75.步骤s420:向初始图像处理模型中嵌入伪量化算子,得到待训练的量化模型。
76.在本技术的一个实施例中,可以在初始图像处理模型的每个操作子前后均嵌入相应的伪量化算子,以达到全部量化的效果,基于全部量化可以获得更高的模型量化程度和模型量化收益。另外,本技术实施例也可以在初始图像处理模型的其中一部分操作子前后嵌入伪量化算子,以达到部分量化的效果,基于部分量化可以降低因模型量化而带来的稳定性退化程度。
77.步骤s430:基于图像数据样本对量化模型进行量化感知训练,得到嵌入伪量化算子的第一图像处理模型。
78.向预训练模型中嵌入伪量化算子之后,可以通过量化模型对图像数据样本进行特征提取和映射处理,并基于数据处理结果迭代更新预训练模型的模型参数。在满足预设的训练终止条件后,得到训练完成的第一图像处理模型。
79.在本技术的一个实施例中,基于图像数据样本对量化模型进行量化感知训练的方法可以包括:分别通过量化模型和初始图像处理模型对相同的图像数据样本进行特征提取和映射处理,得到量化模型输出的量化样本特征和初始图像处理模型输出的浮点样本特征;根据量化样本特征与浮点样本特征之间的损失误差,迭代更新量化模型的模型参数。在本技术实施例中,采用从零开始训练的方式对量化模型进行量化感知训练,同时通过初始图像处理模型对量化模型进行从旁指导,降低量化模型从零开始训练的训练难度,并降低因模型量化产生的精度损失。
80.在本技术的一个实施例中,嵌入第一图像处理模型的伪量化算子(fakequantize)可以包括量化算子(quantize)和反量化算子(dequantize)。其中,量化算子用于根据量化参数对输入的图像数据进行量化处理得到量化输出数据,反量化算子用于根据量化参数对量化输出数据进行反量化处理得到浮点输出数据。
81.图5示出了本技术一个实施例中嵌入伪量化算子的效果示意图。如图5所示,针对一个需要进行量化处理的操作子501,本技术实施例可以在其前后分别插入伪量化算子502。伪量化算子502可以进一步包括一个量化算子503和一个反量化算子504。
82.举例而言,以量化卷积操作作为示例,本技术会定义一个伪量化卷积操作,在当前操作子的前面插入反量化算子,并在当前操作子的后面插入量化算子,将前一个操作子之后的量化算子和当前操作子之前的反量化算子合并成为一个伪量化算子。伪量化算子实现的功能是对输入数据505先量化处理,然后再反量处理。例如,输入数据505是浮点32位的数值,数域为实数,通过伪量化后输出的是32位的数值,但是会被量化到离散的浮点数上。通过伪量化算子,可以实现浮点模拟量化的训练流程,这样就可以利用各大开源训练框架实现量化训练。
83.在本技术的一个实施例中,每个伪量化算子既需要做伪量化操作,还需要统计数值的波动范围,即输入数据的最大值(max_val)和输入数据的最小值(min_val),从而计算相应的量化参数。如图5所示,本技术实施例在量化感知训练中通过观察者506(observer)统计向伪量化算子输入数据的最大值和最小值,统计方法具体可以采用移动平均(moving average)策略。观察者506例如可以是一个提供数据监测功能的监控模型或者监控进程。
84.在本技术的一个实施例中,为了方便工程加速,每一个需要量化处理的操作子都
需要对齐tensorflow lite的量化标准。举例而言,对不同类型的操作子进行量化感知训练采用的量化标准如下。
85.(1)针对卷积和全连接权重的量化,本技术实施例采用的是对称量化,量化处理后的数据取值范围是[

127,127],偏移项bias的参数不做量化。
[0086]
(2)针对激活输出的量化,本技术实施例采用的是非对称量化,量化处理后的数据取值范围是[

128,127]。
[0087]
(3)针对池化层,需要限制输入的量化参数和输出一样,本技术实施例引入一个共享伪量化算子(sharedfakequantize),该共享伪量化算子和池化前的伪量化算子共享量化参数,但是并不会更新量化参数。
[0088]
(4)针对特征拼接层(concat),本技术实施例会统计所有输入的最大值和最小值来计算量化参数,输出的量化参数和输入一致。
[0089]
在本技术的一个实施例中,第一图像处理模型中嵌入的伪量化算子能够模拟量化模型在推理过程中进行的舍入(rounding)和钳位(clamping)操作,从而在训练过程中提高模型对量化效应的适应能力,获得更高的量化模型精度。在这个过程中,所有计算(包括模型正反向传播计算和伪量化算子的计算)都是以浮点计算实现的,在训练完成后才量化为真正的int8模型。
[0090]
在本技术的一个实施例中,考虑输入数据x的取值范围是[min_val,max_val],量化数据的取值范围是[qmin,qmax],量化算子进行的量化处理可以表示为如下公式。
[0091][0092]
其中,x
q
是量化输出,x
f
是浮点输入,scale和zero_point是量化参数。
[0093]
在此基础上,反量化算子进行的反量化处理可以表示为如下公式。
[0094]
x
f
=(x
q

zero_point)*scale
[0095]
在进行对称量化时,量化参数按如下公式计算。
[0096][0097]
zero_point=0
[0098]
在进行非对称量化时,量化参数按如下公式计算。
[0099][0100][0101]
在进行伪量化的反向传播时,由于伪量化操作是不可导的函数,需要通过可导的函数进行逼近:
[0102][0103]
其中,input_grad为输入梯度,output_grad为输出梯度。
[0104]
在本技术的一个实施例中,第一图像处理模型包括多个依次连接的图像处理区块,位于第一图像处理模型的输入端的一个或者多个图像处理区块为嵌入伪量化算子的区块,位于第一图像处理模型的输出端的一个或者多个图像处理区块为未嵌入伪量化算子的区块。仅对第一图像处理模型中位于输入端的一部分图像处理区块嵌入伪量化算子,可以起到部分量化的效果,降低模型量化带来的精度损失。
[0105]
另外,在本技术实施例中,位于输出端的未嵌入伪量化算子的图像处理区块可以起到纠正区块的作用,用于恢复在前的嵌入伪量化算子的图像处理区块所带来的量化损失,即对前面的量化处理产生的量化损失更为鲁棒。如果全部量化,而没有纠正块区,则很难达到损失恢复的目的,主要的原因是在神经网络中普遍存在损失随着深度累加的情况。
[0106]
在本技术的一个实施例中,基于第二图像处理模型对第一图像处理模型进行蒸馏训练的方法可以包括:分别通过第一图像处理模型和第二图像处理模型对相同的图像数据样本进行特征提取和映射处理,得到第一图像处理模型输出的第一样本特征和第二图像处理模型输出的第二样本特征;获取第一样本特征与第二样本特征之间的损失误差,并根据损失误差迭代更新第一图像处理模型的模型参数,得到目标图像处理模型。
[0107]
在本技术的一个实施例中,第一样本特征包括分别由第一图像处理模型的多个图像处理区块输出的多个第一样本特征分量,第二样本特征包括分别由第二图像处理模型的多个图像处理区块输出的多个第二样本特征分量。在此基础上,获取第一样本特征与第二样本特征之间的损失误差的方法可以包括:获取对应于同一图像处理区块的第一样本特征分量和第二样本特征分量之间的损失误差分量;将对应于各个图像处理区块的损失误差分量进行融合处理,得到第一样本特征与第二样本特征之间的损失误差。
[0108]
在本技术的一个实施例中,输出样本特征分量的图像处理区块包括全部的或者部分的未嵌入伪量化算子的区块。
[0109]
在本技术的一个实施例中,输出样本特征分量的图像处理区块包括作为图像处理模型的输出层的全连接层区块以及在全连接层区块之前的一个或者多个隐藏层区块。
[0110]
在本技术的一个实施例中,对损失误差分量进行融合处理得到损失误差的方法可以包括:获取各个损失误差分量的误差权重,基于误差权重对各个损失误差分量进行加权求和,得到融合之后的损失误差。
[0111]
在本技术的一个实施例中,各个损失误差分量的误差权重可以根据输出相应损失误差分量的图像处理区块在图像处理模型中的位置信息计算得到。例如,误差权重可以与图像处理区块所处位置的模型深度成正比关系,即越靠近输出层的图像处理区块,其对应的确定损失误差分量的误差权重越大。
[0112]
图6示出了本技术一个实施例中进行知识蒸馏训练的图像处理模型的模型示意图。本技术实施例中的图像处理模型可以是移动端实时的模型,其计算量(flops)仅在30m以内,基础模型是基于mobilenetv2的结构,与mobilenetv2

0.25类似。
[0113]
如图6所示,本技术实施例中的学生模型是嵌入伪量化算子的第一图像处理模型601,教师模型是移除伪量化算子之后得到的第二图像处理模型602。其中,第一图像处理模型601与第二图像处理模型602具有相同的模型结构,即分别包括5个依次连接的图像处理区块(block),以及一个作为输出层的全连接层区块(fc)。
[0114]
在本技术实施例中,每个图像处理区块的特征图分辨率是相同的,越深的图像处
理区块的分辨率越小。在一个可选的实施方式中,本技术实施例可以先训练出浮点模型,并基于浮点模型插入伪量化算子后进行量化感知训练以对量化模型进行参数微调,得到第一图像处理模型。在参数微调结束后,移除其中的伪量化算子,可以得到仍然具备关键点稳定特性的第二图像处理模型。因此,本技术实施例中的教师模型是微调后去掉伪量化算子的模型。另外,在量化感知训练过程中,本技术实施例采用的是部分量化的策略,仅量化前面的4个图像处理区块,即学生模型中的s_block0、s_block1、s_block2、s_block3。采用部分量化的策略可以通过知识蒸馏训练使得最后一个图像处理区块s_block4能够恢复前面各个图像处理区块因模型量化所带来的损失,即对前面量化产生的损失更为鲁棒。如果向全部的图像处理区块中嵌入伪量化算子,进行全部量化,而没有纠正块区,则很难达到损失恢复的目的,主要的原因是在神经网络中普遍存在损失随着深度累加的情况。
[0115]
在本技术实施例中,在第五个图像处理块区的最后一层和最后的全连接层加入教师模型的蒸馏。
[0116]
在本技术的一个实施例中,知识蒸馏训练的学习率大于量化感知训练的学习率,以便获得更好的稳定性提升效果。举例而言,本技术实施例在进行知识蒸馏训练时,可以先获取量化感知训练的学习率,再增大量化感知训练的学习率以得到知识蒸馏训练的学习率。举例而言,在进行量化感知训练时可以使用的学习率为1e

5(即0.00001),而在进行知识蒸馏训练时,可以使用的学习率为1e

4(即0.0001)。
[0117]
继续参考图6,在本技术的一个实施例中,学生模型的第五个图像处理区块s_block4输出的样本特征分量为s4,教师模型的第五个图像处理区块t_block4输出的样本特征分量为t4,根据这两个样本特征分量可以计算得到对应的损失误差分量。
[0118]
学生模型的全连接层输出的样本特征分量为s
fc
,教师模型的全连接层输出的样本特征分量为t
fc
,根据这两个样本特征分量可以计算得到对应的损失误差分量。
[0119]
将以上两个损失误差分量进行融合处理后即可得到最终的损失误差。举例而言,本技术实施例中采用的损失函数可以是均方误差函数(mean

square error,mse),相应的损失函数公式为
[0120]
l=||s4‑
t4||2 ||s
fc

t
fc
||2[0121]
在其他一些可选的实施方式中,也可以选用交叉熵损失函数或者其他损失函数。
[0122]
在本技术的一个实施例中,图像处理模型的激活函数可以选用relu6,该激活函数可以限制函数输出的最大值,从而可以缩小模型数值范围,减少量化损失,进一步提升模型稳定性。
[0123]
表1以数值的方式给出了蒸馏前后模型稳定性的结果示例,本技术还对比了蒸馏时采用不同学习率对模型抖动的影响。抖动指标的计算方式为:本技术实施例选择10张测试集的人脸图像,不断通过上一次的模型输出关键点对齐人脸,然后继续预测当前关键点,第一次预测关键点采用真值对齐人脸。每张图像预测300次。对每张图像预测300次的人脸关键点计算标准差(std),将10张图像所计算出的标准差的平均值作为抖动性的评价指标。抖动指标数值越小,表示模型稳定性越好。
[0124]
表1
[0125] 量化算力抖动指标8

bit 有蒸馏 le

470.304%37.48
8

bit 有蒸馏 le

570.304%41.6458

bit 无蒸馏70.304%42.09
[0126]
从表1中可以看出,采用本技术实施例提供的技术方案对8

bit量化模型进行知识蒸馏训练,可以降低抖动指标,提高模型稳定性。另外,蒸馏在学习率相对较大的情况下(1e

4)可以有效的改善模型抖动,这意味着设置相对较大的学习率,让模型参数得到更新会对稳定性有较大的提升,这也说明了蒸馏的作用。
[0127]
利用以上各实施例提供的图像处理模型训练方法训练得到的目标图像处理模型可以配置在计算机设备上,用于进行图像处理。在本技术的一个实施例中,提供一种图像处理方法,该方法可以包括:获取待处理的人脸图像;基于以上各实施例中训练得到的目标图像处理模型对人脸图像进行图像处理,得到人脸图像中的人脸关键点识别结果。目标图像处理模型的训练过程已在上述实施例中作出详细说明,此处不再赘述。
[0128]
应当注意,尽管在附图中以特定顺序描述了本技术中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
[0129]
以下介绍本技术的装置实施例,可以用于执行本技术上述实施例中的图像处理模型训练方法以及图像处理方法。
[0130]
图7示意性地示出了本技术实施例提供的图像处理模型训练装置的结构框图。如图7所示,图像处理模型训练装置700包括:模型获取模块710,被配置为获取经过量化感知训练得到的嵌入伪量化算子的第一图像处理模型,所述伪量化算子用于对图像数据进行量化处理和反量化处理;算子移除模块720,被配置为移除所述第一图像处理模型中的伪量化算子,得到与所述第一图像处理模型具有相同模型结构的第二图像处理模型;蒸馏训练模块730,被配置为以所述第二图像处理模型作为教师模型,对所述第一图像处理模型进行知识蒸馏训练,得到目标图像处理模型。
[0131]
在本技术的一些实施例中,基于以上各实施例,所述模型获取模块710包括:初始模型获取单元,被配置为获取图像数据样本和待训练的初始图像处理模型;初始特征输出单元,被配置为通过所述初始图像处理模型对所述图像数据样本进行特征提取和映射处理,得到所述初始图像处理模型输出的初始样本特征;模型参数更新单元,被配置为根据所述初始样本特征迭代更新所述初始图像处理模型的模型参数,得到预训练模型;第一量化训练单元,被配置为向所述预训练模型中嵌入伪量化算子,并基于所述图像数据样本对所述预训练模型进行量化感知训练,得到嵌入伪量化算子的第一图像处理模型。
[0132]
在本技术的一些实施例中,基于以上各实施例,所述模型获取模块710包括:初始模型获取单元,被配置为获取图像数据样本和待训练的初始图像处理模型;伪量化算子嵌入单元,被配置为向所述初始图像处理模型中嵌入伪量化算子,得到待训练的量化模型;第二量化训练单元,被配置为基于所述图像数据样本对所述量化模型进行量化感知训练,得到嵌入伪量化算子的第一图像处理模型。
[0133]
在本技术的一些实施例中,基于以上各实施例,所述第二量化训练单元包括:样本特征输出子单元,被配置为分别通过所述量化模型和所述初始图像处理模型对相同的图像数据样本进行特征提取和映射处理,得到所述量化模型输出的量化样本特征和所述初始图
像处理模型输出的浮点样本特征;量化模型更新子单元,被配置为根据所述量化样本特征与所述浮点样本特征之间的损失误差,迭代更新所述量化模型的模型参数。
[0134]
在本技术的一些实施例中,基于以上各实施例,所述伪量化算子包括量化算子和反量化算子,所述量化算子用于根据量化参数对输入的图像数据进行量化处理得到量化输出数据,所述反量化算子用于根据所述量化参数对所述量化输出数据进行反量化处理得到浮点输出数据。
[0135]
在本技术的一些实施例中,基于以上各实施例,所述第一图像处理模型包括多个依次连接的图像处理区块,位于所述第一图像处理模型的输入端的一个或者多个图像处理区块为嵌入伪量化算子的区块,位于所述第一图像处理模型的输出端的一个或者多个图像处理区块为未嵌入伪量化算子的区块。
[0136]
在本技术的一些实施例中,基于以上各实施例,所述知识蒸馏训练的学习率大于所述量化感知训练的学习率。
[0137]
在本技术的一些实施例中,基于以上各实施例,所述图像处理模型是用于对人脸图像进行关键点识别的人脸关键点识别模型。
[0138]
在本技术的一些实施例中,基于以上各实施例,所述蒸馏训练模块730包括:样本特征输出单元,被配置为分别通过所述第一图像处理模型和所述第二图像处理模型对相同的图像数据样本进行特征提取和映射处理,得到所述第一图像处理模型输出的第一样本特征和所述第二图像处理模型输出的第二样本特征;模型参数更新单元,被配置为获取所述第一样本特征与所述第二样本特征之间的损失误差,并根据所述损失误差迭代更新所述第一图像处理模型的模型参数,得到目标图像处理模型。
[0139]
在本技术的一些实施例中,基于以上各实施例,所述第一样本特征包括分别由所述第一图像处理模型的多个图像处理区块输出的多个第一样本特征分量,所述第二样本特征包括分别由所述第二图像处理模型的多个图像处理区块输出的多个第二样本特征分量;所述模型参数更新单元还被配置为:获取对应于同一图像处理区块的第一样本特征分量和第二样本特征分量之间的损失误差分量;将对应于各个图像处理区块的损失误差分量进行融合处理,得到所述第一样本特征与所述第二样本特征之间的损失误差。
[0140]
在本技术的一些实施例中,基于以上各实施例,输出样本特征分量的图像处理区块包括全部的或者部分的未嵌入伪量化算子的区块。
[0141]
在本技术的一些实施例中,基于以上各实施例,输出样本特征分量的图像处理区块包括作为图像处理模型的输出层的全连接层区块以及在所述全连接层区块之前的一个或者多个隐藏层区块。
[0142]
图8示意性地示出了本技术实施例提供的图像处理装置的结构框图。如图8所示,图像处理装置800包括:图像获取模块810,被配置为获取待处理的人脸图像;图像处理模块820,被配置为基于量化感知训练和知识蒸馏训练得到的目标图像处理模型对所述人脸图像进行图像处理,得到所述人脸图像中的人脸关键点识别结果。
[0143]
本技术各实施例中提供的各个装置的具体细节已经在对应的方法实施例中进行了详细的描述,此处不再赘述。
[0144]
图9示意性地示出了用于实现本技术实施例的电子设备的计算机系统结构框图。
[0145]
需要说明的是,图9示出的电子设备的计算机系统900仅是一个示例,不应对本申
请实施例的功能和使用范围带来任何限制。
[0146]
如图9所示,计算机系统900包括中央处理器901(central processing unit,cpu),其可以根据存储在只读存储器902(read

only memory,rom)中的程序或者从存储部分908加载到随机访问存储器903(random access memory,ram)中的程序而执行各种适当的动作和处理。在随机访问存储器903中,还存储有系统操作所需的各种程序和数据。中央处理器901、在只读存储器902以及随机访问存储器903通过总线904彼此相连。输入/输出接口905(input/output接口,即i/o接口)也连接至总线904。
[0147]
以下部件连接至输入/输出接口905:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(cathode ray tube,crt)、液晶显示器(liquid crystal display,lcd)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如局域网卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至输入/输出接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。
[0148]
特别地,根据本技术的实施例,各个方法流程图中所描述的过程可以被实现为计算机软件程序。例如,本技术的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。在该计算机程序被中央处理器901执行时,执行本技术的系统中限定的各种功能。
[0149]
需要说明的是,本技术实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(erasable programmable read only memory,eprom)、闪存、光纤、便携式紧凑磁盘只读存储器(compact disc read

only memory,cd

rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本技术中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本技术中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
[0150]
附图中的流程图和框图,图示了按照本技术各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个
用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0151]
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本技术的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
[0152]
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本技术实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd

rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本技术实施方式的方法。
[0153]
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本技术的其它实施方案。本技术旨在涵盖本技术的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本技术的一般性原理并包括本技术未公开的本技术领域中的公知常识或惯用技术手段。
[0154]
应当理解的是,本技术并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本技术的范围仅由所附的权利要求来限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献