论文的思路是先介绍分块压缩感知BCS,然后介绍使用投影和硬阈值方法的迭代投影方法PL,接着将PL与维纳滤波器结合形成SPL(平滑PL),并且介绍了稀疏表示的几种基,提出了两种效果较好的稀疏基:CT与DDWT,并且将PL中的硬阈值用bivariate shrinkage(双变量收缩)代替。

BCS+SPL(PL+维纳滤波平滑)+CT or DDWT
首先介绍PL的框架,是赋予一些初值,通过迭代来逼近最优解。
其中γ为尺度因子,使用了ΦTΦ中最大的特征值,τ(i)是每次迭代中设定的门限值,CS中运用PL在一定程度上降低了计算复杂度,并且PL算法可以灵活的增加所需要的迭代停止条件。
论文的第三部分介绍了将BCS与SPL结合的框架:
3.1 BCS
BCS即图像分块压缩感知,将图像分成多个大小为B×B的图像块,设xj为每块的列向量表示,对每一个图像块采用观测矩阵ΦB来测量。则每个图像块所对应得到的观测向量为yjBxj,其中ΦB是MB×B2的正交测量矩阵,并且有MB=[M/N]B2
使用分块压缩感知有以下几个好处:首先由于分块后观测矩阵ΦB的尺寸变小,降低了所需的存储空间;其次,在编码端不需要等到整幅图像都完成观测后再进行编码,能在图像块投影到观测矩阵后就进行编码传输;最后算法中初始化使用的x(0)是根据最小均方误差来计算的,分块后的图像由于观测矩阵尺寸变小了,所以计算复杂度随之降低,在算法中,我们选用图像分块的尺寸大小B为32。
3.2 SPL
PL迭代算法中结合维纳滤波器能消除由于分块压缩感知导致的重构图像中的块效应,论文中SPL的迭代过程如下所示:
其中维纳滤波器的窗口大小为3×3,在算法中的初始化和迭代停止条件如下图所示,下文会对其中的阈值继续进行讨论。
论文的第四部分主要介绍了稀疏基和阈值:
4.1 Transforms
在图像压缩感知中,DWT被广泛应用于将信号进行稀疏表示,但是离散小波变换缺少移不变特性和方向选择性。据此提出了两种方向变换:轮廓波变换(CT)以及复值离散小波变换(complex-valued DWTs),复值离散小波变化使用了二元树DWT, 称为双树复小波变换DDWT。
4.2 阈值
SPL中应用是是硬阈值方法,论文中提出了一种通用的门限方法,如下所示:
其中λ是控制收敛的常数因子,K是变换系数的数目,σ(i)是采用一个鲁邦的中值滤波器来估计的:
硬阈值本质上假定了系数之间是互相独立的,但对于所采用的方向变换,双变量收缩在变换系数和他们各自的父系数之间采用了统计依赖关系,能达到比硬阈值更好的效果,论文中所采用的方法如下图所示:
 
参考文献:
[1] Mun S,Fowler J E.Block compressed sensing of images using directional transforms[C]//Image Processing(ICIP),2009 IEEE International Conference on.IEEE,2009:3021-3024

使用方向变换(directional transform)图像分块压缩感知的更多相关文章

  1. gdal读写图像分块处理

    转自赵文原文 gdal读写图像分块处理(精华版) Review: 用gdal,感觉还不如直接用C++底层函数对遥感数据进行处理.因为gdal进行太多封装,如果你仅仅只是Geotif等格式进行处理,IO ...

  2. 游戏对象的变换-Transform

    问题: 在给GameObject设置位置的时候,怎么保证设置的位置在摄像机的范围内?         主要看摄像机的深度轴和你的GameObject的深度轴,比如如果现在的平面是: Z–> Y, ...

  3. matlab处理:批处理图像分块

    有一个图像分块的代码,可以直接将一幅图像分为5*5的小块,代码如下: %[FileName,PathName] = uigetfile('*.*','Select the image'); Im=im ...

  4. [综] Sparse Representation 稀疏表示 压缩感知

    稀疏表示 分为 2个过程:1. 获得字典(训练优化字典:直接给出字典),其中字典学习又分为2个步骤:Sparse Coding和Dictionary Update:2. 用得到超完备字典后,对测试数据 ...

  5. 压缩感知“Hello World”代码初步学习

    压缩感知代码初学 实现:1-D信号压缩传感的实现 算法:正交匹配追踪法OMP(Orthogonal Matching Pursuit)   >几个初学问题   1. 原始信号f是什么?我采集的是 ...

  6. 浅谈压缩感知(六):TVAL3

    这一节主要介绍一下压缩感知中的一种基于全变分正则化的重建算法——TVAL3. 主要内容: TVAL3概要 压缩感知方法 TVAL3算法 快速哈达玛变换 实验结果 总结 1.TVAL3概要 全称: To ...

  7. 初识压缩感知Compressive Sensing

    压缩感知是近年来极为热门的研究前沿,在若干应用领域中都引起瞩目.最近粗浅地看了这方面一些研究,对于Compressive Sensing有了初步理解,在此分享一些资料与精华.本文针对陶哲轩和Emman ...

  8. 压缩感知Compressive sensing(一)

    compressive sensing(CS) 又称 compressived sensing ,compressived sample,大意是在采集信号的时候(模拟到数字),同时完成对信号压缩之意. ...

  9. 压缩感知(CS)

    总结一下最近看的压缩感知(Compressed Sensiong)的内容. 它是在采样过程中完成了数据压缩的过程. 一. 将模拟信号转换为计算机能够处理的数字信号,必然要经过采样的过程.问题在于,应该 ...

随机推荐

  1. SHELL脚本实现分区

    写一个脚本(前提:请为虚拟机新增一块硬盘,架设它为/dev/sdb),为指定的硬盘创建分区 1,列出当前系统上所有的磁盘,让用户选择,如果选择quit则退出脚本:如果用户选择错误,就让用户重新选择 2 ...

  2. kvm虚拟化学习笔记(三)之windows kvm虚拟机安装

    KVM虚拟化学习笔记系列文章列表----------------------------------------kvm虚拟化学习笔记(一)之kvm虚拟化环境安装http://koumm.blog.51 ...

  3. VC++ 2010编译错误 fatal error C1189 error This file requires _WIN32_WINNT to be #defined at least

    打开你的C++工程,找到里面的stdafx.h文件,然后把下面的红色内容替换成绿色的 参考:http://blog.csdn.net/dongliqiang2006/article/details/5 ...

  4. VC++如何折叠代码

    工具-选项,然后在文本编辑器,C/C++中的格式设置,把大纲语句块设置为True   这样之后,还是不能像C#一样使用region折叠代码,但是可以方法和if语句都会自动显示可以折叠.   使用#pr ...

  5. IEnumerator<TItem>和IEnumerator Java 抽象类和普通类、接口的区别——看完你就顿悟了

    IEnumerable 其原型至少可以说有15年历史,或者更长,它是通过 IEnumerator 来定义的,而后者中使用装箱的 object 方式来定义,也就是弱类型的.弱类型不但会有性能问题,最主要 ...

  6. Linux—read

    read:将信息读入一个或多个Shell变量    语法格式:read [-r] 变量名    选项:        -r:原始读入,不做任何处理,不将结尾结尾处的反斜杠解释为续行字符    行为模式 ...

  7. 深度学习笔记之使用Faster-Rcnn进行目标检测 (实践篇)

    实验 我使用的代码是Python版本的Faster Rcnn,官方也有Matlab版本的,链接如下: py-faster-rcnn(python) faster-rcnn(matlab) 环境配置 按 ...

  8. JAVA学习(七):方法重载与方法重写、thiskeyword和superkeyword

    方法重载与方法重写.thiskeyword和superkeyword 1.方法重载 重载可以使具有同样名称但不同数目和类型參数的类传递给方法. 注: 一是重载方法的參数列表必须与被重载的方法不同,而且 ...

  9. [IT练习册]Python练习项目 思路

    1.爬虫:爬取如下网站一年的内容. http://www.calvarymoravian.org/dailytext 2.蛇形棋: 开发一个类似蛇形棋的游戏.最好基于Web. 3.爬虫+通讯录: 从公 ...

  10. docker启动centos容器后如何用putty连接

    在前面的文章中,我提到过,win10 docker启动容器时,只有配置了宿主机和docker容器的端口映射,外部应用才能访问到容器中的服务,比如映射到Nginx的80端口.现在我将宿主机的某个端口映射 ...