利用dlib进行人脸检测
一、dlib环境搭建
1)dlib安装,pip install dlib。参考:http://www.cnblogs.com/vipstone/p/8964656.html 。
2)训练模型下载;训练模型是人脸检测的关键,且能够查找人脸的关键点。下载地址:http://dlib.net/files/ ,下载文件为:shape_predictor_68_face_landmarks.dat.bz2,下载好后将其解压成dat文件以供使用。
二、图片人脸检测
1、技术实现思路
同OpenCV人脸检测,参考:https://mp.csdn.net/postedit/83018689
2、具体实现代码
#coding=utf-8
import cv2
import dlibpath = "meinv.jpg"
img = cv2.imread(path)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)#构建人脸检测器
detector = dlib.get_frontal_face_detector()
# 获取人脸关键点检测器
predictor = dlib.shape_predictor("shape_predictor_68_face_landmarks.dat")dets = detector(gray, 1) #人脸检测
for face in dets: #对检测到的矩形特征遍历(检测结果dets为矩形框的两个角点坐标,左上+右下)#将人脸检测矩形框绘制出来cv2.rectangle(img,(face.left(),face.top()),(face.right(),face.bottom()),(0,0,255),2)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()
三、视频人脸检测
1、技术实现思路
同OpenCV人脸检测,参考:https://mp.csdn.net/postedit/83018689
2、具体实现代码
def face_detect(img):gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)#构建人脸检测器detector = dlib.get_frontal_face_detector()dets = detector(gray, 1) #人脸检测for face in dets: #对检测到的矩形特征遍历(检测结果dets为矩形框的两个角点坐标,左上+右下)#将人脸检测矩形框绘制出来cv2.rectangle(img,(face.left(),face.top()),(face.right(),face.bottom()),(0,0,255),2)import cv2cap = cv2.VideoCapture(0)
while(1):ret,img = cap.read()face_detect(img)cv2.imshow("Image",img)if cv2.waitKey(1) & 0xff == ord('q'):break
cap.release()
cv2.destroyAllWindows()
四、dlib与OpenCV对比
在人脸检测方面,dlib和OpenCV相比有如下优缺点:
1)识别精确度:dlib >= OpenCV,即dlib模型识别的准确率和效果要好于OpenCV;
2)dlib更多的人脸识别模型,可以检测出脸部68甚至更多的特征点;
3)dlib比较好资源,实时性差,视频人脸检测时有明显卡顿,OpenCV检测效果很流畅。
利用dlib进行人脸检测相关推荐
- Python 3 利用 Dlib 实现人脸检测和剪切
0. 引言 利用 Python 开发,借助 Dlib 库进行人脸检测 / face detection 和剪切: 1. crop_faces_show.py : 将检测到的人脸剪切下来,依次排序平 ...
- python dlib人脸检测_Python 3 利用 Dlib 实现人脸检测和剪切
0. 引言 利用 Python 开发,借助 Dlib 库进行人脸检测 / face detection 和剪切: 将检测到的人脸剪切下来,依次排序平铺显示在新的图像上: 实现的效果如 图1 所示,将 ...
- C++ | 利用C++进行人脸检测,人脸识别,情绪识别
环境:win10,VS2022, 1.利用C++实现OpenCV和haarcascade人脸检测 1.1.下载一张有人脸的照片 1.2.下载haarcascade_frontalface_defaul ...
- dlib做人脸检测判断有没有检测到人脸
dlib做人脸检测判断有没有检测到人脸 文章目录: 一.人脸检测 二.判断有没有检测到人脸 其实我用dlib 检测人脸只是用来做个触发条件,但是我不知道怎么判断有没有检测到人,因为从返回值只知道是一个 ...
- 利用OpenCV实现人脸检测
如何在一副图片中检测到人脸,这涉及到计算机图形学中一些非常复杂的计算,如果这些计算都靠程序员自己来编程,那么工作量就相当大.OpenCV全称是Open Computer Vision,是指开放的计算机 ...
- python+opencv+dlib实现人脸检测与表情识别
python+opencv+dlib实现人脸检测与表情识别 一,dlib简单介绍:Dlib包含广泛的机器学习算法.所有的设计都是高度模块化的,快速执行,并且通过一个干净而现代的C ++ API,使用起 ...
- dlib实现人脸检测方法
文章目录 `dlib`概述 人脸检测 CPU版本人脸检测算法 检测步骤 示例代码: CUDA版本人脸检测算法 检测步骤 示例代码 类定义与接口源码 人脸检测中用到的重要的类(概述) `fhog_obj ...
- java dlib实现人脸检测_利用dlib库进行人脸检测
一.dlib的使用 dlib需要预先的安装 ①安装Python还是推荐3.5 ②下载dlib的安装包 https://pypi.python.org/pypi/dlib/18.17.100 选择匹配的 ...
- 【Dlib】人脸检测、特征点检测、人脸对齐、人脸识别
本文是利用dlib库,进行人脸检测.特征点检测.人脸对齐.所有前提是假设已经安装了dlib. 参考链接: 1.http://developer.51cto.com/art/201801/564529. ...
最新文章
- qt qgis linux,QGIS初识-Qt编译环境配置
- .net get set用法
- bzoj1874: [BeiJing2009 WinterCamp]取石子游戏
- python模块手册_python模块说明
- Python(39)_选出列表中的大于66的数字放在字典中
- Android 性能优化——绘制优化
- 实现主从关系Form中汇总行金额/数量
- zenmap 的扫描方式
- android 远程桌面连接闪退,远程桌面一点连接就闪退,不能弹出输入账号密码窗口...
- linux 下安装maven
- linux下sqlserver端口号,linux下连接sqlserver配置及otl编程.docx
- 微信小程序如何去掉button边框
- nodepad++通过正则表达式,删除带有特殊字符的某一行
- Linux上创建SSH隧道
- 电磁场理论复习笔记-第一章(下)
- matlab求dfa指数,关于使用MF-DFA方法计算广义Hurst指数的MATLAB操作问题
- VB6实现数组Slice()函数,可以像JS一样,切片出一个新数组
- Wireshark基础使用,SSL解密及http抓包入门教程
- python爬虫经典段子_Python爬虫实战:爬取内涵段子
- httpclient调用京东万象数字营销频道新闻api实例