卷积神经网络模型的通道调整方法、装置和设备

文档序号:616056 发布日期:2021-05-07 浏览:10次 >En<

阅读说明:本技术 卷积神经网络模型的通道调整方法、装置和设备 (Channel adjustment method, device and equipment of convolutional neural network model ) 是由 张洪光 于 2021-02-07 设计创作,主要内容包括:本发明公开了一种卷积神经网络模型的通道转换方法,包括:当输入图片的当前格式与卷积神经网络模型的输入格式不同时,提取卷积神经网络模型中第一层卷积层的权重;对所述输入图片进行尺寸调整,得到所述输入图片的目标格式;根据所述输入图片的目标格式对所述卷积层的权重进行调整,得到所述卷积层的目标权重;将所述目标权重赋值给所述卷积层。本发明还公开了一种卷积神经网络模型的通道调整装置、设备和一种计算机可读存储介质。采用本发明实施例,能支持不同框架模型中通道的调整,提高了模型的处理效率。(The invention discloses a channel conversion method of a convolutional neural network model, which comprises the following steps: when the current format of the input picture is different from the input format of the convolutional neural network model, extracting the weight of a first layer of convolutional layer in the convolutional neural network model; adjusting the size of the input picture to obtain a target format of the input picture; adjusting the weight of the convolutional layer according to the target format of the input picture to obtain the target weight of the convolutional layer; assigning the target weight to the convolutional layer. The invention also discloses a channel adjusting device and equipment of the convolutional neural network model and a computer readable storage medium. By adopting the embodiment of the invention, the adjustment of channels in different frame models can be supported, and the processing efficiency of the models is improved.)

卷积神经网络模型的通道调整方法、装置和设备

技术领域

本发明涉及人工智能技术领域,尤其涉及一种卷积神经网络模型的通道调整方法、装置和设备。

背景技术

卷积神经网络(Convolutional Neural Network,CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。在人工智能技术领域,深度学习是一类机器学习算法,使用多个层逐步从原始输入中逐步提取更高级别的特征。例如,在图像处理中,较低层可以识别边缘,而较高层可以识别对人类有意义的部分,可以在分类和检测任务中达到较高的准确率。但是,由于受限于训练过程中使用的数据集和预处理工具,训练完成的神经网络通常仅能用在与训练集类型相同/数据格式一致的应用环境下,如果需要使用不同类型的输入数据,比如将YUV格式的图片输入到RGB输入模型中,通常是对当前图片的格式做一次转换,将图片从YUV格式转换为RGB格式,然后再输入到RGB输入模型中,但是格式的转换需要消耗计算,如果有很多的YUV格式图片,将它们一一转换消耗的时间长,导致网络预处理时间长,数据处理效率低。

发明内容

本发明实施例的目的是提供一种卷积神经网络模型的通道调整方法、装置、设备和存储介质,能支持不同框架下模型中卷积通道的调整,提高了卷积神经网络模型的处理效率。

为实现上述目的,本发明实施例提供了一种卷积神经网络模型的通道调整方法,包括:

当输入图片的当前格式与卷积神经网络模型的输入格式不同时,提取卷积神经网络模型中第一层卷积层的权重;

对所述输入图片进行尺寸调整,得到所述输入图片的目标格式;

根据所述输入图片的目标格式对所述卷积层的权重进行调整,得到所述卷积层的目标权重;

将所述目标权重赋值给所述卷积层。

作为上述方案的改进,所述对所述输入图片进行尺寸调整,包括:

取所述输入图片的其中一个通道作为目标通道;

根据所述目标通道的尺寸对所述输入图片的其余通道的尺寸进行调整。

作为上述方案的改进,所述根据所述目标通道的尺寸对所述输入图片的其余通道的尺寸进行调整,包括:

根据所述目标通道的尺寸,对所述输入图片的其余通道中的子通道进行复制,以使所述其余通道的尺寸与所述目标通道的尺寸相同。

作为上述方案的改进,所述根据所述输入图片的目标格式对所述卷积层的权重进行调整,包括:

获取所述输入图片的目标格式与所述卷积神经网络模型的输入格式之间的转换关系,根据所述转换关系对所述卷积层的权重进行调整。

作为上述方案的改进,所述根据所述输入图片的目标格式对所述卷积层的权重进行调整,包括:

对所述卷积层的权重进行一次格式转换,以将所述卷积层的权重从初始格式转换成通用格式;其中,所述通用格式为扩展程序库中的数组形式;

根据所述输入图片的目标格式对所述通用格式下的所述卷积层的权重进行调整;

对所述通用格式下的所述卷积层的权重进行二次格式转换。

作为上述方案的改进,所述扩展程序库为numpy库。

为实现上述目的,本发明实施例还提供一种卷积神经网络模型的通道调整装置,包括:

权重提取模块,用于当输入图片的当前格式与卷积神经网络模型的输入格式不同时,提取卷积神经网络模型中第一层卷积层的权重;

图片尺寸调整模块,用于对所述输入图片进行尺寸调整,得到所述输入图片的目标格式;

权重调整模块,用于根据所述输入图片的目标格式对所述卷积层的权重进行调整,得到所述卷积层的目标权重;

权重赋值模块,用于将所述目标权重赋值给所述卷积层。

作为上述方案的改进,所述图片尺寸调整模块用于:

取所述输入图片的其中一个通道作为目标通道;

根据所述目标通道的尺寸对所述输入图片的其余通道的尺寸进行调整。

为实现上述目的,本发明实施例还提供一种卷积神经网络模型的通道调整设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上述任一实施例所述的卷积神经网络模型的通道调整方法。

为实现上述目的,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如上述任一实施例所述的卷积神经网络模型的通道调整方法。

相比于现有技术,本发明实施例公开的卷积神经网络模型的通道调整方法、装置、设备和存储介质,首先,当输入图片的当前格式与卷积神经网络模型的输入格式不同时,提取卷积神经网络模型中第一层卷积层的权重;然后,对所述输入图片进行尺寸调整,得到所述输入图片的目标格式,使输入图片的尺寸适用于模型中卷积层的通道;最后,根据所述输入图片的目标格式对所述卷积层的权重进行调整,得到所述卷积层的目标权重。由于在对卷积层的通道进行调整的过程中,对卷积层的权重进行了格式调整,使得卷积神经网络模型能够适应不同格式的输入图片,同时能够支持不同框架下模型中卷积通道的调整,提高了卷积神经网络模型的处理效率。

附图说明

图1是本发明实施例提供的一种卷积神经网络模型的通道调整方法的流程图;

图2是本发明实施例提供的卷积神经网络模型的示意图;

图3是本发明实施例提供的一种YUV颜色通道的示意图;

图4是本发明实施例提供的调整图片尺寸后的YUV颜色通道的示意图;

图5是本发明实施例提供的一种卷积神经网络模型的通道调整装置的结构框图;

图6是本发明实施例提供的一种卷积神经网络模型的通道调整设备的结构框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

参见图1,图1是本发明实施例提供的一种卷积神经网络模型的通道调整方法的流程图,所述卷积神经网络模型的通道调整方法包括:

S1、当输入图片的当前格式与卷积神经网络模型的输入格式不同时,提取卷积神经网络模型中第一层卷积层的权重;

S2、对所述输入图片进行尺寸调整,得到所述输入图片的目标格式;

S3、根据所述输入图片的目标格式对所述卷积层的权重进行调整,得到所述卷积层的目标权重;

S4、将所述目标权重赋值给所述卷积层。

值得说明的是,本发明实施例所述的卷积神经网络模型的通道调整方法可以由图片处理装置中的控制器执行实现,所述卷积神经网络模型能够适用多种多样的深度学习框架,如:TensorFlow、Caffe、Theano、Keras、PyTorch、Mxnet等框架,本发明实施例提供的通道调整方法可以进行多种图片格式之间的相互转换,如:RGB、BGR、YUV等图片格式。YUV是一种颜色编码方法,YUV分为三个分量,“Y”表示明亮度(Luminance或Luma),也就是灰度值,而“U”和“V”表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度。现在的YUV是通常用于计算机领域用来表示使用YCbCr编码的文件,所以可以粗浅地视YUV为YCbCr。

参见图2,图2是本发明实施例提供的卷积神经网络模型的示意图,输入是一张8*8*3的图片,W0是模型第一层卷积层的权重,它由4个卷积核组成,每个卷积核有3个通道。

参见图3,图3是本发明实施例提供的一种YUV颜色通道的示意图,从图中可以看出,YU12数据格式中,Y1、Y2、Y7、Y8共用U1和V1。该图下方的线性数组为YUV420在内存中的存储顺序,可以看出Y、U和V都是顺序存储的。往外读的时候,先按顺序将Y分量写出,然后再根据U、V分别将它们依次读出即可。

具体地,在步骤S1中,首先需要判断输入图片的格式与卷积神经网络模型的输入格式是否相同,若相同,则此时无需对所述卷积神经网络模型的权重进行调整;若不相同,则提取卷积神经网络模型中第一层卷积层的权重。所述权重为所述卷积神经网络中卷积核的权重,用于做卷积计算,不同的权重对应不同的输出效果。

具体地,在步骤S2中,对所述输入图片进行尺寸调整,得到所述输入图片的目标格式。首先,取所述输入图片的其中一个通道作为目标通道;然后,根据所述目标通道的尺寸对所述输入图片的其余通道的尺寸进行调整。

示例性的,取所述输入图片的Y通道为目标通道,根据Y通道的尺寸,对所述输入图片的其余通道中的子通道进行复制,以使所述其余通道的尺寸与所述目标通道的尺寸相同。如图4所示,4个U1是经过第一个U1复制三次得到的。

在本发明实施例中,YUV图片通过插值成为YUV三通道尺寸相同的格式的目的是保证输入CNN网络的数据必须是一个c*h*w的方块数组,但是YUV格式三个通道每个通道的尺寸是不一样大的,无法直接输入,因此通过padding(复制),每一个位置YUV值可以一一对应,而RGB和YUV是线性关系,卷积计算也是线性关系,那么YUV转RGB的计算就可以直接融入卷积核中,从而节省计算量。UV通道经过调整之后,YUV三通道的个数保持一致,该调整只需要简单的复制,不需要进行计算,所以效率极高。

具体地,在步骤S3中,在一种实施方式中,所述根据所述输入图片的目标格式对所述卷积层的权重进行调整,包括:

获取所述输入图片的目标格式与所述卷积神经网络模型的输入格式之间的转换关系,根据所述转换关系对所述卷积层的权重进行调整。

示例性的,在本发明实施例,所述输入图片在输入到不同输入格式的所述卷积神经网络模型时,可以按照两种格式之间的转换关系预先对所述输入图片进行格式转换,以使所述输入图片的格式与所述卷积神经网络模型的输入格式对应,此时,所述卷积层的权重的格式也按照这个转换关系进行直接转换,此时只进行了一次格式转换就能得到所述卷积层的目标权重。

在另一种实施方式中,所述根据所述输入图片的目标格式对所述卷积层的权重进行调整,包括步骤S31~S33:

S31、对所述卷积层的权重进行一次格式转换,以将所述卷积层的权重从初始格式转换成通用格式;其中,所述通用格式为扩展程序库中的数组形式;

S32、根据所述输入图片的目标格式对所述通用格式下的所述卷积层的权重进行调整;

S33、对所述通用格式下的所述卷积层的权重进行二次格式转换。

具体地,在步骤S31中,不同框架下,卷积神经网络模型的模型定义方法和权重存储方式都是不一样的。如:Caffe框架中,模型定义在prototxt文件下,权重保存在caffemodel文件下;Pytorch框架中,模型定义和权重保存在pth文件中;tensorflow框架中,模型定义和权重保存在pb文件中。对于不同框架下的卷积神经网络模型,由于权重保存格式不同,所以处理方法也不同。

可选地,所述通用格式为扩展程序库中的数组(array)形式。所述扩展程序库可以为numpy库,numpy(Numerical Python)是Python语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。

不同框架下卷积神经网络模型第一层卷积层转换为numpy的方法是不一样的。对于caffe框架下的卷积层,需要调用caffe库和numpy库,先载入模型,再提取第一层卷积核,第一层提取的卷积核即为numpy格式。对于pytorch框架,提取的第一层卷积核为Tensor格式,需要调用W.numpy()函数进行格式转换,其中W表示第一层卷积核。对于tensorflow框架,可参考现有技术中的格式转换方式,在此不再赘述。

在本发明实施例中,对权重做格式转换的目的是为了找到一种中间媒介格式,用于处理不同框架下CNN模型格式的差异。

具体地,在步骤S32中,所述根据所述输入图片的目标格式对所述通用格式下的所述卷积层的权重进行调整。

示例性的,可以对所述权重的值进行调整,以适应所述目标格式,具体的权重的值的调整方式可根据实际情况设定,本发明对此不做具体限定。

具体地,在步骤S33中,在对所述卷积层的权重进行调整后,此时对所述通用格式下的所述权重进行二次格式转换,得到所述卷积层的目标权重。

进一步的,在对所述通用格式下的所述卷积层的权重进行调整的过程中,此时还可以按照预设的通道转换策略将所述卷积层中每一个卷积核的通道转换成与所述输入图片的目标格式对应的通道。

示例性的,当需要将YUV格式的图片输入到RGB格式的模型中时,首先将YUV转RGB的计算融入到第一层卷积层中,YUV和RGB的转换公式是线性关系,而卷积计算也是只有乘加计算的线性关系,对于第一层卷积计算,满足以下公式:

Y=WX+b 公式(1);

其中,W是卷积核,X是输入的RGB图片,b是偏差bias;

RGB和YUV的线性关系的矩阵表达方式如下:

公式(2)可以简化为:

X=QZ+a公式(3);

将公式(3)代入公式(1),得:

Y=W(QZ+a)+b=WQZ+Wa+b=PZ+C 公式(4);

其中,P=WQ,c=Wa+b,Z即为步骤S3中通过简单复制得到的YUV图。

由以上公式可知,可以把YUV转RGB的计算过程融入到卷积核中,在保持模型前向推理计算量不变的情况下,完成RGB模型接收YUV格式图片作为输入的转换。

在本发明实施例中,根据输入图片的格式对卷积神经网络模型中的通道进行调整,使得卷积神经网络模型能够适应不同格式的输入图片,同时能够支持不同框架下模型中卷积通道的调整,提高了卷积神经网络模型的处理效率。

具体地,在步骤S4中,将所述目标权重赋值给所述卷积层。

在本发明实施例中,通过对权重进行两次格式转换,目的在于兼容各种框架(Caffe、Pytorch、tensorflow等),不同框架下,模型有不同的存储格式,本发明实施例中提出使用中间数据类型array类型作为媒介,先将模型第一层卷积层转换为array类型,然后统一处理,处理完成后再统一赋值给原模型,从而解决了不同框架下模型通道转换的问题,能够使得卷积神经网络模型的通道转换不受框架类型的限制。

相比于现有技术,本发明实施例公开的卷积神经网络模型的通道调整方法,首先,当输入图片的当前格式与卷积神经网络模型的输入格式不同时,提取卷积神经网络模型中第一层卷积层的权重;然后,对所述输入图片进行尺寸调整,得到所述输入图片的目标格式,使输入图片的尺寸适用于模型中卷积层的通道;最后,根据所述输入图片的目标格式对所述卷积层的权重进行调整,得到所述卷积层的目标权重。由于在对卷积层的通道进行调整的过程中,对卷积层的权重进行了格式调整,使得卷积神经网络模型能够适应不同格式的输入图片,同时能够支持不同框架下模型中卷积通道的调整,提高了卷积神经网络模型的处理效率。

参见图5,图5是本发明实施例提供的一种卷积神经网络模型的通道调整装置10的结构框图,所述卷积神经网络模型的通道调整装置10包括:

权重提取模块11,用于当输入图片的当前格式与卷积神经网络模型的输入格式不同时,提取卷积神经网络模型中第一层卷积层的权重;

图片尺寸调整模块12,用于对所述输入图片进行尺寸调整,得到所述输入图片的目标格式;

权重调整模块13,用于根据所述输入图片的目标格式对所述卷积层的权重进行调整,得到所述卷积层的目标权重;

权重赋值模块14,用于权重赋值模块,用于将所述目标权重赋值给所述卷积层。

值得说明的是,本发明实施例所述的卷积神经网络模型的通道调整装置10可以为图片处理装置中的控制器,所述卷积神经网络模型能够适用多种多样的深度学习框架,如:TensorFlow、Caffe、Theano、Keras、PyTorch、Mxnet等框架,本发明实施例提供的通道调整方法可以进行多种图片格式之间的相互转换,如:RGB、BGR、YUV等图片格式。

可选地,所述图片尺寸调整模块12用于:

取所述输入图片的其中一个通道作为目标通道;

根据所述目标通道的尺寸对所述输入图片的其余通道的尺寸进行调整。

可选地,所述根据所述目标通道的尺寸对所述输入图片的其余通道的尺寸进行调整,包括:

根据所述目标通道的尺寸,对所述输入图片的其余通道的子通道进行复制,以使所述其余通道的尺寸与所述目标通道的尺寸相同。

可选地,所述权重调整模块13用于:

获取所述输入图片的目标格式与所述卷积神经网络模型的输入格式之间的转换关系,根据所述转换关系对所述卷积层的权重进行调整。

可选地,所述权重调整模块13用于:

对所述卷积层的权重进行一次格式转换,以将所述卷积层的权重从初始格式转换成通用格式;其中,所述通用格式为扩展程序库中的数组形式;

根据所述输入图片的目标格式对所述通用格式下的所述卷积层的权重进行调整;

对所述通用格式下的所述卷积层的权重进行二次格式转换,得到所述卷积层的目标权重。

可选地,所述扩展程序库为numpy库。

值得说明的是,本发明实施例所述的卷积神经网络模型的通道调整装置10中各个模块的工作过程请参考上述实施例所述的卷积神经网络模型的通道调整方法的工作过程,在此不再赘述。

相比于现有技术,本发明实施例公开的卷积神经网络模型的通道调整装置10,首先,当输入图片的当前格式与卷积神经网络模型的输入格式不同时,提取卷积神经网络模型中第一层卷积层的权重;然后,对所述输入图片进行尺寸调整,得到所述输入图片的目标格式,使输入图片的尺寸适用于模型中卷积层的通道;最后,根据所述输入图片的目标格式对所述卷积层的权重进行调整,得到所述卷积层的目标权重。由于在对卷积层的通道进行调整的过程中,对卷积层的权重进行了格式调整,使得卷积神经网络模型能够适应不同格式的输入图片,同时能够支持不同框架下模型中卷积通道的调整,提高了卷积神经网络模型的处理效率。

参见图6,图6是本发明实施例提供的一种卷积神经网络模型的通道调整设备20的结构框图,该实施例的卷积神经网络模型的通道调整设备20包括:处理器21、存储器22以及存储在所述存储器22中并可在所述处理器21上运行的计算机程序,例如步骤S1。所述处理器21执行所述计算机程序时实现上述各个卷积神经网络模型的通道调整方法实施例中的步骤。或者,所述处理器21执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能。

示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器22中,并由所述处理器21执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述卷积神经网络模型的通道调整设备20中的执行过程。

所述卷积神经网络模型的通道调整设备20可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述卷积神经网络模型的通道调整设备20可包括,但不仅限于,处理器21、存储器22。本领域技术人员可以理解,所述示意图仅仅是卷积神经网络模型的通道调整设备20的示例,并不构成对卷积神经网络模型的通道调整设备20的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述卷积神经网络模型的通道调整设备20还可以包括输入输出设备、网络接入设备、总线等。

所称处理器21可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器21是所述卷积神经网络模型的通道调整设备20的控制中心,利用各种接口和线路连接整个卷积神经网络模型的通道调整设备20的各个部分。

所述存储器22可用于存储所述计算机程序和/或模块,所述处理器21通过运行或执行存储在所述存储器22内的计算机程序和/或模块,以及调用存储在存储器22内的数据,实现所述卷积神经网络模型的通道调整设备20的各种功能。所述存储器22可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

其中,所述卷积神经网络模型的通道调整设备20集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器21执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

14页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种后厨色标识别及预警方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!