ArcFace阈值选择

最近在学习人脸识别,看了一些FaceNet和ArcFace的资料。发现这类人脸识别算法的基本思路都是把待识别人脸送入卷积神经网络得到一个embedding向量,然后与人脸库中的人脸embedding向量进行比较,一般是求这两个人脸之间的距离,如果距离小于一个阈值,那就认为这两张人脸属于同一个人。
       但是因为之前没有人脸识别方面的部署经验,所以对ArcFace最后如何选择的阈值不太清楚,搜索引擎上也没搜到相关资料。所以我研究了一下官方的代码,做了一个笔记。

我看的是官方insightFace的pytorch实现的代码,如下:

deepinsight/insightface

ArcFace用的阈值选择方法其实并不是用的一个固定的值,而是用的与训练集相关的方法:

1.为阈值选择一个合适的范围集合,遍历这个集合中的阈值;
2.在1中的集合选中一个阈值后,就用这个阈值计算此时训练集的准确率,直到1中的阈值都计算完;
3.选出训练集准确率最高的阈值,将其选为最佳阈值;

官方pytroch代码阈值选择的核心在calculate_roc函数中第90行,代码可以精简如下:

# Find the best threshold for the fold
thresholds = np.arange(0, 4, 0.01)  #给定一个阈值集合
acc_train = np.zeros((nrof_thresholds))
for threshold_idx, threshold in enumerate(thresholds): #遍历这个集合_, _, acc_train[threshold_idx] = calculate_accuracy(threshold, dist[train_set], actual_issame[train_set])#计算这个阈值的训练集准确率
best_threshold_index = np.argmax(acc_train) #选出准确率最高的最佳阈值

可以看出,ArcFace的阈值的选择也是一种自适应的,没有固定死的最佳阈值,因为在不同的场景上不同的数据集上可能其本身的最佳阈值本来就不一样,因此阈值根据数据集来进行自适应是更好的选择。

同理,在不同的场景中,最佳的阈值也需要进行调整,这里计算的准确率,如果所用的场景是希望减少误识率,那这里就应该计算FP,选择FP最小的最佳阈值了。面对不同的场景下的不同要求,这里的阈值选择函数的指标也应该进行调整。

ArcFace阈值选择相关推荐

  1. 如何在OpenCV中为InRange阈值选择颜色的最佳HSV值

    如何在OpenCV中为InRange阈值选择颜色的最佳HSV值 1. 效果图 2. 源码 参考 之前的博客介绍了如何使用Python,OpenCV通过HSV颜色空间转换检测对象,并进行轨迹追踪.怎么选 ...

  2. 度量学习:ArcFace算法和工程应用总结

    目录 前言 1 度量学习简介 2 ARCFace介绍 3 实际应用时的探讨 探讨1:类似于人脸识别这样的应用,从0到落地应用的大概流程是怎样的? 探讨2:怎么评估这个特征提取器网络训练好了? 探讨3: ...

  3. 实战:人脸识别的Arcface实现 | CSDN博文精选

    来源 | CSDN博客 本文将简单讲述arcface从训练到部署的整个过程,主要包括前期的数据筛选和准备,模型训练以及模型部署. 此文参考的arcface的代码地址: https://github.c ...

  4. ArcFace - 人脸识别

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 来源:知乎 作者:科密中的科蜜 链接:https://zhuanl ...

  5. 【论文理解】ArcFace: Additive Angular Margin Loss for Deep Face Recognition(InsightFace)

    论文地址:https://arxiv.org/abs/1801.07698 github:https://github.com/deepinsight/insightface 这篇论文基本介绍了近期较 ...

  6. 【java】人脸识别 虹软ArcFace 2.0-抽取人脸特征并做比对

    虹软产品地址:http://ai.arcsoft.com.cn/product/arcface.html 虹软ArcFace功能简介 人脸检测 人脸跟踪 人脸属性检测(性别.年龄) 人脸三维角度检测 ...

  7. Arcface v1 论文翻译与解读

    神罗Noctis 2019-10-13 16:14:39  543  收藏 4 展开 论文地址:http://arxiv.org/pdf/1801.07698v1.pdf 最新版本v3的论文翻译:Ar ...

  8. 解析ArcFace源码

    猫猫与橙子 2019-10-09 17:20:38  893  收藏 2 展开 论文分享,代码复现 主要用于论文翻译分享,代码复现,结合场景数据,提升实际模型性能 猫猫与橙子 ¥19.90 分享赚¥1 ...

  9. 【深度学习】同款商品识别的克星--ArcFace!

    作者:杰少,一品炼丹师 ArcFace: Additive Angular Margin Loss for Deep Face Recognition(CVPR2019) 简 介 利用深度卷积神经网络 ...

  10. ArcFace 同款商品识别的克星

    ArcFace: Additive Angular Margin Loss for Deep Face Recognition(CVPR2019) 一元@炼丹笔记 利用深度卷积神经网络(DCNNs)进 ...

最新文章

  1. Mysql 知识点总结(持续更新)
  2. Lean Startup
  3. 使用solr的DIHandler 构建mysql大表全量索引,内存溢出问题的解决方法
  4. Mybatis 使用的 9 种设计模式,真是太有用了~
  5. 深度学习框架的比较(MXNet, Caffe, TensorFlow, Torch, Theano)
  6. java mysql nullpointerexception_无法从Java连接到MySQL:MySQL驱动程序连接逻辑中的NullPointerException...
  7. centos7镜像加速_docker 镜像加速CentOS7详细介绍
  8. 如何设置固定宽度 td ?
  9. 12,mac phpstorm xdebug
  10. No toolchains found in the NDK toolchains folder for ABI with prefix: mips64
  11. php.ini_中文详解
  12. linux的fseek函数
  13. 在Android上模拟登录广工正方教务系统查询成绩
  14. 【问题】python open函数中的newline参数问题
  15. c++小游戏——忍者必须死
  16. python幂次方计算公式_【python】计算一个数得n次方?
  17. mysql怎么做排名并列_MySQL实现排名并查询指定用户排名功能,并列排名功能
  18. 美国大学计算机牛校简介
  19. 高通骁龙8+转投台积电!4nm制程整体功耗降15%,小米OPPO旗舰都安排上了
  20. 师兄新作!Cell Stem Cell背靠背 | 吴军等建立了一种全新的全能干细胞

热门文章

  1. 一个放在口袋里的项目,将社交裂变做到了极致
  2. 视频格式mp4转emf
  3. 执行maven install 报如下错是什么原因呢?
  4. BLDC无刷直流电机之电机驱动的控制原理示意
  5. 驱动一款淘宝购买的130万像素的USB双目摄像头-记录
  6. NXP MPC574X eTimer
  7. Hadoop原理之checkpoint机制
  8. ISweek工采网·工采电子参展OFweek维科网 2021全球数字经济产业大会圆满落幕
  9. 使用Project进行项目管理
  10. 电容的串联和并联的性质