首先安装Dlib,Opencv库

Dlib安装链接:http://www.cnblogs.com/as3asddd/p/7237280.html

环境:Mac Sierra 10.12.1 Python 2.7.1

设置特征检测器,dlib有已经训练的好的需要下载,也可以自己根据需要训练

下载链接:http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2

下载完之后解压,将路径送到dlib.shape_predictor()里面

import cv2
import dlib
detector = dlib.get_frontal_face_detector()
landmark_predictor = dlib.shape_predictor('/Users/apple/Downloads/shape_predictor_68_face_landmarks.dat')
img = cv2.imread('/Users/apple/Desktop/test.jpg')
faces = detector(img,1)
if (len(faces) > 0):
for k,d in enumerate(faces):
cv2.rectangle(img,(d.left(),d.top()),(d.right(),d.bottom()),(255,255,255))
shape = landmark_predictor(img,d)
for i in range(68):
cv2.circle(img, (shape.part(i).x, shape.part(i).y),5,(0,255,0), -1, 8)
cv2.putText(img,str(i),(shape.part(i).x,shape.part(i).y),cv2.FONT_HERSHEY_SIMPLEX,0.5,(255,2555,255))
cv2.imshow('Frame',img)
cv2.waitKey(0)

人脸68个特征点位置

{
IdxRange jaw; // [0 , 16]
IdxRange rightBrow; // [17, 21]
IdxRange leftBrow; // [22, 26]
IdxRange nose; // [27, 35]
IdxRange rightEye; // [36, 41]
IdxRange leftEye; // [42, 47]
IdxRange mouth; // [48, 59]
IdxRange mouth2; // [60, 67]
}

detector是dlib训练好的人脸检测器,是基于HOG特征的

shape = landmark_predictor(img,d)

我们想要的特征点全部保存在了shape里面,d是dlib.rectangle(),里面保存着人脸检测矩形的左上和右下坐标,shape.part(i)是第i个特征点

landmark_predictor也是dlib训练好的人脸特征检测器,是基于Ensemble of Regression Trees的,在CVPR2014的论文有过,单人脸的特征点检测速度极快,Dlib就是实现了这种算法的,想要研究一下的可以看一下,这里附上论文链接

最新文章

  1. 自动化运维工具ansible部署以及使用
  2. [资源] Resources on Self-Driving Car
  3. Java 使用对话框选择文件并输出到控制台
  4. 用 jQuery 实现表单验证(摘抄)
  5. WPF 之 未捕获异常的处理
  6. SQL学习备忘
  7. Python的高级特性之切片、迭代、列表生成式、生成器
  8. css3仿山猫侧边栏
  9. BeanFactory VS FactoryBean
  10. JavaScript的setter与getter方法
  11. Python集成开发环境
  12. 【JS】中ajax的URL中包含中文,后台接收乱码
  13. python专题 --- 递归
  14. B - Dropping tests
  15. sort、sorted高级排序-Python3.7 And 算法<七>
  16. Bootstrsp 表单
  17. Python图表绘制:matplotlib绘图库入门(转)
  18. 网络编程_TCP协议_客户端与服务端
  19. 英语学习/词典App分析-团队作业(五)
  20. 20145339 Exp5 MS11_050

热门文章

  1. 斑马打印机的安装调试,生成PDF
  2. 3.SDL落地方案
  3. SAP HUM 拆包之后的HU号码依旧存在
  4. Snapde电子表格编写Exprtk脚本进行数据运算
  5. 关于mysql的报错的1366
  6. RabbitMQ框架构建系列(一)——AMPQ协议
  7. ctrl+shift+r / ctrl+f5 强制(不使用缓存)刷新google chrome网页
  8. 好程序员web前端分享HTML基础篇
  9. bzoj4892 [TJOI2017]DNA
  10. 网站通信协议升级到HTTPS&HTTP2