图像风格化处理方法、装置、设备及存储介质与流程

文档序号:24398305发布日期:2021-03-26 23:38阅读:241来源:国知局
图像风格化处理方法、装置、设备及存储介质与流程

1.本公开实施例涉及图像处理技术领域,尤其涉及一种图像风格化处理方法、装置、设备及存储介质。


背景技术:

2.在进行图像处理的过程中,通常需要采用神经网络模型对图像数据进行运算,图像数据运算过程中涉及的数字类型可以包括浮点(float)型和定点(int)型,神经网络模型在对图像数据进行处理的过程中,为了提高计算速度,有时需要将浮点型数字量化成定点型数字后再进行计算。现有技术中对浮点数进行定点数量化时,通常是基于预设原则,如截尾原则或舍入原则,等等,这种基于预设原则的处理方式,会导致量化过程中精度的严重损失,进而影响对图像进行风格化处理时的处理效果。


技术实现要素:

3.本公开提供一种图像风格化处理方法、装置、设备及存储介质,以降低神经网络模型在对输入数据进行处理的过程中因量化操作造成的精度损失,提高图像风格化处理效果。
4.第一方面,本公开实施例提供了一种图像风格化处理方法,该方法包括:
5.获取摄像头采集到的图像数据,输入神经网络模型;
6.获取所述神经网络模型输出的所述图像数据的分割结果;
7.根据所述分割结果,对所述图像数据进行风格化处理;
8.其中,所述神经网络模型的每一数据处理层都设置有与其关联的量化处理模块,所述量化处理模块用于对与其关联的数据处理层的参数数据和输入数据进行浮点数压缩后执行量化处理操作,并将量化结果传输至与其关联的数据处理层进行所述数据处理层的功能处理操作。
9.第二方面,本公开实施例还提供了图像风格化处理装置,该装置包括:
10.图像数据获取模块,用于获取摄像头采集到的图像数据,输入神经网络模型;
11.分割结果获取模块,用于获取所述神经网络模型输出的所述图像数据的分割结果;
12.风格化处理模块,用于根据所述分割结果,对所述图像数据进行风格化处理;
13.其中,所述神经网络模型的每一数据处理层都设置有与其关联的量化处理模块,所述量化处理模块用于对与其关联的数据处理层的参数数据和输入数据进行浮点数压缩后执行量化处理操作,并将量化结果传输至与其关联的数据处理层进行所述数据处理层的功能处理操作。
14.第三方面,本公开实施例还提供了一种电子设备,该电子设备包括:
15.一个或多个处理器;
16.存储器,用于存储一个或多个程序;
是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
32.需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
33.需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。本公开实施方式中的多方之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
34.目前,现有技术中神经网络模型在对浮点数进行定点数量化时,通常是基于预设原则,如截尾原则或舍入原则等,直接将浮点数量化成定点数,例如,若浮点数为125.2,则神经网络会基于四舍五入原则,直接将其量化为125。
35.但是,由于神经网络模型运算过程中使用的浮点数的数值出现频率分布呈正态分布,即中间多两边少,例如,浮点数集合中包括的浮点数取值范围是-128.0至127.0,而该浮点数集合中的大部分浮点数都集中出现在-10.0至10.0之间,越靠近两个边界值(即-128.0和127.0)浮点数分布越少,此时由于浮点数集中出现的区域的浮点数数值距离浮点数集合中最大浮点数数值的距离较远,所以,采用现有方法进行浮点数到定点数的量化,会导致量化过程精度损失严重,进而严重图像风格化处理效果。
36.下面针对本发明实施例中提供的图像风格化处理方法、装置、设备及存储介质进行详细阐述。
37.图1a示出了本公开实施例提供的一种图像风格化处理方法的流程图,图1b示出了本公开实施例提供的神经网络模型的内部构造的结构示意图。本实施例可适用于基于预先训练好的每一数据处理层都设置有量化处理模块的特殊结构的神经网络模型来对摄像头采集到的图像数据进行分割处理,进而实现对采集到的图像进行风格化处理的情况,该方法可以由本公开实施例提供的图像风格化处理装置或电子设备来执行,该装置可以通过软件和/或硬件的方式来实现。该装置可以配置在电子设备中,具体可以由电子设备中的图像处理进程来执行。
38.可选的,如图1a-1b所示,本实施例中的方法可以包括如下步骤:
39.s101,获取摄像头采集到的图像数据,输入神经网络模型。
40.其中,本公开实施例中的神经网络模型的构造不同于普通的神经网络模型,而是对普通神经网络模型的结构进行了改进,改进后的神经网络模型的每一数据处理层都设置有与其关联的量化处理模块,该量化处理模块用于对与其关联的数据处理层的参数数据和输入数据进行浮点数压缩后执行量化处理操作,并将量化结果传输至与其关联的数据处理层进行数据处理层的功能处理操作。可选的,如图1b所示,若将神经网络模型中的数据处理层分为输入层、中间层和输出层,则可以在输入层之前或者之上设置有输入层的量化处理模1,在中间层之前或者之上设置有中间层的量化处理模块2,在输出层之前或者之上设置有输出层的量化处理模3。其中,中间层又可以是由多个数据处理层构成,如可以是由多个卷积层、池化层等构成的,对于构成中间层的各数据处理层,同样都设置有每一层所关联的量化处理模块。
41.在一个可选实施例中,神经网络模型中的各数据处理层的量化处理模块,用于对输入该数据处理层的浮点数以及该数据处理层的浮点数类型的参数数据进行浮点数数值压缩后再按照预设原则执行量化处理操作,得到量化处理结果;而对输入各数据处理层的定点数据以及该数据处理层的定点数类型的参数数据可以不进行处理,直接作为量化处理结果,然后将得到的量化处理结果传输给该量化处理模块关联的数据处理层进行相关的数据处理操作后,将处理结果输出给下一数据处理层。
42.可选的,量化处理模块对浮点数压缩处理的操作过程可以是基于量化处理模型训练时的算法,直接将处于某一数值范围(如64.0至128.0)内的浮点数的数值设置为一个固定的划分界限值(如64.0)。完成浮点数压缩处理的操作后,再对存在的所有浮点数(包括进行压缩的浮点数以及没有被压缩的浮点数)按照预设原则(如截尾原则或舍入原则)进行浮点数到定点数的量化操作。可选的,由于浮点数有正数也有负数,所以在进行浮点数压缩处理时,可以是为属于正数的浮点数和属于负数的浮点数各设置一个对应的划分界限,将正数的浮点数压缩到正数对应的划分界限,将负数的浮点数压缩到负数对应的划分界限,例如,将浮点数中大于64.0(即正数的划分界限)的浮点数都压缩为64.0,将小于-64.0(即负数的划分界限)的浮点数都压缩为-64.0。
43.需要说明的是,本公开实施例中的神经网络是预先基于大量的样本图像数据训练得到的,具体如何训练将在后续实施例进行详细介绍。
44.可选的,在本步骤中,获取摄像头采集到的图像数据,输入神经网络模型过程可以是电子设备的图像处理进程在用户通过摄像头拍摄照片时,获取摄像头采集到的图像数据输入预先训练好的神经网络模型中,例如,可以是检测到用户在电子设备上点击拍照按键后,获取摄像头实时采集到的图像,输入预先训练好的神经网络模型中。还可以是电子设备的图像处理进程获取电子设备中存储的摄像头历史采集的图像数据输入神经网络模型中,例如,可以是检测到用户触发的对相册中历史拍摄的某一图像进行处理的指令时,获取相册中存储的该图像数据输入神经网络模型中。需要说明的是,本公开实施例的方案除了可以获取摄像头采集到的图像数据输入神经网络模型中,还可适用于获取从互联网上下载的图像数据输入神经网络模型中。可选的,本步骤获取的图像数据可以包括图像的像素数据(如0-255的像素值数据)、图像的格式、拍摄时间、拍摄地点等数据。
45.s102,获取神经网络模型输出的图像数据的分割结果。
46.其中,图像数据的分割结果可以是对图像中的目标物体进行分割或分类的结果,例如,可以是分割出图像中的人脸部分、背景部分等;也可以是对图像数据中的目标物体进行类别识别等,例如,可以是对拍摄到的商品图像进行商标种类的识别。
47.可选的,在本公开实施例中,s101将获取的摄像头采集到的图像数据输入神经网络模型中之后,由于神经网络模型在对输入的图像数据进行分割处理分析时,必定会产生浮点数据,为了提高分割处理分析的效率,通常需要将神经网络运算过程中所用到的所有浮点数都量化成定点数后再进行相关计算,本实施例可以是通过各数据处理层关联的量化处理模块来进行浮点数到定点数的量化操作。具体的:对于神经网络模型计算过程中用到的浮点数可以来自于两个方面,一个是输入各数据处理层的输入数据,另一个是各数据处理层的参数数据。可选的,若本公开实施例s101中获取的摄像头采集到的图像数据为图像的像素值数据,则输入神经网络模型中的输入数据为定点数类型的图像数据(图像数据都
是由0到255的定点数据),而神经网络模型中的各数据处理层的参数数据是基于样本图像数据训练得到的,训练过程中产生的参数数据中存在大量的浮点数据。若各数据处理层的参数数据都是浮点数,则神经网络模型接收到图像数据进行处理的过程可以是:
48.先将输入神经网络模型的图像数据和输入层的参数数据传输给输入层关联的量化处理模块,该量化处理模块对输入层的参数数据进行浮点数压缩后量化为定点数,并将量化后的定点数和接收到的图像数据作为量化处理结果传输至输入层进行输入层的功能处理操作,输入层基于量化处理结果中的参数数据,对量化处理结果中的图像数据进行功能处理操作,并将处理结果输入给中间层关联的量化处理模块。
49.中间层关联的量化处理模块在获取输入层传输给中间层的处理结果(即中间层的输入数据)的同时,还获取中间层的参数数据,该量化处理模块对中间层的参数数据和中间层的输入数据中的浮点数进行压缩后量化成定点数,并将量化后的定点数和中间层的输入数据中原有的定点数一并作为量化处理结果传输至中间层进行中间层的功能处理操作,中间层基于接收到的量化处理结果中的参数数据,对量化处理结果中的输入数据进行功能处理操作,并将处理结果传给输出层关联的量化处理模块。需要说明的是,对于中间层来说,其可能是由多个数据处理层构成的,可以是每一个数据处理层及其关联的量化处理模块都联动执行上述对应的操作。
50.输出层关联的量化处理模块在获取中间层传输给输出层的处理结果(即输出层的输入数据)的同时,还获取输出层的参数数据,该量化处理模块对输出层的参数数据和输出层的输入数据中的浮点数进行压缩后量化成定点数,并将量化后的定点数和输入数据中的原有定点数一并作为量化处理结果传输至输出层进行输出层的功能处理操作,输出层基于接收到的量化处理结果中的参数数据,对量化处理结果中的输入数据进行功能处理操作,并将处理结果作为该神经网络模型的输出结果进行输出。
51.需要说明的是,对于神经网络模型中的每一个量化处理模块,其执行的浮点数压缩和浮点数到定点数量化操作都是类似的,各量化处理模块对浮点数进行压缩的划分界限可以相同,也可以不同;对浮点数量化为定点数时基于的预设原则(如截尾原则和舍入原则等)可以相同也可以不同。对于神经网络模型中的数据处理层,其执行的功能处理操作也可以相同(如是不同参数的卷积操作),也可以不同(如有的是卷积操作,有的是池化操作)。
52.可选的,电子设备的图像处理进程将图像数据输入神经网络后,神经网络模型即会按照上述操作对输入的图像数据进行处理,并输出本次对输入图像的分割结果,此时电子设备的图像处理进程会监听并获取神经网络模型输出的图像数据的分割结果。
53.s103,根据分割结果,对图像数据进行风格化处理。
54.其中,风格化处理可以是对图像进行某一种风格的处理,例如可以包括但不限于,漫画风格、滤镜风格、添加贴图风格、虚化风格等等。
55.可选的,在本公开实施例中,根据分割结果,对图像数据进行风格化处理的过程可以是,先根据神经网络模型输出的分割结果,确定出待进行风格化处理的区域或者是待进行风格化处理的类型,然后对该区域进行相关的风格化处理操作。具体的,可以包括但不限于以下几种处理方式:
56.方式一、根据分割结果,识别图像数据的人物区域;对图像数据中的人物区域进行漫画风格处理。具体的,分割结果可以是图像中的人物区域,此时可以获取图像数据中人物
所在的区域作为待进行漫画风格处理的区域,然后对该区域内的图像数据进行漫画风格处理的操作。
57.方式二、根据分割结果,识别图像数据的背景区域;对图像数据的背景区域进行背景虚化处理。具体的,分割结果可以是图像中的背景区域,此时可以获取图像数据中背景所在的区域作为待进行虚化处理的区域,然后对该区域内的图像数据进行背景虚化处理的操作。
58.方式三、根据分割结果,确定待进行风格化处理的滤镜类型;基于所述滤镜类型,对图像数据进行所述滤镜类型对应的风格化处理操作。例如,分割结果可以为图像数据是食品类型图像,此时,可以根据预先设置的图像类型与滤镜类型的对应关系,确定食品类型图像对应的滤镜类型为美食滤镜,进而对获取的图像数据添加美食滤镜,完成对该图像数据的风格化处理操作。
59.需要说明的是,由于任何一种神经网络为了提高计算效率,都需要将浮点数量化为定点数,所以本公开实施例中构建的神经网络模型还可以用到其他功能的神经网络模型中,例如可以适用于图像数据的其他处理功能;还可以适用于对于其他输入数据(如音频数据、视频数据、文字数据等)进行处理的功能,对此本公开实施例不进行限定。
60.本公开实施例提供的图像风格化处理方法,通过获取摄像头采集到的图像数据输入神经网络模型进行分割处理,并根据分割处理结果对图像数据进行风格化处理,其中,本公开实施例的神经网络模型的每一数据处理层都设置与其关联的量化处理模块,所述量化处理模块对与其关联的数据处理层的参数数据和输入数据进行浮点数压缩,对浮点数压缩后的数据进行量化处理,量化处理后的结果再由该数据处理层进行相关的功能处理。本公开实施例的神经网络模型在进行浮点数到定点数量化时,并非直接将浮点数基于预设原则量化为定点数,而是先将浮点数压缩到接近浮点数集中出现的区域后,再基于预设原则进行浮点数到定点数的量化操作,缩小了浮点数据集中浮点数集中出现区域的浮点数数值与浮点数据集中最大浮点数数值之间的距离,从而降低了神经网络模型在对输入数据进行处理的过程中因量化操作造成的精度损失,提高图像风格化处理效果。
61.图2示出了本公开实施例提供的另一种图像风格化处理方法的流程图;本实施例在上述实施例提供的各可选方案的基础上进行了优化,具体给出了如何训练本公开实施例中的神经网络模型的详细介绍。
62.可选的,如图2所示,本实施例中的方法可以包括如下步骤:
63.s201,获取样本图像数据集,并将样本图像数据集输入初始网络模型中。
64.其中,样本图像数据集可以是训练神经网络模型所需要的训练数据,其可以是由大量的图像数据以及各图像数据对应的分割结果构成,其中每一个图像数据和其对应的分割结果作为一个样本图像数据。为了保证本公开实施例训练的神经网络模型对图像数据分割处理结果的准确性,选择的样本图像数据集中应该尽可能的涵盖各种分割结果对应的大量图像数据。
65.可选的,本公开实施例可以是选择各用户历史处理或拍摄的图像数据作为样本图像数据集,这样设置的好处在于,训练出来的神经网络模型能够更为精准的为用户所喜好类型的图像进行图像分割操作。例如,若用户经常处理人物图像,则训练出来的神经网络模型能够实现对各种人物图像进行精准的图像分割处理。本实施例还可以是选择公共图像数
据库中的图像数据的数据作为样本图像数据集,这样设置的好处在于,训练出来的神经网络模型能够更为全面的对各种类型的图像数据进行图像分割操作。还可以选择其他图像数据作为样本图像数据集,对此本实施例不进行限定,具体采用哪种方式,可以根据实际需求而定。
66.可选的,在获取了样本图像数据集后,就可以将该样本图像数据集输入初始网络模型中,该初始网络模型与最终训练好的神经网络模型的内部结构是一样的,但是区别在于,初始网络模型的内部结构中的各数据处理层的参数数据以及各量化处理模块的压缩操作对应的划分界限值是原始默认设置,没有经过训练是不准确的。后续对初始网络模型的训练过程也就是对各数据处理层的参数数据以及各量化处理模块的压缩操作对应的划分界限值进行训练的过程。
67.s202,依据样本图像数据集,基于初始网络模型中每一数据处理层训练过程中产生的参数数据和输入到该数据处理层的输入数据,对该数据处理层关联的量化处理模块进行浮点数压缩训练;基于量化处理模块压缩训练过程中量化得到的量化数据,对与其关联的数据处理层的参数数据进行训练,并将该数据处理层训练所产生的下一层的输入数据传输给下一数据处理层关联的量化处理模块。
68.示例性的,图1b所示的本公开实施例的神经网络模型中各数据处理层以及其关联的量化处理模块的输入和输出数据之间是存在一定的关联关系的,例如,输入到数据处理层的输入数据以及该数据处理层的参数数据需要先输入该数据处理层关联的量化处理模块中进行浮点数到定点数的量化处理操作,量化处理模块的量化操作处理结果再输入到其关联的数据处理层。所以为了保证训练出各数据处理层及其关联的量化处理模块的联动关系,在训练初始网络模型时,需要对各数据处理层以及关联的量化处理模块采取联动训练的方式进行训练。
69.可选的,每向初始网络模型中输入样本图像数据集中的一张图像的图像数据,就可以对初始网络模型的各数据处理层的参数数据和量化处理模块压缩操作对应的划分界限值进行一次联动训练。具体的,可以是依据初始网络模型中每一数据处理层上一次联动训练产生的参数数据(若本次为第一次联动训练,则该参数数据可以是初始模型中该数据处理层的默认原始参数数据)以及输入到该数据处理层的输入数据(若该数据处理层为输入层,则该输入数据为获取的图像数据,否则,该输入数据为上一数据处理层进行功能处理操作输出的处理结果)对该数据处理层关联的量化处理模块进行浮点数压缩训练,得到本次压缩训练对应的划分界限值。然后基于该量化处理模块本次压缩训练得到待划分界限值,对本次输入该量化处理模块的浮点数据进行压缩以及量化处理操作后,将量化处理结果传输至该量化处理模块关联的数据处理层,来对该数据处理层的参数数据进行一次训练,然后将该数据处理层本次训练产生的输出数据传输给下一数据处理层关联的量化处理模块,以使其同样按照上述方案执行一次进行浮点数的压缩训练,并联动带动下一数据处理层的参数数据训练。例如,初始网络模型的输入层关联的量化处理模块基于输入的图像数据以及输入层的上一次联动训练产生的参数数据进行一次浮点数压缩训练,得到本次训练对应的量化结果传输给输入层,输入层基于该量化处理结果进行一次训练,并将输入层的输出结果传输给中间层的量化处理模块;中间层的量化处理模块基于接收到的输入层的输出结果和中间层上一次训练产生的参数数据进行一次浮点数压缩训练,得到本次训练对
应的量化结果传输给中间层,中间层基于该量化处理结果进行一次训练,并将中间层的输出结果传输给输出层的量化处理模块;输出层的量化处理模块基于接收到的中间层的输出结果和输出层上一组训练产生的参数数据进行一次浮点数压缩训练,得到本次训练对应的量化结果传输给输出层,输入层基于该量化处理结果进行一次训练,得到的结果要为本次输入的样本图像数据对应的分割结果。
70.可选的,在本公开实施例中,对于各数据处理层基于输入的定点数据训练该数据处理层的参数数据的过程与现有技术类似,对此本实施例不进行限定,而与现有技术相比,本公开实施例的神经网络模型为每一数据处理层增加了量化处理模块,接下里对本实施例增加的各数据处理模块如何训练的过程进行具体介绍。包括如下三个子步骤:
71.s2021,在基于每一样本图像数据训练初始网络模型的每一数据处理层的参数数据过程中,根据每一数据处理层产生的参数数据和输入到该数据处理层的输入数据中的浮点数构建该数据处理层关联的量化处理模块的一组样本浮点数据集。
72.示例性的,对于初始网络模型中的一个数据处理层关联的量化处理模块来说,本次训练该数据量化处理模块所需要的一组样本浮点数据集可以是由该量化处理模块关联的数据处理层上一次训练后的参数数据(若本次训练为首次训练,则该参数数据为初始网络模型中该数据处理层的默认原始参数数据)以及上一数据处理层输入到该量化处理模块中的输入数据(若该量化处理模块为输入层关联的量化处理模块,则输入数据为图像数据)中的浮点数构成的浮点数数据集。可选的,若量化处理模块为输入层关联的量化处理模块,由于输入该量化处理模块的图像数据为定点数据,则此时训练该量化处理模块的样本浮点数据集为输入层上一次训练后的参数数据中的浮点数。需要说明的是,针对每一个样本图像数据的训练过程,都需要为各量化处理模块构建一组样本浮点数据集。
73.s2022,确定样本浮点数据集的最大绝对值,作为当前最大值。
74.示例性的,在s2021确定了一组样本浮点数据集后,可以是对该组样本浮点数据集中各浮点数取绝对值,然后选择绝对值最大的浮点数数值作为当前最大值。
75.s2023,依据当前最大值和样本浮点数据集对量化处理模块进行一次浮点数压缩训练。
76.示例性的,可以是基于s2022中确定的当前最大值,采用等比递减的方式依次确定出每一次压缩操作对应的两条划分界限值,然后基于这两条划分界限,逐步对样本浮点数据集中不属于这两条划分界限之间的浮点数压缩到这两条划分界限之间,直到样本浮点数据集中不属于这两条划分界限之间的浮点数的个数满足预设的要求时,本次浮点数压缩训练结束。需要说明的是,本子步骤的具体执行过程以及训练结束的条件将在后续实施例进行详细介绍。
77.s203,若训练后的初始网络模型的图像分割精度满足预设要求,则将训练后的初始网络模型作为神经网络模型。
78.其中,图像分割精度所需要满足的预设要求可以是判断训练后的初始网络模型是否可以作为神经网络模型的标准。可选的,为了保证得到的神经网络模型的精度,该预设要求可以包括预先设置的图像分割精度阈值,其中,该分割精度阈值可以是分辨率的精度阈值,如5个分辨率的精度阈值;还可以是图像分割的准确程度的百分比阈值,如95%的精度阈值。为了保证得到的神经网络模型的稳定性,该预设要求还可以包括用于预设的初始网
络模型在连续进行图像分割时对应的相邻两次的分割精度的预设差值,如预设差值可以为2个分辨率或3%等。
79.可选的,在本步骤中,判断训练后的初始网络模型的图像分割精度是否满足预设要求,可以从以下两个子步骤进行评判:
80.s2031,依据至少两组验证图像数据,对训练后的初始网络模型进行图像分割精度分析。
81.其中,验证图像数据可以是用于验证训练后的初始网络模型是否满足预设要求时所使用的验证图像数据,其可以是在获取样本图像数据的过程中选出的,例如在获取样本图像数据中,将获取的图像数据中一定比例(如80%)的图像数据作为样本图像数据,剩余比例(如20%)的图像数据作为验证图像数据。还可以是专门选择出的能够全面验证训练后的初始网络模型是否满足预设要求所需的图像数据。可选的,本实施例为了保证判断初始网络模型是否满足图像分割精度的准确性,可以是选择至少两组验证图像数据进行验证,其中每一组验证图像数据的个数可以为至少一个。
82.示例性的,在依据至少两组验证图像数据,对训练后的初始网络模型进行图像分割精度分析时,可以是分别将每一组验证图像数据输入s202训练后的初始网络模型中,分析计算每一组验证图像数据对应的图像分割精度,若一组验证图像数据中包括多个验证图像数据,则可以是将该组内各验证图像数据对应的图像分割精度均值作为该组验证图像数据对应的图像分割精度。
83.s2032,若至少两组验证图像数据对应的图像分割精度大于预设精度阈值,且任意两组的图像分割精度的差值小于预设差值,则训练后的初始网络模型的图像分割精度满足预设要求。
84.可选的,在分析计算出各组验证图像数据对应的图像分割精度后,先判断各组验证图像数据对应的图像分割精度是否都大于预设精度阈值,如果是,再判断任意两组的图像分割精度的差值是否小于预设差值,如果是,则认为训练后的初始网络模型的图像分割精度满足预设要求,此时的初始网络模型已经可以作为训练好的进行图像分割处理的神经网络模型。否则,其他情况都认为本次训练后的初始网络模型还没有达到要求,需要再获取一组样本图像数据继续进行上述s201-s202的训练操作。
85.s204,获取摄像头采集到的图像数据,输入神经网络模型。
86.s205,获取神经网络模型输出的图像数据的分割结果。
87.s206,根据分割结果,对图像数据进行风格化处理。
88.可选的,本公开实施例中,样本图像数据集中的每一个样本图像数据都可以构建一组样本浮点数据集对各量化处理模块进行训练,所以对于一组样本图像数据集来说,可以对各量化处理模块迭代进行多次训练,为了提高训练效率,可以在对各量化处理模块依据一组样本浮点数据集进行一次浮点数压缩训练之后,还包括:将样本浮点数据集中被压缩的浮点数标记为所述量化处理模块的历史浮点数,并将各历史浮点数压缩后的数值作为所述各历史浮点数对应的压缩值。具体的,针对各量化处理模块,可以是将本组样本浮点数据集中被执行压缩操作的各浮点数的标记设置为该量化处理模块对应的历史浮点数,并将诉述各历史浮点数被压缩后的数值作为其对应的压缩值。例如,若在本组样本浮点数据集中,浮点数100.87被压缩为了64.0,则可以是将浮点数100.87标记为一个历史浮点数,并将
64.0作为浮点数100.87的压缩值。
89.这样设置的好处是在依据下一样本图像数据对应的下一组样本浮点数据集合对各量化处理模块进行压缩训练的时候,被标记为历史浮点数的各浮点数可直接压缩为其对应的压缩值,提高了压缩训练的效率。具体的,可以是在执行完s2021根据每一数据处理层产生的参数数据和输入到该数据处理层的输入数据中的浮点数构建该数据处理层关联的量化处理模块的一组样本浮点数据集之后,查找当前组样本浮点数据集中是否存在命中所述量化处理模块的历史浮点数的目标浮点数;若存在,则将所述目标浮点数的数值压缩为其命中的历史浮点数的压缩值。
90.本公开实施例提供的图像风格化处理方法,通过获取样本图像数据输入到初始网络模型中,基于初始网络模型中各数据处理层以及其关联的量化处理模块,联动对各数据处理层进行参数数据的调整以及其关联的量化处理模块进行压缩训练;若训练后的初始网络模型的图像分割精度满足预设要求时,则说明得到了训练好的神经网络模型。可以获取摄像头采集到的图像数据输入训练好的神经网络模型进行分割处理,并根据分割处理结果对图像数据进行风格化处理。本公开实施例的方案基于样本图像数据,联动对各数据处理层进行参数数据的调整以及其关联的量化处理模块进行压缩训练,保证训练好的神经网络模型在执行浮点数到定点数的量化时,对浮点数压缩到最佳数值范围内再进行浮点数到定点数的量化操作,在量化过程中,缩小了浮点数据集中浮点数集中出现区域的浮点数数值与浮点数据集中最大浮点数数值之间的距离,从而降低了神经网络模型在对输入数据进行处理的过程中因量化操作造成的精度损失,提高图像风格化处理效果。
91.图3a示出了本公开实施例提供的样本浮点数据集中浮点数出现频率的分布情况示意图;图3b示出了本公开实施例提供的一种量化处理模块压缩训练方法的流程图;图3c示出了本公开实施例提供的另一种量化处理模块压缩训练方法的流程图。本实施例在上述实施例提供的各个可选方案的基础上进行了优化,具体的,本实施例对上述实施例中对初始网络模型中的任意一个量化处理模块进行压缩训练的具体过程进行了两种可实施方式的详细介绍。
92.可选的,图3b所示的对初始网络模型中的任意一个量化处理模块进行压缩训练的一种可实施方式,具体包括如下步骤:
93.s301,在基于每一样本图像数据训练初始网络模型的每一数据处理层的参数数据过程中,根据每一数据处理层产生的参数数据和输入到该数据处理层的输入数据中的浮点数构建该数据处理层关联的量化处理模块的一组样本浮点数据集。
94.s302,确定样本浮点数据集的最大绝对值,作为当前最大值。
95.s303,根据当前最大值确定两条划分界限值,并以两条划分界限值将样本浮点数据集划分为第一子集和第二子集。
96.其中,划分界限值可以是对样本浮点数据集中的各浮点数据划分到两个不同的子集中的划分界限,本公开实施例中的由于浮点数包括正数和负数,所以实施例中的划分界限可以为两条,一条划分界限值为正数,另一条划分界限值为负数,两条划分界限值互为相反数。
97.可选的,本步骤中,依据当前最大值确定两条划分界限值的方法可以是,先根据当前最大值确定一条划分界限值,然后将该划分界限值的相反数作为另一条划分界限值。如
若根据当前最大值确定的一条划分界限值为64.0,则另一条划分界限值就为-64.0。进一步的,根据当前最大值,确定一条划分界限值的方法可以是将当前最大值除以预设数值(如2)的结果作为一条划分界限值。
98.可选的,本步骤在确定了两条划分界限值之后,可以基于这两条并划分界限值将样本浮点数据集中的各浮点数划分到第一子集和第二子集中。其中,具体的划分方法为:第一子集包含样本浮点数据集中数值不在两条划分界限值之间的浮点数;第二子集包含样本浮点数据集中数值在两条划分界限之间的浮点数。
99.示例性的,如图3a所示,样本浮点数据集中包括的浮点数的数值涉及的范围从-128.0到127.0,对该数据集中包括的各浮点数的数值取绝对值,得到的当前最大值为128.0,则可以是将128.0除以2的结果64.0作为一条划分界限值,另一条划分界限值为-64.0。以这两条划分界限值(64.0和-64.0)将所述样本浮点数据集中数值在-128.0到-64.0,以及64.0到127.0之间的浮点数划分到第一子集中,将样本浮点数据集中数值在-64.0到64.0之间的浮点数划分到第二子集中。
100.s304,判断第一子集中的浮点数个数与样本浮点数据集中的浮点数个数之比是否小于预设比例,若是,则执行s305,否则,执行s306。
101.可选的,在s303将样本浮点数据集中的各浮点数划分到两个子集中之后,统计第一子集中的浮点数的个数,并计算其占样本浮点数据集中的总浮点数个数的比例值,若该比例值小于预设比例值(如5%),则执行s305,训练量化处理模块执行一次压缩操作后,再次确定新的划分界限返回从新执行s303。若该比例值大于或等于预设比例值,则执行s306,完成对量化处理模块的一次浮点数压缩训练。
102.s305,训练量化处理模块将第一子集中的每个浮点数的数值都压缩为两条划分界限值中与该浮点数同符号的划分界限值,并将两条划分界限值中符号为正的划分界限值作为当前最大值,返回再次执行s303。
103.可选的,若第一子集中的浮点数个数与样本浮点数据集中的浮点数个数之比小于预设比例,则训练量化处理模块对第一子集中的浮点数执行一次压缩操作,具体的执行过程可以是将第一子集中数值为负数的各浮点数的数值设置为数值为负值的划分界限值;将第一子集中数值为正数的各浮点数的数值设置为数值为正值的划分界限值。例如,如图3a所示,若第一子集中的浮点数个数与样本浮点数据集中的浮点数个数之比为2%,小于预设比例5%,则将第一子集中数值在-128.0到-64.0之间的浮点数的数值设置为-64.0,将第一子集中数值在64.0到127.0之间的浮点数的数值设置为64.0。在对训练量化处理模块对第一子集中的浮点数执行一次压缩操作后,将划分界限值中符号为正的划分界限作为当前最大值,例如,将图3a中的两条划分界限值中的64.0作为当前最大值。进而根据重新确定的当前最大值,返回s303,再次执行依据重新确定的当前最大值对样本浮点数据集的划分操作。例如,当前最大值为64.0,重新确定两条划分界限值为
±
32.0,将样本浮点数据集中小于-32.0以及大于32.0的浮点数划分到第一子集中,若此时第一子集中的浮点数个数与样本浮点数据集中的浮点数个数之比仍小于预设比例,则将32.0作为当前最大值重新返回执行s303。若此时第一子集中的浮点数个数与样本浮点数据集中的浮点数个数之比为6%,大于预设比例5%,则执行s306。
104.s306,完成对量化处理模块的一次浮点数压缩训练。
105.示例性的,若此时第一子集中的浮点数个数与样本浮点数据集中的浮点数个数之比为6%,大于预设比例5%,则此时说明针对本组样本浮点数据集对该量化处理模块的一次压缩训练完成。
106.可选的,图3c所示的对初始网络模型中的任意一个量化处理模块进行压缩训练的另一种可实施方式,具体包括如下步骤:
107.s307,在基于每一样本图像数据训练初始网络模型的每一数据处理层的参数数据过程中,根据每一数据处理层产生的参数数据和输入到该数据处理层的输入数据中的浮点数构建该数据处理层关联的量化处理模块的一组样本浮点数据集。
108.s308,确定样本浮点数据集的最大绝对值,作为当前最大值。
109.s309,构建空集合作为历史子集,并将样本浮点数据集作为当前待划分数集。
110.其中,历史子集可以是预先构建的一个空集合,其用于存储对当前待划分数集划分后第三子集中包含的各浮点数。示例性的,本步骤可以是构建一个空集合作为历史子集,然后将图3a所示的样本浮点数据集作为当前待划分数集。
111.s310,根据当前最大值确定两条划分界限值,并以两条划分界限值将待划分集合划分为第三子集和第四子集。
112.可选的,本步骤中根据当前最大值确定两条划分界限值的方法可以与s303中根据当前最大值确定两条划分界限值的方法类似,在此不进行赘述。本步骤在确定出两条划分界限值之后,可以依据这两天划分界限值将待划分集合中的各浮点数划分到第三子集和第四子集中。其中,具体划分方法为:第三子集包含当前待划分数集中数值不在两条划分界限值之间的浮点数;第四子集包含当前待划分数集中数值在两条划分界限之间的浮点数。
113.示例性的,如图3a所示,该样本浮点数据集作为本次待划分集合,其中包括的浮点数的数值涉及的范围从-128.0到127.0,对本次待划分集合中包括的各浮点数的数值取绝对值,得到的当前最大值为128.0,则可以是将128.0除以2的结果64.0作为一条划分界限值,另一条划分界限值为-64.0。以这两条划分界限值(64.0和-64.0)将本次待划分集合中数值在-128.0到-64.0,以及64.0到127.0之间的浮点数划分到第三子集中,将本次待划分集合中数值在-64到64之间的浮点数划分到第四子集中。
114.s311,判断第三子集和历史子集中包含的浮点数总个数与样本浮点数据集中的浮点数个数之比是否小于预设比例,若是,则执行s312,若否,则执行s313。
115.可选的,在s310将待划分集合中的各浮点数划分到两个子集中之后,统计第三子集和历史子集中总共包含的浮点数的个数占样本浮点数据集中浮点数个数的比例值,若该比例值小于预设比例值(如5%),则执行s312,更新当前最大值、历史子集以及待划分集合后,返回重新执行s310。否则执行s313,训练量化处理模块执行一次压缩操作后,完成对量化处理模块的一次浮点数压缩训练。
116.s312,将两条划分界限值中符号为正的划分界限值作为当前最大值,将第三子集中的浮点数添加到历史子集中,将第四子集中的浮点数作为待划分集合,返回再次执行s310。
117.可选的,若第三子集和历史子集中包含的浮点数总个数与样本浮点数据集中的浮点数个数之比小于预设比例,则需要更新当前最大值、历史子集以及待划分集合重新,具体的更新方法可以是:将两条划分界限值中符号为正的划分界限作为当前最大值;将第三子
集中的所有浮点数添加到历史子集中;将第四子集作为当前的待划分集合,例如,如图3a所示,若第三子集和历史子集中包含的浮点数总个数与样本浮点数据集中的浮点数个数之为2%,小于预设比例5%,则将两条划分界限值(
±
64.0)中的64.0作为当前最大值;将第三子集(本次更新前的待划分集合中数值在-128.0到-64.0,以及64.0到127.0之间的浮点数构成的集合)中的各浮点数添加到历史子集中;将第四子集(本次更新前的待划分集合中数值在-64到64之间的浮点数构成的集合)作为当前更新后的待划分集合。
118.在更新当前最大值、历史子集以及待划分集合之后,返回重新执行s310执行依据当前最大值对待划分集合的划分操作。例如,当前最大值为64.0,重新确定两条划分界限值为
±
32.0,将当前的待划分集合中数值在-64.0到-32.0以及32.0到64.0之间的浮点数划分到第三子集中,将待划分集合中数值在-32.0到32.0之间的浮点数划分到第四子集中;若此时第三子集与历史子集中的浮点数个数与样本浮点数据集中的浮点数个数之比仍小于预设比例5%,则将32.0作为当前最大值;将第三子集(本次更新前的待划分集合中数值在-64.0到-32.0以及32.0到64.0之间的浮点数构成的集合)中的各浮点数添加到历史子集中,将第四子集(本次更新前的待划分集合中数值在-32.0到32.0之间的浮点数构成的集合)作为当前更新后的待划分集合后,重新返回执行s310。若此时第三子集与历史子集中的浮点数个数与样本浮点数据集中的浮点数个数之比为6%,大于预设比例5%,则执行s313。
119.s313,训练量化处理模块将第三子集和历史子集中的每个浮点数的数值都压缩为两条划分界限值中与该浮点数同符号的划分界限值,完成对量化处理模块的一次浮点数压缩训练。
120.可选的,若第三子集和历史子集中包含的浮点数总个数与样本浮点数据集中的浮点数个数之比大于或等于预设比例,则训练量化处理模块对第三子集和历史子集中的各浮点数执行一次压缩操作,具体的执行过程可以是将第三子集和历史子集中数值为负数的各浮点数的数值设置为数值为最终确定的划分界限值中符号为负的划分界限值;将第三子集和历史子集中数值为正数的各浮点数的数值设置为数值为最终确定的划分界限值中符号为正的划分界限值。
121.例如,如图3a所示,若以两条划分界限值为
±
32.0划分后的第三子集和历史子集中包含的浮点数总个数与样本浮点数据集中的浮点数个数之比为6%,大于预设比例5%,则此时可以将第三子集和历史子集中数值在-128.0到-32.0之间的浮点数的数值设置为-32.0,将第一子集中数值在32.0到127.0之间的浮点数的数值设置为32.0,完成对该量化处理模块的一次浮点数压缩训练。
122.可选的,在上述两种对初始网络模型中的任意一个量化处理模块进行压缩训练的可实施方式中,依据样本图像数据中的每一个样本图像数据训练初始网络模型的过程中,对于每个量化处理模块都可以构建一组用于训练该量化处理模块的样本浮点数据集。通过构建多组样本浮点数据集,按照上述方法对每个量化处理模块进行多次迭代压缩训练,进而完成对整个初始网络模型中的所有量化处理模块的压缩训练。可选的,可以在每一次执行完s306或s313,完成对量化处理模块的一次浮点数压缩训练之后,可以将本次进行数值压缩的各浮点数标记为该量化处理模块的历史浮点数,并将各历史浮点数最终压缩后的数值作为各历史浮点数对应的压缩值。相应的,还可以在每一次执行s302或s308之前,查找本次构成的样本浮点数据集中是否存在命中该量化处理模块的历史浮点数的目标浮点数,若
有,则直接将其压缩为对应历史浮点数的压缩值。
123.需要说明的是,本公开实施例提供的两种对初始网络模型中的任意一个量化处理模块进行压缩训练的可实施方式,可适用于上述各实施例训练本公开实施例中的神经网络模型的过程中,如可适用于训练本公开实施例的神经网络模型中的各量化处理模块的过程中。训练得到的神经网络模型可以适用于对上述各实施例所述的摄像头采集到的图像数据进行分割处理,进而实现对采集到的图像进行风格化处理的过程。
124.本公开实施例提供的两种量化处理模块压缩训练的可实施方式,在采用等比递减方式,依据当前最大值和样本浮点数据集对量化处理模块进行一次浮点数压缩训练时,一种可实施方式在每次对样本浮点数据集执行一次子集划分操作,且划分后的子集中浮点数的个数与样本浮点数据集中的浮点数总个数的比值小于预设比例时,就根据本次划分情况训练量化处理模块执行一次压缩操作;另一种可实施方式在对样本浮点数据集执行子集划分操作,且划分后的子集中浮点数的个数与样本浮点数据集中的浮点数总个数的比值大于或等于预设比例时,只根据最后依次划分情况,训练量化处理模块执行一次压缩操作。本实施例的两种可实施方式都可以准确的完成对各个量化处理模块的压缩训练操作,进而准确的实现联动对各数据处理层进行参数数据的调整以及其关联的量化处理模块进行压缩训练。通过这这两种方式训练得到的神经网络模型在执行浮点数到定点数的量化操作时,造成的精度量化损失较小,提高了神经网络模型的准确性,进而提高图像风格化处理效果。
125.图4示出了本公开实施例提供的一种图像风格化处理装置的结构示意图,本公开实施例可适用于图像风格化处理方法的情况,例如,可适用于基于预先训练好的每一数据处理层都设置有量化处理模块的特殊结构的神经网络模型来对摄像头采集到的图像数据进行分割处理,进而实现对采集到的图像进行风格化处理的情况。该装置可以通过软件和/或硬件来实现,并集成在执行本方法的电子设备中,如图4所示,该装置可以包括:
126.图像数据获取模块401,用于获取摄像头采集到的图像数据,输入神经网络模型;
127.分割结果获取模块402,用于获取所述神经网络模型输出的所述图像数据的分割结果;
128.风格化处理模块403,用于根据所述分割结果,对所述图像数据进行风格化处理;
129.其中,所述神经网络模型的每一数据处理层都设置有与其关联的量化处理模块,所述量化处理模块用于对与其关联的数据处理层的参数数据和输入数据进行浮点数压缩后执行量化处理操作,并将量化结果传输至与其关联的数据处理层进行所述数据处理层的功能处理操作。
130.本公开实施例提供了一种图像风格化处理装置,通过获取摄像头采集到的图像数据输入神经网络模型进行分割处理,并根据分割处理结果对图像数据进行风格化处理,其中,本公开实施例的神经网络模型的每一数据处理层都设置与其关联的量化处理模块,所述量化处理模块对与其关联的数据处理层的参数数据和输入数据进行浮点数压缩,对浮点数压缩后的数据进行量化处理,量化处理后的结果再由该数据处理层进行相关的功能处理。本公开实施例的神经网络模型在进行浮点数到定点数量化时,并非直接将浮点数基于预设原则量化为定点数,而是先将浮点数压缩到接近浮点数集中出现的区域后,再基于预设原则进行浮点数到定点数的量化操作,缩小了浮点数据集中浮点数集中出现区域的浮点数数值与浮点数据集中最大浮点数数值之间的距离,从而降低了神经网络模型在对输入数
据进行处理的过程中因量化操作造成的精度损失,提高图像风格化处理效果。
131.进一步的,所述图像数据为定点数,所述参数数据为浮点数;
132.若量化处理模块为神经网络模型的输入层关联的量化处理模块,则所述量化处理模块对所述输入层的参数数据进行浮点数压缩后量化为定点数,并将量化后的定点数和接收到的图像数据作为量化处理结果传输至所述输入层进行所述输入层的功能处理操作。
133.进一步的,上述装置还包括:
134.样本图像获取模块,用于获取样本图像数据集,并将所述样本图像数据集输入初始网络模型中;
135.网络模型训练模块,用于依据所述样本图像数据集,基于初始网络模型中每一数据处理层训练过程中产生的参数数据和输入到该数据处理层的输入数据,对该数据处理层关联的量化处理模块进行浮点数压缩训练;基于所述量化处理模块压缩训练过程中量化得到的量化数据,对与其关联的数据处理层的参数数据进行训练,并将该数据处理层训练所产生的下一层的输入数据传输给下一数据处理层关联的量化处理模块;
136.精度验证模块,用于若训练后的初始网络模型的图像分割精度满足预设要求,则将训练后的所述初始网络模型作为神经网络模型。
137.进一步的,上述网络模型训练模块包括:
138.浮点数集确定单元,用于在基于每一样本图像数据训练初始网络模型的每一数据处理层的参数数据过程中,根据所述每一数据处理层产生的参数数据和输入到该数据处理层的输入数据中的浮点数构建该数据处理层关联的量化处理模块的一组样本浮点数据集;
139.最大值确定单元,用于确定所述样本浮点数据集的最大绝对值,作为当前最大值;
140.压缩训练单元,依据所述当前最大值和所述样本浮点数据集对所述量化处理模块进行一次浮点数压缩训练。
141.进一步的,上述压缩训练单元具体用于:
142.根据当前最大值确定两条划分界限值,并以所述划分界限值将所述样本浮点数据集划分为第一子集和第二子集;其中,所述两条划分界限值互为相反数;第一子集包含样本浮点数据集中数值不在两条划分界限值之间的浮点数;第二子集包含样本浮点数据集中数值在两条划分界限之间的浮点数;
143.若第一子集中的浮点数个数与样本浮点数据集中的浮点数个数之比小于预设比例,则训练所述量化处理模块将第一子集中的每个浮点数的数值都压缩为两条划分界限值中与该浮点数同符号的划分界限值,并将所述两条划分界限值中符号为正的划分界限值作为当前最大值,返回再次执行依据所述当前最大值对样本浮点数据集的划分操作;
144.若第一子集中的浮点数个数与样本浮点数据集中的浮点数个数之比大于或等于预设比例,则完成对所述量化处理模块的一次浮点数压缩训练。
145.进一步的,上述压缩训练单元还具体用于:
146.构建空集合作为历史子集,并将所述样本浮点数据集作为当前待划分数集;
147.根据当前最大值确定两条划分界限值,并以所述划分界限值将所述待划分集合划分为第三子集和第四子集;其中,第三子集包含当前待划分数集中数值不在两条划分界限值之间的浮点数;第四子集包含当前待划分数集中数值在两条划分界限之间的浮点数;
148.若第三子集和历史子集中包含的浮点数总个数与样本浮点数据集中的浮点数个
数之比小于预设比例,则将两条划分界限值中符号为正的划分界限值作为当前最大值,将所述第三子集中的浮点数添加到历史子集中,将第四子集中的浮点数作为待划分集合,返回再次执行依据所述当前最大值对待划分集合的划分操作;
149.若第三子集和历史子集中包含的浮点数总个数与样本浮点数据集中的浮点数个数之比大于或等于预设比例,则训练所述量化处理模块将第三子集和历史子集中的每个浮点数的数值都压缩为两条划分界限值中与该浮点数同符号的划分界限值,完成对所述量化处理模块的一次浮点数压缩训练。
150.进一步的,上述精度验证模块,在判断训练后的初始网络模型的图像分割精度满足预设要求时,具体用于:
151.依据至少两组验证图像数据,对训练后的初始网络模型进行图像分割精度分析;
152.若所述至少两组验证图像数据对应的图像分割精度大于预设精度阈值,且任意两组的图像分割精度的差值小于预设差值,则所述训练后的初始网络模型的图像分割精度满足预设要求。
153.进一步的,上述装置还包括:
154.浮点数标记模块,用于将所述样本浮点数据集中被压缩的浮点数标记为所述量化处理模块的历史浮点数,并将各历史浮点数压缩后的数值作为所述各浮历史点数对应的压缩值。
155.进一步的,上述装置还包括:
156.浮点数查找模块,用于查找当前组样本浮点数据集中是否存在命中所述量化处理模块的历史浮点数的目标浮点数;
157.浮点数压缩模块,用于若当前组样本浮点数据集中存在命中所述量化处理模块的历史浮点数的目标浮点数,则将所述目标浮点数的数值压缩为其命中的历史浮点数的压缩值。
158.进一步的,上述风格化处理模块403具体用于:
159.根据所述分割结果,识别所述图像数据的背景区域;
160.对所述图像数据的背景区域进行背景虚化处理。
161.本公开实施例提供的图像风格化处理装置,与上述各实施例提供的图像风格化处理方法属于同一发明构思,未在本公开实施例中详尽描述的技术细节可参见上述各实施例,并且本公开实施例与上述各实施例具有相同的有益效果。
162.下面参考图5,其示出了适于用来实现本公开实施例的电子设备500的结构示意图。本公开实施例中的电子设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、pda(个人数字助理)、pad(平板电脑)、pmp(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字tv、台式计算机等等的固定终端。图5示出的电子设备500仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
163.如图5所示,电子设备500可以包括处理装置(例如中央处理器、图形处理器等)501,其可以根据存储在只读存储器(rom)502中的程序或者从存储装置508加载到随机访问存储器(ram)503中的程序而执行各种适当的动作和处理。在ram 503中,还存储有电子设备500操作所需的各种程序和数据。处理装置501、rom 502以及ram 503通过总线504彼此相连。输入/输出(i/o)接口505也连接至总线504。
164.通常,以下装置可以连接至i/o接口505:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置506;包括例如液晶显示器(lcd)、扬声器、振动器等的输出装置507;包括例如磁带、硬盘等的存储装置508;以及通信装置509。通信装置509可以允许电子设备500与其他设备进行无线或有线通信以交换数据。虽然图5示出了具有各种装置的电子设备500,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
165.特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置509从网络上被下载和安装,或者从存储装置508被安装,或者从rom 502被安装。在该计算机程序被处理装置501执行时,执行本公开实施例的方法中限定的上述功能。
166.需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等等,或者上述的任意合适的组合。
167.在一些实施方式中,电子设备可以利用诸如http(hypertext transfer protocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“lan”),广域网(“wan”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
168.上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
169.上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备内部进程执行:获取摄像头采集到的图像数据,输入神经网络模型;获取所述神经网络模型输出的所述图像数据的分割结果;根据所述分割结果,对所述图像数据进行风格化处理;其中,所述神经网络模型的每一数据处理层都设置有与其关联的量化处理模块,所述量化处理模块用于对与其关联的数据处理层的参数数据和输入数
据进行浮点数压缩后执行量化处理操作,并将量化结果传输至与其关联的数据处理层进行所述数据处理层的功能处理操作。
170.可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
171.附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
172.描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定。
173.本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、片上系统(soc)、复杂可编程逻辑设备(cpld)等等。
174.在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
175.根据本公开的一个或多个实施例提供的一种图像风格化处理方法,该方法包括:
176.获取摄像头采集到的图像数据,输入神经网络模型;
177.获取所述神经网络模型输出的所述图像数据的分割结果;
178.根据所述分割结果,对所述图像数据进行风格化处理;
179.其中,所述神经网络模型的每一数据处理层都设置有与其关联的量化处理模块,所述量化处理模块用于对与其关联的数据处理层的参数数据和输入数据进行浮点数压缩
后执行量化处理操作,并将量化结果传输至与其关联的数据处理层进行所述数据处理层的功能处理操作。
180.根据本公开的一个或多个实施例,上述方法中,所述图像数据为定点数,所述参数数据为浮点数;
181.若量化处理模块为神经网络模型的输入层关联的量化处理模块,则所述量化处理模块对所述输入层的参数数据进行浮点数压缩后量化为定点数,并将量化后的定点数和接收到的图像数据作为量化处理结果传输至所述输入层进行所述输入层的功能处理操作。
182.根据本公开的一个或多个实施例,上述方法中,所述神经网络模型的训练过程,包括:
183.获取样本图像数据集,并将所述样本图像数据集输入初始网络模型中;
184.依据所述样本图像数据集,基于初始网络模型中每一数据处理层训练过程中产生的参数数据和输入到该数据处理层的输入数据,对该数据处理层关联的量化处理模块进行浮点数压缩训练;基于所述量化处理模块压缩训练过程中量化得到的量化数据,对与其关联的数据处理层的参数数据进行训练,并将该数据处理层训练所产生的下一层的输入数据传输给下一数据处理层关联的量化处理模块;
185.若训练后的初始网络模型的图像分割精度满足预设要求,则将训练后的所述初始网络模型作为神经网络模型。
186.根据本公开的一个或多个实施例,上述方法中,基于初始网络模型中每一数据处理层训练过程中产生的参数数据和输入到该数据处理层的输入数据,对该数据处理层关联的量化处理模块进行浮点数压缩训练,包括:
187.在基于每一样本图像数据训练初始网络模型的每一数据处理层的参数数据过程中,根据所述每一数据处理层产生的参数数据和输入到该数据处理层的输入数据中的浮点数构建该数据处理层关联的量化处理模块的一组样本浮点数据集;
188.确定所述样本浮点数据集的最大绝对值,作为当前最大值;
189.依据所述当前最大值和所述样本浮点数据集对所述量化处理模块进行一次浮点数压缩训练。
190.根据本公开的一个或多个实施例,上述方法中,依据所述当前最大值和所述样本浮点数据集对所述量化处理模块进行一次浮点数压缩训练,包括:
191.根据当前最大值确定两条划分界限值,并以所述划分界限值将所述样本浮点数据集划分为第一子集和第二子集;其中,所述两条划分界限值互为相反数;第一子集包含样本浮点数据集中数值不在两条划分界限值之间的浮点数;第二子集包含样本浮点数据集中数值在两条划分界限之间的浮点数;
192.若第一子集中的浮点数个数与样本浮点数据集中的浮点数个数之比小于预设比例,则训练所述量化处理模块将第一子集中的每个浮点数的数值都压缩为两条划分界限值中与该浮点数同符号的划分界限值,并将所述两条划分界限值中符号为正的划分界限值作为当前最大值,返回再次执行依据所述当前最大值对样本浮点数据集的划分操作;
193.若第一子集中的浮点数个数与样本浮点数据集中的浮点数个数之比大于或等于预设比例,则完成对所述量化处理模块的一次浮点数压缩训练。
194.根据本公开的一个或多个实施例,上述方法中,依据所述当前最大值和所述样本
浮点数据集对所述量化处理模块进行一次浮点数压缩训练,包括:
195.构建空集合作为历史子集,并将所述样本浮点数据集作为当前待划分数集;
196.根据当前最大值确定两条划分界限值,并以所述划分界限值将所述待划分集合划分为第三子集和第四子集;其中,第三子集包含当前待划分数集中数值不在两条划分界限值之间的浮点数;第四子集包含当前待划分数集中数值在两条划分界限之间的浮点数;
197.若第三子集和历史子集中包含的浮点数总个数与样本浮点数据集中的浮点数个数之比小于预设比例,则将两条划分界限值中符号为正的划分界限值作为当前最大值,将所述第三子集中的浮点数添加到历史子集中,将第四子集中的浮点数作为待划分集合,返回再次执行依据所述当前最大值对待划分集合的划分操作;
198.若第三子集和历史子集中包含的浮点数总个数与样本浮点数据集中的浮点数个数之比大于或等于预设比例,则训练所述量化处理模块将第三子集和历史子集中的每个浮点数的数值都压缩为两条划分界限值中与该浮点数同符号的划分界限值,完成对所述量化处理模块的一次浮点数压缩训练。
199.根据本公开的一个或多个实施例,上述方法中,训练后的初始网络模型的图像分割精度满足预设要求,包括:
200.依据至少两组验证图像数据,对训练后的初始网络模型进行图像分割精度分析;
201.若所述至少两组验证图像数据对应的图像分割精度大于预设精度阈值,且任意两组的图像分割精度的差值小于预设差值,则所述训练后的初始网络模型的图像分割精度满足预设要求。
202.根据本公开的一个或多个实施例,上述方法中,在依据所述当前最大值和所述样本浮点数据集对所述量化处理模块进行一次浮点数压缩训练之后,还包括
203.将所述样本浮点数据集中被压缩的浮点数标记为所述量化处理模块的历史浮点数,并将各历史浮点数压缩后的数值作为所述各历史浮点数对应的压缩值。
204.根据本公开的一个或多个实施例,上述方法中,在根据所述每一数据处理层产生的参数数据和输入到该数据处理层的输入数据中的浮点数构建该数据处理层关联的量化处理模块的一组样本浮点数据集之后,还包括:
205.查找当前组样本浮点数据集中是否存在命中所述量化处理模块的历史浮点数的目标浮点数;
206.若存在,则将所述目标浮点数的数值压缩为其命中的历史浮点数的压缩值。
207.根据本公开的一个或多个实施例,上述方法中,根据所述分割结果,对所述图像数据进行风格化处理,包括:
208.根据所述分割结果,识别所述图像数据的背景区域;
209.对所述图像数据的背景区域进行背景虚化处理。
210.根据本公开的一个或多个实施例提供的一种图像风格化处理装置,该装置包括:
211.图像数据获取模块,用于获取摄像头采集到的图像数据,输入神经网络模型;
212.分割结果获取模块,用于获取所述神经网络模型输出的所述图像数据的分割结果;
213.风格化处理模块,用于根据所述分割结果,对所述图像数据进行风格化处理;
214.其中,所述神经网络模型的每一数据处理层都设置有与其关联的量化处理模块,
所述量化处理模块用于对与其关联的数据处理层的参数数据和输入数据进行浮点数压缩后执行量化处理操作,并将量化结果传输至与其关联的数据处理层进行所述数据处理层的功能处理操作。
215.根据本公开的一个或多个实施例,上述装置中的所述图像数据为定点数,所述参数数据为浮点数;
216.若量化处理模块为神经网络模型的输入层关联的量化处理模块,则所述量化处理模块对所述输入层的参数数据进行浮点数压缩后量化为定点数,并将量化后的定点数和接收到的图像数据作为量化处理结果传输至所述输入层进行所述输入层的功能处理操作。
217.根据本公开的一个或多个实施例,上述装置中的还包括:
218.样本图像获取模块,用于获取样本图像数据集,并将所述样本图像数据集输入初始网络模型中;
219.网络模型训练模块,用于依据所述样本图像数据集,基于初始网络模型中每一数据处理层训练过程中产生的参数数据和输入到该数据处理层的输入数据,对该数据处理层关联的量化处理模块进行浮点数压缩训练;基于所述量化处理模块压缩训练过程中量化得到的量化数据,对与其关联的数据处理层的参数数据进行训练,并将该数据处理层训练所产生的下一层的输入数据传输给下一数据处理层关联的量化处理模块;
220.精度验证模块,用于若训练后的初始网络模型的图像分割精度满足预设要求,则将训练后的所述初始网络模型作为神经网络模型。
221.根据本公开的一个或多个实施例,上述装置中的网络模型训练模块包括:
222.浮点数集确定单元,用于在基于每一样本图像数据训练初始网络模型的每一数据处理层的参数数据过程中,根据所述每一数据处理层产生的参数数据和输入到该数据处理层的输入数据中的浮点数构建该数据处理层关联的量化处理模块的一组样本浮点数据集;
223.最大值确定单元,用于确定所述样本浮点数据集的最大绝对值,作为当前最大值;
224.压缩训练单元,用于依据所述当前最大值和所述样本浮点数据集对所述量化处理模块进行一次浮点数压缩训练。
225.根据本公开的一个或多个实施例,上述装置中的压缩训练单元具体用于:
226.根据当前最大值确定两条划分界限值,并以所述划分界限值将所述样本浮点数据集划分为第一子集和第二子集;其中,所述两条划分界限值互为相反数;第一子集包含样本浮点数据集中数值不在两条划分界限值之间的浮点数;第二子集包含样本浮点数据集中数值在两条划分界限之间的浮点数;
227.若第一子集中的浮点数个数与样本浮点数据集中的浮点数个数之比小于预设比例,则训练所述量化处理模块将第一子集中的每个浮点数的数值都压缩为两条划分界限值中与该浮点数同符号的划分界限值,并将所述两条划分界限值中符号为正的划分界限值作为当前最大值,返回再次执行依据所述当前最大值对样本浮点数据集的划分操作;
228.若第一子集中的浮点数个数与样本浮点数据集中的浮点数个数之比大于或等于预设比例,则完成对所述量化处理模块的一次浮点数压缩训练。
229.根据本公开的一个或多个实施例,上述装置中的压缩训练单元还具体用于:
230.构建空集合作为历史子集,并将所述样本浮点数据集作为当前待划分数集;
231.根据当前最大值确定两条划分界限值,并以所述划分界限值将所述待划分集合划
分为第三子集和第四子集;其中,第三子集包含当前待划分数集中数值不在两条划分界限值之间的浮点数;第四子集包含当前待划分数集中数值在两条划分界限之间的浮点数;
232.若第三子集和历史子集中包含的浮点数总个数与样本浮点数据集中的浮点数个数之比小于预设比例,则将两条划分界限值中符号为正的划分界限值作为当前最大值,将所述第三子集中的浮点数添加到历史子集中,将第四子集中的浮点数作为待划分集合,返回再次执行依据所述当前最大值对待划分集合的划分操作;
233.若第三子集和历史子集中包含的浮点数总个数与样本浮点数据集中的浮点数个数之比大于或等于预设比例,则训练所述量化处理模块将第三子集和历史子集中的每个浮点数的数值都压缩为两条划分界限值中与该浮点数同符号的划分界限值,完成对所述量化处理模块的一次浮点数压缩训练。
234.根据本公开的一个或多个实施例,上述装置中的精度验证模块,在判断训练后的初始网络模型的图像分割精度满足预设要求时,具体用于:
235.依据至少两组验证图像数据,对训练后的初始网络模型进行图像分割精度分析;
236.若所述至少两组验证图像数据对应的图像分割精度大于预设精度阈值,且任意两组的图像分割精度的差值小于预设差值,则所述训练后的初始网络模型的图像分割精度满足预设要求。
237.根据本公开的一个或多个实施例,上述装置还包括:
238.浮点数标记模块,用于将所述样本浮点数据集中被压缩的浮点数标记为所述量化处理模块的历史浮点数,并将各历史浮点数压缩后的数值作为所述各浮历史点数对应的压缩值。
239.根据本公开的一个或多个实施例,上述装置还包括:
240.浮点数查找模块,用于查找当前组样本浮点数据集中是否存在命中所述量化处理模块的历史浮点数的目标浮点数;
241.浮点数压缩模块,用于若当前组样本浮点数据集中存在命中所述量化处理模块的历史浮点数的目标浮点数,则将所述目标浮点数的数值压缩为其命中的历史浮点数的压缩值。
242.根据本公开的一个或多个实施例,上述装置中的风格化处理模块403具体用于:
243.根据所述分割结果,识别所述图像数据的背景区域;
244.对所述图像数据的背景区域进行背景虚化处理。
245.根据本公开的一个或多个实施例提供的一种电子设备,该电子设备包括:
246.一个或多个处理器;
247.存储器,用于存储一个或多个程序;
248.当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本公开任意实施例所述的图像风格化处理方法。
249.根据本公开的一个或多个实施例提供的一种可读介质,其上存储有计算机程序,该程序被处理器执行时实现如本公开任意实施例所述的图像风格化处理方法。
250.以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行
任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
251.此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
252.尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1