此实现是在Windows环境下,Python2.7,以及利用opencv实现的。在用ubuntu 16.04实现时,出现了opencv不能打开摄像头的问题,希望有了解这个问题的可以沟通一下。

Dlib库的官方介绍,第一次见到dlib感觉像发现了新大陆!

Dlib is a modern C++ toolkit containing machine learning algorithms and tools for creating complex software in C++ to solve real world problems.

具体代码如下:

# coding=utf-8
import cv2
import dlib# landmark  dat
predictor_path = "shape_predictor_68_face_landmarks.dat"# 初始化landmark
predictor = dlib.shape_predictor(predictor_path)# 初始化dlib人脸检测器
detector = dlib.get_frontal_face_detector()# 初始化显示窗口
win = dlib.image_window()# opencv加载视频文件
#cap = cv2.VideoCapture('/home/ljx/ImageDatabase/WaterBar.mp4')
cap = cv2.VideoCapture(0)
if cap.isOpened():print "Unable to connect to camera !"

shape_predictor_68_face_landmarks.dat 是一个预处理后的数据文件,可用wget命令下载。
特征点的标定主要参考了论文

Kazemi V, Sullivan J. One millisecond face alignment with an ensemble of regression trees[C]//Computer Vision and Pattern Recognition (CVPR), 2014 IEEE Conference on. IEEE, 2014: 1867-1874

使用opencv读取摄像头时,一定要检查是否读到摄像头图像数据,一般,摄像头打开比较慢的话会读不到图像而报错。

接下来循环检测人脸以及特征点并显示在图像上,使用的都是dlib中的函数以及类。

while cap.isOpened():ret, cv_img = cap.read()if cv_img is None:break# RGB TO BGRimg = cv2.cvtColor(cv_img, cv2.COLOR_RGB2BGR)dets = detector(img, 0)print("Number of faces detected: {}".format(len(dets)))shapes = []for i, d in enumerate(dets):print("Detection {}: Left: {} Top: {} Right: {} Bottom: {}".format(i, d.left(), d.top(), d.right(), d.bottom()))shape = predictor(img, d)shapes.append(shape)# Draw the face landmarks on the screen.win.clear_overlay()win.set_image(img)if len(shapes)!= 0 :for i in range(len(shapes)):win.add_overlay(shapes[i])win.add_overlay(dets)
cap.release()

opencv读取的图像一般为RGB格式的,而我们需要将其转换为BGR格式才能用dlib进行处理,dlib默认处理的图像格式是BGR格式。
shapes为列表,包含了所有的图像中出现的正脸的所有监测点。
对具体的Python API细节参考dilb官网。

参考:
1. 结合dlib与OpenCV的视频流人脸检测
2. Dlib提取人脸特征点(68点,opencv画图)

利用dlib库(Python)实现实时(摄像头)人脸检测以及特征点标定(landmark))相关推荐

  1. 【Python3-OpenCV】实现实时摄像头人脸检测

    OpenCV 是一个C++库,目前流行的计算机视觉编程库,用于实时处理计算机视觉方面的问题,它涵盖了很多计算机视觉领域的模块.在Python中常使用OpenCV库实现图像处理. 本文将介绍如何在Pyt ...

  2. Dlib库中实现正脸人脸检测的测试代码

    Dlib库中提供了正脸人脸检测的接口,这里参考dlib/examples/face_detection_ex.cpp中的代码,通过调用Dlib中的接口,实现正脸人脸检测的测试代码,测试代码如下: #i ...

  3. python 摄像头标定_python 3利用Dlib 19.7实现摄像头人脸检测特征点标定

    Python 3 利用 Dlib 19.7 实现摄像头人脸检测特征点标定 0.引言 利用python开发,借助Dlib库捕获摄像头中的人脸,进行实时特征点标定: 图1 工程效果示例(gif) 图2 工 ...

  4. 【Dlib】人脸检测、特征点检测、人脸对齐、人脸识别

    本文是利用dlib库,进行人脸检测.特征点检测.人脸对齐.所有前提是假设已经安装了dlib. 参考链接: 1.http://developer.51cto.com/art/201801/564529. ...

  5. 基于OpenCV的摄像头人脸检测

    一.选题背景 二.设计目的和意义 三.设计方案 四.特征分类器的选择 4.1 常用人脸检测的特征分类器 4.2 人脸的Haar特征分类器介绍 4.3 人脸的Haar特征分类器使用 五.设计中主要函数介 ...

  6. 【优秀课设】基于OpenCV-Python的摄像头人脸检测追踪控制系统

    基于OpenCV-Python的摄像头人脸检测追踪控制系统 资源: download.csdn.net/download/weixin_53403301/25496828 采用OpenCV-Pytho ...

  7. python+opencv 实现图像人脸检测及视频中的人脸检测

    执着于理想,纯粹于当下. 文章目录 一.数据和知识准备 1. 下载HAAR与LBP数据 2. opencv相关知识 二.python+opencv实现人脸检测 1. 图像单人脸检测 2. 图像多人脸检 ...

  8. 利用pcl库实现简单单帧障碍物检测

    利用pcl库实现简单单帧障碍物检测 #include <iostream> #include <pcl/common/common_headers.h> #include &l ...

  9. 摄像头人脸检测的树莓派指纹识别系统

    摄像头人脸检测的树莓派指纹识别系统 前言:此项目主要用了摄像头.指纹识别.继电器.Led模块等设备.用于实现智能门锁功能,即摄像头检测到人来之后,打开继电器给指纹模块供电,led显示文字. 代码: i ...

  10. python基于opencv的人脸检测(有最详细的注释)摄像头实时检测人脸

    主要实现功能: 通过opencv的模块的内置的方法打开电脑摄像头,读取每一帧数据进行分析.通过界面的方式在界面里实时更新摄像头视频并且标记出人脸. 效果图: 代码: 这部分代码可以用来检测opencv ...

最新文章

  1. 程序员都痛恨开会?多开 1 个会,我少写 1000 行代码......
  2. codeforces700B
  3. 大佬都在用的桑基图到底怎么做?告诉你个最简单的方法
  4. java集合框架05——ArrayList和LinkedList的区别
  5. jvm类加载过程_详解JVM类加载
  6. 改变图像的对比度和亮度
  7. Opencv椭圆拟合
  8. 计算机科学与导论教案,计算机科学导论电子教案.ppt
  9. 软件项目计划书的内容
  10. angular烂笔头
  11. Mac_IOS_报:The Xcode build system has crashed. Please close and reopen your workspace.
  12. 什么是区块链(超详细)
  13. C语言 计算学生各科成绩平均分的总和
  14. 打开 CMD 的方式+常用的Dos命令
  15. 九、redis的删除机制
  16. nginx报错找不到指定路径
  17. 模型量化论文阅读#1----综述:A Survey of Quantization Methods for Efficient Neural Network Inference
  18. 无法打开包括文件: “opencv2/opencv_modules.hpp”
  19. SpringCloud之Gateway
  20. kali更新源--并下载签名

热门文章

  1. Nginx安装与常用配置
  2. js中多行字符串拼接
  3. 分立元件封装尺寸及PCB板材工艺与设计实例
  4. 如何获取ezui tree 所有子节点
  5. 用有道ip地址查询接口的详细方法
  6. Win10使用tensorflow出现ImportError: DLL load failed: 动态链接库(DLL)初始化例程失败
  7. Excel写入与保存openpyxl
  8. Word文档编辑技巧(一)
  9. NLP标注神器:可同时对文本类型与实体类型进行标注(动图演示)
  10. TreeLSTM Sentiment Classification