1.一种基于深度学习的纹身图像分类方法,其特征在于:所述分类方法包括以下步骤:
1)样本变换
1.1)仿射变换;
1.2)弹性变换:对样本进行曲面模拟;
1.3)遮挡模拟:在每幅输入训练机的图像随机把某一区域的像素值置0;
1.4)白化;
2)自编码预训练:使用CUDA优化后的自编码训练机对大量彩色纹身图像进行训练,得到纹身图像的一些共同地边缘信息,同时对这些图像做些挑选后用于卷积网络的第一层;
3)卷积网络训练:使用CUDA优化后的卷积网络对有标定的纹身图像进行训练得到最终分类结果。
2.如权利要求1所述的一种基于深度学习的纹身图像分类方法,其特征在于:所述分类方法还包括以下步骤:
4)对卷积网络优化:使用了随机池化和对于随机池化的BP算法,使用CUDA对整体流程进行优化。
3.如权利要求2所述的一种基于深度学习的纹身图像分类方法,其特征在于:所述分类方法还包括以下步骤:
5)使用holdout验证控制样本变换程度。
4.如权利要求1~3之一所述的一种基于深度学习的纹身图像分类方法,其特征在于:所述步骤1.1)中,仿射变换原理如下:其中 为变换图像的坐标位置,θ为旋转角, 为平移向量,tx为x轴平移距离,ty为y轴平移距离; 为原始图像的坐标位置。
5.如权利要求1~3之一所述的一种基于深度学习的纹身图像分类方法,其特征在于:所述步骤1.2)中,对样本进行曲面模拟的过程如下:对n*m的图像进行变换,得到n*m个向量构成坐标矩阵X;
其 中 Y = [y1,y2,...,ym],
1≤i≤n,列向量 表示图中横坐标第i位置,纵坐标第j位置,
1≤j≤m,将其输入到输入维度为2,输出维度为1的神经网络中,采用3层神经网络,变换函数为:P=g(W2g(W1(X+b1))+b2) (2)其中:
P=[p1,1,p1,2,...,p1,m,p2,1,p2,2,...,p2,m,...,pn,1,pn,2,...,pn,m]pi,j为向量 对应的输出值;
g为神经网络的激活函数,选用sigmoid函数即 x为函数的输入值;
W1,W2,b1,b2是(-r,r)均匀分布的随机数;
对于神经网络随机初始化的范围为(-r,r)即构成所需要的曲面模型,满足光滑,并且由参数控制形变复杂度的特性;
得到曲面后,对曲面上每一点求导得到偏移矩阵G,得到每个像素点最后的偏移坐标:XO=X+G (3)
最后把新图像中点X的像素值取原图像XO经过线性插值后的像素值。
6.如权利要求1~3之一所述的一种基于深度学习的纹身图像分类方法,其特征在于:所述步骤1.4)中,白化过程:(1) (2) (m) (i) n×1若有矩阵XO={x ,x ,...,x },其中x ∈R ,R为实数;
首先算出样本的协方差矩阵∑:(i) T (i)
其中(x ) 为向量x 的转置;
那么对∑分解得到矩阵U:
U=[u1,u2,...,un] (5)其中u1,u2,...,un是∑的特征向量,且为列向量,另记λ1,λ2,...,λn为对应的特征值并且按特征值由大到小的顺序排列;把数据转换到由矩阵U构成的基上:T
Xrot=UXo (6)
进行白化:
xrot,i是矩阵Xrot的第i个列向量;
同理xrot white,i是矩阵Xrot white的第i个列向量;
其中ε取一个极小值;
把白化结果转换回去,即白化的最终结果为:Xwhite=UXrot white (8)。
7.如权利要求1~3之一所述的一种基于深度学习的纹身图像分类方法,其特征在于:所述步骤2)中,先把纹身样本随机采集n万张a×a的图像,这些图像包含纹身图像的各种区域信息,输入到隐藏层为b的自编码训练机中,具体方法为:(1) (2) (m) (i)假设Xpatch={x ,x ,...,x }是n维度构成n*m的矩阵,x 为图像数据向量,那么得到自编码输出hW,b(x):(2) (1) (1) (2)hW,b(Xpatch)=f(W f(W Xpatch+b )+b ) (9)其中 x为函数f(x)的输入值;
l代表层数在这里l∈{1,2}(l)
W 为第l层权重参数;
(l)
b 为第l层偏置参数;
那么误差E:
其中,
nl表示神经网络的层数在这里nl=3;
sl表示第l层的神经元个数;
β表示稀疏输出的惩罚系数;
λ为权重衰减参数;
表示实际第二层的平均激活度,ρ表示第二层的平均激活度的控制参数;
接下来对该网络使用回馈优化:顶层残差δ(2)和梯度 分别为:(2) (2) (2)
δ =(a -Xpatch)·f′(z ) (13)第1层残差δ(1)和梯度
(l)
其中,δ 代表第l层残差;
(1) (1)
z =W Xpatch;
(2) (2) (1) (1) (2)z =W f(W Xpatch+b )+b 。
8.如权利要求1~3之一所述的一种基于深度学习的纹身图像分类方法,其特征在于:所述步骤3)中,输入层选用64×64×3的维度,第一层卷积层选用64个维度为11×11×3由自编码学习得到的卷积层得到54×54×64的输出;第二层对于图像中3×3的空间进行随机池化得到18×18×64的输出,第三层128个维度为7×7由自编码学习得到的卷积层,得到12×12×128的输出,第四层池化层采用3×3的池化区域得到4×4的输出,第5层采用512个4×4的随机初始化的卷积层得到512个输出,第六层采用400个全连接的神经网络,最后第七层采用输出为6的SoftMax函数,分别代表为动物,图腾,植物花草,人物肖像,骷髅鬼怪,和其他。
9.如权利要求2或3所述的一种基于深度学习的纹身图像分类方法,其特征在于:所述步骤4)中,优化过程如下:
4.1)随机池化
从池化的区域中按概率随机选取池化层的输入值,概率的计算方式如下:其中:pi为该位置被选取的概率;
Rj为池化区域j;
ai为该位置的输入值;
对模型平均化,方式如下
其中:sj为池化区域Rj的输出;
Rj为池化区域j;
ai为该位置的输入值;
pi为该位置被选取的概率;
4.2)CUDA:使用CUDA对卷积网络进行优化。