coding
unsky
deepdim
thought

hyperNet for object detection

HyperNet: Towards Accurate Region Proposal Generation
and Joint Object Detection
本篇论文发表于2016 IEEE Conference on Computer Vision and Pattern Recognition
论文下载地址:
http://ieeexplore.ieee.org/document/7780467/

HyperNet: Towards Accurate Region Proposal Generation
and Joint Object Detection
本篇论文发表于2016 IEEE Conference on Computer Vision and Pattern Recognition
论文下载地址:
http://ieeexplore.ieee.org/document/7780467/

简介一下物体检测目前最火的框架:

在这两年的物体监测论文发展中,faster r-cnn 属于一篇分水岭是的文章,在此之前,大多延续的框架是region proposal + classification.其主要还是在做分类问题,faster-rcnn框架,第一次提出了 region proposal network,这个区域推荐网络是直接对feature maps做回归,详细点就是对每个sliding window 做k(k is 9 in faster r-cnn) 个anchor的回归.接着这个思想you only look once, ssd直接用回归来做检测问题盛行起来。
总结如下:
经典框架:region proposal +classification
最新框架:regression

论文出发点:

这是一篇2016年的论文,基本是在fast r-cnn的阶段进行研究,对于fast r-cnn有很大的缺点,因为在深度网络的高层使用区域推荐,来产生大量的区域推荐从而进行下一阶段的分类。但是直接在高层做区域提取往往会对小的物体不敏感,意思就是卷没了。在高层可能只剩下很大的物体,所以这些制约了最终的分类性能能。论文原话:
Although the latest Region Proposal Network method gets promising detection
accuracy with several hundred proposals, it still struggles in small-size object detection and precise localization (e.g.,large IoU thresholds), mainly due to the coarseness of its
feature maps.
意思就是就算使用了阈值来进行筛选,区域推荐依然需要推荐出大约2k个窗口来进行强分类。而大量的负样本掺杂在其中,同时小的物体还没有推荐出来。
问题:

  1. 推荐出的窗口太多,限制了速度。同时引入了更多的hard negatives增加了分类的难度。
  2. 因为在高层做卷积,遗失了很多小物体区域。

其实这俩问题属于很经典的问题,作者并没有提出很native的问题,大家基本都围绕这个问题在做工作,看他们怎么做的吧

网络框架:


整体网络结构分成三部分:

  1. Pre-train cnn modal 他使用了vgg16/19的 conv1,conv3和conv5,更高层的conv n 和 fc都被舍弃了。
  2. Network for hyper feature extraction 层级特征提取,这部分主要负责在各层提取特征,然后进行concat(这个idea的思想在ssd也能找到,属于比较好像的idea,提取不出小物体,就在底层提取嘛,,这在 is faster r-cnn is doing well for pedestrian detection 中思想已初见)。
  3. Region proposal generation 部分是论文的核心,在这里使用层级特征来进行区域推荐。
  4. Object detection就是个强分类器阶段。
    以上1-3步骤对应于经典框架的region proposal部分,4步骤对应于classification阶段。
    下来挨个看每一部分。

    Pre-train cnn modal

    没啥好说的,pre-train cnn modal as a feature extractor basing on Transfer learning..

    Network for hyper feature extraction


    目标是为了从各层提出特征进行concat,但是问题来了,拿VGG16来说,底层和高层之间的feature maps size 是很不一样的。怎么进行concat?
    作者解决方法:对每一层使用不同的策略进行特征提取
  5. 对底层,使用max –pool进行下采样
  6. 对中层,啥都不干
  7. 对高层使用deconv进行上采样

讲真,这种策略看起来十分工程化,很不优美。。。
进行完以上的操作需要使用一个卷积操作(上图褐色部分)对他们卷积到同一维度:作者的原话:
The Conv operation not only extracts more semantic features but also compresses them into a uniform space.
意思是,这个卷积操作不止提取了更深的语意信息,而且将multi-level feature 映射到uniform space了。(自我猜想:虽然道理是这么个道理,但是都已经上采样和下采样到中间level为什么不直接使用一个卷积或者直接不用卷积来进行concat 这样三个卷积训练起来会不会很low..)
最终的最终我们需要使用local response normalization (LRN)对concat之后的特征进行正则化,(更加怀疑那三个卷积的怎么更新。。。)
这么做作者说有三个好处:

  1. Multiple levels’ abstraction. Inspired by neuroscience, reasoning across
    multiple levels has been proven beneficial in some computer
    vision problems。神经学说借助多层特征的推理已经被很好的运用于视觉。(明明是玄学)
  2. Appropriate resolution分辨率变合适了,这么concat下来1000600的图片变为250150。
  3. Computation efficiency. All features can be precomputed before region proposal generation and detection module. There is no redundant computation.
    这点我个人是非常赞同的,深究一下,从我们最开始的出发点可以看出。
    如果我们在高层来进行区域推荐,会忽略小目标。
    如果我们在底层进行区域推荐,对于大目标,它本应该进行更深的语义卷积,但这种策略没有做,结果就是丢失了更深层的特征。
    说白了就是,在高层对小目标不好,在底层对大物体不公平。

    Region Proposal Generation


    这一层和rpn回归网络很像,不同的是,其由ROI pooling layer(1313), a Conv layer(33*4) and a Fully Connect (FC) layer(256-d),不同的是其多了一个卷积层。后面的操作都和rpn一样,需要使用阈值来进行极大值抑制(0.7)选1K个窗口,然后选top200进行下一步的操作,也就是最终推荐出200个窗口。
    思考:此网络和rpn网络相似度极高,为什么,它可以很猛的选择top200而rpn不敢?
    Rpn生成的网络推荐的2000个窗口中,可以保证很大的recall,因为有很多正样本和hard nagitives混杂在一起,而此网络可以选择top200而用于很高的recall猜测一方面其得益于concat的特征,或者多了的卷积层(stranger than rpn in classification…)?
    Object Detection

分类器,一个中规中矩的分类,损失函数还是用r-cnn的

训练策略


论文提出了一个6步训练策略,在训练的fineturning阶段可以做到object classification网络和region generation network联合反向更新。

加速策略:


这么做还是太慢了,作者说,主要话费时间的地方是区域生成网络,而区域网络最费时间的地方是对大推向做iou pooling(占了70%的时间)所以坚决策略,先卷积再iou-pooling…

实验:

作为主打区域推荐,当然要计算下recall

可以看到其在200proposal的时候,recall真的提了一大截。很赞。

正确率


速度

论文就结束了.
思考:

对于层级特征目前运用的比较多,作者也将层级特征进行了可视化,从可视化的结果上可以看出对于小物体它有近似放大的效果,这很可能得益于对下层特征进行下采样的结果。
这个模型明显有改进的方法,就是将object detection网络和区域生成网路合并,就成了ssd。。。。哈哈哈天下人的idea都一样。
整体评价:如果不是文章赶得快,这论文在ssd和yolo之后就没有价值了。

坚持原创技术分享,您的支持将鼓励我继续创作!