CN109086878B - 保持旋转不变性的卷积神经网络模型及其训练方法 - Google Patents
保持旋转不变性的卷积神经网络模型及其训练方法 Download PDFInfo
- Publication number
- CN109086878B CN109086878B CN201811219320.0A CN201811219320A CN109086878B CN 109086878 B CN109086878 B CN 109086878B CN 201811219320 A CN201811219320 A CN 201811219320A CN 109086878 B CN109086878 B CN 109086878B
- Authority
- CN
- China
- Prior art keywords
- rotation
- layer
- neural network
- convolutional neural
- network model
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了保持旋转不变性的卷积神经网络模型及其训练方法,其中保持旋转不变性的卷积神经网络模型包括卷积神经网络模型和区域旋转层,区域旋转层位于卷积神经网络模型中的卷积层的上一层;区域旋转层的处理方法包括S1计算特征向量的旋转次数;S2选取卷积窗口最外层的旋转起点,计算将旋转起点移动至设定位置的移动步长和旋转角度;S3根据外一层移动步长和旋转角度,计算内一层移动步长和旋转角度;S4返回步骤S3,直至卷积窗口的旋转操作等于旋转次数;S5返回步骤S2,直至当前层特征向量的所有卷积窗口已完成旋转;S6获取旋转变换后卷积窗口位于原特征向量的坐标,并将其放置于相应的坐标处;S7输出拼接后的新特征向量。
Description
技术领域
本发明涉及图像处理技术及深度学习技术,具体涉及一种保持旋转不变性的卷积神经网络模型及其训练方法。
背景技术
在工业领域,图形识别和目标检测有巨大的需求.把手写数字识别系统应用与银行,能够在提高银行办事效率的同时节省了人力成本;在无人驾驶系统中,也需要对周围的物体和路标等信息进行精确的识别。在信息化及智能化系统中,对基于视觉的物体识别的需求越来越大。然而现在的物体检测系统中,比如检测效果比较优秀的Faster rcnn,YOLO,SSD等物体检测系统中,他们对于直立的物体检测效果良好,然而当我们的待检测样本发生了不同角度旋转的时候,这些优秀的检测效果就不尽人意了。
在目前的物体检测系统中,因为卷积神经网络不具备旋转不变性,因此它很难对于旋转的物体进行精准检测.我们以YOLO的检测效果进行说明。
如图1-图3所示,上面三组图是不同角度图形的识别效果,从图中可以看到,当图像正立的时候,YOLO可以很好的检测物体,但是将图片旋转一定角度(如90度、180度)之后,检测效果受了较大影响,如将图1中的狗识别为猫,自行车和卡车检测不到;在图2中没有检测到任何一匹马,误识别为两只鸟,在图3中,人可以正确的识别,狗误识别为猫,马检测不到。
从图1至图3的检查结果看,说明YOLO对图像不具备旋转不变性,这从卷积神经网络的工作原理也可以看出。卷积层中权值的共享和池化操作使得网络具备平移不变性,金字塔层使得网络具备尺度不变性,但缺少旋转不变性机制。虽然也有些论文通过扩充训练样本,对训练样本进行旋转之后训练,从而使得网络具备一定的旋转不变性,但这种方法一来增大了训练的工作量,二来也没有从工作机理上解决深度网络的旋转不变性问题。
发明内容
针对现有技术中的上述不足,本发明提供的图像旋转处理方法、保持旋转不变性的卷积神经网络模型及训练方法在应用与图形处理时,无需对数据集进行旋转扩充,就能使卷积神经网络很好地识别旋转任意角度的图像。
为了达到上述发明目的,本发明采用的技术方案为:
第一方面,提供一种保持旋转不变性的卷积神经网络模型的构建方法,其包括卷积神经网络模型和区域旋转层,所述区域旋转层位于卷积神经网络模型中的卷积层的上一层;
所述区域旋转层的处理方法包括:
S1、根据特征向量和区域旋转层下一层的卷积层卷积核的长/宽,计算特征向量的旋转次数;
S2、选取卷积窗口最外层的旋转起点,计算将旋转起点移动至设定位置的移动步长和旋转角度;
S3、根据外一层的移动步长和旋转角度,计算内一层的移动步长和旋转角度,并将当前层所有像素点移动相应的移动步长;
S4、返回步骤S3,直至卷积窗口的旋转操作等于旋转次数;
S5、选取当前层特征向量余下的卷积窗口,并返回步骤S2,直至同一特征向量的所有卷积窗口已完成旋转;
S6、获取旋转变换后的卷积窗口位于原特征向量的位置坐标,并将其放置于相应的位置坐标处;
S7、当同一特征向量所有旋转变换后的卷积窗口均已放置于原特征向量的相应位置坐标处时,输出拼接后的新特征向量。
进一步地,当所述卷积核的长等于宽时,计算特征向量的旋转次数的方法包括:
判断卷积核的长/宽是否为奇数;
若为奇数,则i=(N-1)/2;
若为偶数,则i=N/2,其中i为旋转次数;N为卷积核的长/宽;
当所述卷积核的长不等于宽时,所述旋转次数的计算公式为:
旋转次数=(特征向量的长度-卷积核的长度+1)*(特征向量的宽度-卷积核的宽度+1)。
进一步地,所述设定位置为最外层像素点的左上角顶点,卷积窗口的每层像素点的旋转方向为顺时针。
进一步地,所述选取卷积窗口最外层的旋转起点的操作方法包括:
遍历最外层的所有像素点,判断像素值最大的像素点个数是否大于1;
若等于1,则将像素值最大的像素点作为旋转起点;
若大于1,则将最外层以左上角顶点处的像素为起始点,将外层的所有像素点顺时针展开为一个一维数组;
选取一维数组中像素值最大的像素点的下一个像素点进行像素值判断;
若像素值均不相等,则采用下一个像素点中像素值最大的上一个像素点作为旋转起点;
若至少有两个像素值相等,则选取相应像素点的下一个像素点进行比较,直至下一个像素点中仅有一个最大像素值,之后采用最终确定的最大像素值查找最终确定的最大像素值的初始最大像素值对应像素点作为旋转起点。
进一步地,卷积窗口中像素点非最外层的移动步长sj的计算方法为:当dj-1/wj的余数小于wj/2时,sj=dj-1/wj;当dj-1/wj的余数大于wj/2时,sj=dj-1/wj+1;
其中,dj=sj×wj;dj为第j层的旋转角度;sj为第j层的旋转步长;wj为卷积窗口中每层像素点旋转一个步长的角度;wj=360°/Aj,Aj为第j层的像素点总个数;2≤j≤i,i为旋转次数,j=2为次外层,j=i为最内层。
进一步地,所述卷积神经网络为LeNet-5卷积神经网络、VGG16卷积神经网络、YOLO-v2卷积神经网络、或faster r-cnn卷积神经网络。
第二方面,提供一种采用保持旋转不变性的卷积神经网络模型的构建方法构建的卷积神经网络模型的训练方法,其特征在于,包括:
步骤一,加载构建的保持旋转不变性的卷积神经网络模型;
步骤二,采用高斯分布初始化方式对保持旋转不变性的卷积神经网络模型参数随机初始化;
步骤三,将由若干图片构成的训练数据输入保持旋转不变性的卷积神经网络模型,对保持旋转不变性的卷积神经网络模型进行训练;
步骤四,当损失函数值达到预设阈值时,完成保持旋转不变性的卷积神经网络模型训练,并记录保持旋转不变性的卷积神经网络模型的权重。
本发明的有益效果为:本方案通过区域旋转层对特征向量的处理后,其能够对同一特征向量的多个卷积窗口的所有像素点进行重新排布,这样可以使得图像不管旋转多少角度,同一特征向量的卷积窗口外围的像素点及其位置均相同,使得区域旋转层的输出相同。
之后再进行卷积运算时,卷积核所乘为一模一样的两个特征向量,卷积后的结果也为同一个,所以不论特征向量在输入时经过怎样的角度旋转,卷积后的结果都相同。
附图说明
图1至图3为现有检测系统YOLO对三张旋转不同角度的图片中的物体的识别效果对比。
图4为区域旋转层的处理方法的流程图。
图5为局部区域在输入输出特征图中的对应位置的示意图。
图6为普通卷积过程与区域旋转层输出卷积过程对比图。
图7为卷积核的长/宽分别为偶数和奇数的示意图。
图8为卷积窗口中一层像素点旋转前后对比图。
图9为外层的所有像素点顺时针展开后的一维数组的示意图。
图10为边长为偶数和奇数的区域旋转方式示意图。
图11为同一图像旋转先后最大值位置变化对比图。
图12为原图、旋转90度与卷积核权重像素值示意图。
图13为LeNet-5卷积神经网络的结构图。
图14为保持旋转不变性的卷积神经网络模型的结构图。
图15为保持旋转不变性的卷积神经网络模型训练方法的流程图。
图16至18对采用本方案神经网络对三张旋转不同角度的图片中的物体的识别效果对比。
具体实施方式
下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
如图14所示,保持旋转不变性的卷积神经网络模型包括卷积神经网络模型(现有技术中比较常规的卷积神经网络模型)和区域旋转层,所述区域旋转层位于卷积神经网络模型中的卷积层的上一层;
参考图4,图4示出了区域旋转层的处理方法的流程图,如图4所示,该方法S包括步骤S1至步骤S7。
在步骤S1中,根据特征向量和区域旋转层下一层的卷积层卷积核的长/宽,计算特征向量的旋转次数;其中,特征向量将覆盖若干卷积窗口(即需要用若干卷积窗口对特征向量进行处理,但卷积窗口不属于特征向量),卷积窗口的生成方法包括:
设置固定的“旋转核(卷积窗口)”,即参与旋转换操作的区域大小,这里设置为同下一次卷积核大小相同的尺度;“旋转核”为滑动窗口方式覆盖像素点,在特征向量上以设定顺序(从左至右,从上至下的顺序)进行运算得到若干卷积窗口。
如图5所示,以“旋转核”区域大小为5×5个像素点,每次滑动步长为1为例说明。输入的特征向量为6×6,通道数为1。则输出卷积窗口边长计算公式为:5×(6-5+1)/1=10。
每一次像素点的操作变化只针对特征向量在滑动窗口内的部分,经过运算后仍为5×5的尺寸,此时窗口在“A”区域,在下一步将右滑动至斜线阴影区域,所参与运算的像素点并非上一步区域的输出,而是与之前相同的四列(4×5)和最右边的一列(1×5),同样为5×5的尺寸。
运算过的像素点排列到原先输出的右边,此时的卷积窗口变为5×10,以此类推,直到滑动到输入数组的右下角,输出的像素也将根据窗口每次位移的方向进行拼接。
通用的计算公式为,当输入特征向量尺寸(W×W×D),这里以长与宽相等的情况为例,均为W,D为特征向量的通道数。滑动窗口大小(F)同下一层即将运算的卷积核大小相同,执行的步长(S)为1(由于大部分卷积运算步长均为1,故只考虑此种情况),则输出卷积窗口尺寸计算公式如公式:
W′=F×(W-F+1)/S
尽管一个6×6的卷积窗口经过运算后变为10×10的大小,即数组边长经历了从W到W'的变化,但由于区域旋转层后接卷积层,因此通过改变卷积过程中的步长参数,即新的步长S′=F×S便可将特征向量尺寸还原到原始状态。
如图6所示,尺寸为5×5、步长为1的卷积核在6×6的卷积窗口滑动卷积运算,输出为2×2,而当经过区域旋转层扩大至10×10后,用参数及尺寸相同的卷积核,以步长为5做卷积操作,输出同样为2×2,与增加区域旋转层之前的结构相同。
实施时,所述卷积核的长等于宽时,计算特征向量的旋转次数的方法包括:
判断卷积核的长/宽是否为奇数;
若为奇数,则i=(N-1)/2;
若为偶数,则i=N/2,其中i为旋转次数;N为卷积核的长/宽;
当所述卷积核的长不等于宽时,所述旋转次数的计算公式为:
旋转次数=(特征向量的长度-卷积核的长度+1)*(特征向量的宽度-卷积核的宽度+1)。
如图7所示,6×6尺寸的矩阵可看作三层嵌套而成,5×5的矩阵可看作两层和一个中心像素点组成。在以层为单位做操作时,层与层之间像素相互独立。执行次序为从外向内,旋转角度由最外层像素决定。
在步骤S2中,选取卷积窗口最外层的旋转起点,计算将旋转起点移动至设定位置的移动步长和旋转角度;其中,设定位置为最外层像素点的左上角顶点,卷积窗口的每层像素点的旋转方向为顺时针。
在本发明的一个实施例中,选取卷积窗口最外层的旋转起点的操作方法包括:
遍历最外层的所有像素点,判断像素值最大的像素点个数是否大于1;
若等于1,则将像素值最大的像素点作为旋转起点;
若大于1,则将最外层以左上角顶点处的像素为起始点,将外层的所有像素点顺时针展开为一个一维数组;
选取一维数组中像素值最大的像素点的下一个像素点进行像素值判断;
若像素值均不相等,则采用下一个像素点中像素值最大的上一个像素点作为旋转起点;
若至少有两个像素值相等,则选取相应像素点的下一个像素点进行比较,直至下一个像素点中仅有一个最大像素值,之后采用最终确定的最大像素值查找最终确定的最大像素值的初始最大像素值对应像素点作为旋转起点。
下面对最外层的旋转及旋转起点的选取进行详细说明:
首先对于一个(n+1)×(n+1)的区域,即N=n+1,其矩阵的最外层共有4×n个像素点,选取其中像素值最大的一个点,将其作为首位。把外围4×n个像素点当作环形,逆时针转动直到被当作首位的最大值旋转到左上角,即坐标为(1,1)的位置。
如图8所示,在最外层的4×n个像素点中,找到了最大值N1n(阴影区域),为了使其放置在目标位置(1,1),此层上的像素点均沿着矩阵的边框逆时针旋转,直到如图8右图旋转后的状态,旋转前后所有的像素值不变,相邻关系也不变。
由于最大值N1n的位置知道,目标位置(1,1)确定,就可以得到最大值N1n移动至目标位置(1,1)的移动步数。最外层的旋转角度等于旋转步长乘每步对应旋转角度,每步长对应旋转角度等于360除以最外层像素点总个数。
若一层有多个最大值,则记录最大值位置并进一步比较下一位的元素大小,若值依然相同则再指向下一位比较,直到可以找到唯一最大值为止。
如图9所示,以矩阵(1,1)坐标的像素为起始点,将外层的4×n个像素点拉伸为一个一维数组,若同时在三个位置出现最大值N02、N0n、N22(斜线阴影区域),则比较下一位的三个数,选出最大值。如果下一位也相等,则再比较第三位,选出最大值N12(网状阴影区域),则此时便以N0n作为旋转起点,旋转至矩阵(1,1)处。
在步骤S3中,根据外一层的移动步长和旋转角度,计算内一层的移动步长和旋转角度,并将当前层所有像素点移动相应的移动步长。
在步骤S4中,返回步骤S3,直至卷积窗口的旋转操作等于旋转次数。
在本发明的一个实施例中,卷积窗口中像素点非最外层的移动步长sj的计算方法为:当dj-1/wj的余数小于wj/2时,sj=dj-1/wj;当dj-1/wj的余数大于wj/2时,sj=dj-1/wj+1;
其中,dj=sj×wj;dj为第j层的旋转角度;sj为第j层的旋转步长;wj为卷积窗口中每层像素点旋转一个步长的角度;wj=360°/Aj,Aj为第j层的像素点总个数;2≤j≤i,i为旋转次数,j=2为次外层,j=i为最内层。
下面结合图10对每个卷积窗口的所有层的像素点的旋转进行说明:
图10(a)为6×6的目标区域,首先实行最外层的旋转,旋转一步的角度为w1=360/(4×5)=18,即以18度为单位进行旋转。
定位到最大像素值的像素点N32,以逆时针将其转动至左上角(1,1)坐标,因此需要转动16步,s1=16,共转了d1=s1×w1=16×18=288,即288度。
以像素点N32为参照点,像素点排列的前后顺序不变,其余像素点移动到相应位置,以完成第一圈的操作。
在第二圈的像素点中,旋转一步的角度为w2=360/(4×3)=30,此时求步数s2,即第二层旋转多少步使得角度d2与d1最接近。根据移动步长sj的计算方法,得到步数s2=10,此时d2=300。将像素点M32移到左上角(2,2)坐标,剩下的11个点以逆时针变化同样的位移距离。
在第三圈的像素点中,w3=360/(4×1)=90,在d3与d2最接近时s3为3步,以P31作为参照点,位移到左上角(3,3)坐标,同圈的剩下3个点同时转移到相应位置,最终完成操作的所有步骤。
图10(b)为5×5的目标区域,前两圈的实施细节同上图10(a)述描述相同,已知第一圈以N33为参照点,w1=360/(4×4)=22.5,s1=14,即转至(1,1)坐标处需经过d1=s1×w1=14×22.5=315度。第二圈则根据角度d1,由w2=360/(4×2)=45,得到与d1最相近的角度d2=315,s2=7,则是以M32为参照点,旋转至(2,2)处。结束操作后对于的剩下中心点(3,3)坐标点上的值,保留在原始位置不做数值上的调整。
在步骤S5中,选取同一层特征向量余下的卷积窗口,并返回步骤S2,直至同一特征向量的所有卷积窗口已完成旋转;
在步骤S6中,获取旋转变换后的卷积窗口位于原特征向量的位置坐标,并将其放置于相应的位置坐标处。
下面结合图11对同一特征向量旋转后的卷积窗口放置至原图相应位置进行详细说明:
如图11所示,在6×6的特征图上,滑动窗口尺寸为5×5,在原始图片中,
第一个滑动窗口覆盖的位置(1:5,1:5),在经过区域旋转层后,如(b)虚线网格所示,最大值与内圈值均被转移至各自圈内的左上角。同时,此区域在全局的位置是(1:5,1:5),即从行从列数第一个位置,相应地在输出的拼接特征图像中,也处于此角落。
第二个滑动窗口是以步数为1为距离所覆盖的区域(2:6,2:6),即图(a)中的斜线框。在经过区域旋转层后,被移动到指定位置,而区域在变换后(b)中位于(6:10,6:10)处。由于原始特征图尺寸的限制,下一个窗口不再向右滑动,而是向下,输出的效果同以上两个窗口相同,同理至第四个窗口。
在步骤S7中,当同一特征向量所有旋转变换后的卷积窗口均已放置于原特征向量的相应位置坐标处时,输出拼接后的新特征向量。
下面结合图12对图像旋转处理方法所能达到的效果旋转不变性进行说明:
神经网络在增加区域旋转层后,使得同一张输入图片在旋转任意角度后均能在经过若干层卷积运算,进入全连接/全卷积网络前变为相同的卷积窗口,这样使得目标检测网络泛化性更强,从机理上具有旋转不变性。以下将详细说明区域旋转层是怎样做到统一卷积窗口的。
在进行卷积运算时,卷积窗口的一块区域同卷积核做逐元素相乘再求和的过程。如图12所示,(a)为卷积窗口的一块3×3区域,(c)为卷积核权重,在做卷积计算时所得计算结果Fa为:
Fa=N01*W1+N02*W2+N11*W3
+N32*W4+M00*W5+N12*W6
+N31*W7+N22*W8+N21*W9
若卷积窗口顺时针旋转90度,从(a)变为(b),与相同卷积核做运算时,结果为Fb:
Fb=N31*W1+N32*W2+N01*W3
+N22*W4+M00*W5+N02*W6
+N21*W7+N12*W8+N11*W9
由于旋转90度后像素点位置发生了变化,因此与卷积核参数做相乘运算的结果不再相同,即Fa≠Fb。
而在卷积之前添加区域旋转层后,(a)(b)矩阵均会根据规则将外层8个像素点的最大值放置在左上角。同时,两个矩阵的外围的元素相同,从而区域旋转层的输出相同。此时再进行卷积运算时,卷积核所乘一定是一模一样的两个卷积窗口,卷积后的结果也为同一个,所以,采用本方案的图像旋转处理方法不论卷积窗口在输入时经过怎样的角度旋转,卷积后的结果必然是相同的。
为了使保持旋转不变性的卷积神经网络模型在训练后能够对不同的旋转不同角度的图像中的目标进行识别时,旋转区域必须覆盖完整的特征向量,若小于特征向量的尺寸,仅能达到局部相同的效果。
因此在现有神经网络中加入区域旋转层时,首先是位于每一层的卷积层之前,这里的输出效果是矩阵的局部具有相似性,而仅有在输入全连接层之前,覆盖到全部区域执行旋转过程,才能最终达到特征相同的效果。
实施时,本方案的卷积神经网络为LeNet-5卷积神经网络、VGG16卷积神经网络、YOLO-v2卷积神经网络、或faster r-cnn卷积神经网络。
当卷积神经网络为LeNet-5卷积神经网络时,其现有网络结构如图13所示,它仅有7层(不包括输入),输入为单通道的灰度手写数字图片,尺寸为32×32;第一层是一个二维卷积层,卷积核数量为6、尺度为5×5对输入图片进行卷积运算,接着传入第二层二维下采样层,用尺度为2×2的采样核对前层的输出进行最大池化;
第三层包括一个二维卷积层对上层输出进行卷积运算,接着传入第四层二维下采样层对其进行最大池化;第五层是全连接层将第四层的输出映射到400维向量空间;第六层是全连接层将第五层的输出重映射到84维向量空间;第七层是全连接层将第六层的输出映射到样本标记空间中,形成与类别数相同的特征向量。
在LeNet-5卷积神经网络中加入区域旋转层(Region Rotation Layer,简称RRL)后,得到如图14所示的保持旋转不变性的卷积神经网络模型,使得卷积网络具有旋转不变性的重要机制。在图14中,区域旋转层(RRL1和RRL2)在两个卷积层之前,RRL3在第一个全卷积层FCN1之前,LeNet-5卷积神经网络改进前后对比见表1。
表1 改进前后网络参数对比表
当卷积神经网络为VGG16卷积神经网络时,VGG16卷积神经网络的网络参数对比见表2。
表2
当卷积神经网络为YOLO-v2卷积神经网络时,YOLO-v2卷积神经网络的网络参数对比见表3。
表3
当卷积神经网络为faster r-cnn卷积神经网络时,faster r-cnn卷积神经网络的网络参数对比见表4。
表4
保持旋转不变性的卷积神经网络模型在增加区域旋转层之后,没有增加神经网络的训练参数。当输入数据,各参数前向通过网络时,通过各层的运算最终得到输出向量,区域旋转层相当于一个非线性的函数,一定程度上更改了向量中像素点分布。
但这个非线性并不存在要学习的参数,仅是矩阵中像素点位置的调整,因此在反向传播时,由于区域旋转层不存在可以求偏导数的权重,在通过它时不再求偏导数,直接向后传播,以此更新权重优化代价函数,故本方案保持旋转不变性的卷积神经网络模型的训练方法与现有的神经网络的训练方法相同,下面结合图15对本方案的保持旋转不变性的卷积神经网络模型的训练方法进行简要说明下:
步骤一,加载构建的保持旋转不变性的卷积神经网络模型;
步骤二,采用高斯分布初始化方式对保持旋转不变性的卷积神经网络模型参数随机初始化;
步骤三,将由若干图片构成的训练数据输入保持旋转不变性的卷积神经网络模型,对保持旋转不变性的卷积神经网络模型进行训练;
用到的神经网络训练方式是反向传播算法,反向传播算法有两个要素:正向计算得到损失函数,反向求导梯度下降。假设有K组训练用的输入与输出数据(xi,yj)i=1,...,K。
首先,训练的目标是使得定义的损失函数最小化,当损失函数定义为平方和时,计算出来的为预测值与真实值之间的距离,距离L为:
其中y代表着想从神经网络函数得到的结果,yi指一个样本通过神经网络得到的实际结果,i为训练样本的索引。当初始化神经网络的变量后,加上所有的训练数据,得到初始的损失函数值。若损失函数较大,则说明神经网络性能并不是很好,需要调节权值去改变函数。第二步,更新神经网络的自身变量,使得神经网络的损失函数在更新之后的自身变量下缩小。主要使用的方法是梯度下降法,因此需要求出损失函数关于神经网络自变量(wi)的偏导数。在得到偏导数后,更新变量wi:
其中r被称作神经网络的学习速度与质量。不断重复上述步骤,直到损失函数缩小到一个可接受范围,则就完成了神经网络对训练数据的学习。
步骤四,当损失函数值达到预设阈值时,完成保持旋转不变性的卷积神经网络模型训练,并记录保持旋转不变性的卷积神经网络模型的权重。
将现有技术中图1至图3中最侧的图像输入本方案训练后的保持旋转不变形的卷积神经网络模型对图像中的对象进行识别,识别后的效果见图16至18,由图16至图18右侧的图像可以看出,本方案提供的卷积神经网络能够准确地对图像中的对象进行识别。
Claims (7)
1.保持旋转不变性的卷积神经网络模型的构建方法,其特征在于:包括卷积神经网络模型和区域旋转层,所述区域旋转层位于卷积神经网络模型中的卷积层的上一层;
所述区域旋转层的处理方法包括:
S1、根据特征向量和区域旋转层下一层的卷积层卷积核的长/宽,计算特征向量的旋转次数;
S2、选取卷积窗口最外层的旋转起点,计算将旋转起点移动至设定位置的移动步长和旋转角度;
S3、根据外一层的移动步长和旋转角度,计算内一层的移动步长和旋转角度,并将当前层所有像素点移动相应的移动步长;
S4、返回步骤S3,直至卷积窗口的旋转操作等于旋转次数;
S5、选取当前层特征向量余下的卷积窗口,并返回步骤S2,直至同一特征向量的所有卷积窗口已完成旋转;
S6、获取旋转变换后的卷积窗口位于原特征向量的位置坐标,并将其放置于相应的位置坐标处;
S7、当同一特征向量所有旋转变换后的卷积窗口均已放置于原特征向量的相应位置坐标处时,输出拼接后的新特征向量。
2.根据权利要求1所述的保持旋转不变性的卷积神经网络模型的构建方法,其特征在于:当所述卷积核的长等于宽时,计算特征向量的旋转次数的方法包括:
判断卷积核的长/宽是否为奇数;
若为奇数,则i=(N-1)/2;
若为偶数,则i=N/2,其中i为旋转次数;N为卷积核的长/宽;
当所述卷积核的长不等于宽时,所述旋转次数的计算公式为:
旋转次数=(特征向量的长度-卷积核的长度+1)*(特征向量的宽度-卷积核的宽度+1)。
3.根据权利要求1所述的保持旋转不变性的卷积神经网络模型的构建方法,其特征在于:所述设定位置为最外层像素点的左上角顶点,卷积窗口的每层像素点的旋转方向为顺时针。
4.根据权利要求3所述的保持旋转不变性的卷积神经网络模型的构建方法,其特征在于:所述选取卷积窗口最外层的旋转起点的操作方法包括:
遍历最外层的所有像素点,判断像素值最大的像素点个数是否大于1;
若等于1,则将像素值最大的像素点作为旋转起点;
若大于1,则将最外层以左上角顶点处的像素为起始点,将外层的所有像素点顺时针展开为一个一维数组;
选取一维数组中像素值最大的像素点的下一个像素点进行像素值判断;
若像素值均不相等,则采用下一个像素点中像素值最大的上一个像素点作为旋转起点;
若至少有两个像素值相等,则选取相应像素点的下一个像素点进行比较,直至下一个像素点中仅有一个最大像素值,之后采用最终确定的最大像素值查找最终确定的最大像素值的初始最大像素值对应像素点作为旋转起点。
5.根据权利要求3所述的保持旋转不变性的卷积神经网络模型的构建方法,其特征在于:
卷积窗口中像素点非最外层的移动步长sj的计算方法为:当dj-1/wj的余数小于wj/2时,sj=dj-1/wj;当dj-1/wj的余数大于wj/2时,sj=dj-1/wj+1;
其中,dj=sj×wj;dj为第j层的旋转角度;sj为第j层的旋转步长;wj为卷积窗口中每层像素点旋转一个步长的角度;wj=360°/Aj,Aj为第j层的像素点总个数;2≤j≤i,i为旋转次数,j=2为次外层,j=i为最内层。
6.根据权利要求1-5任一所述的保持旋转不变性的卷积神经网络模型的构建方法,其特征在于:所述卷积神经网络为LeNet-5卷积神经网络、VGG16卷积神经网络、YOLO-v2卷积神经网络、或faster r-cnn卷积神经网络。
7.一种采用权利要求1-6任一所述的方法构建的保持旋转不变性的卷积神经网络模型的训练方法,其特征在于,包括:
步骤一,加载构建的保持旋转不变性的卷积神经网络模型;
步骤二,采用高斯分布初始化方式对保持旋转不变性的卷积神经网络模型参数随机初始化;
步骤三,将由若干图片构成的训练数据输入保持旋转不变性的卷积神经网络模型,对保持旋转不变性的卷积神经网络模型进行训练;
步骤四,当损失函数值达到预设阈值时,完成保持旋转不变性的卷积神经网络模型训练,并记录保持旋转不变性的卷积神经网络模型的权重。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811219320.0A CN109086878B (zh) | 2018-10-19 | 2018-10-19 | 保持旋转不变性的卷积神经网络模型及其训练方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811219320.0A CN109086878B (zh) | 2018-10-19 | 2018-10-19 | 保持旋转不变性的卷积神经网络模型及其训练方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109086878A CN109086878A (zh) | 2018-12-25 |
CN109086878B true CN109086878B (zh) | 2019-12-17 |
Family
ID=64843791
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811219320.0A Active CN109086878B (zh) | 2018-10-19 | 2018-10-19 | 保持旋转不变性的卷积神经网络模型及其训练方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109086878B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109902680A (zh) * | 2019-03-04 | 2019-06-18 | 四川长虹电器股份有限公司 | 基于卷积神经网络的图片旋转角度检测与校正方法 |
CN109948699B (zh) * | 2019-03-19 | 2020-05-15 | 北京字节跳动网络技术有限公司 | 用于生成特征图的方法和装置 |
CN109948700B (zh) * | 2019-03-19 | 2020-07-24 | 北京字节跳动网络技术有限公司 | 用于生成特征图的方法和装置 |
CN110110798B (zh) * | 2019-05-13 | 2023-02-10 | 广东工业大学 | 一种基于Mask-RCNN网络的焊缝识别方法、装置、设备及可读存储介质 |
CN111126408A (zh) * | 2019-12-24 | 2020-05-08 | 华中师范大学 | 一种基于旋转不变性的手写化学有机环符号识别方法 |
CN113128662A (zh) * | 2020-01-16 | 2021-07-16 | 波音公司 | 卷积神经网络及基于卷积神经网络的图像处理方法 |
CN112839034B (zh) * | 2020-12-29 | 2022-08-05 | 湖北大学 | 一种基于cnn-gru分层神经网络的网络入侵检测方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105654729A (zh) * | 2016-03-28 | 2016-06-08 | 南京邮电大学 | 一种基于卷积神经网络的短时交通流量预测方法 |
CN106156807A (zh) * | 2015-04-02 | 2016-11-23 | 华中科技大学 | 卷积神经网络模型的训练方法及装置 |
CN106980895A (zh) * | 2017-02-22 | 2017-07-25 | 中国科学院自动化研究所 | 基于旋转区域的卷积神经网络预测方法 |
CN107066995A (zh) * | 2017-05-25 | 2017-08-18 | 中国矿业大学 | 一种基于卷积神经网络的遥感图像桥梁检测方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11132543B2 (en) * | 2016-12-28 | 2021-09-28 | Nvidia Corporation | Unconstrained appearance-based gaze estimation |
-
2018
- 2018-10-19 CN CN201811219320.0A patent/CN109086878B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106156807A (zh) * | 2015-04-02 | 2016-11-23 | 华中科技大学 | 卷积神经网络模型的训练方法及装置 |
CN105654729A (zh) * | 2016-03-28 | 2016-06-08 | 南京邮电大学 | 一种基于卷积神经网络的短时交通流量预测方法 |
CN106980895A (zh) * | 2017-02-22 | 2017-07-25 | 中国科学院自动化研究所 | 基于旋转区域的卷积神经网络预测方法 |
CN107066995A (zh) * | 2017-05-25 | 2017-08-18 | 中国矿业大学 | 一种基于卷积神经网络的遥感图像桥梁检测方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109086878A (zh) | 2018-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109086878B (zh) | 保持旋转不变性的卷积神经网络模型及其训练方法 | |
CN108399406B (zh) | 基于深度学习的弱监督显著性物体检测的方法及系统 | |
US20220335284A1 (en) | Apparatus and method with neural network | |
CN108427924B (zh) | 一种基于旋转敏感特征的文本回归检测方法 | |
Lenc et al. | Learning covariant feature detectors | |
CN104090972B (zh) | 用于三维城市模型检索的图像特征提取和相似性度量方法 | |
Xiong et al. | AI-NET: Attention inception neural networks for hyperspectral image classification | |
Germain et al. | S2DNet: Learning image features for accurate sparse-to-dense matching | |
CN112215332B (zh) | 神经网络结构的搜索方法、图像处理方法和装置 | |
Huang et al. | Joint blur kernel estimation and CNN for blind image restoration | |
CN113850129A (zh) | 一种旋转等变的空间局部注意力遥感图像目标检测方法 | |
Gojcic et al. | F2S3: Robustified determination of 3D displacement vector fields using deep learning | |
CN113449612A (zh) | 一种基于子流型稀疏卷积的三维目标点云识别的方法 | |
CN112766102A (zh) | 一种基于空谱特征融合的无监督高光谱视频目标跟踪方法 | |
Phillips et al. | All graphs lead to rome: Learning geometric and cycle-consistent representations with graph convolutional networks | |
Shi et al. | Combined channel and spatial attention for YOLOv5 during target detection | |
Khamiyev et al. | Panoramic image generation using deep neural networks | |
CN114998630B (zh) | 一种从粗到精的地对空图像配准方法 | |
Altstidl et al. | Just a matter of scale? reevaluating scale equivariance in convolutional neural networks | |
Walch et al. | Deep Learning for Image-Based Localization | |
CN106067041B (zh) | 一种改进的基于稀疏表示的多目标检测方法 | |
Yuan et al. | Realtime CNN-based keypoint detector with Sobel filter and CNN-based descriptor trained with keypoint candidates | |
Zheng et al. | A hardware-adaptive deep feature matching pipeline for real-time 3D reconstruction | |
Wang et al. | Dynamic region-aware transformer backbone network for visual tracking | |
CN112132155B (zh) | 基于硬件电路的sift算法图像边界扩充方法和处理方法 |
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 |