一种基于卷积神经网络的图像处理方法及移动终端技术

技术编号:17706577 阅读:64 留言:0更新日期:2018-04-14 19:02
本发明专利技术公开了一种基于卷积神经网络的图像处理方法,卷积神经网络包括多个数据层和多个处理层,每个数据层包括多个特征图,该方法在移动终端的图形处理器中执行,图形处理器包括图形存储器,图形存储器中存储有纹理图,纹理图中以第一数据类型存储有当前数据层的多个第一特征图,该方法包括:将纹理图中的数据转化为第二数据类型,以获取当前数据层的多个第一特征图;当前处理层对第二数据类型的多个第一特征图进行渲染处理,以生成下一个数据层的多个第二特征图;将多个第二特征图中的数据转化为第一数据类型,存储至纹理图中。本发明专利技术一并公开了相应的移动终端。

【技术实现步骤摘要】
一种基于卷积神经网络的图像处理方法及移动终端
本专利技术涉及图像处理
,尤其涉及一种基于卷积神经网络的图像处理方法及移动终端。
技术介绍
卷积神经网络(CNN,ConvolutionalNeuralNetwork)在图像处理领域扮演着重要的角色,例如,图像的分类、分割、风格转换、画质改善等,均可以采用CNN来实现,以取得比传统处理方法更好的效果。目前,基于CNN的图像处理在PC端得到了广泛应用,然而,其在移动终端上的应用仍存在瓶颈,尤其是当CNN达到数百层时,需要大量的浮点数乘法运算及大量的内存申请,导致移动终端的计算效率跟不上CNN的发展速度。移动端GPU的发展以及跨平台的OpenGLES3.x(OpenGraphicsLibraryforEmbeddedSystems3.x)图形程序接口为移动端的CNN计算带来了极大的便利。虽然基于OpenGLES3.x的GPU并行计算提高了CNN的处理效率,在脚本渲染时能够快速进行浮点数的运算,但其在数据存储方面仍存在瓶颈。一方面,OpenGLES3.x可以支持32位浮点型(float32)以及32位无符号整型(uint32)的纹理存储,但是纹理最多只能存储四通道(RGBA)数据。另一方面,OpenGLES3.x支持的纹理的大小也有限制,相对低端的GPU芯片,纹理的宽和高均需限制在2048个像素的范围内。此外,对于图像风格转换、视频风格转换等复杂的图像处理,CNN往往多达几十层甚至数百层,在采用纹理存储CNN数据时,势必会导致大量纹理的创建、绑定和解绑,降低了计算效率。因此,需要提供一种存储效率更高、处理速度更快的CNN图像处理方法。
技术实现思路
为此,本专利技术提供一种基于卷积神经网络的图像处理方法及移动终端,以解决或至少缓解上面存在的问题。根据本专利技术的一个方面,提供一种基于卷积神经网络的图像处理方法,所述卷积神经网络包括多个数据层和多个处理层,每个数据层包括多个特征图,所述方法在移动终端的图形处理器中执行,所述图形处理器包括图形存储器,所述图形存储器中存储有纹理图,所述纹理图中以第一数据类型存储有当前数据层的多个第一特征图,所述方法包括:将纹理图中的数据转化为第二数据类型,以获取当前数据层的多个第一特征图;当前处理层对第二数据类型的多个第一特征图进行渲染处理,以生成下一个数据层的多个第二特征图;将所述多个第二特征图中的数据转化为第一数据类型,存储至所述纹理图中。可选地,在根据本专利技术的基于卷积神经网络的图像处理方法中,所述第一数据类型为32位无符号整型,所述第二数据类型为16位浮点型;所述将纹理图中的数据转化为第二数据类型的步骤包括:将纹理图中的每一个32位无符号整数转化为两个16位浮点数。可选地,在根据本专利技术的基于卷积神经网络的图像处理方法中,所述将所述多个第二特征图中的数据转化为第一数据类型的步骤包括:将所述多个第二特征图两两进行组合,得到多个第二特征图对;对于每一个第二特征图对,将其中一个第二特征图的每一个16位浮点数与另一个第二特征图的相应位置的16位浮点数转化为一个32位无符号整数。可选地,在根据本专利技术的基于卷积神经网络的图像处理方法中,所述纹理图包括多个纹理区块,每个纹理区块包括RGBA四个通道,每个通道适于存储一个第二特征图对;所述存储至所述纹理图中的步骤包括:将多个第二特征图对按顺序存储至各纹理区块的各通道中。可选地,在根据本专利技术的基于卷积神经网络的图像处理方法中,所述网络参数还包括第二特征图的数量和尺寸,以及下一个数据层所对应的纹理图所包括的纹理区块的数量和纹理图的尺寸,其中,所述第二特征图的尺寸包括第二特征图的横向数据点的数量和纵向数据点的数量;所述纹理区块的数量为ceil(c/8),其中,c为第二特征图的数量,ceil(c/8)表示大于等于(c/8)的最小整数;所述纹理图的尺寸按照以下步骤确定:将纹理区块的数量因数分解为w*h,以使得(w*第二特征图的横向数据点的数量)与(h*第二特征图的纵向数据点的数量)的差值的绝对值最小;所述纹理图的横向数据点的数量为(w*第二特征图的横向数据点的数量),所述纹理图的纵向数据点的数量为(h*第二特征图的纵向数据点的数量)。可选地,在根据本专利技术的基于卷积神经网络的图像处理方法中,所述将多个第二特征图对按顺序存储至各纹理区块的各通道中的步骤包括:将第i个第二特征图对存储至第ceil(i/4)个纹理区块的第(mod(i-1,4)+1)个通道中,其中,mod(i-1,4)表示(i-1)除以4所得的余数。可选地,在根据本专利技术的基于卷积神经网络的图像处理方法中,所述移动终端还包括存储器,所述存储器中存储有待处理图像;所述方法还包括:将存储器中的所述待处理图像缓存至所述图形存储器中,并将所述待处理图像作为第一个数据层输入到所述卷积神经网络;所述卷积神经网络的第一个处理层对所述待处理图像进行渲染处理,以生成第二个数据层的多个特征图;将第二个数据层的多个特征图中的数据转化为第一数据类型,存储至所述纹理图中。可选地,在根据本专利技术的基于卷积神经网络的图像处理方法中,还包括:将纹理图中的数据转化为第二数据类型,以获取倒数第二个数据层的多个特征图;所述卷积神经网络的最后一个处理层对倒数第二个数据层的多个特征图进行渲染处理,以生成结果图像;将所述结果图像输出至所述存储器中进行存储。可选地,在根据本专利技术的基于卷积神经网络的图像处理方法中,所述渲染处理的步骤由OpenGLES3.x图形程序接口来完成,所述图形存储器中还存储有适于执行所述渲染处理的OpenGLES3.x脚本。根据本专利技术的另一个方面,提供一种移动终端,包括:至少一个图形处理器;和存储有程序指令的存储器,其中,所述程序指令被配置为适于由所述至少一个图形处理器执行,所述程序指令包括用于执行如上所述的基于卷积神经网络的图像处理方法的指令。根据本专利技术的又一个方面,提供一种存储有程序指令的可读存储介质,当所述程序指令被移动终端读取并执行时,使得所述移动终端执行如上所述的基于卷积神经网络的图像处理方法。根据本专利技术的技术方案,纹理图中包括多个纹理区块,每个纹理区块包括RGBA四个通道,每个通道以uint32(第一数据类型)来存储数据。在CNN的各处理层中,参与计算的数据、以及其渲染所得出的特征图中的数据均为第二数据类型(float16),但在纹理图中,将两个特征图中的float16的数据转化为一个第一数据类型(uint32)的数据进行存储。这样,纹理图中的每一个通道可以存储两个特征图,提高了多通道的存储效率以及并行计算的效率,实现了CNN图像处理的加速。本专利技术的技术方案中,数据层的所有特征图均存储于一张纹理图中。在CNN的处理层进行渲染处理时,从纹理图的各纹理区块的各通道中读取数据,进行分块渲染,无需创建多个纹理,避免了纹理渲染过程中不断地绑定、解绑纹理的操作,从而节省了计算时间,提高了计算效率。由于本专利技术的纹理图中存储了当前参与计算的所有特征图,且图形存储器中存储有CNN的各项网络参数以及OpenGLES3.x脚本,在GPU执行CNN计算时,可以直接从图形存储器中快速读写数据并进行渲染。除了待处理图像的输入以及结果图像的输出,各处理层的计算完全由GPU完成,而无需与CPU本文档来自技高网
...
一种基于卷积神经网络的图像处理方法及移动终端

【技术保护点】
一种基于卷积神经网络的图像处理方法,所述卷积神经网络包括多个数据层和多个处理层,每个数据层包括多个特征图,所述方法在移动终端的图形处理器中执行,所述图形处理器包括图形存储器,所述图形存储器中存储有纹理图,所述纹理图中以第一数据类型存储有当前数据层的多个第一特征图,所述方法包括:将纹理图中的数据转化为第二数据类型,以获取当前数据层的多个第一特征图;当前处理层对第二数据类型的多个第一特征图进行渲染处理,以生成下一个数据层的多个第二特征图;将所述多个第二特征图中的数据转化为第一数据类型,存储至所述纹理图中。

【技术特征摘要】
1.一种基于卷积神经网络的图像处理方法,所述卷积神经网络包括多个数据层和多个处理层,每个数据层包括多个特征图,所述方法在移动终端的图形处理器中执行,所述图形处理器包括图形存储器,所述图形存储器中存储有纹理图,所述纹理图中以第一数据类型存储有当前数据层的多个第一特征图,所述方法包括:将纹理图中的数据转化为第二数据类型,以获取当前数据层的多个第一特征图;当前处理层对第二数据类型的多个第一特征图进行渲染处理,以生成下一个数据层的多个第二特征图;将所述多个第二特征图中的数据转化为第一数据类型,存储至所述纹理图中。2.如权利要求1所述的方法,其中,所述第一数据类型为32位无符号整型,所述第二数据类型为16位浮点型;所述将纹理图中的数据转化为第二数据类型的步骤包括:将纹理图中的每一个32位无符号整数转化为两个16位浮点数。3.如权利要求2所述的方法,其中,所述将所述多个第二特征图中的数据转化为第一数据类型的步骤包括:将所述多个第二特征图两两进行组合,得到多个第二特征图对;对于每一个第二特征图对,将其中一个第二特征图的每一个16位浮点数与另一个第二特征图的相应位置的16位浮点数转化为一个32位无符号整数。4.如权利要求3所述的方法,其中,所述纹理图包括多个纹理区块,每个纹理区块包括RGBA四个通道,每个通道适于存储一个第二特征图对;所述存储至所述纹理图中的步骤包括:将多个第二特征图对按顺序存储至各纹理区块的各通道中。5.如权利要求4所述的方法,其中,所述网络参数还包括第二特征图的数量和尺寸,以及下一个数据层所对应的纹理图所包括的纹理区块的数量和纹理图的尺寸,其中,所述第二特征图的尺寸包括第二特征图的横向数据点的数量和纵向数据点的数量;所述纹理区块的数量为ceil(c/8),其中,c为第二特征图的数量,ceil(c/8)表示大于等于(c/8)的最小整数;所述纹理...

【专利技术属性】
技术研发人员:李启东李志阳张伟许清泉傅松林
申请(专利权)人:厦门美图之家科技有限公司
类型:发明
国别省市:福建,35

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1