dlib19.9+opencv3.4人脸检测自动加墨镜

本文介绍了如何利用dlib库的5个特征点提取功能进行人脸识别,并详细讲解了如何根据这些特征点为人脸添加自适应倾斜角度的墨镜。首先,通过dlib的get_frontal_face_detector检测人脸,然后使用shape_predictor_5_face_landmarks.dat文件获取特征点。接着,计算人脸角度并旋转预先准备的墨镜图像。最后,制作蒙版并叠加到原图上,实现自动加墨镜效果。代码示例和动态验证结果展示了方法的可行性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天我们来验证一下dlib的人脸识别的5点特征点提取效果,并利用这五个点给人脸加上一个墨镜。
5个特征点
dlib提供了人脸5个特征点的提取模板,但在官网的目录下已经打不开了,浏览器中点击时出现一堆乱码,不知是什么原因。我在github上搜索,还好,找到一个利用这5个特征点给人体自动加上一顶圣诞帽的项目,在那里可以找到shape_predictor_5_face_landmarks.dat文件,当然,68个特征点的模板文件也一样无法打开,在csdn上搜索,或者在dlib原来托管的https://sourceforge.net/网站上可以下载,感兴趣的同学可以自行查找。
提取5个特征点的python语句也非常简单,首先建立一个探测器来检测人脸:
detector = dlib.get_frontal_face_detector()
读入图片进行检测:
faces = detector(img,1)
建立提取特征点的函数:
landmark_predictor = dlib.shape_predictor(‘shape_predictor_5_face_landmarks.dat’)
将检测到的人脸方框输入进行提取:
shape = landmark_predictor(img,d)
5个特征点的坐标就包含在shape中,分别用shape.part(0-4)来表示。
5个特征点分别为左右眼角和人中位置。
这里给出实例如下:
这里写图片描述
这里写图片描述
人脸加墨镜
5个特征点只能大概标识出人脸的位置,可以用于在人脸上增加一些有趣的小饰件,比如墨镜之类。
我在网路上进行搜索,奇怪的是,dlib发行了这么久,网路上关于人脸加墨镜的例子也很多,但可以自适应人脸倾斜角度的文章却几乎找不到,问这个问题的帖子倒是很多,本博文给出一个简单的解决方案,供感兴趣的同学参考。
墨镜准备
首先我们要找到一个经过抠图的墨镜,这个墨镜logo的尺寸大有讲究,假如墨镜本身的尺寸为w,h,那么背景的尺寸应该为墨镜尺寸对角线长度的正方形,即sqrt(w**2+h**2)。这样才能根据人脸的角度来旋转墨镜。
墨镜logo的样板如下:

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值