项目地址

seetaface6SDK地址

前期准备

  1. 下载项目
  2. 下载seetaface6 模型文件: 模型文件1 (code:ngne),模型文件2 (code: t6j0)
  3. 配置模型文件到项目中,运行Test

人脸特征相似度介绍

  1. 特征提取过程可以分为两个步骤:1. 根据人脸5个关键点裁剪出人脸区域;2. 将人脸区域输入特征提取网络提取特征。
    这两个步骤可以分开调用,也可以独立调用。
  2. 特征长度是不同模型可能不同的,要使用faceRecognizer.GetExtractFeatureSize()方法获取当前使用模型提取的特征长度。
  3. 相似度的范围是[0, 1],但是需要注意的是,如果是直接用內积计算的话,因为特征中存在复数,所以计算出的相似度可能为负数。识别器内部会将负数映射到0。
  4. 在一些特殊的情况下,需要将特征提取分开两步进行,比如前端裁剪处理图片,服务器进行特征提取和对比。
  5. 戴口罩人脸相似度计算需要切换成 face_recognizer_mask.csta模型
  6. 下面代码中,一张图片中可能有多个人脸(也可能没有人脸),这里演示用图片至少包含一个人脸,且只取第一个。

人脸特征模型介绍

模型 模型说明 备注
face_recognizer.csta 高精度人脸识别人脸向量特征提取模型,建议阈值:0.62 返回1024长度向量特征
face_recognizer_mask.csta 戴口罩人脸向量特征提取模型,建议阈值:0.48 返回512长度向量特征
face_recognizer_light.csta 轻量级人脸向量特征提取模型,建议阈值:0.55 返回512长度向量特征

人脸特征相似度代码

package com.seeta.sdk.proxy;import com.seeta.proxy.FaceDetectorProxy;
import com.seeta.proxy.FaceLandmarkerProxy;
import com.seeta.proxy.FaceRecognizerProxy;
import com.seeta.pool.SeetaConfSetting;
import com.seeta.sdk.*;
import com.seeta.sdk.util.LoadNativeCore;
import com.seeta.sdk.util.SeetafaceUtil;/*** 人脸特征相似度 1:1* 人脸相似度计算*/
public class FaceRecognizerProxyTest {static {LoadNativeCore.LOAD_NATIVE(SeetaDevice.SEETA_DEVICE_AUTO);}//模型文件夹路径public static String CSTA_PATH = "E:\\models";// 拼接模型路径public static String[] detector_cstas = {CSTA_PATH + "/face_detector.csta"};// 人脸关键点定位模型路径拼接public static String[] landmarker_cstas = {CSTA_PATH + "/face_landmarker_pts5.csta"};//高精度人脸特征提取模型,1024维public static String[] recognizer_cstas = {CSTA_PATH + "/face_recognizer.csta"};public static String fileName = "E:\\111.jpg";public static String fileName2 = "E:\\222.jpg";public static void main(String[] args) {//人脸识别检测器对象池配置,可以配置对象的个数哦SeetaConfSetting detectorPoolSetting = new SeetaConfSetting(new SeetaModelSetting(0, detector_cstas, SeetaDevice.SEETA_DEVICE_AUTO));//人脸检测器对象池代理 , spring boot可以用FaceDetectorProxy来配置BeanFaceDetectorProxy faceDetectorProxy = new FaceDetectorProxy(detectorPoolSetting);//人脸关键点定位器对象池配置SeetaConfSetting faceLandmarkerPoolSetting = new SeetaConfSetting(new SeetaModelSetting(0, landmarker_cstas, SeetaDevice.SEETA_DEVICE_AUTO));//人脸关键点定位器对象池代理 , spring boot可以用FaceLandmarkerProxy来配置BeanFaceLandmarkerProxy faceLandmarkerProxy = new FaceLandmarkerProxy(faceLandmarkerPoolSetting);SeetaConfSetting faceRecognizerPoolSetting = new SeetaConfSetting(new SeetaModelSetting(0, recognizer_cstas, SeetaDevice.SEETA_DEVICE_AUTO));//人脸特征提取器,人脸特征相似度计算器FaceRecognizerProxy faceRecognizerProxy = new FaceRecognizerProxy(faceRecognizerPoolSetting);SeetaImageData image1 = SeetafaceUtil.toSeetaImageData(fileName);SeetaImageData image2 = SeetafaceUtil.toSeetaImageData(fileName2);try {//照片1SeetaRect[] detects1 = faceDetectorProxy.detect(image1);//detects1[0] 图片中可能有多个人脸(也可能没有人脸),这里演示只取第一个SeetaPointF[] pointFS1 = faceLandmarkerProxy.mark(image1, detects1[0]);//向量特征数组float[] features1 = faceRecognizerProxy.extract(image1, pointFS1);//照片2SeetaRect[] detects2 = faceDetectorProxy.detect(image2);//detects1[0] 图片中可能有多个人脸(也可能没有人脸),这里演示只取第一个SeetaPointF[] pointFS2 = faceLandmarkerProxy.mark(image2, detects2[0]);//向量特征数组float[] features2 = faceRecognizerProxy.extract(image2, pointFS2);//对比向量特征数组if (features1 != null && features2 != null) {float calculateSimilarity = faceRecognizerProxy.cosineSimilarity(features1, features2);System.out.printf("第相似度:%f\n", calculateSimilarity);}} catch (Exception e) {e.printStackTrace();}}
}

输出结果

  1. float: 分数
结果:0.776509

总结

1. 人脸识别过程复杂,但这个代码简单。
2. 精度高,这边的模型都是中科院商业开源的,比起社区的模型,用到的训练集多很多。
3. 功能齐全 :
人脸检测和关键点定位
人脸特征提取和对比
人脸特征提取
人脸特征对比
活体检测
人脸跟踪
质量评估
年龄识别
性别识别
口罩检测
口罩人脸识别
眼睛状态检测

不懂seetaface6SDK的可以先看gitee项目哦

(8)seetaface6 JNI之人脸相似度1:1(包含戴口罩人脸相似度)计算相关推荐

  1. 【英特尔杯记录】Python戴口罩人脸识别部分

    博主参加英特尔杯后,主要完成机器视觉相关代码的编写,首先是人脸识别 采用Dlib作为人脸检测分类器,对于戴口罩人脸也有较好的识别效果,最终将人脸图像上传至百度云人脸库,通过调用百度API进行人脸识别 ...

  2. 智能抗疫 | 戴口罩人脸数据助力科技防疫

    新冠肺炎疫情防控牵动着国人的心,同时也是中国科技实力的一次临场考验."提升科技防控疫情力度,积极为打赢疫情防控阻击战作出贡献."1月29日,国资委主任郝鹏表示.帮助安检及医护人员提 ...

  3. 统一操作系统 UOS 官网正式上线;旷视回应“戴口罩人脸识别”;IntelliJ IDEA 2019.3.3 发布 | 极客头条...

    整理 | 屠敏 快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注 ...

  4. 京东AI:戴口罩人脸识别pytorch开源库

    项目介绍 该项目是JDAI开源的基于PyTorch的人脸识别工具箱,提供了一个包括目前主流backbone和head的的training module,一个标准化的人脸识别evaluation mod ...

  5. Pytorch实现戴口罩人脸检测和戴口罩识别(含训练代码 戴口罩人脸数据集)

    Pytorch实现戴口罩人脸检测和戴口罩识别(含训练代码 戴口罩人脸数据集) 目录 Pytorch实现戴口罩人脸检测和戴口罩识别(含训练代码 戴口罩人脸数据集) 1.戴口罩识别的方法 (1)基于多类别 ...

  6. 由火车站戴口罩人脸识别入站感想

    由火车站戴口罩人脸识别入站感想 个人经历 过完春节,去上班,疫情还很严重,火车站机器安检,需要摘下口罩刷身份证才可以安检成功,在摘下口罩的那一刻,慌得一批. 最近经历 最近又坐火车,还是机器安检,这时 ...

  7. 戴口罩人脸识别、高精度人脸识别解决方案

    1.数据集的整理及清洗 1. 线上数据40万人,2000万张图 2. glint360,36万人,2000多万张图 2.人脸预处理 ----采用自研的图像处理算法对人脸进行 "中心矫正&qu ...

  8. 戴上口罩AI变“脸盲”?口罩人脸识别黑科技来袭

    疫情期间,口罩在全国抗疫中起到了关键作用.但在口罩成为每一位公民"标配"的同时,对诸如"刷脸"支付.高铁闸机身份认证等需要人脸识别的场景提出了挑战. 口罩.帽子 ...

  9. 中国队拿下口罩人脸识别世界第一!还将推出全球最大公开人脸数据集

    允中 发自 凹非寺 量子位 编辑 | 公众号 QbitAI 在新冠疫情全球大流行的背景下,佩戴口罩几乎是所有国家和地区居民出行的必备选项.但严重的面部遮挡会对人脸识别技术构成严重挑战,受此影响,类似手 ...

  10. 人脸识别与膜虹识别_当人脸识别遭遇口罩,虹膜识别的机会来了

    本文转自[科技日报]: 当人脸识别遭遇口罩,虹膜识别的机会来了 专家指出虹膜识别标准体系还需进一步完善 本报记者 马爱平 突如其来的新冠肺炎疫情,让人脸识别(Face ID)技术遭遇尴尬,因为一旦用户 ...

最新文章

  1. 【CV】Pytorch一小时入门教程-代码详解
  2. c语言 char转int_图文并茂,一文讲透C语言结构体内存对齐
  3. 去杠杆高歌猛进,借呗会倒闭吗?
  4. java--用 * 打印出各种图形(新手请进)
  5. 计算机学院考勤管理办法,计科学院进一步加强课堂考勤实施意见(试行)
  6. 类对象作为函数参数进行值传递
  7. 联发科推全新P系芯片 聚焦中端市场
  8. 2016年前端web开发趋势总结
  9. python if not A 和 if A is None
  10. 基于Java前后端分离的在线蛋糕销售系统(含优秀毕业论文)
  11. 在线抽奖、限时秒杀、拼团抢购,别的商城有的功能你也可以轻松拥有!
  12. vue3中使用swiper7及autoplay无效问题
  13. Win10系统导出证书私钥及公钥
  14. JAVA对接发送SMS短信服务
  15. 带你学微信小程序开发
  16. Mysql 8.0 安装详细教程、问题处理、卸载(亲测可用)
  17. python爬虫——正则表达式
  18. 解决Xmanager重复输入两次的问题
  19. 苹果cms首页文件html,苹果cms首页视频不更新怎么解决
  20. 一文掌握APQP(产品质量策划)

热门文章

  1. 转载 网络维护专家坐谈
  2. android无线投屏到win,无线投影仪怎么连接,看过教程,原来操作这么简单!
  3. selenium2library期望值关键字总结
  4. VC14(VC2015)安装失败,0x80240017 - 未指定的错误,解决办法
  5. 全球与中国高精度漆包扁铜线市场深度研究分析报告
  6. MySql常用语句汇总
  7. 数学之美:余弦定理和新闻分类
  8. 常用的网站压力测试工具有哪些
  9. 计算机英语听力速记...,2018计算机考研英语听力速记技巧才是王道
  10. 利用OA系统更便捷地查询员工工资