栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

2021-10-17

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2021-10-17

基于opencv进而dlib算法进行人脸检测方法

友友们你们好呀! 周末最后一作,搞完快点睡觉QAQ。废话不多说,赶紧进入正题吧,本篇文章将简要讲述用OpenCV和dlib算法库实现人脸检测的应用(又是调库操作(小声))

模型结果预览


这里将人脸识别框画出并且将框抠走放在图片的左上角

数据准备

俗话说:“工欲善其事必先利其器”。那么在学习图像处理领域方面,器一定就是数据集了,此处由于仅对图像做检测识别,所以相关的数据集就是照片了,当然dlib也是支持视频流人脸检测识别的,大家有兴趣的话可以查看一下下面的网址链接带你走进dlib
此处我们的照片就是上面出现过的啦。

不要问我为啥选这张照片(qaq可能是有种说不上来的感觉吧pass—)

代码实现与调用dlib库

代码注释很详细,就不再赘述了,如果有问题欢迎留言评论!

import cv2
import dlib

##### 1.使用dlib人脸检测模型,进行人脸检测 ####
img = cv2.imread("girl.jpg")
# dlib自带的人脸检测模型
detector = dlib.get_frontal_face_detector()
# 对读取的原始图像,进行人脸检测
faceRects = detector(img)
num=0
for box_info in faceRects:
    num+=1
    # 对box_info进行拆解,将人脸检测  框  的左上角和右下角提取出来
    #box_info就是框的信息草稿抽象的框
    x_min, y_min, x_max, y_max = box_info.left(), box_info.top(), box_info.right(), box_info.bottom()
    # 在图片上  绘制  车辆框的方框,(0, 0, 255)为颜色,3为画的框线的宽度

    cv2.rectangle(img, (x_min, y_min), (x_max, y_max), (0, 0, 255), 3)
    #抠图操作
    img_crop = img[y_min:y_max, x_min:x_max]  # [y1:y2,x1:x2]
    img[10:y_max-y_min+10,20:x_max-x_min+20]=img_crop
# 很多时候,图片的长宽太大,屏幕显示不全
# 为了便于查看图片,可以将图片的大小,缩放到某一尺寸,比如(500,600),即宽500像素,高600像素
img = cv2.resize(img, (500, 600))
# 显示图片
cv2.waitKey(0)
# # 使用cv2.putText,在每个关键点的位置,画上数值,3是数字的大小,5是粗细
cv2.putText(img, "face_count:"+str(num), (5, 5), cv2.FONT_HERSHEY_SIMPLEX, 3, (0, 0, 255),5)
cv2.imshow("image",img)
# 显示图片停顿的时间,如果是0,则一直显示。如果是100,则显示100ms
cv2.waitKey(0)
心得体会

周末最后一作,总算在午夜前结束,头顶的灯已经熄灭,繁忙的一周,第二天又是新的一周,周而复始,似乎手头的工作永远没有尽头,但也许正是这样没有尽头的路才更值得去走,我们不妨且歌且行,在路上唱出自我的同时发现体会到与生命的默契以及梦想的模样。

仅以此篇告别逝去的一周,开启新的一周的大门,倘若我们坚信明天会更好,那又有什么困难可以阻挡住我们呢。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/329457.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号