上次老师讲了基于face_recognition的人脸识别,用到了dlib库,然后,就开始痛苦的安装之路。
安装dlib库之前需要先安装cmake,这个很简单,只有dlib不简单。。。
为了重现过程,我先把dlib卸了。
第一次,我尝试直接使用 pip install dlib -i https://pypi.tuna.tsinghua.edu.cn/simple,当然失败了,几乎我所知道的同学使用这个方法都失败了,但我们得到一个有效信息,就是找不到合适的版本。
第二次,我先查到自己的版本是3.6
决定下载离线安装包的相应版本dlib-19.6.0-cp36-cp36m-win_amd64.whl,找到文件路径直接在本地进行安装。这也成功安装了,就是在安装face_recognition出了问题,
face_recognition需要的是19.7版本的dlib,所以还得重新下载19.7版本,卸载旧的版本,进行本地安装。但是这个好麻烦,之后我忘了在哪里搜到一个方法,不用下载安装包,可以直接进行在线安装,只要在dlib后面加上版本号。
这就安装上了,是不是很简单。
之后安装face_recognition就很简单了。
接下来来个人脸识别的例子吧!
#一个师姐给的代码示例
import face_recognition
import cv2
#加载图像文件(.jpg,.png等),返回的数据是Numpy数组,记录了图片的所有像素的特征向量
image = face_recognition.load_image_file("sheep.jpg")
#定位图中所有的人脸的像素位置,返回值为列表形式,列表中每一行是一张人脸的位置信息,包括【top, right, bottom, left】这是一组元组。
face_locations_noCNN=face_recognition.face_locations(image)
# face_locations_useCNN =
face_recognition.face_locations(image,model='cnn')
# A list of tuples of found face locations in css (top, right, bottom,left) order
# 因为返回值的顺序是这样子的,因此在后面的for循环里面赋值要注意按这个顺序来
print("face_location_noCNN:")
print(face_locations_noCNN)
face_num2=len(face_locations_noCNN)
print(face_num2)
# The number of faces
# 到这里为止,可以观察两种情况的坐标和人脸数,一般来说,坐标会不一样,但是检测出来的人脸数应该是一样的# 也就是说face_num1=face_num2;face_locations_useCNN和face_locations_noCNN不一样
org = cv2.imread("sheep.jpg")
img = cv2.imread("sheep.jpg")
cv2.imshow("sheep.jpg",img)
# 原始图片
for i in range(0,face_num2):
top = face_locations_noCNN[i][0]
right = face_locations_noCNN[i][1]
bottom = face_locations_noCNN[i][2]
left = face_locations_noCNN[i][3]
start = (left, top)
end = (right, bottom)
color = (0,255,255)
thickness = 2
cv2.rectangle(org, start, end, color, thickness)
#参数:图片,⻓方形框左上⻆坐标, ⻓方形框右下⻆坐标,字体颜色,字体粗细)
cv2.imshow("no cnn ",org)
cv2.waitKey(0)
cv2.destroyAllWindows()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)