《OpenDVC: An Open Source Implementation of the DVC Video Compression Method》

DVC的TensorFlow开源实现!!!

论文:点这里
代码:点这里
知乎上有一篇介绍:点这里

Ren Yang, Luc Van Gool, Radu Timofte

DVC是首个端到端优化的深度学习视频压缩方法,在深度视频压缩领域常被视为基准算法。OpenDVC则是瑞士苏黎世联邦理工学院杨韧等人使用Tensorflow复现了DVC并开源了代码(不单是复现,还对DVC做了优化)。

太长不想看版!!!

作者这篇算是个技术报告吧,主要讲了复现DVC的一些细节以及训练策略,跟原始DVC还是有些不同的,下面下简要总结下。

  • OpenDVC与DVC的不同点:
    (1)除复现DVC优化PSNR的模型外,还提供额外提供了优化MS-SSIM的DVC模型;
    (2)运动压缩网络中上下采样4倍,原始DVC是5倍;
    (3)残差压缩网络中用5x5的卷积替换了3x3的卷积,原因是残差中包含的信息比光流中要多。

  • 训练策略总结:
    (1)先训练运动估计网络(原始DVC中直接采用光流网络的预训练参数);
    (2)然后把运动压缩加入训练;
    (3)再训练运动补偿模块;
    (4)所有网络联合训练。
    (5)注意:不同阶段用的loss不同!

下面完整版!!!

1. Introduction

在这篇技术报告中,作者介绍了深度视频压缩(DVC)[9]方法的开源Tensorflow[1]实现。DVC[9]是第一个端到端的优化学习视频压缩方法,与x265的低延迟P(LDP)very fast设置相比,具有更好的MS-SSIM性能,并且PSNR性能与x265(LDP very fast)相当。在撰写此报告时,已有几种视频压缩方法[5,6,8,15,16]优于DVC[9],但目前都还没有提供开源代码。作者希望OpenDVC代码能够为以后的开发提供一个有用的模型,并为以后对基于学习的视频压缩的研究提供便利。与原来只针对PSNR进行优化的DVC不同,本文不仅发布了以OpenDVC(PSNR)表示的PSNR优化的复现,而且还发布了MS-SSIM优化的模型OpenDVC(MS-SSIM)。OpenDVC(MS-SSIM)模型为MS-SSIM优化的方法提供了更具说服力的基线,这只能与过去的PSNR优化的DVC[9]进行比较。OpenDVC源代码和预训练的模型在https://github.com/RenYang-home/OpenDVC。

2. Implementation

在本节中,将描述OpenDVC的实现,该实现遵循图1所示的DVC[9]框架。DVC的高层架构是由手工制作的视频编码标准[13,12]驱动的,即采用运动补偿来减少时间冗余,并使用两个压缩网络分别压缩运动信息和残差信息。在下面的图1中,介绍了OpenDVC的每个模块的实现。

Motion estimation.
DVC利用金字塔网络[11]来估计当前帧和先前压缩帧之间的运动,如图1中的“Optical Flow Net”模块所示。金字塔结构的大接收野有利于DVC处理大的运动。在OpenDVC中,运动估计网络由Tensorflow在文件motion.py中基于金字塔网络[11]的PyTorch实现[10]。按照[11]中描述的设置使用5级金字塔网络。每级有5个kernal size为7×7的卷积层,滤波器数目分别为32,64,32,16和2。如图1所示,估计的运动vt\ v_t vt​是从金字塔网络输出的,在OpenDVC_test_video.py中表示为flow_tensor.

Motion compression.
作者按照[9]来使用[2]的自动编码器对估计的运动进行压缩。编码器部分由4个有x2下采样的卷积层组成,前三层使用GDN的激活函数[2]。在解码器部分,有4个有×2上采样的对应卷积层,并且前三层使用逆GDN[2]的激活函数。在运动压缩中,将解码器所有层(最后一层除外)的filter大小设置为3×3,filter数目设置为128,最后一层filter数目为2,以重建2通道运动向量。用于运动压缩的编码器和解码器实现为CNN_img.py中的MV_analysis和MV_synthesis函数。与采用超先验熵模型(hyperprior entropy model)[3]的DVC[9]不同,OpenDVC使用了分解式熵模型(factorized entropy model )[2]。因此,OpenDVC对输入分辨率的要求较低,即DVC要求输入的高度和宽度为32的倍数,而OpenDVC仅需要高度和宽度为16的倍数。更重要的是,替换hyperprior 模型为factorized模型不会导致性能明显下降(详见第4节)。

Motion compensation.
如DVC[9]中所述,首先通过压缩的运动信息flow_hat转换参考帧,然后运动补偿网络将参考帧Y0_com、转换的参考帧Y1_warp(In OpenDVC, we use the backward warping, which is implemented as tf.contrib.image.dense image warp in Tensorflow 1.12.)和压缩的运动信息flow_hat作为输入来生成运动补偿帧 Y1_MC。OpenDVC中的运动补偿网络按照附录(https://arxiv.org/abs/1812.00101.)[9]中所示的体系结构。详细的网络如图2所示,其中所有层的filter size均为3×3。除最后一层的filter数目为3之外,其余每层的filter数目均设置为64。↑\ \uparrow ↑ 2和↓\ \downarrow ↓ 2表示步长为2的上采样和下采样,⨁\ \bigoplus ⨁表示逐元素相加。

Residual compression.
在运动补偿之后,可以将残差作为补偿后的参考帧与当前原始帧之间的差来获得。在OpenDVC中,使用与运动压缩相同的方法压缩残差。唯一的区别是,在自动编码器中使用大小为5×5的filters进行残差压缩,而不是在运动压缩中使用的3×3。原因是残差比运动[9]包含更多的信息并且消耗更多的比特率,并且更大的filter size提高了自动编码器的表示能力。最后,将残差加到补偿后的参考帧上,得到重构后的压缩帧。

3. Training

在此技术报告中,使用与DVC[9]相同的符号,如图1所示。这些符号的定义及其在OpenDVC代码OpenDVC_test_video.py中的相应变量名称在表1中列出。

OpenDVC网络在Vimeo-90k[14]数据集上以渐进方式进行训练。首先,使用下面损失函数训练运动估计网络
LME=D(xt,W(x^t−1,vt)),(1)\ L_{ME}=D(x_t,W(\hat{x}_{t-1},v_t)), (1)  LME​=D(xt​,W(x^t−1​,vt​)),(1)
其中W\ W W是backward warping操作。在运动估计网络收敛之后,进一步将运动压缩网络加入训练,其损失包括被压缩运动warped的参考帧的失真和用于压缩m ^ t的比特率,即

损失包括由于压缩运动而warped的参考帧的失真以及用于压缩m^t\ \hat{m}_t m^t​的比特率,即
LM=λ⋅D(xt,W(x^t−1,v^t))+R(m^t),(2)\ L_{M}=λ\cdot D(x_t,W(\hat{x}_{t-1},\hat{v}_t))+R(\hat{m}_t), (2)  LM​=λ⋅D(xt​,W(x^t−1​,v^t​))+R(m^t​),(2)
其中λ来平衡速率和失真,R代表由熵模型估计的比特率[2]。 然后,运动补偿网络的训练通过下面损失
LMC=λ⋅D(xt,xˉt)+R(m^t),(3)\ L_{MC}=λ\cdot D(x_t,\bar{x}_t)+R(\hat{m}_t), (3)  LMC​=λ⋅D(xt​,xˉt​)+R(m^t​),(3)
当LMC\ L_{MC} LMC​会合时,整个网络将以端到端的方式联合训练,而损失是
L=λ⋅D(xt,x^t)+R(m^t)+R(y^t),(4)\ L=λ\cdot D(x_t,\hat{x}_t)+R(\hat{m}_t)+R(\hat{y}_t), (4)  L=λ⋅D(xt​,x^t​)+R(m^t​)+R(y^​t​),(4)
对于所有损失函数(1),(2),(3)和(4),学习率最初设置为10−4\ 10^{−4} 10−4。当通过最后的损失(4)训练整个网络时,学习率在收敛后降低10倍,直到10−6\ 10^{−6} 10−6。

在OpenDVC中,首先按照DVC[9]训练PSNR优化模型,其中失真D为均方误差(MSE),λ=256,512,1024和2048。然后,仅使用最终损失函数(4)(D=1-MS-SSIM)对MS-SSIM模型进行微调。分别从预先训练的λ=256,512,1024和2048的PSNR模型中微调了λ=8,16,32和64的MS-SSIM模型。注意,使用BPG[4]压缩OpenDVC中PSNR模型的I帧,并使用学习的图像压缩方法[7]压缩MS-SSIM模型的I帧。具体而言,将QP=37,32,27和22的BPG用于λ=256,512,1024和2048的PSNR模型。λ=8,16,32和64的MS-SSIM模型使用[7],质量等级分布为2,3,5和7。

4. Performance

与DVC论文中的结果相比,OpenDVC的率-失真性能如图3所示[9]。可以看出,OpenDVC (PSNR) 模型在 PSNR 和 MS-SSIM 性能上均与 DVC 基本相当,OpenDVC (MS-SSIM) 模型在 MS-SSIM 性能上明显优于原 DVC 方法。 注意,图3直接使用DVC的结果,[9]中报告了x265(very fast)和x264(very fast)。

5. Our latest works

作者的课题组专注于深度学习视频压缩方法的研究,在该领域也有一些最新的研究成果:

  • Hierarchical Learned Video Compression (HLVC) [2] 发表于 CVPR 2020, 论文链接:https://arxiv.org/abs/2003.01966, 项目主页:https://github.com/RenYang-home/HLVC
  • Recurrent Learned Video Compression (RLVC) [3], 论文链接:https://arxiv.org/abs/2006.13560,RLVC 方法的性能也于上面图3中展示。

论文笔记25 -- (视频压缩)OpenDVC: An Open Source Implementation of the DVC Video Compression Method相关推荐

  1. 论文笔记30 -- (视频压缩)【CVPR2021】FVC: A New Framework towards Deep Video Compression in Feature Space

    <FVC: A New Framework towards Deep Video Compression in Feature Space> CVPR 2021 的一篇Oral 提出了特征 ...

  2. 论文笔记26 -- (视频压缩)【CVPR2020】M-LVC: Multiple Frames Prediction for Learned Video Compression

    <M-LVC: Multiple Frames Prediction for Learned Video Compression > DVC的升级版!!! 论文:点这里 代码:点这里 Ji ...

  3. 论文笔记【A Comprehensive Study of Deep Video Action Recognition】

    论文链接:A Comprehensive Study of Deep Video Action Recognition 目录 A Comprehensive Study of Deep Video A ...

  4. ACL2021论文笔记——Constructing Multi-Modal Dialog Dataset by Replacing Text with Semantically Relev Image

    论文链接: Constructing Multi-Modal Dialogue Dataset by Replacing Text with Semantically Relevant Images ...

  5. [论文笔记] Fast Quality Driven Selection of Composite Web Services (ECOWS, 2006)

    Time: 4.0 hours Jae-Ho Jang, Dong-Hoon Shin, Kyong-Ho Lee, "Fast Quality Driven Selection of Co ...

  6. 论文笔记 A Spatial-Temporal Decomposition Based Deep Neural Network for TimeSeries Forecasting

    0 abstract 空间时间序列预测问题出现在广泛的应用中,如环境和交通问题.由于存在特定的空间.短期和长期模式,以及维度的诅咒,这些问题具有挑战性. 在本文中,我们提出了一个用于大规模空间时间序列 ...

  7. 论文笔记 《Selective Search for Object Recognition》

    论文笔记 <Selective Search for Object Recognition> 项目网址:http://koen.me/research/selectivesearch/ 一 ...

  8. 图合成与差分隐私(图结构和节点属性)论文笔记

    AsgLDP: Collecting and Generating Decentralized Attributed Graphs With Local Differential Privacy 论文 ...

  9. Balanced Multimodal Learning via On-the-fly Gradient Modulation论文笔记

    Balanced Multimodal Learning via On-the-fly Gradient Modulation论文笔记 引言 多输入模态有望提高模型性能,但我们实际上发现即使多模态模型 ...

最新文章

  1. 中文 Markdown 编写格式规范的命令行工具 lint-md
  2. 恶意代码实战Lab13-01分析
  3. python 词云手把手_手把手教你用python制作属于你的第一个词云
  4. 剑指offer 合并2个排序的链表
  5. 15岁杀人犯监狱学编程,37岁保释年薪70万
  6. java流的序列化_Java中的对象流和序列化介绍
  7. 避免使用PHP保留字作为常量、类名和方法名,以及命名空间的命名
  8. cassandra 学习笔记(2)
  9. 管理感悟:建议工作文档多使用表格EXCEL
  10. amd显卡测试帧数显示软件,NVIDIA发布帧数显示及显卡基准测试应用FrameView
  11. 有道词典与奇迹背单词生词本同步
  12. JAFFE表情库介绍
  13. python图片转excel,用Python玩转图片处理,并导出文件列表到Excel文件
  14. VR/AR时代最大的瓶颈是什么?
  15. 工单系统(源代码)PHP语言开发 开发者版
  16. JavaScript随机方块
  17. 昆明理工大学计算机学院李博,昆明理工大学
  18. 网格环境配置(三):安装SGE
  19. C语言编写简易图书管理系统
  20. opencv中什么事ROI。ROI有什么作用

热门文章

  1. 苹果cmsv10首涂第十一套会员中心功能增强版独立手机模板
  2. 【LuatOS-sensor】4 色彩识别传感器TCS34725
  3. 服务器未启动性能计数器,监视 Web 服务请求性能计数器
  4. BLDC-永磁同步电机启动策略(3)- IPD启动
  5. 在亚马逊美国站卖服装的优势?亚马逊加工服装订单好做吗?
  6. 后疫情时代数字化协同办公平台发展方向
  7. J2EE开发之(六)之漫谈基于数据库的权限系统的设计
  8. 基于词向量的相似度短语挖掘
  9. Python找工作并不容易,老表面试了很多企业,总结了些宝贵经验!
  10. python与seo实战课程百度云_Python与seo实战课程