当前位置:首页 > 技术知识 > 正文内容

一篇文章,手把手教你运行百度离线人脸识别SDK-Java版

maynowei8个月前 (08-19)技术知识63


本篇文章为简单的讲解百度离线人脸识别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

总体来说,匹配一般般。

相关文章

iOS开发生涯的初恋:详解Objective-C多项改进

CSDN移动将持续为您优选移动开发的精华内容,共同探讨移动开发的技术热点话题,涵盖移动应用、开发工具、移动游戏及引擎、智能硬件、物联网等方方面面。如果您想投稿、参与内容翻译工作,或寻求近匠报道,请发送...

IT博物馆之Objective-C诞生(micro博物馆)

1984年,Objective-C诞生。设计者:布莱德·考克斯(Brad Cox)、汤姆·洛夫(Tom Love)Objective-C是面向对象的通用、高级编程语言。它扩展了标准的 ANSI C,将...

分析 Rust 程序的火焰图(rust火吗)

分析 Rust 程序的火焰图(Flame Graph)是定位性能瓶颈的核心手段,其核心是通过可视化的函数调用栈和时间分布,找到 CPU 耗时、内存分配、锁竞争等热点。以下是详细的分析方法和步骤,结合...

btrace 3.0 重磅新增 iOS 支持!免插桩原理大揭秘!

重磅更新btrace 是由字节跳动抖音基础技术团队自主研发的面向移动端的性能数据采集工具,它能够高效的助力移动端应用采集性能 Trace 数据,深入剖析代码的运行状况,进而辅助优化提升移动端应用的性能...

C++11 同步机制:互斥锁和条件变量

前段时间,我研究了 ROS2(Jazzy)机器人开发系统,并将官网中比较重要的教程和概念,按照自己的学习顺序翻译成了中文,进行了整理和记录。到目前为止,已经整理了20多篇文章。如果你想回顾之前的内容,...

go语言并发原语RWMutex实现原理及闭坑指南

1.RWMutex常用方法Lock/UnlockRLock/RUnlockRLocker 为读操作返回一个Locker接 口的对象2. RWMutex使用方法 func main() { var c...