python 人脸关键点检测_opencv+python+dlib人脸关键点检测、实时检测

安装的是anaconde3、python3.7.3,3.7环境安装dlib太麻烦,

在anaconde3中新建环境python3.6.8,

在3.6环境下安装dlib-19.6.1-cp36-cp36m-win_amd64.whl,下载地址:https://pypi.org/project/dlib/19.6.1/#files

vscode更改配置

其中shape_predictor_68_face_landmarks.dat官方训练数据下载地址:http://dlib.net/files/,里面还有5点模型。

效果图如下:

# _*_ coding:utf-8 _*_

import numpy as np

import cv2

import dlib

detector = dlib.get_frontal_face_detector()

predictor = dlib.shape_predictor("data/shape_predictor_68_face_landmarks.dat")

# cv2读取图像

img = cv2.imread("img/test3.jpg")

# 取灰度

img_gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)

# 人脸数rects

rects = detector(img_gray, 0)

for i in range(len(rects)):

landmarks = np.matrix([[p.x, p.y] for p in predictor(img, rects[i]).parts()])

for idx, point in enumerate(landmarks):

# 68点的坐标

pos = (point[0, 0], point[0, 1])

# 利用cv2.circle给每个特征点画一个圈,共68个

cv2.circle(img, pos, 2, color=(0, 255, 0))

# 利用cv2.putText输出1-68

font = cv2.FONT_HERSHEY_SIMPLEX

cv2.putText(img, str(idx + 1), None, font, 0.8, (0, 0, 255), 1, cv2.LINE_AA)

cv2.namedWindow("img", 2)

cv2.imshow("img", img)

cv2.waitKey(0)

摄像头实时检测:

# _*_ coding:utf-8 _*_

import numpy as np

import cv2

import dlib

cap = cv2.VideoCapture(0)

detector = dlib.get_frontal_face_detector()

predictor = dlib.shape_predictor("data/shape_predictor_68_face_landmarks.dat")

while 1:

ret, img = cap.read()

# 取灰度

img_gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)

# 人脸数rects

rects = detector(img_gray, 0)

for i in range(len(rects)):

landmarks = np.matrix([[p.x, p.y] for p in predictor(img, rects[i]).parts()])

for idx, point in enumerate(landmarks):

# 68点的坐标

pos = (point[0, 0], point[0, 1])

# 利用cv2.circle给每个特征点画一个圈,共68个

cv2.circle(img, pos, 2, color=(0, 255, 0))

# 利用cv2.putText输出1-68

font = cv2.FONT_HERSHEY_SIMPLEX

cv2.putText(img, str(idx + 1), None, font, 0.8, (0, 0, 255), 1, cv2.LINE_AA)

cv2.namedWindow("img", 2)

cv2.imshow("img", img)

if cv2.waitKey(1) & 0xFF == ord("q"):

break

OpenCV实战:人脸关键点检测(FaceMark)

Summary:利用OpenCV中的LBF算法进行人脸关键点检测(Facial Landmark Detection) Author:    Amusi Date:       2018-03-20 ...

dlib人脸关键点检测的模型分析与压缩

本文系原创,转载请注明出处~ 小喵的博客:https://www.miaoerduo.com 博客原文(排版更精美):https://www.miaoerduo.com/c/dlib人脸关键点检测的模 ...

OpenCV + python 实现人脸检测(基于照片和视频进行检测)

OpenCV + python 实现人脸检测(基于照片和视频进行检测) Haar-like 通俗的来讲,就是作为人脸特征即可. Haar特征值反映了图像的灰度变化情况.例如:脸部的一些特征能由矩形特征 ...

手把手教你如何用 OpenCV + Python 实现人脸检测

配好了OpenCV的Python环境,OpenCV的Python环境搭建.于是迫不及待的想体验一下opencv的人脸识别,如下文. 必备知识 Haar-like Haar-like百科释义.通俗的来讲 ...

OpenCV/Python/dlib眨眼检测

今天我们来使用面部标志和OpenCV 检测和计算视频流中的眨眼次数. 为了构建我们的眨眼检测器,我们将计算一个称为眼睛纵横比(EAR)的指标,由Soukupová和Čech在其2016年的论文&quo ...

手把手教你如何用 OpenCV + Python 实现人脸识别

下午的时候,配好了OpenCV的Python环境,OpenCV的Python环境搭建.于是迫不及待的想体验一下opencv的人脸识别,如下文. 必备知识 Haar-like 通俗的来讲,就是作为人脸特 ...

opencv python训练人脸识别

总计分为三个步骤 一.捕获人脸照片 二.对捕获的照片进行训练 三.加载训练的数据,识别 使用python3.6.8,opencv,numpy,pil 第一步:通过笔记本前置摄像头捕获脸部图片 将捕获的 ...

OpenCV Facial Landmark Detection 人脸关键点检测

Opencv-Facial-Landmark-Detection 利用OpenCV中的LBF算法进行人脸关键点检测(Facial Landmark Detection) Note: OpenCV3.4 ...

Opencv与dlib联合进行人脸关键点检测与识别

前言 依赖库:opencv 2.4.9 /dlib 19.0/libfacedetection 本篇不记录如何配置,重点在实现上.使用libfacedetection实现人脸区域检测,联合dlib标记 ...

随机推荐

<;矩阵的基本操作:矩阵相加,矩阵相乘,矩阵转置>;

//矩阵的基本操作:矩阵相加,矩阵相乘,矩阵转置 #include #include #define M 2 #define N 3 #d ...

How to fix broken packages?(转)

Try Code: sudo apt-get update to update your package list.Then Code: sudo apt-get autoclean to clean ...

利用js_API 运行对html文档元素的属性的CRUD操作

...

Linux 最简单的驱动程序hello world

图片驱动位置:kernel3-10/driver/misc/mediatek/imgsensor/src/mt8127/kd_sensorlist.c 例子:kernel-3.10/driver/mi ...

同时安装多个的Mysql的实现方法

首写修改my.ini文件 修改这几项即可 [client] port= [mysql] default-character-set=utf8 [mysqld] port= server_id= 全文如 ...

php变量详解

变量是用于存储信息的"容器". 定义一个变量的语法: $变量名 = 值; 使用变量的例子:

hd loadBalanceServer F5 BIG-IP / Citrix NetScaler / Radware / Array / HAProxy /

s 五.Citrix NetScaler 和 CDN 案例 问题描述: Citrix 10.5.66.9软件版本下,存在计时器bug,此bug会造成CDN长连接回源超过设备默认的180S,会发fin包 ...

vector向量容器(常用的使用方法总结)

关于STL中vector容器的学习,编译运行后边看代码,边看执行结果效果更佳,还是想说看别人的代码一百遍,不如自己动手写一遍. vector向量容器不但能像数组一样对元素进行随机访问,还能随时在尾部插 ...

Path画直线与弧线

代码地址如下:http://www.demodashi.com/demo/14754.html 前言 之前讲过Paint和Canvas的基本使用,今天来介绍下Path的使用 涉及内容有: Path画直 ...

poj3073

比赛状态堪忧,笑看自己找不着北.. 把心态放好吧- - 反正窝从一開始就仅仅是为了多学习才上道的 至少已经从学习和智商上给窝带来了一些帮助 智商带不动,好辛苦----(>_

你可能感兴趣的:(python,人脸关键点检测)