基于VGG16图像反卷积的网络性能评估方法与流程

文档序号:11920968阅读:4981来源:国知局
基于VGG16图像反卷积的网络性能评估方法与流程

本发明属于图像处理技术领域,主要涉及一种网络性能评估方法,可用于对卷积神经网络进行直观形象的评估。



背景技术:

深度学习是近年来人工智能领域的研究热点之一。基于神经网络的思想,深度学习致力于模仿人脑的分布式特征表示,从像素级的原始数据到抽象的语义概念,通过逐层提取信息以实现更有效的特征表达。

近年来,由于大型公共图像数据库,如ImageNet和高性能计算系统,如GPU,或大规模分布式集群的出现,使卷积神经网络作为深度学习的重要组成部分,已经在很多领域取得了重大突破诸如目标检测、图像分类、人脸识别等。在图像分类领域,VGG卷积神经网络使用较小的卷积核和较深的网络结构,从而能够有效地提取到图像的显著性特征,在2014年的ImageNet Large-Scale Visual Recognition Challenge(ILSVRC)大赛中VGG卷积神经网络获得了很好的成绩,不仅以很高的准确率完成了ILSVRC大赛分类和定位任务,而且同样适用于其他数据集,例如:VOC-2007\VOC-2012数据集、Caltech-101\Caltech-256数据集,特别是其中16层深的VGG16网络表现出很高的分类能力和很强的可移植性。

目前,人们主要通过比较网络的代价函数损失值和在某个数据集上测试的准确率来评估该网络的性能。然而,对于深度卷积神经网络来说,输入的是一幅图像,输出的只是一个概念性的数值,并不能够直观形象地评估系统的好坏。在这种情况下,网络对于大家来说相当于一个“黑匣子”,无法对网络内部框架进行分析,进而做出适当改进以提高网络性能。



技术实现要素:

本发明的目的在于针对上述现有技术的不足,提供一种基于VGG16图像反卷积的网络性能评估方法,以更加直观形象地评估网络性能,使评估结果与人的主观感知之间有较好的相关性和准确性。

本发明的技术思路是:通过比较VGG16的原始网络和微调后网络的反卷积图像,分析其网络性能;通过比较VGG16的原始网络和微调后网络第5_3层卷积层的系数衰减图,进一步分析其网络性能,具体实现步骤包括如下:

1.基于VGG16图像反卷积的网络性能评估方法,包括如下步骤:

1)准备好待评估的两个网络模型及其相关文件:

1a)从官网下载VGG16原始网络模型及其相关文件,

1b)在linux系统下搭建caffe平台,用VGG16原始网络模型训练好的权值参数作为初始值,对该网络进行微调,得到微调后的网络模型及其相关文件;

1c)将VGG16原始网络和微调后的网络作为待评估的两个网络;

2)做出两个待评估网络“conv5_3”层的特征可视化图像及其反卷积后的图像:

2a)将VGG16原始网络模型和微调后的网络模型分别通过前向传播过程取出“conv5_3”层的特征可视化图;

2b)将特征可视化图像按照VGG16原始网络和微调后网络框架逆向逐层进行反池化、反整流和反卷积操作,得到VGG16原始网络和微调后的网络的反卷积图像;

2c)对VGG16原始网络的反卷积图像和微调后网络的反卷积图像进行比较,得出这两种网络对小型汽车的显著性特征提取能力强弱,对待评估网络进行一次评估;

3)做出特征可视化图像的系数衰减图:

3a)将2a)中得到的“conv5_3”层特征可视化图像的数据保存为.mat格式的文件;

3b)在MATLAB中画出VGG16原始网络和微调后网络“conv5_3”层特征可视化图像的二维的系数衰减图;

3c)比较3b)中两个系数衰减图的曲线陡峭程度:系数衰减图的曲线陡峭程度越大,则说明待评估网络提取小型汽车显著性特征的能力越强,能够更好地完成对小型汽车的识别分类,即网络性能更好,完成对待评估网络的二次评估。

本发明与现有技术相比具有以下优点:

1.本发明通过比较特征可视化图像及其反卷积后的图像来评估网络,使评估结果与人的主观感知之间具有更好的相关性和准确性,相比以前“黑匣子”式的评估方法,能够更加直观形象地确认网络性能的好坏。

2.本发明通过比较VGG16原始网络与微调后网络“conv5_3”层的系数衰减曲线图中曲线下降的陡峭程度,判断网络对图像显著性特征的抓取能力,提高了网络评估的准确性。

3.本发明通过可视化反卷积后的图像并观察其中物体显著性特征的强弱,更能深刻地理解和认识深度卷积神经网络的内部工作机理,从而可根据要求和实现目的对网络进行改进。

附图说明

图1为本发明的实现流程图;

图2为本发明测试网络性能时所使用的测试图;

图3为本发明反卷积过程所用的VGG16网络结构图;

图4为VGG16原始网络与微调后网络“conv5_3”层的特征可视化图像及其反卷积后的效果图;

图5为VGG16原始网络与微调后网络“conv5_3”层的系数衰减曲线图。

具体实施方式

下面结合附图和实例对本发明进行详细说明。

参照图1,本发明的实现步骤如:

步骤1,准备VGG16原始网络与微调后网络的模型极其相关文件。

1a)在caffe官网下载如下文件:

VGG16原始网络模型VGG_ILSVRC_16_layers.caffemodel,

imagenet数据集,

均值文件ilsvrc_2012_mean.npy,

制作lmdb文件所需的create_imagenet.sh,

制作均值文件所需要的make_imagenet_mean.sh,

训练网络的参数文件solver.prototxt、train_val.prototxt,

测试所需要的文件deploy.prototxt。

1b)在linux系统下搭建caffe平台,并用下载得到的文件对网络进行微调:

1b1)从imagenet数据集中挑选1300辆小型汽车及1300辆摩托车,并分别按照11:2的比例将其分为训练集和测试集两部分,第一次新建train_car和train_motor文件夹,将1100张小型汽车和1100张摩托车分别放到新建好的train_car和train_motor文件夹中;第二次新建val_car和val_motor文件夹,将另外的200张小型汽车和200张摩托车分别放到第二次新建好的val_car和val_motor文件夹中;

1b2)第三次新建文件夹train,将train_car和train_motor文件夹中的图像数据合并后作为训练数据集放入到该train文件夹;

1b3)第四次新建文件夹val,将val_car和val_motor文件夹中的图像数据合并后作为测试数据集放入val文件夹;

1b4)将train_car文件夹中的全部图片信息转换成.txt格式并生成train_car.txt文件,再用查找替换方法给其中的图片信息加上标签1;再将train_motor文件夹中的全部图片信息转换成.txt格式并生成train_motor.txt文件,同样用查找替换方法给该文件中的图片信息加上标签0,新建train.txt文件,将train_car.txt和train_motor.txt文件中的图像数据合并到train.txt文件中;

1b5)将val_car文件夹中的全部图片信息转换成.txt格式并生成val_car.txt文件,并用查找替换方法给其中的图片信息加上标签1;再将val_motor文件夹中的全部图片信息转换成.txt格式并生成val_motor.txt文件,同样用查找替换方法给该文件中的图片信息加上标签0,新建val.txt文件,将val_car.tx和val_motor.txt文件中的图像数据合并到新建的val.txt文件夹中;

1b6)对下载的create_imagenet.sh文件中所调用的train、train.txt、val、val.txt四个文件的路径进行修改,在caffe目录下打开终端并执行create_imagenet.sh文件,生成train_lmdb文件与val_lmdb文件;

1b7)对下载的make_imagenet_mean.sh文件中所调用的train_lmdb与val_lmdb两个文件路径进行修改,再执行make_imagenet_mean.sh文件生成二进制均值文件my_mean.binaryproto;

1b8)对下载的训练网络所需文件train_val.prototxt中所调用的lmdb文件和二进制均值文件的路径进行修改,并将最后一层全连接的名称改为fc8t,输出类别改为2类;

1b9)对下载的solver.prototxt文件中调用的train_val.prototxt的路径进行修改,再对该文件中的训练参数进行修改,即把学习率base_lr改为0.0001,最大迭代次数max_iter改为2200次;

1b10)在caffe目录下打开终端,将VGG16网络原始模型参数作为微调网络的初始值,调用1b9)修改后的参数文件solver.prototxt,重新训练VGG16网络,得到微调后网络的模型及其均值文件;

1b11)将下载的测试所需文件deploy.prototxt中最后一层全连接的名称改为fc8t,输出类别改为2类。

步骤2,准备待测试图片。

从1a)下载的imagenet数据集中挑选出一张动物的图片,如图2(a)所示,从1b1)准备的测试集中挑选出一张小型汽车的图片,如图2(b)所示,将图2(a)和图2(b)作为待测试图片。

步骤3,做出VGG16原始网络和微调后网络“conv5_3”层的特征可视化图像及其反卷积后的图像。

3a)在caffe目录下打开jupyter notebook,在jupyter notebook中查找examples目录下的00_classification.ipynb文件并打开,将其中的测试图像换成2(a)所示的待测试图像,调用下载的VGG16原始网络模型及其deploy.prototxt文件和均值文件,进行前向传播过程,之后,执行命令Feat=net.blobs(‘conv5_3’).data[0,:]得到“conv5_3”层的特征可视化图像;如图4(a)所示;

3b)根据如图3所示的VGG16网络结构,将3a)得到的特征可视化图像从“conv5_3”层按照网络结构的逆向顺序逐层进行反池化、反整流、反卷积操作,得到如图4(b)所示反卷积后的图像,其中:

反池化操作:是将前向传播过程中池化层最大值所在位置处填入相应值,其他位置设置为0;

反整流操作:是将要进行反整流的值负数设为0,正数保留;

反卷积操作:是按反卷积公式进行计算,其中l成是前向传播过程中卷积层的标号,k是第l层的卷积核个数,c是第l-1层的卷积核个数,Fk,c是第l层的卷积核,是将卷积核Fk,c进行上下、左右翻转,LK是该层每个卷积核对应的卷积后图像,是输出结果;

3c)在00_classification.ipynb文件中,将测试图像换为待测试图像图2(b),调用下载的VGG16原始网络模型及其deploy.prototxt文件和均值文件,进行前向传播过程,之后,执行命令Feat=net.blobs(‘conv5_3’).data[0,:]得到特征可视化图4(c),并将其按图3所示网络结构从“conv5_3”层开始逆向逐层进行反池化、反整流、反卷积操作,得到反卷积后图像图4(d);

3d)在00_classification.ipynb文件中,将测试图像换为待测试图像图2(b),调用步骤1b10)中得到的微调后网络模型及其均值文件和步骤1b11)修改后的deploy.prototxt文件,进行前向传播过程,之后,执行命令Feat=net.blobs(‘conv5_3’).data[0,:]得到“conv5_3”层的特征可视化图像如图4(e)所示,并将其按图3所示网络结构从“conv5_3”层开始逆向逐层进行反池化、反整流、反卷积操作,得到反卷积后图像,如图4(f)所示;

3e)通过比较图4中特征可视化图像的稀疏程度及其对应反卷积后图像对物体的显著性特征提取能力强弱,对网络进行一次评估:

3e1)比较“conv5_3”层的可视化图像4(a)、4(c)及其对应的反卷积图像4(b)、4(d),可以看出图4(a)比图4(c)更加稀疏,即非零值更少;同时图4(b)比图4(d)中物体的显著性特征更明显,说明VGG16原始网络对动物的特征提取能力更强,通过分析VGG16原始网络的训练集ImageNet,发现其中动物数据比小型汽车多10倍以上,而训练集中每类图像的数量对于该网络学习该类特征有重要的影响,这进一步说明了评估的准确性;

3e2)比较“conv5_3”层的特征可视化图像4(c)、4(e)及其对应的反卷积图像图4(d)、4(f),可看出特征可视化图像图4(e)比图4(c)更加稀疏,同时图4(f)比图4(d)中物体的的显著性特征更加明显且冗余特征更少,这说明微调后的网络对小型汽车具有更强的特征提取能力及分类能力,则评估该网络性能较好,完成对待评估网络的一次评估。

步骤4,做出两个待评估网络“conv5_3”层特征可视化图像的系数衰减图,对待评估网络进行二次评估。

4a)将4c)、4d)中得到的“conv5_3”层特征可视化图像的数据保存为.mat格式的文件;

4b)在MATLAB中,将4a)保存的特征可视化图的数据先整型为一个列向量,再将列向量按从大到小的顺序排列,调用plot函数画出二维的系数衰减图,如图5所示;

4c)比较4b)中系数衰减图的曲线陡峭程度:系数衰减图的曲线陡峭程度越大,则说明待评估网络提取小型汽车显著性特征的能力越强,可以看出微调后网络对小型汽车做出的系数衰减曲线更加陡峭,说明微调后网络能够更好地完成对小型汽车的识别分类,即网络性能更好,完成对待评估网络的二次评估。

图4和图5的结果说明,本发明提出的网络评估方法可以更加直观地看到网络内部的工作机理,能更加直观形象地认识到网络性能的好坏,从而可根据要求和实现目的对网络进行改进,具有较强的实用价值。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1