目标检测、识别算法在不同应用场景下的常用评估指标介绍(一)

目标检测、识别算法在不同应用场景下的常用评估指标介绍(一)接触目标检测 识别相关算法项目的测试工作近两年了 之前零零散散也做过一些相关算法质量评估指标的分享 但一直没有总体上进行总结与梳理

大家好,欢迎来到IT知识分享网。

目标检测、识别算法在不同应用场景下的常用评估指标介绍(一)

前言

接触目标检测、识别相关算法项目的测试工作近两年了,之前零零散散也做过一些相关算法质量(效果)评估指标的分享,但一直没有总体上进行总结与梳理。最近一段时间工作之余,前前后后大概用了将近一个月的时间,进行了一次自认为相对系统的梳理,若有存在偏差的地方,欢迎提出指正、交流。

本文将以人脸识别、行人重识别为例,介绍目标检测、识别算法的在不同应用场景下的常用评估指标。为了更清晰地介绍各类算法的评估指标,本文将从算法的应用场景、指标计算示例、指标计算方法等角度进行介绍。

此外,由于整体文章篇幅过长,将划分为三部分进行分享,内容概要分别如下:

目标检测、识别算法在不同应用场景下的常用评估指标介绍(一)

  1. 人脸识别的基本流程与常见的应用模式
  2. 行人重识别的基本概念与常见方法

目标检测、识别算法在不同应用场景下的常用评估指标介绍(二)

  1. 从二分类的角度,介绍检测与识别相关模型评估指标
  2. 从多分类&多标签分类的角度,介绍人脸识别相关模型评估指标

目标检测、识别算法在不同应用场景下的常用评估指标介绍(三)

  1. 混淆矩阵
  2. 综合评价指标 F-Measure
  3. Micro F-1 与 Macro F-1
  4. ROC 曲线及AUC
  5. Precision-Recall曲线
  6. AP 与mAP
  7. Rank K Accuracy
  8. CMC

接下来,本文主要介绍第(一)部分,内容如下。


2 人脸识别

2.1 人脸识别的基本流程

人脸识别首先需要检测到人脸,检测到人脸之后进行关键点的定位,把人脸的眼睛、鼻子、嘴角等信息都定位出来,利用这个信息对人脸做个矫正,把它变换到比较正情形,便于后面模型分析,最终提取得到一个人脸的特征数据,通常是一个几十维到几百维的特征数据,然后我们用不同人脸特征之间的相似度,去刻画两个人脸之间的关系,通过相似度与域值比较,来判断这两个人是否为一个人,总起来说,人脸识别大致流程如下:

  1. 人脸采集与检测
  2. 人脸矫正与关键点定位
  3. 人脸特征提取
  4. 人脸特征比对

2.2 人脸识别的应用模式

2.2.1 人脸验证(1:1)

在一些简单的应用场景中,例如,人脸验证场景中,给定两个人脸,通过人脸比对获得两个人脸特征的相似度,通过与阈值比较,以验证两个人脸特征是否属于同一人(即 相似度大于阈值,为同一人,小于阈值为不同),可以简单理解为证明 “你就是你”

1:1 同时具有静态比对配合两种特点,完成比对需要用户主动配合采集人脸。在大多数场景下,我们需要先提供证件或注册人脸,然后跟自己的人脸进行比对验证,相当于一次二分类。

一般在金融、信息安全领域中应用较多。比如银行柜台、高铁安检闸机、手机解锁、酒店入住、网吧认证,会验证当前人脸与证件人脸照片是不是同一个人,此类场景就是典型的1:1 模式的人脸识别。

2.2.2 人脸检索(1:N)

再进一步的应用场景,例如,想要去做人脸检索呢?,从一个人脸库(gallery)中检索出与一个目标人脸(query/probe) 特征最相似的一张人脸或最相似的前N 张人脸,可以视为在一个目标人脸与人脸库中的每个人脸特征进行比对。

比如,我们有一个大小为 N 的海量人脸库(gallery),有一张待检索的人脸图片(probe),让我们判断这个人有没有在这个人脸库中出现过。这种情况下,要回答的就有 N 个1:1 的问题,例如,待检索人脸是不是库中的人脸1、人脸2、人脸N?。如果这 N 个问题回答都是“否”的话,就意味着这个人不在人脸库里面。可以简单理解为证明 “这人是谁” ,即 N 个 1:1 检索

随着N 的不断增长,通常会出现多个相似人脸的结果,因此在实际应用场景,通常需要人工对检索结果进行辅助定位。例如,在实际场景,比如,有一个民警,他从视频或者图片里发现目标人物,并把目标人脸框出来,然后在系统人脸库中做搜索。最后系统会按照相似度进行降序处理,返回排名前N 的人脸,比如 Top N,然后民警人工验证前N个结果中是否存在目标人脸。

1:N 人脸识别模式,同时具有动态比对非配合两种特点。动态对比是指通过对动态视频流的截取来获得人脸数据并进行人脸比对的过程,而非配合性是指识别对象无需按照一定要求到指定的位置便能完成人脸识别的工作。由于这两个特性,使得1:N 人脸检索模式能迅速落地于公共安全人脸识别等场景。

2.2.3 人脸检索(M:N)

在更复杂的应用场景中,例如,将两个人脸库进行比对,A人脸库有M 张人脸,B人脸库有N 张人脸,这就是人脸的 M : N 检索(可以理解为实时的 M 个1:N 检索)。

例如,在安防领域,我们的目标人物可能不止一个,而是一个群体。比如 在逃嫌疑人库,这种情况下,通常我们会有大量的摄像头,每个摄像头都在实时抓拍人脸数据,即有海量的待确认的抓拍人脸,同时底库数据也相对较大,我们需要每天在大量摄像头采集的视频或图片里面去搜索目标群体。

这种场景比较复杂,我们通过一个示例,帮助我们理解,假设在A 市主要路口有1000 个摄像头,每个摄像头每天平均能够抓拍2000 个人,当日人脸库数据增量为200 万。

同时,假如有一天,在A市出现10 名在逃嫌疑人,我们需要在 含有5 万在逃嫌疑人库与含200 万当日人脸库 里面去搜索他们。

某安防系统所应用的某人脸检索算法模型,在这一天中共报警110 次,民警通过逐一排查,最后抓到了8 个嫌疑人。由此可得出如下混淆矩阵:

目标检测、识别算法在不同应用场景下的常用评估指标介绍(一)

如上,算法模型效果这看起来还不错,因为共出现了10 个在逃嫌疑人,抓到了8 个,召回率是 80%。那我们来看看误报率,110 次报警,对了 8 次,错了102 次,误报率就是102 除以 2,000,000 × 50,000 -10,约为10 亿分之1 。

M:N 是对场景内所有人进行面部识别并与人像数据库进行比对的过程,同样具有动态比对非配合两种特点。M:N作为一种动态人脸比对,能充分应用于多种场景,例如公共安防,迎宾机器人应用等。

2.2.4 人脸聚类

除此之外,还一类应用就是人脸聚类(人脸虚拟ID 聚类),虚拟ID 就是我们不知道每个人的证件信息,通过将大量的摄像头抓拍图片集合内所有的人脸两两之间做人脸比对,再根据这些相似度值进行分析,将属于同一个身份的人划分到一个组里。基于这些数据可以进一步挖掘用户的轨迹和行为习惯。

这些聚类数据在很多场景下是非常价值的,最简单应用的是人脸相册的聚类,这个应用很简单,因为只需要在一个人的相册里做聚类就可以了。再例如在安防、零售等场景,比如通过人脸聚类可以分析出谁跟谁经常在一起活动,或者是从A 地到B 地再到C 地的活动轨迹信息,尤其是新疆、西藏等地分析人员流动的异常等行为,尤其关注。

2.3 人脸识别 与人脸检测的区别

人脸检测就是在一张图像或视频帧中判断是否有人脸,若有则返回人脸的大小、位置等信息。人脸识别则是在假设图像或者视频帧中存在人脸的情况下,根据人脸的特征判断人的身份等信息。

除此之外,人脸检测比人脸识别的应用更广泛。人脸检测只是意味着系统能够识别图像或视频中是否存在人脸,被广泛的应用到各种场景中,人脸识别只是其中一种,除此之外,还可用于自动对焦相机、活体检测等等若干场景。

2.4 在复杂场景中的局限性

在实际的应用中,例如,监控视频中,由于摄像设备的分辨率、设备架设角度高度、人脸的角度、口罩、帽子等遮挡等因素,通常难以得到清晰完整的高质量人脸图片,使得识别系统都无法用人脸特征进行准确的检索。因此在围绕搜索目标人或人群的场景中,引入了另一个代替方案—— 行人重识别,这也是我们在下文要重点介绍的算法。

目标检测、识别算法在不同应用场景下的常用评估指标介绍(一)


3 行人重识别

目标检测、识别算法在不同应用场景下的常用评估指标介绍(一)

3.1 概念

在最近播出的《暴风眼》电视剧中,国安人员在对嫌疑人的侦查、跟踪工作中,经常要跨多个摄像头中的视频,查找某个特定的行人在哪些摄像头曾经出现过。在这个场景中涉及到的将针对特定行人的监控视频检索的技术就是本文要介绍的行人重识别技术,其为图像检索的一个子问题。

行人重识别(Person Re-identification,简称ReID),从字面上理解就是对人进行识别,然后再与不同的、没有视野交叉覆盖的摄像设备拍摄的行人图像建立映射关系的计算过程。通俗地说,就是 “以图搜图” 技术,即给定一张特定的行人图像,检索跨设备的图像或视频序列中该行人是否存在。

在实际应用的场景中,例如,在监控视频中,由于摄像设备的分辨率、设备架设角度高度、人脸的角度、口罩、帽子等遮挡等因素,通常难以得到清晰完整的高质量人脸图片,使得识别系统都无法用人脸特征进行准确的检索,行人重识别因此成为了其非常重要的替代品技术方案,即 通过将整体行人特征(不局限于人脸)作为人脸之外的重要补充,作为对行人的跨摄像头跟踪的主要思路。例如,引入行人的性别(外貌特征)、上下身衣着颜色、手持物品、背包等属性来增加模型的泛化能力,即结合行人的类别标签和属性标签,通过多种标签的组合使模型的表征能力更强,提高行人重识别的准确率。

那么,这里的 “行人重识别” 与 我们常说的 “行人检测” 有什么区别呢?

3.2 行人重识别 与 行人检测 的区别

如果说, “行人检测” 技术是检测图像中是否存在行人,那么“行人重识别” 技术就是检索出跨摄像设备拍摄的特定人员的所有图像。

简单说,“行人重识别” 技术通过给出特定人的一张图片(query/probe, 待查询行人),从多张图片(gallery, 候选行人库)中检索到属于 Ta 的一张或多张图片,是通过行人整体特征实现的人员比对技术。

从技术实现的角度行人重识别的基本流程大致分为:行人检测、行人检索 两个步骤,是基于行人检测 基础上的进一步应用。

应用目的方面的区别:

  • “行人重识别” :识别特定行人是否曾经出现在其他的摄像设备拍摄的图像中,即需要将特定行人特征与其他行人特征进行对比,判断是否属于同一行人。
  • “行人检测” :检测图像或视频中是否存在行人,即并不需要判断特定行人特征与其他行人特征是否属于同一行人。

应用领域方面的区别:

  • “行人重识别” :主要应用于刑侦工作、图像检索、智能安保等方面。
  • “行人检测” :主要用于智能驾驶、辅助驾驶等相关领域。

3.3 行人重识别的方法

由于不同摄像设备分辨率、色差、架设角度、高度之间的差异,行人外观易受肤色、衣着、遮挡、姿态和视角等因素影响,使得行人重识别成为计算机视觉领域中一个既具有研究价值同时又极具挑战性的热门课题。在早期的行人重识别技术主要运用纹理、颜色、边缘、形状和显著区域等人工设计的特征与度量准则在小规模数据集上展开。行人重识别的方法大致可以从以下两个角度进行分类:

从特征提取方法的角度,可以分为:

  • 基于手工特征提取
  • 基于深度学习特征提取

从研究对象的角度,可以分为:

  • 基于图像
  • 基于视频序列

这两种分类方法并不是完全独立的,这些方法的研究相互穿插,基于图像的行人重识别方法研究中特征提取也是利用手工或深度学习方法,基于视频序列的行人重识别研究亦是如此。

行人重识别常用的方法大致包含以下几种:

  • 基于表征学习
  • 基于度量学习
  • 基于局部特征
  • 基于视频序列

3.3.1 基于表征学习

基于表征学习(Representation learning)的方法是常用的行人重识别方法。这主要得益于深度学习,尤其是卷积神经网络(Convolutional neural network, CNN)的快速发展。由于CNN可以自动从原始的图像数据中根据任务需求自动提取出表征特征(Representation),所以有些研究者把行人重识别问题看做分类(
Classification/Identification)问题,分类问题是指利用行人的ID或者属性等作为训练标签来训练模型。在这些工作中,它们额外基于基于纹理、颜色、边缘等显著区域标注了行人图片的属性特征,例如性别、头发、衣着等属性。通过引入行人属性标签,模型不但要准确地预测出行人ID,还要预测出各项正确的行人属性,这大大增加了模型的泛化能力。

下图是其中一个示例,从图中可以看出,网络输出的特征不仅用于预测行人的ID 信息,还用于预测各项行人属性。通过结合ID损失和属性损失能够提高网络的泛化能力。

目标检测、识别算法在不同应用场景下的常用评估指标介绍(一)

基于表征学习的方法鲁棒性高,训练比较稳定,结果也容易复现。如今仍有大量工作是基于表征学习开展的,表征学习也成为了行人重识别领域的一个非常重要的基准。

3.3.2 基于度量学习

度量学习(Metric learning)是广泛用于图像检索领域的一种方法。不同于表征学习,度量学习旨在通过网络学习出两张图片的相似度。在行人重识别问题上,可以理解为同一行人的不同图片相似度大于不同行人的不同图片。最后网络的损失函数使得相同行人图片(正样本对)的距离尽可能小,不同行人图片(负样本对)的距离尽可能大。常用的度量学习损失方法有对比损失(Contrastive loss)、三元组损失(Triplet loss)、 四元组损失(Quadruplet loss)、难样本采样三元组损失(Triplet hard loss with batch hard mining, TriHard loss)、边界挖掘损失(Margin sample mining loss, MSML)。

例如,三元组损失(Triplet loss) 是一种被广泛应用的度量学习损失,之后的大量度量学习方法也是基于三元组损失演变而来。顾名思义,三元组损失需要三张输入图片。和对比损失不同,一个输入的三元组(Triplet)包括一对正样本对和一对负样本对。三张图片分别命名为固定图片(Anchor)a,正样本图片(Positive)p 和负样本图片(Negative)n 。图片a 和图片p 为一对正样本对,图片 a 和图片 n 为一对负样本对。则三元组损失表示为:

目标检测、识别算法在不同应用场景下的常用评估指标介绍(一)

如下图,三元组可以拉近正样本对之间的距离,推开负样本对之间的距离,最后使得相同ID的行人图片在特征空间里形成聚类,达到行人重识别的目的。

目标检测、识别算法在不同应用场景下的常用评估指标介绍(一)

3.3.3 基于局部特征

早期的行人重识别研究大家还主要关注点在全局的global feature上,就是用整图得到一个特征向量进行图像检索。但是后来大家逐渐发现全局特征遇到了瓶颈,于是开始渐渐研究起局部的local feature。常用的提取局部特征的思路主要有图像切块、利用骨架关键点定位以及姿态矫正等等。而是直接利用这些关键点来抠出感兴趣区域(Region of interest, ROI)。

例如,Spindle Net 利用了14个人体关键点来提取局部特征。Spindle Net网络如下图所示,首先通过骨架关键点提取的网络提取14个人体关键点,之后利用这些关键点提取7个人体结构ROI——头、上身、下身和四肢小区域。

目标检测、识别算法在不同应用场景下的常用评估指标介绍(一)

3.3.4 基于视频序列

目前单帧的行人重识别研究还是主流,但是通常单帧图像的信息是有限的,基于视频序列的方法不仅考虑了图像的内容信息,还考虑了帧与帧之间的运动信息等。

目标检测、识别算法在不同应用场景下的常用评估指标介绍(一)

基于单帧图像的方法主要思想是利用CNN来提取图像的空间特征,而基于视频序列的方法主要思想是利用CNN 来提取空间特征的同时利用递归循环网络(Recurrent neural networks, RNN) 来提取时序特征。上图是非常典型的思路,网络输入为图像序列。每张图像都经过一个共享的CNN提取出图像空间内容特征,之后这些特征向量被输入到一个RNN网络去提取最终的特征。最终的特征融合了单帧图像的内容特征和帧与帧之间的运动特征。而这个特征用于代替前面单帧方法的图像特征来训练网络。

融合了运动信息的序列图像特征能够提高行人重识别的准确度。同时,当单帧图像遇到遮挡等情况的时候,可以用多帧的其他信息来弥补,直接诱导网络去对图片进行一个质量判断,降低质量差的帧的重要度。


预告:目标检测、识别算法在不同应用场景下的常用评估指标介绍(二)

  1. 从二分类的角度,介绍人脸检测与识别相关模型评估指标
  2. 从多分类&多标签分类的角度,介绍人脸识别相关模型评估指标

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/176746.html

(0)
上一篇 2025-04-20 07:20
下一篇 2025-04-20 07:26

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信