为什么80%的码农都做不了架构师?>>>

人脸注册、人脸搜索使用百度AI接口。不支持H5活体检测(需要活体检测请参考百度AI-H5活体检测)

体验地址(人脸注册) http://123.207.12.111:32095/storage

体验地址(人脸搜索) http://123.207.12.111:32095/

只是为了演示。所以是IP。最好用火狐浏览器访问。谷歌提示异常作者就不专门修改了。大家可以直接下载源码运行体验的

前期准备工作

1.http://ai.ai/注册账户 实名认证 创建人脸应用 保存APPID、APIKEY、SECRETKEY三个值备用

2.需要必须的Java经验(最好是会用SpringBoot、Maven)

3.https://trackingjs.com/了解一下trackingjs(进行视频中的人脸检测。更多功能自行阅读文档)

4.项目源码地址:https://gitee.com/xshuai/faceRecognition

简易流程图

示例图(先看下效果)

用户名为空提示

百度AI人脸注册需要userid groupid 演示功能 直接写固定的值 userid是UUID生成的一个字符串。大家根据实际情况更改即可

图片不包含人脸

确保图片中包含人脸即可。未做活体检测。活体检测请参考百度AI官方文档的H5活体检测

人脸注册成功

人脸搜索

trackingjs提供人脸检测功能。需要完整面部 缺少下颚也是不行的。搜索是使用百度AI接口。成功搜索返回注册给的用户名称

无需用户主动拍照。只要摄像头中包含完整面部即可。同样也不支持活体检测

搭建SpringBoot项目

项目地址https://gitee.com/xshuai/faceRecognition

pom配置相关库

百度SDK、fastjson、thymeleaf必不可少

4.0.0

cn.xsshome

faceRecognition

jar

faceRecognition

http://maven.apache.org

org.springframework.boot

spring-boot-starter-parent

2.0.4.RELEASE

UTF-8

2.7.0

com.alibaba

fastjson

1.2.35

org.springframework

springloaded

1.2.6.RELEASE

org.springframework.boot

spring-boot-devtools

org.springframework.boot

spring-boot-starter

org.springframework.boot

spring-boot-starter-web

org.springframework.boot

spring-boot-starter-actuator

org.springframework.boot

spring-boot-starter-thymeleaf

log4j

log4j

1.2.17

com.baidu.aip

java-sdk

4.10.0

org.springframework.boot

spring-boot-maven-plugin

true

application.yml配置

server:

port: 8888

#只简单配置了项目启动端口

FaceManagerController(人脸注册、搜索)

package cn.xsshome.controller;

import java.util.HashMap;

import java.util.UUID;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.PostMapping;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.ResponseBody;

import com.alibaba.fastjson.JSON;

import com.alibaba.fastjson.JSONObject;

import com.baidu.aip.face.AipFace;

import cn.xsshome.common.FactoryUtil;

import cn.xsshome.vo.FacePageBean;

import cn.xsshome.vo.FacePageResponse;

import cn.xsshome.vo.response.FaceSerachResponse;

/**

* 人脸照片注册方法

* @author 小帅丶

*

*/

@Controller

@RequestMapping("/facemanager")

public class FaceManagerController {

//人脸模块对象

AipFace aipFace = FactoryUtil.getAipFace();

private static Logger log = LoggerFactory.getLogger(FaceManagerController.class);

/**

* 人脸注册

* @param facePageBean 请求的参数对象

* @param request

* @param response

* @return

*/

@PostMapping("/add")

@ResponseBody

public String addFace(FacePageBean facePageBean,HttpServletRequest request, HttpServletResponse response){

log.info("发送过来的参数{}",JSONObject.toJSONString(facePageBean));

FacePageResponse facePageResponse = new FacePageResponse();

if(facePageBean.getUser_info().equals("")||null==facePageBean.getUser_info()){

facePageResponse.setError_code("100");

facePageResponse.setError_msg("用户名称为空 请填写后重试");

return JSON.toJSONString(facePageResponse);

}else{

String groupId = "xsdemo";//记得替换成自己的或通过页面传递用户组id(由数字、字母、下划线组成),长度限制128B

String userId = UUID.randomUUID().toString().replace("-", "").toUpperCase();//用户id(由数字、字母、下划线组成),长度限制128B

HashMapoptions = new HashMap();

options.put("user_info","小帅丶");

org.json.JSONObject resultObject = aipFace.addUser(facePageBean.getImgdata(), "BASE64", groupId, userId, options);

log.info("注册返回的数据{}",resultObject.toString(2));

return resultObject.toString();

}

}

/**

* 人脸搜索

* @param facePageBean 请求的参数对象

* @param request

* @param response

* @return

*/

@PostMapping("/search")

@ResponseBody

public FacePageResponse searchFace(FacePageBean facePageBean,HttpServletRequest request, HttpServletResponse response){

FacePageResponse facePageResponse = new FacePageResponse();

log.info("发送过来的参数{}",JSONObject.toJSONString(facePageBean));

String groupIdList = "xsdemo";//用户组id(由数字、字母、下划线组成),长度限制128B

org.json.JSONObject resultObject = aipFace.search(facePageBean.getImgdata(), "BASE64", groupIdList, null);

//使用fastjson处理返回的内容 直接用javabean接收 方便取值

FaceSerachResponse faceSerachResponse = JSON.parseObject(resultObject.toString(), FaceSerachResponse.class);

if("0".equals(faceSerachResponse.getError_code())&&"SUCCESS".equals(faceSerachResponse.getError_msg())){

if(faceSerachResponse.getResult().getUser_list().get(0).getScore()>80f){

facePageResponse.setError_code(faceSerachResponse.getError_code());

facePageResponse.setError_msg(faceSerachResponse.getError_msg());

facePageResponse.setUser_info(faceSerachResponse.getResult().getUser_list().get(0).getUser_info());

}else{

facePageResponse.setError_code("555");

facePageResponse.setError_msg("人脸搜索失败,请重试或请先注册");

}

}else{

facePageResponse.setError_code("500");

facePageResponse.setError_msg(faceSerachResponse.getError_msg());

}

log.info("搜索返回的数据{}",resultObject.toString(2));

return facePageResponse;

}

}

页面代码

人脸注册页面

人脸注册

人脸注册

拍照

用户名称:

上传

人脸搜索页面

trackerTask.stop();为防止人脸搜索接口调用中 多次提交问题。

人脸识别

请确保面部完整,未检测到请靠近摄像头

java h5 调用摄像头_基于百度AI使用H5实现调用摄像头进行人脸注册、人脸搜索功能(Java)...相关推荐

  1. java 百度账号注册界面_基于百度AI使用H5实现调用摄像头进行人脸注册、人脸搜索功能(Java)...

    人脸注册.人脸搜索使用百度AI接口.不支持H5活体检测(需要活体检测请参考百度AI-H5活体检测) 只是为了演示.所以是IP.最好用火狐浏览器访问.谷歌提示异常作者就不专门修改了.大家可以直接下载源码 ...

  2. 基于百度AI使用H5实现调用摄像头进行人脸注册、人脸搜索功能(Java)

    为什么80%的码农都做不了架构师?>>> 人脸注册.人脸搜索使用百度AI接口.不支持H5活体检测(需要活体检测请参考百度AI-H5活体检测) 体验地址(人脸注册) http://12 ...

  3. java 百度账号注册界面_基于百度AI开放平台的人脸识别的注册登录(1)

    百度ai开放平台首页 2.选择产品服务,人脸与人体识别,人脸识别选项.打开后如图所示 人脸识别 3.点击立即使用 3.jpg 4.点击创捷应用 创建应用 这一页大家按自己需求填写即可 5.创建完成后点 ...

  4. h5文字垂直居中_基于两款开源 h5 媒体编辑器定制一套海报系统

    收到一份需求,是要制作一套在线海报系统,系统的参考样例如下图所示 分为资源展示站 海报的设计工具 这种平台现在市场上成功的有好多家,功能都较为完备并且模板十分丰富.这种需求往大了做可以称之为 DaaS ...

  5. python百度ai文字识别、不精确、进行处理_基于百度AI的文字识别-Python

    from aip import AipOcr是报错 识别图形验证码:from aip import AipOcr 解决方法: 下载baidu-aip这个库,可以直接使用pip下载:pip instal ...

  6. python百度云ocr文字识别软件_基于百度云的OCR识别(Python)

    2019年7月3日早上,在百度AI开发者大会上,一个来自山西的青年,将一瓶矿泉水浇在了同样来自山西的李彦宏身上. 可以回顾一下 https://b23.tv/av57665929/p1 ,着实让人一惊 ...

  7. 基于百度AI和QT的景物识别系统

    2022.07.20:最近在学习JAVA的知识,以后就踏上JAVA的道路了.本人QT方面自认为还学的比较好,但是以后应该不会更这方面了,把以前写过QT方面的项目,写出来分享给大家.两个月前写的项目,除 ...

  8. 基于百度AI开放平台的人脸识别及语音合成

    基于百度AI的人脸识别及语音合成课题 课题需求 (1)人脸识别 在Web界面上传人的照片,后台使用Java技术接收图片,然后对图片进行解码,调用云平台接口识别人脸特征,接收平台返回的人员年龄.性别.颜 ...

  9. 模型计算算力_8核人工智能开源主板_基于 BITMAIN AI 计算模组_3.5寸

    模型计算算力_8核人工智能开源主板_基于 BITMAIN AI 计算模组_3.5寸 产品概述 产品特点 1. 超高性能,超低功耗 2.体积小,接口丰富,灵活扩展 3.开发环境友好,工具链完备 应用场景 ...

  10. 基于百度ai的抑郁症分析_AI根据脑波模式预测有效的抑郁症治疗

    基于百度ai的抑郁症分析 By Tracie White 由崔西怀特 Current methods used to diagnose and treat depression are impreci ...

最新文章

  1. 查询用户分配角色TCODE
  2. MVC阻止用户注入JavaScript代码或者Html标记
  3. clickhouse建库_专访ClickHouse创始人:数据库竞争依旧火热,技术整合势在必行
  4. grpc,protoc, protoc-gen-go,rust
  5. kotlin官方文档中文翻译(二) 基础内容
  6. Python报mongod: error while loading shared libraries: libcrypto.so.1.1
  7. NeHe OpenGL教程 第七课:光照和键盘 代码
  8. OSPF FA地址分析
  9. 使用vmdk文件创建虚拟机
  10. rtx 加密机制_rtx腾讯通组织架构(结构)不显示的解决办法
  11. 微软计算机键盘上Tab,电脑键盘上的tab键有什么功能
  12. 字节跳动创始人张一鸣演讲
  13. 数据结构算法设计题 (超详细)
  14. SF习题答案(1)(LF-Basic)
  15. 开发STC89C51系列单片机需要用到的C语言技术
  16. 论文复现丨基于ModelArts进行图像风格化绘画
  17. macOS 挂载 EFI 分区
  18. C语言的历史和起源是什么?
  19. 深度学习与自然语言处理第三次作业——LDA段落主题分布问题
  20. Python中文社区GitHub开源项目扶持计划

热门文章

  1. Linux网络编程之epoll模型
  2. 怎么做店铺客单价|盛天海科技
  3. MySQL调优的8种方式
  4. 基于MATLAB的数字水印技术实现
  5. 华为电脑管家最新(11.1.1.95)版完美升级安装教程
  6. 支架预压弹性变形值计算_支架预压计算.doc
  7. TCP报文段和连接方式
  8. python网易云音乐爬虫歌词_利用Python网络爬虫抓取网易云音乐歌词
  9. 网易云音乐显示网络异常
  10. 排序算法之二路归并排序