The Unreasonable Effectiveness of Noisy Data for Fine-Grained Recognition
paper link: http://cn.arxiv.org/pdf/1511.06789.pdf
dataset: https://github.com/google/goldfinch
What:
同上一篇一样,这也是一篇关于细力度分类的paper。
通过加数据来做fine grain(这是以前大家不太想的。因为finegrain要求的标注难度很高。更不用说加上part或者语义分隔。
所以作者起的题目是unreasonable吧。)
How:
1.抓取类别list
对于鸟和昆虫(磷翅类:蝴蝶和甲虫),分别从wiki上抓了10,982种鸟和14,553种昆虫。
对于aircraft,是人为写了一个409类的list。
对于狗,混合了原来stanford-dog 120类和额外的395类。共515种狗。
2.直接在谷歌图片网站上搜索,获取图片
- 但是应该取多少图片?
- 作者注意到几个趋势:
- 往往数据集中已有的类别图片较多。但数量还是远远少于搜索到的结果。
- 像bird或者aircraft数据集中per class 图片的数量还是很多的。而butterfly不行。
- 数据集在 per class=800的时候都有明显下降。图片数量超过800的class很少。这似乎是一个公开搜索的限制。(因为作者搜集的数据超过800的也很少)
最终作者抓取了超过 9,800,000张图,给26,548 个类别 平均每类370+张图片。
- noise怎么办?
- noise可以分为两类:一类是cross-domain,比如鸟的图片里完全没有鸟;一类是cross-category,比如某种鸟的图像里含有了另一种鸟。
为了量化cross-domain noise,作者人工标注了1000张图片。虽然每一类的cross-domain noise不多,但有一个有趣的关联:随着每一类的图片增多,cross-domain noise在减少。作者得到一个假设,搜索结果其实是一个pool从中得到搜索结果,因此搜索结果慢慢变得准确率高了。
而cross-category noise就难了。(缺乏细力度的标注)作者用了最简单的办法,排除那些搜索结果重复的图片。(搜鹦鹉你出现了,搜犀鸟你又出现了,那你就是流氓)
小结:作者说他们也用过一些技术去除cross-domain,但是发现对结果影响不太重要。所以他们后来就保留了这些noise,主要去除cross-category
3.active learning
另外,作者还提出了一种收集数据集的方法。noise data+annotation。 在学习过程中慢慢加入新的图片。
sample selection: 是按照预先训练好的分类器的置信度分布去采样的,一般高conf的样本对的多。
而不是采样那些uncertain的图片(因为不确定的图片往往质量也不好,所以才被分在边界上嘛)
human annotation:
作者还设计了一个交互界面。
小结:文章整体提供了一个抓数据的方案。细节都make sense 的~