“Dlib是一个现代C++工具包,包含用于创建复杂软件的机器学习算法和工具”。它使您能够直接在Python中运行许多任务,其中一个例子是人脸检测。安装dlib并不像执行“pipinstalldlib”那么简单,因为要正确配置和编译dlib,您首先需要安装其他系统依赖项。如果您按照此处描述的步骤操作,应该很容易启动并运行dlib。(在本文中,我将向您展示如何在Mac上安装dlib,但如果您使用的是Ubuntu,请务必查看相关资源部分中的链接。)您唯一需要确定的是你已经安装并更新了Hombrew。如果您需要安装它,请将其粘贴到终端中:$/usr/bin/ruby-e"$(curl-fsSLhttps://raw.githubusercontent.com/Homebrew/install/master/install)"或者,如果您需要更新Hombrew,输入以下内容:$brewupdate您现在可以使用Homebrew安装CMake、Boost.Python以及在您的系统上正确配置和编译dlib所需的两个依赖项:$brewinstallcmake$brewinstallboost-python***,您需要手动下载并安装XQuartz。您现在已准备好安装dlib。为此,我们将首先为此项目创建一个隔离的虚拟环境。我将使用virtualenv,但您可以使用您熟悉的任何虚拟环境工具,包括Python的venv模块。需要scikit-image库来读取我们稍后传递给dlib的图像文件,因此我们还需要pipinstall它:$virtualenvvenv_dlib$sourcevenv_dlib/bin/activate$pipinstallscikit-image$pipinstalldlib这样,您应该可以使用dlib。DlibDlib提供了不同的人脸检测算法。我将在这里使用的是基于CNN的人脸检测器。您可以下载预训练模型:https://github.com/davisking/dlib-models。由于使用此模型的计算成本很高,***在GPU上执行以下代码。使用CPU也可以,但会更慢。要运行下面要点中的人脸检测代码,我建议首先在虚拟环境中再安装两个库。这些库将使与代码交互和可视化结果变得更加容易:.bz2)并将其安装存储在项目的根目录中创建一个名为“faces”的新目录,您可以在其中存储.jpg以及您希望检测的面孔。Withthis,youarefinallyreadytostartdetectingfacesinpictures!您可以通过在JupyterNotebook中运行以下代码来完成此操作importdlibimportmatplotlib.patchesaspatchesimportmatplotlib.pyplotaspltfrompathlibimportPathfromskimageimportio%matplotlibinline#Loadtrainedmodelcnn_face_detector=dlib.cnn_face_detection_model_v1('mmod_human_face_detector.dat')#Functiontodetectandshowfacesinimagesdefdetect_face_dlib(img_path,ax):#Readimageandrunalgorithmimg=io.imread(img_path)dets=cnn_face_detector(img,1)#Iftherewerefacesdetected,showthemiflen(dets)>0:fordindets:rect=patches.Rectangle((d.rect.left(),d.rect.top()),d.rect.width(),d.rect.height(),fill=False,color='b',lw='2')ax.add_patch(rect)ax.imshow(img)ax.set_title(str(img_path).split('/')[-1])#Pathtoimagesimages=list(Path('faces').glob('*.jpg'))#Showresultsfig=plt.figure(figsize=(15,5))fori,imginenumerate(images):ax=fig.add_subplot(1,len(images),i+1)detect_face_dlib(img,ax)结果运行代码后,您应该会看到蓝色方块出现在t中的面孔周围他的形象,如果你问我,考虑到我们只写了几行代码,这很好!
