Face++在人脸识别上是比较好的,包括表情都可以比较准确的进行识别,同时还有云服务,并且现在在线人脸检测免费了,还包括其他比较好的福利,对开发人员来说,详细信息,自己去百度FAce++ ,去官网上看。
废话不多说,官网给出了C#版unity开发包
http://www.faceplusplus.com.cn/dev-tools-sdks/
这个下载下来在VS2013上面跑是没有问题的
注意在运行时候因为是在线监测,他会需要你填写APPkey,和密码,如果你下下来打来就运行,显然会出错。
fs = new FaceService("6246af9f4479ddb860860331972547a1", "Fao4hhs-M6N34MYLIV_F-LOFm8c2wljm");
前一个是AppKey,后一个是AppSecret,这个需要你到他们官网上注册账号和app才能够获得。之后填到这个上面,就可以运行demo了。
那么,能在VS上运行,是不是就能在Unity上面运行呢?果断将Face++相关的DLL拷贝到unity的工程里面,然后编写代码,结果报错了。。
错误原因花了半天时间,翻墙也看了好久,因为https的原因,以及.net的版本等问题,找了一些解决方案,后来还是没解决。之后找到一个DLL 替换掉原来的Face++的dll,就可以了。
后面我会提供下载链接。
下面是测试代码
public class TestFace : MonoBehaviour {
public FaceService fs;
DetectResult res;
public Texture2D tex;
// Use this for initialization
void Start () {
fs = new FaceService("6246af9f4479ddb860860331972547a1", "Fao4hhs-M6N34MYLIV_F-LOFm8c2wljm");
res = fs.Detection_Detect(tex.EncodeToPNG());
for (int i = 0; i < res.Faces.Length; i++)
{
Debug.Log(res.Faces[0].Position.Center.X + "KK" + res.Faces[0].Position.Center.Y);
Debug.Log(res.Faces[0].Position.Width + "QQ" + res.Faces[0].Position.Height);
}
// testThread = new Thread(Detch);
// testThread.Start();
}
}
要注意,这里面有个共有的图片变量要通过控制面板拖进去的,图片要进行相应设置,不然无法读取按照红色箭头处设置就OK了
之后将脚本挂上去,运行查看控制台,就可以看到人脸的定位。
本来想做实时的人脸识别,但是折腾了一下,貌似没找到好的方法。如果那位仁兄有好的建议,望不吝赐教
DLL的下载链接
http://download.csdn.net/detail/xiaomuzi0802/8947069