【纹理学习】初探纹理学习

注:本笔记大量借鉴了网络各种文字、图片资源整理而成,仅用于学习用途,联系侵删。

一、回顾了cs231n课程的纹理合成(Nerual Texture Synthesis)

具体步骤:
1.在VGG上预训练一个CNN
2.在CNN上前向传播输入纹理,记录每层激活函数,每一层给出CXHXW的特征映射
3.每一层计算Gram矩阵给出特征的外部结果
4.从随机噪声初始化生成图片
5.通过CNN传播生成图片,计算每一层的Gram矩阵
6.计算损失:在Gram矩阵间L2距离的总和上加权
在这里插入图片描述
结论:广泛应用于迁移学习领域

二、图像纹理分类方法研究进展和展望

在这里插入图片描述
粗读了国防科学技术大学刘丽等人的《图像纹理分类方法研究进展和展望》论文,整理了以下几处要点:

1.关于纹理图像分类

纹理图像分类是指基于待分类图像或图像区域的内容为其指定一个预先定义的纹理类别. 纹理特征描述和分类器是图像分类的两个关键环节。

2.纹理分类的难点与挑战

对图像进行纹理特征描述是纹理图像分类的主要研究内容,因为如果提取的纹理特征不好,即便好的分类器也无法完成识别任务
实例层次和类别层次的困难与挑战
在这里插入图片描述

3.主流纹理分类数据库

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.近期主流分类方法报道的纹理分类性能总结

在这里插入图片描述

5.对纹理分类的思考

1)大规模纹理数据库构建问题
目前纹理分类领域尚不存在一个类似于ImageNet这样的大规模纹理数据库,这成为制约纹理分析与理解的一个瓶颈。
2)有关纹理的定义问题
纹理不存在一个公认的定义, 这已经不是一个新的问题。然而,要构建一 个大规模的纹理数据库,这个问题不可回避。
3)适合纹理分析与理解的深度卷积神经网络研究
物体是层级组成的,高级的特征是通过对低级特征的组合来实现的。具体而言, 局部边缘的组合形成基本图案,这些图案 形成物体的局部,继而再形成整个物体。但是这种图像整体形状的分析和越来越复杂的特征未必适合于纹理分析。纹理分类更加关注的是图像中存在的一些简单的局部模式,以及这些局部模式的较有规律的重现。
4)纹理图像的高效分类方法研究
高维度导致高存储需求和高计算复杂度,特别是资源受限的领域 (如移动设备上的识别) 中,目前主流的纹理图像分类方法无法胜任。
5)开放环境下鲁棒纹理分类问题
实际应用中,光照变化、图像旋转、尺度变化、非刚性形变、局部遮挡、图像随机噪声 (高斯随机噪声、椒盐噪声)、图像模糊等因素,都给纹理分类方法带来很大挑战。
6)纹理图像语义理解问题
在纹理视觉属性定义方面,哪些是人类常用来描述纹理特征的纹理视觉属性?
是否存在一个通用的、公认的纹理视觉属性库?
在纹理视觉属性描述方面,属性描述与底层特征之间的对应关系如何?
如何结合底层特征来提高识别准确度?
如何将属性集用于描述具体对象?
在小样本学习方面,如何利用现有的属性特征库来 “扩充样本”,构建一个更为精确的识别模型?

三、SIFT

1.SIFT特征是图像的局部特征,其对旋转、尺度缩放、亮度变化保持不变性,对视角变化、仿射变换、噪声也保持一定程度的稳定性;
2.区分性(Distinctiveness)好,信息量丰富,适用于在海量特征数据库中进行快速、准确的匹配;
3.多量性,即使少数的几个物体也可以产生大量的SIFT特征向量;
4.高速性,经优化的SIFT匹配算法甚至可以达到实时的要求;
5.可扩展性,可以很方便的与其他形式的特征向量进行联合。

特征检测

1.尺度空间极值检测:
搜索所有尺度上的图像位置。通过高斯微分函数来识别潜在的对于尺度和旋转不变的兴趣点。
2.关键点定位
在每个候选的位置上,通过一个拟合精细的模型来确定位置和尺度。关键点的选择依据于它们的稳定程度。
3.方向确定
基于图像局部的梯度方向,分配给每个关键点位置一个或多个方向。所有后面的对图像数据的操作都相对于关键点的方向、尺度和位置进行变换,从而提供对于这些变换的不变性。
4.关键点描述
在每个关键点周围的邻域内,在选定的尺度上测量图像局部的梯度。这些梯度被变换成一种表示,这种表示允许比较大的局部形状的变形和光照变化。

特征匹配

第一阶段:SIFT特征的生成,即从多幅图像中提取对尺度缩放、旋转、亮度变化无关的特征向量。
第二阶段:SIFT特征向量的匹配。

SIFT特征的生成步骤

1.构建尺度空间,检测极值点,获得尺度不变性。
2.特征点过滤并进行精确定位。
3.为特征点分配方向值。
4.生成特征描述子。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
以特征点为中心取16×16的邻域作为采样窗口,将采样点与特征点的相对方向通过高斯加权后归入包含8个bin的方向直方图,最后获得4×4×8的128维特征描述子。
在这里插入图片描述
当两幅图像的SIFT特征向量生成以后,下一步就可以采用关键点特征向量的欧氏距离来作为两幅图像中关键点的相似性判定度量。取图1的某个关键点,通过遍历找到图像2中的距离最近的两个关键点。在这两个关键点中,如果最近距离除以次近距离小于某个阈值,则判定为一对匹配点。

四、BOF、FV、VLAD等算法

BOF、FV、VLAD等算法都是基于特征描述算子的特征编码算法
BOF(Bag Of Features):建立码本时采用K-means,在映射时,利用视觉词袋量化图像特征,统计的词频直方图,该词频直方图即为编码后的特征向量,损失的信息较多。BOF是把特征点做kmeans聚类,然后用离特征点最近的一个聚类中心去代替该特征点,损失较多信息;

FV(Fisher Vector):FV是对特征点用GMM建模,GMM实际上也是一种聚类,只不过它是考虑了特征点到每个聚类中心的距离,也就是用所有聚类中心的线性组合去表示该特征点,在GMM建模的过程中也有损失信息。

VLAD(vector of locally aggregated descriptors):VLAD像BOF那样,只考虑离特征点最近的聚类中心,VLAD保存了每个特征点到离它最近的聚类中心的距离; 像Fisher vector那样,VLAD考虑了特征点的每一维的值,对图像局部信息有更细致的刻画; 而且VLAD特征没有损失信息。
VLAD算法可以分为如下几步:
1、提取图像的SIFT描述子
2、利用提取到的SIFT描述子(是所有训练图像的SIFT)训练一本码书,训练方法是K-means
3、把一副图像所有的SIFT描述子按照最近邻原则分配到码书上(也即分配到K个聚类中心)
4、对每个聚类中心做残差和(即属于当前聚类中心的所有SIFT减去聚类中心然后求和)
5、对这个残差和做L2归一化,然后拼接成一个K*128的长向量。128是单条SIFT的长度
在这里插入图片描述

五、k-means clustering algorithm

k均值聚类算法(k-means clustering algorithm)是一种迭代求解的聚类分析算法,其步骤是,预将数据分为K组,则随机选取K个对象作为初始的聚类中心,然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。聚类中心以及分配给它们的对象就代表一个聚类。每分配一个样本,聚类的聚类中心会根据聚类中现有的对象被重新计算。这个过程将不断重复直到满足某个终止条件。终止条件可以是没有(或最小数目)对象被重新分配给不同的聚类,没有(或最小数目)聚类中心再发生变化,误差平方和局部最小。

六、Texture Encoding Network

简介
Deep-TEN模型推广了传统的字典学习 (dictionary learning) 和残差编码 (Residual Encoders),比如 VLAD 和 Fisher Vector。提出的编码层 (Encoding Layer) 和已有的深度学习结构兼容,实现了端对端的材料识别 (End-to-end),并且取得了不错的效果。

传统方法(左图)

Cimpoiet. al. CVPR 2015 (中图):使用了预训练的神经网络的卷积层提取了深度特征,并且使用了 Fisher Vector 编码器,刷新了当时的state-of-the-art
(中图)方法的局限性:包含了许多分步的优化,这样特征提取(卷积层),字典学习和编码器不能够从标识的数据(labeled data)中得到进一步优化。

TEN模型(右图)优势:将整个字典学习和编码整合到一个CNN网络层中,使它与已有的深度学习体系兼容,这样以来就实现了端对端的学习优化。
在这里插入图片描述
1.通常先提取图像特征(SIFT、filterbank responses等)
2.通过聚类等非监督方式得到一个字典(dictionary)
3.对图片特征编码(材料识别中通常使用无序编码器,比如BoWs,VLAD)
4.使用分类器进行分类
在这里插入图片描述
方法部分有一些tricky,提出了个数学模型 (Residual Encoding Model),推广了已有的编码器 (VLAD, Fisher Vector),并且使得整个系统是可微分的,这样就可以像已有的深度学习层一样,从loss function中学习到参数。也就是说它实现了监督式的字典学习(supervised dictionary learning)。这个模型有很多特性,它使得CNN网络可以接受任意大小的图片,并且因为字典学习和表达容易携带Domain信息,这样学习到的深度特征就更加容易应用于其他domain。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

七、关于数据集

CIFAR-10 是一个用于识别普适物体的小型数据集。一共包含 10 个类别的 RGB 彩色图 片:飞机( airlane )、汽车( automobile )、鸟类( bird )、猫( cat )、鹿( deer )、狗( dog )、蛙类( frog )、马( horse )、船( ship )和卡车( truck )。图片的尺寸为 32×32 ,数据集中一共有 50000 张训练圄片和 10000 张测试图片。

STL-10 Dataset 是用于开发无监督特征学习、深度学习、自学习算法的图像识别数据集,其基于 CIFAR-10 Dataset 做了一些修改。其中每个类别均包含比 CIFAR-10 更少的标记训练示例,但提供规模更大的未标记实例用于监督训练的图像学习模型,其利用未标记的数据来构建拥有的先验数据,其中高分辨率图像可被用于开发更具扩展性的无监督学习方法。

猜你喜欢

转载自blog.csdn.net/weixin_43359312/article/details/107856614
今日推荐