稀疏表示介绍(下)

声明

  1. 之前虽然听过压缩感知和稀疏表示,实际上前两天才正式着手开始了解,纯属新手,如有错误,敬请指出,共同进步。
  2. 主要学习资料是 Coursera 上 Duke 大学的公开课——Image and video processing, by Pro.Guillermo Sapiro 第 9 课。
  3. 由于对图像处理的了解也来自与该课程,没正经儿看过几本图像方面的书籍,有些术语只能用视频中的英文来表达,见谅哈!

1. From Local to Global Treatment

图片尺寸有大有小,在 DCT 变换中,我们一般取 8×8 的方块作为一组 64 维的变换信号,在稀疏表示中,我们同样也不能把整张图片作为 X^T 矩阵,而是在大图片中取一定尺寸的 patch (假设是 8×8 的方块)作为一个 signal。对于图片中的所有的 patch (假设 ij 是 patch 的左上角坐标)组成的信号,已知字典 D 和噪声图片 y ,估计公式如下:

y: 带有噪音的图片—— the whole image
x: 要恢复的 clear image
Rij x: 以 i,j 为左上角坐标的 patch, Rij 是从 x 中提取 patch 的 0-1 矩阵
D: 字典 for all the overlapping patches

字典 D 从哪里学习?第一种选择是基于图片的数据库,第二种是直接使用要降噪的图片进行训练。还有一种可能性是:首先基于图片的数据库得到字典 D (off-line),接着来了一张要降噪的图片,我们的做法是新建一个以 D 为初始化的字典,在要处理的图片上再进行迭代(on-line),得到新字典,这个新字典更适合降噪,代价是多一些计算。

2. K-SVD Image Denoising

在上一小节中,我们提出的可能性是 D 也需要根据要降噪的图片进行再适应,所以,图片降噪的公式多了一参数:

有三个变量,处理方法是先固定其中两个,优化一个,然后迭代。从整体上来说,先用 K-SVD 算法得到字典矩阵 D 和系数编码 alpha,保持它们不动,再优化 x:

x 的最优解实际上就是所有包含 x 像素点的 patch 的平均值,比如 patch 的大小是 8×8, 那么包含图片中某一个像素点的 patch 就有 64 个,这个像素点最优解就是取这 64 个patch 对应位置的平均值。当然,你也可以用权重来调节不同位置的 patch 对 pixel 的影响,比如 pixel 在中间的 patch,权重大,pixel 在 patch 边边角角的地方,权重小。

3. Compressed Sensing

前面我们探讨了 sparse represent 的等式,这里主要讲 compressed sensing 的概念,即在稀疏表示的等号两边同时乘以矩阵 Q:

就变成了:

用公式可以表达为:

可以看到,变换后的信号被大大压缩了。在一直 x波浪 和 D波浪 的情况下求 alpha 这个问题和前面 sparse coding 非常类似。一个关键问题是:在什么条件下由已知信号 x波浪 的情况下恢复稀疏表示 alpha?显然,这个问题与矩阵 Q,字典 D 和 alpha 的 sparse level 有关,背后涉及很多数学理论。

4. Structured Sparse Models and GMM

待续...

5. Sparse Modeling and Classification-Activity Recognition

待续...

时间: 2024-08-03 15:16:58

稀疏表示介绍(下)的相关文章

简单的介绍下WPF中的MVVM框架

最近在研究学习Swift,苹果希望它迅速取代复杂的Objective-C开发,引发了一大堆热潮去学它,放眼望去各个培训机构都已打着Swift开发0基础快速上手的招牌了.不过我觉得,等同于无C++基础上手学习C#一样,即使将来OC被淘汰,那也是N年之后的事情,如果真的要做IOS开发,趁现在Swift才刚开始,花那么几个月去了解一下OC绝对是一件有帮助的事情. 扯远了,我前几天刚接触到一个叫做mvvm的框架,发现很有意思,带着学习的态度来写点东西,不足之处一起研究.还有一个很重要的原因,我发现不少同

第 20 章 项目实战--首页内容介绍[下][4]

学习要点: 1.首页内容介绍[下] 主讲教师:李炎恢 本节课我们制作一下首页内容介绍的下半部分. 一.首页内容介绍[下] //先完成底部的 footer <footer id="footer" class="text-muted"> <div class="container"> <p> 企业培训 | 合作事宜 | 版权投诉 </p> <p> 苏 ICP 备 12345678. © 20

【转】JSP内置对象详细介绍(下)

第四个问题:Servlet的生命周期是什么呢? Servlet的生命周期,简单的概括分为四步:servlet类加载->实例化->服务->销毁.Servlet实例化的步骤: 1.Servlet容器启动时:读取Web.xml配置文件中的信息,构造指定的Servlet对象,创建ServletConfig对象,同时将ServletConfig对象作为参数来调用Servlet对象的init方法. 2.在Servlet容器启动后:客户首次向Servlet发出请求,Servlet容器会 判断内存中是否

下面就介绍下Android NDK的入门学习过程(转)

为何要用到NDK? 概括来说主要分为以下几种情况: 1. 代码的保护,由于apk的java层代码很容易被反编译,而C/C++库反汇难度较大. 2. 在NDK中调用第三方C/C++库,因为大部分的开源库都是用C/C++代码编写的. 3. 便于移植,用C/C++写得库可以方便在其他的嵌入式平台上再次使用. 下面就介绍下Android NDK的入门学习过程: 入门的最好办法就是学习Android自带的例子, 这里就通过学习Android的NDK自带的demo程序:hello-jni来达到这个目的. 一

Android jni aes加解密,实现文件的加解密,具体实现可以自行修改,上面的代码为简单介绍,下面的是JNI端实现文件加解密,可以修改为字符串加解密

#include "aes.h" #include "modes.h" #include "e_os2.h" #include "aes_locl.h" #include "opensslconf.h" AES_KEY aes; //aes cbc模式加解密用到的向量 unsigned char iv[AES_BLOCK_SIZE]; for (i = 0; i < AES_BLOCK_SIZE; i

稀疏表示介绍(中)

声明 之前虽然听过压缩感知和稀疏表示,实际上昨天才正式着手开始了解,纯属新手,如有错误,敬请指出,共同进步. 主要学习资料是 Coursera 上 Duke 大学的公开课——Image and video processing, by Pro.Guillermo Sapiro 第 9 课. 由于对图像处理的了解也来自与该课程,没正经儿看过几本图像方面的书籍,有些术语只能用视频中的英文来表达,见谅哈! 1. Uniqueness 假设我们已知字典矩阵 D 和稀疏向量 a, 计算出一个信号 x,即

简单介绍下MYSQL的索引类型

一.介绍一下索引的类型 Mysql常见索引有:主键索引.唯一索引.普通索引.全文索引.组合索引PRIMARY KEY(主键索引) ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) UNIQUE(唯一索引) ALTER TABLE `table_name` ADD UNIQUE (`column`)INDEX(普通索引)      ALTER TABLE `table_name` ADD INDEX index_name ( `column

简单介绍下MYSQL的索引

本文介绍了七种MySQL索引类型.在数据库表中,对字段建立索引可以大大提高查询速度.通过善用这些索引,可以令MySQL的查询和运行更加高效. 一.介绍一下索引的类型 Mysql常见索引有:主键索引.唯一索引.普通索引.全文索引.组合索引PRIMARY KEY(主键索引) ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) UNIQUE(唯一索引) ALTER TABLE `table_name` ADD UNIQUE (`column`)

简单介绍下微信中如何查看对方是否将你拉黑删除?

现如今微信使用的人越来越多,朋友圈中的好友也有成百个了,有很多人长时间不联系了,想知道对方是否将你拉黑删除了吗?那在微信上如何查看清理那些把你删除的好友呢?我们一起来学习下. 微信上如何查看清理那些把你删除的好友? 第一种:单个发送信息 向好友发送一条消息,验证好友是否将你删除,如果删除,系统会提示你还不是他(她)的好友,请发送好友验证请求,验证请求通过后,才能聊天.经过确认后可以果断删除该好友了,因为他已经将你删除. 第二种:查看好友相册 点击好友信息,查看好友个人相册,如果个人相册为空,一种