用python给自己的爱豆带上口罩

2020-03-11 10:56:20 4点赞 25收藏 3评论

背景

#宅在家学习技巧# 最近受到疫情干扰严重,相对平安的各位,在家除了应付公司的远程考勤意外,都在家里丰富自己自己的生活。当然还有一部分爱学习的小朋友,拿起了国民打卡神器开始了学习!

其实,我所在的IT服务行业,早就现场开工了。所以,上班记得戴口罩,勤洗手,勤换衣,随时保持一个爱干净的习惯,就能极大的降低感染病毒的风险。

最近,在朋友圈看到有朋友的头像已经改为了带上口罩的样子,所以自己打算也搞一个。如果用PS的话,对于程序员来讲,技术含量可就没有那么高了。本着发挥python的魅力,再加上前段时间学了一下face_recognition模块,打算做一个识别出人脸后自动戴口罩的程序。在查询完资料的时候,已经发现有朋友实现了python语言自动戴口罩的代码,所以就放弃自写了,正所谓“人生苦短,我用python”。

今天就给大家带来的是为了自己的爱豆照片带上口罩的操作方法,顺便探索一下源代码。

我将按照最基础的步骤,配合大家开始实现头像带上口罩

安装环境

windows操作系统

python3.6 下载

安装步骤

1. 安装python3.6

下载python downza

pythonpython

根据系统版本,选择安装python。

32位操作系统安装第1个,64位操作系统安装第2个

用python给自己的爱豆带上口罩

1. 打勾 Add python 3.6 to PATH

2. Install Now

一直下一步下一步,安装完成

2. 确认安装成功python

用python给自己的爱豆带上口罩

进入电脑cmd命令,输入python -V,如果出现类似上图以上的版本号,即可代表成功

3. 安装face-mask模块

继续cmd命令 ,输入以下内容

pip install face-mask -i pypi.douban

这个命令就是从国内的python镜像网站下载face-mask

用python给自己的爱豆带上口罩


如果遇到报错 CMake must be installed to build the following extensions: dlib,那就先输入下面命令,再继续

pip install cmake -i https://pypi.douban.com/simple

这个命令就是从国内的python镜像网站下载CMake

4. 准备好含有人脸的照片


用python给自己的爱豆带上口罩

在网上随手找的人脸信息,分别代表女人、小孩儿、男人、欧洲人和非真人图片,把这些图片放入一个指定的文件夹比如,test文件夹

5. 开始戴口罩

用cmd命令进入人脸的文件夹:test文件夹

输入下面代码 fask-mask 2.jfif

face-mask是调用命令, 2.jfif是我的图片名称(包含扩展名)

用python给自己的爱豆带上口罩

生成成功

用python给自己的爱豆带上口罩

此时,文件夹内多出来一个2-with-mask图片文件

依次输入其他图片

用python给自己的爱豆带上口罩

其中3号图片没有成功,是因为是非真人,所以没有正常识别

最后的结果如图:

用python给自己的爱豆带上口罩

6.扩展阅读

单一的口罩样式,不能体现自己的专业,我们怀着学习的态度,来看看它的源码,看看能否改一下口罩样式

python安装的路径Libsite-packagesface_mask

打开路径后可以看到

用python给自己的爱豆带上口罩

文件夹内容

目录内部有2个文件夹,2个python文件

其中__pycache__不用管,这个是缓存,我们先看一下images

用python给自己的爱豆带上口罩

images里面是口罩图片,我猜测应该可以换口罩来带

然后,我们再看一下__init__.py,空的。那就打开__main__.py呢?

在里面我们找到关键源代码

用python给自己的爱豆带上口罩

内部导入了图片工具类,看来是对图片进行了处理(这不废话么)

用python给自己的爱豆带上口罩

我英文不好,大概翻译一下

--show 是否使用蒙层显示照片?

--model 分析模型,这个人工智能训练模型有关

--black 黑色口罩,对应上面的图片路径

--blue 蓝色口罩,对应上面的图片路径

--red 红色口罩,对应上面的图片路径

7. 试试红色口罩

face-mask 2.jfif --red

用python给自己的爱豆带上口罩

用python给自己的爱豆带上口罩

口罩果然变成红色了,可能也许口罩不是那么协调,你也可以尝试下载一个其他图片放在里面进行改动。

再往下的代码就是具体实现了,简单看了一下是采用face_recognition识别人脸以及眼睛、鼻子、嘴巴的距离,再通过一定的算法,将口罩给带上去

face_recognition:一个开源的人脸识别类

总结

face-mask 是基于 人脸识别扩展后的有趣框架,整体代码量并不多,阅读清晰。居于人脸框架的识别,以后将会有越来越多有意思的事情

大家还记得去年圣诞节送红帽的事情吗,这个算得上是 异曲同工

喜欢的朋友,记得关注、点赞、收藏三连击,谢谢~

展开 收起
3评论

  • 精彩
  • 最新
  • 最后一个是要爆炸了吗

    校验提示文案

    提交
    还好,这个叫做人脸识别。你们的车太快,差点跟不上

    校验提示文案

    提交
    收起所有回复
  • 比脸都大 原来是真的 [脸红]

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
25
扫一下,分享更方便,购买更轻松