基于双向递归卷积神经网络的单目红外视频深度估计 下载: 1048次
1 引言
生成图像和视频深度图是计算机视觉领域中的一个基本课题,其中红外视频深度估计问题作为当前热点受到了广泛的关注。红外图像与视频的成像特性决定了其难以从局部细节入手而是通过提取纹理、梯度等特征来进行深度估计。不过,相对于单帧静止的红外图像,红外视频拥有更多可利用的帧间先验信息等动态序列特征。基于此,本文在提取红外视频中每一帧图像特征的同时加入了视频的序列信息,以提取更加丰富且具有表达能力的特征。实验结果表明,基于加入序列信息之后提取到的视频深度特征可以估计出更精确的红外视频深度。
针对图像和视频的深度估计问题,前人已经做了大量的工作,包括使用传统机器学习方法[1-5]、深度学习方法[6-8]以及几何结构方法[9-11]。在彩色图像的深度估计中,通过基于
卷积神经网络(CNN)现已在图像分类[12-14]和目标检测[15-17]等领域获得极大的成功。近来,越来越多的研究工作将其引入到图像深度估计中。许路等[6]将人工提取特征与CNN自动提取的特征相结合,基于得到的图像特征估计图像深度,取得了较好的估计结果。Eigen等[7]提出了一种多尺度的卷积网络用于估计图像深度,该网络有两种特征提取机制,一是从图像全局角度出发提取图像整体特征,二是在全局特征的基础之上精细提取图像各区域的局部特征,通过将两种特征相结合,最终在测试数据上得出满意的结果。Liu等[8]提出了一种基于超像素分割的彩色图像深度估计方法,通过将图像进行超像素分割,然后使用CNN分别提取各个超像素上的特征,估计出每一个超像素的深度。该方法视每一个超像素具有同样的深度,减少了实际估计过程中的计算量,提高了可运用的能力。
循环神经网络(RNN)[18-20]在自然语言处理等序列处理问题上取得了很好的效果。考虑到红外视频深度估计这一问题中既包含对单帧图像的深度特征提取,又要综合视频整体的序列特征,基于此,本文在深度CNN的基础之上引入RNN的序列特征提取递归机制,得到双向递归卷积网络(BrCNN)用于估计红外视频深度。BrCNN包含3个过程:1)通过卷积操作提取红外视频中每一帧图像的局部信息;2)分别通过正向和反向递归传递,将视频的整体信息传至每一帧图像;3)综合每一帧图像已提取的局部信息和视频整体的信息,得到红外视频的深度特征并用于深度估计。在考虑每一帧图像特征的同时,加入了视频序列特征,提高了特征全局表达的能力,降低了图像中因噪声带来的特征不稳定性,并在实验中提高了红外视频深度估计的准确率。
2 递归卷积机制
卷积操作对于单幅图像来说是一个常用且有效的特征提取方式,已广泛地运用在计算机视觉的各个研究领域。深度CNN就是将多层的卷积操作堆叠在一起,通过采样层降低数据的维度,最后将提取到的特征输入进分类器得到结果。在红外视频中如果第
式中
红外视频不仅拥有单帧图像的局部信息,而且也包含大量的序列信息。LSTM(Long short-term memory)[18]是RNN一个非常成功的变体,已广泛地运用在序列处理问题上。基于此,在递归卷积操作中加入了LSTM的设计哲学,使得每一帧图像的特征中都蕴含视频整体信息。若
式中
式中
该激活函数可以有效减少深度神经网络层数较多时的梯度消失现象,且计算简单,反向传播中梯度恒定。通过类似于(1)式中的卷积操作来学习得到递归卷积中的系数
式中
通过学习红外视频在每一个像素点的序列特征和图像中每一个像素的局部特征,得到这些系数,保证了各个特征之间的平衡,以获得更加优良的特征。
以上是单方向的递归卷积提取红外视频特征的全过程。采用双向的递归卷积提取红外视频特征,即先提取视频沿着时间轴从前到后方向的序列特征(正向序列特征),再提取视频沿着时间轴从后往前方向的序列特征(反向序列特征),将二者等权相加,得到最后的视频整体的序列特征,其公式为
式中
3 双向递归卷积神经网络
3.1 网络结构
目前流行的深度卷积网络的结构,如AlexNet[12]、VggNet[13]、ResNet[14]等,都是采用多个卷积层提取特征,然后将提取到的特征输入进一个分类器得到最终的网络输出。本文采用类似的思想,堆叠3个双向卷积层来提取特征。
在网络的底部采用了一层卷积核数目为64、大小为1×1的卷积层,将原红外视频中每一个像素映射到特征空间以输入双向递归卷积层;在网络的中部是3层双向递归卷积,每层卷积都采用卷积核数目为128、大小为 3×3的卷积来提取局部特征,以及网络中所需要的各个系数。这些卷积层都进行了填充操作,以使图像在提取特征前后的大小不变。在两个递归卷积层中间加入隔离层,该层是由一个卷积核数目为128、大小为1×1的卷积层和一个大小为2×2的最大采样层组成。隔离层减少了相邻2个递归卷积层所提取到的特征的关联性,使得递归卷积层尽量提取到多样的特征。在3层递归卷积提取特征之后,引入2个反卷积层(反卷积核的数目为256,大小为4×4,步长为2×2,填充为1),将提取到的特征图像分辨率调整到与红外视频相一致。
当特征提取完毕后,在网络顶部放置一个两层的全卷积网络(FCN)[21]用于估计红外视频中每一个像素点的深度。传统CNN在最后需要全连接层,全连接层将卷积层提取到的特征映射到一维空间里用于后续的分类或回归,该分类或回归属于图像级别。本文采用FCN进行逐个像素点的深度估计,将传统卷积网络解决的任务从图像级别引入到像素级别,可以对图像中每一个像素进行分类或回归。估计红外视频每一个像素点的深度属于像素级别的任务,鉴于此,本文采用这种全卷积神经网络对像素深度进行分类训练,其中,两层网络的卷积核数目均为512,大小均为1×1。采用Softmax分类器分类得到红外视频中每一个像素的深度,其表达式为
式中
这样就得到了所提出的BrCNN架构。
3.2 估计策略
红外视频深度是一个连续的值,一般采用回归方法进行估计,而本文首先将红外视频的深度离散化,再使用分类的方法估计深度。这么做有2个优点:1)实际中红外视频的场景是多变的,那么在误差范围内估计视频中每一个像素所在的深度层次比估计一个具体的深度值更加容易、有效;2)分层次估计红外视频的深度可以控制不同深度层次深度的精度,精度要求较高的地方可以分割得稠密,而精度要求不高的地方则可以分割得稀疏。本文在红外视频深度的对数空间中通过平均分割深度来获得分类标签,表示为
式中
将待估计深度的红外视频输入已训练好的BrCNN,得到视频中每一个像素的分类标签,再将其换算成估计的深度,公式为
视频中标签为
图 3. 将红外视频真实深度分割成不同深度层数的效果。(a)红外视频;(b)真实图像;(c) 10层;(d) 20层;(e) 30层
Fig. 3. Effect of dividing ground truth depth of infrared video into different depth levels. (a) Infrared video; (b) ground truth; (c) 10 layers; (d) 20 layers; (e) 30 layers
4 实验与结果分析
4.1 数据采集
采用的数据集由包含4144帧户外场景的红外视频及其深度图像组成,分辨率为40×144,数据由搭载着红外摄像机和测距雷达的汽车拍摄而成。因为红外摄像机与测距雷达的位置不完全相同,所以红外视频及其深度图像会有微小的视角上的差异,但这不影响本文实验。数据集分为2部分,由3152帧红外视频及其深度图像组成训练集,而余下的992帧数据则组成测试集。在训练集上训练本文算法,然后在测试集上测试结果,并与其他算法相比较。
4.2 训练过程
本文实验均是在装有单个GTX 1070显卡的计算机上使用深度学习库PyTorch进行训练和测试的。采用学习率为0.0001的Adam[22]算法优化网络模型。Adam算法具有3个优点:1)善于处理非平稳优化目标;2)对计算机的内存要求较小;3)可以对不同的参数计算自适应的学习率。实验中将连续的8帧红外视频作为一个序列数据输入给BrCNN,采取批处理方式优化网络模型,每次输入2个数据优化网络。BrCNN的输入数据是大小为(2,8,1,40,144)的张量,其中“2”表示每次输入的2个数据,“8”表示连续的8帧图像作为一个序列输入进网络,“1”表示红外图像是单通道图像,图像数据仅有一层,“40,144”表示红外视频的分辨率为40×144。BrCNN的输出数据是大小为(2,8,30,40,144)的张量,其中“30”表示将深度分成30个层级,其张量值表示深度属于对应层级的概率,取概率最大值的层级作为当前像素所在的深度层级,其他维度与输入数据表示的含义相同。模型在训练数据上共训练500个周期,即在训练集上训练21900次,取得了比较好的收敛效果。
4.3 结果
图 4. 各个递归卷积层的输出。(a)红外视频;(b)第一个递归卷积层输出;(c)第二个递归卷积层输出;(d)第三个递归卷积层输出
Fig. 4. Output of different bi-recursive convolutional layers. (a) Infrared video; (b) output of the first bi-recursive convolutional layer; (c) output of the second bi-recursive convolutional layer; (d) output of the third bi-recursive convolutional layer
采用不同精度和误差度量方式评价本文算法和其他算法的估计结果。目前比较常用的精度和误差度量方法有平均相对误差(MRE)[1,3,7-8]、均方根误差(RMSE)[1,3,7-8]、对数误差(LE)[1,3,8]、不同阈值的精度(
式中
表 1. BrCNN模型与其他经典网络模型的深度估计结果的对比
Table 1. Comparison of depth estimation results between BrCNN model and other classical network models
|
图 5. 不同模型下的深度估计结果。(a)红外视频;(b)真实深度;(c) BrCNN估计的深度;(d) AlexNet估计的深度;(e) VGG16估计的深度;(f) Res34估计的深度
Fig. 5. Depth estimation results of different models. (a) Infrared video; (b) ground truth depth; (c) depth estimated by BrCNN; (d) depth estimated by AlexNet; (e) depth estimated by VGG16; (f) depth estimated by Res34
4.4 模型分析
BrCNN在提取每一帧图像局部特征的同时加入了红外视频的序列信息,提高了特征的表达能力。但随着红外视频中场景的变化,序列信息对特征的表达能力起到了不同的作用。本文选取了一段连续的包含470帧图像的红外视频,计算得到任意相邻2帧图像差分的2范数,并度量了该段视频在BrCNN与VGG16[13]模型下的MRE,结果如
图 6. (a) BrCNN与VGG16模型的平均相对误差;(b) 相邻2帧图像差分2范数
Fig. 6. (a) Mean relative error of BrCNN and VGG16 model; (b) 2-norm of difference between adjacent frames
从
图 7. 帧间差分2范数较大时的深度估计结果。(a)连续3帧红外视频;(b) BrCNN的估计结果
Fig. 7. Depth estimation results of larger 2-norm between frame differences. (a) Continuous three frames of infrared video; (b) estimation results of BrCNN
5 结论
针对红外视频深度估计问题,在传统卷积网络能够很好地提取单帧图像特征的基础上,引入RNN有效提取序列特征的机制,得到的BrCNN能够有效地提取红外视频特征,并在深度估计中获得了较好的效果。该网络吸收了CNN优良的单幅图像特征提取能力,在递归传递视频序列信息机制下,对每一帧图像都能提取到包含红外视频上下文信息的特征。本文采用了双向递归机制,保证了每一个特征都蕴含视频整体序列信息,同时保持了视频序列信息的稳定性。实验中对比该网络与其他一些经典的网络结构的红外视频深度估计结果,表明该网络在红外视频深度估计上具有优秀的建模能力,能够有效解决红外视频深度估计问题。
[3] KongN, Black MJ. Intrinsic depth: Improving depth transfer with intrinsic images[C]. IEEE International Conference on Computer Vision, 2015: 3514- 3522.
KongN, Black MJ. Intrinsic depth: Improving depth transfer with intrinsic images[C]. IEEE International Conference on Computer Vision, 2015: 3514- 3522.
[5] 席林, 孙韶媛, 李琳娜, . 基于, 等. SVM 模型的单目红外图像深度估计[J]. 激光与红外, 2012, 42(11): 1311-1315.
席林, 孙韶媛, 李琳娜, . 基于, 等. SVM 模型的单目红外图像深度估计[J]. 激光与红外, 2012, 42(11): 1311-1315.
Xi Lin, Sun Shaoyuan, Li Linna, et al. Depth estimation from monocular infrared images based on SVM model[J]. Laser & Infrared, 2012, 42(11): 1311-1315.
[6] 许路, 赵海涛, 孙韶媛. 基于深层卷积神经网络的单目红外图像深度估计[J]. 光学学报, 2016, 36(7): 0715002.
许路, 赵海涛, 孙韶媛. 基于深层卷积神经网络的单目红外图像深度估计[J]. 光学学报, 2016, 36(7): 0715002.
[7] EigenD, PuhrschC, FergusR. Depth map prediction from a single image using a multi-scale deep network[C]. Advances in Neural Information Processing Systems, 2014: 2366- 2374.
EigenD, PuhrschC, FergusR. Depth map prediction from a single image using a multi-scale deep network[C]. Advances in Neural Information Processing Systems, 2014: 2366- 2374.
[8] Liu FY, Shen CH, Lin GS. Deep convolutional neural fields for depth estimation from a single image[C]. IEEE Conference on Computer Vision and Pattern Recognition, 2015: 5162- 5170.
Liu FY, Shen CH, Lin GS. Deep convolutional neural fields for depth estimation from a single image[C]. IEEE Conference on Computer Vision and Pattern Recognition, 2015: 5162- 5170.
[11] HaH, ImS, ParkJ, et al. High-quality depth from uncalibrated small motion clip[C]. IEEE Conference on Computer Vision and Pattern Recognition, 2016: 5413- 5421.
HaH, ImS, ParkJ, et al. High-quality depth from uncalibrated small motion clip[C]. IEEE Conference on Computer Vision and Pattern Recognition, 2016: 5413- 5421.
[12] KrizhevskyA, SutskeverI, Hinton GE. ImageNet classification with deep convolutional neural networks[C]. Advances in Neural Information Processing Systems, 2012: 1097- 1105.
KrizhevskyA, SutskeverI, Hinton GE. ImageNet classification with deep convolutional neural networks[C]. Advances in Neural Information Processing Systems, 2012: 1097- 1105.
[13] SimonyanK, ZissermanA. Very deep convolutional networks for large-scale image recognition[C]. International Conference on Learning Representations, 2015: 1- 14.
SimonyanK, ZissermanA. Very deep convolutional networks for large-scale image recognition[C]. International Conference on Learning Representations, 2015: 1- 14.
[14] He KM, Zhang XY, Ren SQ, et al. Deep residual learning for image recognition[C]. IEEE Conference on Computer Vision and Pattern Recognition, 2016: 770- 778.
He KM, Zhang XY, Ren SQ, et al. Deep residual learning for image recognition[C]. IEEE Conference on Computer Vision and Pattern Recognition, 2016: 770- 778.
[15] GirshickR, DonahueJ, DarrellT, et al. Rich feature hierarchies for accurate object detection and semantic segmentation[C]. IEEE Conference on Computer Vision and Pattern Recognition, 2014: 580- 587.
GirshickR, DonahueJ, DarrellT, et al. Rich feature hierarchies for accurate object detection and semantic segmentation[C]. IEEE Conference on Computer Vision and Pattern Recognition, 2014: 580- 587.
[17] RedmonJ, DivvalaS, GirshickR, et al. You only look once: Unified, real-time object detection[C]. IEEE Conference on Computer Vision and Pattern Recognition, 2016: 779- 788.
RedmonJ, DivvalaS, GirshickR, et al. You only look once: Unified, real-time object detection[C]. IEEE Conference on Computer Vision and Pattern Recognition, 2016: 779- 788.
[18] Hochreiter S, Schmidhuber J. Long short-term memory[J]. Neural Computation, 1997, 9(8): 1735-1780.
Hochreiter S, Schmidhuber J. Long short-term memory[J]. Neural Computation, 1997, 9(8): 1735-1780.
[21] LongJ, ShelhamerE, DarrellT. Fully convolutional networks for semantic segmentation[C]. IEEE Conference on Computer Vision and Pattern Recognition, 2015: 3431- 3440.
LongJ, ShelhamerE, DarrellT. Fully convolutional networks for semantic segmentation[C]. IEEE Conference on Computer Vision and Pattern Recognition, 2015: 3431- 3440.
[22] KingmaD, BaJ. Adam: A method for stochastic optimization[C]. 3rd International Conference for Learning Representations, 2015.
KingmaD, BaJ. Adam: A method for stochastic optimization[C]. 3rd International Conference for Learning Representations, 2015.
吴寿川, 赵海涛, 孙韶媛. 基于双向递归卷积神经网络的单目红外视频深度估计[J]. 光学学报, 2017, 37(12): 1215003. Shouchuan Wu, Haitao Zhao, Shaoyuan Sun. Depth Estimation from Monocular Infrared Video Based on Bi-Recursive Convolutional Neural Network[J]. Acta Optica Sinica, 2017, 37(12): 1215003.