基于opencv实现抖音上墨镜和烟卷效果

简介: 基于opencv实现抖音上墨镜和烟卷效果

现今较火的抖音上有一个十分有趣的特效,其可以自动检测出人脸并且放置墨镜和烟卷,鉴于此,想自己实现动手实现以下该特效的制作。


二、工作环境


Python 3.6,opencv+Dlib,Windows操作系统,pycharm


三、流程


  • 从摄像头获取视频流,并转换为一帧一帧的图像,然后将图像信息传递给opencv这个工具库处理,返回灰度图像。
  • 程序启动后,根据监听器信息,使用一个while循环,不断的加载视频图像,然后返回给opencv工具呈现图像信息。
  • 创建一个键盘事件监听,按下"d"键,则开始执行面部匹配,并进行面具加载(这个过程是动态的,你可以随时移动)。
  • 面部匹配使用Dlib中的人脸检测算法来查看是否有人脸存在。如果有,它将为每个人脸创建一个结束位置,眼镜和烟卷会移动到那里结束。
  • 然后我们需要缩放和旋转我们的眼镜以适合每个人的脸。我们将使用从Dlib的68点模型返回的点集来找到眼睛和嘴巴的中心,并为它们之间的空间旋转。
  • 在我们实时获取眼镜和烟卷的最终位置后,眼镜和烟卷从屏幕顶部进入,开始匹配你的眼镜和嘴巴
  • 假如没有人脸,程序会直接返回你的视频信息,不会有面具移动的效果。默认一个周期是4秒钟。然后你可以通过"d"键再次检测。
  • 退出程序按下q键。

四、关键代码


创建面具加载服务类DynamicStreamMaskService及其对应的初始化属性:


08988c71fa2560f52443f49d773a7e73.png


读取摄像头视频流并转化为图象:


703a490ce72ca8fa90a34797d772c13a.png

实现人脸定位函数,及眼镜和烟卷的定位:


c8080cf7d050452cfd0f6dd0048a141e.png


d5aea6469f44a093d38df3f95bcb511c.png


40b4bd89fa964bc37c06b14561e61df4.png


接下来实现画图函数:

2c0c1d4695f408301fa24c136f490126.png


创建启动函数start:


1d8dd485e18d76cc8c5bd527903d915e.png

五、运行结果


运行后,首先会打开摄像头,然后按下键盘d键,就会看到墨镜和烟卷从屏幕上方出来,自动定位到眼睛和嘴巴。参考结果如下:


7eb009b58208ecca42c1a81bdee2173e.png


图片经过马赛克处理了。


注意


代码中需要调用 shape_predictor_68_face_landmarks.dat人脸库,需要下载,然后在代码调用处中指定路径即可。

相关文章
|
数据采集 小程序 Python
搞定短视频!批量下载快手视频(附源码)
相信大家都接触了短视频平台,比如某音、某手等平台,竟然大家都熟悉了,那么今天辰哥分享的技术是:在某手上搜索视频,并实现下载!
1193 0
|
6月前
|
XML 算法 计算机视觉
使用OpenCV进行人脸检测和戴墨镜特效实战(附Python源码)
使用OpenCV进行人脸检测和戴墨镜特效实战(附Python源码)
305 1
|
5月前
|
Web App开发 JSON 开发者
程序技术好文:用Python撸点视频背景音乐素材
程序技术好文:用Python撸点视频背景音乐素材
|
6月前
|
数据采集 数据挖掘 开发者
手机使用Python轻松下载闲鱼短视频
手机使用Python轻松下载闲鱼短视频
114 0
手机使用Python轻松下载闲鱼短视频
|
计算机视觉
实现抖音时光倒流效果---OpenCV-Python开发指南(56)
实现抖音时光倒流效果---OpenCV-Python开发指南(56)
184 1
实现抖音时光倒流效果---OpenCV-Python开发指南(56)
|
人工智能 开发工具 计算机视觉
OpenCV+百度云人脸识别项目及源码
OpenCV+百度云人脸识别项目及源码
268 0
OpenCV+百度云人脸识别项目及源码
|
计算机视觉
实现抖音慢动作效果---OpenCV-Python开发指南(57)
实现抖音慢动作效果---OpenCV-Python开发指南(57)
242 1
|
算法
实现抖音霓虹灯效果---OpenCV-Python开发指南(55)
实现抖音霓虹灯效果---OpenCV-Python开发指南(55)
270 0
实现抖音霓虹灯效果---OpenCV-Python开发指南(55)
实现抖音哈哈镜效果---OpenCV-Python开发指南(47)
实现抖音哈哈镜效果---OpenCV-Python开发指南(47)
253 0
实现抖音哈哈镜效果---OpenCV-Python开发指南(47)