如何将AI能力与大数据技术结合,助力数据分析治理等工作的效率大幅提升,优化大数据引擎的性能及成本? 了解详情
写点什么

面部识别算法是如何工作的?

  • 2021-09-30
  • 本文字数:2244 字

    阅读完需:约 7 分钟

面部识别算法是如何工作的?

过去十年,深度学习领域出现了许多先进的新算法和突破性的研究,并且引入了新的计算机视觉算法。


这一切始于 2012 年的 AlexNet。AlexNet 是一个深度(卷积)神经网络,它在 ImageNet 数据集(拥有超过 1400 万张图片的数据集)上取得了很高的准确率。

人类是如何识别人脸的?


也许,人类大脑中的神经元首先识别场景中的人脸(从人的体形和背景),然后提取面部特征,并通过这些特征对人进行分类。我们已经在一个无限大的数据集和神经网络上进行了训练。


机器中的面部识别是以同样的方式实现的。首先,我们采用面部检测算法来检测场景中的人脸,然后从检测到的人脸中提取面部特征,最后使用算法对人进行分类。


面部识别系统的工作流

1. 人脸检测


人脸检测是物体检测的一个特化版本,特别之处在于,它只检测一种物体,即人脸。就像计算机科学里需要权衡时间和空间,机器学习算法也需要在推理速度和准确性之间进行权衡。现在有很多物体检测算法,不同算法对速度和准确性的取舍有所不同。


本文评估了如下几个最先进的物体检测算法:


  • OpenCV(Haar-Cascade)

  • MTCNN

  • YoloV3 和 Yolo-Tiny

  • SSD

  • BlazeFace

  • ShuffleNet 和 Faceboxes


为了构建一个强大的人脸检测系统,我们需要准确且快速的算法,以满足在 GPU 以及移动设备上实时运行的需要。

准确度


在流媒体视频的实时推理中,人们的面部可能有不同的姿势、遮挡和照明效果。因此,算法能在不同的光照条件和不同姿态下精确检测人脸非常重要。



在不同的姿态和光照条件下的人脸检测

OpenCV(Haar-ascade)


我们从 OpenCV 的 Haar-cascade 实现开始,它是一个用 C 语言编写的开源图像处理库。


优点:由于这个库是用 C 语言编写的,所以它在实时系统中的推理速度非常快。

缺点:这个实现的问题是它无法检测侧脸,而且在不同姿态和光照条件下表现欠佳。

MTCNN


这种算法基于深度学习方法。它使用深度级联卷积神经网络(Deep Cascaded Convolutional Neural Networks)来检测人脸。


优点:它比 OpenCV 的 Haar-Cascade 方法准确性更高

缺点:运行时间较长。

YOLOV3


YOLO(“You only  look  once”)是用于物体检测的最先进的深度学习算法。它由许多卷积神经网络组成,形成一个深度 CNN 模型(深度意味着模型架构复杂性很高)。


原始的 YOLO 模型可以检测 80 个不同的物体类别,而且检测精度很高,而我们只需要用该模型检测一个物体——人脸。我们在 WiderFace(包含 393,703 个面部标签的图像数据集)数据集上训练了这个算法。


YOLO 算法还有一个微型版本,即 Yolo-Tiny。Yolo-Tiny 需要的计算时间比较少,但却牺牲了一些准确性。我们用相同的数据集训练了一个 Yolo-Tiny 模型,其边界框(boundary box)结果并不一致。


优点:非常准确,没有任何缺陷。比 MTCNN 更快。

缺点:由于具有巨大的深度神经网络层,它需要的计算资源更多。因此,该算法在 CPU 或移动设备上运行地很慢。在 GPU 上,它的大型架构也需要耗费更多的 VRAM。

SSD


SSD(Single Shot Detector)也是一个类似 YOLO 的深度卷积神经网络模型。


优点:良好的准确性。它可以检测各种姿势、光照和遮挡。良好的推理速度。

缺点:比 YOLO 模型差。虽然推理速度较好,但仍不能满足在 CPU、低端 GPU 或移动设备上运行的要求。

BlazeFace


就像它的名字一样,它是由谷歌发布的速度极快的人脸检测算法。它接受 128x128 维的图像输入,推理时间是亚毫秒级,已优化到可以在手机中使用。它速度这么快的原因是:


  • YOLO 和 SSD 用来检测大量的类别,而 BlazeFace 不同,是一个专门的人脸检测器模型。因此 BlazeFace 的深度卷积神经网络架构比 YOLO 和 SSD 的架构小。

  • 它采用的是深度可分离卷积层(Depthwise Separable Convolution),而不是标准的卷积层,这样就降低了计算量。


优点:非常好的推理速度,且人脸检测的准确率高。

缺点:这个模型的优化目标是对手机摄像头获取的图像进行人脸检测,因此它预期人脸会覆盖图像中的大部分区域,而当人脸尺寸较小时,它的识别效果就是很好。所以,当对闭路电视摄像机获取的(CCTV ,Closed Circuit Tele Vision)图像进行人脸检测时,它表现得并不理想。

Faceboxes


Faceboxes 是我们使用的最新的人脸检测算法。与 BlazeFace 类似,它是一个小型的深度卷积神经网络,只为检测一种类别——人脸而设计。它的推理时间可满足 CPU 上的实时检测需求。它的准确度可以与 Yolo 人脸检测算法相媲美,而且,不管图像中的人脸较大还是较小,它都可以精确地检测。


优点:推理速度快,准确性好。

缺点:评估仍在进行中。

2.特征提取


在检测到图像中的人脸后,我们对人脸进行裁剪,并将其送入特征提取算法,该算法创建面部嵌入(face-embeddings)——一个代表人脸特征的多维(主要是 128 或 512 维)向量。我们使用 FaceNet 算法来创建面部嵌入。


嵌入向量代表一个人的面部特征。因此,同一个人的两个不同图像的嵌入向量之间的距离比较接近,而不同人的嵌入向量之间的距离比较远。其中,两个向量之间的距离采用的是欧氏距离。

3. 面部分类


在得到面部嵌入向量后,我们训练了一种分类算法,即 K-近邻(K-nearest neighbor,KNN)算法,根据一个人的嵌入向量对其进行分类。


假设在一个组织中,有 1000 名员工。我们创建了所有员工的面部嵌入,并使用嵌入向量训练分类算法。该算法以面部嵌入向量作为输入,以人的名字作为输出返回。


在把图片放到网上前,用户可以采用过滤器修改图片中的特定像素。人眼无法察觉这些变化,但它会让面部识别算法觉得很困惑。 —— ThalesGroup


当前,面部识别算法已经取得了巨大的进步。但这仅仅是技术革命的开始。可以想象一下,未来面部识别算法和聊天机器人技术的联合起来是多么强大。


英文原文:

https://www.pimonk.com/post/how-do-facial-recognition-systems-algorithms-work-in-2021

2021-09-30 10:281727

评论

发布
暂无评论
发现更多内容

免费开源看板软件Wekan安装与使用记录

emuqi

Docker 效率工具 wekan 看板 任务管理

Android |《看完不忘系列》之Retrofit

哈利迪

android

STM32-ADC简单学习笔记

 

用python给女朋友做一个歌曲词云图

我是程序员小贱

Python中的bytes、str以及unicode区别

王坤祥

Python Python PEP

Week 11命题作业

Jeremy

随手记

InfoQ_0d79a8bcf933

数据结构与算法

CentOS7 开启3306端口

暴躁小李K

Centos 7 Firewalld防火墙 Liunx

架构设计篇之云计算服务设计与决策

小诚信驿站

云计算 刘晓成 企业架构和云服务 SaaS/IaaS/PaaS

对于结果不同程度的追求,决定了这个人的身价

非著名程序员

程序员 个人成长 思维模型 结果思维

如何通过技术面试?

escray

学习 面试

企业品尝新基建的美酒前,需要名为NetEngine 8000的酒杯

脑极体

数据库快速迁移10亿级数据

架构师修行之路

高并发系统设计 数据库优化

简单交互式页面的思考(C)

Alex

指针 C语言 交互设计

区块链在新冠病毒爆发中将加速发展

CECBC

区块链技术 供应链 食品追溯

四十不惑,准备面试

escray

学习 面试

兄弟,不要偷看人家摄像头

我是程序员小贱

公司想要大龄程序员么?

escray

学习 面试

辗转相除法求最大公约数(C语言实现)

InfoQ_3f366696ed0c

C语言

Apache Pulsar 社区周报:08-08 ~ 08-14

Apache Pulsar

Apache Apache Pulsar 消息系统

搞一搞Elasticsearch

北漂码农有话说

特性预览:Apache 顶级项目 Apache Pulsar 2.6.1 版本即将发布

Apache Pulsar

Apache Apache Pulsar 消息系统

为什么考研,考研能给你带来什么?说说我的感受!

我是程序员小贱

Week 11 学习总结

Jeremy

Dell G7 指纹识别设备 - Goodix fingerprint 失效官方解决办法(图文)

Saint_X

硬件

局域网文件共享

冰糖雪梨多冰少糖

局域网共享 iPad air3 文件传输

全站加速在互联网媒体应用上的最佳实践

阿里云Edge Plus

CDN

firewalld 常用指令

wong

Firewalld

DB-Engines 8 月数据库排名:Redis悄悄拔高,猛超Elasticsearch

华章IT

MySQL 数据库 redis Clickhouse SQL优化

小白程序员成长之路-准备篇

Mr.Cactus

盲打练习 在线打字

区块链政策区域特征分明 产业园区渐成聚集效应

CECBC

区块链 新基建

面部识别算法是如何工作的?_文化 & 方法_Aniket Maurya_InfoQ精选文章