Spark AR上的2D人脸跟踪

时间:2020-07-03 17:43:07

标签: javascript canvas spark-ar-studio

我一直在尝试使2D画布/平面中的面部纹理仅沿着X / Y轴移动,跟随面部的运动而不旋转,并且2D背景摄影机纹理准确地反映在顶部。现在,当我将画布连接到面部跟踪器时,比例会失真,并且2D平面在3D空间中旋转。有关当前的画布/相机纹理/面部跟踪器设置,请参见下文。手动缩放会导致跟踪效果不佳。

这是我的代码:

const FaceTracking = require('FaceTracking')
const Scene = require('Scene')

export const Diagnostics = require('Diagnostics');

// Locate the plane in the Scene
// Enable async/await in JS [part 1]
(async function () {
  const [plane] = await Promise.all([
    Scene.root.findFirst('blur_plane')
  ])

  // Store a reference to a detected face
  const face = FaceTracking.face(0)

  // To access scene objects
  const planeTransform = plane.transform
  const faceTransform = face.cameraTransform
  // const blurCanvas = Scene.root.find('canvas0');

  // To access class properties
  planeTransform.rotationX = faceTransform[0]
  planeTransform.rotationY = faceTransform[0]
  planeTransform.rotationZ = faceTransform[0]
})()

这是当前外观: current canvas/camera texture and face tracker set-up 我希望375x667px的画布看起来完全像它下面的相机层,以便在不调整相机纹理的情况下该层将不可见。

1 个答案:

答案 0 :(得分:0)

结果证明,Facebook有一个处理2D运动但不进行缩放的示例: https://sparkar.facebook.com/ar-studio/learn/reference/classes/facetrackingmodule