无论旋转如何,跟踪增强面 (ARCore) 的面网格顶点

2024-01-04

我正在尝试跟踪面部表情,例如扬眉、微笑、眨眼等。在 ARKit 中,我可以使用 blendShapes (https://developer.apple.com/documentation/arkit/arfaceanchor/2928251-blendshapes https://developer.apple.com/documentation/arkit/arfaceanchor/2928251-blendshapes)来检测面部不同部位的运动,但在 ARCore 中尚不存在。

我尝试访问相对于面部中心变换的网格顶点,但这些顶点随着面部的旋转而发生显着变化。

有没有办法将面部标志/顶点从 0 标准化为 1,其中 0 是中性,1 是最大面部表情?它不需要像 ARKit BlendShapes 那样准确。


您的问题涉及两个独立的问题:-

  1. 像 ARKit 一样从 ARCore 获取混合形状的问题。
  2. 头部旋转的问题使得逐点比较变得困难。

我没有解决问题 1 的方法。但是,对于问题 2,您可以根据地标点计算旋转矩阵。我有一个方法可以为 mediakit 面部网格做这件事。希望这对您有用:-

def calc_rotation_matrix(self):
    left_corner_right_eye = get_left_corner_right_eye()
    right_corner_left_eye = get_right_corner_left_eye()
    left_corner_face = get_left_corner_face()
    right_corner_face = get_right_corner_face()
    upper_nose = get_upper_pt_nose()
    chin = get_chin()

    rotation_matrix = np.zeros((3, 3))
    rotation_matrix[0:] = (right_corner_face - left_corner_face) / np.linalg.norm(right_corner_face - left_corner_face)
    rotation_matrix[1:] = (chin - upper_nose) / np.linalg.norm(chin - upper_nose)
    rotation_matrix[2:] = np.cross(rotation_matrix[0, :], rotation_matrix[1, :])
    
    return rotation_matrix

显然,您必须编写方法来为您自己的用例获取相应的点。一旦你有了这个旋转矩阵,你总是可以通过将地标乘以 (pitch, yaw, roll) = (0, 0, 0) 来获得面部np.linalg.inv(rotation_matrix)

AFAIK MediaKit(或 ARCore)没有内置的 blendshapes 功能。@Hardik 在上面的评论中提到 OpenCV 和 Dlib 可以在这方面提供帮助..但我不太确定。事实上,我正在寻找类似的东西。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无论旋转如何,跟踪增强面 (ARCore) 的面网格顶点 的相关文章

随机推荐

  • Tesseract 混淆两个数字

    我正在编写一个应用程序来扫描图像中的数字 这些数字使用 OCR B 字体 并且还可能包含 and gt 人物 这是我的源图像 即使将字符集限制为上述字符 使用 Tesseract 的扫描效果也不是很好 由于我没有找到 Tesseract 的
  • Visual Studio 不会调试到引用的 DLL(来自同一解决方案)

    我有一个 Visual studio 2008 解决方案 有 2 个项目 一个 DLL A 一个 Web 应用程序 B B 有一个对 A 的项目引用 并且 A dll 和 A pdb 正在被复制到 B 的 bin 目录中 一切都设置为在调试
  • 文件夹外的文件夹路径

    我的主文件夹中有一个包含所有 css 的文件夹 名为 main 在 main 中 我有另一个名为 math 的文件夹 我想在 math 文件夹中使用我的CSS 但是当我输入 在 math 文件夹的index html 上它可以工作 我认为这
  • 无法在 Codeigniter 中加载请求的类 Session

    我的图书馆在autoload php is autoload libraries array database pagination session cart form validation 我收到此错误 An Error Was Enco
  • Kotlin 注解 IntDef

    我有这个代码示例 class MeasureTextView TextView constructor context Context super context constructor context Context attrs Attr
  • 如何向框架添加鼠标监听器

    我想向 mt JFrame 框架添加一个 mouselistener 但是当我执行 frame addMouseListener this 时 我收到一个错误 指出我无法在静态方法中使用它 我正在制作一个应用程序 检测鼠标的单击 然后以 i
  • 如何使用 scikit 的预处理/标准化以及交叉验证?

    作为没有任何预处理的交叉验证的示例 我可以这样做 tuned params penalty l2 l1 from sklearn linear model import SGDClassifier SGD SGDClassifier fro
  • 如果选中则获取复选框值

    我正在使用 HTML 和 JQuery mobile 构建一个表单 以便该表单可以在移动设备上使用 我有通过电子邮件导出到 CSV 的表单 但是 如果未选中复选框 则不会写入 CSV 文件 我可以使用 jQuery 中的函数使用标签中的值从
  • MySQL GROUP_CONCAT 多个字段

    我可能正处于无脑时刻 我想使用 GROUP CONCAT 从数据库中的两个字段返回一系列数字 到目前为止我已经使用以下方法完成了此操作 SELECT t id CONCAT GROUP CONCAT DISTINCT s id IFNULL
  • 如何在 C# 中序列化和反序列化以字节数组作为成员的类

    我正在尝试以字节流的形式在两个进程之间发送数据 这对于几乎所有类都工作得很好 但我遇到的一个问题是 如果对象的类内部有一个字节数组并给出 则反序列化会失败我收到一个错误 指出无法加载发生序列化的程序集 我无法将程序集包含在此处 因为发送方和
  • matplotlib:3D 图中的网格

    In matplotlib 如何在 3D 散点图中显示网格 在二维图中我只是这样做 plt grid True 它就像一个魅力 现在 对于 3D 绘图 相同的调用会返回警告 File usr lib pymodules python2 7
  • Haystack - 为什么 RealtimeSearchIndex 有时不更新我保存的对象

    我正在将 Haystack 和 Whoosh 与 Django 一起使用 在 search index py 中我有这个 class PageIndex RealTimeSearchIndex text CharField document
  • 在 Collectionview 中如何根据选择设置颜色?

    我的要求是首先设置默认颜色indexPath我想根据选择改变颜色 我的要求是当集合视图在第一个索引加载时背景颜色应该是红色 未选择的颜色是蓝色 如何管理这个 这是我的代码 import UIKit class MyCollectionVie
  • pandas,将多列的多个函数应用于groupby对象

    我想将多列的多个函数应用于 groupby 对象 这会产生一个新的pandas DataFrame 我知道如何分步骤完成 by user lasts groupby user elapsed days by user apply lambd
  • 如何禁用 mmap() 的写入时复制和按需填充零

    我正在使用 mmap 实现 cp 文件复制 命令 为此 我在 MAP PRIVATE 因为我只想读取 模式下映射源文件 在 MAP SHARED 模式下映射目标文件 因为我必须写回目标文件的更改内容 在执行此操作时 我观察到由于两个原因而发
  • 让 HABTM 关系在 CakePHP 中独一无二

    我有两个模型 称为 Book 和 Tag 它们处于 HABTM 关系中 我希望一对 书籍 标签 仅保存一次 在我的模型中我有 var hasAndBelongsToMany array Tag gt array className gt T
  • 如何在 XPage 中隐藏带有
  • 标记的菜单项
  • 我有一个基于这个惯例的传统菜单 ul li li ul
  • JXMultiSplitPane 在滑块调整期间导致重绘?

    在调整分离器期间 我似乎收到频繁的重涂请求JXMultiSplitPane http download java net javadesktop swinglabs releases weekly week 42 2006 10 15 sw
  • JPA继承@EntityGraph包括子类的可选关联

    给定以下域模型 我想加载所有Answer包括他们的Values 及其各自的子孩子并将其放入AnswerDTO然后转换为 JSON 我有一个可行的解决方案 但它遇到了 N 1 问题 我想通过使用临时解决方案来摆脱它 EntityGraph 所
  • 无论旋转如何,跟踪增强面 (ARCore) 的面网格顶点

    我正在尝试跟踪面部表情 例如扬眉 微笑 眨眼等 在 ARKit 中 我可以使用 blendShapes https developer apple com documentation arkit arfaceanchor 2928251 b