H5视频活体检测-Java实现(SpringBoot 2.0.1 + thymeleaf 百度AI接口)

H5视频活体检测-Java实现(SpringBoot 2.0.1 + thymeleaf 百度AI接口)_第1张图片

能力介绍

业务能力

H5视频活体检测产品,是由两个接口组合而成,主要用于在H5场景下,通过用户新录制并上传一个视频,来进行活体检测的判断。相对于APP有动作校验+静默图片活体静默图片活体这两种方式,H5视频活体方案比APP方案更加灵活,同时比单张图片活体方式更加安全。其主要功能如下所示:

  • 语音校验码:为防止用户提交非当前操作的视频,在录制视频时,随机分配一个数字,用户需要读出这个数字,声音存于视频当中,并在后续识别时校验,以判断是否为此次会话。
  • 视频多帧活体检测:录制并上传的视频,会在云端进行随机抽帧分析,并得出最终的活体检测分数。

主要适用场景

  • 微信服务号:用于对操作用户真实性要求严格的场景,用于依托于微信服务号的金融开户、实名认证、账户信息变更二次验证等服务。
  • APP内Webview:对于如Cordova架构开发的APP,或者APP内变更频繁的身份信息页等情况,可以采用此方案完成活体检测。
  • 浏览器:如果仅是一个H5宣传页,或者Wap版本网页等,可以通过此方法快速集成更加安全的活体检测功能。

此方案的优劣势

  • 优势:相对于APP有动作校验、单张图片静默判断,此方法在没有APP情况下,可以更快速、轻量级地实现活体检测,同时保障一定安全性。
  • 劣势:由于视频较大,上传时间可能较长,另由于不同手机的浏览器内核差异较大,容易出现兼容性问题。

 

在线体验地址

  • https://ai.baidu.com/face-verify/pc.html pc版的

  • https://ai.baidu.com/face-verify/mobile.html 移动版

Demo下载地址:https://pan.baidu.com/s/1cOWwyBSkir6nR9v0isteUw  (Idea开发工具导入)

MyEclipse导入:https://gitee.com/xshuai/h5_video_active_detection

演示截图1

H5视频活体检测-Java实现(SpringBoot 2.0.1 + thymeleaf 百度AI接口)_第2张图片

演示截图2

H5视频活体检测-Java实现(SpringBoot 2.0.1 + thymeleaf 百度AI接口)_第3张图片

 

 ---------------------------------------------------------------------------------------

项目配置启动

项目使用SpringBoot 2.0.1 + thymeleaf

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

BDFactory代码修改


package com.baidu.ai.demo.factory;

import com.baidu.aip.face.AipFace;
/**
 * 单例工厂类
 * @author 小帅丶
 */
public class BDFactory {
	private static AipFace aipFace;
	 /**
     * 百度云 应用管理相关配置, 建议放在配置文件中
     */
    private static String appId = ""; // https://cloud.baidu.com 应用管理获取 AppID
    private static String apiKey = "";// https://cloud.baidu.com 应用管理获取 API Key
    private static String secretKey = ""; // https://cloud.baidu.com 应用管理获取 Secret Key
    /**
     * 单例加载 
     * @return AipFace
     */
	public static AipFace getAipFace(){
		if(aipFace==null){
			synchronized (AipFace.class) {
				if(aipFace==null){
					aipFace = new AipFace(appId,apiKey,secretKey);
				}
			}
		}
		return aipFace;
	}

}

修改后的App代码

package com.baidu.ai.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.ApplicationPidFileWriter;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.web.servlet.DispatcherServlet;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * Java doc
 *
 * @author [email protected] on 2018/5/15.
 */
@SpringBootApplication
@ComponentScan(basePackages = {"com.baidu.ai.demo"})
public class App  implements WebMvcConfigurer {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/faceliveness/dist/**")
                .addResourceLocations("classpath:/dist/").setCachePeriod(0);
    }
    @Bean
    public ServletRegistrationBean dispatcherRegistration(DispatcherServlet dispatcherServlet) {
        ServletRegistrationBean registration = new ServletRegistrationBean(dispatcherServlet);
        registration.getUrlMappings().clear();
        registration.addUrlMappings("/");
        return registration;
    }

    public static void main(String[] args) {
        SpringApplication application = new SpringApplication(App.class);
        application.addListeners(new ApplicationPidFileWriter());
         application.run(args);
    }
}

修改application.properties

//默认端口 8013 如需可以自行更改
server.port=8013
spring.profiles.active=dev
spring.aop.proxy-target-class=true
debug=true

spring.thymeleaf.cache=false
spring.thymeleaf.check-template=false
spring.thymeleaf.check-template-location=false
spring.thymeleaf.enabled=true
spring.thymeleaf.encoding=UTF-8
#spring.thymeleaf.excluded-view-names=
spring.thymeleaf.mode=HTML
spring.thymeleaf.prefix=classpath:/templates/
#spring.thymeleaf.reactive.max-chunk-size=
#spring.thymeleaf.reactive.media-types=
spring.thymeleaf.servlet.content-type=text/html
spring.thymeleaf.suffix=.html

运行APP代码启动项目

访问地址

PC: http://127.0.0.1:8013/pc

Mobile: http://127.0.0.1:8013/mobile

更多AI好玩请微信扫一扫访问 小帅一点资讯小程序

H5视频活体检测-Java实现(SpringBoot 2.0.1 + thymeleaf 百度AI接口)_第4张图片

你可能感兴趣的:(人工智能,人脸识别)