如何自己搭建cv模型(0代码体验效果1行实现推理)

作者:谢宣松 阿里达摩院开放视觉智能负责人

编辑:好困

【新智元导读】11 月 3 日,在 2022 云栖大会上,阿里达摩院联手 CCF 开源发展委员会共同推出了 AI 模型社区「魔搭」ModelScope。本文,阿里达摩院开放视觉智能负责人谢宣松,深入解析了魔搭社区里首批开源的 101 个视觉 AI 模型。

计算机视觉是人工智能的基石,也是应用最广泛的 AI 技术,从日常手机解锁使用的人脸识别,再到火热的产业前沿自动驾驶,视觉 AI 都大显身手。

作为一名视觉 AI 研究者,我认为视觉 AI 的潜能远未得到充分发挥,穷尽我们这些研究者的力量,也只能覆盖少数行业和场景,远未能满足全社会的需求。

因此,在 AI 模型社区魔搭 ModelScope 上,我们决定全面开源达摩院研发的视觉 AI 模型,首批达 101 个,其中多数为 SOTA 或经过实践检验。我们希望让更多开发者来使用视觉 AI,更期待 AI 能成为人类社会前进的动力之一。

如何自己搭建cv模型(0代码体验效果1行实现推理)(1)

魔搭社区地址:modelscope.cn

背景

AI 模型较为复杂,尤其是要应用于行业场景,往往需要重新训练,这使得 AI 只掌握在少数算法人员手中,难以走向大众化。

而新推出的魔搭社区 ModelScope,践行模型即服务的新理念(Model as a Service),提供众多预训练基础模型,只需针对具体场景再稍作调优,就能快速投入使用。

达摩院率先向魔搭社区贡献 300 多个经过验证的优质 AI 模型,超过 1/3 为中文模型,全面开源开放,并且把模型变为直接可用的服务。

社区首批开源模型包括视觉、语音、自然语言处理、多模态等 AI 主要方向,并向 AI for Science 等新领域积极探索,覆盖的主流任务超过 60 个。

模型均经过专家筛选和效果验证,包括 150 多个 SOTA(业界领先)模型和 10 多个大模型,全面开源且开放使用。

概要:以人为中心的视觉 AI

这些年来,达摩院作为阿里巴巴的基础科研机构和人才高地,在阿里海量业务场景中研发出一批优秀的视觉 AI 能力,分布在各个环节:

如何自己搭建cv模型(0代码体验效果1行实现推理)(2)

这些视觉 AI 技术,几乎覆盖了从理解到生成等各方面。因视觉技术任务众多,我们需要有一个相对合理的分类方法,可以从模态、对象、功能、场景等几个维度来分:

如何自己搭建cv模型(0代码体验效果1行实现推理)(3)

魔搭社区首批开放了主要的视觉任务模型,这些模型即有学术创新的 SOTA 技术,也有久经考验的实战模型,从「功能 / 任务」的维度上,涵盖了常见的感知、理解、生产等大类:

如何自己搭建cv模型(0代码体验效果1行实现推理)(4)

虽然视觉技术有点庞杂,但其实有个核心,那就是研究「对象」,「人」一直以来都是最重要的「对象」。「以人为中心」的视觉 AI 技术,也是研究最早最深、使用最普遍的技术。

我们以一个人的照片作为起点。

AI 首先需要理解这个照片 / 图像,如识别这个照片是谁,有什么动作,能否抠出像等。

然后,我们还需要进一步探索:照片质量如何,能否画质变得更好,其中的人能否变得更漂亮,甚至变成卡通人、数字人等...

如何自己搭建cv模型(0代码体验效果1行实现推理)(5)

如上的 7 个「人」相关的流程,基本涵盖了视觉任务中的「理解」、「增强」、「编辑」等大类,我们以魔搭社区已开放的相关模型为实例,来分享以人为中心的视觉技术的特点、优点、示例以及应用。

感知理解类模型

1. 从照片抠出人像

模型名:BSHM 人像抠图

如何自己搭建cv模型(0代码体验效果1行实现推理)(6)

体验链接:https://www.modelscope.cn/models/damo/cv_unet_image-matting/

从照片抠出人像,去掉背景,是一个非常普遍的需求,也是「PS」的基本操作之一,但传统人工操作费时费力、且效果不佳。

魔搭提供的人像抠图模型,是一个 全自动、端到端的人像抠图模型,能够实现发丝级别的精细分割。

如何自己搭建cv模型(0代码体验效果1行实现推理)(7)

如何自己搭建cv模型(0代码体验效果1行实现推理)(8)

技术上我们也进行了创新,不同于其他模型基于大量精细标注数据训练的方法,我们的模型使用粗标注数据就能实现精细抠图,对数据要求低、精度高。

具体来说,模型框架分为三部分:粗 mask 估计网络(MPN)、质量统一化网络(QUN)、以及精确 alpha matte 估计网络(MRN)。

如何自己搭建cv模型(0代码体验效果1行实现推理)(9)

如何自己搭建cv模型(0代码体验效果1行实现推理)(10)

我们首先将复杂问题拆解,先粗分割(MPN)再精细化分割(MRN)。

学术界有大量易获取的粗分割数据,但是粗分割数据和精分割数据不一致导致预期 GAP 很大,故而我们又设计了质量统一化网络(QUN)。

MPN 的用途是估计粗语义信息(粗 mask),使用粗标注数据和精标注数据一起训练。

QUN 是质量统一化网络,用以规范粗 mask 质量,QUN 可以统一 MPN 输出的粗 mask 质量。

MRN 网络输入原图和经过 QUN 规范化后的粗 mask,估计精确的 alpha matte,使用精确标注数据训练。

如何自己搭建cv模型(0代码体验效果1行实现推理)(11)

当然,抠图分割相关的需求非常多样化,我们也上线了一系列模型,支持非人像抠图以及视频抠图等。

开发者可以直接拿来即用,如进行辅助设计师抠图,一键抠图,大幅提升设计效率,或者自由换背景,可实现会议虚拟背景、证件照、穿越等效果。这些也在阿里自有产品(如钉钉视频会议)及云上客户广泛使用。

如何自己搭建cv模型(0代码体验效果1行实现推理)(12)

2. 检测并识别是谁

模型名:MogFace 人脸检测

如何自己搭建cv模型(0代码体验效果1行实现推理)(13)

体验链接:https://www.modelscope.cn/models/damo/cv_resnet101_face-detection_CVPR22papermogface/

人脸检测和识别是一个 AI 经典任务,也是应用最广泛的视觉技术之一;从另一方面看,其对效果和性价比要求非常苛刻。

我们自研的 MogFace 为当前 SOTA 的人脸检测方法,已在 Wider Face 六项榜单上霸榜一年半以上,具体技术论文发表于 CVPR2022,主要贡献是从 label assignment, scale-level data augmentation and reduce false alarms 三个角度改进人脸检测器。

如何自己搭建cv模型(0代码体验效果1行实现推理)(14)

技术上的特点有:

  • Scale-level Data Augmentation (SSE):SSE 是第一个从 maximize pyramid layer 表征的角度来控制数据集中 gt 的尺度分布,而不是 intuitive 的假想检测器的学习能力,因此在不同场景下都很鲁棒;
  • Adaptive Online Anchor Mining Strategy(Ali-AMS):减少对超参的依赖, 简单且有效的 adpative label assign 方法;
  • Hierarchical Context-aware Module (HCAM):减少误检是真实世界人脸检测器面对的最大挑战,HCAM 是最近几年第一次在算法侧给出 solid solution。

人脸检测作为人脸相关的基础能力,可应用于人脸相册 / 人脸编辑 / 人脸比对等场景。

由于人脸相关的模型使用非常广泛,我们也有系列模型的迭代计划,包括 MogFace 中所介绍的技术点除了 HCAM 均无需引入额外的计算量,后续准备打造 SOTA 的 family-based 人脸检测模型;以及真实世界的人脸检测器除了面对减少误检的问题,还面对如何增加人脸检出率的问题,以及他们之间如何平衡的问题,我们正在进一步探索。

3. 人体关键点及动作识别

模型名字:HRNet 人体关键点 -2D

如何自己搭建cv模型(0代码体验效果1行实现推理)(15)

体验链接:https://www.modelscope.cn/models/damo/cv_hrnetv2w32_body-2d-keypoints_image/

该任务采用自顶向下的人体关键点检测框架,通过端对端的快速推理可以得到图像中的 15 点人体关键点。

如何自己搭建cv模型(0代码体验效果1行实现推理)(16)

其中人体关键点模型基于 HRNet 改进的 backbone,充分利用多分辨率的特征较好地支持日常人体姿态,在 COCO 数据集的 AP 和 AR50 上取得更高精度。

同时我们也针对体育健身场景做了优化,尤其是在瑜伽、健身等场景下多遮挡、非常见、多卧姿等姿态上具有 SOTA 的检测精度。

如何自己搭建cv模型(0代码体验效果1行实现推理)(17)

如何自己搭建cv模型(0代码体验效果1行实现推理)(18)

为了更好的适用于各种场景,我们持续进行优化:

  • 针对通用场景的大模型在指标上达到 SOTA 性能;
  • 针对移动端部署的小模型,内存占用小,运行快、性能稳定,在千元机上达到 25~30FPS;
  • 针对瑜伽、跳绳技术、仰卧起坐、俯卧撑、高抬腿等体育健身计数和打分场景下多遮挡、非常见、多卧姿姿态等情况做了深度优化,提升算法精度和准确度。

本模型已经广泛应用于 AI 体育健身、体育测试场景,如阿里体育乐动力,钉钉运动,健身镜等,也可应用于 3D 关键点检测和 3D 人体重建等场景。

如何自己搭建cv模型(0代码体验效果1行实现推理)(19)

4. 小结

上述三个「人」相关的模型,都属于感知理解这个大类。先认识世界,再改造世界,感知理解类视觉技术是最基础、也是应用最广泛的模型大类,也可以分为识别、检测和分割三小类:

  • 识别 / 分类是视觉(包括图像、视频等)技术中最基础也是最经典的任务,也是生物通过眼睛了解世界最基本的能力。简单来说,判定一组图像数据中是否包含某个特定的物体,图像特征或运动状态,知道图像视频中描述的对象和内容是什么。此外,还需要了解一些更细维度的信息,或者非实体对象的一些描述标签。
  • 目标检测的任务是找出视觉内容中感兴趣的目标(物体),确定它们的位置和大小,也是机器视觉领域的核心问题之一。一般来说,也会同时对定位到的目标进行分类识别。
  • 分割是视觉任务中又一个核心任务,相对于识别检测,它又更进一步,解决「每一个像素属于哪个目标物或场景」的问题。是把图像分成若干个特定的、具有独特性质的区域并提出感兴趣目标的技术和过程。

魔搭社区上面开放了丰富的感知理解类模型,供 AI 开发者试用使用:

如何自己搭建cv模型(0代码体验效果1行实现推理)(20)

5. 彩蛋:DAMO-YOLO 首次放出

模型名字:DAMOYOLO- 高性能通用检测模型 -S

如何自己搭建cv模型(0代码体验效果1行实现推理)(21)

体验链接:https://www.modelscope.cn/models/damo/cv_tinynas_object-detection_damoyolo/summary

通用目标检测是计算机视觉的基本问题之一,具有非常广泛的应用。

DAMO-YOLO 是阿里新推出来的 目标检测框架,兼顾模型速度与精度,其效果超越了目前的一众 YOLO 系列方法,且推理速度更快。

DAMO-YOLO 还提供高效的训练策略和便捷易用的部署工具,能帮助开发者快速解决工业落地中的实际问题。

如何自己搭建cv模型(0代码体验效果1行实现推理)(22)

如何自己搭建cv模型(0代码体验效果1行实现推理)(23)

DAMO-YOLO 引入 TinyNAS 技术,使得用户可以根据硬件算力进行低成本的检测模型定制,提高硬件利用效率并且获得更高精度。

另外,DAMO-YOLO 还对检测模型中的 neck、head 结构设计,以及训练时的标签分配、数据增广等关键因素进行了优化。

如何自己搭建cv模型(0代码体验效果1行实现推理)(24)

由于做了一系列优化,DAMO-YOLO 在严格限制 Latency 的情况下精度取得了显著的提升,成为 YOLO 框架中的新 SOTA。

如何自己搭建cv模型(0代码体验效果1行实现推理)(25)

底层视觉模型

1. 照片去噪去模糊

模型名字:NAFNet 图像去噪

如何自己搭建cv模型(0代码体验效果1行实现推理)(26)

体验地址:https://www.modelscope.cn/models/damo/cv_nafnet_image-denoise_sidd/

因拍摄环境、设备、操作等原因,图像质量不佳的情况时而存在,怎么对这些图像的噪声去除、模糊还原?

该模型在图像恢复领域具有良好的泛化性,无论是图像去噪还是图像去模糊任务,都达到了目前的 SOTA。

由于技术创新,该模型使用了简单的乘法操作替换了激活函数,在不影响性能的情况下提升了处理速度。

如何自己搭建cv模型(0代码体验效果1行实现推理)(27)

该模型全名叫 NAFNet 去噪模型,即非线性无激活网络(Nonlinear Activation Free Network),证明了常见的非线性激活函数(Sigmoid、ReLU、GELU、Softmax 等)不是必须的,它们是可以被移除或者是被乘法算法代替的。该模型是对 CNN 结构设计的重要创新。

本模型可以做为很多应用的前置步骤,如智能手机图像去噪、图像去运动模糊等。

如何自己搭建cv模型(0代码体验效果1行实现推理)(28)

2. 照片修复及增强

模型名字:GPEN 人像增强模型

如何自己搭建cv模型(0代码体验效果1行实现推理)(29)

体验地址:https://www.modelscope.cn/models/damo/cv_gpen_image-portrait-enhancement/

除照片去噪以外,对照片的质量(包括分辨、细节纹理、色彩等)会有更高的处理要求,我们也开放了专门的人像增强模型,对输入图像中的每一个检测到的人像做修复和增强,并对图像中的非人像区域采用 RealESRNet 做两倍的超分辨率,最终返回修复后的完整图像。该模型能够鲁棒地处理绝大多数复杂的真实降质,修复严重损伤的人像。

如何自己搭建cv模型(0代码体验效果1行实现推理)(30)

从效果上看,GPEN 人像增强模型将预训练好的 StyleGAN2 网络作为 decoder 嵌入到完整模型中,并通过 finetune 的方式最终实现修复功能,在多项指标上达到行业领先的效果。

从应用的视角,本模型可以修复家庭老照片或者明星的老照片,修复手机夜景拍摄的低质照片,修复老视频中的人像等。

后续我们将增加 1024、2048 等支持处理大分辨人脸的预训练模型,并在模型效果上持续更新迭代。

如何自己搭建cv模型(0代码体验效果1行实现推理)(31)

3. 小结

底层视觉,关注的是画质问题。只要是生物(含人),都会对因光影而产生的细节、形状、颜色、流畅性等有感应,人对高画质的追求更是天然的,但由于各种现实条件,画质往往不理想,这时候视觉 AI 就能派上用场。

从任务分类上,可以分为:清晰度(分辨率 / 细节、噪声 / 划痕、帧率)、色彩(亮度、色偏等)、修瑕(肤质优化、去水印字幕)等,如下表:

如何自己搭建cv模型(0代码体验效果1行实现推理)(32)

编辑生成类模型

1. 变得更漂亮

模型名字:ABPN 人像美肤

如何自己搭建cv模型(0代码体验效果1行实现推理)(33)

体验链接:https://www.modelscope.cn/models/damo/cv_unet_skin-retouching/

人们对照片人像的美观度是一个刚性需求,包括斑点、颜色、瑕疵等,甚至高矮胖瘦。本次我们开放了专业级别的人像美肤、液化等模型供大家使用。

本模型提出了一个新颖的自适应混合模块 ABM,其利用自适应混合图层实现了图像的局部精准修饰。此外,我们在 ABM 的基础上进一步构建了一个混合图层金字塔,实现了超高清图像的快速修饰。

相比于现有的图像修饰方法,ABPN 在修饰精度、速度上均有较大提升。ABPN 人像美肤模型为 ABPN 模型在人像美肤任务中的具体应用。

如下示例:

如何自己搭建cv模型(0代码体验效果1行实现推理)(34)

如何自己搭建cv模型(0代码体验效果1行实现推理)(35)

更进一步,我们还可以在服饰上做一些有意思的尝试,如去皱:

如何自己搭建cv模型(0代码体验效果1行实现推理)(36)

如何自己搭建cv模型(0代码体验效果1行实现推理)(37)

甚至瘦身美型:

如何自己搭建cv模型(0代码体验效果1行实现推理)(38)

体验链接:https://www.modelscope.cn/models/damo/cv_flow-based-body-reshaping_damo/summary

从效果上来说,有如下几点特色:

  • 局部修饰。只对目标区域进行编辑,保持非目标区域不动。
  • 精准修饰。充分考虑目标本身的纹理特征和全局上下文信息,以实现精准修饰,去除瑕疵的同时保留皮肤本身的质感。
  • 超高分辨率的处理能力。模型的混合图层金字塔设计,使其可以处理超高分辨率图像(4K~6K)。

本模型有很强的实用性,比如可应用于专业修图领域,如影楼、广告等,提高生产力,也可以应用于直播互娱场景,提升人像皮肤质感。

如何自己搭建cv模型(0代码体验效果1行实现推理)(39)

2. 变成卡通人

模型名:DCT-Net 人像卡通化模型

如何自己搭建cv模型(0代码体验效果1行实现推理)(40)

体验链接:https://www.modelscope.cn/models/damo/cv_unet_person-image-cartoon_compound-models/

人像卡通化是一个具有很好互动性的玩法,同时又有多种风格可选。魔搭开放的人像卡通化模型基于全新的域校准图像翻译网络 DCT-Net(Domain-Calibrated Translation)实现,采用了「先全局特征校准,再局部纹理转换」的核心思想,利用百张小样本风格数据,即可训练得到轻量稳定的风格转换器,实现高保真、强鲁棒、易拓展的高质量人像风格转换效果。

如下示例:

如何自己搭建cv模型(0代码体验效果1行实现推理)(41)

从效果上来看:

  • DCT-Net 具备内容匹配的高保真能力,能有效保留原图内容中的人物 ID、配饰、身体部件、背景等细节特征;
  • DCT-Net 具备面向复杂场景的强鲁棒能力,能轻松处理面部遮挡、稀有姿态等;
  • DCT-Net 在处理维度上和风格适配度上具有易拓展性,利用头部数据即可拓展至全身像 / 全图的精细化风格转换,同时模型具有通用普适性,适配于日漫风、3D、手绘等多种风格转换。

后续我们也会对卡通化进行系列化的开放,除图像转换外,后续将包含图像、视频、3D 卡通化等系列效果,先放一些效果大家看看:

如何自己搭建cv模型(0代码体验效果1行实现推理)(42)

3. 小结

这类模型对图像内容进行修改,包括对源图内容进行编辑加工(增加内容、删除内容、改换内容等),或者直接生成一个新的视觉内容,转换一个风格,得到一张新的图像(基于源图像且与源图不同),都属于编辑生成这个大类,可以理解成,从 A 图得到 B 图的过程。

如何自己搭建cv模型(0代码体验效果1行实现推理)(43)

行业场景类模型

如最开始所说,视觉 AI 技术的价值体现,在广泛的各类场景中都存在,除了上述「人」相关的视觉 AI 技术,我们也开放了来自互联网、工业、互娱、传媒、安全、医疗等多个实战型的模型,这些模型可以拿来即用,也可以基于finetune训练或自学习工具进一步加工完善,用于开发者、客户特定的场景,这里举一个例子:

模型名:烟火检测(正在集成中)

模型功能: 可做室外、室内的火焰检测以及烟雾检测,森林、城市道路、园区,卧室、办公区域、厨房、吸烟场所等,算法打磨近 2 年,并在多个客户场景实际应用,整体效果相对稳定。

如何自己搭建cv模型(0代码体验效果1行实现推理)(44)

从技术视角来说,本模型提出 Correlation block 提升多帧检测精度,其设计数据增强方法提高识别灵敏度同时有效控制误报。

从应用上来说,模型可应用于室内、室外多种场景,只需要手机拍摄、监控摄像头等简单设备就可以实现模型功能。

结语:视觉 AI 的开放未来

通过上述分析,我们可以发现,视觉 AI 的应用潜能极为广泛,社会需求极为多样,但现实情况却是:视觉 AI 的供给能力非常有限。

如何自己搭建cv模型(0代码体验效果1行实现推理)(45)

达摩院在魔搭 ModelScope 之前,就率先开放了 API 形态的视觉 AI 服务,通过公共云平台对 AI 开发者提供一站式视觉在线服务平台,即视觉智能开放平台(vision.aliyun.com),其中开放了超 200 个 API,涵盖了基础视觉、行业视觉等方面,也包括上面所说的「以人为中心」的视觉技术。

如何自己搭建cv模型(0代码体验效果1行实现推理)(46)

从开放视觉平台到魔搭社区,这意味着达摩院视觉 AI 的开放迈出了更大的一步。从 OpenAPI 拓展到 OpenSDK、OpenSOTA,从公共云到端云协同,从平台到社区,我们希望去满足千行百业对视觉 AI 的需求,希望促进视觉 AI 的生态发展。

如何自己搭建cv模型(0代码体验效果1行实现推理)(47)

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。