基于深度学习的自适应观测压缩感知图像重构方法与流程

文档序号:13513929阅读:673来源:国知局
基于深度学习的自适应观测压缩感知图像重构方法与流程

本发明属于图像处理技术领域,主要涉及一种自适应观测压缩感知图像的重构方法,可用于雷达成像。



背景技术:

现今信息时代中,人们对信息的需求也越来越高。将现实世界的模拟信号采样后转化为数字信号进行处理在当今时代是必要的,而采样的理论基础则是奈奎斯特采样定理,它表明在进行模拟信号和数字信号的转换过程中为了完整地保留原始信号中的信息,在采样时采样频率至少需为信号最高频率的两倍。可是随着信息需求越来越高,带宽较宽信号的处理变得困难起来。在许多应用场景中,过高的采样率使得人们不得不将采样结果压缩后再进行存储和传输。

压缩感知理论表明一定条件下能对信号以低速率采样,高概率重构,从而节省大量资源。近年来大量重构算法被提出,如正交匹配追踪、基追踪等,但这些算法通过求解优化问题进行重构的特点使其难有好的实时性。深度学习方法线下训练的特性让其具有较好的实时性,因此许多基于深度学习的图像重构方法被提出,如sda、dr2,其中:

sda只由全连接层组成,在输入数据增多时需要更多的参数,从而导致更大的计算量。

dr2由全连接层和卷积层组成,可以进行分块重构,减少了计算量,不容易过拟合,dr2使用的跳过式连接使得重构效果更好;但由于dr2使用的观测是随机高斯观测,不易提取数据中的有用信息,使得重构图像的峰值信噪比psnr低,影响重构图像的清晰度。



技术实现要素:

本发明的目的在于针对上述已有的压缩感知图像重构深度学习方法的不足,提出一种自适应观测的压缩感知图像重构深度学习方法,以更好地提取数据中的有用信息,提高重构图像的峰值信噪比psnr,进而提高重构图像质量。

为实现上述目的,本发明的技术方案包括如下:

1)构建自适应观测网络:

1a)从github网站上下载重构网络dr2的网络结构文件、参数设置文件、生成训练集的代码、生成验证集的代码、测试代码以及测试集图片,从srcnn网站上下载训练集图片和验证集图片;

1b)在linux系统下搭建caffe平台,并安装matlab商用软件;

1c)在重构网络dr2的基础上修改重构网络结构文件,即在重构网络dr2的全连接层前添加输出为低维的第二全连接层,得到自适应观测网络;

2)转换数据格式开始训练:

2a)将1a)中的训练集图片和验证集图片分别放到training_data/train文件夹和training_data/test文件夹下,修改并运行代码生成训练集的hdf5格式和验证集的hdf5格式文件;

2b)使用1c)修改后的网络结构文件和参数设置文件以及2a)中的训练集的hdf5格式和验证集的hdf5格式文件

2c)在caffe平台上对自适应观测网络进行训练:

2c1)只训练重构网络dr2的全连接层和新添加的第二全连接层;

2c2)在2c1)的基础上训练重构网络dr2的所有层和新添加的第二全连接层,即训练自适应观测网络,得到训练好的模型,该训练好的模型包括第二全连接层和重构网络dr2;

3)利用训练好的模型进行图像观测及重构:

3a)从1a)中的测试集图片中选取一张图像作为原图,分割为大小固定的数个图像块,通过matlab商业软件调用caffe中的函数,将原图的这些图像块输入到训练好的模型中,每个图像块经过第二全连接层后得到一组观测值;

3b)每组观测值经过重构网络dr2后得到重构图像块,将这些重构图像块按原图顺序进行合并,得到重构图像。

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

1.适应性强:

传统的随机高斯观测是为了高概率满足rip条件,但本身局限性很大,因为它并不是根据训练集设计得到的;本发明采用的观测根据训练集通过训练得到,可用于不同类型的训练集,适应性强;

2.重构效果好:

本发明采用的自适应观测能够从原图中观测到更多信息,观测值经过重构后得到的重构图像峰值信噪比psnr明显提升;

3.实时性好:

本发明由于采用了是深度学习方法,减少了测试耗时,在实际使用时有很好的实时性。

附图说明

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

图2为本发明中的自适应观测网络结构图;

图3为测试本发明中自适应观测网络所使用的原图;

图4为用本发明和现有随机高斯观测方法分别在观测率为25%时对图3的重构图像和重构图像峰值信噪比psnr。

具体实施方式

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

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

步骤1,准备重构网络dr2网络结构文件及相关文件。

1a)从github网站上下载重构网络dr2的有关文件,其包括:训练所需网络结构文件dr2_stage1.prototxt、dr2_stage2.prototxt,参数设置文件dr2_stage1_solver.prototxt和dr2_stage2_solver.prototxt,制作hdf5格式文件所需的代码文件store2hdf5.m、生成训练集和验证集所需的代码文件generate_train.m、generate_test.m、测试代码文件test_everything.m、测试所需网络结构文件reconnet_0_10.prototxt、reconnet_0_25.prototxt和测试集图片;

1b)从srcnn网站上下载训练集图片和验证集图片;

1c)在linux系统下搭建caffe平台,并安装matlab商用软件。

步骤2,修改训练所需文件。

2a)在重构网络dr2网络结构文件的基础上修改得到自适应观测网络结构,如图2所示,步骤如下:

2a1)打开保存网络结构的文件dr2_stage2.prototxt,该文件包括全连接层fc1、reshape层、4个完全相同的残差学习块,第一个残差学习块包括第一卷积层conv1,第二卷积层conv2,第三卷积层conv3,第一bn层,第一scale层,第一relu层,第二个残差学习块包括第四卷积层conv4,第五卷积层conv5,第六卷积层conv6,第二bn层,第二scale层,第二relu层,第三个残差学习块包括第七卷积层conv7,第八卷积层conv8,第九卷积层conv9,第三bn层,第三scale层,第三relu层,第四个残差学习块包括第十卷积层conv10,第十一卷积层conv11,第十二卷积层conv12,在全连接层fc1之前添加一层输出维度低于输入维度的第二全连接层,即按照指定格式在dr2_stage1.prototxt文件中加入一段表示第二全连接层的文字;该dr2_stage1.prototxt网络结构文件中每一层都包含层的名称name和该层前一层的名称bottom;

2a2)将第二全连接层的name改为“fc1”,全连接层的name改为“fc2”,bottom改为“fc1”,reshape层的bottom改为“fc2”,由于全连接层为reshape层的前一层,所以reshape层的bottom也为“fc2”;

2a3)根据输入图像块的维度及观测率,计算第二全连接层的输出维度:

根据输出维度小于输入维度的要求及实用性,本实例固定输入图像块的维度为1089,选择小于50%的观测率;再将这两者相乘,得到第二全连接层的输出维度;如观测率为25%时,输出图像块维度为1089x25%=272;

2b)打开保存网络结构的文件dr2_stage1.prototxt,该文件包括全连接层fc1、reshape层,按照与2a)相同的方式添加第二全连接层;

2c)使用matlab软件打开生成训练集和验证集所需的代码文件generate_train.m和generate_test.m,进行修改,即删除两个文件中的观测过程代码;

步骤3,转换数据格式开始训练。

3a)将1b)中的训练集图片放到路径training_data/train下,将验证集图片放到路径training_data/test下,通过matlab软件分别运行2c)中修改后的代码文件generate_train.m、generate_test.m生成训练集的hdf5格式和验证集的hdf5格式文件;

3b)在caffe平台上对自适应观测网络进行训练:

3b1)只训练重构网络dr2的全连接层和新添加的第二全连接层:

在路径caffe_dr2-master/dr2/train下打开linux系统终端,向终端输入开始训练的命令../../../build/tools/caffetrain--solver=dr2_stage1_solver.prototxt,得到训练好的模型1;

3b2)在3a1)的基础上训练重构网络dr2和新添加的第二全连接层,即训练自适应观测网络:

在路径caffe_dr2-master/dr2/train下打开linux系统终端,向终端输入开始训练的命令../../../build/tools/caffetrain--solver=dr2_stage2_solver.prototxt--weights=model/dr2_stage1_iter_1000000.caffemodel,得到训练好的自适应观测网络模型,其中--weights=model/dr2_stage1_iter_1000000.caffemodel表示自适应观测网络的全连接层和第二全连接层在训练好的模型1的基础上进行训练。

步骤4,利用训练好的模型进行图像观测及重构。

4a)从步骤1a1)中的测试集图片里挑选出一张图片作为原图,如图3所示;

4b)按照与2a)相同的方式对路径/test/deploy_prototxt_files/下的文件进行修改,根据观测率的不同选择修改不同的文件,如观测率为10%时,修改reconnet_0_10.prototxt文件,观测率为25%时,修改reconnet_0_25.prototxt;

在路径caffe_dr2-master/dr2/下打开matlab软件,在matlab软件中打开路径test/下的test_everything.m代码文件并对该代码文件进行修改,修改后运行该代码文件完成测试;

4c)测试完成后,输出原图的重构图像及重构图像的峰值信噪比psnr,如图4(a)所示;

4d)在matlab软件命令窗口中输入命令net.blobs(‘fc1’).get_data(),该命令中的fc1表示第二全连接层,该命令的作用是取出第二全连接层的输出,即原图像的观测值。

本发明的效果可通过与现有方法的比较进一步说明,现有方法的仿真实验步骤如下:

第一步,准备重构网络dr2网络结构文件及相关文件。

1.1)从github网站上下载重构网络dr2的有关文件,其包括:训练所需网络结构文件dr2_stage1.prototxt、dr2_stage2.prototxt,参数设置文件dr2_stage1_solver.prototxt和dr2_stage2_solver.prototxt,制作hdf5格式文件所需的代码文件store2hdf5.m、生成训练集和验证集所需的代码文件generate_train.m、generate_test.m、测试代码文件test_everything.m、测试所需网络结构文件reconnet_0_10.prototxt、reconnet_0_25.prototxt和测试集图片;

1.2)从srcnn网站上下载训练集图片和验证集图片;

1.3)在linux系统下搭建caffe平台,并安装matlab商用软件。

第二步,转换数据格式开始训练。

转换数据格式开始训练。

2.1)将1.2)中的训练集图片放到路径training_data/train下,将验证集图片放到路径training_data/test下,通过matlab软件分别运行1.1)中的代码文件generate_train.m、generate_test.m生成训练集的hdf5格式和验证集的hdf5格式文件;

2.2)在caffe平台上对重构网络dr2进行训练:

2.2.1)只训练重构网络dr2的全连接层:

在路径caffe_dr2-master/dr2/train下打开linux系统终端,向终端输入开始训练的命令../../../build/tools/caffetrain--solver=dr2_stage1_solver.prototxt,得到训练好的模型1;

2.2.2)的2.2.1)的基础上训练重构网络dr2:

在路径caffe_dr2-master/dr2/train/下打开linux系统终端,向终端输入开始训练的命令../../../build/tools/caffetrain--solver=dr2_stage2_solver.prototxt--weights=model/dr2_stage1_iter_1000000.caffemodel,得到训练好的重构网络dr2的模型,其中--weights=model/dr2_stage1_iter_1000000.caffemodel表示重构网络dr2的全连接层在模型1的基础上进行训练。

第三步,利用训练好的模型进行图像观测及重构。

3.1)从步骤1.1)中的测试集图片里挑选出一张图片作为原图,如图3所示;

3.2)在路径caffe_dr2-master/dr2/下打开matlab软件,在matlab软件中打开路径test/下的test_everything.m代码文件,该代码文件包含了对原图的随机高斯观测过程和通过重构网络dr2的重构过程,运行该代码文件完成测试,输出原图的重构图像及重构图像的峰值信噪比psnr,如图4(b)所示;

将用现有方法获得的重构结果图4(b)与本发明的重构结果图4(a)相比较,可以看出:

本发明提出的自适应观测网络的重构结果明显比随机高斯观测的重构结果清晰;

本发明自适应于数据集的特性能更好地提取数据中的有用信息,提高了重构图像的峰值信噪比psnr,进而提高了重构图像质量,同时在保证较高重构质量的基础上还具有实时性好的特点。

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