今天来搞定人脸部分的AI应用!通过Read.me我们可以知道当前FaceTrack的demo介绍了三个功能:
1 -Face tracking —— 人脸检测跟踪
2 - Facial landmark tracking ——68或者126 个landmarks检测跟踪
3 - 3D mesh tracking —— 通过人脸landmarks进行人脸重建3Dmesh
这里补一下:基本上所有的跟踪在这个SDK里都用的卡尔曼滤波
我们首先打开smaples\FaceTrack\下, 还是和上篇BodyTrack一样的操作,运行run_local或者带offline的,区别就是实时摄像头和文件,自己打开BAT脚本看一下就行,
`ETLOCAL
SET PATH=%PATH%;..\..\samples\external\opencv\bin;..\..\bin;
FaceTrack.exe --model_path=..\..\bin\models` //这里对照下图自行定义参数
如果你想了解的非常深入,这里我简要汇总下!可以直接看官方的文档:nvidia system guide
在代码中展示,注意:键盘控制的前提是,–offline-model=false and --capture_outputs=true 才生效
我们可以双击运行 run_local_offline.bat,等待窗口跑完后会生成对应3个功能的demo视频文件:
这个没什么好说的,一般就是定义的关键点定义好的68或者更dense的点,然后使用L1\L2\WINGLOSS这些人脸关键点经典损失函数即可,可能自己训练的话需要更多亚洲人的人脸图像数据。
这里其实大家可能对Mesh有些陌生,那么顺着下面会涉及到SDK的FaceExpression的部分
图中的”face_model2.nvf"即拟合3D MESH的模型文件,这里提一下:
0.7版本使用的是3DMM的官方项目进行的拟合,新版本:感兴趣可以看ict facekit github 去拟合的mesh,其实本质都是3DMM。不过ICT额外输出了blendshape(53组)来表达人脸表情;
同样我们打开FaceExpression的demo,可以运行两个bat 脚本得到DEMO:
这里 model 的模型比较重要 如果是1,那么就是传统的3DMM线性bs值去表达人脸,如果是2 就是MLP预测的表情系数,程序默认使用的2模型!官方认为更细腻。
举例:让我们开始在实时脚本中加入show_ui,保存更新点击“run_local.bat”就会出现UI界面控制,方便我们选择功能代替命令。
SETLOCAL
SET PATH=%PATH%;..\..\samples\external\opencv\bin;..\..\bin;
ExpressionApp.exe --model_path=..\..\bin\models --expr_mode=2 --in=..\FaceTrack\FaceTrack.mp4 --out=ExpressionApp_out.mp4 --show_ui
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删