通过DCT进行纹理分类


12

使用离散余弦变换的特征对图像的纹理进行分类的可行性如何?谷歌搜索“纹理分类dct”仅使用神经网络找到有关该主题的一篇学术论文

对于我的应用程序,我有大量带标签的图像,其中整个图像是一致的纹理(例如,毯子,树皮,草地等的特写镜头)。

前一个问题的启发,我正在考虑以下方法:

  1. 将每个图像分成NxN个像素块
  2. 取每个块的DCT
  3. 将每个DCT展平为1xM阵列,并将其馈送给K-Means聚类算法,并获得每个DCT的聚类标签
  4. 通过计算#3中每个图像的每个标签,计算每个图像的聚类标签的直方图
  5. 通过为其提供一组[(直方图,图像标签)]来训练SVM分类器

效果如何?我使用通过SIFT / SURF算法提取的特征实现了一个类似的系统,但是我只能获得大约60%的精度。

我还可以通过哪些其他方式使用DCT对纹理进行分类?


1
这几乎听起来像是我只需要为ml-class.org做的神经网络分配 -Ivo
Flipse

2
@IvoFlipse:为ml-class.org +1。但是,这个问题与功能有关。最后,如果您的功能不适合该问题,则分类算法的好坏并不重要。
迪马

Gabor过滤器库对于构造分类可能非常有用。
mrgloom 2012年

Answers:


6

到目前为止,您提出的建议听起来很合理。但是,我不认为您会一直尝试到它,就像尝试SIFT一样,不会知道它的效果。

但我有个问题。为什么要限制自己使用DCT?有许多用于纹理分类的表示形式:共现矩阵,局部二进制模式等。您仅发现一篇关于使用DCT进行纹理分类的论文这一事实表明,这不是最常用的功能对于这个问题。我建议您扩大文献搜索范围,以了解人们使用了哪些其他功能以及他们的工作情况。


4

如果您不打算将图像拆分为NxN块,而是使用滑动窗口-计算以图像每个点为中心的块的DCT,则实际上将使用小波方法。将图像拆分为块与使用滑动窗口和下采样图像相同。因此,实质上,您是在使用简化形式的小波纹理分割。使用Gabor小波代替DCT通常是因为:它具有更多的参数(+比例和+方向)和平滑的衰减(而不是窗口的尖锐边缘)。


3

为什么要进行基于DCT的纹理分割/分类(或任何其他活动)的最大吸引力之一就是事实,即大多数JPEG图像和MPEG视频已经在DCT中。另一方面,通常认为基于Gabor的方法在计算上是昂贵的。

高频和/或对角线频率的DCT系数MID反映了像素域中局部变化的良好表现。

但是,所有这些可能并不像听起来那样好。首先,在大多数标准DCT块中,尺寸均为8x8。因此,这暗示着,如果场景具有周期性为8个像素点的图案,则根据相邻块的相应系数的相似性,这种共振效果将可见,但是,当周期性改变时,此关系将发生变化。

了解DCT与Gabor的纯块之间的关键区别在于Gabor具有刻度。因此,如果您更改纹理的“周期性”或“细度/粗糙度”,Gabor会发现它在DCT固定评估@ 8x8块大小无法很好适应的地方。

然而,需要实现的是通过一起查看多个块以评估这种规模现象来构建这种模式。例如,作为一种基本方法,请问如果我有16x16的块或32x32的大小的块,系数的结果模式将是什么?各个位置的系数将具有一定的关联关系,可以使人们发现纹理的真实比例。

这确实是一个很好的研究课题。

注意:即使是MPEG7(与创建MPEG的委员会非常接近的人),他们也提出了基于Gabor的纹理功能,而不是基于DCT的功能。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.