论文阅读-《Objects as context for part detection》
来源:互联网 发布:prolink ii软件下载 编辑:程序博客网 时间:2024/06/11 03:22
Abel Gonzalez-Garcia arxiv 28/3/2017
Abstract
本文提出了一种利用object context信息的part detection的方法。作者主要用到了三种object-level的信息:object class–object appearance–relative location of parts in objects
其中object class以及object appearance能够帮助确定可能会出现哪些种类的parts。另外,一般part在object里面出现的位置都是有特点的(轮子一般出现在车的下部,头一般出现在动物的上部),因此这三种object-level的信息,其实都对part的分类有帮助。
作者提出了自己的方法,结合和以上三种object-level的信息,提高了part detection的准确度(相比没有结合object-level context)
Framework
整体的网络框架如上图所示。前面的base cnn用的是fast rcnn的基本框架,proposal的方法采用的是selective search。每一个part proposal对应一个object proposal(supporting object proposal),照例提取part appearance feature和object appearance feature,然后将object proposal通过fast rcnn得到object class scores,这三个拼起来作为part representation,一个brach输入一个classification layer得到initial part class scores,另外一个branch做box regression。另外一方面,supporting object proposal通过一个Offset Net,输出这个object proposal里面对应于各个part class的suggest windows,然后计算之前的part proposal和这些suggest windows的relative location score,得到另外一个part class scores,和之前initial part class scores结合起来,得到最终的final part scores。下面将一一介绍各个component。
1.supporting proposal selection
因为作者的框架里面结合了object level的信息,在进行part detection的时候,每一个part proposal都需要对应一个object proposal来提供object context信息。这个object proposal称为supporting object proposal,他的选择主要考虑两点:首先这个object proposal要包含这个part proposal,其次这个object proposal要包含这个part对应的object。作者通过下式选择最好的supporting object proposal
其中p表示某一个特定的part proposal, (S(p)) 表示包含p的object proposal set.
上图表示一些supporting object proposal的例子,对于不同的part proposal,supporting object proposal也不一样。
2.object class
object class提供了这个object里面可能存在什么part,作者直接将supporting object proposal对应的object class score整合进part representation了。
3.object appearance
object appearance可以带来比object class更加detailed的信息,比如我们知道object proposal是车的时候,我们知道part有可能是轮子,但是如果我们进一步知道车的样子,比如车是侧面朝我们的,那么我们基本可以知道车有两个轮子在图里面。作者把supporting object proposal经过两个fc层得到的feature作者object appearance的信息整个到part representation里面。
3.Adding relative location
part出现在object里面的位置都是distinct和characteristic的。下图表示训练集上面part位置的heatmap,映证了上面part位置规律性的观点。我们可以将这种part相对object的位置信息利用起来。
作者将relative location信息整合进模型的方法是利用这种relative location信息对part proposal进行score,计算得到一个新的part class scores,这一scores只取决于part proposal相对于object proposal的相对位置。
具体的,给定一个object proposal,假设这个object proposal对应一些suggesting windows
其中,
下面介绍两种生成suggest window的方法,一种是通过nearest neighbor生成,一种是通过作者设计的OffsetNet生成。
3.1 nearest neighbor(NN)
利用最近邻方法的基本思想是,对于长得相似的object proposal,他们的part proposal通常相对object proposal的位置也是差不多的。
因此具体的实施办法就是对于训练集中的每一种object-class和part-class的组合,创建一个特征-window的组合:
测试的时候,给定一个object proposal,通过计算和训练集里面object proposal的特征相似度,找到L个最相似的邻居,这些邻居的suggest window全部采用作为这个object proposal的suggest window,每一个window的置信度
下面这张图表示NN的工作过程
3.2 OffsetNet
使用nearest neighbor用两个不好的地方:首先我们需要存储训练集里面每一个object box的特征以及对应的window,其次测试的时候需要进行很多次的距离计算。所以从时间复杂度和占用空间来看,NN都不是很适合。
作者提出了OffsetNet,对每一个输出的object proposal,直接回归对应的suggest windows。具体的来说,对于输入的object proposal,OffsetNet输出一系列4D vector,每一个vector就表示一个suggest window。对于每一种part class,输出的vector的数目取决于在训练集中统计的mode的数量,比如对于car这个object和wheel这个part,训练集里面一辆车最多出现3个轮子,那么这个mode就是3,。这样能保证所有可能存在的object-part组合都能通过回归得到。但是对于每一张特征的图像,并不是所有的object-part都会出现,因此对于每一个预测的4D vector,OffsetNet还预测了一个置信度。这样一来,OffsetNet预测的object-part其实就是可变的了。
测试的时候,给定一个输入的object proposal,预测得到一系列4D offset vector,也就得到一系列suggest windows,这些windows的置信度就是每一个vector的置信度,通过计算
下面这张图表示OffsetNet的输出的特定类别的suggest window的结果
Implementation details
1.Proposals
作者采用selective search生成object proposal和part proposal,对于一张图,大概3000个part proposal和2000个object proposal。
2.Training the part detection network
训练的时候现在imagenet上预训练,然后在pascal-voc上做object detection的fine-tune,在pascal-part上做part detection的fine-tune。整个框架里面,object class branch以及supporting proposal selection是以fast rcnn的方式先训练好的,然后object appearance branch是和part detection一起joint训练的。
3.Traning OffsetNet
OffsetNet训练同时需要object sample以及part sample。object sample是所有的gt以及和gt的IOU大于0.7的object proposal,part sample只是所有的gt。对于每一个part gt,找到包含它的object sample,分配给离他最近的mode。这样就可以训练了。作者说了,OffsetNet是单独的一个网络,只不过之前框图里面为了简单起见,画的和其他网络共用前面的卷积层了
Experiments
作者主要还是在pascal-part数据集上做实验,自己对数据集做了一些处理,得到最后一共16个object class和106个part class。结果如下:
可以看到,通过改变不同的component的组合方式,一一映证了作者的观点。
Runtime
作者在Titan X上进行实验,baseline 4.3s/image 作者的模型7.1s/image。可以看到时间还是很慢的,还有很大的提升空间。
- 论文阅读-《Objects as context for part detection》
- 论文阅读(3)--SPDA-CNN: Unifying Semantic Part Detection and Abstraction for Fine-grained Recognition
- 论文阅读笔记 SPDA-CNN: Unifying Semantic Part Detection and Abstraction for Fine-grained Recognition
- 论文阅读-《Deformable Part-based Fully Convolutional Network for Object Detection》
- 论文阅读-《Relation Networks for Object Detection》
- What makes for Effective detection proposals?论文阅读笔记
- 论文阅读-《Focal Loss for Dense Object Detection》
- 论文阅读:Deep Neural Networks for Object Detection
- [论文阅读] Focal Loss for Dense Object Detection
- 【论文阅读笔记】Segmentation as Selective Search for Object Recognition
- 形变目标识别DPM论文《Object Detection with Discriminatively Trained Part Based Models》阅读笔记
- 论文提要“Part-based R-CNNs for Fine-grained Category Detection”
- 阅读图像显著性检测论文四:Saliency Filters Contrast Based Filtering for Salient Region Detection
- 论文阅读-《RON-Reverse Connection with Objectness Prior Networks for Object Detection》
- 经典论文阅读——A Convolutional Neural Network Cascade for Face Detection
- 论文阅读-《CoupleNet:Coupling Global Structure with Local Parts for Object Detection》
- 论文阅读:RCNN[Rich feature hierarchies for accurate object detection and semantic segmentation]
- 论文阅读——Generic and Scalable Framework for Automated Time-series Anomaly Detection
- V3.0 完善代码,按条件计算分页,按条件分页查询
- Swift
- AF如何支持ipv6?
- ipython notebook
- 在eclipse里面能正常启动TomCat,却无法单独启动
- 论文阅读-《Objects as context for part detection》
- Ajax跨域的终极解决方案
- 欢迎使用CSDN-markdown编辑器
- NetworkStateView:界面多状态加载
- PCI Express非透明桥在多处理器系统中的应用
- 利用QT的QThread将一个类中的成员函数转到线程下执行
- CODE【VS】2809 盗窃-月之眼
- ajaxFileUpload :jQuery.handleError is not a function的解决方法
- 198. House Robber