我正在提取图像特征以进行纹理识别。我想从2D image
. 这些特征应该捕捉到图像micro
以及macro geometry
图像。我试图找出一些可以给我上述结果的算法。我试过了SIFT
但它只捕捉宏观几何、形状和边缘细节的细节。另一方面,我尝试了各种版本的 LBP(如 CS-LBP、LNBP 等),但它们只能捕捉像素差异,而不能捕捉事物的整体方案。我尝试的另一种技术是使用具有不同距离和方向值的 GLCM。但是仍然存在得到的直方图太大,比较耗时过长的问题。此外,结果也不是很好。SVM 的分类率仅为 48%。谁能指导我找到一种可以捕获像素级差异以及整体纹理图案的通用算法。
问问题
75 次
1 回答
0
为什么需要通用算法?你有:
- 局部非参数特征(如 LBP)来捕获微观
- 宏观特征(如角检测器、筛选器)
- 整体几何不变统计(如直方图、傅里叶变换等)
只需计算所有特征,将它们连接到一个向量中,这个向量就是您想要的结果。您不需要单一的智能算法。成功的关键是许多“简单”算法的组合(串联)。
如果您遇到速度问题(您的特征向量太长),请尝试在 SVM 之前使用PCA 。它将以您丢失“最少信息量”的方式减小向量的大小。PCA 可以轻松地将向量的长度减少 10 倍。PCA 运行时间相对较快(仅乘以 2D 矩阵)。
如果即使您确定使用了良好的功能,识别率仍然很低,请尝试ITML。ITML 在 PCA 之后使用,它也是二维矩阵的乘法。ITML 是一种“规范化每个特征的影响并抵消特征的非常大或非常小的值范围的影响”的方法。
通常,如果您使用良好的功能,运行 PCA、ITML 而不是 SVM - 即使在困难的计算机视觉任务上也应该获得良好的结果
于 2015-05-31T06:43:07.800 回答