一种基于深度神经网络的压缩编码孔径成像方法及系统与流程

文档序号:18974280发布日期:2019-10-29 03:09阅读:282来源:国知局
一种基于深度神经网络的压缩编码孔径成像方法及系统与流程

本发明涉及压缩成像技术领域,特别涉及一种基于深度神经网络的压缩编码孔径成像方法及系统。



背景技术:

压缩成像(compressedimaging,ci)作为压缩感知(compressedsensing,cs)在成像领域的重要应用,利用自然界中大部分图像在某些稀疏基上具有稀疏性或者可压缩性,通过较少的线性测量值重建出原始图像。

2006年,rice大学研制出的单像素相机(single-pixelcamera,spc),作为第一个成功的ci实例。但是spc架构的最大的问题在于一次曝光只能得到一个测量值,因此spc无法在高分辨率应用领域中广泛使用。2009年,marcia等人首先提出压缩编码孔径成像(compressedcodedapertureimaging,ccai),它可以在单次曝光条件下获取低分辨率压缩测量。其基本思想是首先生成一种随机编码孔径,其实质上是引入比针孔更复杂的点扩散函数,透过编码孔径之后在探测器上形成投影图像,这些图像叠加得到退化后的编码测量,然后利用探测器上记录的低分辨率测量值进行非线性重建。

与spc相比,编码孔径易于构建,并融入实用、稳健和紧凑的光学系统设计中,更重要的是,ccai通过单次曝光完成所有测量值的记录。在随后的工作中,ccai方法可以扩展到视频成像,高分辨率成像等。

但是,现有ccai的重建方法在针对大尺度图像的压缩重建时,仍存在显著的瓶颈:其一,利用显式矩阵构造的前向模型的精度高,但是其测量矩阵维数随图像尺寸的增加呈几何级增加,给测量矩阵的存储传输及计算方面带来严重的负担;其二,利用构造的前向算符可以避免矩阵维数过大的问题,但其只能通过梯度下降等优化方法进行求解,并且由于前向算符及其伴随算符的匹配度较差,导致重建图像的质量不高。其三,由于重建过程是通过迭代求解一个优化问题来完成的,计算复杂度非常高,耗时较长。



技术实现要素:

本发明的目的在于解决上述背景技术部分存在的问题,以改善压缩编码孔径成像重建的时间限制。

为实现以上目的,一方面,本发明采用一种基于深度神经网络的压缩编码孔径成像方法,包括如下步骤:

训练时,将训练集中每张图片裁剪成尺寸相同的子图像块,总共可得到d个尺寸相同的子图像块;

分别将每个子图像块与编码孔径进行卷积后,进行下采样操作,得到与每个子图像块对应的测量值和测量矩阵;

将每个子图像块及其对应的测量值作为训练数据对,并将训练数据对作为深度神经网络的输入,对该深度神经网络进行训练,得到训练好的深度神经网络;

测试时,将待重建图像的测量值作为所述训练好的深度神经网络的输入,进行图像重建。

进一步地,所述分别将每个子图像块与编码孔径进行卷积后,进行下采样操作,得到与每个子图像块对应的测量值和测量矩阵,包括:

根据压缩编码孔径的观测矩阵成像模型计算每个子图像块的对应的测量值,其压缩编码孔径的观测矩阵成像模型为:

y=vec(y)=vec(d↓(xtrue*h(cca))+e),

其中,vec(·)为向量化算子,表示原始二维信号,d↓表示下采样操作,表示二维测量值,向量化后的一维测量值,*表示卷积操作,e表示系统噪声,h(cca)表示编码孔径;

表示n2×n2维傅里叶变换矩阵,其元素并且令其中表示克罗内克积,f表示大小为n×n傅里叶变换矩阵,将所述压缩编码孔径的观测矩阵成像模型转换为:

其中,ch是大小为n2×n2的对角矩阵,其对角元素为ch=diag(h(cca)),e表示噪声;

将转换后的压缩编码孔径的观测矩阵成像模型表示为:

其中,编码孔径的合理设计应使得测量矩阵r满足rip。

进一步地,在所述分别将每个子图像块与编码孔径进行卷积后,根据给定的下采样率进行下采样,得到与每个子图像块对应的测量值之前,还包括:

对所述测量矩阵r进行奇异值分解:r=u(∑0)vt,其中,∑表示维数为m2×n2的半正定对角矩阵,0表示m2×(n2-m2)维元素全为0的矩阵,是正交矩阵;

将所述压缩编码孔径的观测矩阵成像模型转换为:

y=rx=u(∑0)vtx=u(∑0)(v1v2)tx=u∑v1tx

其中,为列正交矩阵,x表示一维信号;

令ysvd=∑-1uty,rsvd=v1t,获得新的测量系统:ysvd=rsvdx,ysvd表示优化后的测量值,rsvd表示优化后的测量矩阵。

进一步地,所述深度神经网络为ista-net-plus。

进一步地,在所述将待重建图像的测量值作为所述训练好的深度神经网络的输入,进行图像重建之前,还包括对所述训练好的深度神经网络模型进行测试,具体为:

将基准数据集中的测试集图片裁剪成p个尺寸相同的测试子图像块,该测试子图像块的尺寸与所述子图像块的尺寸相同;

分别将每个测试子图像块与所述编码孔径进行卷积后,进行下采样操作,得到与每个测试子图像块对应的测试测量值和测量矩阵;

将所述测试测量值作为所述训练好的深度神经网络模型的输入,完成对所述训练好的深度神经网络模型的测试。

另一方面,采用一种基于深度神经网络的压缩编码孔径成像系统,包括:裁剪模块、测量值计算模块、训练模块以及重建模块;

裁剪模块用于训练时将原始图片集中每个原始图片裁剪成d个尺寸相同的子图像块;

测量值计算模块用于分别将每个子图像块与编码孔径进行卷积后,进行下采样操作,得到与每个子图像块对应的测量值和测量矩阵;

训练模块用于将每个子图像块及其对应的测量值作为训练数据对,并将训练数据对作为深度神经网络的输入,对该深度神经网络进行训练,得到训练好的深度神经网络;

重建模块用于将待重建图像的测量值作为所述训练好的深度神经网络的输入,进行图像重建。

进一步地,所述测量值计算模块具体用于:

根据压缩编码孔径的观测矩阵成像模型计算每个子图像块的对应的测量值,其压缩编码孔径的观测矩阵成像模型为:

y=vec(y)=vec(d↓(xtrue*h(cca))+e),

其中,vec(·)为向量化算子,表示原始二维信号,d↓表示下采样操作,表示二维测量值,向量化后的一维测量值,*表示卷积操作,e表示系统噪声,h(cca)表示编码孔径;

表示n2×n2维傅里叶变换矩阵,其元素并且令其中表示克罗内克积,f表示大小为n×n傅里叶变换矩阵,将所述压缩编码孔径的观测矩阵成像模型转换为:

其中,ch是大小为n2×n2的对角矩阵,其对角元素为ch=diag(h(cca)),e表示噪声;

将转换后的压缩编码孔径的观测矩阵成像模型表示为:

其中,编码孔径的合理设计应使得测量矩阵r满足rip。

进一步地,还包括与测量值计算模块输入端连接的预处理模块,预处理模块用于:

对所述测量矩阵r进行奇异值分解:r=u(∑0)vt,其中,∑表示维数为m2×n2的半正定对角矩阵,0表示m2×(n2-m2)维元素全为0的矩阵,是正交矩阵;

将所述压缩编码孔径的观测矩阵成像模型转换为:

y=rx=u(∑0)vtx=u(∑0)(v1v2)tx=u∑v1tx

其中,为列正交矩阵,x表示一维信号;

令ysvd=∑-1uty,rsvd=v1t,获得新的测量系统:ysvd=rsvdx,ysvd表示优化后的测量值,rsvd表示优化后的测量矩阵。

进一步地,所述深度神经网络为ista-net-plus。

进一步地,还包括测试模块,测试模块输入端与所述训练模块连接、输出端与所述重建模块连接;

测试模块用于利用基准数据集中的测试集图片对所述训练好的深度神经网络模型进行测试。

与现有技术相比,本发明存在以下技术效果:本发明首先将尺寸较大的原始图片裁剪成多个尺寸相同的子图像块,子图像块经过与编码孔径进行卷积和下采样处理,得到与子图像块对应的测量值;通过预处理步骤,得到优化后的测量值和测量矩阵;然后将子图像块与其测量值构成数据对,对深度学习架构进行训练,得到最优的网络参数;最后直接将图像的测量值作为网络的输入,即可在非迭代的情况下进行图像的重建。本方案通过将深度学习引入压缩编码孔径的重建过程,利用图像与其测量值构成的数据对来训练深度学习架构,在图像对的重建过程通过非迭代完成,实现从低分辨率测量值的实时重建,改善压缩编码孔径成像重建的时间限制。

附图说明

下面结合附图,对本发明的具体实施方式进行详细描述:

图1是一种基于深度神经网络的压缩编码孔径成像方法的流程示意图;

图2是ista-net-plus的深度学习架构的流程图;

图3是本发明中成像系统的原理框图;

图4是一种基于基于深度神经网络的压缩编码孔径成像系统的结构示意图;

图5是单次重建实验结果示意图。

具体实施方式

为了更进一步说明本发明的特征,请参阅以下有关本发明的详细说明与附图。所附图仅供参考与说明之用,并非用来对本发明的保护范围加以限制。

如图1所示,本实施例公开了一种基于深度神经网络的压缩编码孔径成像方法,包括如下步骤s1-s4:

s1、训练时,将训练集中原始图片集中每个原始图片裁剪成d个尺寸相同的子图像块;

需要说明的是,本实施例中的随机裁剪相当于建立每个因子特征与相应类别的权重关系,减弱背景(或噪音)因子的权重,也就可以产生更好的学习效果,增加模型稳定性。

应当理解的是,本实施例中将原始图片裁剪的子图像块的数量越多,所构建的数据集越大,相对来说训练出来的结果会较好,但同时也应考虑数据集越大训练过程则越耗时。

s2、分别将每个子图像块与编码孔径进行卷积后,进行下采样操作,得到与每个子图像块对应的测量值;

s3、将每个子图像块及其对应的测量值作为训练数据对,并将训练数据对作为深度神经网络的输入,对该深度神经网络进行训练,得到训练好的深度神经网络;

s4、将待重建图像的测量值作为所述训练好的深度神经网络的输入,进行图像重建。

需要说明的是,本实施例中通过将图像及其对应的测量值作为一对训练对,从而构建出训练对集合,利用训练对集合对事先选定的深度学习框架进行训练,得到最优的网络参数,从而得到训练好的深度神经网络,然后将待重建图像对应的测量值作为训练好的深度神经网络的输入,即可在非迭代的情况下从低分辨率测量值进行原始图像的重建。

具体地,本实施例中将原始图片裁剪为的子图像块(步长stride=q),得到的子图像块总数为d,将子图像块和编码孔径进行卷积和下采样操作,得到测量值然后对其进行向量化操作,得到测量值的列向量为其中i=1,2,3…,d。

具体地,测量值的计算过程对应于marcia等人提出的cca成像机制。假设压缩编码孔径的观测模型可表示为:

y=vec(y)=vec(d↓(xtrue*h(cca))+e),

其中,vec(·)为向量化算子,表示原始二维信号,d↓表示下采样操作,表示二维测量值,向量化后的一维测量值,*表示卷积操作,e表示系统噪声。h(cca)表示编码孔径。

表示n2×n2维傅里叶变换矩阵,其元素并且令其中表示克罗内克积,f表示大小为n×n傅里叶变换矩阵。因此,卷积模型可改写为:

其中,ch是大小为n2×n2的对角矩阵,其对角元素为ch=diag(h(cca)),e表示噪声。

因此,压缩编码孔径的观测矩阵成像模型可表示为:

其中,编码孔径的合理设计应使得测量矩阵r满足rip。

具体地,本实施例实验所用的训练集中有91张原始图片(原始图片尺寸不是完全一样的),在matlab或者python中,读取每一张图片之后,该处设置子图像块的大小是33×33,每隔7个像素进行一次裁剪。对这91张图片都进行这样的操作,得到子图像块的总数为d,本实施例中得到的训练的子图像块总数是85591。然后,每个图像块和编码孔径先进行卷积,再进行下采样得到测量值y,生成训练数据对即nb=85591,这些构成了训练对集合,作为深度神经网络的输入。

进一步地,在上述步骤s3:在所述分别将每个子图像块与编码孔径进行卷积后,根据给定的下采样率进行下采样,得到与每个子图像块对应的测量值之前,还包括对所述深度神经网络:

对所述测量矩阵r进行奇异值分解:r=u(∑0)vt,其中,∑表示维数为m2×n2的半正定对角矩阵,0表示m2×(n2-m2)维元素全为0的矩阵,是正交矩阵;

将所述压缩编码孔径的观测矩阵成像模型转换为:

y=rx=u(∑0)vtx=u(∑0)(v1v2)tx=u∑v1tx

其中,为列正交矩阵,x表示一维信号;

令ysvd=∑-1uty,rsvd=v1t,获得新的测量系统:ysvd=rsvdx,ysvd表示优化后的测量值,rsvd表示优化后的测量矩阵。

其中,下采样率可以是不固定的,采样率越高,测量值中包含的信息就越多,重建结果会越好。单次重建实验选择的是30%,图像块的大小是33×33,拉成列向量就是1089×1,因此测量值的维数就是1089×30%=327。

需要说明的是,本方案的设计思路是通过深度神经网络来构造反向算符rb,实现从测量值中快速重建为了增加前向算符和反向算符之间的匹配度,引入奇异值分解方法作为深度学习框架的预处理步骤,以提高图像重建性能。

进一步地,如图2所示,本方案中所采用的深度神经网络为ista-net-plus,迭代收缩-阈值算法(iterativeshrinkage-thresholdingalgorithm,ista)是一种流行的一阶近端方法,适合解决大尺度图像的线性逆问题。主要通过解决以下优化问题完成原始图像的重建:

其中,表示重建信号,τ是正则化因子,可以控制保真项(即第一项)和正则化项(即第二项)之间的权重,||·||1为l1范数。

具体来说,ista通过在以下更新步骤之间迭代来解决根据图像的测量值进行图像重建的问题:

r(k)=x(k-1)-ρrt(rx(k-1)-y),

其中,k是ista的迭代索引值,ρ是步长。

但是,对于更复杂的非正交(或甚至非线性)变换,获得x(k)仍然是困难的。并且,ista通常需要多次迭代才能获得令人满意的结果,因此计算量很大。所有参数如ρ和λ是预定义的(不随k变化),调整先验通常具有挑战性。

zhang等人通过神经网络结构构建了基于深度网络的压缩感知模型,将先前的ista更新步骤映射到由固定数量的阶段组成的深层网络架构,每个对应于传统ista中的一次迭代,提出ista-net和ista-net的改进版本ista-net-plus。与传统压缩感知算法不同,在压缩感知网络模型中参数无需提前预定义,网络模型会计算出最优参数,且迭代次数远小于常规压缩感知的迭代算法。主要分为两个模块:

r(k)模块:它用于产生立即重建结果r(k)。特别注意的是,rt(rr(k-1)-y)基本上是数据保真度项的梯度,在x(k-1)处计算。为了在增加网络灵活性的同时保留ista结构,我们允许步长ρ在迭代中变化(当它在传统ista中固定时),因此具有输入x(k-1)的该模块的输出最终定义为:

r(k)=x(k-1)(k)rt(rx(k-1)-y),

x(k)模块:输入为r(k),输出为x(k),则有:

其中,表示滤波器,h由两个线性卷积操作和一个激活函数组成,为h的左逆,其具有与h对称的结构并满足对称约束i为单位操作符,θ是收缩阈值,在每个训练阶段中是一个可学习的参数,表示矩阵点乘。

进一步地,利用训练对集合对所述深度神经网络模型进行训练,得到训练好的深度神经网络之后,还需对训练好的深度神经网络进行测试:具体为:

将基准数据集中的测试集图片裁剪成p个尺寸相同的测试子图像块,该测试子图像块的尺寸与所述子图像块的尺寸相同;

分别将每个测试子图像块与所述编码孔径进行卷积后,根据素数给定的下采样率进行下采样,得到与每个测试子图像块对应的测试测量值;

将所述测试测量值作为所述训练好的深度神经网络模型的输入,完成对所述训练好的深度神经网络模型的测试。

需要说明的是,本实施例中p的取值与d的取值不同,d是训练集中所有图像得到图像块的总数,p可以只是测试集中任意一张图片得到的图像块数。

需要说明的是,在测试时,选用广泛使用的基准数据集:set11,它们分别具有11个灰度图像。将测试集图片得到的测量值直接作为已经训练好的深度神经网络的输入,可在较短的时间内完成重建过程。

进一步,上述步骤s4:将待重建图像的测量值作为所述训练好的深度神经网络的输入,进行图像重建,具体包括步骤s41-s4:

s41、将待重建图像裁剪成p个尺寸相同的子图像块;

s42、分别将每个子图像块与编码孔径进行卷积后,进行下采样操作,得到与每个子图像块对应的测量值;

s43、将测量值输入所述训练好的深度神经网络,进行所述待重建图像的重建。

本实施例在前端测量值的获取中主要考虑测量矩阵的物理可实现的性质,后端重建过程更多的考虑对测量矩阵和测量值进行优化,以提高重建性能。通过将深度学习引入压缩编码孔径的重建过程,通过图像与测量值构成的数据对训练深度学习架构,在测试阶段的重建过程通过非迭代完成,实现从低分辨率测量值的实时重建。并且,在训练阶段,增加预处理模块,来增加前向算符和反向算符之间的匹配度,以提高重建性能。

如图3-4所示,本实施例公开了一种基于深度神经网络的压缩编码孔径成像系统,包括:裁剪模块10、测量值计算模块20、训练模块30以及重建模块40;

裁剪模块10用于将训练集中每个原始图片裁剪,总共可得到d个尺寸相同的子图像块;

测量值计算模块20用于分别将每个子图像块与编码孔径进行卷积后,进行下采样操作,得到与每个子图像块对应的测量值和测量矩阵;

训练模块30用于训练深度神经网络,将每个子图像块及其对应的测量值作为训练数据对,并将训练数据对作为深度神经网络的输入,对该深度神经网络进行训练,得到训练好的深度神经网络;

重建模块40用于测试时,将待重建图像的测量值作为所述训练好的深度神经网络的输入,可直接进行图像重建。

进一步地,还包括测试模块50,测试模块50输入端与所述训练模块30连接、输出端与所述重建模块40连接;

测试模块50用于利用基准数据集中的测试集图片对所述训练好的深度神经网络模型进行测试。

具体地,测量值计算模块20具体用于:

根据压缩编码孔径的观测矩阵成像模型计算每个子图像块的对应的测量值,其压缩编码孔径的观测矩阵成像模型为:

y=vec(y)=vec(d↓(xtrue*h(cca))+e),

其中,vec(·)为向量化算子,表示原始二维信号,d↓表示下采样操作,表示二维测量值,向量化后的一维测量值,*表示卷积操作,e表示系统噪声。h(cca)表示编码孔径。

表示n2×n2维傅里叶变换矩阵,其元素并且令其中表示克罗内克积,f表示大小为n×n傅里叶变换矩阵。因此,卷积模型可改写为:

其中,ch是大小为n2×n2的对角矩阵,其对角元素为ch=diag(h(cca)),e表示噪声。

因此,压缩编码孔径的观测矩阵成像模型可表示为:

其中,编码孔径的合理设计应使得测量矩阵r满足rip。

具体地,还包括与测量值计算模块20输出端连接的预处理模块,预处理模块用于:

对所述测量矩阵r进行奇异值分解:r=u(∑0)vt,其中,∑表示维数为m2×n2的半正定对角矩阵,0表示m2×(n2-m2)维元素全为0的矩阵,是正交矩阵;

将所述压缩编码孔径的观测矩阵成像模型转换为:

y=rx=u(∑0)vtx=u(∑0)(v1v2)tx=u∑v1tx

其中,为列正交矩阵,x表示一维信号;

令ysvd=∑-1uty,rsvd=v1t,获得新的测量系统:ysvd=rsvdx,ysvd表示优化后的测量值,rsvd表示优化后的测量矩阵。

需要说明的是,本方案中深度神经网络采用ista-net-plus,是因为ista-net-plus框架与其他框架相比,重建性能较好,而且与本方案中的重建过程较为匹配。

需要说明的是,如图3所示,本实施例将ista-net-plus用于压缩编码孔径的成像过程中,其核心思想是通过学习深度神经网络来构造反向算符rb,实现从测量值中快速重建训练过程中,先对原始图片进行剪裁得到尺寸较小的图像块,图像块经过和编码孔径进行卷积和下采样来获得测量值,然后通过预处理步骤对测量值进行优化,图像块和其测量值构成训练数据对,通过网络训练得到ista-net-plus最优的网络参数。测试过程直接将图像的测量值作为网络的输入,即可在非迭代的情况下进行图像的重建。

为验证本方案的优越性,进行单次重建实验如下:

首先采样率sr定义为其中m2是每个图像块的压缩测量数目,n2是每个图像块中的像素数,在以下实验中设置为n=33。实施和训练使用的网络为ista-nets-plus,为了训练网络,使用adam优化,学习率重置为0.0001,批量大小为64。设置了三组对比实验,分别是通过压缩编码孔径获取测量值,然后未进行任何优化直接对神经网络进行训练,记为cca;zhang等人的方法记为cs-orth;对测量矩阵进行正交化处理,记为cca-orth;对神经网络训练前,使用奇异值分解得到优化后的测量值的测量矩阵作为神经网络的输入,即本发明的方法cca-svd。所有实验都在具有intelcorei76820cpu和gtx2070gpu的服务器上进行。训练阶段数为np=9的ista-nets-plus大约需要10个小时。

图5所示为不同方法中下采样率为30%时264×264boats和528×528flinstones的重建结果。从图5中可以明显看出,在采样率相同时,与传统cca相比,本方法cca-svd的重建质量更高,并消除了传统cca由于块处理带来的块效应。和cca-orth相比,本方法在测量值的获取中,不用显式构造行正交的矩阵,更有利于硬件的实施,同时得到较好的重建质量。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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