今天,我们将学习如何检测图像中的人脸并提取面部特征,如眼睛、鼻子、嘴巴等。我们可以将这些信息作为一个预处理步骤来完成,例如捕捉照片中人物的人脸(手动或通过机器学习),创建效果来“增强”我们的图像(类似于Snapchat等应用程序中的效果),对人脸进行情感分析等等。今天我们将通过引入DLib和从图像中提取面部特征来将其提升到一个新的水平。相关阅读:https://towardsdatascience.com/essential-opencv-functions-to-get-you-started-into-computer-vision-743df932e60Dlib是一个高级的机器学习库,它是为解决复杂的现实世界问题而创建的。这个库是用C++编程语言创建的,它与C/C++、Python和java一起工作。Dlib:http://dlib.net/值得注意的是,本教程可能需要对OpenCV库有一定的了解,例如如何处理图像、打开相机、图像处理和一些小技巧。它是如何工作的?我们的脸有几个可以识别的特征,比如眼睛、嘴巴、鼻子等等。当我们使用DLib算法检测这些特征时,我们实际上得到了每个特征点的映射。该映射由67个点(称为地标点)组成,可识别以下特征:
颚点= 0–16右眉点= 17–21左眉点= 22–26鼻点= 27–35右眼点= 36–41左眼点= 42–47口角= 48–60嘴唇分数= 61–67现在让我们来了解如何提取特征。安装要求与往常一样,本文将用代码演示示例,并将逐步指导你实现一个完整的人脸特征识别示例。但是在开始之前,你需要启动一个新的Python项目并安装3个不同的库:opencv pythondlib如果像我一样使用pipenv,可以使用以下命令安装所有这些文件:pipenv install opencv-python, dlib如果你使用的是Mac和某些版本的Linux,则在安装dlib时可能会遇到一些问题,如果遇到的是编译错误,请检查使用的CMake库版本。在Mac中,确保你有可用的CMake,并且使用正确的版本运行:brew install cmake对于其他操作系统,请在线检查以获得特定支持。步骤1:载入并显示图片我们将从小处着手并以代码为基础,直到有一个可以正常工作的示例为止。通常,我喜欢使用绘图来渲染图像,但是由于我们在之后的文章中准备了一些很酷的东西,因此我们将做一些不同的事情,并且将创建一个窗口来展示我们的工作结果。让我们一起看看代码吧!import cv2# read the imageimg = cv2.imread("face.jpg")# show the imagecv2.imshow(winname="Face", mat=img)# Wait for a key p