首先登陆百度智能云后,从产品中找到人脸识别——离线识别SDK管理——我的实名认证
认证成功后,就能够下载离线版SDK了
直接下载下来的SDK是一个VS工程,是不能直接使用的,还要进行进行激活,百度会送两个测试版的受权,选择联网激活就能够,由于联网激活比较简单 选择联网激活后会弹出一个包含序列号的框
在VS工程目录下找到bin-x64-LicenseTool.exe,这就是激活工具
打开后,把16位序列号输入进去,先点击网页端的下一步,再点击激活工具的激活,就能够激活成功了
能够看到在激活工具的上方出现了两个激活文件,有了这两个激活文件就能够了
若是找不到或者不慎删掉的话,在离线识别SDK管理也能从新下载,很是方便
html
找到下载的SDK目录下的bin文件夹,将文件夹内的face-resource和x64文件夹拷贝到Unity工程的Plugins内
刚拷贝进来可能会报一个错,是由于OpenCvSharp支持的.NET 4.x 在PlayerSettings中调整Scripting Runtime Version为.NET 4.6就能够了
以后若是想要尝试注册的话能够在Face脚本上修改GroupId和UserId,若是为空的话是没法注册成功的:
总之是成功了~
git
// sdk初始化 [DllImport("BaiduFaceApi.dll", EntryPoint = "sdk_init", CharSet = CharSet.Ansi , CallingConvention = CallingConvention.Cdecl)] private static extern int sdk_init(bool id_card);
缘由:
导入dll根本不须要后缀“.dll”,即写上dll文件名就OK了
解决方法:
将BaiduFaceApi.dll改成BaiduFaceApi
参考:
Unity-5-0-中使用cc开发的dll插件使用中的问题github
缘由:
SDK第一次初始化后就留在Unity的内存中了,即便程序中止运行也还存在,连续初始化就会返回初始化结果为-1
解决方法:
须要在程序中止运行的时候销毁SDKweb
private void OnDestroy() { sdk_destroy(); }
// 提早加载库里全部数据到内存中 [DllImport("BaiduFaceApi", EntryPoint = "load_db_face", CharSet = CharSet.Ansi , CallingConvention = CallingConvention.Cdecl)] public static extern bool load_db_face();
缘由:
只在最开始的时候加载人脸数据库到内存中了,当注册人脸成功,只是将人脸数据存储到人脸数据库中,并不在内存中
解决方法:
在注册成功的时候再加载一次人脸库到内存中数据库
load_db_face();
缘由:
首先检查两个license文件在不在;其次要把管理器设置为Release模式svg
首先强调一下,个人Unity版本是2017.2.1f1,2018之后的版本打包出来的文件路径和2017的路径有一些差距,我尚未太研究。工具
建议导出文件的路径以下:(增长一个bin文件夹)
将两个受权文件拷贝到和exe文件同一目录下:
测试
最后将Unity/Plugins目录下的face-resource文件拷贝到和bin文件夹同一目录下:
这样就大功告成了!插件
正常来讲,人脸库文件夹db会自动生成在exe文件的同级目录下,内含数据库文件face.db,但有时候你会发现“face_sdk.log”文件中会报这样的错:
缘由:
目录不能含有中文路径
解决办法:
去除中文路径3d
目前来讲我只发现了这些问题,若是之后发现了其余问题,会继续更新~
github项目源码在此:百度人脸识别离线SDK测试工程