利索能及
我要发布
收藏
专利号: 2019107288510
申请人: 淮阴工学院
专利类型:发明专利
专利状态:已下证
更新日期:2026-08-25
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种基于VGGNet和ResNet的图像分类方法,其特征在于,该方法包括:(1)将图像数据集I转换成固定数据格式后进行存储,并划分成训练集Ttrain和测试集Ttest;

(2)读取所述固定数据格式的文件,将训练集等比例缩放,得到最终训练集Train;

(3)采用VGGNet网络训练训练集Train,得到特征向量集FP1;

(4)使用ResNet网络训练训练集Train,得到特征向量集FP2;

(5)将FP1和FP2进行融合处理,得到向量集FP3,使用softmax方法处理FP3,得到最终的图像分类结果R;

所述固定数据格式为TFRecord格式;

所述TFRecord格式具体转换过程包括:

(11)定义I为图像数据集I={C1,C2,…,Cn},其中,Cn为I中的第n类图像数据集,imagei是I中的第i张图像;

(12)定义name,height,width,label,depth分别对应为图像的名称、高度、宽度、标签和深度,满足图像形状img_shape={height,width};

(13)建立TFRecord存储文件,将I中的图像依次写入TFRecord文件,定义path为TFRecord的存储路径名称,class_path为图像类别路径名称,且path={class_path,name};

(14)按照Example协议块规则构造样本块,examplei为样本块转换成序列化的字符串,value为图像对应的分类值,value∈[1,n],且examplei={path,value},imagei与字符串examplei一一对应;

所述步骤(2)中,读取所述固定数据格式的文件,将训练集等比例缩放,得到最终训练集Train,具体包括:(21)定义循环变量i0用于遍历训练集Ttrain,i0∈[1,len(Ttrain)],i0赋初值为1,len(Ttrain)]为Ttrain中图像的数量;

(22)遍历训练集Ttrain,如果i0≤len(Ttrain),跳转到步骤(23),否则结束遍历Ttrain,跳转到步骤(27);

(23)解析第i0个样本模块对应序列化的字符串examplei0,得到第i0个样本模块的特征字典featurei0={raw_imagei0,label},其中,raw_imagei0存储格式为string的图像,标签label格式为int64;

(24)将raw_imagei0格式变为float32,得到存储格式为float32的图像decoded_imagei0;

(25)将decoded_imagei0等比例缩放,得到imgi0,且图像表示为imgi0={img_shapei0,depth=3},其中,img_shapei0为图像形状,img_shapei0={height=224,width=224};

(26)i0=i0+1,跳转到步骤(22);

(27)得到训练图像集Train={img1,img2,…,imgM},M为最终训练集中的图像数量;

所述步骤(3)中,采用VGGNet网络训练训练集Train,得到特征向量集FP1,具体包括:(31)将最终训练集Train读入VGGNet网络,将图像的标签label当作网络的类别标签来训练网络,定义conv为卷积层,pool为池化层,采用最大池化maxpooling,stride为步长,激活函数为ReLU,VGGNet有5个卷积模块,分别为Conv1,Conv2,Conv3,Conv4和Conv5,每个卷积层后接一个激活函数ReLU;

(32)定义循环变量i1用于遍历Train,i1∈[1,len(Train)],i1赋初值为1,len(Train)表示最终训练集中图像数量;

(33)遍历Train,如果i1≤len(Train),跳转到步骤(35),否则结束遍历Train,跳转到步骤(37);

(34)Conv1和Conv2分别有2个conv和一个stride为2的pool,Conv3和Conv4分别有4个卷积层和1个步长stride为2的pool,Conv5有4个conv,对最后一层conv5_4的输出结果进行激活,得到relu5_4;

(35)relu5_4池化后接三次全连接层,得到特征向量fi1;

(36)i1=i1+1,跳转到步骤(33);

(37)得到特征向量集FP1=FP1={f1,f2,...,fi1,...,fM},M为最终训练集中图像数量;

所述步骤(4)中,包括:

(41)将Train读入ResNet网络,将图像的标签当作网络的类别标签来训练网络,定义有四个Block模块,分别为Block1,Block2,Block3,Block4;

(42)定义循环变量i2用于遍历Train,i2∈[1,len(Train)],i2赋初值为1;

(43)遍历Train,如i2≤len(Train),跳转到步骤4.4,否则结束遍历Train,跳转到步骤

4.14;

(44)对循环变量i2对应的图像imgi2进行卷积,卷积核为7*7,通道数为64,填充padding为3,stride为2,卷积后得到imgi2’,对imgi2’进行BN和scale后,通过ReLU,输出为resnet1;

(45)定义branch1为残差结构中的分支,branch2为残差结构的主支,每个Block都有2个block组成,Block1={block1,block2};

(46)输入resnet1,通过在branch1上进行卷积,批量化归一,输出为branch11;

(47)输入resnet1,通过在branch2上依次进行卷积,BN批量化归一,scale批量化归一,激活函数ReLU,卷积,BN批量化归一,scale批量化归一,激活函数ReLU,卷积,BN批量化归一,scale批量化归一后,输出为branch21;

(48)将branch11和branch21相加后,得到branch31,对branch31进行ReLU操作,得到resanet2a;

(49)输入resanet2a,输出为branch11’,且branch11’与resanet2a相同;

(410)输入resanet2a,通过在branch2上依次进行conv,BN,scale,ReLU,conv,BN,scale,ReLU,conv,BN,scale,输出为branch21’;

(411)将branch11’和branch21’相加后,得到branch31’,对branch31’进行ReLU操作,得到resanet2b;

(412)将上述Block1的结果resanet2b输入Block2中,重复步骤(46)‑步骤(411),得到resanet3a,resanet3b,将上述Block2的结果resanet3b输入Block3中,重复步骤(46)‑步骤(411),得到resanet4a,resanet4b,将上述Block3的结果resanet4b输入Block4中,重复步骤(46)‑步骤(411),得到resanet5a,resanet5b,其中,resanet5b为fi2;

(413)i2=i2+1,跳转到步骤(43);

(414)得到特征向量集FP2={fp1,fp2,...,fi2...,fpM},M为最终训练集中的图像数量。

2.根据权利要求1所述的基于VGGNet和ResNet的图像分类方法,其特征在于,所述步骤(5)中,将FP1和FP2进行融合处理,得到向量集FP3,具体包括:(51)定义循环变量数据i3,用于分别遍历FP1和FP2,i3∈[1,M],i3赋初值为1,M为最终训练集中的图像数量;

(52)遍历FP1和FP2,如果i1≤M,跳转到步骤(53),否则结束遍历FP1和FP2,跳转到步骤(55);

(53)fi3与fpi3相加得到Fi3,其中,fi3为特征向量集FP1中的某项,所述fpi3为特征向量集FP2中的某项;

(54)i3=i3+1,跳转到步骤(52);

(55)得到特征融合向量集FP3={F1,F2,...,Fi3,...,FM}。