为您推荐:
精华内容
最热下载
问答
  • 5星
    4.79MB zuoan1993 2021-07-21 18:43:05
  • 5星
    28.87MB qq_44624316 2020-12-16 08:59:07
  • 9.79MB weixin_38607195 2021-03-17 12:35:11
  • 69.71MB weixin_42667269 2021-10-02 04:52:09
  • 454KB weixin_42113794 2021-02-21 00:55:45
  • 10.76MB weixin_42115003 2021-07-08 18:47:16
  • 9KB weixin_42097189 2021-06-28 06:15:38
  • 188.76MB weixin_38553381 2021-01-28 13:17:41
  • 3.14MB weixin_42113552 2021-02-04 09:26:46
  • #include #include char a[205]; int main() {  int n,i,j,t[4],k,m;  while(scanf("%s",a)!=EOF)  {  n=strlen(a);  i=0;  while(1)  {  t[0]=t[1]=t[2]=
    #include<stdio.h>
    
    #include<string.h>
    char a[205];
    int main()
    {
        int n,i,j,t[4],k,m;
        while(scanf("%s",a)!=EOF)
        {
            n=strlen(a);
            i=0;
          while(1)
          {
                t[0]=t[1]=t[2]=t[3]=0;
                for(;i<n;i++)
                if((i==0||a[i-1]=='f'||a[i-1]=='w')&&a[i]=='w') t[0]++;
                else
       {
        //m=1;
        break;
       }
                for(;i<n;i++)
                if((i==0||a[i-1]=='w'||a[i-1]=='o')&&a[i]=='o') t[1]++;
                else
        {
        //m=1;
        break;
       }
                for(;i<n;i++)
                if((i==0||a[i-1]=='l'||a[i-1]=='o')&&a[i]=='l') t[2]++;
                else
        {
        //m=1;
        break;
       }
                for(;i<n;i++)
                if((i==0||a[i-1]=='l'||a[i-1]=='f')&&a[i]=='f') t[3]++;
       else
        {
        //m=1;
        break;
       }
                k=t[0];
                for(j=1;j<4;j++)
                if(k!=t[j]) break;
                if(j!=4)
                {
                    printf("INVALID\n");
                    break;
                }
                if(i==n&&j==4)
                {
                    printf("VALID\n");
                    break;
                }
            }
        }
        return 0;
    }
               
               
                                
    展开全文
    u011514451 2014-04-07 09:18:16
  • 5.56MB weixin_42129970 2021-02-04 04:54:35
  • 4星
    303KB ajccom 2012-11-28 23:12:39
  • 5星
    164KB ajccom 2012-10-05 13:09:37
  • 68.17MB weixin_42139302 2021-02-04 04:21:20
  • 2.53MB weixin_42131541 2021-04-27 11:42:50
  • Win or Learn Fast (WoLF) principle,结果不理想时加大梯度,快速逃离。 Sparse Interactions in Multi-agent System 在马尔可夫博弈中,强化学习的一个大缺点是agents学习的状态空间的大小。所有的agents在...

    Sequential Games

    多智能体强化学习在有状态转移的环境中进行序列决策。马尔科夫博弈可以看做是MDP在多智能体条件下的扩展,和repeated games到多状态条件下的扩展。如果只有一个agent,马尔科夫博弈变成MDP,如果只有一个状态,马尔科夫博弈变成repeated normal game。

    Markov Games

    联合动作是多智能体独立选择动作的结果。
    在这里插入图片描述
    在这里插入图片描述
    不同agent在同一个状态转移可能收到不一样的奖励。
    与单agent RL的主要区别在于,现在这些标准还取决于其他agents的策略。
    在这里插入图片描述
    应该注意的是,在一个马尔可夫博弈中的学习在MDP中引入了一些新的关于正在学习的策略的学习问题。在MDP中,可以证明,在一些基本假设下,最优确定性策略始终存在。这意味着只考虑那些确定地将每个状态映射到一个动作的策略是有效的。然而,在马尔可夫博弈中,当我们必须考虑agents策略之间的平衡时,这不再适用。类似于repeated game的情形,一个折扣的马尔可夫博弈可能只有涉及随机策略的纳什均衡。因此,让agents将固定的行动映射到每个状态是不行的:他们必须能够学习混合策略。当考虑到其他奖励标准(如平均奖励)时,情况变得更加困难,因为在固定策略中可能不存在均衡(Gillette,1957年)。这意味着,为了达到一个平衡的结果,agents必须能够表达策略,这个策略根据整个学习过程的历史,在一个状态下选择动作。幸运的是,我们可以对问题的结构引入一些额外的假设,以确保平稳平衡的存在。

    马尔科夫博弈中的强化学习

    在normal form game中,强化学习者面临的挑战主要来源于agents之间的相互作用,而在马尔可夫博弈中,他们面临着状态转换环境的额外挑战。这意味着agents通常需要将repeated game中使用的协调方法或均衡解法与agent RL的MDP方法结合起来。

    值迭代

    将Q-learning成功应用于多智能体情境下需要解决许多关键问题:

    1. 即时奖励和转移概率依赖于所有agents的动作。agent根据别的agents选择的动作选择动作,更新估计的Q(s,a),a是联合动作。
    2. bootstrap时需要用到下个状态的最大Q(s,a),但agent不能预测自己在下个状态执行动作的值,因为这个值依赖于别的agents的值。下图是多智能体Q-learning的模板,不同方法在计算下个状态的值上有区别
      在这里插入图片描述

    确定状态期望值的第一种可能是使用opponent modeling,预测其他agents 的策略。例如 Joint Action Learner (JAL) ,记录状态s下其他agents使用这种联合动作的次数,然后计算它的频率:
    在这里插入图片描述
    然后就能计算agent k在状态s下的期望值:
    在这里插入图片描述
    Q(s,ak)就是agent k执行动作ak,然后含有ak的联合动作的奖励的估计期望。
    另一种是假设其他agents根据某种strategy操作。例如minimax Q-learning,针对两个agent的零和博弈,假设对手执行最小化learner收益的动作:
    在这里插入图片描述
    对手执行动作最小化q值,learner选择一个动作概率最大化期望,然后将所有动作的期望值加起来。(存疑)策略可以是混合策略。后来推广到friend-or-foe Q-learning ,要么是朋友帮助maximize,要么是foe来minimize。
    还有是假设agents会执行均衡策略。例如Nash-Q,观察所有agents 的reward,保留所有agents Q值的估计,然后对于每个状态都有一个收益矩阵,这种表示叫做stage game,因为每个状态是一个博弈,阶段性的博弈。然后nash-q的agent假设所有的agents根据那个阶段的纳什均衡选动作:
    在这里插入图片描述
    这个方法的均衡也能换成别的,但这个方法的问题在于多个均衡存在时,需要协作
    基于值迭代的MARL在一般马尔科夫博弈条件下的收敛结果依然难以解释。更进一步的是,最近的研究揭示了在任意一般和博弈仅依赖Q-values或许不能成功学到均衡策略,需要新方法的出现。

    策略迭代

    基于LA的Interconnected Learning Automata for Markov Games (MG-ILA) 可以被应用于平均奖励马尔科夫博弈,可以被看做actor-critic框架的实现,使用LA存储策略。主要思想很直接:每个agent k在每个状态si放一个LA(k,i),在每个时间步,只有当前状态的LA激活,每个LA独立为它对应的agent选择动作,联合动作出发状态转移和即时奖励,LA使用估计平均奖励的回应来更新,下面是完整算法:
    在这里插入图片描述
    结果表明,该算法在该博弈中将收敛到纯纳什均衡(如果存在),并且该均衡对应于agents策略之间的纯均衡。
    Win or Learn Fast (WoLF) principle,结果不理想时加大梯度,快速逃离。

    Sparse Interactions in Multi-agent System

    在马尔可夫博弈中,强化学习的一个大缺点是agents学习的状态空间的大小。所有的agents在整个联合状态行动空间中学习,因此,除了最小的环境和有限数量的agents,这些方法很快就不可行了。最近,人们对缓解这一问题进行了大量的关注。这些方法的主要直觉是,只有当通过这样做可以获得更好的回报时,才明确地考虑其他agents。在所有其他情况下,可以安全地忽略其他代理,这类agents具有在小状态行动空间学习的优势,同时也可以访问必要的信息,以处理其他agents的存在(如果这是有益的)。这种系统的一个例子是自动化仓库,在那里,自动化引导车辆只有在彼此靠近时才需要相互考虑。我们可以区分两种不同的研究方向:agents可以根据所选择的行动来做出协调的决定,或者agents可以将注意力集中在其可支配的状态信息上,并了解何时观察其他agents的状态信息是有利的。

    Learning on Multiple Levels

    稀疏交互的想法是:一个agent什么时候经历来自另一个agent的影响?用来解决指数型增长的状态空间问题。将多智能体学习过程分两层:顶层学习什么时候有必要观察其他agents 的状态信息,选择是否要独立学习;底层包含独立学习时用的单agent的学习技术,和状态转移与奖励依赖其他agents当前的状态与动作时使用的多智能体技术。下图是框架的图解:
    在这里插入图片描述

    Learning to Coordinate with Sparse Interactions

    Learning Interdependencies among Agents

    Sparse Tabular Multiagent Q-learning 维护一个状态表,表中的状态有必要协作,在这些状态,agents选择联合动作,其他状态都独立选择动作。将状态表替换为协作图(CG),可以表示限于一些agents 的依赖,这叫Sparse Cooperative Q-learning (SCQ)。下图表示一个简单的CG:
    在这里插入图片描述
    如果agents转移到了协作的状态,他们应用变量清除算法来计算当前状态下的最优联合动作。(这个算法不懂)
    Utile Coordination使用和SCQ一样的想法,但不再是提前定义CG了,而是在线学习。这是通过维护有关基于其他agents的状态和行为获得的奖励的统计信息来实现的。因此,可以学习agents之间存在的特定上下文依赖性,并在CG中表示它们。然而,这种技术仅限于完全合作的MAS
    这些方法的首要目标是减少联合动作空间,但他们往往需要整个联合状态空间,因此学习的状态空间依然是指数型增长,这些方法仅限于可以观察整个联合状态空间的情况。

    Learning a Richer State Space Representation

    不再是具体学习最优联合动作,而是学习在哪些状态包含其他agents 的状态信息是有利的。有两种不同的方法,一个是使用RL学习在哪些状态协作是有利的,另一个是基于观测的奖励学习协作是有利的状态的集合。不像上一节里的方法,这些方法也能应用在冲突利益博弈,允许独立动作选择。下图是方法的整体思想,这些方法将扩展agent的局部状态信息来包含另一个agent的信息,如果这对于避免次优奖励是有必要的:
    在这里插入图片描述

    Learning of Coordination

    使用**interaction-driven Markov games (IDMG)**作为不确定性下的多智能体决策的新模型。模型包含一个相互作用状态集合,列举了协作是有利的所有状态。为了学这个集合,在每个agent的动作空间增加一个伪协作动作(COORDINATE),这个动作执行一个主动感知步,可以是广播让其他agents透露他们的位置,或者是使用摄像机或传感器检测其他agents 的位置。主动感知步将决定协作是不是必要的。依靠主动感知步,这个算法可以用于协同或冲突利益系统。
    在这里插入图片描述

    Coordinating Q-Learning

    CQ-learning学习哪些状态需要考虑其他agents的状态信息。算法可以被分为三个部分:

    1. Detecting conflict situations
      agent必须识别哪些状态受到至少一个别的agent的影响。如果agents相互影响,这将反映在agents一起行动时收到的回报。CQ-learning使用统计测试来检测所选状态-动作对观察到的奖励是否与他们单独在环境中行动的情况相比有所变化。两种情况可能出现:
      1.1. 统计数据检测到了变化,这个状态是dangerous,agent的状态空间添加这个联合状态信息。该算法将首先尝试检测agent收到的奖励的变化,仅基于其自身的状态,然后再尝试确定这些变化是由哪些其他agents引起的。
      1.2. 统计数据揭示agent收到的奖励与单独行动时收到的是同一个分布,继续单独行动。
    2. 选择动作
      根据上一步的结果,如果dangerous,观察全局状态信息,如果其他agents的状态信息与之前检测到的一样,则根据全局信息选动作,否则独立选。
    3. 更新Q值
      跟Learning of Coordination一样

    这个算法中用的统计学测试是Student t-test 。这个检验可以确定两个样本总体的平均值相等的原假设是否成立,而另一个假设是样本总体的平均值不相等。在CQ学习中,该测试首先用于确定在哪些状态观察到的奖励与基于单个agent学习的预期奖励有显著差异的状态,并确定这些变化依赖于哪些其他代理的状态。下面是算法的形式化表达:
    在这里插入图片描述
    CQ-learning也能用于从需要协作的状态生成信息来获得状态独立的agents之间协作依赖的表示。这个信息可以被迁移到别的更复杂的任务环境。

    展开全文
    qq_38163755 2019-08-04 19:56:22
  • 然而,这些方法是专门为图像到图像的转换而设计的,而不是骨骼驱动的三维人脸模型,因此不能应用于ingame环境。 Monocular 3D face reconstruction: 单眼三维人脸重建的目的是在单个二维人脸图像中恢复人脸的三维...

    摘要

    角色定制系统是角色扮演类游戏(RPG)的重要组成部分,玩家可以根据自身喜好对他们游戏中角色的面部外观进行编辑,而不使用默认模板。本文提出的方法能够根据输入的人脸照片自动创建玩家的游戏角色。基于面部相似性度量和参数搜索范式,并通过解决大量具有物理意义的人脸参数的优化问题,研究者制定了上述「艺术创造」过程。

    方法概览。该方法可基于输入人脸图像自动生成游戏角色,它基于人脸相似性度量和参数搜索机制(对大量具备物理意义的面部参数执行搜索)实现。之后用户可以根据需要自行微调生成游戏角色的面部参数。

    该方法的处理流程。模型包括模拟器 G(x) 和特征提取器 F (y)。前者模拟游戏引擎的行为,以用户定制的面部参数 x 为输入,生成「渲染后」的人脸图像 y。后者则决定了人脸相似性度量可以执行的特征空间,以搜索最优的面部参数集。

    推荐:本文是网易伏羲实验室的一篇论文,是 GAN 在游戏领域一个非常有创意的应用。利用人脸图像生成游戏中的角色人脸参数。据论文介绍,这个方法已在网易的游戏中使用了百万次。

    消息来源:机器之心7 Papers | 周志华等NeuralPS2019接收论文;网易用GAN建立游戏角色


    介绍

    角色定制系统是角色扮演游戏(rpg)中的一个重要组件,玩家可以根据自己的喜好(例如流行歌星甚至自己)编辑游戏中角色的配置文件,而不是使用默认模板。在最近的rpg中,为了提高玩家的沉浸感,角色定制系统变得越来越复杂。因此,角色定制过程对大多数玩家来说是费时费力的。例如,在《侠盗猎车手》(Grand Theft Auto)在线、《黑暗灵魂3》(Dark Souls III)和《正义3》(Justice3)中,为了根据真实的人脸照片创建一个具有理想面部外观的游戏角色,玩家必须花费数小时手动调整数百个参数,即使是经过大量的练习。一个标准的工作流程,为创建字符的脸在rpg开始配置大量的面部参数。然后游戏引擎将这些用户指定的参数作为输入并生成3D人脸。可以说,游戏角色定制可以看作是单眼3D人脸重建的一个特例[2, 34, 37]或风格迁移[10 12]问题。图像的语义内容和三维结构的生成一直是计算机视觉领域的难题。近年来,随着深度学习技术的发展,计算机利用深度卷积神经网络(CNN),可以自动生成具有新样式的图像[12,16,25],甚至可以从单个人脸图像中生成三维结构[34,37,39]。

    但遗憾的是,上述方法不能直接应用于游戏环境中。原因有三。首先,这些方法并不是为了生成参数化的字符而设计的,这对于大多数游戏引擎来说都是非常重要的,因为它们通常接受游戏角色的自定义参数,而不是图像或3D网格。其次,这些方法对用户交互不友好,因为大多数用户很难直接编辑三维网格或栅格化图像。最后,给定一组用户指定参数的游戏引擎呈现过程是不可微的,这进一步限制了深度学习方法在游戏环境中的适用性。

    针对上述问题,本文提出了一种基于玩家输入人脸照片自动创建游戏内角色的方法,如图1所示。我们通过求解一组较大的人脸参数优化问题,在人脸相似性度量和参数搜索范式下制定了上述艺术创作过程。与以往产生三维人脸网格的三维人脸重建方法[2,34,37]不同,我们的方法通过预测一组具有明确物理意义的人脸参数,为骨驱动模型创建三维轮廓。在我们的方法中,每个参数控制每个面部组件的单独属性,包括位置、方向和比例。更重要的是,我们的方法在创建结果的基础上支持额外的用户交互,允许玩家根据他们的需求对他们的配置文件进行进一步的改进。作为一个游戏引擎的渲染过程不是可微,生成网络G设计作为一个模仿者模仿游戏引擎的物理行为,因此该方法可以实现神经风格传输框架下和面部参数可以优化利用梯度下降,因此我们将我们的方法称为Face-to-Parameter(免费)的翻译方法。

    作为面部参数搜索的方法本质上是一种跨域图像相似性度量问题,我们利用深CNN和多任务学习专门设计两种损失函数,即有识别力的损失和面部内容损失前的图像相似度度量方法对应的全球面部外观和后者更多关注当地的细节。由于所有CNN的设计,我们的模型可以在统一的端到端框架下进行优化。通过这种方式,输入的照片可以通过最小化创建的人脸和真实人脸之间的距离,有效地转换为游戏中真实的角色。自2018年10月以来,我们的方法已经被部署在一款新游戏中,现在已经提供了超过100万次的服务。

    我们的贡献总结如下

    1)提出了一种基于端到端的人脸-字符转换和游戏角色自动生成方法。据我们所知,关于这一主题以前很少有人做过工作。

    2)由于游戏引擎的渲染过程是不可微的,我们引入了一个模仿者,通过构建一个深度生成网络来模仿游戏引擎的行为。通过这种方法,梯度可以平滑地反向传播到输入端,从而通过梯度下降来更新面部参数。

    3)针对跨域cross-domain人脸相似度测量,专门设计了两个损失函数。提出的目标可以在多任务学习框架下联合优化。


    相关工作

    Neural style transfer:从一幅图像到另一幅图像的样式转换一直是图像处理中一个具有挑战性的任务[10,11]。近年来,神经风格转换(Neural Style Transfer, NST)在风格转换任务上取得了巨大的突破[10 12],其中深度卷积特征的集成使得将内容和风格与输入图像显式分离成为可能。最近的大多数NST模型都是为了最小化以下目标而设计的。

    目前的望远镜方法可分为两组:全局方法[5, 9, 12, 19, 21, 26, 29, 35, 36]和本地方法[6, 25, 27],前者措施风格相似的基于全球特征统计,而后者执行缀块匹配,以更好地保护当地的细节。为了综合全局方法和局部方法的优点,最近提出了混合方法[16]。然而,这些方法是专门为图像到图像的转换而设计的,而不是骨骼驱动的三维人脸模型,因此不能应用于ingame环境。

    Monocular 3D face reconstruction:单眼三维人脸重建的目的是在单个二维人脸图像中恢复人脸的三维结构。这个群体的传统方法是3D morphable model (3DMM)[2]及其变体[3,32],其中3D face model首先参数化[14],然后优化匹配二维人脸图像。近年来,基于深度学习的人脸重建方法已经能够实现从二维图像到三维网格的端到端重建[8,34,3740]。然而,这些方法对用户交互并不友好,因为在三维网格上编辑并不容易,而且生成的人脸参数缺乏明确的物理意义。与我们的工作类似的是Genova的可微渲染器[13],他们直接渲染参数化的三维人脸模型通过使用可微光栅。在本文中,我们引入了一个更加统一的解决方案,即使用CNN模型来区分和模拟一个游戏引擎,无论它的渲染器类型和3D模型结构如何。

    Generative Adversarial Network (GAN):除了上述方法外,GAN[15]在图像生成方面也取得了很大的进展[1,30,31,33],并在图像风格传递任务方面显示出了很大的潜力[4,20,28,44,46]。与我们的方法类似的方法是绑定输出合成(bind Output Synthesis, TOS)[41],它利用对位训练创建基于人类照片的参数化化身。然而,该方法是用来预测离散属性而不是连续的面部参数。此外,在rpg中,学习直接从一张2D照片中预测一组较大的3D人脸参数会导致参数模糊的缺陷,因为2D到3D的内在对应关系是一对多的映射。因此,我们没有直接学习预测连续的人脸参数,而是通过优化输入的人脸参数,将生成的人脸与真实人脸的相似性最大化,从而在NST框架下构建人脸生成框架。


    方法

    我们的模型由一个模仿者G(x)和一个特征组成器F (y),前者旨在模仿行为的游戏引擎通过user-customized面部参数x和生产“呈现”的面部形象,而后者决定了面部的特征空间相似性度量可以执行优化面部参数。我们方法的处理流程如图2所示。

    1. Imitator

    我们训练一个卷积神经网络作为我们的模仿者来适应游戏引擎的输入-输出关系,使角色定制系统可微。我们在我们的模仿者G(x)中采用了与DCGAN[33]类似的网络结构,它由8个转置卷积层组成。我们的模仿者的结构如图3所示。为了简单起见,我们的模仿者G只适合具有相应面部定制参数的人脸模型的前视图。

    我们将模仿者的学习和预测框架为一个标准的基于深度学习的回归问题,我们的目标是最小化游戏中渲染的图像和原始像素空间中生成的图像之间的差异。模拟训练的损失函数设计如下

    x代表输入面部参数G (x)代表了模仿者的输出,yˆ=引擎(x)代表了游戏引擎的渲染输出。我们使用l1损失函数而不是l2,因为l1可以减少模糊。输入参数x从多维均匀分布u(x)中采样。最后,我们的目标是:

    在训练过程中,我们随机生成20000张人脸,并进行相应的人脸定制参数使用引擎的游戏公正。80%的人脸样本用于训练,其余的用于验证。图4显示了我们的模仿者渲染结果的三个例子。这些图像的面部参数是手动创建的。由于训练样本是从人脸参数的统一分布中随机产生的,所以对于大多数的角色来说可能看起来很奇怪(请参阅我们的补充资料)。尽管如此,从图4中我们仍然可以看出,生成的人脸图像和渲染的地面真实度具有很高的相似性,即使在一些纹理复杂的区域,例如头发,也是如此。这表明,我们的仿形器不仅能拟合低维人脸流形的训练数据,还能学习解耦不同人脸参数之间的相关关系。

    2. Facial Similarity Measurement

    一旦我们得到一个训练有素的模仿者G,人脸参数的生成本质上就成为一个人脸相似性度量问题。由于输入的人脸照片和渲染的游戏角色属于不同的图像域,为了有效地度量人脸相似性,我们设计了两种损失函数作为全局人脸外观和局部细节的度量。我们没有直接计算它们在原始像素空间中的损失,而是利用神经风格的传输框架,在深度神经网络学习的特征空间上计算损失。参数的生成可以看作是对仿真器流形的搜索过程,我们的目标是找到一个最优点y = G(x),使y与参考人脸照片yr的距离最小,如图5所示。

    Discriminative Loss

    我们引入了一个人脸识别模型F1来测量两张脸的整体外观,例如脸型和整体印象。我们遵循的感知距离的概念,已广泛应用于各种任务,如图像风格转移[12],超分辨率(21日24),和特性可视化[45],并假设不同的同一个人的肖像,他们的功能应该有类似的表现。为此,我们利用目前最先进的人脸识别模型Light cn -29 v2[42]提取两幅人脸图像256-d的人脸嵌入,然后计算它们之间的余弦距离作为相似性。损失函数是一种判别损失函数,它可以预测真实照片中的人脸和模仿者是否属于同一个人。上述过程的判别损失函数定义如下

    其中,两个向量a和b之间的余弦距离定义为:

    Facial Content Loss

    在识别损失的基础上,通过对人脸语义分割模型中提取的人脸特征进行像素级误差计算,进一步定义了内容损失。在两幅图像中,人脸内容的丢失可以看作是对不同人脸成分的形状和位移的约束,例如眼睛、嘴巴和鼻子。由于我们更关心人脸内容的建模而不是日常图像的建模,因此人脸语义分割网络是专门训练来提取人脸图像特征的,而不是使用现成的模型,这些模型是在ImageNet数据集[7]上预先训练的。我们建立了面部分割模型基于Resnet-50[17],我们删除了它的全连接层,并将其输出分辨率从1/32提高到1/8。我们在著名的Helen face语义分割数据集[23]上训练了该模型。为了提高人脸语义特征的位置敏感性,我们进一步利用分割结果(类智能概率图)作为特征图的像素权值来构造位置敏感的内容丢失函数。面部内容丢失定义如下:

    在F2代表了从输入图像映射到面部语义特征,ω代表pixel-wise重量的特性,例如,ω1 eye-nose-mouth地图。我们模型的最终损失函数可以写成L1和L2两个目标的线性组合

    参数α是用来平衡两个任务的重要性。

    我们的特征提取器如图6所示。我们使用梯度下降法求解如下优化问题:

    其中x = [x1, x2,…, xD]表示待优化的人脸参数,yr表示输入参考人脸照片。我们方法的完整优化过程总结如下

    第一阶段训练模仿者G、人脸识别网络F1和人脸分割网络F2。

    第二阶段固定G, F1, F2,初始化和更新面部参数x,直到达到迭代次数的最大值:

    实验细节:

    Imitator:在我们的仿真器中,将卷积核大小设置为4 4,将每个转置卷积层的步长设置为2,这样在每次卷积后,feature map的大小将会增加一倍。除输出层外,在每个卷积层之后,我们的仿真器都嵌入了批处理归一化和ReLU激活。此外,我们使用SGD优化器进行批大小= 16和动量= 0.9的培训。学习速率设置为0.01,每50个周期学习速率衰减10%,500个周期后停止训练。

    Facial segmentation network:我们使用Resnet-50[17]作为我们的分割网络的骨干,删除其完全连接的层,并在其顶部添加额外的11个卷积层。此外,为了提高输出分辨率,我们在Conv 3和Conv 4处将步长由2改为1。我们的模型在ImageNet[7]上进行预训练,然后在Helen face语义分割数据集[23]上进行微调,得到像素方向的交叉熵损失。我们使用与我们的模仿者相同的训练配置,只是学习率设置为0.001。

    Facial parameters:男性面部参数的维数D设置为264,女性设置为310。在这些参数中,208个为连续值(如眉长、眉宽、眉厚),其余是离散型(如发型、眉型、胡须型、口红型)。这些离散参数被编码为一个热向量,并与连续向量连接。由于单热编码难以优化,我们使用softmax函数对这些离散变量进行平滑处理,方法如下:

    其中D0表示离散参数的一次热编码维数。β> 0控制的平滑程度。我们设置相对较大的β,β= 100,加快优化。我们使用“平均人脸”初始化人脸参数x,即将连续部分的所有元素设为0.5,离散部分的所有元素设为0。关于面部参数的详细描述,请参考我们的补充资料.

    Optimization:至于优化在第二阶段中,我们设置α为0.01,最大数量的迭代50,学习速率µ10及其衰变率为20% 5迭代。

    Face alignment:人脸对齐(通过使用dlib库[22])在将输入的照片输入到特征提取器之前对其进行对齐,我们使用呈现以“平均脸”为参照。


    实验结果分析

    我们构建了一个包含50张面部特写照片的名人数据集来进行实验。图7显示了一些输入照片和生成的面部参数,游戏引擎可以在多个视图下呈现游戏内的角色,并且与输入照片高度相似。更多生成的示例,请参阅我们的补充资料。

    1. Ablation Studies

    在我们的数据集上进行消融研究,分析所提出框架的每个组件的重要性,包括1)鉴别损失和2)面部内容损失。

    1)有识别力的损失Discriminative loss。在判别损失的帮助下,对数据集w/或w/o运行我们的方法,并进一步采用Gatys的内容损失[12]作为基线。利用人脸识别模型[42]输出的余弦距离计算每张照片与生成的结果之间的相似性,如图8所示。当我们对判别损失进行积分时,可以看到明显的相似性改进。

    2)面部内容丢失。图9显示了生成的人脸在w/或w/o帮助下人脸内容丢失的对比。为了获得更清晰的图像,提取了人脸语义图和人脸成分的边缘。图9中,边缘图的黄色像素对应参考图片的边缘,红色像素对应生成的人脸。当我们应用面部内容丢失时,我们可以观察到输入的照片和生成的人脸之间的像素位置有更好的对应关系。

    3)主观评价。为了定量分析这两种损失的重要性,我们采用了Wolf等人的主观评价方法。具体地说,我们首先在数据集中生成50组具有不同配置的相似性度量损失函数(仅L1、L2和L1+L2)的字符自动创建结果。然后,我们让15名非专业志愿者在每组中选出最好的作品,其中三个角色是随机排列的。最后,将输出字符的选择比例定义为志愿者在其组中选择的最佳字符所占的百分比,并使用总体选Discriminative loss

    2. Comparison with other methods

    我们将该方法与一些流行的神经风格传递方法:全局风格方法[12]和局部风格方法[16]进行了比较。虽然这些方法不是专门为生成3D字符而设计的,但我们仍然进行了比较因为它们在许多方面与我们的方法相似。首先,这些方法都是基于深度学习特征来测量两幅图像的相似性。其次,这些方法中的迭代优化算法都是在网络的输入端进行的。如图10所示,我们可以看到,通过将图像样式与内容分离并重新组织,很难生成生动的游戏角色。这是因为生成的图像并不是完全从游戏角色流形中采样的,因此很难在RPG环境中应用这些方法。我们还将我们的方法与常用的单眼三维人脸重建方法3DMM-CNN[39]进行了比较,如图10右侧所示。我们自动创建的游戏角色与输入具有很高的相似性,而3DMM方法只能生成具有相似面部轮廓的面具。

    为了定量评估生成的人脸与游戏内风格参考之间的相似性,我们使用了Mode Score (MS)[43]和Frechet Inception Distance (FID)[18]作为度量标准。对于每一幅测试图像,我们从模拟训练集中随机选取一幅图像作为其参考,计算平均MS和FID整个测试集。上述操作重复5次,计算最终均值和标准差,如表2所示。每个方法的运行时也被记录下来。与其他方法相比,该方法具有较高的风格相似性和较好的速度性能。

    3. Robustness and limitation.

    我们进一步评估了我们的方法在不同的模糊和光照条件下,我们的方法证明了对这些变化的鲁棒性,如图11所示。最后一组给出了我们方法的一个失败案例。由于L2是在局部特征上定义的,所以我们的方法对姿态变化很敏感。

    4. Generation with artistic portraits

    我们的方法不仅可以生成真实的照片,还可以生成一些艺术肖像的游戏人物,包括素描图像和漫画。图12给出了一些生成结果的例子。虽然这些图像的分布完全不同,但是由于我们的方法是基于人脸语义而不是原始像素来度量相似性,所以我们仍然获得了高质量的结果。


    结论

    本文提出了一种基于输入人脸照片的游戏角色自动生成方法。通过求解一组具有物理意义的人脸参数的优化问题,建立了人脸相似度度量和参数搜索范式下的模型。实验结果表明,该方法无论在全局外观还是局部细节上,都能较好地实现输入人脸照片与游戏中呈现的角色之间的生成相似性和鲁棒性。

    附件网络参数

     

    引用

    展开全文
    weixin_37993251 2019-09-17 23:27:18
  • 12.1MB weixin_42097914 2021-03-25 04:27:31
  • 8.BRAN(1) “Do you think the king will require proof?” the woman said. “I tell you, he loves me ... Somewhere off in the distance, a wolf was howling. Crows circled the broken tower, waiting for corn.

    8.BRAN(1)

    “Do you think the king will require proof?” the woman said. “I tell you, he loves me not.”
    “And whose fault is that, sweet sister?”
    Bran studied the ledge. He could drop down. It was too narrow to land on, but if he could catch hold as he fell past, pull himself up?.?.?.?except that might make a noise, draw them to the window. He was not sure what he was hearing, but he knew it was not meant for his ears.
    “You are as blind as Robert,” the woman was saying.
    “If you mean I see the same thing, yes,” the man said. “I see a man who would sooner die than betray his king.”
    “He betrayed one already, or have you forgotten?” the woman said. “Oh, I don’t deny he’s loyal to Robert, that’s obvious. What happens when Robert dies and Joff takes the throne? And the sooner that comes to pass, the safer we’ll all be. My husband grows more restless every day. Having Stark beside him will only make him worse. He’s still in love with the sister, the insipid little dead sixteen-year-old. How long till he decides to put me aside for some new Lyanna?”
    Bran was suddenly very frightened. He wanted nothing so much as to go back the way he had come, to find his brothers. Only what would he tell them? He had to get closer, Bran realized. He had to see who was talking.
    The man sighed. “You should think less about the future and more about the pleasures at hand.”
    “Stop that!” the woman said. Bran heard the sudden slap of flesh on flesh, then the man’s laughter.
    Bran pulled himself up, climbed over the gargoyle, crawled out onto the roof. This was the easy way. He moved across the roof to the next gargoyle, right above the window of the room where they were talking.
    “All this talk is getting very tiresome, sister,” the man said. “Come here and be quiet.”
    Bran sat astride the gargoyle, tightened his legs around it, and swung himself around, upside down. He hung by his legs and slowly stretched his head down toward the window. The world looked strange upside down. A courtyard swam dizzily below him, its stones still wet with melted snow.
    Bran looked in the window.
    Inside the room, a man and a woman were wrestling. They were both naked. Bran could not tell who they were. The man’s back was to him, and his body screened the woman from view as he pushed her up against a wall.
    There were soft, wet sounds. Bran realized they were kissing. He watched, wide-eyed and frightened, his breath tight in his throat. The man had a hand down between her legs, and he must have been hurting her there, because the woman started to moan, low in her throat. “Stop it,” she said, “stop it, stop it. Oh, please?.?.?.?” But her voice was low and weak, and she did not push him away. Her hands buried themselves in his hair, his tangled golden hair, and pulled his face down to her breast.
    Bran saw her face. Her eyes were closed and her mouth was open, moaning. Her golden hair swung from side to side as her head moved back and forth, but still he recognized the queen.
    He must have made a noise. Suddenly her eyes opened, and she was staring right at him. She screamed.
    Everything happened at once then. ‘ The woman pushed the man away wildly, shouting and pointing. Bran tried to pull himself up, bending double as he reached for the gargoyle. He was in too much of a hurry. His hand scraped uselessly across smooth stone, and in his panic his legs slipped, and suddenly he was failing. There was an instant of vertigo, a sickening lurch as the window flashed past. He shot out a hand, grabbed for the ledge, lost it, caught it again with his other hand. He swung against the building, hard. The impact took the breath out of him. Bran dangled, one-handed, panting.
    Faces appeared in the window above him.
    The queen. And now Bran recognized the man beside her. They looked as much alike as reflections in a mirror.
    “He saw us,” the woman said shrilly.
    “So he did,” the man said.
    Bran’s fingers started to slip. He grabbed the ledge with his other hand. Fingernails dug into unyielding stone. The man reached down. “Take my hand,” he said. “Before you fall.”
    Bran seized his arm and held on tight with all his strength. The man yanked him up to the ledge. “What are you doing?” the woman demanded.
    The man ignored her. He was very strong. He stood Bran up on the sill. “How old are you, boy?”
    “Seven,” Bran said, shaking with relief. His fingers had dug deep gouges in the man’s forearm. He let go sheepishly.
    The man looked over at the woman. “The things I do for love,” he said with loathing. He gave Bran a shove.
    Screaming, Bran went backward out the window into empty air. There was nothing to grab on to. The courtyard rushed up to meet him.
    Somewhere off in the distance, a wolf was howling. Crows circled the broken tower, waiting for corn.

    展开全文
    swy_swy_swy 2020-04-19 17:47:59
  • swy_swy_swy 2020-05-12 23:46:10
  • swy_swy_swy 2020-04-26 23:58:09
  • swy_swy_swy 2020-04-26 22:37:28
  • weixin_34364071 2015-08-04 15:01:00
  • weixin_30289831 2019-07-15 21:32:46
  • iam1515 2019-02-23 12:35:11
  • 2.27MB weixin_42113552 2021-05-02 09:01:19
  • swy_swy_swy 2020-04-19 17:38:49
  • swy_swy_swy 2020-04-19 17:10:01
  • swy_swy_swy 2020-04-19 17:55:06
  • swy_swy_swy 2020-04-21 08:14:18
  • swy_swy_swy 2020-04-21 09:06:47
  • swy_swy_swy 2020-04-21 08:04:57

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,640
精华内容 656
热门标签
关键字:

gamewolf