图像的稀疏表示——ScSPM和LLC的总结

总结SPM,ScSPM,LLC 博客开了很久,一直没有写东西。刚好前两天在实验室做了一个关于图像分类的报告,所以拿过来试试水。但优快云的编辑器用起来不是很顺手,所以为了方便,博客中用了很多图片。 引言 关于图像的工作门槛一直比较高,因为图像中的信息太丰富,展现形式也很多,噪声也丰富,所以很难提取有效的特征,这就导致后面的分类任务变得非常麻烦。正如下图所示: 正如于凯所说,特征定义了整个分类问题性能的上限,选分类器 阅读详情

稀疏编码系列:

---------------------------------------------------------------------------

 

  • 前言

       上一篇提到了SPM。这篇博客打算把ScSPM和LLC一起总结了。ScSPM和LLC其实都是对SPM的改进。这些技术,都是对特征的描述。它们既没有创造出新的特征(都是提取SIFT,HOG, RGB-histogram et al),也没有用新的分类器(也都用SVM用于最后的image classification),重点都在于如何由SIFT、HOG形成图像的特征(见图1)。从BOW,到BOW+SPM,都是在做这一步。说到这,怕会迷糊大家------SIFT、HOG本身不就是提取出的特征么,它们不就已经形成了对图像的描述了吗,为啥还有我后面提到的各种BOW云云呢抓狂。这个问题没错,SIFT和HOG它们确实本身已经是提取到的特征了,我们姑且把它们记为x。而现在,BOW+SPM是对特征x再进行一层描述,就成了Φ(x)——这相当于是更深一层(deeper)的model。一个十分相似的概念是SVM里面的核函数kernel,K=Φ(x)Φ(x),x是输入的特征,Φ(x)则对输入的特征又做了一层抽象(不过我们用核函数没有显式地对Φ(x)做定义罢了)。根据百度的余凯老师在CVPR2012的那个Tutorial上做的总结[5]:Deeper model is preferred,自然做深一层的抽象效果会更好了。而Deep Learning也是同样的道理变得火了起来。

       再次盗用一些余凯老师在CVPR2012的那个Tutorial上的一些图:

图 (1)

        SPM,ScSPM,LLC所做的工作也都集中在design feature这一步,而不是在Machine Learning那一步。值得注意的是,我们一直在Design features,而deep learning则是design feature learners。

      BOW+SPM的整体流程如图(2)所示:

图(2)

        Feature Extraction的整体过程就是先提取底层的特征(SIFT,HOG等),然后经过coding和pooling,得到最后的特征表示。

             ----Coding: nonlinear mapping data into another feature space

             ----Pooling: obtain histogram

        而SIFT、HOG本身就是一个coding+pooling的过程,因此BOW+SPM就是一个两层的Coding+Pooling的过程。所以可以说,SIFT、SURF等特征的提出,是为了寻找更好的第一层Coding+Pooling的办法;而SPM、ScSPM、LLC的提出,是为了寻找更好的第二层Coding+Pooling的办法。而ScSPM和LLC所提出的更好的Coding办法就是Sparse Coding。

图(3)

 

  • 再前言

        在总结ScSPM之前又要啰嗦些话。为啥会有SPM→ScSPM呢?原因之一是为了寻找better coding + better pooling的方式提高性能,原因之二就是提高速度。如何提高速度?这里的速度,不是Coding+Pooling的速度,而是分类器的速度。SPM设计的是一个Linear feature,在文章中作者用于实验则是用了nonlinear SVM(要用Mercer Kernels)。相比linear SVM,nonlinear SVM在training和testing的时候速度会慢的。至于其原因,我们不妨看看SVM的对偶形式:

(1)

        如果核函数是一个线性的kernel:K(z, zi)=zTzi,那么SVM的决策函数就可以改写为:

    (2)

          从两式可以看见,抛开训练和存储的复杂度不说,对于测试来说,(1)式对每个测试样本要单独计算K(z, zi),因此testing的时间复杂度为O(n)。而(2)式的wT可以一次性事先算出,所以每次testing的时间复杂度为O(1)。此外,linear classifier的可扩展性会更好。

          因此,如果能在coding+pooling后设计得到线性可分的特征描述,那就最好了。因此能否设计一个nonlinear feature + linear SVM得到与 linear feature + nonlinear SVM等效甚至更好的效果,成为ScSPM和LLC的研究重点。

  • ScSPM

        SPM在coding一步采用的是Hard-VQ,也就是说一个descriptor只能投影到dictionary中的一个term上。这样就造成了明显的重建误差(worse reconstruction,large quantization errors)。这样,原本很相似的descripors经过coding之后就会变得非常不相似了。ScSPM为此取消了这一约束,它认为descripor可以投影到某几个terms上,而不仅仅是一个。因此,其目标函数变成了:

     (3)

        其中M是descriptor的数目,Um表示第m个descriptor在字典V上的投影系数。

        它对投影系数用L1-norm做约束实现了稀疏。求解问题称为LASSO (least absolute shrinkage and selection operator),在得到稀疏结果的同时,它无法得到解析解,因此速度肯定是很慢的。关于L1-norm和LASSO问题,可以参看这里。

        为什么Sparse Coding好,主要有以下几个原因:

      1)已经提到过的重建性能好;[2]

      2)sparse有助于获取salient patterns of descripors;[2]

      3)image statistics方面的研究表明image patches都是sparse signals;[2]

      4)biological visual systems的研究表明信号的稀疏特征有助于学习;[4]

      5)稀疏的特征更加线性可分。[2]

         总之,"Sparse coding is a better building block“。

         Coding过后,ScSPM采用的Pooling方法是max pooling:Zj=max Uij。相比SPM的average pooling:Zj=1/M *Σ Uij。可以看见average pooling是一个linear feature representation,而max pooling是nonlinear的。我是这么理解再前言中提到的linear和nonlinear feature的。(@13.08.11:今天在写理解sparse coding的时候发现这里搞错了。不光是pooling的函数是线性的,VQ的coding得到的u关于x好像也是线性的。)

        作者在实验中得出max pooling的效果好于average pooling,原因是max pooling对local spatial variations比较鲁棒。而Hard-VQ就不好用max pooling了,因为U中各元素非0即1。

        另外实验的一个有趣结果是发现ScSPM对大的codebook size表现出更好的性能,反观SPM,codebook大小对SPM结果影响不大。至于为啥,我也不懂。

  • LLC

         LLC和ScSPM差不多了,也是利用了Sparsity。值得一说的是,其实Hard-VQ也是一种Sparse Coding,只不过它是一种重建误差比较大的稀疏编码。LLC对ScSPM的改进,则在于引入了locality。为了便于描述,盗用一下论文的图:

图(4)

        这个图实在是太棒了,太能解释问题了。VQ不用说,重点在于SC和LLC之间,LLC引入了locality的约束,即不仅仅是sparse要满足,非零的系数还应该赋值给相近的dictionary terms。作者在[4]中解释到,locality 很重要是因为:

     1)nonlinear function的一阶近似要求codes是local的;

     2)locality能够保证codes的稀疏性,而稀疏却不能保证locality;

     3)稀疏的coding只有再codes有局部性的时候有助于learning。

        总之,"locality is more essential than sparsity"。

        LLC的目标函数是:

     (4)

       和(3)一样,(4)可以按照加号的前后分成两部分:加号前的一项最小化是为了减少量化误差(学习字典、确认投影系数);加号后的一项则是做出假设约束(包括是一些参数的regularization)。这个求解是可以得到闭合解的,同时也有快速的近似算法解决这个问题,因此速度上比ScSPM快。

       di描述的是xi到每个dictionary term的距离。显然这么做是为了降低距离大的term对应的系数。

       locality体现出的最大优势就是,相似的descriptors之间可以共享相似的descriptors,因此保留了codes之间的correlation。而SC为了最小化重建误差,可能引入了不相邻的terms,所以不能保证smooth。Hard-VQ则更不用说了。

       实验部分,则采用max pooling + L2-normalization。

   

        文章的最后,盗窃一个ScSPM第一作者的总结表格结束吧(又是以偷窃别人图标的方式结束委屈)

 

References:

[1] S. Lazebnik, C. Schmid, and J. Ponce. Beyond bags of features: Spatial pyramid matching for recognizing natural scene categories. CVPR2006

[2] Jianchao Yang, Kai Yu, Yihong Gong, and Thomas Huang. Linear spatial pyramid matching using sparse coding for image classification. CVPR2009.

[3] Jinjun Wang, Jianchao Yang, Kai Yu, Fengjun Lv, and Thomas Huang. Locality-constrained linear coding for image classification. CVPR2010

[4] Kai Yu, Tong Zhang, and Yihong Gong. Nonlinear learning using local coordinate coding. NIPS2009.

[5] Kai Yu. CVPR12 Tutorial on Deep Learning: Sparse Coding.

-----------------------

作者:jiang1st2010

引用请注明来源:http://blog.youkuaiyun.com/jwh_bupt/article/details/9837555

第三课 NXP S32K144 MCAL 集成到Vector davinci SIP-第一弹 将NXP S32K144 MCAL 集成到Vector davinci SIP的第三方库,导出ARXMl给Vector davinci SIP使用 阅读详情

相关推荐

Aspose Java 25.10 版本深度破解:基于字节码修改的实战指南

本文提供了Aspose Java 25.10版本基于字节码修改的实战指南。详细介绍了如何通过Javassist工具逆向分析并修改Aspose Cells、Words、Slides及PDF组件的许可证验证逻辑,从而实现绕过限制,并完成最终的打包与功能验证。

stone的博客 1352

图像的稀疏表示(Sparse Representation)

文章目录前言稀疏信号稀疏表示稀疏分解字典生成应用图像稀疏表示图像去噪图像融合图像重构目标跟踪人脸识别其他 前言 在进入正题前先结合自己的经验对稀疏理论的相关内容扯几句。自己的话本身之前做了一段时间的图像融合内容,后来这块也放了放。但是之前在看论文的时候,基于稀疏理论的图像融合相关的论文还挺多的,但是一直没去仔细看这个,也没系统的整理过。最近看到好几篇2020年的论文,都是用这个做的融合,当然稀疏理论的应用场景远不止此。于是还是想再好好查一查,梳理一下。其实之前刚开始看这个东西的时候,挺抽象的,包括什么稀疏编

Zetropy 2万+

数据标注工具:AiLabel.js实现标注 超详细教程 案例分享

背景:在前端开发过程中难免遇到针对图片的缩放平移;以及在图片上进行矢量数据、文本、标注的展示;如果你有上面的任何需求,恭喜你,找到组织了.... 在此背景下,AILabel.js出生了。 前面文章我们已经介绍过AiLabel.js了; https://blog.youkuaiyun.com/u012967771/article/details/113148527 npm下载地址:https://www.npmjs.com/package/ailabel github地址:https://github.com/d.

前端互助会 9365

稀疏表示字典学习KSVD算法详解与MATLAB实现(超清晰!

论文题目 K-SVD: An Algorithm for Designing Overcomplete Dictionaries for Sparse Representation 这篇论文的去噪效果还是很不错的,个人认为凡是学习图像去噪/复原这一方向的都应该学习。 我这篇文章是很久之前写的了,借鉴了一些大佬的理解,但由于时间久远,忘了哪部分是借鉴的谁,所以若有雷同请指出,我会重新编辑,附上大佬的...

一九九六年秋_ 3万+

优快云余额充值前必读:这5个隐藏条款,90%的开发者都忽略了(附iOS内购避坑指南)

本文揭示了优快云余额充值中90%开发者忽略的5个隐藏条款,包括不可退款规则、iOS内购限制、账号安全责任等关键内容,特别提供了iOS内购避坑指南,帮助开发者避免资金损失和账号风险。

weixin_26765287的博客 146

红帽RHCE考试下午-RHCE (RH294)任务概览[2021最新版]

RH294任务概览 考试时间4个小时,6台虚拟机,15道题 原来通过脚本或者集群做的题现在都需要使用playbook实现 考试时大概有6台虚拟服务器,都已经做好了互相的免密 做题在ansible控制节点workstation做,但是需要去其他虚拟服务器进行验证 考试时需要将6台虚拟服务器在考试环境全部开启,物理机界面点击左侧按钮启动 考试时Ansible所有playbook都放在普通用户目录中且都以普通用户执行 注意:考试时一定注意要求将playbook放在哪个用户的家目录中,就需要用指定的户登录做题!

SunMy的博客 5618

图像的稀疏表示BoW、SPM、ScSPM和LLC介绍

图像的稀疏表示BoW、SPM、ScSPM和LLC介绍引言稀疏表示BoWSPMScSPMLLC参考文献 引言 首先介绍一下写这篇博客的背景,最近在看视频无监督的paper,无监督最早采用特征提取+聚类的模型,其中一篇提到了利用LLC进行快速聚类,所以了解了一下图像的稀疏表示。 图像的稀疏表示方法经历了BoW、SPM、LLC的发展历程,目前应用比较广的是LLC。 稀疏表示 BoW Bag Of Word(词袋)模型,是现在一种用于图像检索的一种方法。它最早用于对于文章内容的检索,原理是将文本看作是单词的集合,通

weixin_43844219的博客 2708

全网最详细单细胞保姆级分析教程(一) ---pbmc

通过观察热图,可以了解不同细胞在主成分上的分布情况,以及主成分与细胞特征之间的关系。数据归一化是数据分析中的常见步骤,旨在消除数据集中不同特征之间的量纲差异,并使它们在相同的尺度上进行比较。函数会根据指定的主成分维度计算数据点之间的距离,并找到每个数据点的邻居。函数会根据数据点之间的相似性将其分组到不同的聚类中。数据缩放是数据分析中的常见步骤,旨在将数据的特征值调整到相似的范围,以避免某些特征对分析结果的过度影响。通过可视化维度载荷,可以了解哪些特征对主成分的形成起到了重要作用,以及不同特征之间的相关性。

ZxVSaccount的博客 6704

c++获取图像在直方图_图像的稀疏表示BoW、SPM、ScSPM和LLC介绍

引言首先介绍一下写这篇文章的背景,最近在看视频无监督的paper,无监督最早采用特征提取+聚类的模型,其中一篇提到了利用LLC进行快速聚类,所以了解了一下图像的稀疏表示。图像的稀疏表示方法经历了ScPM到LLC的发展历程,但是他们两者是建立在对BoW和SPM的修改上,因此本文将后者也纳入稀疏表示的范畴。需要注意的是,图像的稀疏表示的表述或许有些歧义,因为这些方法探讨或者研究的不是特征的提取方法,而...

weixin_39728909的博客 376

Gazebo仿真环境下的强化学习实现

实际上利用Gazebo进行强化学习无非是环境获取上的不同,Gazebo的环境控制需要使用ROS服务进行控制,状态可以通过Gazebo进行获取,同时某些必要数据需要从话题中获取,最重要的是组织获取 的数据(通过话题等)与控制Gazebo的仿真步骤之间的组合。强化学习的手段与传统算法无异,强化学习方法最重要的是要确定动作空间、状态空间、奖励空间,这三个空间是work的前提。在笔者自己的环境中,将获取里程计的话题以及获取激光点的数据替换成为了自己的本机的仿真环境匹配的话题。

Moresweet 猫甜 6448

YOLOv13改进:注意力机制 | 动态稀疏注意力的双层路由方法BiLevelRoutingAttention | CVPR2023

BiLevelRoutingAttention方法对小目标检测效果比较好。可能是因为BRA模块是基于稀疏采样而不是下采样,一来可以保留细粒度的细节信息,二来同样可以达到节省计算量的目的。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 1434

参数共享 稀疏交互 等变表示_图像的稀疏表示BoW、SPM、ScSPM和LLC介绍

引言首先介绍一下写这篇文章的背景,最近在看视频无监督的paper,无监督最早采用特征提取+聚类的模型,其中一篇提到了利用LLC进行快速聚类,所以了解了一下图像的稀疏表示。图像的稀疏表示方法经历了ScPM到LLC的发展历程,但是他们两者是建立在对BoW和SPM的修改上,因此本文将后者也纳入稀疏表示的范畴。需要注意的是,图像的稀疏表示的表述或许有些歧义,因为这些方法探讨或者研究的不是特征的提取方法,而...

weixin_42328834的博客 372

软考高级系统架构设计师系列论文四十九:论微服务架构及其应用

软考高级系统架构设计师系列论文四十九:论微服务架构及其应用

zhengzaifeidelushang的博客 3194

稀疏编码系列2:图像的稀疏表示——ScSPM和LLC的总结

稀疏编码系列: (一)----Spatial Pyramid 小结(二)----图像的稀疏表示——ScSPM和LLC的总结(三)----理解sparse coding(四)----稀疏模型与结构性稀疏模型 ---------------------------------------------------------------------------   前言

Just for fun的专栏 1218

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

在线场景感知:图像稀疏表示—ScSPM和LLC总结(以及lasso族、岭回归)

前言: 场景感知其实不分三维场景和二维场景,可以使用通用的方法,不同之处在于数据的形式,以及导致前期特征提取及后期在线场景分割过程。场景感知即是场景语义分析问题,即分析场景中物体的特征组合与相应场景的关系,可以理解为一个通常的模式识别问题。 论文系列对稀疏编码介绍比较详细...本文经过少量修改和注释,如有不适,请移步原文...

alppkk4545的博客 305

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

在线场景感知:图像稀疏表示-ScSPM和LLC总结(lasso族、岭回归)

前言 场景感知应用于三维场景和二维场景,可以使用通用的方法,不同之处在于数据的形式,以及导致前期特征提取及后期在线场景分割过程。场景感知即是场景语义分析问题,即分析场景中物体的特征组合与相应场景的关系,可以理解为一个通常的模式识别问题。论文系列对稀疏编码介绍比较详细...本文经过少量修改和注释,如有不适,请移步原文。 code下载:http://www.ifp....

wishchinYang的专栏 3866

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

先进的编码技术-稀疏表达-2-ScSPM和LLC的总结

稀疏编码系列: (一)----Spatial Pyramid 小结(二)----图像的稀疏表示——ScSPM和LLC的总结(三)----理解sparse coding(四)----稀疏模型与结构性稀疏模型 ---------------------------------------------------------------------------   前言

wuhang19911024的博客 1172
上一篇: Spatial Pyramid 小结
下一篇: 理解sparse coding
Savitch
博客等级 码龄16年 84粉丝 130原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值