java 虹软ArcFace 2.0,java SDK使用、人脸识别-抽取人脸特征并做比对
java人脸识别 虹软ArcFace 2.0,java SDK使用、人脸识别-抽取人脸特征并做比对
虹软产品地址:http://ai.arcsoft.com.cn/product/arcface.html
虹软ArcFace功能简介
人脸检测
人脸跟踪
人脸属性检测(性别、年龄)
人脸三维角度检测
人脸对比
本文使用到的SDK为本人自己使用JNA做的封装,2.0的使用比1.x的版本使用更方便,api更集中更科学
人脸识别:
人脸特征值抽取
人脸特征值比对获得相似度介于 0.0~1.0之间
【相似度越接近1.0两个人脸特征数据越有可能是一个人】
人脸特征值抽取的步骤:
1,对图片或者视频流中的人脸位置进行识别
2,对人脸特征值进行抽取(里面算法比较专业,我们就知道有这么回事就行)
3,保存人脸特征值入特征库
此处的demo,仅仅为了演示,直接进行两张图的特征抽取,并进行比对
素材,两张“朱莉”的照片


首先,编写抽取人脸特征值的代码,此处需要注意最后一行代码,返回的时候去new 了一个新的FaceFeature,此处的目的是对FaceFeature做深度copy,因为虹软对内存做了一些优化,FaceFeature的内存会被重复使用,如果不做深度copy,反复调用该方法,FaceFeature中的特征数据会被覆盖
/**
*
* @param ins FaceEngine ins = FaceEngine.INSTANCE
* @param hEngine 初始化之後的引擎實例
* @param imgPath 圖片路徑
* @return 人臉特征
*/
public static FaceFeature getFeature(FaceEngine ins,Pointer hEngine,String imgPath) {
IplImage img = cvLoadImage(imgPath);
MultiFaceInfo detectedFaces = new MultiFaceInfo();
BytePointer bp = img.arrayData();
byte[] imgData = new byte[img.arraySize()];
bp.get(imgData);
ins.ASFDetectFaces(hEngine, img.width(), img.height(), ASVL_COLOR_FORMAT.ASVL_PAF_RGB24_B8G8R8,imgData, detectedFaces);
SingleFaceInfo faceInfo = new SingleFaceInfo();
faceInfo.faceRect = detectedFaces.getFaceRects()[0];
faceInfo.faceOrient = detectedFaces.getFaceOriends()[0];
FaceFeature feature = new FaceFeature();
ins.ASFFaceFeatureExtract(hEngine, img.width(), img.height(), ASVL_COLOR_FORMAT.ASVL_PAF_RGB24_B8G8R8, imgData, faceInfo, feature); return new FaceFeature(feature.getFeatureData());
}
有了人脸特征抽取的方法,我们再做人脸比对就很容易了,代码就几行:
FaceFeature feature1 = FeatureExtractTest.getFeature(ins,hEngine, "zl1.jpg"); FaceFeature feature2 = FeatureExtractTest.getFeature(ins,hEngine, "zl3.jpg"); FloatByReference confidenceLevel = new FloatByReference();
ins.ASFFaceFeatureCompare(hEngine, feature1, feature2, confidenceLevel);
System.out.println(confidenceLevel.getValue());
执行后,获得两张图片的人脸相似度值为
0.9412362
一般只要相似度超过0.8,就可以认为是一个人。这两张照片中人脸的相似度高达0.94,应该确定是一个人!!!!
使用已经封装好的SDK进行人脸识别
https://www.jianshu.com/p/96636db03792
使用已经封装好的SDK进行人脸识别【人脸特征提取比对】
https://www.jianshu.com/p/ab64464571da
虹软ArcFace 2.0,java SDK使用、人脸信息识别(年龄、性别)
https://www.jianshu.com/p/cfe90f82be97
java 虹软ArcFace 2.0,java SDK使用、人脸识别-抽取人脸特征并做比对的更多相关文章
- java 虹软ArcFace 2.0,java SDK使用-进行人脸检测
虹软产品地址:http://ai.arcsoft.com.cn/product/arcface.html虹软ArcFace功能简介 人脸检测人脸跟踪人脸属性检测(性别.年龄)人脸三维角度检测人脸对比 ...
- JAVA基础学习——1.0 Java概述
Java语言 SUN公司 1995年推出的高级编程语言 ■ 主要应用方向 Web开发和Android开发 ■ 主要特点 平台无关性:能运行于不同的平台上 安全性:去掉了指针操作,内存由操作 ...
- Java离线人脸识别SDK 支持arcface 2.0 最新版
虹软人脸识别SDK之Java版,支持SDK 1.1+,以及当前最新版本2.0,滴滴,抓紧上车! JDK SDK Win release license status 前言 由于业务需求,最近跟人脸识别 ...
- Java版 人脸识别SDK demo
虹软人脸识别SDK之Java版,支持SDK 1.1+,以及当前最新版本2.0,滴滴,抓紧上车! 前言 由于业务需求,最近跟人脸识别杠上了,本以为虹软提供的SDK是那种面向开发语言的,结果是一堆dll· ...
- Java版 人脸识别SDK dem
虹软人脸识别SDK之Java版,支持SDK 1.1+,以及2.0版本,滴滴,抓紧上车! 前言由于业务需求,最近跟人脸识别杠上了,本以为虹软提供的SDK是那种面向开发语言的,结果是一堆dll······ ...
- 虹软人脸识别ArcFace2.0 Android SDK使用教程
一.获取SDK 1.进入ArcFace2.0的申请地址 https://ai.arcsoft.com.cn/product/arcface.html 2.填写信息申请并提交 申请通过后即可下载SDK, ...
- 离线人脸识别 ArcFaceSharp -- ArcFace 2.0 SDK C#封装库分享
ArcFaceSharp ArcFaceSharp 是ArcSoft 虹软 ArcFace 2.0 SDK 的一个 C# 封装库,为方便进行 C# 开发而封装.欢迎 Start & Fork. ...
- Android 关于虹软人脸识别SDK引擎使用总结
虹软 最近开放了人脸识别的SDK引擎(免费的哦),刚好有Android版的,就体验了一波.下面来说说Android版的SDK使用心得: ArcFace 虹软人脸认知引擎简介 目前开放的版本有人脸比对( ...
- python3+虹软2.0 离线人脸识别 demo
python3+虹软2.0的所有功能整合测试完成,并对虹软所有功能进行了封装,现提供demo主要功能,1.人脸识别2.人脸特征提取3.特征比对4.特征数据存储与比对其他特征没有添加 虹软SDK下载戳这 ...
随机推荐
- Urllib库及cookie的使用
https://blog.csdn.net/pipisorry/article/details/47905781
- sqlchemy self made
# -*- coding: utf-8 -*- from sqlalchemy import create_engine, Column, String, Integer, ForeignKey, T ...
- P3690 【模板】Link Cut Tree (动态树)
P3690 [模板]Link Cut Tree (动态树) 认父不认子的lct 注意:不 要 把 $fa[x]$和$nrt(x)$ 混 在 一 起 ! #include<cstdio> v ...
- collectd 检测cpu使用率
环境配置 1. install epel https://www.cyberciti.biz/faq/installing-rhel-epel-repo-on-centos-redhat-7-x/ 2 ...
- Java 判断字符串是否为空的四种方法、优缺点与注意事项
以下是Java 判断字符串是否为空的四种方法: 方法一: 最多人使用的一个方法, 直观, 方便, 但效率很低: if(s == null ||"".equals(s));方法二: ...
- 如何将QT的pro图标修改的更显著一些
如何将QT的pro图标修改的更显著一些 QT的项目打开文件是pro,默认是这样的 这个白色的背景在很多文件中很不好找 所以使用工具进行相关修改. 寻找到.pro 双击修改ico 默认的这个就非常不错. ...
- openvas漏洞扫描
openvas配置步骤 1.-因为老师给的kali中自带的openvas,所以我们可以直接执行命令:openvas-check-setup来查看下他的安装状态: 如下图所示:在步骤7中出现错误,其中图 ...
- bzoj 4289 Tax - 最短路
题目传送门 这是一条通往vjudge的神秘通道 这是一条通往bzoj的神秘通道 题目大意 如果一条路径走过的边依次为$e_{1}, e_{2}, \cdots , e_{k}$,那么它的长度为$e_{ ...
- bzoj 1614 Telephone Lines架设电话线 - 二分答案 - 最短路
Description Farmer John打算将电话线引到自己的农场,但电信公司并不打算为他提供免费服务.于是,FJ必须为此向电信公司支付一定的费用. FJ的农场周围分布着N(1 <= N ...
- 动态规划之97 Interleaving String
题目链接:https://leetcode-cn.com/problems/interleaving-string/description/ 参考链接:https://blog.csdn.net/u0 ...