OpenCV 活体检测
本文来自著名的计算机视觉教学网站「pyimagesearch」,文章作者为 Adrian Rosebrock。在本文中,Adrian 将就「如何鉴别图像/视频中的真实人脸和伪造人脸」这一问题进行深入的分析,并介绍使用基于 OpenCV 的模型进行活体检测的具体方法。雷锋网 AI 科技评论编译如下。雷锋网 本教程将教授你如何使用 OpenCV 进行活性检测。通过学习,你将能够在人脸识别系统中创建一个可以发现伪造人脸并执行反人脸欺骗的活体检测器。 在过去一年中,本文作者已经写过了多篇人脸识别教程,包括: 基于 OpenCV 的人脸识别(阅读地址:https://www.pyimagesearch.com/2018/09/24/opencv-face-recognition/) 使用 dlib、Python 和深度学习进行人脸识别(阅读地址:https://www.pyimagesearch.com/2018/06/18/face-recognition-with-opencv-python-and-deep-learning/) 基于树莓派的人脸识别(阅读地址:https://www.pyimagesearch.com/2018/06/25/raspberry-pi-face-recognition/) 然而,在我收到的一些邮件以及这些关于人脸识别的博文的评论中,我经常被问到的一个问题是: 我如何才能区分真人脸和伪造人脸? 试想一下,如果一个居心叵测的用户有目的地试图骗过你的人脸识别系统,会发生什么? 他们可能会尝试向执行人脸识别的摄像头展示一张照片或一段视频(例如在本文顶部的图像)。而这张照片和视频中的人并不是这些用户本人。 在这种情况下,人脸识别系统完全有可能把展示到它们面前的图片识别为正确的人脸,这最终会导致未授权的用户躲过人脸识别系统! 如何才能区分出这些「伪造的」与「真实的/合法的」人脸呢? 如何才能将反人脸欺骗算法应用到你的人脸识别应用中呢? 答案是使用 OpenCV 进行活体检测,这正是本文要讨论的内容。 那么,如何将基于 OpenCV 的活体检测功能结合到你自己的人脸识别系统中呢?本文接下来将给出答案。 基于 OpenCV 的活体检测 在本教程的第一部分,我们将对活体检测进行讨论,包括「活体检测是什么?」以及「为什么我们需要活体检测来改进人脸识别系统?」 在这里,我们首先回顾一下接下来将用来进行活体检测的数据集,内容包括: 如何构建用于活体检测的数据集 我们的真假人脸的图像示例 我们还将回顾针对活体检测器项目的项目结构。 我们将训练一个能够区分真人脸和伪造人脸的深度神经网络,来创建活体检测器。 因此,我们需要: 1. 构建图像数据集 2. 实现一个能够进行活体检测的卷积神经网络(我们称之为「LivenessNet」) 3. 训练活体检测网络 4. 创建一个能够使用我们训练好的活体检测模型并将其应用于实时视频的 Python+OpenCV 的脚本 接下来,让我们进入正题吧! 什么是活体检测, 我们为什么需要它? …
