Sketch Tokens: A Learned Mid-level Representation for Contour and Object Detection
作者从人工绘制的边界图中提取关键信息,如straight line, junction, curves and parallel lines(见下图)
作者将这些关键边界信息称之为sketch tokens,作者认为我们可以使用这些tokens来完成所有边界图的绘制。
接下来,作者分析图像的边界信息是否可以由这些tokens来进行描述,如何来做呢?采用分类器,从而给出
每一点属于某个token的概率。接下来我们详细分析,如何提取tokens,以及如何使用属于某个token的概率
作为特征进行目标检测。
定义sketch token 类别
我们的目的就是要定义一系列token类别,使其能够代表在一副图像中存在的任意局部边界结构,其中包括straight lines, t-junctions, y-junctions,curves and parallel lines.
现假设我们有一系列图像以及其对应的手绘边界(人工绘制的边界信息)。我们依靠聚类从二值图中抽取的patches 来获得sketch token classes。从二值图抽取的patch 有一个固定的大小。除此之外,仅有那些在中心像素上含有边界的patchs被使用。接下来,必然是得到关于patch的特征描述,作者使用Daisy descriptors(在二值图上提取),然后使用k-means进行聚类,从而得到sketch token classes。
有了sketch token classes后,我们还需要做什么呢?不可否认,我们需要判断一副图像中每一点是否属于某个sketch token,如果属于某个token class,我们就可以认为这个点是边界点。
在自然图像上抽取patch的特征
作者使用分类器的思想来判断每个点是否应该是边界点。既然采用分类器,则必然涉及到特征提取。现在再次巩固一下概念,我们认为所有属于某个sketch token的patch是正样本,其余的是负样本,对于每个正样本patch在自然图像上提取特征,从而我们能够获得K 个分类器,每个分类器判断是否当前点属于这个分类器的sketch token。
在patch 上的特征提取方式见论文。
Contour detection
现在我们已经有K个分类器,用于判断每个像素点是否属于某个sketch token。如果是patch属于token 概率。并且是属于"no contour" 类别的概率,从而某个patch 的中心点处含有一个 contour 的概率是:
然后使用非极大值抑制机制来发现一个边界。
Object detection
使用sketch token作为附加特征进行object detection
参考文献
Joseph J.Lim Sketch Tokens: A Learned Mid-level Representation for Contour and Object Detection