Java版 人脸识别SDK dem
虹软人脸识别SDK之Java版,支持SDK 1.1+,以及2.0版本,滴滴,抓紧上车!
前言
由于业务需求,最近跟人脸识别杠上了,本以为虹软提供的SDK是那种面向开发语言的,结果是一堆dll······像我这样的Java猿突然就感觉整个人都不好了;近期赶上了SDK2.0的升级,在官方论坛、Google、百度、QQ等等的帮助下,爬过了一个又一个坑,终于搞定了!噗!回过头来发现不少伙伴们都像我当初一样迷茫,So,我回来拯救世界了~
后更:刚写了没多久,虹软SDK的Java版Demo就出来了.................
注意
/ 本项目需要lombok的支持
/ 虹软官方分为“人证SDK”、“活体检测”和“ArcFace”三种,本项目使用的是“ArcFace”
/ Windows 32位、64位指的是JDK,并不是Windows操作系统的位数
/ master分支为最新的SDK 2.0版本,1.x的版本实现请查看1.x分支(1.x实现来自于官方论坛Demo)
/ 本项目实现了对SDK的轻度封装,且为单线程模式,多线程情况下尚未测试,放过可怜的孩子吧...
功能特点
对SDK接口进行了二次封装,所有操作只需要一个简单的工具类就ojbk,用起来爽的一批~
- 激活引擎
- 初始化引擎
- 检测人脸
- 提取特征值
- 对比特征值
- 年龄/性别/角度检测预处理
- 获取年龄
- 获取性别
- 获取3D角度
- 获取引擎版本
- 销毁引擎
快速开始
安装项目
git clone https://github.com/jastar-wang/arcface.git
然后将项目导入到Eclipse或IDEA中并进行maven update
下载DLL
登录虹软官方网站,下载ArcFace 2.0的SDK,并将libarcsoft_face.dll和libarcsoft_face_engine.dll两个文件粘贴到src/test/resources目录下
配置KEY
将官网获取到的SDK激活码填入到com.arcsoft.face.util.ConfUtil类的对应常量中
测试
打开com.arcsoft.face.EngineTest类,运行单元测试即可
参考资料
-虹软SDK的常见问题指南
-虹软官方问答指导集锦
常见问题
(1)SDK有效期?
答:SDK激活码有效期为一年,到期之后需要重新申请激活码,并且重新下载SDK,SDK与激活码应当匹配。
(2)SDK 2.0首次使用?
答:2.0版本首次使用需要联网激活,激活后会在程序运行目录下生成几个“.dat”文件(asf_install.dat,freesdk_数字.dat),之后则可以离线使用;若更换了机器设备,需要删除这些“.dat”文件,并重新联网激活。
(3)SDK 2.0特征值?
答:1.x的版本特征值大小为20k左右,2.0版本算法做了大幅优化,缩小到了1k,且长度固定为1023 byte。
(4)SDK 2.0对于图片的要求?
答:图片的宽度必须是4的整数倍;当图片为BGR模式时,高度需要是2的整数倍。
(5)SDK 2.0的阈值?
答:由于2.0的算法做了优化,匹配度相对较高,推荐阈值设置为0.8(1.x版本为0.6),具体根据实际场景上下调整。
(6)SDK 2.0提取特征值?
答:2.0版本对内存做了优化,会反复使用同一个特征值对象的内存,所以提取特征值之后需要对特征值对象重新copy,否则SDK再进行提取时会覆盖了原特征值。
(7)关于多线程使用?
答:多线程使用场景下,每个线程都需要初始化一个引擎。
(8)如何加载图片?
答:可以使用“ImageIO.read()方式读取图片,但该方式读取某些类型的图片时,不会正确读取ICC的信息,因此会在写出图片时生成一层红色蒙版(如果不写出图片那就无所谓)。有两种解决方案:(1)参照EngineTest.testAll()方法中的加载方式,这种方式仅限于Windows下使用,因为需要用到图形环境的支持。(2)使用javacv(基于opencv)加载图片,pom依赖中已注释,本人放弃的原因是因为jar包太大且需求不会有Linux环境。”
(9)运行EngineTest单元测试提示“...找不到指定模块”?
答:这是因为你的系统缺少dll运行的必要组件,别担心,点击 这里 进行下载,根据自身情况选择32位或64位安装即可。
Java版 人脸识别SDK dem的更多相关文章
- Java版 人脸识别SDK demo
虹软人脸识别SDK之Java版,支持SDK 1.1+,以及当前最新版本2.0,滴滴,抓紧上车! 前言 由于业务需求,最近跟人脸识别杠上了,本以为虹软提供的SDK是那种面向开发语言的,结果是一堆dll· ...
- Java离线人脸识别SDK 支持arcface 2.0 最新版
虹软人脸识别SDK之Java版,支持SDK 1.1+,以及当前最新版本2.0,滴滴,抓紧上车! JDK SDK Win release license status 前言 由于业务需求,最近跟人脸识别 ...
- 虹软人脸识别SDK接入Milvus实现海量人脸快速检索
一.背景 人脸识别是近年来最热门的计算机视觉领域的应用之一,而且现在已经出现了非常多的人脸识别算法,如:DeepID.FaceNet.DeepFace等等.人脸识别被广泛应用于景区.客运.酒店.办公室 ...
- Qt编写百度离线版人脸识别+比对+活体检测
在AI技术发展迅猛的今天,很多设备都希望加上人脸识别功能,好像不加上点人脸识别功能感觉不够高大上,都往人脸识别这边靠,手机刷脸解锁,刷脸支付,刷脸开门,刷脸金融,刷脸安防,是不是以后还可以刷脸匹配男女 ...
- 用 Java 实现人脸识别功能(附源码)
整理了一些Java方面的架构.面试资料(微服务.集群.分布式.中间件等),有需要的小伙伴可以关注公众号[程序员内点事],无套路自行领取 更多优选 一口气说出 9种 分布式ID生成方式,面试官有点懵了 ...
- 三分钟极速体验:Java版人脸检测
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- Java版人脸检测详解下篇:编码
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- 人脸识别SDK小结
Face++人脸识别 进入官网 Face++ 致力于研发世界最好的人脸技术,提供免费的API和SDK供企业和开发者调用,更有灵活的定制化服务满足不同需求.已有多家公司使用Face++技术服务,完成包括 ...
- 虹软人脸识别SDK在网络摄像头中的实际应用
目前在人脸识别领域中,网络摄像头的使用很普遍,但接入网络摄像头和人脸识别SDK有一定门槛,在此篇中介绍过虹软人脸识别SDK的接入流程,本文着重介绍网络摄像头获取视频流并处理的流程(红色框内),以下内容 ...
随机推荐
- Linux 安装mysql mariadb配置
CentOS 7.0 使用 yum 安装 MariaDB 与 MariaDB 的简单配置 1.安装MariaDB 安装命令 yum -y install mariadb mariadb-server ...
- Gym 102028C - Supreme Command - [思维题][2018-2019 ACM-ICPC Asia Jiaozuo Regional Contest Problem C]
题目链接:https://codeforces.com/gym/102028/problem/C Lewis likes playing chess. Now he has n rooks on th ...
- Delphi 中的 XMLDocument 类详解(10) - 判断节点类型: 支节点、叶节点、文本节点、空节点
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, For ...
- 删除64位ODBC数据源DNS
1.按照打开管理工具-打开数据源(ODBC),进入如下界面,选择用户DSN删除,发现报错一直删除不了. 2.成功删除:进入如下图路径,打开ODBC数据源管理工具,选择要删除的DSN就可以成功删除啦.
- C++中vector使用详细说明 (转)
转自:http://blog.chinaunix.net/uid-26000296-id-3785610.html http://www.cnblogs.com/mr-wid/archive/2013 ...
- Python递归函数介绍
一.递归的定义 1.什么是递归:在一个函数里在调用这个函数本身 2.最大递归层数做了一个限制:997,但是也可以自己限制 # 验证 997 def foo(n): print(n) n+=1 foo( ...
- Python字符串拼接的6种方法(转)
add by zhj: 对于多行字符串连接,第6种连接方法很方便,连接时不会添加额外的空格. 原文:http://www.cnblogs.com/bigtreei/p/7892113.html 1. ...
- expect-调试模式的使用
1.expect简介 Expect是一种TCL扩展性的语言,主要用于完成系统交互方面的功能,比如SSH.FTP等,这些程序都需要手工与它们进行互动,而使用Expect就可以模拟人手工互动的过程,是一种 ...
- 【Gradle】-NO.101.Gradle.1.gradle.1.001-【Gradle Configuration】-(
Style:Gradle Series:Gradle Since:2018-09-20 End:2018-09-20 Total Hours:1 Degree Of Diffculty:5 Degre ...
- Docker:Windows7下使用docker toolbox(1)
一.安装 官方网址:https://docs.docker.com/docker-for-windows/install/ win10以下安装:https://www.docker.com/produ ...