本文主要是介绍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更集中更科学
使用虹软2.0 javaSDK对人脸的年龄、性别等信息进行识别的步骤:
- 人脸检测,获得图片中人脸位置
- 调用ASFProcess方法,对人脸进行预处理(最大同时支持4张面部数据的处理)
- 调用ASFGetAge 可以获得处理过的人脸年龄数据数组
- 调用ASFGetGender 获得处理过的人脸性别数据数组
示例代码:
//第一步进行人脸位置检测
MultiFaceInfo detectedFaces = new MultiFaceInfo();
ins.ASFDetectFaces(hEngine, img.width(), img.height(), ASVL_COLOR_FORMAT.ASVL_PAF_RGB24_B8G8R8,imgData, detectedFaces);//第二部进行信息预处理,此处需要告诉sdk,你需要获得哪些信息
int combinedMask = FaceEngine.ASF_AGE|FaceEngine.ASF_GENDER|FaceEngine.ASF_FACE3DANGLE;
ins.ASFProcess(hEngine, img.width(), img.height(), ASVL_COLOR_FORMAT.ASVL_PAF_RGB24_B8G8R8, imgData, detectedFaces, combinedMask);//处理成功后,就可以尝试获得年龄、性别、人脸3d角度数据等
AgeInfo ageInfo = new AgeInfo();ins.ASFGetAge(hEngine, ageInfo);int[] ages = ageInfo.getAges();GenderInfo genderInfo = new GenderInfo();
ins.ASFGetGender(hEngine, genderInfo);
int[] gender = genderInfo.getGenders();Face3DAngle face3dAngle = new Face3DAngle();ins.ASFGetFace3DAngle(hEngine, face3dAngle);
测试效果
原图:
识别后的图[其中0表示男性 1 表示女性]:
使用已经封装好的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
需要完整代码,加qq:79295735
这篇关于java人脸识别 虹软ArcFace 2.0,java SDK使用、人脸信息识别(年龄、性别)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!