java调用face_【AI】Java+Fileupload+JSTL+Face++实现人脸识别系统

原标题:【AI】Java+Fileupload+JSTL+Face++实现人脸识别系统

一、前言

人工智能(Artificial Intelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。

在现在我们的生活中,我们越来越多的接触到人工智能了。2016年3月,阿尔法围棋与围棋世界冠军、职业九段棋手李世石进行围棋人机大战,以4比1的总比分获胜;2016年末2017年初,该程序在中国棋类网站上以“大师”(Master)为注册帐号与中日韩数十位围棋高手进行快棋对决,连续60局无一败绩;2017年5月,在中国乌镇围棋峰会上,它与排名世界第一的世界围棋冠军柯洁对战,以3比0的总比分获胜。

小编从中感觉到了人工智能的第三次浪潮即将到来。随后小编最近研究了人工智能的人脸识别技术,刚开始研究了javacv、opencv,到现在研究的Face++,这个技术越来越成熟,也在不断的更新。下面带来人脸识别。

二、Face++介绍

Face++TM是新一代云端视觉服务平台,提供一整套世界领先的人脸检测,人脸识别,面部分析的视觉技术服务。网页地址请点直击

提供的技术包括了人脸检测、追踪、人脸关键点检测、 微笑分析、 性别、年龄、种族、1:1人脸验证、 1:N人脸识别、大规模人脸搜索。

小编亲测:上传狗或非人的照片,Face++是不会进行测试的。这个辩证的还是相当准确的,值得信赖。

39d6bfc3395ad98e3928feb840b0b327.png

c22faa5d19d1341e57ee2e5d71fd13e8.png

三、实现过程

这里小编先说一下实现思路,小编把要解析的图片上传到服务器,然后通过调用face++的接口,对图片进行分析,得到分析的json数据。然后解析这些输入为中文,在界面显示分析结果。

2637bd651a5b1b08d8680198f3767679.png

3.0 项目环境要求

commons-io-2.5.jar

commons-fileupload-1.3.3.jar (用于上传图 片)

net.sf.json jar (用于解析返回的Json)

jstl.jar

standard.jar (用于显示解析后的数据)

dd066517bd772ccf2cd94cd6037c1acf.png

3.1 建立项目

建立一个java web项目:AresFace

d5e1e9e811bc29e64595bcd3d907cdb2.png

fbb04eb6ab60479433adb1e240a6557d.png

上传图片:使用Apache的org.apache.commons.fileupload组件

d5628a4560662a73074f90f241e2f1ed.png

上传图片前台代码:

核心就是一个提交表单,这个提交表单,要求为post,而且要enctype=”multipart/form-data”

然后方法提交到后台的UploadHandleServlet.java的servlet中,调用post方法,执行上传图片操作。

d2532333215342e0861f6dea6616b186.png

044d4a09ed29c3266cc34eeecd7b8476.gif

完整代码见原文

UploadHandleServlet.java 上传图片并解析json数据

使用Apache文件上传组件处理文件上传步骤:

1、创建一个DiskFileItemFactory工厂

2、创建一个文件上传解析器

注意:解决上传文件名的中文乱码upload.setHeaderEncoding(“UTF-8”);

3、判断提交上来的数据是否是上传表单的数据

4、使用ServletFileUpload解析器解析上传数据,解析结果返回的是一个List集合,每一个FileItem对应一个Form表单的输入项

f6bd174fc62f03b63af5f0f330fe366f.png

c0fcb6223eb1a49cd281be47f5ac8233.png

使用face++提供的java类来获取解析后的图片的数据

建立类FaceDetect(face++提供的代码,需要用户注册先)

Face++官网:https://console.faceplusplus.com.cn/documents/6329752

······

26d6c264e7334f4c4ad9f42b2915571d.png

3.5 使用net.sf.json jar解析复杂的json

用json排版工具得到如下图:

5d10ea01cb3071f2f88911504baced13.png

47932d50d1d699f0ab12452de11152ea.png

3.5 显示人脸识别效果

展示图片,以及人脸识别分析结果:这里主要是利用了java表达式和jstl标准标签库来显示信息的。具体技术可以访问小编的另一系列博客:

【JSTL】JSP标准标签库

图片不错吧,每个程序员都有一个澎湃的内心。

34c104bb058532bdc3c1243db1dfd87f.png

88d212c748b3e190ecc911815c1ba141.png

3.6 完成

到现在为止就完成了人脸识别,效果如下:

上传照片

518e612012f84a6f8a872f9c4e058677.png

392891effe237c0fbd3bb37441e421dd.png

四、小结

通过这次系统研究,小编也是在其中学到了很多的东西,比如前提向后台servlet发送请求,后台sevlet接收参数,返回参数等。也用到了复杂Json解析,原来自己经常使用jackson来解析,但是这个的前提是要建立对应的类。从小编的json复杂程度来看,如果用Jacson的话,会建立很多的类的,所以小编就使用了其他的方法。

相信这一篇博客大家会受益匪浅,另外在下一篇的博客中,小编会向大家带来更精彩的人工智能,敬请期待。

作者:十二期 王 雷

编辑:十四期 高占路返回搜狐,查看更多

责任编辑:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值