机器之心原创,做者:邱陆陆。html
做为(伪)AI 行业从业者,之心编辑部里的小伙伴们自认都可以以不错的置信度人工识别「人工智能与人工智障」。可是,当我把下面这张爱奇艺 app 的截图放在你们面前时,编辑部的「识别器」们纷纷表示,此次置信度不高。算法
热门视频里,「弹幕盖脸」几乎是必然事件,然而这个视频里,密密麻麻的弹幕都仿佛被李健老师的气场所折服,很是准确地「绕开」了他英俊的脸。偶尔还会有一些小失误,但这样的失误反而显得更像是算法而不是人工作出来的。并发
在学界,一个众所周知的事实是,尽管在目标检测任务里,数家巨头研究团队都在论文中报告出了「超越人类」的结果,图像分割任务彷佛仍然给研究者们留下了不小的进步空间。谷歌今年 2 月发表的 DeepLabv3+,在利用 3 亿张内部数据作预训练的前提下,在 PASCAL VOC 2012 数据分割数据集上拿到了当前的最佳效果(state-of-the-art),IOU 89%。在 Cityscapes 数据集上,这个数字仅仅是 82.1%。app
给定这样的研究水平,图像分割技术已经能够用于业界了吗?爱奇艺应用里看起来很是可观的「人脸与背景分割」,到底是基于人工智能仍是基于人工?带着全编辑部的一箩筐问题,咱们一路展转,联系到了爱奇艺技术产品中心,而且捉到了这项名为「AI 弹幕蒙版」项目的算法负责人,爱奇艺技术产品中心研究员,冯巍。他给了咱们很是详尽的答案。学习
问题一:是否是分割?是什么分割?测试
首先是咱们最关心的问题仍是:这个「弹幕蒙版」到底是人工智能仍是人工:优化
是否是图像分割?是!是哪种图像分割?语义分割(semantic segmentation)!人工智能
更确切地说,是一个有两个类别的语义分割:图像里每个像素都会被分配到「前景」类别或者「背景」类别,而后系统会基于分割结果生成对应的蒙版文件。设计
算法正是基于谷歌 DeepLabv3 模型,技术团队也尝试过 FCN 等其余分割模型,可是 DeepLab 的模型效果确实有突破。orm
冯巍也向咱们展现了一些在综艺和影视剧场景下的分类结果。
v.qq.com/x/page/z135…(中国新说唱弹幕蒙版效果)
为何会想要用图像分割作「弹幕蒙版」?
爱奇艺团队的图像分割技术做为技术储备已经储备了至关长时间了,初衷是想用于短视频的背景替换。
所谓背景替换,就是把用户录制的短视频里的人像抠出来,换到另外一个不一样的背景里。可是从技术角度来说,单张图像分割效果合格不等于视频分割效果合格:分割结果在视频先后几帧图像中稍有不连续,就会形成帧间分割边缘不停地抖动,而这样的分割不连贯是很是影响用户体验的。
那么有没有要求比背景替换低一点的场景?有,好比那就是保留原始背景,在原始背景和分割出来的人像层中间插入动态背景。这样分割边缘和原始背景仍然在一块儿,偏差就不那么明显。这也是弹幕蒙版的来源了。
「技术 ready 了以后咱们就一直在不一样业务部门 demo 本身的各类能力,这样产品的同窗就能想出不少好的点子。」冯巍说。
实际上,弹幕蒙版里用到的深度学习模型不仅是分割,还有识别。在对视频进行分割前,「景别识别模型」会先对每一帧图像进行一次识别,判断当前帧属于近景仍是远景。
这个景别识别任务,目的是判断图像是不是特写或近景镜头画面,这样的图像才会进入到分割模型中生成蒙版,而远景画面则不会生成蒙版,弹幕会像原来同样覆盖整个画面。这样一来,帧间蒙版抖动的问题就获得了很好的解决。
值得一提的是,这个景别识别分类器也是一个已有技术积累换了个场景再利用的例子:以前这个分类器主要用于爱奇艺的智能辅助后期制做等功能。
分割结束以后,系统会进一步利用「腐蚀」和「膨胀」等图像形态学处理算法对分割模块输出的前景区域进行精细的剪裁,并根据应用场景的须要删掉画面占比小的前景区域。
通过这一系列的处理以后,才进入到蒙版文件的生成、压缩等生产流程。
问题二:需不须要本身标数据?标了多少数据?
答案是须要!标了数万张。
通用的分割模型都是用 MS COCO 等通用数据集进行的训练,直接用在综艺场景上效果就很是通常了。
「场景切换和舞台光是两个通用分割模型很难处理好的问题。因此咱们本身挑了数万张典型场景的图像,标注团队先后花了三周时间。」冯巍说。
训练集和测试集的分布一致性也获得了很好的保证:「咱们第一个上线弹幕蒙版功能的节目是《中国新说唱第二季》,因此咱们就用《中国新说唱第一季》以及同一个拍摄团队创做的《热血街舞团》作了训练集。」
值得一提的是,由于系统最终并不须要蒙版的分割「精细到头发丝」,因此标注工做也相对于通常的语义分割标注也更为容易一些,冯巍展现了一些补充训练集里的样例,「并不须要精细到像素,用直线把人物部分框出来就好了」。
通用语义分割模型使用专用数据集作了全盘精调以后,IOU 从 87.6% 提高到 93.6%。
问题三:效率怎么样?快吗?贵吗?
推理阶段,一台 GPU 分割 1 分钟的视频,大约须要数分钟,仍然在 O(1) 时间以内。
实际生产中,系统也常常遇到比较严苛的时间需求。「《中国新说唱》的制做团队有必定的保密要求,好比节目周六八点要上线,咱们可能四点钟才能拿到片子。因此咱们经过视频分片数来控制生产服务的并发,并在全部分片完成后再经过消息队列通知业务层,每一个分片的生产有单独的状态监控和重试机制。最终系统同时使用了 多台 GPU,处理一段 90 分钟的视频大概须要 40 分钟。」
团队也在测试将弹幕蒙版用于晚会直播等实时场景中了。
问题四:有什么「升级」打算?除了防止「弹幕盖脸」以外还能作什么?
首先,防止「弹幕盖脸」也存在升级版,好比从语义分割升级到实例分割,把「全部人的防挡弹幕」变成「你爱豆的专属防挡光环」。
图像分割任务也分为好几种,语义分割只要求系统把全部图像里的「人」都分到「类别人」里就好。除此以外,还有须要将不一样人物分入不一样类别的「实例分割」(instance segmentation)以及连背景都不放过的「全景分割」(panoptic segmentation)。
爱奇艺的技术团队也在研究基于 MaskRCNN 的实例分割,辅以爱奇艺的长项:明星人脸识别,尝试作「粉丝专属弹幕蒙版」。
「举个例子,若是你喜欢吴亦凡,那么其余明星出来的时候,弹幕仍是会把他们挡住,只有吴亦凡出来的时候,弹幕会绕过他。」听起来是很是符合粉丝心理学的设计了。
还有一种是拓展一下语义分割里类别的边界。好比,能不能分出镜头焦距内的像素和焦距外的像素。
这个想法也来自于实际需求:「《延禧攻略》里,分割模型不光会识别出占了镜头主要位置的主角,和主角一块儿出现的、角落里一个在焦外的、彻底虚化了的小太监的背影也会被分割出来。而其实后面这部分是不须要的,分出来反而影响用户体验。」换言之,系统真正想要分割的是镜头的「焦内」和「焦外」,可是由于如今并无进行这一类特定分割任务的模型,因此就用「有人物出现的部分」做为「焦内」的指代了。那些指代得没那么好的状况,也仍然是一个须要解决的问题,开发一些新的分割门类,或许是一个解决方案,可是这就不是数万张精调数据可以就解决的问题了。
而就算是语义分割自己,也还能拓展出不少不同的应用场景,例如,商品的识别,也大有用处。
「好比一个手机厂商赞助了某一个节目,可是它并非咱们平台的赞助商,咱们就须要把商标打码,或者把商品抽取出来替换掉。这个工做如今仍是编辑手工完成的。」
除此以外,还有跟踪算法和分割算法的结合、用于移动端的模型加速与模型压缩等等……听起来,技术产品中心的研究员们的工做排期已经排到 8102 年了!
回到编辑部和小伙伴们交流完爱奇艺的作法,一点共同的体会是:弹幕蒙版的最终产品效果很是好,一言以蔽之,能够说是摆正对模型效果的指望,「量力而行」。
尽管分割模型还只是个正确率 80% 左右的「宝宝」,可是若是不刻意「刁难」它,而是选择一些不精细分割到头发丝也不影响使用的简单场景,再辅以一系列工程化的作法(例如用识别模型排除场景里困难的状况、经过图形学方法进一步优化分割效果),最终系统仍然能有上佳的成品效果。
虽然深度学习的思想是端到端的,可是须要正视的问题是,现实永远比训练集更复杂,在「一步登天」的模型出现以前,把「登天」的过程像「把大象放进冰箱」同样分红三步,拿到一个可用的版本后再用迭代的方法解决新问题,是否是也是一个不错的选择?