实时字幕生成原理挖掘——论文解读DenseCap: Fully Convolutional Localization Networks for Dense Captioning
2016-11-05 14:17
555 查看
先来看看denesecap的效果,
对比之前的Image Caption
由单目标变成了多目标。
就好比之前的Image Classfication 发展到 Object Detection
其实Image Caption发展到densecap本质上也是借鉴了Faster RCNN进行Object Detection的手法。在一个前向运算中就完成了 Proposal 和 Caption的工作。
来看下Image Caption的结构
本质上是将Image经过卷积后得到的向量作为LSTM的输入,最后得到一个词的序列。
Faster-RCNN的结构可参考我的博客
http://blog.csdn.net/sunyiyou9/article/details/52434541,较为详细的介绍了Faster RCNN中的关键部分RPN网络的工作机理。
而RPN网络便是将单目标任务变成多目标任务的大杀器。
Image Caption + Faster RCNN = densecap
本文主要讲解粉色框图Localisation Layer的工作机理。
Localisation Layer接收原始图像经过VGG16处理以后的C x W’ x H’特征向量,最终目标是处理成B x C x X x Y大小的区域特征,经过几个全连接层后处理成B x D大小的可供LSTM处理的向量,最终生成语句。其中B是proposal的数量,C、D、X、Y、W’、H’都是固定大小的数值,由网络结构确定。
其中工作的难点集中在两个,其一是如何去筛选合格的proposal来提交给LSTM,滑动窗口千千万,最后我只要三百。其二是将大小不同的proposal映射到相同大小的X x Y窗口,毕竟LSTM只接受固定大小的输入,而且要保证该过程使误差可反向传播。
最终海选pk,选出最牛逼的B个proposal参加最后的决赛。
那在这里呢,作者采用了一个名为双线性插值法的映射方法来替代ROI Pooling layer, 原因是ROI pooling Layer确实可以反向传播误差,但只能训练原有的特征,不能训练特征的坐标。这下牛逼了,连映射函数都能训练了。原话是Gradients can be propagated backward from the output features to the
input features, but not to the input proposal coordinates.
在图中的粉色框框右上角,可以看到有个叫Sampling Grid的东东,大小是B x X x Y x 2,那么也就是说每个proposal都单独享有一组映射参数X x Y x 2,这组参数就能将W’ x H’映射到X x Y。其实非常容易理解,看paper的公式是这么写的,
一脸懵逼.jpg。其实说白了就是在X x Y位置上都存了一个W’ x H’的x,y坐标,然后就有X x Y x 2个参数了,映射的时候,就在X x Y对应位置上去找那个坐标就完事了,简单粗暴。
那么这个映射坐标是怎么来的呢,这个叫做双线性插值法,自行百度,十分容易理解,在这里就不花大篇幅粘贴别人的东西了。
最后把这些proposal特征输送个全连接层,再把锅甩给LSTM,就能生成十分naive的句子啦。
对比之前的Image Caption
由单目标变成了多目标。
就好比之前的Image Classfication 发展到 Object Detection
其实Image Caption发展到densecap本质上也是借鉴了Faster RCNN进行Object Detection的手法。在一个前向运算中就完成了 Proposal 和 Caption的工作。
来看下Image Caption的结构
本质上是将Image经过卷积后得到的向量作为LSTM的输入,最后得到一个词的序列。
Faster-RCNN的结构可参考我的博客
http://blog.csdn.net/sunyiyou9/article/details/52434541,较为详细的介绍了Faster RCNN中的关键部分RPN网络的工作机理。
而RPN网络便是将单目标任务变成多目标任务的大杀器。
Image Caption + Faster RCNN = densecap
本文主要讲解粉色框图Localisation Layer的工作机理。
Localisation Layer接收原始图像经过VGG16处理以后的C x W’ x H’特征向量,最终目标是处理成B x C x X x Y大小的区域特征,经过几个全连接层后处理成B x D大小的可供LSTM处理的向量,最终生成语句。其中B是proposal的数量,C、D、X、Y、W’、H’都是固定大小的数值,由网络结构确定。
其中工作的难点集中在两个,其一是如何去筛选合格的proposal来提交给LSTM,滑动窗口千千万,最后我只要三百。其二是将大小不同的proposal映射到相同大小的X x Y窗口,毕竟LSTM只接受固定大小的输入,而且要保证该过程使误差可反向传播。
1.筛选proposal
该部分的讲解与RPN网络讲解类似,可作参考http://blog.csdn.net/sunyiyou9/article/details/52434541。首先在W’ x H’个位置上生成k个大小形状不同的anchor,anchor的概念可参考http://blog.csdn.net/sunyiyou9/article/details/52264338,anchor的位置偏移x,y、形状偏移w,h加上score评分最终生成5k x W’ x H’个参数,在这么多anchor中,与groudtruth计算重合度,超过0.7就认为是前景positive,低于0.3就认为是背景negative,并以此训练,score就能被训练成判断前景还是背景的一个分值。最终海选pk,选出最牛逼的B个proposal参加最后的决赛。
2.双线性插值
proposal出来了以后,形状不一大小不一,如何映射到相同的框框X x Y呢,在Faster RCNN中,采用的办法叫做ROI Pooling Layer,它呢就是根据proposal的大小,选取不同大小的pooling窗口,最后的结果都是X x Y。那在这里呢,作者采用了一个名为双线性插值法的映射方法来替代ROI Pooling layer, 原因是ROI pooling Layer确实可以反向传播误差,但只能训练原有的特征,不能训练特征的坐标。这下牛逼了,连映射函数都能训练了。原话是Gradients can be propagated backward from the output features to the
input features, but not to the input proposal coordinates.
在图中的粉色框框右上角,可以看到有个叫Sampling Grid的东东,大小是B x X x Y x 2,那么也就是说每个proposal都单独享有一组映射参数X x Y x 2,这组参数就能将W’ x H’映射到X x Y。其实非常容易理解,看paper的公式是这么写的,
一脸懵逼.jpg。其实说白了就是在X x Y位置上都存了一个W’ x H’的x,y坐标,然后就有X x Y x 2个参数了,映射的时候,就在X x Y对应位置上去找那个坐标就完事了,简单粗暴。
那么这个映射坐标是怎么来的呢,这个叫做双线性插值法,自行百度,十分容易理解,在这里就不花大篇幅粘贴别人的东西了。
最后把这些proposal特征输送个全连接层,再把锅甩给LSTM,就能生成十分naive的句子啦。
相关文章推荐
- 论文笔记之---DenseCap:Fully Convolutional Localization Networks for Dense Captioning
- 论文笔记 DenseCap: Fully Convolutional Localization Networks for Dense Captioning
- DenseCap:Fully Convolutional Localization Networks for Dense Captioning
- 论文笔记之:Fully Convolutional Attention Localization Networks: Efficient Attention Localization for Fine-Grained Recognition
- [论文解读] MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications
- 深度学习论文随记(二)---VGGNet模型解读-2014年(Very Deep Convolutional Networks for Large-Scale Image Recognition)
- 【论文笔记】Fully Convolutional Networks for Semantic Segmentation
- [深度学习论文笔记][Semantic Segmentation] Fully Convolutional Networks for Semantic Segmentation
- Convolutional Neural Networks for Sentence Classification论文解读
- 论文《Fully Convolutional Networks for Semantic Segmentation》
- 全卷积(FCN)论文阅读笔记:Fully Convolutional Networks for Semantic Segmentation
- 【论文笔记】Fully Convolutional Networks for Semantic Segmentation
- 论文笔记--Fully Convolutional Networks for Semantic Segmentation
- [深度学习论文阅读]Fully Convolutional Networks for Semantic Segmentation(FCN网络)
- 论文(1) Fully Convolutional NetWorks for Semantic Segmentation
- 全卷积(FCN)论文阅读笔记:Fully Convolutional Networks for Semantic Segmentation
- 论文笔记: Fully Convolutional Networks for Semantic Segmentation
- 论文笔记之Fully Convolutional Networks for Semantic Segmentation
- 论文阅读笔记:Fully Convolutional Networks for Semantic Segmentation
- CV论文笔记(三)Convolutional-De-Convolutional Networks for Precise Temporal Action Localization in Untrimm