备忘录
众所周知,face_recognition这个模块本是适配在Linux下面跑的。但是今天我们要让它在Windows上面发挥热量。
网上也有关于这个模块在Windows上面的安装教程,但是大部分都是复制粘贴,每个网站互相抄来抄去,大都雷同。基本都是要安装VS的工具、cmake等等,当然原项目的github上的Windows教程也是差不多这么写的。
这里我来讲一个很简单的方法,只需用pip就行!
首先,打开https://pypi.org/simple/dlib/,
看到页面上所有的whl文件。对,我们只需要whl文件。
然后呢,对着选吧。32位的系统就下载带有win32的,64位的就下载带amd64的。Python2.7的就下载带cp27的。Python3.6的就下载带cp36的。我无需多说,大家应该都知道。
下载下来,打开powershell(cmd亦可),像以前安装模块一样,输入pip install
,但是这次后面跟着的可不是模块名称,而是whl文件的名称,记得先切换到文件所在的目录,如果懒得输入,直接把文件拖到powershell或cmd里面就会自动键入文件的绝对路径。
切记,下载下来的whl文件请勿修改名称,否则安装的时候回出错!!!!!!
例如pip install dlib-19.8.1-cp36-cp36m-win_amd64.whl
你们现在应当安装成功了,如果失败了请重新回去看看,搞不明白可以来找我。
接下来家常便饭,直接pip install face_recognition
安装,你会发现不会出错了!
好,接下来让我们运行一下测试代码:
注意,这段测试代码需要再安装一个叫opencv的模块,尝试着自己去解决这个问题
import face_recognition
import cv2
# 读取图片并识别人脸
img = face_recognition.load_image_file("test.jpg")
face_locations = face_recognition.face_locations(img)
print (face_locations)
# 调用opencv函数显示图片
img = cv2.imread("test.jpg")
# 遍历每个人脸,并标注
faceNum = len(face_locations)
for i in range(0, faceNum):
top = face_locations[i][0]
right = face_locations[i][1]
bottom = face_locations[i][2]
left = face_locations[i][3]
start = (left, top)
end = (right, bottom)
color = (55,255,155)
thickness = 3
cv2.rectangle(img, start, end, color, thickness)
# 显示识别结果
cv2.namedWindow("Recognition")
cv2.imshow("Recognition", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
如你所见,我们需要一个叫做“test.jpg”的图片文件,它应当包含一个或多个人脸,并且不能过于模糊,总之不要太刁难它。
效果如下:
原图片是我最喜欢的美剧之一——破产姐妹 的剧照
我们应当可以清晰地看到两张人脸
接下来我们将图片下载下来,下载至与脚本同一目录下,然后交给程序操作
你应当得到和这个差不多的效果
控制台窗口显示的是两个人脸的坐标,而新打开的窗口则是框出了人脸位置
瞧,咱们将face_recognition模块成功地安装到了我们的Windows机器上,并且成功的运行了一个实例