1

正確なランドマークで 3D オブジェクトをレンダリングできるように、ここで ARCore でできることと同じように、mediapipe によって返される各顔ランドマークのモデル ビュー マトリックスを抽出しようとしています。

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, 0, x, y, z);

ただ、顔を動かそうとするとランドマークの位置がずれてしまうのが難点。ARCore では、centerPose を取得して上記のように x、y、z で変換するだけで、正確なランドマークの位置を取得できます。私の質問は、mediapipe によって返される各ランドマーク ポイントの正確なモデル ビュー マトリックスを取得する方法はありますか?

4

0 に答える 0