java+js实现人脸识别-基于百度api
java+js实现人脸识别-基于百度api
- 我的第一次分享
- 第一步-我们了解下实现的思路
- 代码部分:1.js代码
- 2.后台代码
- 3.如何使用百度大脑
- 4.如何使用 navigator.mediaDevices.getUserMedia
我的第一次分享
第一步-我们了解下实现的思路
- 调用电脑的摄像头
- 点击登入或注册按钮截图;
- 获取截图的面部特征;
- 将数据返回后台;
- 到数据库拿到自己的面部特征进行比对;
- 成功进入界面;
- 失败返回提示信息;
代码部分:1.js代码
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><meta charset="UTF-8"><title>人脸识别</title>
</head>
<body>
<div><div> <video id="video" width="400" height="300"></video> <canvas id="canvas" width="400" height="300" style="display: none"></canvas> </div><button id="register">注册</button><button id="login">登入</button>
</div>
</body>
<script src="//api.html5media.info/1.2.2/html5media.min.js"></script>
<%--解决navigator.mediaDevices.getUserMedia兼容浏览器问题--%>
<script src="${pageContext.request.contextPath}/static/jquery/jquery-1.9.1.min.js"></script>
<script type="text/javascript">var video = document.getElementById("video");var canvas = document.getElementById("canvas");var pen = canvas.getContext("2d");/*画笔*//**用户是否允许使用摄像头*允许:将流赋值给video.src属性让其显示* onloadedmetadata video加载完成开始播放*/var constraints = {video: true};navigator.mediaDevices.getUserMedia(constraints).then(function (stream) {video.srcObject = stream;/* 使用这个stream */video.onloadedmetadata = function (e) {video.play();}}).catch(function (err) {console.log(err.name || err);/* 处理error */});/** 注册调用方法* */document.getElementById("register").addEventListener('click', function () {goPath("faceRegister");});/** 登入调用方法* */document.getElementById("login").onclick = function () {goPath("faceLogin");};/**通过canvas画笔,将vedio截图(画一幅)* canvas.toDataURL() 将数据装换成base64类型数据(我们的面部数据)* ajax(异步刷新)实现数据以json格式传到后台*/function goPath(path) {pen.drawImage(video, 0, 0, 400, 300);var url = canvas.toDataURL();var result = url.split(",")[1];$.ajax({url: '${pageContext.request.contextPath}/' + path,data: JSON.stringify({face: result}),contentType: 'application/json',method: 'post',dataType: 'json',success: function (response) {if (response.flag) {if ("faceRegister" == path) {window.location.reload();}if ("faceLogin" == path) {window.location.href = "/mjrj/login";/*你需要跳转的路径*/}} else {alert("请正对摄像头!");}},fail: function () {alert("请重试!");}})}
</script>
</html>
2.后台代码
private static String result1;//百度大脑 apiid,apiKey,secretKeyprivate static String apiId ="16095995"; private static String apiKey ="PFFMiGyGPzqkWNEHAl77OGQa";private static String secretKey ="GATl62Iuiyt1n33UdtKGWdmY5W1ZHlWl";private static Logger logger = Logger.getLogger(StudentController.class);/*** 模拟注册 * @param map前台传入的json格式数据* @return*/@RequestMapping(value = "/faceRegister", method = RequestMethod.POST)@ResponseBodypublic ReturnInfo face(@RequestBody Map <String, String> map) {ReturnInfo re = new ReturnInfo();result1 = map.get("face");re.setFlag(true);return re;}/*** 登入 * @param map前台传入的json格式数据* @return*/@RequestMapping(value = "/faceLogin", method = RequestMethod.POST)@ResponseBodypublic ReturnInfo faceP(@RequestBody Map <String, String> map) {ReturnInfo re = new ReturnInfo();String result2 = map.get("face");//调用百度大脑接口AipFace client = new AipFace(apiId,apiKey,secretKey);//metch方法需要传入List<MatchRequest>参数List<MatchRequest> list = new ArrayList();MatchRequest matchRequest1 = new MatchRequest(result2,"BASE64");MatchRequest matchRequest2 = new MatchRequest(result1,"BASE64");list.add(matchRequest1);list.add(matchRequest2);//比对结果返回的json数据JSONObject object1 = client.match(list);Object object2 = object1.getJSONObject("result");object2 = ((JSONObject) object2).get("score");double score = (double) object2;if(score >= 90){re.setFlag(true);}System.out.println(score);return re;}
3.如何使用百度大脑
百度大脑官网 http://ai.baidu.com/
注册,进入人脸识别然后创建引用就可以得到AppID,API Key,Secret Key。
里面有技术文档可以自己研究。
4.如何使用 navigator.mediaDevices.getUserMedia
链接 : https://developer.mozilla.org/zh-CN/docs/Web/API/MediaDevices/getUserMedia#语法
自己研究。
java+js实现人脸识别-基于百度api相关推荐
- 人脸识别——基于百度智能云实现
百度智能云是百度旗下面向企业.开发者和政府机构的智能云计算服务商,致力于为各行业提供以ABC(人工智能.大数据.云计算)技术为一体的平台服务. 对于开发者而言,灵活利用其提供的大量模块化接口,可快速完 ...
- vue3 基于faceapi.js实现人脸识别
vue3 基于faceapi.js实现人脸识别 先贴代码 <template><div class="app-container"><div>{ ...
- Java后端实现人脸识别(基于虹软ArcSoft)
问题引入 博主最近想实现一下基于Web应用的人脸识别登录功能,在网上查找了相关的博客示例之后并没有找到一篇能够彻底解决我问题的.通过自己阅读虹软(ArcSoft)的开放文档,以及示例代码,博主实现了简 ...
- 强!一个Java开发的人脸识别系统,获取人脸68个关键点(附源码)
点击上方蓝色字体,选择"标星公众号" 优质文章,第一时间送达 关注公众号后台回复pay或mall获取实战项目资料视频 点击此链接:多套SpringCloud/SpringBoot实 ...
- caffe检测图片是否包含人脸_人脸识别(基于Caffe)
人脸识别(基于Caffe, 来自tyd) 人脸识别(判断是否为人脸) LMDB(数据库, 为Caffe支持的分类数据源) mkdir face_detect cd face_detect mkdir ...
- FPGA驱动摄像头实现人脸识别(基于肤色)
FPGA驱动摄像头实现人脸识别(基于肤色) 验证平台:黑金AX309 OV5640 时至今日图像处理已经得到了广泛应用,今天我们来讲一讲利用FPGA结合摄像头来实现一个简单的人脸识别(当然误检率很高, ...
- java用虹软人脸识别SDK实现人脸识别,运行ArcSoft的Java版本Demo出错,未检出人脸
java.lang.UnsatisfiedLinkError: Can't load library: d:\face_libs\libarcsoft_ java用虹软人脸识别SDK实现人脸识别 网上 ...
- PHP在线文字转语音合成源码 基于百度API开发
介绍: PHP在线文字转语音合成源码 基于百度API开发 网盘下载地址: https://zijiewangpan.com/zCErg2PByjO 图片:
- java用虹软人脸识别SDK实现人脸识别,运行ArcSoft的Java版本Demo出错,未检出人脸(已解决)
java用虹软人脸识别SDK实现人脸识别,运行ArcSoft的Java版本Demo出错,未检出人脸问题已解决!!! 原因: 虹软人脸识别SDK版本问题! 下载的java版本的demo的SDK是arcs ...
最新文章
- springboot默认数据源如何设置连接数_spring boot基于DRUID数据源密码加密及数据源监控实现...
- Zabbix邮件报警设置方法
- Java中为什么需要反射?反射要解决什么问题?
- JVM内存管理------垃圾搜集器简介
- 浅析调用android的content provider(一)
- js轮询导致服务器瘫痪_面试官:讲一下什么是负载均衡,什么是轮询策略随机策略哈希策略...
- 自动驾驶算法-滤波器系列(五)——高级运动模型在UKF中的应用
- 在Linux(Ubuntu)下编写编译C语言
- 《上海悠悠接口自动化平台》体验地址与使用教程
- nmds与mds的区别_帮研网—科研共享平台——PCA、PCoA和NMDS有什么区别?
- h5-吸顶效果的实现方法
- 在blog中添加attachments功能 (修改系统Control)
- openbsd停止mysql_英特尔处理器超线程功能被OpenBSD 停用,并爆bug
- X11-forwarding笔记
- 2020Android面试题跳楼大整理,京东-字节跳动面经+个人总结+心得
- 「好书推荐」那些精彩的引人深思、充满反转的推理小说推荐
- 天玑9200和骁龙8+哪个好 天玑9200和骁龙8+gen1对比
- 国行ps4服务器维护,赶快回家试试!国行PS4终解除锁区附详解教程
- 基于Altium Designer进行单片机逻辑系统及模拟电路原理图设计
- oracle 连接查询(内、外连接、自连接、子查询)