首页 > 编程知识 正文

animoji表情只有x有吗(苹果8有animoji表情吗)

时间:2023-05-06 18:28:05 阅读:89261 作者:4785

随着

背景

摄像机游戏和现场迷你游戏的兴起,许多有趣的摄像机游戏需要识别用户的表情状态。 因此,通过摄像机识别进行表情识别的精度会极大地影响玩家的游戏体验。

相关工作

的传统面部关键标记工具包括成熟的库和web服务,如DLib、fire base ml工具包和Face。 已经有很多基于面部关键点和机器学习的面部表情识别算法。 例如使用CK、MMI等训练集训练支持向量机和卷积神经网络的表情识别器。 但是,这种方法很难使用,其识别精度完全依赖于训练集,通过训练得到的分类器的可解释性很弱。 对小游戏的前端开发人员不友好。 本文介绍了基于Animoji技术的表情识别方法,并利用决策树对用户的表情进行直观分类。

介绍

Animoji是利用苹果公司提供的摄像头检测用户表情变化,获得脸部标识点和表情系数,生成可爱的3D表情模型的能力。 使用此功能,用户可以说话和移动自己的脸,但Animoji会实时跟踪动作。 Animoji的传统应用是基于BlendShape法,从用户输入的脸部图像合成虚拟的3D动画脸部。 不仅返回传统面部注释记号,还返回52个blendshape系数。 blendshape系数是脸部表情位于更高纬度的说明。 通过分析blendshape系数,可以对用户当前的表情进行分类。

Animoji数据的获取

目前,IOS开发可以通过ARKit获取blendshape系数,方便开发者调用Animoji的能力获取blendshape系数。

BlendShape系数

Arkit中,针对表情特征位置,设定了52组运动blendshape系数(https://Developer.apple.com /文档/Arkit/Arfaceanchor/Blendshaphape 定义特定的表情属性,如mouthSmileRight,其对应的blendshape系数表示表情的运动范围。 这52组blendshape系数如下表所示。

一个blendshape系数的取值范围为0~1的浮点数。 以jawOpen为例,如果认为用户的嘴完全闭合,则返回的jawOpen系数为0。 如果认为用户的嘴是最大的,则返回的jawOpen系数为1。

在用户完全闭上嘴到最大嘴之间的过渡状态下,jawOpen根据用户张开嘴的宽度返回0到1之间的插值。

我们利用Animoji的能力实时监测从用户摄像头输入的图像,可以返回对输入图像识别出的52种blendshape系数。

建立表情分类决策树

人物的喜悦、愤怒、悲伤、音乐都是由脸部肌肉的动作表现出来的,这些表情的变化都是由脸部肌肉的动作产生的。 获得用户脸部的52种blendshape系数后,我们可以根据人物表情和脸部肌肉的关系,为表情分类制作决策树。

例如,生气的时候,人的瞳孔张开,眼皮宽,两眼睁得圆圆的,眉间的皱纹加深,眉尾朝上,脸颊抬起,嘴的周围被拉向外侧。

以上

描述对应的blendshape系数的变化趋势为:

瞳孔打开、双目圆睁、眼皮变宽: eyeWideRight + eyeWideLeft + eyeSquintLeft → 0 eyeSquintRight → 0 蹙眉: browDownLeft + browDownRight + 脸颊有可能会向上抬: cheekSquintLeft + cheekSquintRight + 嘴的周围有可能向外侧拉伸: mouthStretchLeft + mouthStretchRight +

对不同的表情分别建立blendshape系数的变化趋势特征,从中选取具有区分度的特征作为决策依据。可以建立一棵可解释的表情分类决策树,如下所示:

以下是伪代码实现的参考:

if(browDownLeft < 0.4 && browDownRight < 0.4){ if(mouthSmileLeft < 0.1 && mouthSmileRight < 0.1 && browOuterUpLeft > 0.1 && browOuterUpRight > 0.1){ /// 表情判定为'吃惊!' } if(mouthSmileLeft > 0.5 && mouthSmileRight > 0.5){ /// 表情判定为'喜!' } } if(browDownLeft > 0.5 && browDownRight > 0.5){ if(eyeSquintLeft < 0.4 && eyeSquintRight < 0.4){ /// 表情判定为'怒!' } if(eyeSquintLeft > 0.5 && eyeSquintRight > 0.5){ /// 表情判定为'悲!' } } 结果与讨论

本文通过利用Animoji技术识别用户的表情,可以根据用户的摄像头输入将用户的表情划分为喜、怒、哀、吃惊 四种表情。

该方法的特点是利用了比人脸关键点更高维度语义的blendshape语料,该方法的优点有:

1⃣️ 理解与实现简单;

2⃣️ 具有可解释性,方便调参。

该方法的缺点有:

1⃣️ 依赖Animoji能力及其准确性。

2⃣️ 当需要监测更多表情时,需要重新构建决策树。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。