基于Dlib人脸检测(图像视频)demo
Posted 月疯
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于Dlib人脸检测(图像视频)demo相关的知识,希望对你有一定的参考价值。
1、Dlib是一个深度学习开源工具,基于C++开发,也支持Python开发接口
2、由于Dlib对于人脸特征提取支持很好,很多训练好的人脸特征提取模型提供开发者使用,所以Dlib人脸识别开发很适合做人脸项目开发官网地址:http://dlib.net
源码库:https://github.com/davisking/dlib
图像人脸检测:
#人脸检测
#导入库
import cv2
import dlib
import matplotlib.pyplot as plt
import numpy as np
#2、显示图片
def show_image(image,title):
img_RGB=image[:,:,::-1] #BGR转换RGB就是把通道逆序一下
plt.title(title)
plt.imshow(img_RGB)
plt.axis("off")
#3、绘制人脸矩形框
def plt_rectangle(image,faces):
for face in faces:
cv2.rectangle(image,(face.left(),face.top()),(face.right(),face.bottom()),(255,0,0),3)
return image
def main():
#4、读取一张图片
img = cv2.imread("../images/liuyifei.jpg")
#5、灰度转化
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
#6、调用dlib库中的检测器
detector = dlib.get_frontal_face_detector()
faces = detector(gray, 1) # 1代表图片放大一倍
#7、给检测出的人脸绘制矩形框
img_result = plt_rectangle(img.copy(), faces)
#8、创建画布
plt.figure(figsize=(9,6))
plt.suptitle("face detection",fontsize=14,fontweight="bold")
#9、显示最终检测器效果
show_image(img_result,"face-detection")
plt.show()
if __name__ == "__main__":
main()
效果:
视频人脸检测:
#人脸检测
#导入库
import cv2
import dlib
#2、绘制人脸矩形框
def plt_rectangle(image,faces):
for face in faces:
cv2.rectangle(image,(face.left(),face.top()),(face.right(),face.bottom()),(255,0,0),3)
return image
def main():
#4、打开摄像头读取视频
capture = cv2.VideoCapture(0)
#5、判断摄像头是否正常工作
if capture.isOpened() is False:
print("Camera Error!")
# 6、摄像头是否正常,循环读取每一帧
while True:
ret,frame = capture.read()
if ret:
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# 7、调用dlib库的检测器
detector = dlib.get_frontal_face_detector()
faces = detector(gray, 1) # 1代表图片放大一倍
# 8、绘制检测结果
img_result = plt_rectangle(frame, faces)
# 9、实时显示结果
cv2.imshow("face detection",img_result)
# 10、按键"esc",退出,关闭摄像头
if cv2.waitKey(1) == 27:
break
# 11、释放所有资源
capture.release()
cv2.destroyAllWindows()
if __name__ == "__main__":
main()
以上是关于基于Dlib人脸检测(图像视频)demo的主要内容,如果未能解决你的问题,请参考以下文章
dlib库包的介绍与使用,opencv+dlib检测人脸框opencv+dlib进行人脸68关键点检测,opencv+dlib实现人脸识别,dlib进行人脸特征聚类dlib视频目标跟踪