本DEMO参考了https://download.csdn.net/download/abill425/10554049?tdsourcetag=s_pctim_aiomsg
资料;
非常感谢,如有侵权,请与本人联系;
与参考的资料相比,不同的是:参考资料是百度人脸SDK离线版本V1.0版本的;
而本DEMO是百度人脸SDK离线版本V1.1版本的;
本demo是x64的,封装成可供c#调用的dll是BaiduFaceDll.dll
使用步骤:
1.到百度AI开放平台 https://ai.baidu.com ,下载百度人脸离线SDK,(注意版本V1.1.0,修改日期:2018.08.31)
2.下载后,把sdk包里那个443 MB的face-resource目录,复制到本demo的BaiduFaceDll\x64目录下(就是BaiduFaceDll.dll所在目录的上级目录)
3.打开BaiduFaceDll\x64\\Release\LicenseTool.exe,输入试用序列号(在百度AI开放平台取得,有效期30天),完成激活。注意,激活时需要联网。或者将已有的license.ini和license.key文件拷贝至此目录,注意注册序列号是与硬件相关的;
4.将本demo的BaiduFaceDll\x64\Release路径,加到系统的path变量中。
5.运行本demo的BaiduFaceDll\x64\Release目录下的WindowsFormsApplication1.exe,可以测试封装的dll,输入两张图片;然后单击:图像对比,会显示对比结果;
在C#中的函数注册:
//请将"BaiduFaceDll.dll"修改为实际路径,如@"d:\BaiduFaceDll\x64\Release\BaiduFaceDll.dll",
或者直接把该实际路径加到系统的path变量中。
[DllImport("BaiduFaceDll.dll")]
public static extern void Init();//初始化
[DllImport("BaiduFaceDll.dll")]
public static extern void UnInit();//销毁
[DllImport("BaiduFaceDll.dll")]
public extern static int Track(string imgstr, ref StringBuilder res);//人脸检测,imgstr为图片的base64编码字符串
[DllImport("BaiduFaceDll.dll")]
public static extern int User_Add(string user_id, string imgstr);//添加用户,imgstr为图片的base64编码字符串
[DllImport("BaiduFaceDll.dll")]
public static extern int User_Delete(string user_id);//删除用户
[DllImport("BaiduFaceDll.dll")]
public extern static void Identify(string imgstr, ref StringBuilder res);//人脸识别,imgstr为图片的base64编码字符串
[DllImport("BaiduFaceDll.dll")]
public extern static void Match(string image1, int img_type1, string image2, int img_type2, ref StringBuilder res);//人脸1:1对比编码字符串
sdk调用流程:
初始化 -> 图片对比 -> 销毁
具体详细的windows-sdk使用说明,参见 http://ai.baidu.com/docs#/Face-Offline-SDK-Windows/top
源码:
本demo的BaiduFaceDll\BaiduFaceDll目录,是本封装dll的c++源码。VS版本为2015,Framework版本为4.0。
本DEMO只是封装了几个示例,其余封装,参考样式自行编写;
1