CV Master结营笔记|你知“识别技术”有几分?


时光如梭,在2020年的尾巴

CV Master第二期识别训练营也圆满结束了!

课代表也为大家特别整理出了本期的知识点干货

快来check一下你是不是都掌握了~

为保证大家高效阅读笔记,内容为浓缩要点为主

解锁更多详细讲解,可前往B站查看原视频

(复制以下链接或点击“阅读原文”)

????https://www.bilibili.com/video/BV1Cz4y1y7k1????

知识点1:识别技术基础


评价指标

  • Accuracy:正确分类样本数 / 总样本数,越大越好

  • Top K:命中 Top-K 的样本数 / 总样本数,越大越好

  • TPR: 正确判断的正样本数 / 总正样本数,越大越好

  • FPR:错误判断的的负样本数 / 总负样本数,越小越好

  • AUC:tpr-fpr曲线与横坐标围成的面积,越大越好

识别技术处理Pipeline

一条完整的识别技术pipeline,过程一般包括下列步骤:

  • 前处理:检测、转正、质量判断

  • 特征提取:图像预处理、特征抽取、特征融合

  • 特征匹配:最近邻搜索或者近似搜索、阈值判断

知识点2: 损失函数设计

特征提取模型是在将高维数据映射到一个低维的特征空间中,同时使得数据相似度与特征空间中的度量大小成正相关。根据度量不同,可以得到不一样的约束,从而设计出不同的loss。

欧式空间

每一个特征聚集成一个簇,loss希望拉近正样本的距离,同时拉远负样本之间的距离。

Contrastive Loss

 

Triplet Loss

Center Loss

角度空间

每一个特征聚集在一个方向上,loss希望增大负样本之间的夹角,减小正样本之间的夹角。于是loss设计一般都针对“夹角”进行约束。

原始的Softmax希望正样本相比负样本能做到,ArcFace、AM-Softmax、SphereFace等工作则是在其上增加了更强的要求,选择不同的位置就可以得到不一样的工作。

知识点3: 识别技术工程实践


Megaface测试方案

探针集 (probe): facescrub 80 人 / 3530 图

图片库 (gallery): megaface ~700k 人 / 1m 图

方法:将探针集中的一张图片,扔进图片库中,通过探针集留有的一张图片,召回扔进图片库中的图片

处理流程

(1)特征提取

batch_norm / dropout 调成测试模式

特征做 norm

mirror face

(2)探针集的噪声处理

 找到干净样本的类中心,替换噪声样本

(3)图片库噪声处理

 用“无穷远样本”替代“噪声样本”

(4)特征比对

模型构成要素和实现

(1)resnet.py

主体上与经典的 resnet 实现是保持一致的。几个细微差别:第一个卷积层是 stride=1,而不是 stride=2;网络的最终输出是 res5,即一个 7*7 的特征图,而不是分类 logits

(2)head.py

(3)loss.py

  • cosface

margin softmax 的套路:正样本减去一个数;负样本不变

  • arcface


(4)stn.py

根据神经网络的输出,对原图做一些变换

知识点四:识别技术工程实践


STN(Spatial Transformer Network)

STN通过对图像或feature map进行仿射变化使其更规整、更容易被网络学习与理解。

Grid Face-Grid STN:gridSTN是STN工作的改进,解决的同样是不同角度下形变的问题。


Loss进阶

(1)Uniform Loss

诉求是在center loss的基础上拉远类中心之间的距离,避免特征空间利用率太低。通过类比点电荷同性相斥、分散后势能最低的性质,使用电荷场的势能的形式作为正则化Loss。

(2)Circle Loss

一般的triplet loss梯度方向不符合正常认知,于是在正样本与负样本前加上不一样的系数使得梯度方向更加合理。

同时,在特定参数设置下,该loss可以退化为AMSoftmax或者普通Softmax,以及带Hard-mining的Triplet Loss。

Data uncertainty

Data Uncertainty:数据本身的噪声对结果存在影响,对模型输出引入置信度的概念。对于质量非常低的图片,允许它们相似度很高,但是同时不确定性也很高,即置信度低,从而在使用中根据需求排除掉。

(1)Probabilistic Face Embedding

PFE希望同时估计特征的均值和方差,且方差根据输入进行端到端的学习。

PFE进行了两阶段的训练:

  • 阶段一是传统的确定性特征提取网络训练

  • 阶段二将特征部分的网络权重固定,单独训练一个子分支预测方差。为了训练该分支,PFE提出为了一种新的、基于分布的metric :mutual likelihood score(MLS)

  • MLS具备下列性质:

    • Attention:其第一项相当于对于不确定性很大的维度赋予了很小的权重

    • 惩罚机制:其第二项相当于是对子分支预测方差的惩罚项,使得其不能太大

    • 如果两张图的方差都很大,MLS会非常低,无论其欧式距离是否很近

    • 当且仅当两张图的方差很小且欧式距离很近的时候,MSL才可能取到很高的值

(2)Data Uncertainty Learning in Face Recognition

该方法是旷视在今年提出的能够从头开始同时训练和优化均值和方差的方法。它在预测不确定性的同时也优化了均值部分,所以该方法最终依旧直接用欧式距离来判断相似性也比传统的确定性特征要好:

Approximate Nearest Neighbour

ANN优化的目标就是保证召回率的下降在可接受范围,同时最大限度地提高检索速度。以下介绍几种典型的检索方法:


(1)Local Sensitive Hashing

LSH要求哈希函数满足:

  • 如果两个点近,哈希值相同的概率大

  • 如果两个点远,哈希值相同的概率小

  • 即哈希结果对位置敏感

可以通过随机选取多个超平面作为基准,每个点根据在超平面的上方或下方进行编码,从而实现LSH。

针对聚类效果明显的情况,也可以先通过Kmeans进行聚类,然后在选取超平面时尽量远离聚类中心来避免统一聚类被分到超平面两侧。


(2)InVertied File

IVF是一种基于Kmeans的聚类方法,思路也很直接:

  • 训练:通过聚类得到$k=2^L$个聚类中心

  • 添加:base中每个数据点按照最近聚类进行划分

  • 检索:query找到所属聚类,按照聚类中心的距离遍历最近的nprobe个聚类;对于每个聚类内部的原始特征与query做比对并得到topK


(3)Hierarchical Navigable Small World

HNSW是一种基于图的算法,通过图来维护底库之间的距离关系,从而在检索时做启发式搜索,有效减少了遍历数量。

知识点五:业界应用及实践

嘻嘻~这一部分课代表先卖个关子,大家可以前往B站旷视MEGVII平台查看课程原视频(https://www.bilibili.com/video/BV1Cz4y1y7k1)。

错过前两期训练营的朋友

是否已经摩拳擦掌?

别着急,第三期训练营将在2021年与大家见面

关注旷视研究院微信号

第一时间获取开营信息~

想和我们近距离交流的话 

欢迎扫描下方二维码 

回复 

学生交流群 

即可入群

*文中部分图片素材来源于公开数据集

戳这里关注 旷视研究院 官方微信号????

已标记关键词 清除标记
相关推荐