CN110222760B - 一种基于winograd算法的快速图像处理方法 - Google Patents

一种基于winograd算法的快速图像处理方法 Download PDF

Info

Publication number
CN110222760B
CN110222760B CN201910480120.9A CN201910480120A CN110222760B CN 110222760 B CN110222760 B CN 110222760B CN 201910480120 A CN201910480120 A CN 201910480120A CN 110222760 B CN110222760 B CN 110222760B
Authority
CN
China
Prior art keywords
layer
convolution
picture
neural network
input
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910480120.9A
Other languages
English (en)
Other versions
CN110222760A (zh
Inventor
闫浩
庞亮
姚梦云
门亚清
李华超
柴一凡
时龙兴
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Southeast University-Wuxi Institute Of Integrated Circuit Technology
Southeast University
Original Assignee
Southeast University-Wuxi Institute Of Integrated Circuit Technology
Southeast University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Southeast University-Wuxi Institute Of Integrated Circuit Technology, Southeast University filed Critical Southeast University-Wuxi Institute Of Integrated Circuit Technology
Priority to CN201910480120.9A priority Critical patent/CN110222760B/zh
Publication of CN110222760A publication Critical patent/CN110222760A/zh
Application granted granted Critical
Publication of CN110222760B publication Critical patent/CN110222760B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Image Analysis (AREA)

Abstract

本发明公开一种基于winograd算法的快速图像处理方法,包括如下步骤:步骤1,选取数据集,利用Caffe框架训练自定义的神经网络模型,提取训练后的模型的卷积核权重、偏置值;步骤2,提取输入图片像素点,并存放在四维数组中,四个维度分别是输入图片数目、通道数、图片的长和宽;步骤3,构造基于winograd算法的卷积算子,判断卷积核尺寸是否为3×3且通道数是否大于10,如果满足,则使用winograd算子进行卷积操作;步骤4,输出卷积操作后得到的结果,并判断本层是否为最后一层卷积层,如果是,将输出图片经过RELU层的非线性变换后送入全连接层,否则重复步骤3。此种图像处理方法可提高处理器运行神经网络时的计算能效。

Description

一种基于winograd算法的快速图像处理方法
技术领域
本发明属于嵌入式图像识别领域,特别涉及一种基于winograd算子和传统卷积算子相结合的混合算子的快速图像处理方法。
背景技术
随着软硬件技术的飞速发展和大数据时代的到来,深度学习技术在越来越多的领域中取得了突破性成果,典型的应用领域有图像识别。图像识别是将存储的已有信息(记忆单元中的存储信息)与当前的输入信息(感官接收的当时信息)进行比较,利用计算机对图像进行加工处理、上下文分析和理解,识别各种不同物体目标或者物体对象的技术。与图像处理卡等传统图像处理系统相比,嵌入式图像处理系统具有体积小、成本低、可靠性高等优点,目前已广泛应用到无人驾驶、智慧城市、智能交通、物流管理、搜索引擎、网络通信、虚拟现实、医学、卫生、遥感成像和人工智能等多个领域。
图像识别相关的算法主要包括两大类,一类是基于图像处理的传统图像识别算法;一类是基于人工智能的新型图像识别算法。传统的图像识别算法计算复杂度大,很难满足嵌入式实时性准确性的要求。基于卷积神经网络的图像识别算法较前者相比算法简单,且速度快,能够学习到更加高级的图像特征,从而提升图像识别的准确率,因此被广泛应用。
卷积神经网络由输入和输出层以及多个隐藏层组成,隐藏层可分为卷积层、池化层、RELU层和全连通层,其中卷积层是卷积神经网络的核心。然而在现在流行的神经网络框架中,传统的卷积算子中海量的参数,给处理器带来了较大的负担,比如在VGGnet中,卷积参数值达到100M以上,这极大地增加了计算开销。
为了克服神经网络中,传统卷积算子所需参数过多,计算资源开销过大等存在的一些不足之处,本案由此产生。
发明内容
本发明的目的,在于提供一种基于winograd算法的快速图像处理方法,其可提高处理器运行神经网络时的计算能效。
为了达成上述目的,本发明的解决方案是:
一种基于winograd算法的快速图像处理方法,包括如下步骤:
步骤1,选取数据集,利用Caffe框架训练自定义的神经网络模型,提取训练后的模型的卷积核权重、偏置值;
步骤2,提取输入图片像素点,并存放在四维数组中,四个维度分别是输入图片数目、通道数、图片的长和宽;
步骤3,构造基于winograd算法的卷积算子,判断卷积核尺寸是否为3×3且通道数是否大于通道阈值,如果满足,则使用winograd算子进行卷积操作;
步骤4,输出卷积操作后得到的结果,并判断本层是否为最后一层卷积层,如果是,将输出图像经过激活函数层的非线性变换后送入全连接层,否则重复步骤3。
上述步骤1中,利用Caffe框架训练自定义的神经网络模型的具体内容是:
步骤11,载入Cifar-10数据集,并划分训练集和测试集;
步骤12,搭建神经网络模型,包括数据输入层、2层卷积层、2层激活函数层、池化层和全连接层;
步骤13,导入训练集,对神经网络模型进行训练;
步骤14,利用测试集对神经网络模型进行预测,如果预测目标精度达到阈值,则模型训练完成,否则调整学习率,重复步骤13。
上述步骤2的具体内容是:读取bmp图片至内存中,根据bmp图片在内存的存储格式,获取存放在指定区域的像素值,并将其存放在四维数组内。
上述步骤3中,构造winograd算子进行卷积运算的具体过程是:
步骤31,定义一种输出图片尺寸、卷积核大小和卷积输出图片的映射关系F(m*m,r*r),其中,表示输出图片尺寸,r表示卷积核大小,则winograd卷积用下式表示:
Y=AT[[GgGT]⊙[BTbB]A
步骤32,将输入图片切分成多个tile,tile的数量为P=N*[H/m*[W/m,其中,N为输入图片的数目,H*W为输出图片的尺寸,每个tile重叠r-1次;
步骤33,分别计算卷积核的矩阵转置V和输入图片的矩阵转置U,定义dc,b为通道c的输入tile b,定义gk,c为通道c的卷积核k,定义Yk,b为经卷积核b卷积后的输出tile b,则通道c处输入tile和卷积核经过转置矩阵计算后分别为:
v=BTdc,bB
u=Ggk,cGT
将v和u分别存放在包含所有通道的U和V中;
步骤34,计算U和V的位乘M:M=U⊙V,以及相应的每个tile的输出图像矩阵:Y=ATmA;
步骤35,定义Out(i为第i个输出图片,将第i个输出图片对应的所有输出tile进行组装得到最终的输出结果。
上述神经网络模型包括数据输入层、2层卷积层、2层激活函数层、2层池化层和全连接层。
上述步骤3中,通道阈值为10。
采用上述方案后,本发明可以大幅度减少传统卷积神经网络的计算开销:首先,本发明利用winograd算法构建了一套用于代替3x3卷积操作的卷积算子,由于现在已有的大部分神经网络框架中3x3卷积核占了绝大部分,因此该发明具有较大的实用性;其次,处理器中乘法操作的复杂度远远大于加法操作,因此winograd算法使用多个加法来代替乘法的本质特性可以远远减少神经网络中的乘法操作,进而获得较大的收益。
附图说明
图1是本发明的整体流程图;
图2是训练自定义神经网络流程图;
图3是Winograd算子实现流程图。
具体实施方式
以下将结合附图,对本发明的技术方案及有益效果进行详细说明。
如图1所示,本发明提供一种基于winograd算法的快速图像处理方法,包括如下步骤:
步骤1,选取数据集,利用Caffe框架训练自定义的神经网络模型,提取训练后的模型的卷积核权重、偏置值;
配合图2所示,是利用Caffe框架训练自定义的神经网络模型,并提取权重和偏置值的流程图,具体内容是:
步骤11,Cifar-10数据集的载入;
选取50000张32*32大小的图片作为训练集,10000张32*32大小的图片作为测试集;
步骤12,网络模型的搭建;
神经网络包括数据输入层、卷积层、激活函数层、池化层和全连接层,相关定义如下:
数据输入层:该层要做的处理主要是对原始图像数据进行预处理,其中包括:去均值,把输入数据各个维度都中心化为0;归一化,幅度归一化到同样的范围,减少各维度数据取值范围的差异而带来的干扰;
卷积层:通过卷积算子连接的层,其包含两个关键操作:局部关联,每个神经元看做一个卷积核(filter);窗口滑动,卷积核(filter)对局部数据计算;
激活函数层:将卷积层输出结果做非线性映射的网络层;
池化层:夹在连续的卷积层中间,用于压缩数据和参数的量,减小过拟合;
全连接层:两层之间所有神经元都有权重连接。
在本实施例中,网络模型框架包括数据输入层、2层卷积层、2层激活函数层、2层池化层和全连接层,其中,卷积层是CNN的核心,层的参数由一组可学习的卷积核(kernel)组成。在前馈期间,每个卷积核对输入进行卷积,计算卷积核和输入之间的点积,激活函数层使用RELU函数作为激活函数,RELU函数的定义是:f(x)=max(0,x),与传统的sigmoid或tanh函数相比,RELU函数有速度快、减轻梯度消失问题等优势。全连接层是一个常规的神经网络,它的作用是将卷积提取的局部特征通过权值矩阵组装成完整的图,算出最后的预测值。
步骤13,神经网络的训练;
导入训练数据集,对神经网络模型进行训练,在训练过程中,调整学习率,不断增加训练次数,使识别精度达到指定精度;
步骤14,网络模型的验证和参数提取;
利用测试集对模型进行预测,如果预测目标精度达到90%以上,模型训练完成,提取训练好的模型的权重和偏置值;否则,调整学习率,重复步骤13。
步骤2,进行输入图片像素点的提取;
提取多张bmp格式图片像素值,并将其存放在四维数组中;具体来说,读取bmp图片至内存中,根据bmp图片在内存的存储格式,获取存放在指定区域的像素值,并将其存放在四维数组内,其中四个维度分别是输入图片数目、通道数、图片的长和宽;
步骤3,在实际操作中,可以构造两种卷积算子:传统的卷积算子以及基于winograd算法的卷积算子,以适应不同的应用需要,判断卷积核尺寸是否为3×3且通道数是否大于10,如果满足,则使用winograd算子进行卷积操作,否则使用传统卷积算子进行卷积操作;
其中,神经网络模型可在龙芯2k派上实现,将四维数组作为第一层网络的输入;根据各层网络的卷积核数目和卷积核大小,选择所使用的卷积算子,产生第k层网络的输出后,重复输入,直至完成神经网络的所有卷积层。
配合图3所示,构造winograd算子进行卷积运算的具体过程是:
步骤31,定义一种输出图片尺寸、卷积核大小和卷积输出图片的映射关系F(m*m,r*r),其中,m表示输出图片尺寸,r表示卷积核大小,则winograd卷积可以用下式表示:
Y=AT[[GgGT]⊙[BTbB]]A (1)
令r=3,m=4,则对应的转置矩阵为:
Figure BDA0002083547580000061
Figure BDA0002083547580000062
其中,g为输入图片,b为卷积核。
步骤32,将输入图片切分成多个tile(子块),每个tile的大小为m+r-1=3+4-1=6,tile的数量为P=N*[H/m]*[W/m],其中,N为输入图片的数目,H*W为输出图片的尺寸,为了保证卷积的正确性,每个tile还需要重叠r-1次;
步骤33,分别计算卷积核的矩阵转置V和输入图片的矩阵转置U,定义dc,b为通道c的输入tile b,定义gk,c为通道c的卷积核k,定义Yk,b为经卷积核b卷积后的输出tile b。则通道c处输入tile和卷积核经过转置矩阵计算后分别为:
v=BTdc,bB (2)
u=Ggk,cGT (3)
将v和u分别存放在包含所有通道的U和V中。
步骤34,计算U和V的位乘M:M=U⊙V,以及相应的每个tile的输出图像矩阵:Y=ATmA;
步骤35,定义Out(i)为第i个输出图片,将第i个输出图片对应的所有输出tile进行组装得到最终的输出结果。
步骤4,输出卷积操作后得到的结果,并判断本层是否为最后一层卷积层,如果是,将输出图片经过RELU层的非线性变换后送入全连接层,否则重复步骤3。
综合上述,本发明一种基于winograd算法的快速图像处理方法,首先提取输入图片的像素点并将其存放在四维数组内;判断卷积核尺寸,当卷积核的大小为3x3或5x5时,使用Winograd卷积算子对输入特征图像进行卷积;否则使用传统的卷积算子对输入特征图像进行卷积;其中Winograd卷积算子的构造方法为:将输入特征图像拆分成P个子块(Tiles),对每个子块进行G矩阵转换,对卷积核进行U矩阵转换,将转换后的子块和卷积核进行矩阵位乘后使用矩阵A再做一次转换。本发明利用Winograd算法构建了一套卷积算子,该卷积算子可以通过多个加法来取代乘法,在通道数较多情况下可在计算时间和计算资源上获取较大收益,通过与传统的卷积算子相互配合以提高处理器的计算能效。
以上实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。

Claims (5)

1.一种基于winograd算法的快速图像处理方法,其特征在于包括如下步骤:
步骤1,选取数据集,利用Caffe框架训练自定义的神经网络模型,提取训练后的模型的卷积核权重、偏置值;
步骤2,提取输入图片像素点,并存放在四维数组中,四个维度分别是输入图片数目、通道数、图片的长和宽;
步骤3,构造基于winograd算法的卷积算子,判断卷积核尺寸是否为3×3且通道数是否大于通道阈值,如果满足,则使用winograd算子进行卷积操作;
步骤4,输出卷积操作后得到的结果,并判断本层是否为最后一层卷积层,如果是,将输出图像经过激活函数层的非线性变换后送入全连接层,否则重复步骤3;
所述步骤3中,构造winograd算子进行卷积运算的具体过程是:
步骤31,定义一种输出图片尺寸、卷积核大小和卷积输出图片的映射关系F(m*m,r*r),其中,m表示输出图片尺寸,r表示卷积核大小,则winograd卷积用下式表示:
Y=AT[[GgGT]⊙[BTbB]]A
其中,g为输入图片,b为卷积核,A、G、B分别代表卷积核的矩阵;
步骤32,将输入图片切分成多个tile,tile的数量为P=N*[H/m]*[W/m],其中,N为输入图片的数目,H*W为输出图片的尺寸,每个tile重叠r-1次;
步骤33,分别计算卷积核的矩阵转置V和输入图片的矩阵转置U,定义dc,b为通道c的输入tile b,定义gk,c为通道c的卷积核k,定义Yk,b为经卷积核b卷积后的输出tileb,则通道c处输入tile和卷积核经过转置矩阵计算后分别为:
v=BTdc,bB
u=Ggk,cGT
将v和u分别存放在包含所有通道的U和V中;
步骤34,计算U和V的位乘M:M=U⊙V,以及相应的每个tile的输出图像矩阵:Y=ATmA;
步骤35,定义Out(i)为第i个输出图片,将第i个输出图片对应的所有输出tile进行组装得到最终的输出结果。
2.如权利要求1所述的图像处理方法,其特征在于:所述步骤1中,利用Caffe框架训练自定义的神经网络模型的具体内容是:
步骤11,载入Cifar-10数据集,并划分训练集和测试集;
步骤12,搭建神经网络模型,包括数据输入层、2层卷积层、2层激活函数层、池化层和全连接层;
步骤13,导入训练集,对神经网络模型进行训练;
步骤14,利用测试集对神经网络模型进行预测,如果预测目标精度达到阈值,则模型训练完成,否则调整学习率,重复步骤13。
3.如权利要求1所述的图像处理方法,其特征在于:所述步骤2的具体内容是:读取bmp图片至内存中,根据bmp图片在内存的存储格式,获取存放在指定区域的像素值,并将其存放在四维数组内。
4.如权利要求1所述的图像处理方法,其特征在于:所述神经网络模型包括数据输入层、2层卷积层、2层激活函数层、2层池化层和全连接层。
5.如权利要求1所述的图像处理方法,其特征在于:所述步骤3中,通道阈值为10。
CN201910480120.9A 2019-06-04 2019-06-04 一种基于winograd算法的快速图像处理方法 Active CN110222760B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910480120.9A CN110222760B (zh) 2019-06-04 2019-06-04 一种基于winograd算法的快速图像处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910480120.9A CN110222760B (zh) 2019-06-04 2019-06-04 一种基于winograd算法的快速图像处理方法

Publications (2)

Publication Number Publication Date
CN110222760A CN110222760A (zh) 2019-09-10
CN110222760B true CN110222760B (zh) 2023-05-23

Family

ID=67819246

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910480120.9A Active CN110222760B (zh) 2019-06-04 2019-06-04 一种基于winograd算法的快速图像处理方法

Country Status (1)

Country Link
CN (1) CN110222760B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112765540B (zh) * 2019-11-01 2024-02-20 中科寒武纪科技股份有限公司 数据处理方法、装置及相关产品
CN112784951B (zh) * 2019-11-01 2024-04-19 中科寒武纪科技股份有限公司 Winograd卷积运算方法及相关产品
CN111160362B (zh) * 2019-11-27 2023-07-11 东南大学 一种fast特征均匀化提取与帧间特征误匹配去除方法
CN113033813B (zh) * 2019-12-09 2024-04-26 中科寒武纪科技股份有限公司 数据处理方法、装置、计算机设备和存储介质
CN111723662B (zh) * 2020-05-18 2023-07-11 南京师范大学 一种基于卷积神经网络的人体姿态识别方法
CN112529973B (zh) * 2020-10-13 2023-06-02 重庆英卡电子有限公司 野外自供能动物抓拍图片动物识别方法
CN112434786B (zh) * 2020-10-22 2023-09-19 西安交通大学 一种基于winograd动态卷积块的图像处理方法
CN113112431B (zh) * 2021-05-10 2023-08-15 苏州大学 一种嵌入式系统中的图像处理方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107844833A (zh) * 2017-11-28 2018-03-27 郑州云海信息技术有限公司 一种卷积神经网络的数据处理方法、装置及介质
CN108229360A (zh) * 2017-12-26 2018-06-29 美的集团股份有限公司 一种图像处理的方法、设备及存储介质
US20190042923A1 (en) * 2017-08-07 2019-02-07 Intel Corporation System and method for an optimized winograd convolution accelerator

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190042923A1 (en) * 2017-08-07 2019-02-07 Intel Corporation System and method for an optimized winograd convolution accelerator
CN107844833A (zh) * 2017-11-28 2018-03-27 郑州云海信息技术有限公司 一种卷积神经网络的数据处理方法、装置及介质
CN108229360A (zh) * 2017-12-26 2018-06-29 美的集团股份有限公司 一种图像处理的方法、设备及存储介质

Also Published As

Publication number Publication date
CN110222760A (zh) 2019-09-10

Similar Documents

Publication Publication Date Title
CN110222760B (zh) 一种基于winograd算法的快速图像处理方法
Mascarenhas et al. A comparison between VGG16, VGG19 and ResNet50 architecture frameworks for Image Classification
CN109949255B (zh) 图像重建方法及设备
CN108171701B (zh) 基于u网络和对抗学习的显著性检测方法
Li et al. Highly efficient forward and backward propagation of convolutional neural networks for pixelwise classification
CN113326930B (zh) 数据处理方法、神经网络的训练方法及相关装置、设备
CN113807399B (zh) 一种神经网络训练方法、检测方法以及装置
CN110222717A (zh) 图像处理方法和装置
CN110222718B (zh) 图像处理的方法及装置
CN112330719B (zh) 基于特征图分割和自适应融合的深度学习目标跟踪方法
US20190114532A1 (en) Apparatus and method for convolution operation of convolution neural network
KR20180004898A (ko) 딥러닝 기반의 이미지 처리 기술 및 그 방법
CN110175248B (zh) 一种基于深度学习和哈希编码的人脸图像检索方法和装置
CN108446766A (zh) 一种快速训练堆栈自编码深度神经网络的方法
CN112163601A (zh) 图像分类方法、系统、计算机设备及存储介质
CN107832794A (zh) 一种卷积神经网络生成方法、车系识别方法及计算设备
WO2019177731A1 (en) Cluster compression for compressing weights in neural networks
CN113378938A (zh) 一种基于边Transformer图神经网络的小样本图像分类方法及系统
CN115018039A (zh) 一种神经网络蒸馏方法、目标检测方法以及装置
CN117079098A (zh) 一种基于位置编码的空间小目标检测方法
CN113536970A (zh) 一种视频分类模型的训练方法及相关装置
CN116863194A (zh) 一种足溃疡图像分类方法、系统、设备及介质
CN114882278A (zh) 一种基于注意力机制和迁移学习的轮胎花纹分类方法和装置
CN113534678B (zh) 一种操作问答任务的仿真到物理系统的迁移方法
CN111783688B (zh) 一种基于卷积神经网络的遥感图像场景分类方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant