精华内容
下载资源
问答
  • 压缩感知简介

    2013-12-08 21:12:45
    有关压缩感知的基本概念和应用,其中详细介绍了压缩感知的产生以及其意义和作用,凸显了其有效性和前途。
  • 分布式压缩感知简介

    千次阅读 2019-03-12 22:20:22
    分布式压缩感知是针对多个传感器对多个信号进行压缩感知的情景,令每个传感器独立对信号进行测量,然后基于测量结果,综合利用信号内部以及信号之间的关联结构实现稀疏信号的恢复。 分布式压缩感知有一个大前提:...

    什么是分布式?

    分布式系统是由一组通过网络进行通信、为了完成共同的任务而协调工作的计算机节点组成的系统。其目的是利用更多的机器,处理更多的数据。

    什么是分布式压缩感知?

    分布式压缩感知是针对多个传感器对多个信号进行压缩感知的情景,令每个传感器独立对信号进行测量,然后基于测量结果,综合利用信号内部以及信号之间的关联结构实现稀疏信号的恢复。

     

    分布式压缩感知有一个大前提:原始信号之间具有联合稀疏性

    针对此大前提,文章Distributed compressed sensing提出了三个联合稀疏模型(JSM),以下分别介绍。

     

    JSM1-Model-Sparse common component + innovations 

    JSM1模型,文献中是这么描述的,所有信号都拥有一个共同成分(common sparse component)和一个特有成分(innovation component)并以表达式的形式给出,其中Zc经过变换基底变得稀疏,稀疏度为Kc,同理,Zj经过变换基底变得稀疏,稀疏度为Kj,这里注意共同成分和特有成分均在同一个基底下稀疏。

    JSM-1建模的实际情况是一组传感器,全天测量多个室外位置的温度。 温度读数xj具有时间(信号内)和空间(信号间)相关性。 全局因素,例如太阳和盛行风,可能会产生影响zC,这对所有传感器都是通用的,并且结构足以允许稀疏表示。 更多的局部因素,如阴影,水或动物,可以促进局部创新zj,也是结构化(因此稀疏)。 对于记录光强度,气压或其他现象的传感器网络,可以设想类似的情况。 所有这些场景都对应于测量在时间和空间上平滑变化的物理过程的属性,因此是高度相关的。

     

     

    JSM2Model-Common sparse supports 

    相较于JSM1模型,JSM2模型中的信号并没有公共分量

    由JSM-2良好建模的实际情况是多个传感器获取相同傅里叶稀疏信号的复制品,但具有由信号传播引起的相移和衰减。 在许多情况下,恢复每个感测信号是至关重要的,例如在许多声学定位和阵列处理算法中。 JSM-2的另一个有用的应用是MIMO通信。

     

     

    JSM3Model-Nonsparsecommon component + sparse innovations 

    JSM3是JSM1的的扩展,其中JSM1要求共同成分是稀疏的,而JSM3则放松了此约束。

    由JSM-3良好建模的实际情况是,不同传感器记录了几个源,并且背景信号在任何基础上都不稀疏。例如摄像机获取生产线中组件的快照; 然后,计算机系统检查设备中的故障以用于质量控制目的。 虽然每个图像可能非常复杂,但是图像的集合将是高度相关的,因为每个相机正在观察具有微小(稀疏)变化的相同设备。

    总结:

    1.JSM-1模型:共有成分和特有成分均是稀疏的

    2.JSM-2模型:共有成分为0,特有成分是稀疏的,且稀疏度相同,均为K,非零元素的位置也相同,仅仅取值不同。

    3.JSM-3模型:共有成分非稀疏,但特有成分是稀疏的。

    展开全文
  • 压缩感知理论简介PDF

    2011-02-17 16:11:29
    压缩感知理论简介压缩感知理论简介压缩感知理论简介压缩感知理论简介
  • 压缩感知原理简介

    千次阅读 多人点赞 2019-07-15 21:51:23
    压缩感知,compressed sensing又称compressed sampling,是在采样过程中完成了数据压缩的过程。 压缩感知在信号采样的过程中,用很少的采样点,实现了和全采样一样的效果。 信号采样 学过通信原理或信号与系统的都...

    压缩感知——简介

    压缩感知,compressed sensing又称compressed sampling,是在采样过程中完成了数据压缩的过程
    压缩感知在信号采样的过程中,用很少的采样点,实现了和全采样一样的效果。

    压缩感知——信号采样

    学过通信原理或信号与系统的都知道奈奎斯特采样定理,即想让采样之后的数字信号完整保留原始信号中的信息,采样频率必须大于信号中最高频率的2倍。原因是时域以τ为间隔进行采样,频域会以1/τ为周期发生周期延拓。那么如果采样频率低于两倍的信号最高频率,信号在频域频谱搬移后就会发生混叠。
    2004年,Candes,陶哲轩和Donoho提出了压缩感知理论,该理论认为:如果信号是稀疏的,那么它可以由远低于采样定理要求的采样点重建恢复。
    突破的关键就在于采样的方式。当我们说“采样频率”的时候,意味着做的是等间距采样,数字信号领域通常都是做等间距采样,也服从奈奎斯特采样定律。
    在这里插入图片描述
    但是压缩感知采用不等间距采样,比如采用随机亚采样(图b上方的红点),那么这时候频域就不再是以固定周期进行延拓了,而是会产生大量不相关(incoherent)的干扰值。如图c,最大的几个峰值还依稀可见,只是一定程度上被干扰值覆盖。这些干扰值看上去非常像随机噪声,但实际上是由于三个原始信号的非零值发生能量泄露导致的(不同颜色的干扰值表示它们分别是由于对应颜色的原始信号的非零值泄露导致的)
    之所以随机亚采样会有这样的效果,可以理解成随机采样使得频谱不再是整齐地搬移,而是一小部分一小部分胡乱地搬移,频率泄露均匀地分布在整个频域,因而泄漏值都比较小,从而有了恢复的可能。

    压缩感知——信号恢复

    压缩感知——两个前提条件

    刚刚的例子之所以能够实现最终信号的恢复,是因为它满足了两个前提条件:

    1. 这个信号在频域只有3个非零值,所以可以较轻松地恢复出它们。
    2. 采用了随机亚采样机制,因而使频率泄露均匀地分布在整个频域。
      这两点对应了CS的两个前提条件——稀疏性(sparsity)不相关性(incoherence)
      稀疏性可以简单直观地理解为:若信号在某个域中只有少量非零值,即信号在某个域中非零点远远小于信号总点数,那么它在该域稀疏,该域也被称为信号的稀疏域
      因此,第一个前提条件要求信号必须在某一个变换域具有稀疏性。比如例子中,信号在频域是稀疏的,因而可以通过所述的重建方法轻松地在稀疏域(频域)复原出原信号。
      然而通常信号在变换域中不会呈现完全的稀疏性。其实只要它近似满足稀疏性,即大部分值趋于零,只有少量大的非零值,就可以认为它是可压缩信号,可以对它进行CS亚采样。
      对于之前讲的例子,如果它在频域中不稀疏,我们可以做DWT、DCT等,找到它的稀疏变换。

    前提条件1——稀疏性在这里插入图片描述

    前提条件2——非相关性/等距约束性

    在讲第二个前提条件之前,需要引入必要的数学表达。
    在这里插入图片描述
    上面这张图把亚采样的过程用矩阵的方式表达出来:
    如图,x是为长度N的一维信号,也就是原信号,稀疏度为k。此刻它是未知的。
    Φ为观测矩阵,对应着亚采样这一过程。它将高维信号x投影到低维空间,是已知的。
    y=Φx为长度M的一维测量值,也就是亚采样后的结果。显然它也是已知的。
    因此,压缩感知问题就是在已知测量值y和测量矩阵Φ的基础上,求解欠定方程组y=Φx得到原信号x。
    然而,一般的自然信号x本身并不是稀疏的,需要在某种稀疏基上进行稀疏表示。令x=Ψs,Ψ为稀疏基矩阵,s为稀疏系数。
    于是最终方程就变成了:y=ΦΨs。已知y、Φ、Ψ,求解s。
    y=ΦΨs有点长,我们把ΦΨ合并成一个矩阵,称之为传感矩阵。即令Θ=ΦΨ ,则y=ΘS。问题即为,已知y和Θ,求解S
    对应到一开始的例子中:
    x就是三个正弦信号叠加在一起的原信号a;
    稀疏矩阵Ψ就是傅里叶变换,将信号变换到频域S;
    观测矩阵Φ就是我们采用的随机亚采样方式;
    y就是最终的随机亚采样的结果c。
    在这里插入图片描述
    求解出S后,由x=Ψs即可得到恢复出的原信号x。
    然而在正常情况下,方程的个数远小于未知数的个数,方程是没有确定解的,无法重构信号。但是,由于信号是K稀疏,如果上式中的Φ满足有限等距性质(RIP),则K个系数就能够从M个测量值准确重构(得到一个最优解)。
    陶哲轩和Candès证明了RIP是观测矩阵要满足的准确要求。但是,要确认一个矩阵是否满足RIP非常复杂。于是Baraniuk证明:RIP的等价条件是观测矩阵和稀疏表示基不相关(incoherent)。即压缩感知的第二个前提条件。
    在这里插入图片描述
    在这里插入图片描述
    那怎样找到不相关的观测矩阵呢?陶哲轩和Candès又证明: 独立同分布的高斯随机测量矩阵可以成为普适的压缩感知测量矩阵。
    于是满足高斯分布的随机测量矩阵就成了CS最常用的观测矩阵。
    对于二维信号,往往就采用二维高斯随机测量采样矩阵对图像进行亚采样。
    对于一维信号,采用前文提到的随机不等间距的亚采样即可。

    压缩感知——重建方法

    信号采样后需要将其恢复。CS的重建也就是求解欠定方程组y=ΘS的方法。这是一个零范数(l0)最小化问题,是一个NP完全问题(没有快速解法的问题),因此往往转换成一范数(l1)最小化的求解,或者用一些近似估计的算法。
    匹配追踪是一种典型的算法。以上文中的例子为例:
    (1) 由于原信号的频率非零值在亚采样后的频域中依然保留较大的值,其中较大的两个可以通过设置阈值,检测出来(图a)。
    (2) 然后,假设信号只存在这两个非零值(图b),则可以计算出由这两个非零值引起的干扰(图c)。
    (3) 用a减去c,即可得到仅由蓝色非零值和由它导致的干扰值(图d),再设置阈值即可检测出它,得到最终复原频域(图e)
    (4) 如果原信号频域中有更多的非零值,则可通过迭代将其一一解出。
    在这里插入图片描述

    扩展:图像压缩与压缩感知

    信号的稀疏性已经在图像压缩领域有了很广泛的应用。利用信号的稀疏性,可以对信号进行压缩。如图像压缩领域的JPEG格式,就是将图像变换到离散余弦域,得到近似稀疏矩阵,只保留较大的值,从而实现压缩。
    图像压缩和压缩感知这两个概念有着本质上的区别。
    图像压缩是先进行了全采样,然后再变换域丢弃小系数,完成压缩;
    而压缩感知不同,它的思想其实从图像压缩中借鉴了很多:既然全采样了还要再丢弃,我们为什么不能直接少采样一些点?因此,压缩感知直接进行了亚采样,然后再用算法消除亚采样导致的伪影。可以说,压缩感知直接在采样时就完成了压缩
    在这里插入图片描述
    这种直接减少采样点,采集完后重建的方式,相比于图像压缩的全采用之后再压缩的方式,对于很多情形,比如照相机拍摄照片,并没有优势。因为所有像素的采集在一瞬间就都完成了。但是对于一些采集比较慢的情形,比如核磁共振成像,CS就可以发挥巨大优势。原本一副MRI图像常常需要几十秒,速度慢也是MRI的一大缺陷。而应用CS技术后,只需要采集全采样几分之一的数据,就可以重建出原图。这样就可以把成像速度提高好几倍,同时对图像质量影响不大。

    总结

    什么是压缩感知:
    如果一个信号在某个变换域是稀疏的,那么就可以用一个与变换基不相关的观测矩阵将变换所得高维信号投影到一个低维空间上,然后通过求解一个优化问题就可以从这些少量的投影中以高概率重构出原信号。
    压缩感知理论主要包括三部分:
    (1)信号的稀疏表示;
    (2)设计测量矩阵,要在降低维数的同时保证原始信号x的信息损失最小;
    (3)设计信号恢复算法,利用M个观测值无失真地恢复出长度为N的原始信号。

    从06年提出至今,已经发展出了很多算法,原来的基于l1 minimization的BP算法很慢,现在都是快速算法,而且求解算法也从纯优化方面扩展到了estimation方面,有很多基于贝叶斯估计的方法了,目前最火的也是Donoho他们组搞得AMP算法,是用Graph model里面的message passing算法通过近似求解MMSE(MAP)解。在测量矩阵方面,也已经设计出了各种矩阵,除了i.i.d. Gaussian的矩阵还有很多正交的矩阵,比如partial random DFT/DCT 矩阵。对信号的要求也从稀疏变成了存在某种结构,比如low rank,group sparse等等。(2017年进展)

    压缩感知和矩阵填充

    矩阵填充的要领是通过低秩矩阵中的已知要素还原出该矩阵的其他未知要素的进程。这几年,关于矩阵填充方法的理论研究成为压缩感知技术的一个研究热点。在实际的应用领域中涉及对高维数据的分析与处理,可以运用矩阵填充的方法来解决。其过程主要是:通过观测到的局部数据来准确填充缺失数据,从而获得完整数据矩阵的过程。
    压缩感知和矩阵填充都是稀疏约束下的反问题,压缩感知利用信号本身或在变换域中的稀疏约束性求解欠定方程,矩阵填充利用矩阵的低秩约束性求解欠定方程。
    压缩感知理论的核心问题是信号的稀疏表示、观测矩阵的设计和重构算法,信号本身或在变换域中的系数越稀疏,观测矩阵和稀疏基构成的压缩感知矩阵的受限等距常数越小,则压缩感知的性能越好。
    矩阵填充理论的核心问题是矩阵的低秩特性、非相干特性和重构算法,寻找性能良好的重构算法一直是矩阵填充理论中的一个研究重点。此外,压缩感知的应用领域已经拓展得较为广泛,但矩阵填充的应用尚处于起步阶段,挖掘矩阵填充的应用,进而将矩阵填充和压缩感知结合起来进行应用方面的探索,是非常重要和有意义的课题。
    压缩感知的性能取决于3个要素:信号的稀疏性、压缩感知矩阵的非相干性和重构算法的快速有效性。
    矩阵填充性能也取决于3个要素:矩阵的低秩性、矩阵的不相关性和重构算法的快速有效性。

    低秩矩阵

    还记得我们怎么手工求矩阵的秩吗?为了求矩阵A的秩,我们是通过矩阵初等变换把A化为阶梯型矩阵,若该阶梯型矩阵有r个非零行,那A的秩rank(A)就等于r。从物理意义上讲,矩阵的秩度量的就是矩阵的行列之间的相关性。如果矩阵的各行或列是线性无关的,矩阵就是满秩的,也就是秩等于行数。回到上面线性方程组来说吧,因为线性方程组可以用矩阵描述嘛。秩就表示了有多少个有用的方程了。上面的方程组有3个方程,实际上只有2个是有用的,一个是多余的,所以对应的矩阵的秩就是2了。
    OK。既然秩可以度量相关性,而矩阵的相关性实际上就表示了矩阵的结构信息。如果矩阵之间各行的相关性很强,那么就表示这个矩阵实际可以投影到更低维的线性子空间,也就是用几个向量就可以完全表达了,它就是低秩的。所以我们总结的一点就是:如果矩阵表达的是结构性信息,例如图像、用户-商品推荐表等等,那么这个矩阵各行之间存在这一定的相关性,那这个矩阵一般就是低秩的。
    如果X是一个m行n列的数值矩阵,rank(X)是X的秩,假如rank (X)远小于m和n,则我们称X是低秩矩阵。低秩矩阵每行或每列都可以用其他的行或列线性表出,可见它包含大量的冗余信息。利用这种冗余信息,可以对缺失数据进行恢复,也可以对数据进行特征提取。

    应用

    矩阵填充越来越多的应用在协同滤波、系统识别、无线传感网络、视频去噪、人脸识别、医学成像等领域,正在发挥着巨大的作用。特别是在室内定位中的 应用越来越多,是当下的研究热点之一。

    参考网址:
    形象易懂讲解算法II——压缩感知(非常好)
    AndyJee:浅谈压缩感知系列——博客园(非常丰富)
    压缩感知理论
    机器学习——低秩矩阵分解中低秩的意义、矩阵填补、交叉验证

    展开全文
  • 压缩感知理论简介

    2012-06-30 11:31:58
    讲解了压缩感知的基本理论,对初学者有一定的帮助,读完对压缩感知的整体理论有更清晰的认识.
  • 压缩感知理论简介压缩感知数学模型、压缩感知关键要素、压缩感知应用前景 压缩感知仿真实例
  • 压缩感知重构算法之OMP算法python实现

    万次阅读 多人点赞 2016-03-18 15:08:55
    压缩感知重构算法之OMP算法python实现 压缩感知重构算法之CoSaMP算法python实现 压缩感知重构算法之SP算法python实现 压缩感知重构算法之IHT算法python实现 ...压缩感知简介【具体可以参考这篇文章】 假设一维信号x

    压缩感知重构算法之OMP算法python实现
    压缩感知重构算法之CoSaMP算法python实现
    压缩感知重构算法之SP算法python实现
    压缩感知重构算法之IHT算法python实现
    压缩感知重构算法之OLS算法python实现
    压缩感知重构算法之IRLS算法python实现

    本文主要简单介绍了利用python代码实现压缩感知的过程。

    压缩感知简介

    【具体可以参考这篇文章
    假设一维信号x长度为N,稀疏度为K。Φ 为大小M×N矩阵(M<<N)y=Φ×x为长度M的一维测量值。压缩感知问题就是已知测量值y和测量矩阵Φ的基础上,求解欠定方程组y=Φ×x得到原信号x。Φ的每一行可以看作是一个传感器(Sensor),它与信号相乘,采样了信号的一部分信息。而这一部分信息足以代表原信号,并能找到一个算法来高概率恢复原信号。 一般的自然信号x本身并不是稀疏的,需要在某种稀疏基上进行稀疏表示x=ψs,ψ为稀疏基矩阵,S为稀疏系数。所以整个压缩感知过程可以描述为

    y=Φx=ΦΨs=Θs

    重建算法:OMP算法简析

    OMP算法
    输 入:测量值y、传感矩阵Phi=Φψ、稀疏度K
    初始化:初始残差 r0=y,迭代次数t=1,索引值集合index;
    步 骤:
    1、找到残差r和传感矩阵的列积中最大值对应下标,也就是找到二者内积绝对值最大的一个元素对应的下标,保存到index当中
    2、利用index从传感矩阵中找到,新的索引集Phit
    3、利用最小二乘法处理新的索引集和y得到新的近似值θ=argmin||yPhitθ||2
    4、计算新的残差rt=yPhitθ,t=t+1
    5、残差是否小于设定值,小于的话 退出循环,不小于的话再判断t>K是否成立,满足即停止迭代,否则重新回到步骤1,继续执行该算法。
    输 出:θ的K-稀疏近似值


    实验

    要利用python实现,电脑必须安装以下程序

    • python (本文用的python版本为3.5.1)
    • numpy python包(本文用的版本为1.10.4)
    • scipy python包(本文用的版本为0.17.0)
    • pillow python包(本文用的版本为3.1.1)

    python代码

    #coding:utf-8
    #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    # DCT基作为稀疏基,重建算法为OMP算法 ,图像按列进行处理
    # 参考文献: 任晓馨. 压缩感知贪婪匹配追踪类重建算法研究[D]. 
    #北京交通大学, 2012.
    #
    #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    # 导入所需的第三方库文件
    import  numpy as np
    import math
    from PIL import Image
    
    #读取图像,并变成numpy类型的 array
    im = np.array(Image.open('lena.bmp')) #图片大小256*256
    
    #生成高斯随机测量矩阵
    sampleRate=0.7  #采样率
    Phi=np.random.randn(256*sampleRate,256)
    
    #生成稀疏基DCT矩阵
    mat_dct_1d=np.zeros((256,256))
    v=range(256)
    for k in range(0,256):  
        dct_1d=np.cos(np.dot(v,k*math.pi/256))
        if k>0:
            dct_1d=dct_1d-np.mean(dct_1d)
        mat_dct_1d[:,k]=dct_1d/np.linalg.norm(dct_1d)
    
    #随机测量
    img_cs_1d=np.dot(Phi,im)
    
    #OMP算法函数
    def cs_omp(y,D):    
        L=math.floor(3*(y.shape[0])/4)
        residual=y  #初始化残差
        index=np.zeros((L),dtype=int)
        for i in range(L):
            index[i]= -1
        result=np.zeros((256))
        for j in range(L):  #迭代次数
            product=np.fabs(np.dot(D.T,residual))
            pos=np.argmax(product)  #最大投影系数对应的位置        
            index[j]=pos
            my=np.linalg.pinv(D[:,index>=0]) #最小二乘,看参考文献1           
            a=np.dot(my,y) #最小二乘,看参考文献1     
            residual=y-np.dot(D[:,index>=0],a)
        result[index>=0]=a
        return  result
    
    #重建
    sparse_rec_1d=np.zeros((256,256))   # 初始化稀疏系数矩阵    
    Theta_1d=np.dot(Phi,mat_dct_1d)   #测量矩阵乘上基矩阵
    for i in range(256):
        print('正在重建第',i,'列。')
        column_rec=cs_omp(img_cs_1d[:,i],Theta_1d) #利用OMP算法计算稀疏系数
        sparse_rec_1d[:,i]=column_rec;        
    img_rec=np.dot(mat_dct_1d,sparse_rec_1d)          #稀疏系数乘上基矩阵
    
    #显示重建后的图片
    image2=Image.fromarray(img_rec)
    image2.show()

    matlab代码

    %这个代码是网上某位大哥写的,在此谢过了~
    function Demo_CS_OMP()
    %------------ read in the image --------------
    img=imread('lena.bmp');     % testing image
    img=double(img);
    [height,width]=size(img);
    %------------ form the measurement matrix and base matrix -------
    Phi=randn(floor(0.7*height),width);  % only keep one third of the original data  
    Phi = Phi./repmat(sqrt(sum(Phi.^2,1)),[floor(0.7*height),1]); % normalize each column
    
    mat_dct_1d=zeros(256,256);  % building the DCT basis (corresponding to each column)
    for k=0:1:255 
        dct_1d=cos([0:1:255]'*k*pi/256);
        if k>0
            dct_1d=dct_1d-mean(dct_1d); 
        end;
        mat_dct_1d(:,k+1)=dct_1d/norm(dct_1d);
    end
    
    %--------- projection ---------
    img_cs_1d=Phi*img;  
    
    %-------- recover using omp ------------
    sparse_rec_1d=zeros(height,width);  
    Theta_1d=Phi*mat_dct_1d;%测量矩阵乘上基矩阵
    for i=1:width
        column_rec=cs_omp(img_cs_1d(:,i),Theta_1d,height);
        sparse_rec_1d(:,i)=column_rec'; %  稀疏系数
    end
    img_rec_1d=mat_dct_1d*sparse_rec_1d;  %稀疏系数乘上基矩阵
    
    
    %------------ show the results --------------------
    figure(1)
    subplot(2,2,1),imshow(uint8(img)),title('original image')
    subplot(2,2,2),imagesc(Phi),title('measurement mat')
    subplot(2,2,3),imagesc(mat_dct_1d),title('1d dct mat')
    psnr = 20*log10(255/sqrt(mean((img(:)-img_rec_1d(:)).^2)));
    subplot(2,2,4),imshow(uint8(img_rec_1d));
    title(strcat('PSNR=',num2str(psnr),'dB'));
    
    %*******************************************************%
    function hat_x=cs_omp(y,T_Mat,m)
    % y=T_Mat*x, T_Mat is n-by-m
    % y - measurements
    % T_Mat - combination of random matrix and sparse representation basis
    % m - size of the original signal
    % the sparsity is length(y)/4
    
    n=length(y);
    s=floor(3*n/4); %  测量值维数
    hat_x=zeros(1,m); %  待重构的谱域(变换域)向量                     
    Aug_t=[];        %  增量矩阵(初始值为空矩阵)
    r_n=y;  %  残差值 
    
    for times=1:s; %  迭代次数(稀疏度是测量的1/4)
    
        product=abs(T_Mat'*r_n);    
        [val,pos]=max(product);   %最大投影系数对应的位置
        Aug_t=[Aug_t,T_Mat(:,pos)];   %矩阵扩充
        T_Mat(:,pos)=zeros(n,1); %选中的列置零
        aug_x=(Aug_t'*Aug_t)^(-1)*Aug_t'*y;  % 最小二乘,看参考文献1
        r_n=y-Aug_t*aug_x;   %残差
        pos_array(times)=pos;   %纪录最大投影系数的位置
    
    end
    hat_x(pos_array)=aug_x;  %  重构的向量 
    
    
    

    参考文献

    1、最小二乘法介绍 (wiki链接
    2、任晓馨. 压缩感知贪婪匹配追踪类重建算法研究[D]. 北京交通大学, 2012.(OMP算法介绍)

    欢迎python爱好者加入:学习交流群 667279387

    展开全文
  • 压缩感知理论简介(CS)

    2010-01-07 15:47:51
    这个讲的比较简单,对入门有帮助!我经常翻阅~~
  • 浅谈压缩感知(一):背景简介 <div id="cnblogs_post_body"><h1>1、动机与背景 数字化革命:随着数字化技术的快速发展,电话、手机、相机、电视等数字化产品如雨后春笋般涌现市场,无时无刻不在影响着我们的...

    浅谈压缩感知(一):背景简介

        <div class="postBody">
            <div id="cnblogs_post_body"><h1>1、动机与背景</h1>
    

    数字化革命:

    随着数字化技术的快速发展,电话、手机、相机、电视等数字化产品如雨后春笋般涌现市场,无时无刻不在影响着我们的生活,这是一个数字化的时代。

    数码传感器的挑战:

    在这样一个数字化时代,所有的数字信号采集都必须有相应的数字化的软硬件支撑。随着人们对于图像、视频等多媒体内容的需求和要求越来越高,对应的硬件设备如照相机、摄像机等信号采集的设备的压力也越来越大。比如,相片的分辨率越来越高,这就需要在照相机中内置越来越多的传感器,以采集质量更高的图像信号。此外还有其他一些目前传统信号采集方式无法有效满足的需求,不可见光如X射线、伽马射线等信号采集、高速视频采集等。

    那么,在这样一个对信号采集越来越苛刻的需求下,有没有一种更有效的采集、传输、存储以及处理的方法呢?答案就是压缩感知。

    首先,我们来了解一下传统的信号采集方法。

    传统数字信号采集Digital Data Acquisition:

    传统的数字信号采样定律就是有名的香农采样定理,又称那奎斯特采样定律,定理内容如下:

    为了不失真地恢复模拟信号,采样频率应该不小于模拟信号频谱中最高频率的2倍。

    下图分别为在时域和空域上的数字化采集。

    基于香农采用定理,我们来看看目前传统图像信号采集设备的采样过程:

    1、按照Nyquist采样率进行均匀采样,得到可以无失真恢复模拟信号的数字信号;uniformly sample data at Nyquist rate (2x Fourier bandwidth)

    信号存在冗余,即信号具有稀疏性:

    2、上述步骤得到的数字信号的数据量比较大,一方面不利于存储和传输,另一方面该数字信号本来存在很多冗余,可以对其进一步的压缩,于是就通过各种编码方法对数据进行有效的压缩;compress data

    我们来分析一下上面的采样过程有什么不妥的地方?

    相机的传感器通过将模拟信号(光)转换为数字信号(Nyquist定理采样),如N pixel的图像信号,之后又通过压缩编码算法将N pixel的图像信号转化为K个系数表示的数据,而K<<N,那么问题来了,为什么我们费了一番心思获得了N个采样值,却最后又通过复杂的编码算法将之压缩成K个数值?

    基于这个疑问,我们引出了压缩感知的概念。

    2、压缩感知:

    什么是压缩感知

    顾名思义,就是感知压缩,直接获取压缩后的数据。即在采集的时候,直接采集有效的M个测量值,而非满足Nyquist采样定理的N个采样值(M<<N)。

    采集原理过程:

    当信号是稀疏或可压缩的,我们可以以某个线性投影的方式来得到信号的压缩后表示condensed representation,(采集过程:降维)得到的数据能够以无失真或较低失真地方式重建原始的数字信号。(重建过程)

    Y就是压缩后的信号表示

    Φ表示采集的测量矩阵,可以是一个随机矩阵。

    X代表原始的数字信号

    采集过程就是一个线性投影过程,如上面的公式所示。

    下图形象地描述了这个过程,Φ的每一行代表一次测量,M行则可以得到M个测量值。

    压缩感知的采集过程如下:

    接下来,我们来分析一下,为什么这样的一种采集方式是有效的?

    随机投影矩阵Φ并不是满秩的(M<N),因此公式的左边两边并不是等价的过程,即已知y,不能直接求得x,可以说是存在信息损失的。

    但是,随机投影矩阵在很大概率上保留了稀疏信号的结构和信息,即得到测量值y之后,我们可以以很大的概率来完美重建信号。

    压缩感知理论公式:

    了解了压缩感知的大致框架之后,我们从数学角度来考虑压缩感知这个问题。

    从上面这个采集公式可以得出压缩感知的三个必要条件:

    1. x:信号,满足稀疏性(在某个变换域内是稀疏的)
    2. Φ:测量矩阵,满足一定的不相关性
    3. 已知y,如何得到x:恢复算法(最优化方法,后续介绍)

       

    4. x信号:

    5. 测量:

    压缩感知的特点:

    通过利用信号稀疏性的先验知识,压缩感知采用了一种全新的数据采集方式。


    1. 稳定性:采集和重建过程都是数值稳定的
    2. 通用性:相同的测量投影(测量矩阵或硬件)可以用于不同的信号采集
    3. 不对称性:(编码即采集简单,大部分计算在于解码即重建)
    4. 民主性:每个测量值都携带着相同的信息,这样对于测量时的损失具有鲁棒性。

    展开全文
  • 首先说一下两者的关系,压缩感知是一种解决欠采样问题的采样理论,在2010年提出,是奈奎斯特采样定理的升级版。临近点算子是解决压缩感知问题的核心引擎,另外需要引出临近梯度下降法,是梯度下降法的一种次梯度版本...
  • 天津大学 Jingyu Yang(杨敬钰老师)关于压缩感知介绍的PPT。 十分简介,图文并茂,通俗易懂。我强力推荐入门者用。。。 School of Electronic and Information Engineering Tianjin University
  • 压缩感知的实现(含matlab代码)

    万次阅读 多人点赞 2018-07-24 20:43:38
    压缩感知的图像重建(matlab) https://blog.csdn.net/Di_Wong/article/details/88994551 目录 原理简介 算法实现 测试结果 --------------------------------------------------------------------------------...
  • 压缩感知技术 简明生动形象简介
  • 简介OMP算法沿用了MP算法中的原子选择准则,即通过求余量r与感知矩阵Φ中原子之间内积的绝对值来选择最佳原子组合,不同的是OMP在分解的每一步中对所选择的全部原子进行正交化处理,这使得在精度要求相同的情况下,...
  • EM算法EM算法简介代码实现ADMM算法介绍 https://blog.csdn.net/oBanTianYun/article/details/72590188实现 https://blog.csdn.net/sjtu_012/article/details/40784237AMP /GAMP算法GOMP算法...
  • 简介GFCE是guided filter context enhancement(引导滤波上下文增强),论文《Fusion of infrared and visible images for night-vision context enhancement》,使用引导滤波器实现上下文增强和多尺度分解。...
  • 我原来发过一个“python写的基于感知机的中文分词系统”的资源,那个是很完整的代码,包括训练数据等。但是代码没有任何注释,所以我又提交这个说明文档。但这个文档是用pageplayer做的(pageplayer压缩后有19M我发...
  • “……数据压缩并不只是对数据的处理,它还是找出数据中已有结构的过程……在数据压缩中,首先要为各种数据中的不同结构建立模型,然后利用这些模型(可能还需要最终感知这些数据的一些应用环境),以更紧凑的方式来...

空空如也

空空如也

1 2 3 4
收藏数 78
精华内容 31
关键字:

压缩感知简介