开发者学堂课程【视觉AI应用开发课程:达摩院视觉 AI 技术应用探索】学习笔记,与课程紧密连接,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/749/detail/13215
达摩院视觉 AI 技术应用探索
内容介绍:
一.视觉生产定义
二.视觉生产分类
三.视觉生产通用基础框架
四.视觉生产五个关键维度
五.精细理解-分割抠图
六.视觉生成-鹿班
七.视觉编辑
八.视觉增强
九.视觉迁移
十.视觉制造
十一.视觉公共云平台
介绍的主要是视觉生产技术的探索与运用,这个技术的介绍稍微偏基础,但是还是有很多有趣好玩的事情,也就是说以基础来创造一些有趣的东西,然后跟大家一起分享和探讨。
今天的主要内容,因为可能大家一开始对视觉生产不太熟,所以先有一个简单的定义、分类。然后是对于视觉,因为视觉包含很多个方面,主要是有图像的、视频的、3D 的视觉,所以对于这些怎么进行精细的理解,基于这些理解怎么做为一个视觉生成,以及视觉编辑,视觉增强、迁移、制造,这些技术统称为视觉生产技术,是比较有意思的一个技术方向。
一.视觉生产定义
视觉生产其实跟平时理解的视觉理解,是视觉免疫最大的两个主要的技术方向,视觉理解包括怎么去认识或者检测、分割这个世界,是视觉技术的一大模块。另外给视觉生产一个简单的定义就是通过一系列的视觉过程,同时能产生一个新的视觉表达,这个产出必须要产出人能够看得着、能感觉到的图像或视频,或者机器能够识别的特定的一些视觉表达,可能跟识别分类得到的标签或者特征抽取得到的特征是不太一样的,所以产生是一个图像或视频,而且是一个新的视觉表达,比如说不能把一个原始的 enter 进去,然后产出又是一样的,这不能称为一个视觉生产。(视觉生产其实与人类生产过程当中的对应是一样的,人类先认识这个世界,理解这个世界,然后才能够改造或生产世界,这也参考这个过程)。此过程比较简单,输入一些参数、素材,通过过程产生一个结果,这是目前视觉理解研究的和落地的相应多位体,视觉生产相对来说稍微少一点,本次课主要分享这个领域的一些有趣研究和一些落地。
二.视觉生产分类
对于一个图像,起初没有之后有,这其实是零到一的过程,可以称之为生成的过程,这是一个逻辑。第二个逻辑是一副图或者一段视频,怎么拓展到更多的,这是一个视觉拓展的过程。还有一个类似相反的过程,对于大量视频或图形,怎么将其中最重要的,或者是基于某些主题,或者是某些人物,能够摘要浓缩出来的一些信息,它主要是从n到1的过程,这也是视觉生产的一个过程。此外还有个相对特殊的一个升维的过程,看过《三体》能够知道,其中有一个有趣的现象叫降维打击,于类似相反的过程,就是从 A 的 n 维到 A 的 n+1维。这个比较难理解,举个例子,比如近代图像,添加了一个时间轴的信息,就变成了一个视频,这样就添加了一个时间维度。或者一个2D 的图像,变成一个3D 的,也增加了一个维,这就是升维的过程,是一个信息的特别大的补充的过程。此外其他的包括将 A 图转换成 B 图,或者将A增强、修改,变成 B 图,这也是一个生产过程,也就是编辑修改的过程。除此之外还有增删查改,往视频中插入一些信息,或者将若干个合成为一个新的图,也是一种视觉生产或者修改的过程,或者从中取出一些信息。对此做了许多研究,团队对于这几种视觉媒介包括图像的、视频的3D做了研究,此外技术包括视觉生产的技术维度分割、生成、增强等都进行了研究。
上图是目前已经在从事或者已经发布的一些产品,包括鹿班可能以前听多一些,也有可能听着稍微少一些的比如AlibabaWOOD 或者画蝶,可以通过公共云或者专有云、在端上/ C 端也有小程序能够访问这些技术。
三.视觉生产通用基础框架
遵循基础框架(从前面讲到的知识中抽象出来的),比如输入可能是一些素材或者参数或者是已完成的成品或者是一小段视频等,通过一些生产的类型包括通用生产或者合成或者摘要或者变化等,通过视觉生产引擎产生输出。视觉生产引擎基本上分为两大类,一种是基于模型或者知识的正面的生成,比如近现代较热的学术方向更系列的生成。另一种是基于搜索的,比如需要一个东西,通过参数找到类似的再得到结果,是基于搜索或者案例的一种。框架是较为通用的,基于这些事情,需要把产生一个新的视觉表达或者新的图像,所以必须符合一些逻辑。在几年的过程中,总结了一个简单的逻辑,最主要的是五个维度。
四.视觉生产五个关键维度
1.可看
第一个维度因为是做视觉,首先要保证生产出的结果是可看的。比如最开始时产生的图像是奇怪的,不能够理解或者不符合视觉表达,所以必须满足可看的基础条件。
2.合理
必须是合理的,符合语义的逻辑或者物理世界大家理解的认知、感知,内容逻辑是合理的,不能够想要生成蒙娜丽莎却生成了阿凡达,必须要保持合理。
3.多样
产生的结果是多样的,比如双十一时每个人都个性化,每个人得到的图需要有一些差别,不能这个输入产生的结果是同样的,也不合理。
4.可控
生产结果用户需要有一个预期的抓手,比如希望生成的东西做左边有一件衣服右边有另外的东西,而且是什么颜色的衣服,整个系统是可控的一个过程。
5.可用
要为用户带来用户价值或者商业价值,才能够真正的达到可用的状态。
从这五个维度来说,如果视觉生产能够满足这些维度,这个视觉生产过程是比较合理的或者比较正确的方式。
以上讲述的是视觉生产大面上的知识,之后将从一个有趣的过程讲解,就是一个精细的理解。
五.精细理解-分割抠图
为什么说有趣,是因为在视觉组合的两块,一块是视觉理解,一块是视觉生成。视觉理解会主动向前走,最早时只需要知道这是什么,比如该人脸是谁,该物是什么物体,这是个最基础的问题就是识别分类。第二个除了知道这是什么之外,还知道大概位置,用框框框起,这是个目标检测的问题。再进一步,除了知道这是什么以及位置,同时还要知道每一个像素是什么,这是最精细的识别或者叫理解,也称为分割,分割有很多种。提到分割是因为视觉分割是生产的必要前置步骤,只有在特别精细的理解基础上才能进行后续步骤,用一个简单的词:唯能理解,方能生成。
分割在学术界及工业界都进行了很久的研究,随着技术的发展,效果越来越好,但是场景较为复杂,存在复杂背景,怎么将前景分出具有一定难度。其次可能有各种遮挡或者在特定情况下对分割的要求非常精细化。比如广告上的设计,比如一个头像或 logo,每个发丝都非常严格。还有环境、边缘带来的反光、反射,或者材质本身具有一定透明度,比如婚纱本身阳光能够透过,或者玻璃杯对其分割是挺难的。此外目标的尺度不定,使用统一的框架具有一定难度。这些归结为一个难点就是标注的数据和成本非常高,比如标注一个识别或检测只需要几秒,但是使用 PhotoShop 精细化抠图可能需要几分钟,并且需要一定经验积累才可能完成,所以数据积累过程相比于识别和检测是一个数量级的提升。
从该角度,想要完成好分割抠图,首先需要将问题细化。分割也分成几个类别,比如分成语义分割,只需知道图中有什么东西,比如有人,将人分出即可。如果需要知道每一个人,这就是实例分割,是另一个维度的。如果还有特别相关的抠图概念,还需要知道边缘或者每个边缘的像素透明度,可以称为matting 过程。解该过程,首先需要进行复杂问题的拆解,然后将数据样本封装上去。
简单的模型框架分为三个步骤,第一个是粗分割,相对来说对数据的要求不太高,对效果要求具有一定容忍度,适合于大规模,成本低。第二种是精分割,需要知道每一个 alpha 通道等特别精确的信息。精分割的标准网络素质等方面比较高,将两者优势结合,使用质量统一的网络,既能结合粗分割的数据规模大的结果,同时能够兼顾将精确标度、质量统一起来,最后得到输出。
举例比如做发丝级精度,从直播角度或许不清楚,但实际上每根头发的维度不连在一起都做了许多改进。例如中间的商品与背景的镂空比较难以保持细节完整,在此也做了许多实验,也包括背景比较复杂,相似度容易混淆难以区分的问题。目前分割图投入很大的资源,已经是一个成熟的产品,可以直接访问,并且通过许多业务渠道,支持阿里许多业务的使用。
另一个维度效果人像抠图拓展,该效果为从粗到细,比如一个人分割出一块比如脸部、头发,在娱乐互动或者交互、线下场所等都有作用。从人到头发到脸最后到五官进行分割,都是针对这一系列精细化的常用的操作,在许多场景有作用。
除了静态图分割,也完成了许多动态图分割。比如将人动态的分割出来,动态分割有的是在端上的分割,需要考虑性能,有的电视或者媒体性能不高的情况下进行。
针对动物、车、玩具、商品的,都是针对物的分割,此外还有针对场的分割。阿里经常说一个术语:人或场,虽然分割可以大量分割,针对人、物包括商品,举例可能觉得分割物并无区别,但是车的分割存在许多细节。比如车的窗户背景与草等植物融合在一起,如果分割出来后,草的背景还存在就不太真实,所以针对透明窗户做了一套处理。
针对场的分割,在许多自动驾驶、室外拍摄等情况下可以使用,将场景分割包括天空、树等进行分割。
将视觉进行像素密度的理解之后,对包括修改、解决遮挡问题、精细合成等具有特别大的用处,视觉分割是视觉生产的前置步骤。
六.视觉生成-鹿班
鹿班目前是视觉生产在业界落地的先行者,已经大规模使用在线的AI服务,目前已产生几十亿量级的图片,不仅在内部,可通过 aliyun.com 对外提供服务。
框架流程主要是分为几个大步骤,首先希望生成什么样的结果,将需求写出,达到一个可控的状态,生成一个粗理解的结果,再生成细理解的结果,再调整细节,与分割类似。
优点包括能够按照一张图生成,该过程既要使用分割又要使用生成,或者希望满足人群、场景、促销活动等不同的图片都能够生成。该过程实际上还能够更傻瓜化,比如给一张图,通过人工还原的机器学习,还原一个图层,图层是由一层层 PSD 构成,还原之后进行视觉拓展,将一个 PSD 拓展成一百个或者更多,然后将 PSD 中不同的图层自由的替换,替换存在许多逻辑比如搭配合理性、颜色合理性、大小合理性等,获得一个新的结果,该过程也是场景化涉及的能力。基于该能力建立了针对各个行业设计的基本逻辑,可以做到素材管理、设计及应用。由于生产得到的图像可能是头发可能是广告,将完整的链桥都完成。比如在娱乐行业与优酷的合作,自动产生兼具个性化的图,或者与央视国家级风格偏积极向上的调性或者根据宝宝树母婴的调性生成,实际上是偏向行业的解决方案。
AlibabaWOOD 实际上是一个短视频设计生成,最开始还是针对电商领域的,实际上是阿里云成熟的一个产品。
目前框架包含素材准备,做很多特效,可能是基础特效或者是智能特效,根据视频内容制作,然后讲成一段故事,短视频转场合成和镜头拼接的过程,再此过程之后进行微调、渲染再投放,这个生成框架相对比较复杂。比如针对一些视频,在阿里巴巴功能上有现成的产品。先前是希望从零到一产生一个图片一个视频,另一个存在一些视频,将视频中最吸引人的最能表达主题的摘要出来。摘要从极端来看可分为两种,一种是几秒几秒的视频,一种是摘图片变成封面,封面在广告或者优酷或者爱奇艺第一屏是一些动态内容展现或者图片的方式。提取图片需要知道视频中哪个图片最能表达主题,同时质量特别好,符合美学要求,还要进行处理、增强,同时考虑封面从多帧中查找拼接起来查找故事对抗性,都值得研究,这点是基于视觉理解进行的。
七.视觉编辑
编辑一般有增删查改,比如在视频中让用户无感的添加一些东西,比如电视剧植入在墙上的图片,或者电影植入车背后的东西也是自动插入的,技术难点高并且用处大,现在广告很多都是侵入式的或者用户体验特别差,使用户感官降低的情况下又能体现广告的效应,这时该技术便派上用场。投放技术难点比如分镜检测、广告位检测、广告位跟踪、遮挡检测、视频插入的与原内容调性进行匹配与光影渲染,组合起来形成视频植入的解决方案。检测空间室内场景是否适合插入广告,检测之后要遮挡、移出屏幕等跟踪,在动态图像中也需要跟踪处理。
另一维度视频或图片是现成的,其中有一不想要的东西需要擦除,这是一个刚需且有技术难度的事情。比如定位擦除之后分割,再填上其它像素,使得感官降低,典型场景包括字幕擦除、台标擦除、广告擦除等。例如左右摆动的竖线将字幕擦除,用处有例如士兵突击以前字幕质量差,将其擦除转为高清后打成新字幕,又如加油站或商标中不要的文字将其擦除。另一类 logo 擦除,许多视频来着不同播放者,将其台标 logo 去除,目前的方法较为粗暴多为添加马赛克,同时能够去除且降低视觉感官是非常有用的。此外还能去除广告。
以前拍的电视也许是较老的屏幕,现在高清时代有各种不同的篇幅,可以自动做一些变化,同时保留屏幕中最主要的内容。这可以分为两种,一种是裁去一些信息,保留最主要的视觉内容,还有一种是内容补全。
图像编辑是鹿班在广告设计中比较成熟的技术。提供一种尺寸变成不同尺寸的,能够在不同情况下自动适配。
八.视觉增强
对视频内容进行增强有多个维度。人脸增强、去噪声或者增强色彩或者去划痕,许多都从属于视频增强的范畴。现在许多4K 高清、8K 高清会随未来的宽带或者超高速网络的普及越来越多,但内容不多,所以将存量不高的通过技术增强变成可以符合4K、8K 或者更高清的要求,这是非常有价值有意义的事情。国家对4K 有严格的定义包括分辨率方面、帧率方面、色彩方面,针对这三个方面做了许多技术。
人脸是人所有信息中最重要最凸显的目标对象,对其增强修复,一种是低分辨率到高分辨率的增强,第二种是其中信息的还原包括修复信息。
低分辨率图像将其中一个目标拿出有各种各样形状做了几倍的超分图像,将锯齿划痕大幅提高,可以用在动画渲染、CG 渲染,非常耗时间与计算力,如果通过渲染低分辨率的得到高分辨率的可以节省大量算力资源,同时不过分降低用户感官。
起初十分模糊的视频,经过技术修复,清晰度与视觉表现力得到提升,视频超分其实是分辨率的变化。
刚发布的手机会有刷新率就是卡动感明显、帧率低,尤其在高速运动时,需要进行插帧的动作。除了电影、媒体之外,在视频、开会中也有该现象出现,比如在直播过程中出现卡顿、丢帧等问题都可以使用类似技术改善该现象,提升用户体验。
与之类似的 HDR 色彩扩展,对色彩进行增强。雾蒙蒙不清晰的经过处理后通透感与色彩明亮感具有明显的提升。在分辨率、帧率及色彩上,能够达到国家4K的标准,该技术便能在许多地方发挥用处。
视觉增强是从 A 到 B,从差到好的过程,该过程既可以使用在媒体上,也可以使用在端上或者低性能设备比如手机或者监控设备上,大大提升效果,既可以针对人的用户感知,也可以针对机器,增强之后,机器更容易识别、理解。
九.视觉迁移
做风格化比如梵高的画变换风格,最早的风格变换可能用的方法是相对简单的transform,当相对学习出现尤其 slight 变style 论文发表之后,可能都是使用后面一系列的方法。方法有两个比较大的问题就是转化风格之后,细节发生丢失,油画感特别重,想要的信息缺失。想风格化的地方风格化,不想风格化的地方比如五官保持一定清晰度,针对这点做了研究。Attention 保留哪些地方保留哪些区域是信息表达特别重要的,使用不同尺寸大小的笔触,针对重要的信息使用风格化笔触细腻的,在不重要不凸显的区域使用比较大的笔触尺寸,进行不同的风格化,保持重要地方细节保留多,不重要地方完全风格化。
做一张图,将颜色迁移到另一张图上。从前通过人工方式去调,但是如果能够通过机器比如四张天猫酒水节的广告,将酒水瓶的主体不变,将字体和背景颜色更换,这时使用该技术。变换之后需要保留搭配关系,这个关系要是合理的,同时不能变换主体商品。
十.视觉制造
之前大部分的处理都针对数字场景,比如输入输出都用在数字内容中,视觉制造除了数字内容会跟真实的生产制造关联。视觉制造是从实际设计制造痛点当中来的,比如设计包装或者服装,效率是非常低的,需要多次打样,多次沟通,需要耗费十多天才可能真正从提出需求到最后服装设计完成。视觉制造的核心逻辑能够改善,具有许多用处,基本的就是能够根据用户需求比如顺应潮流或者图形化描述,生成数字化结果,结果可以经过渲染得到真实的图片或视频进行广告营销,也可以将数字结果还原到生产想要的比如直接做包装或者衣服。最主要的几个技术描述:生成几何模型,3D 视觉很重要的几个概念比如白模、纹理、贴图、环境光照等,最重要的是依靠机器产生更多样的结果,结果再打开生成版图,再进行生产。其中还包括自动布局、优化材质工艺,使得渲染效果更好。此外涉及得到商品后和背景融化生成完整的场景图再生产,该技术称为2D3D 融合。三维中除了包装还可以使用在服装上,服装情况会比包装更为复杂,而且因为服装是软体,行业支持非常多,所以做了许多投入积累。比如最重要的能力将服装设计行业用到2D 版图转为3维图形,再进行多样性生成,再纹理贴图或者环境变化,最后得到动态的结果,且结果符合物理效果。多样性拓展能够从纹理变化、风格变化上产生更多的结果,实际上也是视觉生产五个维度中满足多样性。机器操作能够在保持合理性的前提下满足多样性的需求。
运用视觉迁移及融合技术将花纹与服装能够融合,产生比较合理的视觉表达或视觉效果。
十一.视觉公共云平台
此前所涉及的知识都提供了一个公共平台可从中获取。
视觉API开放平台主要是针对基础的原子能力与能力组件赋能其他产品和解决方案,一系列生产技术都可以看成一个原子能力。比如官网 vision.aliyun.com 中大概有八十多种 API 能力,这种能力既覆盖生产能力也覆盖经典的人脸人体或者审核或者文字识别或者分割等,这些能力目前有十四个大类,一百多个子代API。该平台效果及性能都非常好,能力来自于阿里各种实战,所以比较实用,且较为多样化,使用也较为容易,能力构架基本荟萃了整个阿里几百个能力也分为若干种包括原子调用、搜索类或者组合的能力。这些能力是之前举例的组合,比如目前新冠肺炎期间,平台迅速做了一个公共场所口罩检测的系统:神荼,使用了人脸识别和人脸口罩识别,融化迁移一系列的算法。广告自动植入系统包括场景识别、分割能力、跟踪等都是通过该功能平台。服装设计也是从中组合的。