查看原文
其他

【源头活水】经典重温:CVPR 2010 "What is an object?"

这次要介绍的这篇文章可以说是目标检测领域的开山鼻祖之一了(看名字也知道是很牛批的文章),它提出了四个经典的似物度(objectness)度量,到现在依然在启发着许多CV的研究。原文开源的代码是matlab的,为了方便各位用python的同学,我将源代码移植到了python上,有需要的同学们可以follow下面的链接:

https://github.com/RookieHong/python-objectness

作者:啪啪啪

地址:https://www.zhihu.com/people/pa-pa-pa-28-16


现在就要开始正式地讲解这篇论文了。题目已经直入主题:“What is an object?”什么算是一个物体?
对于上图中三个颜色的框,我们应该都同意只有绿色的框才算是框住了物体,红色的框完全歪了,而蓝色的框却偏大了。那么是什么让我们做出了这个判断呢?作者提出了四个清晰直观,并且符合常理的四个度量,分别是:多尺度下的显著性(Multi-scale Saliency),框内外颜色对比度(Color Contrast),靠近框边界的边缘密度(Edge Density),跨越超像素的程度(Superpixels Straddling)。可能现在看起来有点懵,但是接下来我会详细地逐个介绍。

01

Multi-scale Saliency(MS)

这个度量用来找到图像中的显著物体,其中使用的方法来自一篇论文《Saliency Detection A Spectral Residual Approach》,这篇论文发现图像中的显著物体会在频域有着显著响应,所以可以通过谱残差的方式找到这些显著物体。具体怎么做的我们可以不用管,作者在这篇论文的基础上拓展到了多尺度,说白了就是将一张图像resize到多个尺寸,然后分别进行显著性检测,效果如下图所示:
所以包含了越多显著像素的框得分就越高。


02

Color Contrast(CC)

CC这个指标衡量一个框与其周围区域的不相似度,一般来说包含了完整物体的框与其周围区域的颜色是不相似的,如下图所示:
很明显青色的框包裹的更加紧致,而也正是青色的框内外区域的颜色不相似度更高。
这个度量的计算方法是通过计算框内区域w和框周围区域Surr(w)的LAB(一种颜色空间)直方图h的卡方(Chi-square)距离得到的:


03

Edge Density(ED)

ED度量的是靠近框边界的边缘(edge)密度。它的计算方法是看框内部的子区域中有多少像素点被判断为边缘,边缘的检测是通过Canny算子得到的。ED的逻辑也很直观,物体通常都有着闭合的轮廓,所以一个框内的边缘像素点占比越高,它就越可能包含了一个完整的物体。它的效果如下图所示:
可以看到a和b的例子是成功的例子,但是c这个例子却失败了,因为水面的涟漪被大量判断为边缘。

04

Superpixels Straddling(SS)

首先我们要说说超像素Superpixel是个什么东西,这个概念来自于一篇图像分割的论文《Efficient Graph-Based Image Segmentation》。这篇论文中根据各像素的颜色相似度将像素合并起来,于是相似的区域就合并成了一个超像素,最后整张图像就被分割成了很多的超像素,像下面这张图所示:
我们可以看到,超像素能够很好地保留物体的边界。因为理想的情况下,一个超像素内的全部像素应该都是属于同个物体的,所以一个物体可以被分割成很多的超像素,但是不会有超像素同时属于多个物体。根据这个性质,作者设计出了Superpixels Straddling这个度量(这个是文中效果最好的度量)。
作者首先定义了超像素s如何算是横跨(straddle)了一个框w,如果w中和w外都包含了至少一个来自s的像素点,那么这个框就是被s横跨了。所以自然地,一个框被横跨的越少,就说明它的似物度越高,因为一个好的框要么全在超像素里面,要么全在超像素的外面。所以SS可以选择出紧密围绕在物体周围的框。

05

总结

不愧是敢叫这种名字的文章,写的就是十分简洁易懂,清晰明了,每个度量的设计都很insight。对了,这篇论文后来还登在了2012的PAMI上,叫《Measuring the Objectness of Image Windows》。

本文目的在于学术交流,并不代表本公众号赞同其观点或对其内容真实性负责,版权归原作者所有,如有侵权请告知删除。

直播预告




历史文章推荐



分享、点赞、在看,给个三连击呗!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存