![4e531ddc790e528989bbb50cc2356d84.png](https://i-blog.csdnimg.cn/blog_migrate/767f99ff72887072b70aef7e455a2fc1.jpeg)
欢迎大家关注微信公众号:baihuaML,白话机器学习。
码字不易,如转载请私信我!!
![98481e436a0b3b38a8f7e9f4bac3cc93.png](https://i-blog.csdnimg.cn/blog_migrate/f71b192c25549dbd5391dd9f624f6194.jpeg)
在这里,我们一起分享AI的故事。
您可以在后台留言,关于机器学习、深度学习的问题,我们会选择其中的优质问题进行回答!
》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》==========================
安装dlib
pip install dlib
下载训练模型
训练模型用于是人脸识别的关键,用于查找图片的关键点。
下载地址:http://dlib.net/files/
下载文件:shape_predictor_68_face_landmarks.dat.bz2
直接上代码---人脸检测
# -*- coding: utf-8 -*-
import sys
import dlib
import cv2
detector = dlib.get_frontal_face_detector() #获取人脸分类器
# 传入的命令行参数
for f in sys.argv[1:]:
# opencv 读取图片,并显示
img = cv2.imread(f, cv2.IMREAD_COLOR)
# 摘自官方文档:
# image is a numpy ndarray containing either an 8bit grayscale or RGB image.
# opencv读入的图片默认是bgr格式,我们需要将其转换为rgb格式;都是numpy的ndarray类。
b, g, r = cv2.split(img) # 分离三个颜色通道
img2 = cv2.merge([r, g, b]) # 融合三个颜色通道生成新图片
dets = detector(img, 1) #使用detector进行人脸检测 dets为返回的结果
print("Number of faces detected: {}".format(len(dets))) # 打印识别到的人脸个数
# enumerate是一个Python的内置方法,用于遍历索引
# index是序号;face是dets中取出的dlib.rectangle类的对象,包含了人脸的区域等信息
# left()、top()、right()、bottom()都是dlib.rectangle类的方法,对应矩形四条边的位置
for index, face in enumerate(dets):
print('face {}; left {}; top {}; right {}; bottom {}'.format(index, face.left(), face.top(), face.right(), face.bottom()))
# 在图片中标注人脸,并显示
left = face.left()
top = face.top()
right = face.right()
bottom = face.bottom()
cv2.rectangle(img, (left, top), (right, bottom), (0, 255, 0), 3)
cv2.namedWindow(f, cv2.WINDOW_AUTOSIZE)
cv2.imshow(f, img)
# 等待按键,随后退出,销毁窗口
k = cv2.waitKey(0)
cv2.destroyAllWindows()
---------------------
作者:hongbin_xu
来源:CSDN
原文:https://blog.csdn.net/hongbin_xu/article/details/78347484
版权声明:本文为博主原创文章,转载请附上博文链接!
效果图:
![4d151ed3804f2a9121f05070bffda122.png](https://i-blog.csdnimg.cn/blog_migrate/acc46ad86175fa7c4b69db4c43084e33.jpeg)
直接上代码---关键点定位
#coding=utf-8
import cv2
import dlib
path = "img/meinv.png"
img = cv2.imread(path)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
#人脸分类器
detector = dlib.get_frontal_face_detector()
# 获取人脸检测器
predictor = dlib.shape_predictor(
"C:Python36Libsite-packagesdlib-datashape_predictor_68_face_landmarks.dat"
)
dets = detector(gray, 1)
for face in dets:
shape = predictor(img, face) # 寻找人脸的68个标定点
# 遍历所有点,打印出其坐标,并圈出来
for pt in shape.parts():
pt_pos = (pt.x, pt.y)
cv2.circle(img, pt_pos, 2, (0, 255, 0), 1)
cv2.imshow("image", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
代码转自:https://yq.aliyun.com/articles/629871
效果图
![95b5bb32797130fc2e57220821be5d3f.png](https://i-blog.csdnimg.cn/blog_migrate/b1c01ac0465f369e2fee33b08be7cec9.jpeg)
最新春招袭来!
一大波实习,招聘机会也陆续出现!为了大家能够更好地交流。我们也拉了几个算法面试群,感兴趣的小伙伴可以加我微信,欢迎入群~注明:面试群。另外,我们也有算法群,欢迎各位加入,注明:算法群!扫码加下面微信好友!特别提醒:不要骚扰小姐姐~~
![efe465feced5aeb3c114314737141f64.png](https://i-blog.csdnimg.cn/blog_migrate/9698d09bfe00a95d69e0926f234eea2a.jpeg)
欢迎加入深度学习、机器学习技术研讨群!
745224003
![6905cd4e90510d4809e74c8608bc0b50.png](https://i-blog.csdnimg.cn/blog_migrate/cf19bb1a7c1e5403fcab68f77a6013f9.jpeg)
欢迎关注我们的微信公众号:baihuaML,白话机器学习
![9508008d3ccc8ecd53821cad7f8b6327.png](https://i-blog.csdnimg.cn/blog_migrate/01e4354672f9f830870fcf9126e2e679.jpeg)
关注知乎“会写代码的好厨师”
![ab0f5535d2a791e0ff61a461bf5818f6.png](https://i-blog.csdnimg.cn/blog_migrate/97e24cf24545ffbdfdfbd9cf753cb450.jpeg)