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

一种图像处理方法、装置、设备及介质与流程

2022-04-13 18:55:39 来源:中国专利 TAG:


1.本发明涉及图像处理技术领域,特别涉及一种图像处理方法、装置、设备及介质。


背景技术:

2.目前在神经网络中普遍存在池化处理,比较常用的池化处理类型包括最大值池化、最小值池化和均值池化等。由于池化处理的特殊性,现阶段在神经网络处理器中通常将池化模块单独实现。
3.如图1所示,在卷积处理之后先将卷积处理结果存入缓存空间,当需要进行池化处理时,再从上述缓存空间中将先前的池化处理结果加载出来进行池化处理。然而,由于池化处理结果的数据占用量较大,从而导致需要占用比较多的缓存空间以及总线带宽,并且需要消耗更多的数据加载时间以及增加池化逻辑所占芯片面积。


技术实现要素:

4.有鉴于此,本发明的目的在于提供一种图像处理方法、装置、设备及介质,能够有效降低池化过程对缓存空间以及总线带宽的占用,并提升数据加载速度以及减少池化逻辑所占芯片面积。其具体方案如下:
5.第一方面,本技术提供了一种图像处理方法,包括:
6.获取通过卷积核得到的卷积特征图;
7.根据第一池化子窗口,对所述卷积特征图进行第一池化操作,并将所述第一池化操作的结果保存至预设缓存空间;所述第一池化子窗口对应的第一子窗口滑动方向基于所述卷积核的第一遍历方向确定,与所述第一遍历方向保持一致;
8.根据第二池化子窗口,对从所述预设缓存空间中加载的所述第一池化操作的结果进行第二池化操作,以得到池化特征图,并将所述池化特征图保存至所述预设缓存空间;所述第二池化子窗口对应的第二子窗口滑动方向基于所述卷积核的第二遍历方向确定,与所述第二遍历方向保持一致,并且,所述第二遍历方向为根据所述第一遍历方向确定的遍历方向。
9.可选的,所述将所述第一池化操作的结果保存至预设缓存空间之前,还包括:
10.基于所述第一池化操作和所述第二池化操作的池化结果数据特点,对所述预设缓存空间的缓存结构进行调整,以得到缓存结构与所述第一池化操作和所述第二池化操作的池化结果数据特点相匹配的所述预设缓存空间。
11.可选的,所述根据第一池化子窗口,对所述卷积特征图进行第一池化操作之前,还包括:
12.确定所述卷积核的第一遍历方向,并基于所述第一遍历方向确定所述第一子窗口滑动方向;所述第一遍历方向包括图像宽度方向或图像高度方向;
13.基于原始完整池化窗口在所述第一遍历方向上的窗口尺寸,确定第一子窗口尺寸;
14.根据所述第一子窗口滑动方向以及所述第一子窗口尺寸构造相应的池化子窗口,以得到所述第一池化子窗口。
15.可选的,所述基于原始完整池化窗口在所述第一遍历方向上的窗口尺寸,确定第一子窗口尺寸,包括:
16.将原始完整池化窗口在所述第一遍历方向上的窗口尺寸确定为所述第一池化子窗口在所述第一子窗口滑动方向上的窗口尺寸,以及将所述第一池化子窗口在所述第二遍历方向上的窗口尺寸设置为1。
17.可选的,所述根据第二池化子窗口,对从所述预设缓存空间中加载的所述第一池化操作的结果进行第二池化操作之前,还包括:
18.确定所述卷积核的第二遍历方向,并基于所述第二遍历方向确定所述第二子窗口滑动方向;
19.基于原始完整池化窗口在所述第二遍历方向上的窗口尺寸,确定第二子窗口尺寸;
20.根据所述第二子窗口滑动方向以及所述第二子窗口尺寸构造相应的池化子窗口,以得到所述第二池化子窗口。
21.可选的,所述基于原始完整池化窗口在所述第二遍历方向上的窗口尺寸,确定第二子窗口尺寸,包括:
22.将原始完整池化窗口在所述第二遍历方向上的窗口尺寸确定为所述第二池化子窗口在所述第二子窗口滑动方向上的窗口尺寸,以及将所述第二池化子窗口在所述第一遍历方向上的窗口尺寸设置为1。
23.可选的,所述图像处理方法,还包括:
24.基于片上缓存或片外缓存构建缓存空间,以得到所述预设缓存空间。
25.第二方面,本技术提供了一种图像处理装置,包括:
26.卷积特征图获取模块,用于获取通过卷积核得到的卷积特征图;
27.输入端与所述卷积特征图获取模块连接的第一池化子处理模块,用于根据第一池化子窗口,对所述卷积特征图进行第一池化操作;所述第一池化子窗口对应的第一子窗口滑动方向基于所述卷积核的第一遍历方向确定,与所述第一遍历方向保持一致;
28.数据缓存模块,与所述第一池化子处理模块的输出端连接,用于获取所述第一池化操作的结果,并将所述第一池化操作的结果保存至预设缓存空间;
29.与所述数据缓存模块连接的第二池化子处理模块,用于根据第二池化子窗口,对从所述预设缓存空间中加载的所述第一池化操作的结果进行第二池化操作,以得到池化特征图,并将所述池化特征图保存至所述预设缓存空间;所述第二池化子窗口对应的第二子窗口滑动方向基于所述卷积核的第二遍历方向确定,与所述第二遍历方向保持一致,并且,所述第二遍历方向为根据所述第一遍历方向确定的遍历方向。
30.第三方面,本技术提供了一种电子设备,包括:
31.存储器,用于保存计算机程序;
32.处理器,用于执行所述计算机程序,以实现前述的图像处理方法的步骤。
33.第四方面,本技术提供了一种计算机可读存储介质,用于保存计算机程序,所述计算机程序被处理器执行时实现前述的图像处理方法的步骤。
34.本技术中,在获取到通过卷积核得到的卷积特征图之后,并非是直接将卷积特征图保存至预设缓存空间,而是先根据预先基于卷积核的第一遍历方向确定的第一池化子窗口对卷积特征图进行了第一池化操作,然后再将第一池化操作的结果保存至预设缓存空间,接着根据预先基于卷积核的第二遍历方向确定的第二池化子窗口,对从预设缓存空间中加载的所述第一池化操作的结果进行第二池化操作,从而得到最终的池化特征图。由此可见,本技术在进行上述池化处理的过程中,并没有将数据占用量过大的卷积特征图直接保存至预设缓存空间,而是先通过第一池化子窗口进行第一池化操作,得到数据占用量较少的缓存数据,这样一来,能够有效降低池化过程对缓存空间以及总线带宽的占用,并提升数据加载速度以及减少池化逻辑所占芯片面积。
附图说明
35.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
36.图1为目前神经网络处理器中池化处理过程示意图;
37.图2为本技术公开的一种图像处理方法流程图;
38.图3为本技术公开的一种池化处理过程示意图;
39.图4为本技术公开的一种图像处理方法子流程图;
40.图5为本技术公开的一种图像处理方法子流程图;
41.图6为本技术公开的一种具体的第一池化操作示意图;
42.图7为本技术公开的一种具体的第二池化操作示意图;
43.图8为本技术公开的一种图像处理装置结构示意图;
44.图9为本技术公开的一种电子设备结构图。
具体实施方式
45.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
46.由于池化处理的特殊性,现阶段在神经网络处理器中通常将池化模块单独实现。具体的,在卷积处理之后先将卷积处理结果存入缓存空间,当需要进行池化处理时,再从上述缓存空间中将先前的池化处理结果加载出来进行池化处理。然而,由于池化处理结果的数据占用量较大,从而导致需要占用比较多的缓存空间以及总线带宽,并且需要消耗更多的数据加载时间以及逻辑运算资源。为此,本技术提供了一种图像处理方法,能够有效降低池化过程对缓存空间以及总线带宽的占用,并提升数据加载速度以及减少逻辑运算资源的消耗。
47.参见图2所示,本发明实施例公开了一种图像处理方法,包括:
48.步骤s11、获取通过卷积核得到的卷积特征图。
49.可以理解的是,本实施例中,为了获取上述卷积特征图,具体可以先获取待卷积图像数据,然后利用神经网络模型中的卷积核对所述待卷积图像数据进行卷积运算,以得到卷积特征图。
50.本实施例中,在进行上述卷积运算之前,需要先确定出卷积核的尺寸大小以及卷积核对应的遍历方向顺序。其中,本技术实施例可以基于待卷积图像数据的图像尺寸大小以及用户实际应用需求确定上述卷积核的尺寸大小。另外,上述卷积核对应的遍历方向顺序包括第一遍历方向和第二遍历方向,其中,第二遍历方向可以基于第一遍历方向进行确定,也即当第一遍历方向确定之后,第二遍历方向也随之得以确定。在本实施例中,上述第一遍历方向具体为卷积核的先遍历方向,第二遍历方向为卷积核的后遍历方向。例如,如果其先遍历方向为图像宽度方向,则其后遍历方向则为图像高度方向,与此对应的,上述第一遍历方向即为图像宽度方向,第二遍历方向即为图像高度方向。反之,如果其先遍历方向为图像高度方向,则其后遍历方向则为图像宽度方向,与此对应的,上述第一遍历方向即为图像高度方向,第二遍历方向即为图像宽度方向。可以理解的是,在待卷积图像数据的图像尺寸大小、卷积核的尺寸大小以及卷积核在遍历时每次跨越的步长确定下来之后,便可以据此推算出卷积运算后输出的卷积特征图的尺寸大小。
51.步骤s12、根据第一池化子窗口,对所述卷积特征图进行第一池化操作,并将所述第一池化操作的结果保存至预设缓存空间;所述第一池化子窗口对应的第一子窗口滑动方向基于所述卷积核的第一遍历方向确定,与所述第一遍历方向保持一致。
52.本实施例中,考虑到卷积特征图与池化结果之间的数据特点存在较大差异,为了避免原有的缓存结构不适合专门用于保存池化结果,本技术实施例可以将所述第一池化操作的结果保存至预设缓存空间之前,进一步包括:基于所述第一池化操作和所述第二池化操作的池化结果数据特点,对所述预设缓存空间的缓存结构进行调整,以得到缓存结构与所述第一池化操作和所述第二池化操作的池化结果数据特点相匹配的所述预设缓存空间。可以理解的是,上述缓存结构的调整过程具体可以通过软件来实现,并且在调整完之后,当需要向缓存结构中写入数据时可以通过工具链来确定出数据写入地址,避免出现写入地址错误的情况出现。本实施例中,第一池化结果相对于卷积结果来说,第一池化后的数据比卷积结果数据的数据占用量更小,因此,本实施例可以基于这种数据特点,将上述用来保存池化结果的缓存空间的缓存结构调整为适合于用来保存小型数据的存储结构,这样有利于提升缓存空间的利用率。
53.进一步的,本实施例中的上述图像处理方法,还可以包括:基于片上缓存或片外缓存构建缓存空间,以得到所述预设缓存空间。其中,上述片上缓存包括但不限于sram(static random-access memory,静态随机存取存储器),上述片外缓存包括但不限于ddr sdram(即double data rate,双倍速率同步动态随机存储器)。
54.步骤s13、根据第二池化子窗口,对从所述预设缓存空间中加载的所述第一池化操作的结果进行第二池化操作,以得到池化特征图,并将所述池化特征图保存至所述预设缓存空间;所述第二池化子窗口对应的第二子窗口滑动方向基于所述卷积核的第二遍历方向确定,与所述第二遍历方向保持一致,并且,所述第二遍历方向为根据所述第一遍历方向确定的遍历方向。
55.本实施例中,在进行上述第一池化操作和第二池化操作之前,可以先将原始完整
池化窗口的尺寸、池化窗口每次滑动的步长、补零参数以及卷积的输出尺寸配置到神经网络处理器中,以根据上述配置参数在卷积运算完成到写入预设缓存空间之前执行部分的池化处理,以避免直接将卷积特征图保存至预设缓存空间。其中,本实施例可以基于卷积核的第一遍历方向确定第一池化子窗口对应的第一子窗口滑动方向,以使得所述第一池化子窗口对应的第一子窗口滑动方向与所述第一遍历方向保持一致,以及基于卷积核的第二遍历方向确定第二池化子窗口对应的第二子窗口滑动方向,以使得所述第二池化子窗口对应的第二子窗口滑动方向与所述第二遍历方向保持一致。
56.第一遍历方向包括图像宽度方向或图像高度方向,并且,第二遍历方向为根据所述第一遍历方向确定的遍历方向,即当第一遍历方向为图像宽度方向时,第二遍历方向为图像高度方向,或者当第一遍历方向为图像高度方向时,第二遍历方向为图像宽度方向。
57.参见图3所示,本实施例中在获取到尺寸为w(宽度)*h(高度)*c(深度)的待卷积图像数据后,经过卷积运算、relu激活函数以及批量归一化bn(即batch normalization)的处理后,得到相应的卷积特征图,然后对上述卷积特征图进行第一步池化操作,并将第一步池化操作的结果保存至缓存空间。接着,从缓存空间中加载上述第一步池化操作的结果,并对上述第一步池化操作的结果进行第二步池化操作,从而得到相应的池化特征图,然后将上述池化特征图保存至缓存空间。其中,上述第一步池化操作的池化方向,即对应的第一子窗口滑动方向,与第一遍历方向(w方向或h方向)相一致;同理,上述第二步池化操作的池化方向,即对应的第二子窗口滑动方向,与第二遍历方向相一致。
58.本技术实施例中,在获取到通过卷积核得到的卷积特征图之后,并非是直接将卷积特征图保存至预设缓存空间,而是先根据预先基于卷积核的第一遍历方向确定的第一池化子窗口对卷积特征图进行了第一池化操作,然后再将第一池化操作的结果保存至预设缓存空间,接着根据预先基于卷积核的第二遍历方向确定的第二池化子窗口,对从预设缓存空间中加载的所述第一池化操作的结果进行第二池化操作,从而得到最终的池化特征图。由此可见,本技术实施例在进行上述池化处理的过程中,并没有将数据占用量过大的卷积特征图直接保存至预设缓存空间,而是先通过第一池化子窗口进行第一池化操作,得到数据占用量较少的缓存数据,这样一来,能够有效降低池化过程对缓存空间以及总线带宽的占用,并提升数据加载速度以及减少池化逻辑所占芯片面积。
59.在前一实施例中公开的技术方案的基础上,本实施例对前一实施例中公开的一些步骤流程展开进一步的细化说明。
60.参见图4所示,本实施例中,所述根据第一池化子窗口,对所述卷积特征图进行第一池化操作之前,具体还包括:
61.步骤s21、确定所述卷积核的第一遍历方向,并基于所述第一遍历方向确定所述第一子窗口滑动方向。
62.步骤s22、基于原始完整池化窗口在所述第一遍历方向上的窗口尺寸,确定第一子窗口尺寸。
63.本实施例中,所述基于原始完整池化窗口在所述第一遍历方向上的窗口尺寸,确定第一子窗口尺寸,具体可以包括:将原始完整池化窗口在所述第一遍历方向上的窗口尺寸确定为所述第一池化子窗口在所述第一子窗口滑动方向上的窗口尺寸,以及将所述第一池化子窗口在所述第二遍历方向上的窗口尺寸设置为1。例如,假设第一遍历方向为宽度方
向,并且原始完整池化窗口在宽度方向上的窗口尺寸为5,则这种情况下第一池化子窗口在第一子窗口滑动方向(即宽度方向)上的窗口尺寸也为5,另外第一池化子窗口在高度方向上的窗口尺寸则设置为1,因此第一池化子窗口对应的第一子窗口尺寸为5*1。
64.步骤s23、根据所述第一子窗口滑动方向以及所述第一子窗口尺寸构造相应的池化子窗口,以得到所述第一池化子窗口。
65.参见图5所示,本实施例中,所述根据第二池化子窗口,对从所述预设缓存空间中加载的所述第一池化操作的结果进行第二池化操作之前,具体还包括:
66.步骤s31、确定所述卷积核的第二遍历方向,并基于所述第二遍历方向确定所述第二子窗口滑动方向。
67.步骤s32、基于原始完整池化窗口在所述第二遍历方向上的窗口尺寸,确定第二子窗口尺寸。
68.其中,所述基于原始完整池化窗口在所述第二遍历方向上的窗口尺寸,确定第二子窗口尺寸,具体可以包括:将原始完整池化窗口在所述第二遍历方向上的窗口尺寸确定为所述第二池化子窗口在所述第二子窗口滑动方向上的窗口尺寸,以及将所述第二池化子窗口在所述第一遍历方向上的窗口尺寸设置为1。
69.步骤s33、根据所述第二子窗口滑动方向以及所述第二子窗口尺寸构造相应的池化子窗口,以得到所述第二池化子窗口。
70.参见图6和图7所示,第一遍历方向为w方向,即宽度方向,后遍历方向为h方向,即高度反向,因此,与此对应的第一池化子窗口对应的第一子窗口滑动方向为w方向,第二池化子窗口对应的第二子窗口滑动方向则为h方向。另外,卷积运算输出的卷积特征图的尺寸大小为15*12*1,原始完整池化窗口的尺寸为3*3,池化窗口每次滑动的步长为3,此时可以将第一池化子窗口对应的第一子窗口尺寸确定为3*1,第二池化子窗口对应的第二子窗口尺寸确定为1*3。通过上述第一池化子窗口在w方向上对上述卷积特征图进行第一池化操作之后,输出的第一池化操作的结果对应的尺寸降低为5*12,此时将第一池化操作的结果保存至上述预设缓存空间。然后接着再从上述预设缓存空间中加载第一池化操作的结果,并利用上述第二池化子窗口对加载的第一池化操作的结果在h方向上进行第二池化操作,得到最后池化的特征图的尺寸为5*4。另外,需要指出的是,图6和图7的特征图上每一行中的数字1至15、数字1至5等并非是表示特征图上像素点的像素值,而仅仅是用于表示每一行中每个像素点的序号。
71.参见图8所示,本技术实施例还相应公开了一种图像处理装置,包括:
72.卷积特征图获取模块11,用于获取通过卷积核得到的卷积特征图;
73.输入端与所述卷积特征图获取模块11连接的第一池化子处理模块12,用于根据第一池化子窗口,对所述卷积特征图进行第一池化操作;所述第一池化子窗口对应的第一子窗口滑动方向基于所述卷积核的第一遍历方向确定,与所述第一遍历方向保持一致;
74.数据缓存模块13,与所述第一池化子处理模块12的输出端连接,用于获取所述第一池化操作的结果,并将所述第一池化操作的结果保存至预设缓存空间;
75.与所述数据缓存模块13连接的第二池化子处理模块14,用于根据第二池化子窗口,对从所述预设缓存空间中加载的所述第一池化操作的结果进行第二池化操作,以得到池化特征图,并将所述池化特征图保存至所述预设缓存空间;所述第二池化子窗口对应的
第二子窗口滑动方向基于所述卷积核的第二遍历方向确定,与所述第二遍历方向保持一致,并且,所述第二遍历方向为根据所述第一遍历方向确定的遍历方向。
76.其中,关于上述各个模块的具体工作流程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
77.本技术实施例中,在获取到通过卷积核得到的卷积特征图之后,并非是直接将卷积特征图保存至预设缓存空间,而是先根据预先基于第一遍历方向确定的第一池化子窗口对卷积特征图进行了第一池化操作,然后再将第一池化操作的结果保存至预设缓存空间,接着根据预先基于第二遍历方向确定的第二池化子窗口,对从预设缓存空间中加载的所述第一池化操作的结果进行第二池化操作,从而得到最终的池化特征图。由此可见,本技术实施例在进行上述池化处理的过程中,并没有将数据占用量过大的卷积特征图直接保存至预设缓存空间,而是先通过第一池化子窗口进行第一池化操作,得到数据占用量较少的缓存数据,这样一来,能够有效降低池化过程对缓存空间以及总线带宽的占用,并提升数据加载速度以及减少池化逻辑所占芯片面积。
78.进一步的,本技术实施例还提供了一种电子设备。图9是根据一示例性实施例示出的电子设备20结构图,图中的内容不能认为是对本技术的使用范围的任何限制。
79.图9为本技术实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、显示屏23、输入输出接口24、通信接口25、电源26、和通信总线27。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的图像处理方法中的相关步骤。另外,本实施例中的电子设备20具体可以为电子计算机。本实施例中,所述处理器21具体可以包括但不限于神经网络加速芯片。
80.本实施例中,电源26用于为电子设备20上的各硬件设备提供工作电压;通信接口25能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本技术技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口24,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
81.另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括计算机程序221,存储方式可以是短暂存储或者永久存储。其中,计算机程序221除了包括能够用于完成前述任一实施例公开的由电子设备20执行的图像处理方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
82.进一步的,本技术实施例还公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的图像处理方法。
83.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排
除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
84.以上对本发明所提供的一种图像处理方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
再多了解一些

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

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

相关文献