基于百度AI开放平台的人脸识别


前言

基于百度AI开放平台的人脸识别功能的实现与应用,人脸识别网址:人脸识别
使用工具:Eclipse,Tomcat,JDK

人脸识别流程图

人脸识别

一、注册账号

去百度AI开放平台注册账号:百度AI开放平台

二、创建应用

左上角菜单-人脸识别-公有云-应用列表-创建应用-随便填(可能需要实名认证)-立即创建
帮助文档地址:帮助文档

三、下载SDK文件

下载sdk文件,得到【aip-java-sdk-4.16.13.jar】【json-20160810.jar】【log4j-1.2.17.jar】放到web项目的lib目录下

四、创建工具类

创建链接开放平台的工具类【AipFaceHelper】

package util;
import com.baidu.aip.face.AipFace;
public class AipFaceHelper {
	// 设置APPID/AK/SK
	private static final String APP_ID = "29253192";
	private static final String API_KEY = "2dMMFM6rGgazYKxselR93LGy";
	private static final String SECRET_KEY = "KUdIhAZttiwcrFpy9H8wqaMHLffW6lq2";
	private static AipFace client = null;
	private AipFaceHelper() {
	}
	public static AipFace getInstance() {
		if (client == null) {
			client = new AipFace(APP_ID, API_KEY, SECRET_KEY);
			client.setConnectionTimeoutInMillis(2000);
			client.setSocketTimeoutInMillis(60000);
		}
		return client;
	}
}

五、创建用于人脸识别的网页

创建用于人脸识别的网页【index.jsp】实现注册功能

1.引入css文件

<link href="css/bootstrap.css" rel="stylesheet">
	<link href="css/bface.css" rel="stylesheet">

2.创建注册按钮

<button class="btn btn-success" data-toggle="modal" data-target="#myModal" onclick="showReg()">注册</button>	

3.创建模态框,用于捕捉人脸

<!--人脸识别模态框-->
	<div class="modal fade" id="myModal" aria-hidden="true"
		data-backdrop="static" tabindex="-1" role="dialog"
		aria-labelledby="myModalLabel">
		<div class="modal-dialog" role="document">
			<div class="modal-content">
				<div class="modal-header">
					<h4 class="modal-title" id="myModalLabel"
						style="display: inline-block">BFace ▪ 人脸识别</h4>
					<button type="button" class="close" data-dismiss="modal"
						aria-label="Close">
						<span aria-hidden="true">&times;</span>
					</button>
				</div>
				<div class="modal-body">
					<div class="modal-body-title">
						<!--头部提示文字-->
						<p>请将头部放在视频区域内,匹配成功将会自动登入系统</p>
						<p>
							如果视频内未出现识别框或长时间未响应 <a style="cursor: pointer">请单击此处</a>
						</p>
					</div>
					<!--人脸框-->
					<div class="modal-body-viode">
						<canvas id="canvas" width="420" height="340"></canvas>
						<video id="video" width="420" height="340" preload autoplay loop
							muted></video>
					</div>
				</div>
			</div>
		</div>
	</div>

4.引入相关js文件

<!--JS导入-->
	<script type="text/javascript" src="js/tracking-min.js"></script>
	<script type="text/javascript" src="js/face-min.js"></script>
	<script type="text/javascript" src="js/jquery-3.2.1.min.js"></script>
	<script type="text/javascript" src="js/bootstrap.min.js"></script>
	<script type="text/javascript" src="js/bface.js"></script>
	<script type="text/javascript">
		function showLogin() {
			//调用人脸识别方法
			login("http://localhost:8080/faceDiscern/LoginServlet");
		}
		function showReg() {
			//调用人脸识别方法
			reg("http://localhost:8080/faceDiscern/RegServlet");
		}
	</script>

六、创建设置字符编码的过滤器

创建设置字符编码的过滤器【EncodingFilter】

package filter;

import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;

@WebFilter("/*")
public class EncodingFilter implements Filter {

    public EncodingFilter() {
        // TODO Auto-generated constructor stub
    }

	public void destroy() {
		// TODO Auto-generated method stub
	}

	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
		request.setCharacterEncoding("UTF-8"); // 设置防止提交的中文数据乱码
		response.setContentType("text/html;charset=UTF-8"); // 设置响应的信息不乱码
		chain.doFilter(request, response);
	}

	public void init(FilterConfig fConfig) throws ServletException {
		// TODO Auto-generated method stub
	}

}

七、创建注册用的Servlet

创建注册用的Servlet【RegServlet】在doget中加入如下代码

HashMap<String, String> options = new HashMap<String, String>();
		options.put("quality_control", "LOW");// 图片质量控制
		options.put("liveness_control", "LOW");// 活体检测控制
		String base64=request.getParameter("base");
		base64=base64.substring(22);//去掉字符串说明信息(data:image/jpeg,base64)
	    String imageType = "BASE64";
	    String groupId = "student";//可以根据需要随意修改
	    String userId = "9879";//可以根据需要随意修改
	    JSONObject res = AipFaceHelper.getInstance().addUser(base64, imageType, groupId, userId, options);
	    System.out.println(res.toString(2));
	    response.getWriter().print(res.toString(2));

八、在index.jsp页面加入登录按钮代码

在index.jsp页面加入登录按钮代码

<button class="btn btn-success" data-toggle="modal"
		data-target="#myModal" onclick="showLogin()">登陆</button>

九、创建一个登录的Servlet

创建一个登录的Servlet【LoginServlet】在doget中加入如下代码

HashMap<String, String> options = new HashMap<String, String>();
		options.put("quality_control", "LOW");// 图片质量控制
		options.put("liveness_control", "LOW");// 活体检测控制
		options.put("max_user_num", "1"); // 查找后返回的用户数量。返回相似度最高的几个用户
		String base64=request.getParameter("base");
		base64=base64.substring(22);//去掉字符串说明信息(data:image/jpeg,base64)
	    String imageType = "BASE64";
	    String groupId = "student";
	    JSONObject res = AipFaceHelper.getInstance().search(base64, imageType, groupId, options);
	    System.out.println(res.toString(2));
	    response.getWriter().print(res.toString(2));



总结

以上便是基于百度AI开放平台的人脸识别的讲解与代码实现,希望能帮助大家更好的了解人脸识别功能的实际操作。感谢大家的观看,如果想要源码点个关注私聊我哦,我随时都在。

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱吃串串麻辣烫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值