CVPR 2019视频描述(video caption)相关论文总结
前几年的video caption论文总结如下:
https://blog.csdn.net/sinat_35177634/article/details/88568491
Streamlined Dense Video Captioning
这篇论文严格来讲是属于video caption的一个分支dense video caption(DVC),如图,在一个长视频中存在很多event,DVC的任务就是先找出这些events,然后对每一个event生成对应的caption。
DVC这个任务从2017CVPR开始被提出,前两年的方法主要将这个任务分成两个模块,proposal和caption,也就是先提取event proposal,再对event进行描述,之前的方法主要集中于如何提高proposal的精度,如何得到更好的能表达event并且融合了上下文的特征。还有的方法集中于如何将这两个模块连接起来,实现端到端的训练或者联合训练,以期利用caption的结果来提高proposal的效果。这些方法都取得了比较好的效果。
这篇文章的作者提到DVC的关键还是再于event之间的关联性,并且提出在生成event对应的caption时考虑的上下文信息不仅要考虑visual的特征还要考虑caption的特征。同时为了达到这个目标需要对proposal进行排序,同时之前的方法在proposal阶段提到的proposal太多了,成百甚至上千,而在数据集activitynet上每个video平均有3.85个event,所以使用这个sequence模块也可以极大的减少proposal的数量,并且在之后的实验中也证明了更接近数据集的proposal数量可以得到更好的效果。
总的来说,论文具体的贡献有三点:对proposal进行排序得到一个episode,并且减少了输入到caption模块的proposal;在caption模块生成序列的caption,也就是不仅考虑前文的visual特征还要考虑caption的特征,得到更加连贯的caption;同时还使用了强化学习的训练方法,reward同样也从event即单独的caption,和episode即连贯整体的caption来考虑。
和之前方法对比示意图如下:
之前的方法独立的提取event,并且独立的对每个event特征生成caption。文章提出的方法,对提取的event进行排序,并且生成序列的caption,加强caption之间的关联。
具体的流程图如下:
EPN模块提取event,使用的是2017 CVPR的SST方法,ESGN模块来对event排序,并且选择event,具体方法使用RNN模型先将候选集中的proposal按照开始的时间顺序排序输入到RNN中,在之后的每步生成对候选集中每个proposal的一个概率,选择概率最大的为当前时间的event,直到输出end event。
在SCN阶段,使用双层RNN模型以event序列做为输入,生成序列的caption,每步不仅要考虑当前event的特征,还要考虑之前的特征,不仅包括visual特征还有caption的特征。并且使用强化学习的方法训练。
EPN的损失函数,使用的是SST方法标准的损失函数:
ESGN损失函数:
a当前第m个proposal为认为是GT序列第n个proposal的概率,这里使用了类似二分交叉上损失。
SCN损失函数:
使用的是强化学习的损失,d为第n个event生成的caption,其中的R为:
包含两个部分:对当前event caption的评价,和整个episode的captions的评价,考虑到了整个caption序列的连贯性。
实验结果如图:
可以看到在使用GT和learnt proposal两方面均有比较大的提升,尤其是GT proposal,这说明生成序列的caption并且使用RL训练是非常有效的。同时也证明了生成序列的proposal不仅减少了proposal的数量,减少了冗余,并且可以得到更接近GTproposal的数量和event。
这篇文章加了event sequence的模块,但是为了训练这个模块需要手动生成GT的event序列,这无疑是费时费力的。同时文章也提到了在生成caption时只使用了之前的上下文特征,因此可以考虑使用双向的RNN来生成caption,因为我们直到当前event不仅于之前的event有关还和之后的有关,并且也可以使用双向SST来提取proposal。
论文链接:https://arxiv.org/pdf/1904.03870.pdf</