1.JavaWeb使用百度API实现人脸识别
本篇博客使用的环境是SSM+Maven+JSP实现人脸识别登录,适合于JavaWeb的开发(其他语言也可以作为参考),我会从注册百度云账号,前台如何调用摄像头,到分析图片进行详细的解说。
代码方面分别通过两个部分来实现
1.前台摄像头调用使用Ajax将图片转换为Base64格式到SSM后台
2.再调用百度提供的接口对图片进行分析
3.最终的效果就是输入账号在对人脸进行识别登录,并提供两个版本的Demo一个是SSM+Maven还有个Servlet导入即可使用
1.首先第一步就是需要注册一个百度云的账号网站网址在这个:https://cloud.baidu.com/注册的过程就不一一的描述了
2.注册完后点开右上角的管理控制台
3.点击左上角产品服务>人工智能>人脸识别
4.概览>点击创建应用
5.输入创建应用的信息
6.创建成功后就有了最重要的三个参数
7.点击技术文档>选择java v3 里面有人脸识别接口的所有方法使用方法,怎样入参,返回的参数实例,以及实例代码,做到这一步需要先将此文档详细的读一遍再进行后续的操作。
8.下载所需要的jar包,下面是maven项目的 pom文件,和jar包下载的网盘路径
<dependency>
<groupId>com.baidu.aip</groupId>
<artifactId>java-sdk</artifactId>
<version>4.3.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.baidu.aip/java-sdk -->
<dependency>
<groupId>com.baidu.aip</groupId>
<artifactId>java-sdk</artifactId>
<version>4.11.0</version>
</dependency>
链接:https://pan.baidu.com/s/1bqWT-AceA9zlR0DUaSqQfQ 提取码:lyr8
9.做好准备工作后就可以开始搭建我们的项目了
我搭建的项目后台是SSM框架+Maven作为依赖管理,项目搭建完成后首先将人脸识别所需要的jar包导入,因为部分jar包比较特殊在Maven官网没有找到我们的相关的pom文件,所以直接将jar导入到lib目录。导入jar包后需要准备好jQuery.js,本文使用的是jquery-2.1.1.js.
10.新建一个jsp页面,导入js后全选贴上代码,记得修改js的路径
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-2.1.1.js"></script>
</head>
<body>
<p align="center">
<button id="open">开启摄像头</button>
<button id="close">关闭摄像头</button>
<button id="CatchCode">拍照</button>
</p>
<div align="center" style="float: left;">
<video id="video" width="800px" height="800px" autoplay></video>
<canvas hidden="hidden" id="canvas" width="626" height="800"></canvas>
</div>
</body>
<script type="text/javascript">
var video;//视频流对象
var context;//绘制对象
var canvas;//画布对象
$(function() {
var flag = false;
//开启摄像头
$("#open").click(function() {
//判断摄像头是否打开
if (!flag) {
//调用摄像头初始化
open();
flag = true;
}
});
//关闭摄像头
$("#close").click(function() {
//判断摄像头是否打开
if (flag) {
video.srcObject.getTracks()[0].stop();
flag = false;
}
});
//拍照
$("#CatchCode").click(function() {
if (flag) {
context.drawImage(video, 0, 0, 330, 250);
CatchCode();
} else
alert("请先开启摄像头!");
});
});
//将当前图像传输到后台
function CatchCode() {
//获取图像
var img = getBase64();
//Ajax将Base64字符串传输到后台处理
$.ajax({
type : "POST",
async : false,
url : "/Parking/parking/bodyAnalysis",
data : {
img : img
},
dataType : "JSON",
success : function(data) {
//返回的结果
}
});
};
//开启摄像头
function open() {
//获取摄像头对象
canvas = document.getElementById("canvas");
context = canvas.getContext("2d");
//获取视频流
video = document.getElementById("video");
var videoObj = {
"video" : true
}, errBack = function(error) {
console.log("Video capture error: ", error.c