【java】人脸识别 虹软ArcFace 2.0-抽取人脸特征并做比对
虹软产品地址: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
转载于:https://www.cnblogs.com/KEAIILINN/p/10761921.html
【java】人脸识别 虹软ArcFace 2.0-抽取人脸特征并做比对相关推荐
- android虹软人脸识别简书,C# 离线人脸识别 虹软ArcFace 2.0 demo
环境: win7以上 VS2013以上 sdk版本:ArcFace v2.0 x86 x64平台Debug.Release配置都已通过编译 下载地址:https://github.com/Arcsof ...
- java 人脸识别 demo_Java 离线人脸识别 基于ArcFace 2.0 Demo
源代码传送:https://github.com/itboyst/ArcSoftFaceDemo 开发环境准备: ###开发使用到的软件和工具: Jdk8.mysql5.7.libarcsoft_fa ...
- 离线java人脸识别开源算法_Java 离线人脸识别 基于ArcFace 2.0 Demo
开发环境准备: 开发使用到的软件和工具: Jdk8.mysql5.7.libarcsoft_face.dll(so).libarcsoft_face_engine.dll(so).libarcsoft ...
- 基于javafx和虹软ArcFace的高校新生人脸录入与识别系统
一.需求分析 随着人脸识别技术的快速发展,各大高校也开始尝试在新生入校时就通过人脸识别相关技术对新生人脸信息进行采集并录入高校人脸信息库中.在今后的学习生活中,已经录入人脸信息的同学可以轻松的通过人脸 ...
- 虹软人脸识别SDK接入Milvus实现海量人脸快速检索
虹软人脸识别SDK接入Milvus实现海量人脸快速检索 背景 虹软SDK及Milvus简介 开发环境 虹软人脸识别SDK使用简介 Milvus环境搭建 快速检索实现 人脸识别流程简介 快速检索 虹软S ...
- java人脸识别_自从加了PC人脸识别登录功能,网站立马显得高大上
之前不是做了个开源项目嘛,在做完GitHub登录后,想着再显得有逼格一点,说要再加个人脸识别登录,就我这佛系的开发进度,过了一周总算是抽时间安排上了. 源码在文末 其实最近对写文章有点小抵触,写的东西 ...
- java 人脸识别jar包_java版天网人脸识别系统,获取视频流人脸识识别推送服务器展示...
java版天网人脸识别系统,获取视频流 进行人脸识别后推送到流媒体服务器实时展示 获取视频流 进行人脸识别后推送到red5服务器(人脸识别技术由虹软®提供) 整个系统共有两个项目组成 red5_hls ...
- 【人脸识别】arcface详解
论文题目:<ArcFace Additive Angular Margin Loss for Deep Face Recognition > 论文地址:https://arxiv.org/ ...
- 深度篇——人脸识别(一) ArcFace 论文 翻译
返回主目录 返回 人脸识别 目录 下一章:深度篇--人脸识别(二) 人脸识别代码 insight_face_pro 项目讲解 目录内容: 深度篇--人脸识别(一) ArcFace 论文 翻译 深度篇- ...
最新文章
- NIPS 2018 迁移学习相关论文
- 通过微信公众号获取用户信息(java版)
- 转-android图片降低图片大小保持图片清晰的方法
- phpmyadmin配置
- php生成extjs下拉树json数据格式
- JSP作业1--5!
- Qt工作笔记-QML与C++交互
- 部署redis主从复制
- Cray:XC50提供了最高密度的性能
- linux监控采集项
- sql server中截取字符串的常用函数(自己经常到用的时候想不起来所以拿到这里)...
- matlab实现icp算法,ICP算法(Iterative Closest Point)及VTK实现
- Splitter 控件的使用
- CS61C Spring 2021——Project 3: CS61CPU要求及实现思路
- java移动拼图游戏模拟
- 【Android智能硬件开发】【011】安卓串口转USB
- 冷冻大脑、量产蟋蟀...全球最聪明的人一起开脑洞是什么样?
- python实践报告总结_关于开发Python项目的心得总结
- 测试屈光度软件,家长们看过来,还可以这样监测孩子的视力
- HTML+CSS学习(五)