APP下载

基于像素流的视频彩色化

2021-02-24丁友东

关键词:光流彩色像素

陈 钰 丁友东 于 冰 徐 敏

(1.上海大学上海电影学院, 上海 200072;2.上海大学上海电影特效工程技术研究中心, 上海 200072)

视频彩色化作为视频处理的一个重要方向, 有着十分广泛的应用.为黑白电影上色是视频彩色化的一个典型应用.传统的黑白电影彩色化一般采用手工的方式, 这是一项费时费力的工作.20 世纪70 年代, 借助计算机技术, 数字上色加速了彩色化流程, 但如何提升彩色化的效率仍然是当前研究的重点.视频彩色化的另外一个重要应用是为红外视频(如监控视频、车载夜视视频)着色.红外摄像头能主动发射红外线来夜视成像, 然而只能得到灰度图像.通过给夜视视频着色, 能更加直观地展示视频中的物体, 方便观看者做出更准确的判断.此外, 视频彩色化还应用在视频压缩、视频追踪等领域.

视频彩色化方法可以分成两类: 第一类是手绘样条在3 维(2 维图像+时间)中传递, 称为3维手绘传递; 第二类是使用关键帧给相邻帧或所有视频序列帧传递颜色, 称为帧到帧传递.

(1) 3 维手绘传递.Levin 等[1]提出了图像彩色化方法并延展到视频彩色化, 利用Lucas-Kanade 光流估计[2]将用户的手绘样条在时间维度上传递以完成所有帧的传递.受Irohy 等[3]工作的启发, Zhen 等[4]利用参考图像自动生成样条来进行颜色传递.Lang 等[5]基于能量方程最小化提出计算更加鲁棒的估计进而改善彩色化的结果.Yatziv 等[6]根据一个像素到彩色样条的时空测地距离来为像素着色.Sheng 等[7]用基于Gabor 特征[8]的函数替换空间距离, 同时把光流也拓展到Gabor 特征空间中, 该方法能更好地处理纹理和噪点问题.Heu 等[9]通过定义每个像素的颜色精确度计算非源像素(非用户输入颜色像素点)的优先级, 按照优先级对非源像素上色, 其中对于视频来说, 颜色精确度通过帧间块匹配方法运算得到.Paul 等[10]使用3D 可操纵金字塔分解的主方向代替运动矢量来指导手绘样条颜色的传递.

(2) 帧到帧传递.Welsh 等[11]开创性地提出了基于参考图像的彩色化方法, 并将其拓展到视频帧中, 但该方法不能保持空间及时间上的一致性.Sykora 等[12]提出基于块比较的方法并应用于黑白卡通动画, 但由于块之间不是稠密对应关系, 该方法不适用于包含复杂运动的自然视频.Pan 等[13]使用运动估计将颜色转移到相邻帧.Teng 等[14]使用优化的块匹配算法进行颜色传递.Xia 等[15]使用多帧作为参考帧给目标帧着色, 并通过计算序列帧的光流分配着色帧的优先级.为了增加视频彩色化的鲁棒性, Pierre 等[16]结合块匹配、光流、正则化技术设计了一个交互式可变模型.Jampani 等[17]提出一个视频传递模型, 包括一个可以将颜色信息转换到高维空间中进行卷积的时间双边网络和一个可以提炼特征的空间网络.Liu 等[18]使用图像对双向训练得到可转换的空间传递网络, 该网络可以传递高动态范围、分割、颜色等信息.Meyer等[19]设计了一个颜色传递的深度学习框架, 结合了帧到帧传递的局部策略和利用语义信息来解决时间跨度长导致彩色化效果衰减问题的全局策略.

视频彩色化可以看作是将关键帧中的颜色信息在时间维度上传递, 如何寻找视频序列帧间的对应信息是关键.传统的视频彩色化方法依赖运算光流来传递用户手绘彩色样条或者彩色帧中的颜色信息, 然而光流的估计十分耗时而且不能很好解决遮挡问题.此外, 采用前帧给后帧逐帧传递颜色的方式, 使得基于传统光流方法导致的错误颜色信息随着帧的增加而逐步叠加, 彩色化的结果衰减严重.近年来, 研究人员使用深度学习解决传统图像处理问题, 如图像去噪[20]、图像修复[21]、图像增强[22]等, 当前一些基于卷积神经网络的视频插帧算法[23-24]有着不错的表现, 表明这些网络学习到了帧间像素的运动关系.本工作将基于像素流的插帧方法[24]应用在视频彩色化中, 构建了一个新的视频彩色化模型.本模型由典型的编码器-解码器构成, 通过大量视频帧数据的训练, 能较好地学习到视频帧间像素的对应关系.像素流彩色化方法直接从参考帧中拷贝颜色到目标帧, 因此得到的彩色图像避免了欠饱和度的问题.本模型还能一定程度上解决传统光流不能很好地处理物体遮挡的问题.另外, 相对于传统光流, 本方法的运算时间大幅减少.

1 视频彩色化模型框架

基于像素流的视频彩色化模型的整体框架如图1 所示.模型采用全卷积的编解码结构, 包含卷积层、池化层和上采样层.为了解决随着网络层的增加导致的梯度弥散问题, 类似于残差网络ResNet[25]在上采样层加入了跳转连接.模型的前2 个和后3 个卷积层的卷积核大小为5×5, 更大的感受野使模型能够处理更大幅度的运动关系, 其余卷积层的卷积核为3×3.除了最后一层使用Tanh 激活函数, 其余层均使用Leaky ReLU[26]激活函数.

图1 基于像素流的视频彩色化模型Fig.1 Video colorization model based on voxel flow

在模型训练阶段, 首先将彩色的参考帧和目标帧图像转换到Lab 颜色空间, 并将其亮度通道送入模型, 输出得到2 个通道的像素流, 2 个通道分别包含水平和竖直2 个方向上的偏移坐标值, 该偏移坐标值指示了目标帧某一坐标处的颜色应该取参考帧中同一坐标偏移后的位置的颜色; 然后使用像素流将参考帧的颜色传递到目标帧中, 再将传递得到的颜色与目标帧真实颜色的差值作为损失函数, 通过梯度下降法训练模型参数以减少二者的差异.在测试阶段, 将彩色参考帧及灰度目标帧作为模型的输入, 得到目标帧的颜色通道后再加上目标帧的亮度通道得到最终彩色目标帧图像.

2 方法描述

2.1 像素流彩色化

将参考帧与目标帧的亮度通道及颜色通道分别表示为LR,LT,CR,CT, 模型预测得到的目标图像颜色通道记为.首先, 将参考帧与目标帧的亮度通道LR,LT输入像素流网络, 经过1 个典型的编解码器的网络结构, 输出得到包含2 个通道的像素流Fx,y, 每个通道分别代表了所有坐标的水平和垂直偏移值x,y, 其过程如图2 所示.Fx,y= (x,y)x,y表示目标帧坐标(x,y) 处的颜色值应该取参考帧中坐标(x,y) 偏移了(x,y) 后的绝对坐标(Px,Py)=(x+x,y+y)处的颜色值CR, 即可以用CR表示:

图2 参考帧颜色传递到目标帧Fig.2 Transferring color from reference frame to target frame

需要指出的是, 对于颜色通道a,b, 本工作均使用同一像素流Fx,y.由于模型训练得到的x和y一般为浮点数, 即(Px,Py)不是整数值, 无法得到整数坐标, 因此需要对绝对坐标(Px,Py)周围的4 个整顶点位置做双线性插值.(Px,Py)周围的4 个顶点可表示为

式中:V00,V10,V01,V11分别代表左上、右上、左下、右下4 个顶点的坐标位置;和分别表示向下取整和向上取整函数.这样目标帧的颜色值可表示为

式中:Wij为双线性插值的权重;W00,W10,W01,W11分别对应V00,V10,V01,V114 个顶点,

2.2 模型训练

无论是图像还是视频的彩色化, 一般把模型得到的目标图像多通道颜色值与参考图像的多通道颜色值进行比较作为损失函数.本工作使用的是L1 误差损失函数,L1 相较于L2 能得到更加清晰的边缘[23,27],

式中:D代表所有参考帧和目标帧的颜色通道;N为所有图像对的数量.

本工作的训练数据集包括DAVIS 数据集[28-29]、240-fps 数据集[30]及Youtube 视频.为使模型能更加准确地训练得到帧间的运动关系, 本工作从这些数据集中过滤了一些存在大量的运动模糊、物体运动幅度过大的视频素材, 最后得到了大约20 000 帧图像作为训练数据.对于视频帧序列, 第一帧和第二帧作为一个图像对, 第二帧和第三帧作为一个图像对, 依此类推.同时, 本工作还使用了一些数据增强的手段扩充数据, 如随机裁剪256×256 的图像块、随机翻转等; 考虑像素流彩色化的可逆性, 随机变换参考图像与目标图像的位置.

模型训练时首先使用标准差为0.01 的高斯分布对网络参数进行初始化, 使用Adam 方法[31]更新网络参数, 学习率设置为0.000 5, 批处理图像大小为40, 使用深度学习框架Pytorch训练了200 代.本工作的模型训练及实验对比硬件如下: Intel®Xeon E5-2620 V4 CPU;TITAN Xp GPU; 64 GB 内存.

3 实验分析

本工作中测试数据集的划分和文献[17]相同.另外, UCF 101 数据集[32]主要使用峰值信噪比(peak signal to noise ratio, PSNR)作为客观评价标准.

依赖视频帧中的光流信息来传递颜色是视频彩色化最常用的方法.Xia 等[15]利用半稠密光流先传递大部分区域颜色再使用优化算法传递其他区域颜色, 同时还加入了重排列优化, 即通过计算视频帧间的光流得到运动幅度来决定彩色化图像的顺序.Jampani 等[17]设计的视频传递网络在双边算子的基础上加入了一个空间网络来优化结果, 该网络可以在视频中传递蒙版、颜色信息.为了更加明显地展现本方法学习到了帧间像素的运动关系, 本工作将直接拷贝参考帧颜色信息到目标帧作为参照.考虑到帧到帧的彩色化也可以看作是风格迁移的一种, 本工作也选取了照片级图像风格化论文[33]作为对比.

3.1 连续单帧彩色化

图3 为本方法与文献[15,17,33]方法的对比.图中第一行为DAVIS 数据集中soapbox 第70 帧给第71 帧上色, 第二行为football 素材第3 帧给第4 帧上色, 第三行为DAVIS 数据中scooter-gray 第49 帧给第50 帧上色.可以看到, 本方法与文献[15]方法在不同的测试数据集上均能得到不错的彩色化结果, 尤其在在运动幅度不大的情况下, 本方法的彩色化结果几乎与真实图像无差异; 文献[15]方法在遮挡物体的边缘出现了错误的上色(第一、二行)或未上色(第三行); 文献[17]方法的彩色化结果偏欠饱和度, 色彩边缘模糊; 文献[33]方法由于主要目标是彩色图像的风格迁移, 故将彩色图像的风格应用于黑白照片效果欠佳.

图3 连续单帧彩色化方法的比较Fig.3 Comparisons of consecutive single frame colorization methods

为了给彩色化结果做量化评估, 本工作将彩色化结果与真实图像转换到Lab 色彩空间并计算PSNR 平均值, 测试数据集为DAVIS 测试数据集中的15 个视频帧.表1 显示了4 种连续单帧彩色化方法的平均PSNR 和平均运算时间.本方法可以得到接近文献[15]方法的PSNR值, 且本方法基于卷积神经网络, 利用GPU 并行运算使得运算时间大幅减少.例如, 计算一幅256×256 的图片, 本方法平均只需要0.41 s, 而文献[15]方法需要416.00 s, 文献[17]和[33]方法分别为1.80 s 和0.85 s.

表1 连续单帧彩色化平均PSNR 以及平均运算时间Table 1 Average PSNR and average runtime of consecutive frame colorization

3.2 视频序列彩色化

本工作中帧到帧的彩色化方式可以方便地运用到视频序列中, 第一帧给第二帧上色, 得到的第二帧给第三帧上色, 以此类推.本工作从测试数据集中选取了30 组视频帧, 每组视频取前22 帧, 每隔11 帧作为带有颜色的关键帧, 即第一帧和第十二帧为关键帧.由于文献[15]中的多帧参与彩色化方法时运算时间过长, 视频序列彩色化部分未将其作为比较.图4 展示了随帧数的增加3 种方法得到的PSNR 值的变化.文献[17]和文献[33]的彩色化方法是全局的, 它们使用同一参考帧给多个目标帧上色, 因此得到的PSNR 值较稳定; 本方法采用的是帧到帧连续传递颜色的方式, 若中间出现瑕疵, 则将导致后面的彩色化帧PSNR 值逐步减小.但是, 本方法总体表现优于对比文献的方法.图5 为3 种方法在视频序列上的彩色化实例对比.可以看出: 在使用关键帧k=0 给目标帧k=1 彩色化时, 突然出现的木桩无法在第0 帧找到对应的颜色信息, 本方法未能正确上色; 再使用得到的彩色化结果给目标帧k= 5 上色, 木桩仍旧无法正确上色.

图4 随目标帧帧数的增加PSNR 值的变化Fig.4 PSNR values change as the number of frames increase

图5 视频序列彩色化Fig.5 Colorization of video sequence

3.3 黑白电影彩色化

给黑白电影上色是视频彩色化的一个应用, 本工作选取黑白电影《地道战》作为实验案例.首先, 使用基于用户手绘的半自动的图像彩色化方法[34]对视频片段的参考帧k= 0 进行手动上色; 然后, 使用k=0 给后续连续帧进行上色.图6 为3 种方法对黑白电影彩色化的结果.从图6 可以看出: 文献[17]方法的彩色化结果不稳定, 对原始颜色进行了修改; 文献[33]方法表现出欠饱和度情况; 本方法保留了参考帧的颜色, 较稳定地对连续帧进行了颜色传递.

图6 黑白电影的彩色化Fig.6 Colorization of black and white film

4 结束语

本工作提出了基于像素流的视频彩色化方法, 通过一个深度学习框架学习到帧间像素的运动关系.由于采用了从参考图像中直接拷贝颜色信息的方式, 故得到的彩色图像边缘清晰.相较于基于传统稠密、半稠密光流的视频彩色化方法, 本方法效率更高.不同于使用神经网络直接生成像素的方式, 本方法避免了欠饱和度的问题.另外, 本工作还探索了彩色化方法在黑白电影的应用, 对于运动幅度不大的画面, 本方法能有效提高彩色化效率.需要指出的是, 随着帧数的增加, 本工作帧到帧的彩色化方式在传递过程中若产生了瑕疵, 则将影响后续所有帧的彩色化效果.另外, 本方法无法处理运动幅度较大的画面, 这些都是未来改进的方向.

猜你喜欢

光流彩色像素
利用掩膜和单应矩阵提高LK光流追踪效果
彩色的线
基于改进Cycle-GAN的光流无监督估计方法
像素前线之“幻影”2000
一种多尺度光流预测与融合的实时视频插帧方法
基于自适应纹理复杂度的仿生视觉导航方法研究
“像素”仙人掌
有那样一抹彩色
彩色的风
高像素不是全部