深度学习-视频检测记录(1)

从MSRA的deep feature flow开始

你好! 从各路大神的思考中收集了一些思路,准备以MSRA的Deep Feature Flow for Video Recognition来作为视频深度学习的入门。

1 论文解读

论文中说image content varies slowly over consecutive video frames, especially the high level semantics,可以用来减少computation cost。
根据Visualizing and Understanding Convolutional Neural Networks的理论,The intermediate convolutional feature maps have the same spatial extent of the input image. They also preserve the spatial correspondences between the low level image content and middle-to-high level semantic concepts. 这就提供了在相邻帧之间廉价传播特征的机会。(对于这个理论的解读,链接: link。此文章通过反卷积可视化中间层特征。可视化工具:toolbox:yosinski/deep-visualization-toolbox)
本文引入了deep feature flow:a fast and accurate approach for video recognition。利用相邻帧之间的一致性,只在关键帧上做图像识别,然后将这些深度特征传播到其他帧上。用flow estimate 和 feature propagation来代替直接convolution。

1.1 模型加速

论文的目的主要是减少video recognition的计算开销。但是前人对于单帧图像识别模型加速的研究已经有很多了,例如低秩约束(link),和权值量化。
如果后续有时间,可以通过link来研究低秩约束的加速理论。下面主要讨论权值量化部分,也是较为常讨论的模型压缩方法之一。

BinaryConnect: Training Deep Neural Networks with binary weights during propagations
1.尽管模型精度降低了非常多,但是在训练效果却不比全精度的网络差,有的时候二值网络的训练效果甚至会超越全精度网络,因为二值化过程给神经网络带来了noise,像dropout一样,反而是一种regularization,可以部分避免网络的overfitting。
2.二值化网络可以把单精度乘法变成位操作,这大大地减少了训练过程中的运算复杂度。这种位运算可以写成gpu kernel, 或者用fpga实现,会给神经网络训练速度带来提升。
3.存储神经网络模型主要是存储weights. 二值化的weight只要一个bit就可以存下来了,相比之前的32bit,模型减小了32倍,那么把训练好的模型放在移动设备,比如手机上面做测试就比较容易了。

XNOR-Net: ImageNet Classification Using Binary Convolutional Neural Networks
XNOR网络,其中卷积层、全连接层的权重以及网络的输入都进行二值化。 二值化的权重和二值化的输入可以有效地实现卷积运算。如果卷积运算的所有操作数都是二值(1和-1)的,那么可以通过XNOR(异或非门)和位计数操作来估计卷积。XNOR-Nets可以精确地近似CNN,同时在CPU中提高58倍计算速度。

1.2 光流

optical flow(光流):即相邻帧之间像素运动的瞬时速率。它是空间运动物体在观察成像平面上的像素运动的瞬时速度,是利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在的对应关系,从而计算出相邻帧之间物体的运动信息的一种方法。光流法有两个假设,1)同一物体在不同帧之间运动时,像素亮度不会发生改变。2)相邻帧之间同一目标位移较小,时间变化不会引起目标的剧烈变化。

Lucas-Kanade(LK)光流法
LK算法的约束条件即:小速度,亮度不变以及区域一致性都是较强的假设,并不很容易得到满足。如当物体运动速度较快时,假设不成立,那么后续的假设就会有较大的偏差,使得最终求出的光流值有较大的误差。图像金字塔可以解决这个问题。
考虑物体的运动速度较大时,算法会出现较大的误差。那么就希望能减少图像中物体的运动速度。一个直观的方法就是,缩小图像的尺寸。假设当图像为400×400时,物体速度为[16 16],那么图像缩小为200×200时,速度变为[8,8]。缩小为100*100时,速度减少到[4,4]。所以在源图像缩放了很多以后,原算法又变得适用了。所以光流可以通过生成 原图像的金字塔图像,逐层求解,不断精确来求得。简单来说上层金字塔(低分辨率)中的一个像素可以代表下层的四个。
图片求导计算公式可参考link

1.3 Temporal Dimension in Video Recognition

将视频中的时间信息代入图像检测中,以增加检测的准确性。例如可以将检测结果应用于相邻帧,减少错误的检测和漏测。因为由于运动造成的遮挡或者大姿态,非常容易造成在该帧中检测不出来。
下图为T-CNN的框架结构。
在这里插入图片描述

1.3.1 Still-image object detection.

我们的静态图像对象检测器采用DeepID-Net [8]和CRAFT [32]框架,并通过ILSVRC2015的ImageNet检测(DET)和视频(VID)训练数据集训练.。DeepID-Net [8]是R-CNN的扩展[3],CRAFT是Faster R-CNN的扩展[5]。这两个框架都包含对象区域提案和区域提案评分的步骤。主要的区别是,在CRAFT(也是Faster R-CNN)中,提案生成和分类被组合成一个单一的端到端网络。静态图像对象检测器被应用于各个独立帧。在提出的T-CNN框架中,剩余组件分别对两个静态图像对象检测器框架的结果进行处理。

1.3.2 Multi-context suppression.

此过程首先按降序对视频内的所有静态图像检测分数进行排序。具有高排名的检测分数的类别被视为高置信度类别,其余则被视为低置信度类别。 低置信度类别的检测分数被抑制,以减少false positive。

1.3.3 Motion-guided Propagation.

在静态图像对象检测中,在相邻帧中检测到的对象,在某些帧时可能会丢失某些对象。 运动引导传播使用诸如光流的运动信息来将检测结果局部地传播到相邻帧以减少false negative。

1.3.4 Temporal tubelet re-scoring.

从静态图像检测器的高置信度检测开始,我们首先运行跟踪算法来获得边界框序列,我们称之为tubelet。 然后根据其检测分数的统计,将tubelet分为pisitive和negative样本。 positive分数映射到较高的范围,而negative值则映射到较低的范围,从而提高分数裕量。

1.3.5 Model combination:

对于来自DeepID-Net和CRAFT的两组提案中的每一个,它们的来自于tubelet rescoring和运动引导传播的检测结果,每个最小 - 最大映射到[0,1],并通过与 IOU重叠0.5NMS的过程以获得最终结果。

1.4 deep feature flow

在这里插入图片描述

1.4.1 算法伪代码与公式

在的deep feature flow的思想中,一个image recognition网络被分成两个部分, N

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值