虹软人脸识别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.dlllibarcsoft_face_engine.dll两个文件粘贴到src/test/resources目录下

配置KEY

将官网获取到的SDK激活码填入到com.arcsoft.face.util.ConfUtil类的对应常量中

测试

打开com.arcsoft.face.EngineTest类,运行单元测试即可

参考资料

常见问题

(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位安装即可。

许可证

本项目遵循 MIT 开源协议,手动比心

Java版 人脸识别SDK demo的更多相关文章

  1. Java版 人脸识别SDK dem

    虹软人脸识别SDK之Java版,支持SDK 1.1+,以及2.0版本,滴滴,抓紧上车! 前言由于业务需求,最近跟人脸识别杠上了,本以为虹软提供的SDK是那种面向开发语言的,结果是一堆dll······ ...

  2. Java离线人脸识别SDK 支持arcface 2.0 最新版

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

  3. 基于虹软sdk,java实现人脸识别(demo)

    ## 开发环境准备:###开发使用到的软件和工具:* Jdk8.mysql5.7.libarcsoft_face.dll(so).libarcsoft_face_engine.dll(so).liba ...

  4. 虹软人脸识别SDK接入Milvus实现海量人脸快速检索

    一.背景 人脸识别是近年来最热门的计算机视觉领域的应用之一,而且现在已经出现了非常多的人脸识别算法,如:DeepID.FaceNet.DeepFace等等.人脸识别被广泛应用于景区.客运.酒店.办公室 ...

  5. 用 Java 实现人脸识别功能(附源码)

    整理了一些Java方面的架构.面试资料(微服务.集群.分布式.中间件等),有需要的小伙伴可以关注公众号[程序员内点事],无套路自行领取 更多优选 一口气说出 9种 分布式ID生成方式,面试官有点懵了 ...

  6. Java版人脸检测详解下篇:编码

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  7. 人脸识别SDK小结

    Face++人脸识别 进入官网 Face++ 致力于研发世界最好的人脸技术,提供免费的API和SDK供企业和开发者调用,更有灵活的定制化服务满足不同需求.已有多家公司使用Face++技术服务,完成包括 ...

  8. Qt编写百度离线版人脸识别+比对+活体检测

    在AI技术发展迅猛的今天,很多设备都希望加上人脸识别功能,好像不加上点人脸识别功能感觉不够高大上,都往人脸识别这边靠,手机刷脸解锁,刷脸支付,刷脸开门,刷脸金融,刷脸安防,是不是以后还可以刷脸匹配男女 ...

  9. 三分钟极速体验:Java版人脸检测

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

随机推荐

  1. 补习系列(18)-springboot H2 迷你数据库

    目录 关于 H2 一.H2 用作本地数据库 1. 引入依赖: 2. 配置文件 3. 样例数据 二.H2 用于单元测试 1. 依赖包 2. 测试配置 3. 测试代码 小结 关于 H2 H2 数据库是一个 ...

  2. 第4章 令牌端点(Token Endpoint) - IdentityModel 中文文档(v1.0.0)

    令牌端点的客户端库(OAuth 2.0和OpenID Connect)作为HttpClient一组扩展方法提供.这允许HttpClient以您喜欢的方式创建和管理生命周期- 例如静态或通过像Micro ...

  3. 细说并发编程-TPL

    本节导航 基本概念 并发编程 TPL 线程基础 windows为什么要支持线程 线程开销 CPU的发展 使用线程的理由 如何写一个简单Parallel.For循环 数据并行 Parallel.For剖 ...

  4. C# 操作Word页眉页脚——奇偶页/首页不同、不连续设置页码、复制页眉页脚、锁定页眉页脚、删除页眉页脚

    前言 本文是对Word页眉页脚的操作方法的进一步的阐述.在“C# 添加Word页眉页脚.页码”一文中,介绍了添加简单页眉页脚的方法,该文中的方法可满足于大多数的页眉页脚添加要求,但是对于比较复杂一点的 ...

  5. 提升机器学习数学基础,这7本书一定要读-附pdf资源

    文章发布于公号[数智物语] (ID:decision_engine),关注公号不错过每一篇干货. 来源 | KDnuggets 作者 | Ajit Jaokar 转自 | 新智元 编辑 | 大明 [编 ...

  6. 1、Linux命令随笔

    1 Linux命令总结 2 3 man ==命令帮助; 4 help ==命令的帮助(bash的内置命令); 5 ls ==list,查看目录列表; 6 -ld:查看目录权限; 7 -l:(long) ...

  7. 解决 VS2019 打开 edmx 文件时没有 Diagram 视图的 Bug

    问题描述 安装 VS 2019 (版本:16.0.2)后,发现更新选项中已经没有 “Entity Framework 6.X 工具” 了,打开 .edmx 文件时,呈现的视图是 xml 视图. 解决方 ...

  8. 【原创开源】网络版二代双通道示波器开源发布,支持电脑,手机和Pad等各种OS平台访问

    前言感谢大家的支持,提前奉上今年的国庆福利. 一代示波器发布于3年前,去年年底的时候发布了二代示波器,软件性能已经比较强劲,但依然有值得升级改进的地方,经过今年这半年多努力,在二代示波器的基础上再推出 ...

  9. 注解ConfigurationProperties注入yml配置文件中的数据

    在使用SpringBoot开发中需要将一些配置参数放在yml文件中定义,再通过Java类来引入这些配置参数 SpringBoot提供了一些注解来实现这个功能 ConfigurationProperti ...

  10. 磁盘阵列raid类型及含义

    raid0: 多块盘同时进行读写: 优点是读写效率高,缺点是没有数据冗余: 最少需要两块盘. raid1: 将数据盘都做镜像: 优点是有数据冗余:缺点是读写效率低,磁盘利用率低: 最少需要两块盘. r ...