本篇文章为简单的讲解百度离线人脸识别SDK-Java版本的工程运行;
01注册百度AI开放平台
登录http://ai.baidu.com进入百度AI开放平台,进行注册;
02找到人脸识别模块,下载离线SDK
1.找到相应模块
2.下载SDK,当然如果没实名认证,需要认证下;个人认证可以获得2个测试序列号,每个有效期3个月,2个应用授权,每个有效期3个月;
03解压文件,导入工程
里面一大堆ddl文件
有个文件:编译及运行说明.txt,里面记载了一些运行方法,表示看到eclipse我是很拒绝的。
1: 安装jdk,推荐jdk1.8(64位)(sdk仅适应于windows的64位平台)
2: 安装eclipse,用eclipse打开工程。(eclipse->import->General->Projects from Folder or Archive)
3:安装opencv(若sdk自带的不能用,则需要安装opencv、sdk自带的opencv的jar及dll分别在opencv-jar和opencv-dll中,导入工程后,要导入jar和jar的native中选dll,不知如何加载的可参考下面链接文章加载),
在opencv官网下载opencv-3.2.0-vc14.exe,双击安装,定位到build目录夹的java,dll选用x64的库文件。
opencv的jar加载请自行百度。(如参考文章:https://blog.csdn.net/m1109048058/article/details/76462341,https://blog.csdn.net/qq_36224522/article/details/81390110)
4:eclipse中右键工程,选Java Build Path->Libraries->JRE System Library->Native library location选Edit 定位到工程FaceOfflineSample目录,
这样可确保java能找到底层c++库文件BaiduFaceApi.dll。否则会提示加载库文件library错误。
5: eclipse中右键工程,选properties,把resource中的Text file encoding调整为UTF-8(防止因为编码风格不是utf-8导致特征值入库保存不正确)
6:编译运行工程。(运行前请通过授权激活,授权激活方法参考百度官网文档,激活文件放于FaceOfflineSample目录中即可)
官方给的步骤也不算复杂, 只是后面那个自行百度的链接还是404,这就尴尬了,我们就一步一步来吧。
导入工程后,会报错,原因是没有配置opencv,所以需要配置一下
04配置opencv
1.Eclipse中Window–> Preferences–> Java–> Build Path–> User Libraries,点击New…
2.输入Userlibrary name,如opencv_java320
3.选中你新建的库,点击AddExternal JARs…,选择你安装opencv目录下的opencv-320.jar,这时你的库里面就有了opencv-320.jar。
在压缩包里就已经帮你下载好了opencv-320.jar,在opencv-jar的文件夹里,直接用就可以了。
05绑定项目
1.右击工程—>build path–>configure build path
2.点击Add Library…,选中User Library,点击Next,选择opencv_java320,点击Finish
3.Native library location选Edit 定位到工程FaceOfflineSample目录,点击OK。
06运行项目
通过上面的步骤,工程算是配置好了,程序也应该不报错了,于是我们就运行一下Face里面的main;
如果报如下一些找不到ddl的错误,肯定是没有配置好,尤其是上面这一步,比如我遇到的下方这个报错,就是找不到
都弄好后,一定会遇到如下问题
当然从字面意思就可以理解,是需要授权的。因为我们还没有我们也看一下其他错误码是什么
之前的步骤,我们也没进行授权任何操作。有这个错误也是正常了。那么接下来我们就授权一下。
打开工程中LicenseTool.exe文件
填入申请好的序列号,激活该序列号
此时该序列号就已经激活,将授权文件下载后,放入工程目录下,也就是FaceOfflineSample
此时重新执行Face,就能不会报授权错误了。
07验证
最后,我们来验证一下结果:
在这里我们对比一下迪丽热巴和关晓彤的照片和两个关晓彤的照片:
迪丽热巴和关晓彤的匹配度是:40.38
两个关晓彤的匹配度是:76.6
总体来说,匹配一般般。