视频指标检测
卷积神经网络在指标检测中施展出重要作用[1,2,3,4,5]。
近期,新的网络结构[6,7]使得指标检测算法能够运行在计算力更低的硬件平台,并且性能足够媲美先进单幅图像指标检测算法。
而后,视频给指标检测带来了额定的时空线索,如何利用这一线索设计更好的视频指标检测框架称为目前的次要挑战。
那么能够利用的时空线索有哪些:
- 因为视频的工夫连续性,相邻帧中的指标在地位上具备相似性,且不会产生实质性变动。
- 多帧之间能够反映指标的不同姿势,有利于精确定位指标。
- 工夫线可能晋升指标检测的置信度,减少检测稳定性[8]。
<!-- -->
Bottleneck-LSTM 一种疾速LSTM
长短期记忆网络(LSTM)[9]是一种宽泛应用的时序数据处理网络,构造如下图所示,其中$\odot$是Hadamard Product,也就是操作矩阵中对应的元素相乘,因而要求两个相乘矩阵是同型的,$\oplus$代表矩阵加法。
Convolutional LSTM是LSTM的一个非凡变种,应用3D隐层状态,并将门(Gate)计算替换为卷积层(Convolutional Layer),如此使得LSTM可能同时编码时空信息。
间接将Convolutional LSTM嵌入到指标检测网络会大幅减少计算量 ,解决这一问题的形式就是应用Bottleneck-LSTM,Bottleneck-LSTM应用深度可拆散卷积(Depthwise Separable Convolutions)以及非凡设计的Bottleneck门。
咱们将图像思考为间断图像帧的序列$V=\{I_0,I_1,...,I_n\}$。
视频检测的目标是失去每一帧的检测后果$\{D_0,D_1,...,D_n\}$,其中$D_k$是$I_k$帧中一系列的预测指标外包矩形框和预测类别。
在线视频指标检测认为$D_k$仅能从$I_k$帧与之前的图像帧中进行计算。
预测模型能够看作这样一个函数$F(I_t,s_{t-1})=(D_t,s_t)$,其中$s_k=\{s_k^0,s_k^1,...,s_k^{m-1}\}$是形容$k$帧与之前的特色图向量。
$m$层LSTM的神经网络用来迫近这一函数,$s_{t-1}$的每个特色图作为LSTM的状态输出,LSTM的输入状态为$s_t$的特色图。
LSTM对特色的细化
令单幅图像指标检测器为函数$D_t=G(I_t)$。在LSTM视频检测器中,$m$个LSTM将$G$划分为$m+1$个子网络${g_0,g_1,...,g_m}$,并满足:
$G(I_t)=(g_m \circ \cdots \circ g_1 \circ g_0)(I_t)$
将每一个LSTM层$L_0,L1,...,L_{m-1}$定义为函数$L_k(M,s_{t-1}^k)=(M_+,s_t^k)$,其中$M$和$M+$为雷同维度的特色图。则计算过程如下
下图给出了这一计算过程的可视化:
将LSTM单元嵌入到检测网络中的哪些层须要认真探讨,如果嵌入到晚期的一些特色层上,会面临很大计算压力。试验局部也给出了证实,嵌入到SSD网络的Conv 13之后是一个较好的抉择。SSD网络结构如下表所示:
然而咱们还须要思考如下的嵌入形式:
- 在Conv 13之后嵌入单个LSTM
- 在Conv 13之后嵌入重叠的多个LSTM
- 在每个特色图后嵌入1个LSTM
先来解答这个问题吧。
- 单层LSTM放在哪成果最好?下表展现这一问题的试验后果,将单个LSTM放在模型的不同层,能够看出单层LSTM嵌入到Conv 13层是成果最好的。
- 多层LSTM如何搁置成果最好?因为同时训练多个LSTM十分艰难,在逐渐增加层的同时,对之前的训练权重进行微调。
因为高层特色的维度更低,减少的计算量并不多。重叠2层LSTM并没有取得好的收益。
Conv 13,FM1,FM2,FM3之后嵌入LSTM单元是一个不错的抉择。
扩大宽度乘数
LSTM计算复杂度高,因为须要计算一系列门。对此,首先想到通道(Channel)降维,给通道一个乘数因子$\alpha$[6]。
定义3个乘数$\alpha_{base},\alpha_{ssd},\alpha_{lstm}$别离管制网络的不同局部。
对于任何MobileNet的输入通道$N$,使其输入为$N\times \alpha_{base}$。
$\alpha_{ssd}$管制所有SSD特色图的通道数,$\alpha_{lstm}$管制LSTM层的特色数。
在试验局部,令$\alpha_{base}=\alpha$,$\alpha_{ssd}=0.5\alpha$,$\alpha_{lstm}=0.25\alpha$。
Bottleneck-LSTM详解
令$M$和$N$别离代表LSTM的输出与输入通道数。因为Convolutional LSTM的具体实现有不同版本[10,11],定义规范Convolutional LSTM如下:
$x_t$和$h_{t-1}$是3D特色图,并将它们按通道连贯。$h_t$和$c_t$为输入特色图。
$^jW^k\star X$示意输出为$X$,参数为$W$的深度可拆散卷积(Depthwise Separable Convolution),输出通道数为$j$,输入通道数为$k$,$\phi(x)=ReLU(x)$为激活函数,$\circ$示意逐元素乘(Hadamard product)。
留神:应用深度可拆散卷积可能无效缩小8-9倍计算量,ReLU尽管不罕用于LSTM,咱们发现不扭转映射的边界很重要,因为这里的LSTM是夹在卷积层两头的。
此外,这里的LSTM输入通道数小于输出通道数,咱们批改如下公式以压缩特色通道数:
$b_t=\phi(^{(M+N)}W_b^N\star [x_t,h_{t-1}])$
如此$b_t$替换了所有其余门的输出,如下图所示,这被称为Bottleneck-LSTM。无效升高计算量,理论体现成果更好。
令输出特色图空间分辨率为$D_F\times D_F$,深度可拆散卷积核大小为$D_K\times D_K$,咱们比照一下规范Convolutional LSTM与Bottleneck-LSTM的计算量:
- Convolutional LSTM(GRU是其计算量的3/4)
$4(D_K^2\cdot (M+N)\cdot D_F^2+(M+N)\cdot N\cdot D_F^2)$
- Bottleneck-LSTM
$D_K^2\cdot (M+N)\cdot D_F^2+(M+N)\cdot N\cdot D_F^2+4(D_K^2\cdot N\cdot D_F^2+N^2\cdot D_F^2)$
设$D_K=3$,令$k=\frac{M}{N}$。$k>\frac{1}{3}$时,Bottleneck-LSTM就能够超过Convolutional LSTM,$k=4$时,Bottleneck-LSTM成为不二之选。
算法实现细节
训练与评估的数据集是ImageNet VID 2015。LSTM按时序开展10步,即10帧图像参加LSTM时序建模。
训练两种乘数模型,别离是$\alpha=1$和$\alpha=0.5$。
$\alpha=1$时,输出图像分辨率为$320\times 320$,学习率为0.003;$\alpha=0.5$时,输出图像分辨率为$256\times 256$,学习率为0.002。
艰难负样本开掘与数据加强策略参考文献[4]。10个负样本对应1个正样本,且负样本损失乘以0.3。
为了应答过拟合,训练网络时采纳两个阶段步骤。
首先,不嵌入LSTM网络,微调SSD网络。而后解冻骨干网络参数,直到Conv 13层,且包含Conv 13层,接着,嵌入LSTM网络,实现之后的训练过程。
最初,给出一张与单幅图像指标检测器的比照后果,提高还是比拟可观,当然,也并没有质的飞跃==。
参考
[1] R. Girshick, J. Donahue, T. Darrell, and J. Malik. Rich feature hierarchies for accurate object detection and semantic segmentation. In CVPR, 2014. 1, 2
[2] K. He, X. Zhang, S. Ren, and J. Sun. Spatial pyramid pooling in deep convolutional networks for visual recognition. In ECCV, 2014. 1
[3] J. Dai, Y. Li, K. He, and J. Sun. R-fcn: Object detection via region-based fully convolutional networks. In NIPS, 2016. 1, 2
[4] W. Liu, D. Anguelov, D. Erhan, C. Szegedy, S. Reed, C.-Y. Fu, and A. C. Berg. Ssd: Single shot multibox detector. In ECCV, 2016. 1, 2, 5
[5] S. Ren, K. He, R. Girshick, and J. Sun. Faster r-cnn: Towards real-time object detection with region proposal networks. In NIPS, 2015. 1, 2
[6] A. Howard, M. Zhu, B. Chen, D. Kalenichenko, W. Wang, T. Weyand, M. Andreetto, and H. Adam. Mobilenets: Efficient convolutional neural networks for mobile vision applications. arXiv preprint arXiv:1704.04861, 2017. 1, 3, 4
[7] X. Zhang, X. Zhou, M. Lin, and J. Sun. Shufflenet: An extremely efficient convolutional neural network for mobile devices. arXiv preprint arXiv:1707.01083, 2017. 1, 3
[8] C. Szegedy, W. Zaremba, I. Sutskever, J. Bruna, D. Erhan, I. Goodfellow, and R. Fergus. Intriguing properties of neural networks. arXiv preprint arXiv:1312.6199, 2013. 1
[9] S. Hochreiter and J. Schmidhuber. Long short-term memory. Neural Computation, 9(8):1735–1780, 1997. 3
[10] V. Patraucean, A. Handa, and R. Cipolla. Spatio-temporal video autoencoder with differentiable memory. arXiv preprint arXiv:1511.06309, 2015. 3, 4
[11] X. Shi, Z. Chen, H. Wang, D. Yeung, W. Wong, and W. Woo. Convolutional lstm network: A machine learning approach for precipitation nowcasting. In NIPS, 2015. 3, 4