Representing and Recognizing the Visual Appearance of Materials using Three-dimensional Textons部分翻译

摘要:主要想法是构建有着局部相关几何和广度特性的微小表面patches原型的词汇,我们叫做3D纹理基元3Dtextons。比如可能的脊、凹槽、斑点、条纹或者他们的组合等。联系各个纹元的是外观矢量,表达了局部辐照度分布,表示为在不同的照明和观察条件下的一组线性高斯导数滤波器输出。聚类方法是为了从大量图像中抽取少量的3D纹元词汇。给出一种材料的少量的图像(1到4张),能够用纹元表示出来。我们展示了如何识别材料纹理,并阐述了为什么可以用3d纹元表示材料外观。

 

1、介绍

以前纹理识别主要当做是2D问题,视角和光照当做固定的。但是像浮雕纹理,有着specularities镜面反射、阴影、occlusions等变化,即使是同一种纹理,在不同光照和角度下差异会变得很大,分类变得很困难。我们的目标是构建一个小的有限的表示细微机构(条纹、点等)的词汇,我们叫做3D纹元,类比于Julesz’s textons(Julesz, 1981)

的2D纹元。在3D纹元中,我们级联了不同光照和视角下的滤波器响应。当我们建立了这样的普遍性3D纹元词汇,任何材料的表面都可以用这些词汇表示,只需要采集少量视角下的图片。我们改进了Markov Chain Monte Carlo (MCMC)采样方法用于分类。

 

2、2D纹元

我们将纹理用一系列方向和空间频率选择性线性滤波器(滤波器组filter banks)的响应表示。用滤波器响应去表示纹理是有效的,但有人认为过度冗余(每个像素都用一组滤波器响应去表示)。但是纹理在空间上是重复的,所以并不是每点上的响应都不同。Thus, there should beseveral distinct filter response vectors and all others are noisy variations ofthem。这个直觉让我们提出将滤波器响应聚类到少量原型响应向量。我们称之为prototypes textons 原型纹元。

实验中每个像素经过48个滤波器转换成了48维的向量。这些向量使用向量量化算法(比如k-means)进行聚类。这些聚类中心就是纹元。‘、The associatedfilter response vectors are called the appearancevectors外观向量, ck ∈ RNf il, k = 1,. . . , K .纹元编码可以通过从外观向量Ck重建local imagepatches局部图像块进行可视化。重建对于正交或自反向滤波器组是微不足道的。而对于非自反向和non-orothogonal的滤波器组,可以当做最小二乘问题。首先重建滤波器矩阵F:将每个滤波器当做行向量,所有滤波器向量组成了矩阵F。这种表示下,用这些滤波器组进行卷积等同于每个局部图像块乘以F。每个Pl都能用外观向量Ck乘以F的pseudo-inverse伪逆得到。


由原图进行聚类得到纹理基元,原图的每个像素用纹理基元量化,然后通过量化数据重建原图。

 

3、3D纹元

如果我们级联Nvl个图片的所有滤波器响应,然后对NfilNvl数据向量进行聚类,得到的结果纹元可以用于编码图片在不同光照和角度下的主要外观。比如groove槽和ridge岭在一个图片中可能看着很相似,但在不同光照和不同角度下是看着不同的。各个滤波器作用于一类中的各个图片可以告诉我们两个特征的差别。每个k-means中心编码了几何特征在不同光照不同尺寸等情况下的信息。


这些K-means中心能够表达纹理在不同光照、角度情况下的外观,称之为3D纹元。NfilNvl滤波器响应,称为外观向量。

 

4、构建3D纹元词汇

我们的目的是从训练图像中学习出通用词汇表可以表达所有材料外观。

1选取20类,每类Nvl=20张图像。每类中,对于每个像素的滤波器响应级联成NfilNvl向量。

2对每类图像像素NfilNvl向量进行聚类K=400个中心。

3每类图像有400个纹元,则总共有400*20=8000个纹元。

4将codebook剪枝,即将纹元减少到100个,隔得太近的算一个,表示了很少像素的纹元去掉。

5再用k-means方法?????

Steps2 to 4 can be viewed as finding an initialization for the final K-means step in 5.

学习到的词汇有两个重要特性:表现力强,概括化。

 

5、用3D纹元表示材料外观

每个点计算向量,与纹元向量计算距离,最小的纹元向量作为当前点的表示。则每张图片可以表示为纹元数量组成的直方图。

 

6、纹元与主成分分析

纹元表示可以看做是数据压缩的一种形式。PCA是最常见的一种方式。但是PCA方法表示3D纹理本质上是线性的,但浮雕表面纹理(阴影、镜面反射、相互光照等等)是非线性的。而且用PCA需要表面反射是Lambertian的。但实际上大多数材料是高度非Lambertian的。所以我们认为将纹理表示看做非线性的更合理。

 

7、纹理识别

7.1多视角和光照情况下的3D纹理识别

用chi-square距离比较sample的直方图和model的直方图。在这个实验中,用了20个类别去建立100个纹元词汇,用了40个类去测试分类(每个类一次性用3张不同状态下的图?)。准确率达到95.6%。一种材料用不同光照和角度下的特征去表示好像是没有道理的,但如果一个材料是弯曲的表面,则它的成像确实是不同光照和角度下的组合。

7.2通过单张图像识别3D纹理

一个更难的问题:对于每类材料,直方图模型是通过4个不同光照/视角状态下获得的,但对于测试样本图像,我们只有单张在某种特定情况下的图片。只给定一张图像,找到每个像素的纹元标签是很困难的,如前所述,在一个视角和光照情况下,物理上不同的纹理可能有相同的外观。因此,对像素的纹元分配是不明确的。

我们方法的一个直觉:一方面如果一个输入图像的纹元标记是知道的,则该材料的种类可以通过比对该图像的纹元直方图和模型的纹元直方图的卡方距离。另一方面,如果该材料的种类时知道的,则该图像的纹元标记可以通过该材料的纹元直方图估计。我们解决这个鸡和蛋的问题,使用Markov chain Monte Carlo (MCMC)方法。首先,每个像素i可以允许Ni个可能的纹元标签,NCMC方法会通过给定的材料可能性找到最好的标签。


1.在Ni个可能的纹元标签中随机分配一个标签给每个像素i,为初始状态x(t),t=0

2.通过模型直方图hn计算当前状态的概率P(x(t)),公式(2)

3.通过改变随机改变M个标签得到暂时的新状态x'

4.计算P(x'),公式(2)

5.计算α= P(x')/P(x(t))

6.如果α>=1,接受新状态,不然以概率α接受新状态

7.重复步骤2直到状态收敛到稳定分布

MCMC做的事情是从以下分布中抽取样本:

P(labelling|material n) 通过公式2得出,一单状态稳定在一个稳定的分布,我们可以通过计算maxt得出待测图像取样自材料n的概率P(x(t) | hn) 。

在我们的实验中,每个像素允许有5个最可能的纹元标签。每次迭代允许改变5%的像素标签。图11表现了MCMC算法的效果。


分类表现如图12

 

 

8.新的视角/光照情况下的预测


假设我们获得了一个新材料在不同光照和角度下的n张图片,我们计算他们的滤波器响应并将他们连接成一个nNfil维的向量。这个向量可以标记为K个材料纹理中的一个,通过比较NvlNfil维的外观向量的纹元词汇。换句话说,输入图像的每个像素都用K个3D纹元中的一个去标记。3D纹元的外观向量精确编码了每个纹元在光照和角度变化时是怎么转变的。因此,我们可以预测一个图像是怎么在一个新的光照和角度下转变的。

如图13和14,给定4张材料在不同光照和角度下的图片,我们用纹元词汇预测这个材料在其他光照和视角状况下的外观。

 

9.讨论

在本文中,我们提出了一种框架,用于表示具有反射与材质表面特性的纹理。基本想法是建立一种广泛的纹元词汇用于描述纹理表面的通用局部特征。用纹元词汇和MCMC方法,在任意光照和角度下单个图像的3D纹理识别上取得了很好的结果。我们也阐述了为什么我们的模型可以用于自然材料在新光照和角度下的预测。

现在的工作可以结合纹理生成算法去产生在全部角度和光照条件下的样本。算法在Efrosand Leung (1999) 提出,他们的基本思想 像素生成法合成纹理,生成的像素值是从纹理示例图片中取样得来的。在我们的3D纹元模型中,我们可以生成一个纹元数组而不是像素值。给定一组纹元,我们可以合成一个在任意光照和角度条件下的图像。这是通过在3D纹元中选择一系列外观向量再重建图像得到的。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值