蔡 凯,李新福,田学东
(河北大学网络空间安全与计算机学院,保定 071000)
近年来,得益于计算机和影视科技的蓬勃发展,3D技术已经应用到人类日常生活中,如医疗[1]、电影[2]和无人驾驶[3]等领域。
目前,有两种主流的3D内容生成方法:一是研究人员使用电脑成像工具和同步相机生成3D图像或视频,但这种方法不仅费时,而且价格昂贵;二是通过使用深度图(depth map)生成3D内容,这种方法可以分为人工法、半自动法和全自动法。人工法是通过人工手动为图像/视频分配深度值,使用这种方法所生成的3D内容质量最高,但是所耗费的精力和财力都远超其他方法[4]。半自动法是通过人工干预计算机进行2D-3D转换,这种方法比人工法更具效率,但是同样需要额外的人工和时间开销[5]。全自动法需要少量或完全不需要人工干预就能生成3D内容,全程由计算机负责,这样不仅提高了速度,而且可以节省很多资源[6]。
为了更好地将2D-3D转换技术应用到日常生活当中,研究人员在基于深度图的全自动转换方法上投入了大量的精力,但是,最重要的深度图获取问题依然没有解决,因为在某些场景中获取深度线索非常困难,甚至是不可能的。例如,在复杂场景中,由于图像中夹杂着大量的合成部分和文本信息,这些信息相较于自然场景更难以获得深度,因此为极其复杂的图像分配深度值是十分困难的。
近年来,随着深度学习的兴起,研究人员使用卷积神经网络(convolutional neural network,CNN)生成深度图[7-9]。周武杰等[7]为了利用不同尺度的深度信息,使用残差网络进行深度图估计;Im等[8]使用融合了几何变换的残差光流计算深度图,以解决在低亮度条件下深度图像获取不准确的问题;Zhou等[9]提出一种使用三维几何约束的无监督学习网络,摆脱了对真实深度值和相对运动变化的依赖;文献[10]并没有使用深度图生成3D内容,而是在输入一张图像并将其作为左眼图像后,通过CNN直接学习和预测另一幅图作为右眼图像。虽然在引入深度学习方法后预测精度相较于此前有所提高,但是没有充分利用光流场等信息的方法依然无法生成高质量的深度图,而在模型中融合了光流信息的方法对硬件要求较高,并且十分耗时。
为了避开在生成3D内容时深度图获取困难的问题,使用显著性检测进行2D-3D转换。显著性检测的任务是在一副图像中检测出最引人注意的目标/区域,这种机制可以为基于视觉信息的处理任务提供很大帮助。因此,可以利用显著性检测的性质与特点,将显著图作为另一种深度图进行2D-3D转换,使显著性高的物体更靠近观察者,令人不感兴趣的物体远离观察者。虽然已有研究者[11]尝试过将视觉注意力模型应用到2D-3D转换当中,但是研究人员只说明了这种方法的可行性,并没有更进一步完善研究方法。为此,使用深度学习方法进行显著性检测来提高性能,并在模型中融入时间信息,使本文方法更适用于动态3D内容生成。在预测显著图的过程中,模型为每一帧使用多尺度空洞卷积进行空间特征提取,并且在对时间序列分析时使用了改进的双向ConvLSTM(refine bidirectional convolutional long short-term memory,RB-ConvLSTM),该模块并没有包含费时的光流检测等模块,因此在运行效率上也可以得到保证。
使用显著性检测进行2D-3D转换的基本流程如图1所示。主要侧重点在于生成有利于进行3D视频生成的显著图,因此视差计算和3D图像绘制的具体实现可以参考文献[11-13]。
图1 2D-3D转换流程
1.1.1 结构总览
使用一种空洞卷积和卷积长短期记忆单元相结合的方法进行显著性目标检测(图2)。整体模型主要分为两部分;第一部分通过空洞卷积在多尺度下进行空间特征提取,其作用是在不易丢失细节的情况下融合全局和局部特征;第二部分为改进的双向ConvLSTM模块,ConvLSTM作为基本LSTM的增强变体,可以在视频帧中同时提取时空信息,在ConvLSTM的基础上融入了正序和倒序两个方向的信息以进一步提高模型的特征抽象能力。
图2 网络框架总览
1.1.2 空间特征提取
在典型的卷积神经网络中,模型是由一组带有非线性激活函数的卷积层和池化层构成。虽然池化层可以有效地增大感受野,但是对像素级预测任务来说,使用池化层进行下采样会造成细节信息丢失,甚至会导致目标较小的物体无法重建。最近,研究人员通过使用空洞卷积[14-15]作为替代品进行特征提取,这种方法在任何尺度下计算特征时都不易造成细节丢失,原因是使用空洞卷积进行计算时不需要池化层便能增大感受野,让每个卷积输出都包含较大范围的信息。
多尺度特征提取方法是CNN中常用的提高模型精度的手段。由文献[16-17]可知,多尺度自然信息对显著性检测至关重要。因此,决定使用一种金字塔空洞卷积结构对视频帧进行空间特征提取。这种结构通过使用不同空洞率的空洞卷积核提取不同尺度的空间特征,然后将这些特征图连接起来并输出最终的空间特征图。
Fl=Cl⊗T
(1)
式(1)中:⊗表示空洞卷积操作。
由式(1)可以看出,在T保持不变的情况下,输出特征图只与空洞卷积核的尺寸和空洞率有关。虽然每一幅输出特征图的大小都是相同的,但是由于空洞率的不同,感受野的大小也各不相同,甚至有时感受野的大小会超过输入图像,这就像在不同的距离观察图像一样,距离过远或过近都不会看到物体的全部信息,只有从合适的距离和背景下才能得到有效的显著性物体/区域。
P=[F1,F2,…,Fl]
(2)
式(2)中:[,]代表连接操作;P为进行连接操作后得到的特征图。
文献[18]研究发现深度网络中存在一种退化问题,并通过深度残差框架来解决了这一问题。深度残差框架也同样适用于本文模型,因此也将源输入特征图T加入到了连接操作当中,即
P=[T,F1,F2,…,Fl]
(3)
1.1.3 时空特征提取
ConvLSTM对比传统的LSTM[20],在计算过程中添加了卷积操作,使得网络模型在提取空间特征的同时又保存了时间信息,因此ConvLSTM在许多需要利用时空信息的任务中扮演着重要的角色[21-22]。ConvLSTM主要由四部分组成:记忆细胞ct、输入门it、输出门ot和遗忘门ft。ct是一种状态累加器,由其他三部分it、ot和ft控制。当输入门处于打开状态时,输入的新数据就会累加入ct。同理,当遗忘门被激活时,过去的细胞状态ct-1就会被丢弃。最终的隐层状态Ht-1是否会被当前细胞状态影响取决于输出门ot。由上所述,ConvLSTM可以表示为
(4)
式(4)中:⊙表示卷积操作;*表示矩阵哈达马乘积;σ(·)表示sigmoid激活函数。
(5)
式(5)中:Hf和Hb表示前向和后向ConvLSTM的隐层状态;Yt表示在融合了双向的时空信息之后所输出的最终显著图;tanh(·)表示tanh激活函数。
为了提取出更为有效的时空信息,RB-ConvLSTM采用空洞卷积代替传统的卷积操作进行多尺度特征提取,这样时空特征提取模块的名称就可以叫做改进的双向ConvLSTM(RB-ConvLSTM)。采用两组RB-ConvLSTM模块用于在不同尺度下进行特征提取。在RB-ConvLSTM中,使用⊗替换在式(4)中所使用的⊙运算符以表示空洞卷积操作,并且在不同的RB-ConvLSTM模块中使用不同的空洞率,以便模型在不同大小的感受野下提取最适合任务的特征。时空特征提取模块结构图如图3所示。
P表示由空间特征提取模块输出的特征图;Y表示经过双向ConvLSTM单元后连接而成的输出图
在使用显著图进行2D-3D转换时,视差计算和基于显著图的图像绘制与基于深度图的方法的计算步骤基本相同,这是因为虽然显著性检测和深度图预测是两个不同的领域,但是由这两种方法所生成的预测图(显著图和深度图)在图像属性上是相同的,即亮度为0~255的灰度图像,并且在文献[11]中已经证明了显著图用于2D-3D转换的可行性。需要说明的是,基于深度图的2D-3D转换方法是根据物体/区域距离摄像镜头的远近生成3D内容,而基于显著图的方法则是根据人眼对目标/区域感兴趣与否进行2D-3D转换。
在进行视差计算时,本文方法与传统方法差别不大。令图中像素点在(x,y)处的视差值为R(x,y),则:
(6)
2.1.1 实现细节
在实验中,模型使用文献[23]中的前5个卷积层作为基础网络,并在训练过程中对其进行微调以适应本次任务。每输入一张尺寸为473×473的视频帧S,基础网络就会输出一张特征图T⊆R60×60×2 048,随后将T输送至下一模块进行空间特征提取。
RB-ConvLSTM的任务是从P中提取时空信息。两组并联的RB-ConvLSTM在两个尺度下对P进行特征提取,两组的空洞率分别为1和2。值得注意的是,空洞率为1的卷积核没有“洞”,可将其视为普通的卷积核。每一帧经过两组并联的RB-ConvLSTM的计算后连接得到尺寸为60×60×64的特征图,之后由一个1×1×1的卷积操作和sigmod函数激活后得到最终的显著图,最后通过上采样将显著图恢复至与原视频帧相同的尺寸。
2.1.2 训练细节
在本次实验中,网络训练被分为三步。首先,使用一个静态图像显著性检测数据集MSRA10K[24]和一个视频显著性数据集DAVIS[25]训练空间特征部分,通过随机梯度下降(stochastic gradient descent,SGD)算法优化网络,学习率设为1×10-8。随后将时空特征部分的学习率设置为1×10-6,再次利用上述两个数据集训练整个模型。最后,固定空间特征部分的参数值使其保持不变,然后利用DAVIS对时空特征部分进行微调,学习率为1×10-6。实验所用的编程语言为Python,深度学习框架为Caffe toolbox。训练中动量和权重衰减率分别为0.9和5×10-4,视频帧批量大小为5。
2.2.1 数据集
对比实验采用的数据集为DAVIS和FBMS[26],DAVIS中包含了50个高质量、具有挑战性的视频序列,这些视频序列总共由3 455个视频帧组成,并且每一个视频帧都有一张与之相对应的真值图G。使用其中的30个视频、共计2 079个视频帧作为训练集,其余的20个视频作为测试集。FBMS数据集由59个正常拍摄的视频组成,使用其中29组视频序列训练模型,将另外30组用于测试。
2.2.2 评价方法
在评价显著性检测模型的表现时,有三种应用广泛的度量标准,即精度-召回率曲线、F度量(F-measure)和平均绝对误差(mean absolute error,MAE)。在精度-召回率曲线中,精度表示预测正确的显著性像素所占的百分比,召回率表示真值图中显著性像素被正确预测的比例。F度量被用于衡量模型的总体表现,模型的F度量值越高,性能越好。
(7)
式(7)中:ωβ为以β为权重参数的F度量值;Aprecision和Arecall分别表示精度和召回率。根据文献[27]将β值设置为0.3,原因是人们认为精度比召回率更重要。MAE表示预测图与真值图绝对误差,系统的MAE值越低,表现越优。
(8)
使用DSS[28]和FCNS[29]作为实验对比对象。DSS是一种静态图像显著性检测网络模型,该模型中使用嵌套边缘检测器(holistically-nested edge detector,HED)提取物体/区域边缘,并在HED中加入了短连接以便提取多尺度特征。FCNS采取了一种联立两个全卷积网络(fully convolutional neural network,FCN)的策略进行视频显著性检测,其中一个FCN用于空间特征提取,相应的,时间特征提取的任务便由另外一个FCN承担。在表1、图4中给出了对比实验的数据结果。
表1 不同算法在两种数据集上的量化分析
从表1可以看出,无论在DAVIS还是FBMS中,本文方法在F度量和MAE上都领先于其他两种模型。通过观察图4可以发现,本文方法的曲线在大部分情况下都位于另外两条曲线的上方,由此也可以说明本文方法有更好的预测能力。值得一提的是,DSS作为静态图显著性模型,在FBMS数据集上的定量评价要优于FCNS。
图4 不同算法在DAVIS和FBMS上的精度-召回率曲线
图5列出了在测试集中本文方法、FCNS、DSS这3种方法的部分视觉效果对比图。从图5可以发现,由本文方法生成的显著图拥有更好的视觉效果,这种效果在进行2D-3D转换时是至关重要的,并且从效果图中也可以看出本文方法在处理低对比度和多细节场景时具有很好的表现力。
图5 不同算法生成的显著图的视觉效果对比
图6展示了由本文方法在DAVIS数据集上生成的3D视觉效果图。从图6可以看出,在显著性较高的区域/物体上有良好的3D视觉效果,说明本文方法在生成3D视频时具有可行性。
图6 红-蓝3D内容
(1)本算法在生成3D视频时,使用显著图代替深度图进行视差计算和3D图像绘制,从而避开了在传统转换方法中深度图生成难的问题。
(2)在显著性检测模型中运用了深度学习的方法,这种方法可以从图像中自动提取特征,此能力是传统显著性检测方法所不具备的。在模型的空间特征提取模块中应用了多尺度空洞卷积,这对增强网络模型的细节保存能力起到了重要的作用。在模型中还融合了时间信息提取模块,这样做可以使生成的3D视频拥有更流畅的视觉效果。实验表明本文算法在低对比度和多细节场景中表现良好,并且在两个数据集的定量分析中优于另外两个知名算法,所产生的3D内容也具有令人舒适的视觉效果,论证了将视频显著性检测应用于3D视频生成的可行性。
(3)由于模型比较复杂,在低配置设备上进行训练和测试相对困难,因此在以后的工作中将致力于在精简模型的同时保证性能,以提高应用的广泛性。