AI界面及其位置

最近,我们在Habr上专栏文章介绍了如何发布自己的在线玩具。 我们严重困惑的技巧之一是通过照片(在原型中工作而不是游戏的一部分)为您的角色“即时”生成AI代化身。 同时,这项技术本身很有趣,不仅可以与我们一起广泛应用。 如所承诺的,我们将更详细地讨论它,让我们感受到原型的生命!


在切入点下,您还可以找到:为什么他们选择支持非典型的AI培训系统-不标记数据,为什么我们认为这是科学创新? 创建不需要重复的AI化身时我们的幻想; 今天如何以及在哪里使用领域适应。


图片

如果没有时间阅读帖子


我们点击链接立即查看AI的工作。


请注意:
1.转换器无法快速解决问题,因此请耐心使用非生产能力。
2.该系统仅在男性领域受过训练,因此女性照片可能会留下男人的身影。 肖像相似度不应该出现,因为 故意使用的元素数量有限,我们将在下面讨论。

创建AI头像的想法从何而来?


她并没有突然出现。 uKit Group的机器学习工作已经进行了几年。 因此,大约一年前,实时评估该网站的视觉吸引力的WebScore AI项目已向所有用户开放,并成功用于公司内部目的。


在游戏开发中使用神经网络是一个定期获得大量宣传的话题。 回顾《无人深空》或《 RimWorld》,它们得到了游戏的关注,而不仅仅是社区,这是因为生成了完整的宇宙,根据作者们的说法,它们几乎具有无限的可变性。 的确,在现实中,世界的生成是过程性的,因此与神经网络无关。 但是,这里的趋势是显而易见的-市场已经为此做好了准备,正在等待它的努力!


我们认为能够将您的照片上传到游戏中并立即获得一个看起来最像您的个人化身的功能很有趣,并且可以成为一个有趣的诱人芯片。 此外,该技术可以清楚地在游戏之外找到其应用。


值得注意的是,角色与Web Tycoon中真实人物的相似性是相对的。 这是一个有步骤的步骤,因为我们将从设计人员绘制的元素中收集化身。 这有几个原因。 首先,在出口处,我们希望获得具有游戏风格的游戏头像,同时保留许多人的一贯偏爱。 其次,我们当然要放心,因为无论用户上传了什么内容,它都可以使您始终获得人像图像。


图片

毕竟,并不是每个人都希望在竞争对手之间看到一个现实的黄瓜


没有标签数据的模型训练


可以将这种机器学习方法称为创新方法,因为实际上AI在没有任何初始标记数据的情况下进行学习。 由于这是怎么回事? 成功的关键是生成综合数据的工具的可用性。 在可能出现的问题之前:我们不能放弃自己的问题。


您为什么决定以这种方式训练我们的AI? 数据标记是评估者的单调且非常繁琐的工作。 而且如果设计人员突然决定增加游戏的种类,例如第三种眼镜(在编写系统时有两副),那么就必须重新标记所有内容,因为每个先前标记的示例现在都可能不是最佳选择。


另外,在我们的案例中,还值得考虑一下主观性:如果您让10个人为一张照片收集一个化身,我们将在输出中获得10个不同的化身。 我们检查了。


原始照片:


图片

以及我们公司两位不同设计师的结果:


图片

人与机器


培训并不容易。 首先,我们的AI在各个方面都屈服了:


图片

如果有人突然不明白,那么原始照片在这里是相同的。 AI将眼睛下面​​的包变成太阳镜。 轻骑兵触角作为礼物。 真正的工作狂可以将其视为功能,而不是错误。


以下是一些指示性结果。


图片

图片

他只是不再添加积分,甚至可以打扮! 颜色再现存在某些问题。


直接关于开发过程


首先,我们采用了几种现成的Style Transfer解决方案,但由于它们不适合我们的纯粹形式,因此我们不得不放弃它们。 我们还尝试单独使用生成模型,但是很快得出结论,我们遇到的大多数解决方案要么没有实现示例,要么没有给出结果。


结果,第一个成功的生成模型是CycleGAN,我们以此为基础,并根据需要完成了该模型。 感知损失被称为帮助标准CycleGAN。 这非常明显地增加了所得图像的美感。


在下面,您可以看到CycleGAN的作用:


图片

或另一个示例,对于至少使用过Prisma应用程序的每个人都清楚并熟悉:


图片

传统上,主要的困难是使生成模型正常学习。 此类模型的整个家族都有很多颇具特色的痛处,近年来一直在尝试解决所有问题:训练时间长,模式崩溃,对初始化敏感。


还有纯粹的工程问题,从理论上讲,许多人都应该面对,但出于某些原因,很少有人对此加以说明。 例如,我们需要使用增强功能快速并行加载数据,而keras / tf / pytorch中提供的标准增强功能集对我们来说还不够。 另外,最初我想扩充CPU。 CPU的增强具有不可否认的优势,我们认为,主要优势在于能够“卸载”视频卡,从而在两台计算机之间分担责任。


如何解决问题


在训练GAN的情况下,我们主要处理损失函数(损失函数)。 因此,我们增加了更多的身份损失和颜色损失。 同时,我们在CycleGAN内部使用了生成器的体系结构,结果我们遇到了一个12块的reznet(原始版本对我们来说有点短)。


在重复代码的情况下,我们在模型上编写了更高级别的包装程序,从而使我们可以立即重用多个模型中使用的代码。 出于相同的原因,日期生成器的代码也以类似的方式进行了概括。


为了解决第三个问题(在CPU上加载增强功能),我不得不想出并编写自己的芯片,但是大约在下次某个时候。 我们只能说,正是由于这个原因,该技术才能成功用于与虚拟形象完全无关的其他项目。


创建AI接口时的Fakapy


主要错误是对任务复杂性的错误评估。 乍一看,似乎经常有大量现成的解决方案可以满足您99%的需求。 他们只需要被拿走并安全地转移到您的案件中。 所以,不是那样的。 值得一提的是,有必要展示一下观察GAN的感觉,GAN已经成功研究了几天,突然之间突然爆发出某种东西,为什么它开始产生完整的游戏。


像这样:


图片

另一个严重的因素是,在最初阶段,我们忘记了固定随机种子,并且我们还记得GAN对初始化非常敏感。 我们这是一个非常可耻的失败,例如坦率。


今天在哪里使用域适应


领域适应缓慢但必定会渗透AI任务。 这种稳定的趋势是由于以下事实:尽管现代世界中可用信息的迅速增长,但标记仍然是一项漫长而昂贵的任务。 面对领域适应,迁移学习的发展及其推广解决了这一问题。


苹果公司通过修改合成生成的图像来扩展人眼照片数据集的工作就是领域自适应的实际应用示例。 在他们的研究中,他们表明一种有效的方法是使用域自适应方法生成最初标记的人工数据,然后逼近实际数据。


图片

或者这是另一个有趣的例子。 2017年,一群科学家想出了一种不寻常的方法来收集有关街道,道路,行人和其他环境的数据,在这些环境中应放置无人驾驶汽车进行培训。


他们建议从GTA V中获取此信息。


图片

为此,在侠盗猎车手V(Grand Theft Auto V)的虚拟环境中,生成了超过480,000张带标签的正常高速公路驾驶虚拟图像。 使用这些图像,对系统进行了培训,以读取基本自动驾驶所需的所有基本变量:确定与汽车和前方其他物体的距离,条带的标记和行驶角度(相对于条带中心线的角度路线)。 还分析了佛罗里达州发生的致命特斯拉事故。


未来是NST和GAN


可以自信地谈论这个吗? 也许是的。 神经样式转移使用Prisma。 与此类似,正在创建新的应用程序,而不仅仅是出于娱乐目的。 GAN也可以用作解决各种问题的工具:图像着色,噪声生成图像,甚至文本生成图像。


回到gamedev的主题。 在这里,领域适应的可能性可能是无限的:如果从GTA V游戏世界的纹理中提取无人驾驶车辆的案例,从中得出与真实世界照片非常相似的东西,那么绝对没有什么可以阻止您做相反的事情:从真实城市的全景图像生成游戏纹理。


汽车的优点是它不会累。 现在,计算机可以在一瞬间生成大量不同的视图。 我们的任务是学习如何高效地做到这一点,然后剩下的仅仅是将谷粒从谷壳中分离出来并享受。


还有问题吗? 我们很乐意在评论中回答他们。

Source: https://habr.com/ru/post/zh-CN449494/


All Articles