解决方案

项目计算框架

本项目采用华为提出的MindeSpore科学计算框架。

昇腾AI全栈

MindSpore科学技术框架隶属于华为昇腾AI全栈。昇腾计算,是基于昇腾系列处理器构建的全栈AI计算基础设施及应用,包括昇腾Ascend系列芯片、Atlas系列硬件、CANN芯片使能、MindSpore AI框架、ModelArts、MindX应用使能等。华为Atlas人工智能计算解决方案,是基于昇腾系列AI处理器,通过模块、板卡、小站、服务器、集群等丰富的产品形态,打造面向“端、边、云”的全场景AI基础设施方案,涵盖数据中心解决方案、智能边缘解决方案,覆盖深度学习领域推理和训练全流程。昇腾AI全栈如下图所示:

昇腾AI全栈

MindSpore科学计算框架

MindSpore是一个全场景深度学习框架,旨在实现易开发、高效执行、全场景覆盖三大目标,其中易开发表现为API友好、调试难度低,高效执行包括计算效率、数据预处理效率和分布式训练效率,全场景则指框架同时支持云、边缘以及端侧场景。

MindSpore总体架构如下图所示,下面介绍主要的扩展层(MindSpore Extend)、前端表达层(MindExpression,ME)、编译优化层(MindCompiler)和全场景运行时(MindRT)四个部分。

MindSpore科学计算框架

MindSpore具有以下设计理念:

  • MindSpore源于全产业的最佳实践,向数据科学家和算法工程师提供了统一的模型训练、推理和导出等接口,支持端、边、云等不同场景下的灵活部署,推动深度学习和科学计算等领域繁荣发展。
  • MindSpore提供了Python编程范式,用户使用Python原生控制逻辑即可构建复杂的神经网络模型,AI编程变得简单。
  • 目前主流的深度学习框架的执行模式有两种,分别为静态图模式(TensorFlow)和动态图(Pytorch)模式。静态图模式拥有较高的训练性能,但难以调试。动态图模式相较于静态图模式虽然易于调试,但难以高效执行。
  • MindSpore提供了动态图和静态图统一的编码方式,大大增加了静态图和动态图的可兼容性,用户无需开发多套代码,仅变更一行代码便可切换动态图/静态图模式,神经网络模型通常基于梯度下降算法进行训练,但手动求导过程复杂,结果容易出错。MindSpore的基于源码转换(Source Code Transformation,SCT)的自动微分(Automatic Differentiation)机制采用函数式可微分编程架构,在接口层提供Python编程接口,包括控制流的表达。用户可聚焦于模型算法的数学原生表达,无需手动进行求导。
  • 随着神经网络模型和数据集的规模不断增加,分布式并行训练成为了神经网络训练的常见做法,但分布式并行训练的策略选择和编写十分复杂,这严重制约着深度学习模型的训练效率,阻碍深度学习的发展。MindSpore统一了单机和分布式训练的编码方式,开发者无需编写复杂的分布式策略,在单机代码中添加少量代码即可实现分布式训练。

MindeSpore具有以下层次结构:

MindeSpore API层次图

MindSpore向用户提供了3个不同层次的API,支撑用户进行网络构建、整图执行、子图执行以及单算子执行,从低到高分别为Low-Level Python API、Medium-Level Python API以及High-Level Python API。

  • High-Level Python API

第一层为高阶API,其在中阶API的基础上又提供了训练推理的管理、混合精度训练、调试调优等高级接口,方便用户控制整网的执行流程和实现神经网络的训练推理及调优。例如用户使用Model接口,指定要训练的神经网络模型和相关的训练设置,对神经网络模型进行训练,通过Profiler接口调试神经网络性能。

  • Medium-Level Python API

第二层为中阶API,其封装了低阶API,提供网络层、优化器、损失函数等模块,用户可通过中阶API灵活构建神经网络和控制执行流程,快速实现模型算法逻辑。例如用户可调用Cell接口构建神经网络模型和计算逻辑,通过使用loss模块和Optimizer接口为神经网络模型添加损失函数和优化方式,利用dataset模块对数据进行处理以供模型的训练和推导使用。

  • Low-Level Python API

第三层为低阶API,主要包括张量定义、基础算子、自动微分等模块,用户可使用低阶API轻松实现张量定义和求导计算。例如用户可通过Tensor接口自定义张量,使用ops.composite模块下的GradOperation算子计算函数在指定处的导数。

TinyMS

TinyMS是一款面向的主要用户群体为深度学习初学者、研究领域涉及深度学习结合的科研人员、以及深度学习相关业务应用开发的企业开发人员,用PyThon语言编写的开源深度学习开发工具包,基于以MindSpore为代表的新型开源深度学习框架,提供面向从数据准备到模型部署全流程的极简易用的高阶API封装,并通过易于扩展的模块化设计,提供覆盖多种业务场景的能力。

TinyMS主要由data, model, serving等模块组成,分场景分领域提供transform数据预处理算子,复用MindSpore原生数据集提供常用数据集,如:cifar-10等。data提供部分自定义数据集和常用的数据下载和解压等常用工具集,model提供常用的预置模型,并提供模型构建,模型编译,模型训练、验证与推理。serving通过搭建服务器来提供AI模型应用服务,为新手提供快速推理的体验。

TinyMS设计框架

TinyMS相较于Keras等传统API复杂度更低并提供了大量MindSpore常用预置数据集以及快速部署推理模块。使用MindSpore科学计算框架以及TinyMS程序包进行项目开发在开发难度、速度上都具有显在优势。

项目数据

Cityscapes

本项目使用Cityscapes数据集作为城市风格数据集。

Cityscapes数据集是由包含戴姆勒在内的三家德国单位联合提供,包含50多个城市的立体视觉数据的城市街道场景的语义分割图片数据集。

Cityscapes数据集原始图像(左)与标注图像(右)

Cityscapes数据集拥有5000张在城市环境驾驶场景高质量像素级标注图像以及20000张粗标注图像。其中高质量标注图像中对数据集进行了划分,分别为训练集2975张,验证集500张和测试集1525张共19个类别。本项目使用原始图像作为城市风格数据,标注后分割图像作为迁移风格数据进行风格迁移。

艺术风格数据集

本项目在以上基础上,额外使用Cezanne、Monet和Vangogh三位艺术家以及日本Ukiyoe共4种艺术风格数据对原始城市图像进行艺术风格迁移。

艺术风格图像,从左到右为Cezanne、Monet、Vangogh、Ukiyoe

通过在Wikiart.org对艺术家画作进行收集,通过删除黑白图像并将其余图像Resize至256×256分辨率,最终得到Cezanne艺术图像525张、Monet艺术图像1072张、Vangogh艺术图像400张以及Ukiyoe艺术图像562张。

项目算法模型

CycleGAN

本项目使用CycleGAN作为风格迁移网络模型来完成对城市风格图片的风格迁移。CycleGAN是Zhu Yan-Jun等人于2017 ICCV上提出的一种基于生成对抗网络解决图像生成领域中风格迁移问题的算法模型。目前学术界中风格迁移网络模型要求提供图像对,即同一图片的不同风格。在现实中,这样的要求往往是昂贵且不实际的。针对这一问题提出的CycleGAN网络不要求提供图像对,可在没有任何成对训练数据的情况下,通过对图像集特定特征进行描述并将该图像集特征转换为另一图像集特征,完成非成对数据下的图像风格迁移。

成对风格数据(左)与非成对风格数据(右)

网络结构

CycleGAN网络结构为一个环形结构,如图5所示。设图像风格域为X域和Y域,图中X表示X域中图像,Y表示Y域中图像。该网络包含G、F两个风格迁移生成器分别完成X域到Y域以及Y域到X域的循环风格迁移,即使用X域图像通过生成器G生成Y域图像,再通过生成器F重构X域输入的原图像。使用Y域图像通过生成器F生成X域图像,再通过生成器G重构Y域输入的原图像。同时设计DX、DY两个图像生成判别器完成对生成图像的风格域判别。

CycleGAN

生成器

CycleGAN网络结构中生成器结构为编码器(Encoder)+转换器(Transformer)+解码器(Decoder)。即整个图像生成过程由编码、转换与解码三步完成。

Cycle生成器

编码器由3个卷积块构成。3个卷积块对输入图像提取特征,将图像压缩成256个64*64的特征向量。其卷积块结构分别为:卷积核大小7×7,步长为1,卷积核数量64卷积层-实例归一化层-修正线性单元层;卷积核大小3×3,步长为2,卷积核数量128卷积层-实例归一化层-修正线性单元层;卷积核大小3×3,步长为2,卷积核数量256卷积层-实例归一化层-修正线性单元层。

转换器由6个残差块构成。通过组合图像的不相近特征,将图像在X域的特征向量转换为Y域的特征向量。生成器中转换器使用了6个相同的残差块,每一个残差块包含两个3×3的卷积层。能够达到在转换时同时保留原始图像特征的目标。

解码器由2个反卷积块,1个卷积块构成。利用反卷积层(decovolution)完成从特征向量中还原出低级特征的工作,最后得到生成图像。其中2个反卷积块为:卷积核大小3×3,步长为1/2,卷积核数量128的卷积层-实例归一化层-修正线性单元层;卷积核大小3×3,步长为1/2,卷积核数量64的卷积层-实例归一化层-修正线性单元层;卷积块为:卷积核大小7×7,步长为1,卷积核数量3的卷积层-实例归一化层-修正线性单元层。

判别器

CycleGAN网络判别器使用70×70PatchGAN网络结构。原始GAN的判别器的设计仅输出单一评价值(True or False),该值是对生成器生成的整幅图像的一个评价。而PatchGAN的设计不同,PatchGAN设计成全卷积的形式,图像经过各种卷积层后,并不会输入到全连接层或者激活函数中,而是使用卷积将输入映射为N*N矩阵,该矩阵等同于原始GAN中的最后的评价值用以评价生成器的生成图像。通过这种方式可以增大感受野以关注图像中更多区域,使得PatchGAN相较于传统判别器更有优势。

CycleGAN判别器

CycleGAN中PatchGAN使用4个卷积块,分别为:卷积核大小4×4,步长为2,卷积核数量64的卷积层-实例归一化层-带泄露修正线性单元;卷积核大小4×4,步长为2,卷积核数量128的卷积层-实例归一化层-带泄露修正线性单元;卷积核大小4×4,步长为2,卷积核数量256的卷积层-实例归一化层-带泄露修正线性单元;卷积核大小4×4,步长为2,卷积核数量512的卷积层-实例归一化层-带泄露修正线性单元;最后通过一个卷积层将输出映射至1维。

损失函数

CycleGAN利用式(1)对抗损失实现网络生成对抗训练。

为了解决非成对数据训练因模型容量过大导致不同生成器生成图像都能满足与目标域图像分布匹配问题,CylceGAN利用式(2)所示循环一致性损失减少映射函数空间域以获得更优生成质量。

损失函数

项目系统架构

本次项目采用MindSpore高阶工具TinyMS对CycleGAN网络进行复现完成城市风格迁移。本项目系统由数据处理模块(训练/推理)、网络训练模块、网络推理以及模型部署模块
四部分共同组成风格迁移系统。其系统架构图如下图所示。

系统架构图

数据处理模块

本系统数据处理模块分为训练数据处理模块和推理数据处理模块两部分。

数据处理模块

训练数据处理模块:该模块对训练数据进行划分为后续网络训练做准备。该模块对输入数据集按风格分为A、B集后,分别对A、B集按一定比例进行随机划分,得到训练集A、B以及测试集A、B。

推理数据处理模块:该模块对推理数据做预处理使其对后续推理网络输入适配。该模块针对图像和视频两种输入模式基于OpenCV采用两种处理方式。对于视频数据,为保证风格迁移后的视频观赏效果,首先对其进行逐帧抽取,然后将图像帧Resize至256×256分辨率。对于图像数据则直接Resize至256×256分辨率,以便后续推理。

网络训练模块

本系统网络训练模块基于输入数据集完成风格迁移模型的训练工作。

网络训练模块

该模块首先通过高阶程序包TinyMS完成CycleGAN模型的搭建,并基于Adam优化算法创建网络优化器对网络参数进行优化。对于不同的训练需求,可选择是否载入以及载入时选择不同的预训练模型参数以实现CycleGAN网络模型的训练或者迁移训练,为后续网络推理模块提供推理模型支持。

网络推理模块

本系统网络推理模块基于已训练模型完成对输入数据的风格迁移推理。

网络推理模块

该模块与网络训练模块相同,首先基于TinyMS完成CycleGAN模型的搭建。基于对不同风格迁移的需求,对CycleGAN网络模型载入不同风格的模型参数。最后对基于载入参数后模型对输入数据进行推理输出,完成对输入数据的风格迁移。

服务部署模块

本系统服务部署模块基于Flask构建服务端与客户端完成CycleGAN网络模型的部署,实现对输入数据的推理输出。

服务部署模块

该模块基于轻量网页服务器Flask构建服务端(Server)与客户端(Client)作为模型部署通讯架构。首先创建服务端和客户端,在收到待推理数据后客户端将向服务端请求推理,服务端在后端调用网络推理模块完成数据推理后将推理结果传回客户端,最后由客户端完成对风格推理结果的显示输出。


核心产品

本团队根据客户群体以及需求差异,估计市场环境以及需求,拟推出两款基于图像风格迁移技术的核心产品。其中面对个体用户的社交日常需求,本团队推出图像风格大师社交多端软件平台。面对群体用户的多行业多领域个性化需求,本团队推出个性化风格迁移定制服务。

图像风格大师社交多端软件平台

图像风格大师社交多端软件平台是为个人用户提供日常社交中的图像风格迁移服务。该平台以风格迁移技术为核心,基于华为昇腾AI生态栈开发,为用户提供丰富多样的社交风格迁移服务。

图像风格大师社交多端软件平台

本产品服务方式为:用户根据自身社交需求与期望服务环境,选择对应图像风格大师客户端软件。用户首先将需要风格迁移对象进行输入,通过网络将数据上传至图像风格大师服务器/本地GPU,通过使用风格迁移模型对输入数据进行推理实现对输入数据的风格迁移,最后通过将迁移结果返回输出。

个性化风格迁移定制服务

个性化风格迁移定制服务是为团体用户提供在其行业领域中所需的个性化图像风格迁移服务。该服务聚焦于华为昇腾AI生态栈下图像风格迁移技术,通过针对各异化需求进行定制开发为用户提供风格迁移服务。

个性化风格迁移定制服务

本产品服务方式为:用户通过与公司相关部门沟通,根据用户实际需求落实风格迁移服务实际风格迁移类型、服务端类型(如桌面端、边缘计算端)与相关技术指标。公司技术部门根据需求类型搜集相关训练数据对风格迁移模型在个性化数据上进行迁移训练,同时针对客户所需服务端类型进行技术移植与模型部署,最后根据技术指标进行总体调整实现个性化风格迁移服务。


商业模式

产品特性

破晓科技作为风格迁移商业化开发应用先行者,依托华为昇腾AI生态研发的风格迁移模型面向多用户群体,设计两大核心产品,图像风格大师和个性化风格迁移定制服务,从而实现多方向盈利。图像风格大师主要面向个体用户,针对社交多样化需求,多平台提供风格迁移服务;风格迁移定制服务面向团体用户,针对个性化需求,快速将我们的技术迁移开发从而提供针对性解决方案。

产品形式及盈利模式

本产品从客户的实际需求出发,结合实际市场需求与技术实现形式,团队设计产品商业模式如下图所示。

产品商业模式图

图像风格大师

基于个人用户的日常社交需求,我们设计一款面向在线个人服务的服务端产品模式。该产品分为网页端和APP两种类型。网页端通过用户提交图片发起服务请求,通过云端计算实现对用户所需图片的风格迁移结果。APP则是通过与其他软件开发商合作提供算法或者自行开发具备风格迁移功能的社交APP对个人移动端用户提供算法服务。

此种方式按会员制、计时收费、计次收费等模式获得盈利,只有初期平台建立以及平台维护的成本,预估毛利润较高,可达80%~90%。

个性化风格迁移定制服务

对于政府、公司等团体用户需求,我们设计了面向团体离线服务的定制端产品模式。对于游戏开发、建筑设计等设计公司团体,我们将针对用户实际问题需求,对算法模型进行针对性调整,开发个性化的基于解决方案的离线软件应用程序对游戏开发者以及建筑设计师提供辅助设计服务。同时对于社会安防相关的政府、监控设备提供商等用户群体,我们将算法在昇腾AI生态环境下实现边缘设备的应用移植,通过边云协同机制实现智慧监控能力的提升需求。

定制端产品聚焦于团体用户个性化需求,拟采用买断制的收费模式,同时针对老用户的新需求提供有偿算法更新迭代服务以实现产品的盈利。


目标市场

潜在市场

游戏制作

经团队调研,中国游戏行业市场实际收入逐年增加,截止2021年市场规模已达3000亿元,市场潜力不容忽视。而游戏动画中场景的布置设计往往是整个游戏故事作品的核心和灵魂,游戏的场景内容是游戏主题的重要呈现,场景设计编排的优劣决定了游戏镜头的画面感和效果,也会影响游戏的鉴赏和点评。好的作品往往会通过优质的画面和跌宕起伏的情感吸引人们的眼球,场景设计就是制造画面的最重要环节。

中国近年游戏行业市场变化情况

对于我们团队所做的基于CycleGAN的城市风格迁移模型便可应用其中——一个场景设计的重要内容,场景的风格。一款游戏的场景风格一定是要贴合游戏内容的,大体可以分为梦幻风格、现实风格、装饰风格、综合风格。而通过CycleGAN模型可以做到当游戏公司在确定一款游戏的风格以后,先生成一个demo,然后使用城市风格迁移模型来做到对整个游戏场景进行风格迁移变化,快速简单地体验场景视觉效果,从而大大减少游戏制作的初期成本;因此,我们可以与游戏公司合作,将我们的产品运用其中从而获得经济效益。

另一方面,游戏开发公司通过风格迁移功能,可以开发出不同风格的测试场景并进行玩家调查,判断出哪种风格更受玩家欢迎,从而制定游戏下一步研发的方向,减少产品失败的风险。而对于游戏玩家来说,对于游戏内容的侧重点各不相同,对于游戏的风格、玩法、剧情都有其目标用户。通过风格迁移,可由玩家自行选择喜欢的场景风格,实现写实场景风格、写意场景风格与动画场景风格的自行转换,在满足玩家风格需求的同时,也能让玩家也能体会到参与游戏制作的感觉。对于普通的玩家来说,要去改变一款游戏的玩法与游戏内核难度过大,但通过仅改变游戏场景风格而不用影响整个游戏的内核,即可在保证游戏自身稳定性的同时,满足玩家对于一款游戏的参与感需求,也有很好的交互性。

我们可以将该项功能设计为需要玩家支付一定金额来获取的服务,或者可以设计为会员服务,从而获得收入。

社交互动

经过团队调研,近年来,vlog逐渐地在全球范围内风靡。因为vlog的兴起,不论在国内还是国外都出现了大量vlogger。从2018年开始,在网络上席卷了一股拍原创视频记录生活的热潮,因为vlog而走红的博主也在逐渐地增多。对于全球范围内的95后甚至00后来说,vlog已经逐渐成为了他们记录生活,表达个性最为主要的方式。但并非每一个人都能像一些专业vlogger一样,拍摄出一个好的vlog,其中重要的一点就是他们对于场景风格的把握并没有做到很好。因此,我们能将我们的风格迁移运用其中,以高质量vlog作为训练模板,从而达到Vlog的场景风格迁移,达到更好的呈现效果。

中国vlog用户规模变化及趋势预测

同样现在兴起许多短视频软件,而大多数短视频软件都具有特效功能,但其大多是注重对人物自身的特效,而忽视了场景的特效,这就导致很多特效缺乏氛围感,假使我们能够对场景进行风格迁移的话,用户就能选择不同的风格来对背景中的城市场景进行渲染,从而增加其趣味性和观看性。

因此,本项目获益可以来自于两个方面,一是直接与这样的视频软件商合作,将该技术运用其中并从中收取一定费用;二是自行打造一个新型的具有风格迁移的软件通过自行培养用户群并提供服务来获得收入。

社会保障

经过团队调研,社会对于视频监控的需求逐年提升,特别是在5G物联网大背景下,视频监控能力是智慧城市的核心要素。但当摄像头拍摄出现模糊的状况,且正好遇到事故发生,从而没能拍摄清楚时间发生状况,就会产生极大危害。而CycleGAN的风格迁移算法在图像去噪任务上有着不错的表现,利用城市风格迁移模型,将低分辨率的城市监控图像转换成高分辨率图像、将带噪声风格的城市监控图像转换为低噪声甚至无噪声图像,从而满足安防监控工作需求,提升智慧安防能力。

视频监控市场导向

这一方面可以通过寻求与各个地区政府部门的合作,或者直接与一些大型的摄像头出品商合作,提供算法支持从而获得经济效益。

建筑规划

城市景观是城市形象的一个重要组成部分,是城市的外部表达的性格、背景、模式和历史、文化和社会发展水平的综合反映,是自然资源和人文景观环境体现在城市文化和社会生活的特征。而其中显现的城市风格则是一个城市独有的气质,它明显区别于其他城市的个性,是该城市的市民创造的物质和精神成就的外在表现。城市景观特征不仅是建筑技术和学术流派,而且是关系到城市核心竞争力的大问题,塑造城市景观特色具有经济社会发展的现实意义和文脉传承的历史意义。

城市规划行业市场规模变化表

目前中国的未来城市规划几乎都是修建高层的商业大楼、酒店和公寓楼,不同城市的建筑外观风格较为单一,失去了这座城市的独有的风格气质。为了避免这种情况,我们可以利用我们的城市风格迁移模型来进行预规划,通过收集一些符合某城市形象的照片,训练出可以让模型生成符合城市风格的图像,进行建筑物外观的预设计,这既能节省成本,还能使得城市风格能与城市内涵更加贴切。

我们可以通过建筑公司了解各城市的具体需求,然后将符合该城市风格图像或视频经过风格迁移处理后的结果出售建筑公司,从而获得利益。

就业推动

本项目从产品核心技术特点与产品市场定位出发,通过对风格迁移技术进行更新迭代,深度挖掘该技术在各个行业领域的潜在商业价值,大力推动AI行业就业发展质量,预计10年内扩大AI行业就业人数10000余人。产品团队发展计划如下:

产品团队发展规划

本团队于2021年项目立项,通过技术开发与基本需求定位对产品实现初步建立。在明确基本产品需求后,于2022年扩大团队规模至100人,完成对产品的进一步开发与市场推广。针对产品实际盈利方向与市场变化,团队将于2023年进行团队定位调整,进一步明确产品更新方向,计划于2026年提供2000余就业岗位。同时进一步扩大产品需求,对各行业领域进行针对性产品更新,实现产品的全方位推广,最终实现10000余就业岗位的提供。