所有文档

          人脸识别

          人脸表情动捕驱动SDK-Windows Unity

          1 版本说明

          SDK试用期免费,同时提供基础技术支持,内容定制走平台生态对接三方服务商支持。

          2 开发环境

          • Unity 开发推荐版本:Unity 2017.1.5 及以上。
          • 图像采集设备:推荐 720p 以上RGB相机。

          3 运行环境

          Dumoji SDK 支持发布Unity平台Windows 64位应用,并且需要保持联网状态。

          4 鉴权

          • 试用期间,此SDK无需用户主动申请鉴权,由百度方技术人员完成鉴权申请工作,随SDK交付,百度方会提供对应的license文件和API KEY字段。
          • License文件需放置在"..\Assets\StreamingAssets"路径下,API KEY需赋值给”ARCamera”游戏对象上的”BaiduARBuild”脚本组件上的”API key”字段上

          5 功能介绍

          此SDK提供人脸关键点检测能力和Dumoji面部驱动能力,提供Unity层插件接口。

          5.1 人脸关键点检测

          人脸识别成功时,返回150个人脸关键点。

          //@brief landmark index 0 - 149.
          {0, 72, 1, 73, 2, 74, 3, 75, 4, 76, 5, 77, 6, 78, 7, 79, 8, 80, 9, 81, 10, 82, 11, 83, 12}, //face contour
          {84, 23, 24, 25, 85, 26, 27, 28, 29, 22}, //left eyebrow
          {86, 40, 41, 42, 87, 43, 44, 45, 46, 39}, //right eyebrow
          {13, 88, 14, 89, 15, 90, 16, 91, 17, 92, 18, 93, 19, 94, 20, 95, 96, 21, 97}, //left eye
          {30, 98, 31, 99, 32, 100, 33, 101, 34, 102, 35, 103, 36, 104, 37, 105, 106, 38, 107}, //right eye
          {47, 48, 49, 50, 111, 51, 112, 115, 57, 110, 109, 108, 56, 55, 54, 53, 114, 52, 113}, //nose
          {58, 118, 119, 59, 120, 121, 60, 122, 123, 61, 124, 125, 62, 126, 127, 63, 128, 129, 64, 130, 131, 65, 132, 133}, //mouth outer lips
          {116, 134, 135, 66, 136, 137, 67, 138, 139, 68, 140, 141, 117, 142, 143, 69, 144, 145, 70, 146, 147, 71, 148, 149} //mouth inner lips

          5.2 头部姿态

          人脸识别成功时,返回人脸姿态四元数。

          5.3 面部驱动

          人体面部通过Blend Shapes进行驱动。 当人脸识别成功后,返回Dictionary<string,float>,其中Key为Blend Shape的名称、Value为Blend Shape 的归一化系数。 51个表情基底名称如下,详细描述可参考ARKit: https://developer.apple.com/documentation/arkit/arfaceanchor/blendshapelocation

          1)眉毛(brow):"browDownLeft", "browDownRight", "browInnerUp", "browOuterUpLeft", "browOuterUpRight"。

          2)脸颊(cheek):"cheekPuff", "cheekSquintLeft", "cheekSquintRight"。

          3)眼部(eye):"eyeBlinkLeft", "eyeBlinkRight", "eyeLookDownLeft", "eyeLookDownRight", "eyeLookInLeft", "eyeLookInRight", "eyeLookOutLeft", "eyeLookOutRight", "eyeLookUpLeft", "eyeLookUpRight", "eyeSquintLeft", "eyeSquintRight", "eyeWideLeft", "eyeWideRight",

          4)下颚(jaw):"jawForward", "jawLeft", "jawOpen", "jawOpenMouthClose", "jawRight", 5)嘴部 (mouth): "mouthDimpleLeft", "mouthDimpleRight", "mouthFrownLeft", "mouthFrownRight", "mouthFunnel", "mouthLeft", "mouthLowerDownLeft", "mouthLowerDownRight", "mouthPressLeft", "mouthPressRight", "mouthPucker", "mouthRight", "mouthRollLower", "mouthRollUpper", "mouthShrugLower", "mouthShrugUpper", "mouthSmileLeft", "mouthSmileRight", "mouthStretchLeft", "mouthStretchRight", "mouthUpperUpLeft", "mouthUpperUpRight",

          6)鼻部(nose):"noseSneerLeft", "noseSneerRight"

          注:

          1.返回的Dictionary默认为字母顺序排序,开发者可根据自己的使用情况进行筛选和调整

          2.arkit为52基底,Dumoji暂不支持舌头基底,故为51个表情基底

          6 运行说明

          6.1 接口函数

          /*启动AR*/
          void StartAR();
          /*停止AR*/
          void StopAR();
          /*暂停AR*/
          void PauseAR();
          /*继续AR*/
          void ResumeAR();
          
          /*清理人脸坐标点*/
          void InvokeFaceClearMessage(Action clear);
          
          /*获得识别成功人脸关键点*/
          void InvokeFacePosMessage(Action<List<OutPutDataFace>> posCallback)
          
          /*获得识别成功的动画信息(BlendShapes和人脸姿态四元数)*/
          void InvokeFaceAnimMessage(Action<OutPutDataDuMoji> dumojiCallback)
          
          /*人脸表情和姿态角的校准*/
          void InvokeFaceAnimCalibrateMessage()
          
          /*返回报错信息*/
          void InvokeErrorMessage(Action<string,string> errorCallback);

          6.2 调用示例

          开发者需要调用ARDumojiExample组件中的InvokeFacePosMessage、InvokeFaceAnimMessage和InvokeFaceAnimCalibrateMessage监听回调事件。

          InvokeFacePosMessage事件可得到一个List lstVet,用来获取肢体各个部位的信息。OutPutDataFace 这个类中包含的信息包括:VectorScreenPos(人脸屏幕坐标),得到的List中一共包含150个点位信息。

          InvokeFaceAnimMessage事件可得到一个OutPutDataDuMoji mOutPutDataDuMoji,用来获取人脸的表情信息。OutPutDataDuMoji 这个类中包含的信息包括:blendshapesDic(人脸blendshapes的Dictionary),得到的Dictionary中一共包含51个表情信息。faceQuaterion 人脸姿态角四元数。 InvokeFaceAnimCalibrateMessage事件为姿态角和表情校准功能事件,注册调用即可。

          ARDumojiExample组件中可调用的监听事件,如图所示: image

          上一篇
          人脸表情动捕驱动SDK-Android
          下一篇
          实时美发染色SDK