您的位置:首页 > 移动开发 > Android开发

初识Face++在android上的应用

2016-01-21 15:32 435 查看
  最近两天终于可以正式的开始基于Face++下,Android的人脸识别了;感觉看着里面的说明文档就两个字:头疼疼!

首先:注册-->创建自己的 应用-->获取KEY和 SECRET(这个用于自己的项目中);具体参考:http://www.faceplusplus.com.cn/create-a-new-app/   ;在这里就不浪费墨水了。

用到的sdk下载::http://www.faceplusplus.com.cn/dev-tools-sdks/  里面有faceppsdk_min.jar可以根据自己的需要放在自己的项目中 ,然后Bulid一下就OK使用了。

 faceppsdk_min.jar 说明:本人查考里面的代码发现在这个架包里面都是一些接口方法,(或者我认为是一些工具方法)具体的图像分析都是调用里面的方法然后 通过网络上传到服务进行分析的;

经过大量的java工程的测试,得到的一些心得如下  以javaFaceDemo 为例说明:

A: 帮助文档的Demo 只是例行公事的调用了 架包中的方法,让我们看起来很牛13的样子;但是细细分析就会发现里面有很多的重复的代码的套用,还有一些功能都是简单的调用了一下,并没有给出太明显的能看出来的使用技巧;所以要想很好的使用架包,大致理解Demo中的每个方法功能是很有必要的;下面我大致说下我个人的理解:

Person:创建”一个“人:(在Demo中一共有两个图片地址,这里姑且认为是url1、url2)通过url1 我们可以识别(HttpRequests.detectionDetect(...))这张图片中有多少人脸存在;然后就是添加一些“人”的基本信息:如人的名字:PersonName:person_1;然后获取“人”的返回信息;

Faceset:创建一个人脸集合;

Group:创建一个群组;在这个方法中 "group_0"就是我们创建的群组的名称(当然这个名称可以自己定义,这里就用“group_0”来说明了。);personList.add("person_"+i);:就是我们向这个群组中添加 我们在 Person类中创建的“人”;(训练一次就可以了,下面使用的时候可以注释掉该训练。);httpRequests.recognitionVerify:给定的人脸和人 进行判断是否是(相同的)给定的人;这里注意了:setPersonName表示给定的人的名称,也就是之前的创建的任务名称;getJSONObject(0)表示图片中的下表为“0”,也就是第一个人脸对应的人(注意:如果图像中只有一个人脸那么就只能比较一次了)。

Recognition:人脸识别:在httpRequests.trainIdentify方法中的“group_0”就是我们选择的训练的群组的名称,和Group中的群组名称一致;httpRequests.trainVerify

方法就是对“人”进行训练,里面的(“person_”+i)就是人名称Name;

Info:执行查询操作:

At_last:最终的删除数据(在测试使用过后一定记得要删除我们创建的“人”或者“集合”,不然下次执行时就会报异常了! );

B:可以通过Person方法多创建几个“人”(可以通过访问多个图像url来创建),通过
Group方法创建多个群组,在Recognition方法中进行训练;这个步骤完成后就可以人脸识别测试了:注释掉创建的PersonGroup方法,然后在Recognition方法中可以注释掉训练方法,只需要在Recognition方法中 设置要识别的 群组名称,和 人物 名称就可以进行测试了;可以通过查看日志信息“is_same_person”中的true或者false
观察识别结果了。

至此  我们应该就大致了解了如何进行简单的人脸测试了。

注:以上内容仅是个人观点,如有不当之处可以指出,让我们共同学习共同进步!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息