2018年11月21日,由于角色和服装之间的复杂交互,制作角色穿衣动画十分具有挑战性。由乔治亚理工学院博士生与教授,以及Google Brain研究人员组成的团队采用了深度强化学习(deepRL)来自动发现由神经网络表示的稳定穿衣控制策略。尽管deepRL在学习复杂运动技能方面已经取得了一些成功,但学习算法的数据要求性质与穿衣任务所需的高昂布料模拟计算成本不一致。
名为《Learning to Dress: Synthesizing Human Dressing Motion via Deep Reinforcement Learning(学习穿衣:通过深度强化学习来合成人类穿衣运动》的论文于日前正式发布,并首次证明通过适当设计的输入状态空间和回报函数,研究人员可以将布料模拟整合至deepRL框架并学习稳定的穿衣控制策略。研究人员引入了触觉信息的显著呈现来引导穿衣过程,并在训练期间将其用于回报函数以提供学习信号。
1. 理解穿衣问题
我们每天都会穿衣搭配,比如说穿上T恤或夹克。但对于机器执行或计算机模拟而言,这是计算成本高昂且复杂的任务。论文描述的解决方案通过物理模拟和机器学习技术来合成动画。物理引擎用于模拟角色运动和布料运动。另一方面,神经网络上的深度强化学习则用来产生角色运动。
2. 物理引擎和神经网络上的强化学习
论文作者提出了一种触觉信息的突出呈现以引导穿衣过程。然后当训练神经网络时,在回报函数中使用这种触觉信息来提供学习信号。由于任务过于复杂无法一次执行,因此穿衣任务将分成若干子任务,从而实现更好的控制。
为了匹配从一个任务的输出状态分布到下一个任务的输入分布,研究人员提出了一种policy sequencing algorithm(策略排序算法)。相同的方法用于生成用于各种穿着任务的角色控制器,例如穿着T恤和穿着夹克。
3. 穿衣是一项复杂的任务,所以将其分成多个子任务
研究人员的方法将穿衣任务分成了一系列的子任务。接下来,状态机将引导任何的进行。例如,穿着夹克由四个子任务组成:
第一个手臂穿过袖筒。
将第二个手臂移到后面,为第二个袖筒定位。
第二个手臂穿过第二个袖筒。
最后,身体恢复至正常状态。
为了学习控制策略,研究人员为每个子任务制定了单独的强化学习问题。
Policy Sequencing Algorithm可以确保单独的控制策略可以引导系统按顺序执行穿衣序列。算法将一个子任务的初始状态与序列中前一个子任务的最终状态进行匹配。通过应用所得到的控制策略,系统可以生成各种成功的穿衣动作。
穿衣任务中的每个子任务都进行了公式化,编程为部分可观察的马尔可夫决策过程(Markov Decision Process;POMDP)。借助动态动画和机器人工具包(Dynamic Animation and Robotics Toolkit;DART),以及基于NVIDIA PhysX的布料动力学,系统可以模拟角色动力学。
4. 总结和提升空间
通过深度强化学习和物理模拟,研究人员成功创建了一个学习如何制作角色穿衣动画的系统。从子任务中,系统单独学习每个子任务,然后将它们与状态机连接。结果发现,优选布料观察和回报函数是方法成功的重要因素。
系统目前仅适用于上半身穿衣。对于下半身,系统需要在控制器中保持平衡。当使用包含记忆的控制策略架构时,子任务的数量可能会减少。这将有助于生成所学的技能。