注册业务中需要防止恶意注册,索引这边就引入了虹软的人脸识别;

首先需要到官网
虹软官网
完成注册以后到开发者中心


点击添加sdk

将key和id进行保存;
完成添加后
下载sdk;这里的sdk是你专属的;

解压后在切入到lib
小黑窗执行

mvn install:install-file -DgroupId=com.arcsoft.face -DartifactId=arcsoft-sdk-face -Dversion=3.0.0.0 -Dpackaging=jar -Dfile=arcsoft-sdk-face-3.0.0.0.ja  r

将jar安装到maven仓库;显示成功以后;
就可以在项目中进行引用了;

<dependency><groupId>com.arcsoft.face</groupId><artifactId>arcsoft-sdk-face</artifactId><version>3.0.0.0</version><!--<scope>system</scope>--><!--如果没有安装到本地仓库,可以将jar包拷贝到工程的lib下面下,直接引用--><!--<systemPath>${project.basedir}/lib/arcsoft-sdk-face-3.0.0.0.jar</systemPath>-->
</dependency>

创建一个虹软配置文件
hongruan.peoperties

#虹软相关配置(在虹软应用中找到对应的参数)
arcsoft.appid=
arcsoft.sdkKey=
arcsoft.libPath=F:\\code\\WIN64(这里对应sdk中的这个文件夹,就一个自己找)

实现代码:

然后就是使用官方提供的模板了;直接复制粘贴就好了,
深究的话,第一步就是会激活引擎加载appid以及key和dll文件地址之类的初始化;
下面三种分别对应不同传参的执行校验的方法;可以单文件,文件数组,以及文件信息;


import com.arcsoft.face.EngineConfiguration;
import com.arcsoft.face.FaceEngine;
import com.arcsoft.face.FaceInfo;
import com.arcsoft.face.FunctionConfiguration;
import com.arcsoft.face.enums.DetectMode;
import com.arcsoft.face.enums.DetectOrient;
import com.arcsoft.face.enums.ErrorInfo;
import com.arcsoft.face.enums.ImageFormat;
import com.arcsoft.face.toolkit.ImageFactory;
import com.arcsoft.face.toolkit.ImageInfo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;import javax.annotation.PostConstruct;
import java.io.File;
import java.util.ArrayList;
import java.util.List;@Service
public class FaceEngineService {private static final Logger LOGGER = LoggerFactory.getLogger(FaceEngineService.class);@Value("${arcsoft.appid}")private String appid;@Value("${arcsoft.sdkKey}")private String sdkKey;@Value("${arcsoft.libPath}")private String libPath;private FaceEngine faceEngine;@PostConstructpublic void init() {// 激活并且初始化引擎FaceEngine faceEngine = new FaceEngine(libPath);int activeCode = faceEngine.activeOnline(appid, sdkKey);if (activeCode != ErrorInfo.MOK.getValue() && activeCode != ErrorInfo.MERR_ASF_ALREADY_ACTIVATED.getValue()) {LOGGER.error("引擎激活失败");throw new RuntimeException("引擎激活失败");}//引擎配置EngineConfiguration engineConfiguration = new EngineConfiguration();//IMAGE检测模式,用于处理单张的图像数据engineConfiguration.setDetectMode(DetectMode.ASF_DETECT_MODE_IMAGE);//人脸检测角度,全角度engineConfiguration.setDetectFaceOrientPriority(DetectOrient.ASF_OP_ALL_OUT);//功能配置FunctionConfiguration functionConfiguration = new FunctionConfiguration();functionConfiguration.setSupportAge(true);functionConfiguration.setSupportFace3dAngle(true);functionConfiguration.setSupportFaceDetect(true);functionConfiguration.setSupportFaceRecognition(true);functionConfiguration.setSupportGender(true);functionConfiguration.setSupportLiveness(true);functionConfiguration.setSupportIRLiveness(true);engineConfiguration.setFunctionConfiguration(functionConfiguration);//初始化引擎int initCode = faceEngine.init(engineConfiguration);if (initCode != ErrorInfo.MOK.getValue()) {LOGGER.error("初始化引擎出错!");throw new RuntimeException("初始化引擎出错!");}this.faceEngine = faceEngine;}/*** 检测图片是否为人像** @param imageInfo 图像对象* @return true:人像,false:非人像*/public boolean checkIsPortrait(ImageInfo imageInfo) {// 定义人脸列表List<FaceInfo> faceInfoList = new ArrayList<FaceInfo>();faceEngine.detectFaces(imageInfo.getImageData(), imageInfo.getWidth(), imageInfo.getHeight(), ImageFormat.CP_PAF_BGR24, faceInfoList);return !faceInfoList.isEmpty();}public boolean checkIsPortrait(byte[] imageData) {return this.checkIsPortrait(ImageFactory.getRGBData(imageData));}public boolean checkIsPortrait(File file) {return this.checkIsPortrait(ImageFactory.getRGBData(file));}
}

可能会遇到的问题

Caused by: java.lang.UnsatisfiedLinkError: D:\gongju\renlian\haha\libs\WIN64\libarcsoft_face.dll: Can't find dependent libraries
解决:
安装:vcredist_x64,即可解决。

测试

 @Testpublic void testCheckIsPortrait(){File file = new File("F:\\1.jpg");boolean checkIsPortrait = this.faceEngineService.checkIsPortrait(file);System.out.println(checkIsPortrait); // true|false}

交互测试

@RestController
@RequestMapping("/facetest")
public class facetest {@Autowiredprivate FaceService faceService;@PostMapping("/star")public String star(@RequestBody MultipartFile file){boolean b=false;try {System.out.println("连接成功");b = faceService.checkIsPortrait(file.getBytes());} catch (IOException e) {}return b+"";}

注意这里必须使用 MultipartFile类型进行接收。这个是专门用于接收前端文件的类型;
同时并不能把参数直接传参给人脸校验方法进行执行,必须转换为字节流擦能进行传输校验;Object,getBytes()方法

验证通过返回true,否侧为false;

结束。。。。

基于虹软的人脸识别功能相关推荐

  1. C#基于虹软SDK人脸识别签到系统

    C#基于虹软SDK人脸识别签到系统 face-sign-in 基于C#WIINFORM的人脸识别的签到系统,可以使用,使用虹软的SDK开发包,实现了基本的人脸签到后台查看等功能,后续功能不断完善中,敬 ...

  2. java 基于虹软离线人脸识别SDK 2.0 最新版

    虹软人脸识别SDK之Java版,支持SDK 1.1+,以及当前最新版本2.0,滴滴,抓紧上车! JDK SDK Win release license status 前言 由于业务需求,最近跟人脸识别 ...

  3. 基于pyqt5的登录界面及人脸识别功能界面相互跳转的设计(1)

    基于pyqt5的登录界面及人脸识别功能界面相互跳转的设计(1) 这个是登录界面: 部分代码如下: // An highlighted block from 文件1 import * from PyQt ...

  4. 2020最新版Android一步一步教轻松通过ArcSoft虹软平台实现人脸识别功能,保姆级别教程?

    Android实现人脸识别功能 第一步:注册并认证成为开发者. 第二步:创建应用 1.认证成功后,我们就可以开始创建应用. 2,填写信息 3.点击添加SDK 4.选择人脸识别 5.选择情况,如图所示. ...

  5. 人脸特性提取java_基于 Java 实现的人脸识别功能(附源码)

    引言 远程在家办公的第N天,快要闲出屁了,今天突然有个小学弟加我VX说要咨询我点技术问题(终于可以装X了).看了他的需求描述,大概是要做一个Java web版本的人脸识别功能,然后存储人物的特征,再扫 ...

  6. 人脸识别手机端APK分享 | 极速体验人脸识别功能 创建一个简单的人脸识别手机APP程序

    1.前言 虹软公司提供免费离线人脸识别,对于开发者提供了比较友好.完整的可配置demo.但是如需直接体验功能,还是要花一点时间去完成项目编译.配置等一系列工作,对于初学者.不怎么熟悉整个项目的人来说可 ...

  7. pb 调用虹软_虹软SDK人脸识别使用遇到的一些坑

    虹软的人脸识别sdk提供了免费的离线人像识别功能,识别速度也很快,可以很便捷地集成在各种不同的开发语言里边,使用到广泛的应用场景.不过,在集成到我们的门禁系统(基于java)的时候,还是遇到了一些坑, ...

  8. 如何接入虹软免费人脸识别SDK

    背景: 虹软的人脸识别还是不错的,在官方注册一个账号,成为开发者,下载SDK的jar包,在开发者中心,找一个demo就可以开始做了,安装里边的逻辑,先看理解代码,然后就可以控制代码,完成自己想要的功能 ...

  9. 【计算机视觉】基于OpenCV的人脸识别

    一点背景知识 OpenCV 是一个开源的计算机视觉和机器学习库.它包含成千上万优化过的算法,为各种计算机视觉应用提供了一个通用工具包.根据这个项目的关于页面,OpenCV 已被广泛运用在各种项目上,从 ...

最新文章

  1. 用 mongodb + elasticsearch 实现中文检索
  2. RxJava from 处理list时,其中有一个出错时如何继续发送下面的list内容。
  3. python对象模型_[译] 用 Python 实现一个最简单的对象模型
  4. [SpringBoot2]原生组件注入_原生注解与Spring方式注入
  5. 删了的微信怎么恢复?
  6. python 数据类型 之 tuple 元组
  7. 开课吧课堂之何时调用构造函数
  8. sublime中的emmet插件的使用技巧
  9. Java继承(extends)的实现和 instanceof 运算符的使用
  10. jQuery写登录弹窗并居中显示
  11. Win10 图标 显示不正常解决办法
  12. python爬取网易云评论_Python - 网易云热门评论爬取
  13. Salient Object Detection Driven by Fixation Prediction 论文解读
  14. 【地平线旭日X3派试用体验】基于MIPI Camera的目标检测 web 端展示,全流程(第三节)
  15. printf打印二进制数据
  16. 女人一生必须拥有的珍珠
  17. 对接支付宝App支付和网页支付接口详解
  18. 泰裤辣!五一烧烤倒计时,还有人没做好攻略吗?
  19. EAS BOS锚定设置
  20. STM32学习笔记--DAC

热门文章

  1. SILKYPIX Developer Studio Pro 9.0.5.0 破解版 RAW数码照片处理神器
  2. 谷歌Chrome小恐龙代码(自动跳,高跳,无敌,加速)
  3. 最近在对郎成2440开发板作linux系统移植?最新的进展!
  4. linux系统怎么安装爱奇艺_pps网络电视linux版下载|
  5. iOS固件SHSH备份工具TinyUmbrella 5.00.12a更
  6. eprime提示计算机内存不足,线程数不足旗舰平台拒绝旗舰表现_技嘉 G1.Assassin 2_主板评测-中关村在线...
  7. 中国企业服务八荣八耻
  8. 使用 openpyxl 处理 Excel 电子表格
  9. linux中cat加管道用法,linux – 使用cat在管道之间弹回一个字符
  10. 笔记1- HP小型机中内存的概念及查看