参考:
1.SeetaFace学习之二-------https://www.jianshu.com/p/99d72c9c79fc
2.SeetaFace教程(一) 在 VS 中的编译安装和环境配置--------https://www.cnblogs.com/pkjplayer/p/6944871.html
3.SeetaFace源码中的word文档:https://github.com/seetaface/SeetaFaceEngine
尽管现在大家都开始用SeetaFace2https://github.com/seetaface/SeetaFaceEngine2(以后再研究)
总结下自己踩过的坑:
因为自己师c++新手:针对上述**SeetaFace教程(一)**仔细写了修改内容:
一、编译FaceDetection部分
遇到的问题:kStdDevThresh初始化方法不对。
解决方法:把原来的初始化去掉,只留声明。在类的构造函数的地方初始化:LABBoostedClassifier() : use_std_dev_(true),kStdDevThresh(10.0f)
即修改lab_boosted_classifier.h 文件的80行为:LABBoostedClassifier() : use_std_dev_(true),kStdDevThresh(10.0f) {}
100行为:const float kStdDevThresh;
编译后可得到FaceDetection.lib和FaceDetection.dll。
二、编译FaceAlignment部分
遇到的问题1:min,max函数模板函数重载无法确定。
解决方法:在引用函数的地方,把两个参数都加入强制类型转换double()
即修改cfan.cpp文件中291行和215行: if (isnan(double(fea[j * 128 + i])))
遇到的问题2:没有isnan函数
解决方法:自行定义
#ifndef isnan
#define isnan(x) ((x)!=(x))
#endif
即修改cfan.cpp文件 添加以上。