如何获取mediapipe返回的每个人脸地标的模型视图矩阵?

问题描述

我正在尝试为 mediapipe 返回的每个人脸地标提取模型视图矩阵,就像我们在 here 中使用 ARCore 所做的那样,以便我可以在精确的地标处渲染 3D 对象。

使用the face geometry example of mediapipe,我可以提取人脸几何图形,并通过访问 VertexBufferList 中的相应索引来粗略估计每个地标点:

                    List<FaceGeometry> multiFaceGeometry =
                            PacketGetter.getProtoVector(packet,FaceGeometry.parser());
                    // Get x,y,z translation to landmark 100
                    x = multiFaceGeometry.get(0).getMesh().getVertexBufferList().get(100*5 + 0);
                    y = multiFaceGeometry.get(0).getMesh().getVertexBufferList().get(100*5 + 1);
                    z = multiFaceGeometry.get(0).getMesh().getVertexBufferList().get(100*5 + 2);

                    MatrixData poseTransformMatrix = multiFaceGeometry.get(0).getPoseTransformMatrix();
                    Matrix.translateM(poseTransformMatrix,x,z);

然而,问题是当我尝试移动我的脸时,地标位置不正确。在 ARCore 中,我可以通过获取 centerPose 然后像上面一样通过 x、y、z 进行平移来获得一个漂亮而精确的地标位置。所以我的问题是,有没有办法为 mediapipe 返回的每个地标点获得精确的模型视图矩阵?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)