原文连接:研究笔记

体验版的模型已开源:GitHub - a312863063/Video-Auto-Wipe: Erase specific content from the video that you don't wanna see

如果有什么问题或者想法,相互交流一下吧~

目录

总述

Ⅰ·视频擦除简介

Ⅱ· 一种精巧好用的模型——OPN

Ⅲ· 对于OPN模型的一种改良思路

Ⅳ· 探索更实际好用的视频擦除框架


总述

  众所周知,生成技术解决的问题是像素的预测,也就是在一个有缺失/完全缺失的图像棋盘上进行像素的填补,使填补完的图像符合真实图像的规律。这是一种很有意思的视觉任务,因为目前大部分的CV落地项目都集中在感知和识别任务上,而人们对于重构和生成任务的研发相对较少。但是这并不代表着它的价值是逊色于前者的,在我眼中,生成技术等同于全新的生产力,其利用神经网络实现了想象与现实的完美结合,可落地应用的点涵盖到人们生活的方方面面。

  为了让您有更具启发性的了解,本章我们以“视频擦除(Video Inpainting)”这一种技术为例,向您展示生成技术可带给人们生活的改变与效率的提升,以及如何顺着这种思路去探索更广阔的生成技术类应用产品。

Ⅰ·视频擦除简介

  视频擦除(Video Inpainting),即在一段连续视频中涂抹一个区域或一个运动物体,并用生成的方式将其掩盖填补回来,要求尽量的不留痕迹(即肉眼难以察觉)。

图1-1 Video Inpainting介绍

  如上图所示的例子,在一段视频序列中有一个运动的人物,我们用mask(遮罩)的方式将人物给涂抹掉后,要基于视频的其他内容信息将涂抹部分填充回来,且最终修复完好的视频应该具有人物“消失掉”的效果。

  不过,Video Inpainting具有一定的技术难点,主要体现在它既需要
①、在自身帧上作空域信息的搜寻(即Image Inpainting部分),
②、也需要在相邻帧上作时域信息的搜寻(即Memory Search+Read部分)

并最终将两部分信息整合并填补回原始帧中。

图1-2 Video Inpainting难点

  具体来说(如上图所示),以第三帧人物轮廓的填补进行分析,最佳修复方式应该是:其腿部部分可以沿用周围马路上的像素点copy过来,因为很明显马路上的像素块是差不多的;而其上部分栏杆和房屋位置的信息应该是采自第二帧中匹配的像素点copy过来,因为这些偏细节的内容若能在其他帧中搜寻到且复制回来会更为准确。

  因此,如果往更一般的情况推广,Video Inpainting首先应考虑当前帧缺失的信息是否有在其它帧中“露出”,如果有匹配上的信息就将其填补回来(这有利于准确的细节内容重构);剩下的缺失信息再通过Image Inpainting的方式填补(有利于填补掉未修复完全的内容)。综上可以看出,Video Inpainting需要整合多维度获取的信息,并有效的转化和填补回修复图像上,这是比较复杂且困难的部分。这些技术难点也是目前Video Inpainting发展缓慢、落地应用比较滞后的原因。(难点在于时域上的信息搜寻,即确定hole区域在其他的哪个frame中出现,并将该frame的non-hole区域填补回来

  另外一方面,我们需要一些学术界的方法作为技术突破的指引。因此确认这一任务方向后,我去做了很多相关调研。从调研结果来看,Video Inpainting的相关论文集中在19-20年间,数目非常少。从思想上来说,Video Inpainting主要分为两种擦除方式,

  1. 一种是显式擦除,也就是直接作用在图像上,从像素层面进行修复;
  2. 另一种是隐式擦除,也就是作用在图像编码上,从特征层面进行修复。

图1-3 Video Inpainting方法

  先简单介绍下显式擦除,也就是直接构建“图到图“的网络设计模式。一种是基于光流(Flow)计算的做法,也就是基于前后帧的差异计算出像素的“运动趋势”,利用这种“趋势”预测出颜色的传播从而填补掉缺失的mask块;另一种是基于3D-CNN/RNN的设计,它直接将时序上的帧按通道数堆积在一起,形成一个大型矩阵进行卷积计算,这种做法需要进行一定的改良才能避免高维卷积带来的潜在隐患(譬如计算浪费高、数据依赖严重等等),其中一种有效的改良方式是利用多头注意力机制分block进行计算等。

  另外一种设计模式是隐式擦除,其(隐式擦除的三个步骤:Encoder--> 对target image的hole修复 --> Decoder

  1. 先利用“Encoder”获取了图像的深度表征,
  2. 然后通过对图像表征的系列修补操作(譬如attention,gated-convolution,region-normalization等等)后,【即对target image的hole修复】
  3. 再映射(decoder)回图像,生成出修补完成的图片帧。

Ⅱ· 一种精巧好用的模型——OPN

  通过多轮的调研和测试,我们发现基于显式擦除的网络较为笨重,占用内存高、计算开销较大,且遇到一些交叉遮挡、频繁切换的视频场景效果就会变糟,因此可改良的空间很小;而基于隐式擦除的网络小巧且精妙,效果相对稳健,具备一定的落地潜力。其中最具代表性的论文是OPN(2019-ICCV-Onion Peel Networks for Deep Video Completion),它在测试数据上的表现是稳定且出色的,对于小块的擦除有着较好的隐身效果。

图2-1 OPN模型架构

  于是,接下来需要实现的重点任务,就是去攻克OPN的训练源码复现,争取获得自己的视频擦除基线模型。先简单梳理一下OPN的模型架构逻辑,其左右两端分别是Encoder和Decoder模块,通过Encoder获得的图像表征有两部分,分别是q(表征注意力信息)和r(表征内容信息),将q和每一个采样的记忆帧的k(即记忆帧的注意力信息,通过同样的Encoder获得)匹配后,所获得的attention权重乘上记忆帧的v(记忆帧的表征内容信息)得到从该记忆帧获取的信息增补量u,然后将u加回到当前帧的r上就实现了一次特征层面的修补,最终将修补完成的新的表征通过Decoder输出便得到修复后的图像。另外,OPN还使用了一个小trick:由于其Encoder抓捕q和r表征的能力不强(这是后续的结论),所以其擦除采用了按圈擦除(记作n-shot,表示擦多次),譬如作者采用一次只修补8-pixel的像素宽度,一圈一圈向里填补

  总而言之,尽管OPN在空域擦除上没有深化改良措施,但其核心贡献是它解决了视频擦除的第二个难题,也就是在时域上的记忆搜寻过程。这是具有开创性和重要突破意义的,因为很多做video inpainting的人都在想如何能在时域上搜刮信息,而OPN率先实现了优秀的效果,因此其时域搜寻部分的训练模式是具备拓展价值的,复现其源码也就有必要性。

Ⅲ· 对于OPN模型的一种改良思路

图3-1 OPN模型缺陷

  前面有提到过,OPN的Encoder抓捕q和r表征的能力不强,得出这一结论的原因是当我们将上图中红色部分抹除掉(即删除掉时域搜索部分)后,OPN的擦除能力大打折扣了,甚至落后于很多新型的Image Inpainting的模型效果。因此,改进模型的出发点是替换OPN的Encoder和Decoder架构,使其分别具有更强的信息提取能力和精细内容重建能力。通过阅读论文,我们引入了新型归一化组件Region Normalization,因为其具有更强的捕捉图像结构信息的能力,同时结合OPN的时域推理框架,我们提出了具备更好性能的改良模型RNoT。

图3-2 RNoT架构示意图

  上图是提出的RNoT的架构示意图,由于改进重点是在空域部分上,所以时域部分的流程图就没有再画出(与OPN一致)。
改进的部分主要是三点:

  1. 第一个是Encoder里面加入了RN-B组件,
  2. 第二个是Decoder里面加入了RN-L组件,
  3. 其次提取q和r的部分分别采用了4层Res-Block和8层Res-Block,以帮助其在时域推导的时候具有更好的变化弹性。

图3-3 RNoT与OPN对比一

  这是一个RNoT与OPN在测试数据上的对比效果。左边第一行Input栏展示带有Mask(灰色像素即为需要填补的区域)的输入帧,右边Memory里边展示了4帧可见的相邻帧(时域信息就在这些帧里面找),左边第二行展示OPN(按圈擦除)的输出效果,左边第三行展示RNoT(单次擦除)的输出效果,左边第四行是参考的真实图像。

  从结果可以看出,对于仅限于单次擦除的RNoT,其还原效果也要优于按圈擦除的OPN,主要体现在对于人物嘴巴、眼睛以及领带等细节内容的捕捉和重建上,RNoT具备有更好的精度和准确度。

图3-4 RNoT与OPN对比二

  这是第二个在验证集上更详尽的对比。由于验证集的场景非常复杂,对于精细内容的捕捉和重建就更有难度。可以看出,如果都放在单次擦除的限制下比较,OPN一次比较所能提取、重建回的信息依然有很多缺失(左边第三行),但是RNoT可以基本准确的还原回图像的主要信息(左边第二行);如果放在不限次数的擦除下比较,OPN的整体效果还是略胜RNoT一筹(左边第四行),但是其时间计算开销是远远高过RNoT的。也许有人会好奇,如果将RNoT也改成按圈多次擦除会怎样?很遗憾,因为RNoT的计算方式是Region Normalization(区域归一化),即将图像当作整体去作归一化以提取结构信息,所以如果按圈擦除的话会破坏结构信息的统一性,导致圈与圈之间出现错位与扭曲

图3-5 RNoT细节展示

  上图是一张更清晰的图片展示RNoT具备一定的高信息精度提取与重建能力。

图3-6 RNoT的缺陷

  当然RNoT也不是万能的,它也具备一定缺陷和进一步改良的空间。

  首先第一个缺陷,也是Region Normalization本身就具有的缺陷,即容易出现色偏。特别是在浅色系背景或者强光条件下,RNoT的还原内容会明显与周围内容出现不一致的颜色偏差,这在视频中会明显展露出来。究其原因可能是RN过分将注意力关注了在图像的结构信息上,而导致对颜色的不敏感。

  第二个缺陷,也是OPN乃至整个隐式擦除架构容易具有的缺陷,就是时域不一致前后帧由于局部像素变化大导致播放时产生异常抖动的效果,视频中出现模糊伪影),这在视频测试时时常出现。究其原因,是因为隐式的擦除架构都是单帧与单帧的独立比较,而忽略了帧的次序与连贯性;相比之下,显式的擦除模型(例如光流或3D卷积)就非常在意帧的时间顺序,因此其修复视频在时域上就会更为流畅与统一。总而言之,显式和隐式的擦除模型还是存在很多可以相互借鉴、共同改良的地方。

Ⅳ· 探索更实际好用的视频擦除框架

  前两节展示的是我在某研究机构实习期间的作品,所提出的RNoT实现了更好的内容提取精度,但是坦白说做的有点复杂,不大适合在实际的落地场景下应用。

  在回校后的一段时间,我继续追求面向实际应用的生成算法研究。我最终用一种更简洁有效的方法实现了一款模型,尽管框架较为简单但是落地性能出色,且具备面向不同子任务的衍伸能力,简单来说,以字幕擦除为例,由于其更注重时域一致性(即隐身效果)而不太重视内容重建,因此可以利用3D-CNN+Transformer的思想去做(类似于STTN)。有趣的一点是,由于3D-CNN具有良好的时域感知性(即字幕会在很多帧中重复出现所以3D-CNN较容易感知到字幕的位置),所以我们不需要引入Mask、直接让模型自行感知字幕位置并进行擦除即可。

图4-1 STTN模型架构

  当然仅仅使用3D-CNN还不足以让模型达到对于特定目标具有准确感知的能力,下面介绍一种非常简单的小技巧。

图4-2 Logo擦除:依据数据逻辑进行Loss的改良设计

  以Logo擦除为例,由于Logo具有位置固定、内容固定的特点因此我们可以对于每一组序列图片,计算出其输入和输出的差值二值化图像(https://mapengsen.blog.csdn.net/article/details/123200463),并在时域上计算所有二值化图像的方差,最后将方差加在Loss上就可以了。理由是,如果模型擦除的位置或内容不一致的话,方差会比较大,最终拖累loss的值。实验表明,这种先验知识的引入对于提升效果还是挺有帮助的;对于其他类型的任务,我们也可以依据对应的数据逻辑进行相应的改良设计。

视频擦除方向研究(生成技术的一类)相关推荐

  1. 短视频内容理解与生成技术在美团的创新实践

    点击上方"LiveVideoStack"关注我们 美团围绕丰富的本地生活服务电商场景,积累了海量视频数据.如何通过计算机视觉技术用相关数据,为用户和商家提供更好的服务,是一项重要的 ...

  2. 对计算机技术的发展方向研究,网络技术发展对计算机技术的影响

    当前形势下,网络技术的不断发展对计算机和信息技术发展产生重要影响,计算机和信息技术借助网络技术发展实现更高标准的发展,对人们的生活方式和社会发展都产生重要影响.为了弄清网络技术发展对计算机及信息技术的 ...

  3. 全景封面视频生成技术在淘宝的应用

    双促期间,淘宝产出了大量的高质量全景视频,并且根据业务配置生成了大量的封面视频.封面视频在双促期间有了大量的曝光和引导观看.在本地化会场,封面视频承接的模块点击率提升了 2 倍. 为什么全景视频如此吸 ...

  4. 超分辨率技术在实时音视频领域的研究与实践

    前言 近日,计算机视觉和模式识别领域顶级会议 CVPR 在美国新奥尔良市举办,同时计算机图像恢复领域最具影响力的全球性顶级赛事 NTIRE 在会上颁奖,网易云信音视频实验室取得 NTIRE 高效率超分 ...

  5. 基于HTML模拟系统自动报告生成技术的研究与开发[开题报告]

    开题报告   一.课题题目 基于 HTML 模拟系统自动报告生成技术的研究与开发 二.课题内容及任务要求 本课题的主要目的是自动生成HTML格式的分析报告文档: 1. 对华铸CAE数据可以自动获取 2 ...

  6. 【语音之家】AI产业沙龙—火山语音在AI视频译制方向的技术探索与实践

    由CCF语音对话与听觉专委会 .中国人工智能产业发展联盟(AIIA)评估组.火山语音.语音之家.希尔贝壳共同主办的[语音之家]AI产业沙龙-火山语音在AI视频译制方向的技术探索与实践,将于2022年1 ...

  7. 自动生成Android界面,面向Android的Web Service界面自动生成技术研究

    摘要: 据统计,开发人员在开发应用程序的过程中,接近一半的代码用于用户界面部分,大约一半的运行时间用于执行这一部分.所以,减少用户界面部分的开发代码和运行时间,能有效提高程序的运行效率.智能家居中,由 ...

  8. python脚本语言采用声音作为手段_LKJ自动化测试脚本定义及生成技术研究

    LKJ 自动化测试脚本定义及生成技术研究 白鸿钧,张明凯,李冠军,杨清祥 [摘 要] 摘要:为实现对列车运行控制系统软件的自动化测试,在通用脚本语 言的基础上定义专用的脚本语言,讨论专用脚本语言的结构 ...

  9. Java支持latex,基于Java和LaTeX的文档自动生成技术研究

    基于Java和 LaTeX 的文档 自动生成技术研究 ◆尚宝欣 徐 屹 (东北电力大学理学院,吉林 长春 132012) [摘 要]讨论了结合Java与LaTex 自动生成 PDF文档的方法.针 展名 ...

最新文章

  1. AI专利之争:小米超华为,国家电网才是大Boss?
  2. 解答:CF截图保存在哪
  3. BIND 子域授权的实现和区域转发实现
  4. python中 __str__和__repr__
  5. 笨办法学C 练习6:变量类型
  6. P2261-[CQOI2007]余数求和【数论,约数】
  7. C语言简单的练习题目——牛生牛
  8. 点击button自动提交表单原因及解决方案
  9. 阻止具有特定文件扩展名的附件的电子邮件
  10. 计算广告(computational advertising)
  11. Linux 线程绑核(以后研究)
  12. hdu 6058 Kanade's sum
  13. apk破解工具介绍与使用
  14. 8款受欢迎的代码编辑器,你值得拥有!
  15. 【南航计算机网络实验】Ping 命令的实现
  16. 把数字翻译成字符串(动态规划)
  17. Ubuntu安装WebStorm
  18. item_search - 根据关键词取拼多多商品列表
  19. 以某乎为实战案例,教你用Python爬取手机App数据!居然有人说爬不了APP!
  20. 分布式能源的不确定性——风速测试(Matlab代码实现)

热门文章

  1. Essentials of Deep Learning: Visualizing Convolutional Neural Networks in Python
  2. 重新添加MySQL服务
  3. 平均负载及CPU上下文切换
  4. 二,表格table的使用细节
  5. 图形用户界面和交互输入方法---图形数据的输入功能
  6. 盖茨为什么会要求对机器人收税?
  7. flash 基础语法
  8. **CI中使用IN查询(where_in)
  9. Java替代C语言的可能性
  10. pfring(pf_ring)编译安装