age*_*Jay 2 image-processing object-detection computer-vision image-segmentation
像SLIC这样的图像分割算法有什么意义?大多数对象检测算法无论如何都适用于整个(方形)子图像集.
分割图像的唯一可想到的好处是,现在,分类器具有可用的形状信息.是对的吗?
我所知道的大多数分类器都采用矩形输入图像.哪些分类器允许您将可变大小的图像片段传递给它们?
首先,SLIC和我猜你所指的算法类型不是分段算法,它们是分段算法.这两个术语之间存在差异.分割方法分割图像对象而oversegmentation方法拆分在小图像群(具有类似的特征的像素的空间上相邻的基团),这些簇通常称为超像素.请参阅下面的超像的图像**:
现在,回答原始问题的部分内容:
它们减少了数据的维度/问题的复杂性.从N = w x h
像素到M
超像素,用M << N
.对于由N = 320x480 = 153600
像素组成的图像,M = 400
或者M = 800
超像素似乎足以对其进行过分析.现在,让后者为如何划分他们,只是考虑如何更方便您的问题已成为从减少N=100K
到N=800
训练实例来训练/分类.超像素仍能正确表示您的数据,因为它们符合图像边界.
它们允许您计算更复杂的功能.对于像素,您只能计算一些简单的统计数据,或使用滤镜库/特征提取器来提取其附近的某些特征.然而,这在很大程度上代表了像素的邻居,而没有考虑上下文.使用超像素,您可以从属于它的所有像素计算超像素描述符.也就是说,通常像以前一样在像素级计算特征,但是,然后通过不同的方法将特征合并到超像素描述符中.一些方法是:超像素内的所有像素的简单均值,直方图,词袋,相关性.举个简单的例子,假设你只考虑灰度作为你的特征图像/分类器,如果你使用简单的像素,你所拥有的只是像素的强度,这是非常局部和嘈杂的.如果使用超像素,则可以计算内部所有像素强度的直方图,这比单个局部强度值描述的区域要好得多.
它们允许您计算新功能.在超像素上,您可以计算一些区域统计数据(第一顺序为均值或方差或二阶协方差).您现在可以提取之前没有的其他信息(例如形状,长度,直径,面积......).
在步骤中2.
,通过平均,使用直方图或使用词袋模型,超像素描述符被计算为固定大小(例如,用于直方图的100个区间).因此,最后您将X = N x K
训练数据(N = 100K
像素乘以K
特征)减少到X = M x D
(使用M = 1K
超像素和D
超像素描述符的长度).通常,D > K
但是M << N
,您最终会得到一些区域 /更强大的功能,这些功能可以更好地表示您的数据,并且数据维度更低,这很好,并且可以将问题的复杂性(分类,优化)平均降低2-3个数量级!
您可以计算更复杂(强大)的功能,但是您必须小心使用超像素作为数据表示的方式,时间和内容.您可能会丢失一些信息(例如,您丢失了2D网格)或者如果您没有足够的训练示例,则可能会使问题变得更加困难,因为要素更复杂,并且可能会将线性可分的问题转换为非线性的.
**来自SLIC超像素的图片:http://ivrl.epfl.ch/research/superpixels