kinect可以通过摄动摄像头不仅可以获取人脸位置旋转信息,也可以获取脸部轮廓的三维坐标
可以参考插件中的场景KinectFaceTrackingDemo1-4,在kinectManager基础上需要脚本FacetrackingManager。
1)通过KinectManager kinectManager = KinectManager.Instance;获取到Kinect运行实例
2)通过sensorData = kinectManager.GetSensorData();获取到传感器信息
3)同SensorData类的sensorInterface获取相关信息,如下为部分方法,可以获得人脸的Rect以及头部位置等等
bool IsFaceTrackingAvailable(ref bool bNeedRestart);// initializes libraries and resources needed by the face tracking subsystembool InitFaceTracking(bool bUseFaceModel, bool bDrawFaceRect);// releases the resources and libraries used by the face tracking subsystemvoid FinishFaceTracking();// this method gets invoked periodically to update the face tracking state// returns true if update is successful, false otherwisebool UpdateFaceTracking();// returns true if face tracking is initialized, false otherwisebool IsFaceTrackingActive();// returns true if face rectangle(s) must be drawn in color map, false otherwisebool IsDrawFaceRect();// returns true if the face of the specified user is being tracked at the moment, false otherwisebool IsFaceTracked(long userId);// gets the face rectangle in color coordinates. returns true on success, false otherwisebool GetFaceRect(long userId, ref Rect faceRect);// visualizes face tracker debug informationvoid VisualizeFaceTrackerOnColorTex(Texture2D texColor);// gets the head position of the specified user. returns true on success, false otherwisebool GetHeadPosition(long userId, ref Vector3 headPos);// gets the head rotation of the specified user. returns true on success, false otherwisebool GetHeadRotation(long userId, ref Quaternion headRot);