这是学习笔记的第 2205 篇文章

读完需要

9

分钟

速读仅需7分钟

昨天无意中看到一条比较有意思的文章,是可以通过Python程序给照片里的人戴上口罩,看到之后,还是挺惊喜的,也想拿过来试试。

项目是face-mask,说法是可以直接pip install face-mask安装即可。

但是自己尝试的时候,刚开始就翻船,在Windows本机测试就失败了,换了台云主机,也失败了,试了一台本机的Linux虚机和Ubuntu环境,都相继失败了,这时候内心有些凌乱,想要不算了,只是好奇而已。

在下午的时候,脑海里又闪现出这件事情,好像这些年这样放弃的事情有很多,花费了时间,但是最后没有任何结果,完全又回到了原地。

于是开始认真梳理,查找了很多资料,发现绝大多数的问题在于dlib的安装,网上一找问题一大片。dlib是什么东东,原来是一个C++工具箱,其中包含用于在C++中创建复杂软件,是可以解决实际问题的机器学习算法和工具,所以重中之重就是它了。

怎么安装部署呢,这是我的攻略。

首先安装Python软件,我是在本机Windows环境测试的。其中Python版本不能过高,也不能过低,我最开始的版本是3.8最后发现找不到相应的wheel包,比较尴尬,最后退回到3.6版本。

接下来是安装cmake和boost, 如果通过官网下载的话,因为网络原因会比较慢,可以使用豆瓣的源。

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

pip install boost -i https://pypi.doubanio.com/simple/

这个安装基本没有什么可说的,相对来说是比较顺利的。

接下来重点是dlib,Windows安装是肯定会失败的,有一个间接的实现是下载wheel文件安装,可以通过这个路径下载。

https://pypi.doubanio.com/simple/dlib

我下载的wheel文件是:

dlib-19.8.1-cp36-cp36m-win_amd64

接着使用pip install 即可。

对于辅助的软件,可以安装opencv和numpy

pip  install  opencv-python -i https://pypi.doubanio.com/simple/

pip  install  numpy -i https://pypi.doubanio.com/simple/

此外还有Pillow,为了和项目face-mask的版本兼容,可以安装7.0.0版本。

pip install Pillow==7.0.0

接着是关键的环节,决定成败的一个软件,face_recongnition,豆瓣源暂且找不到,我们通过默认方式下载

pip  install  face_recongnition==1.2.3

完成之后就完成了90%的工作,哪怕没有face-mask也可以写程序玩了。

对于face-mask使用pip下载比较慢,我们可以使用源码安装。

可以使用项目地址:https://github.com/Prodesire/face-mask

然后使用python setup.py install来安装即可。

有了前面的铺垫,整个过程就顺利得多了。

我先后给自己的身份证带上了口罩,给我家孩子的百天照带上口罩,给幼儿园的小朋友们带上口罩,甚至包括技术大会的嘉宾。

这是一个样例,个人比较喜欢《武林外传》,原图是:

给他们戴上口罩,使用如下的命令:

face-mask c:\jeanron\group6.jpg --red --show

其中face_recognition是关键,我们可以通过这个库来对比两张图片,看看是否是同一个人,做了些测试,感觉至少有60%的概率吧。

import face_recognition
known_image = face_recognition.load_image_file("test.jpg")
unknown_image = face_recognition.load_image_file("test2.jpg")biden_encoding = face_recognition.face_encodings(known_image)[0]
unknown_encoding = face_recognition.face_encodings(unknown_image)[0]results = face_recognition.compare_faces([biden_encoding], unknown_encoding)
print(results)

如果程序输出True即为匹配,在此就不额外秀图了。

QQ群号:763628645

QQ群二维码如下, 添加请注明:姓名+地区+职位,否则不予通过

订阅我的微信公众号“杨建荣的学习笔记”,第一时间免费收到文章更新。别忘了加星标,以免错过新推送提示。

1

近期热文

你可能也会对以下话题感兴趣。点击链接就可以查看。

  • 我眼中的《庆余年》

  • 使用Python分析北京积分落户数据,分析完我陷入了深思

  • MySQL的主键命名挺任性,就这么定了

  • 华裔教授发现二次方程极简解法,我默默的做了下验算

  • 回答:我不小心把公司的数据库给删了,该不该离职?

  • 迁移到MySQL的业务架构演进实战

  • 数据库修改密码风险高,如何保证业务持续,这几种密码双活方案可以参考

  • MySQL业务双活的初步设计方案

  • 如何优化MySQL千万级大表,我写了6000字的解读

  • 一道经典的MySQL面试题,答案出现三次反转

  • 业务双活的数据切换思路设计(下)

  • 业务双活的数据切换思路设计(一)

  • MySQL中的主键和rowid,看似简单,其实有一些使用陷阱需要注意

  • 小白学MySQL要多久?我整理了10多个问题的答案

2

转载热文

你可能也会对以下话题感兴趣,文章来源于转载,点击链接就可以查看。

  • 去IOE or Not?

  • 拉里·佩奇(Larry Page)的伟大归来

  • 《吊打面试官》系列-Redis基础

  • 唯一ID生成算法剖析,看看这篇就够了

  • 关于大数据运维能力的一些思考

  • DBA菜鸟的进化简史:不忘初心,记工作中踩过的三个坑

  • 美女主持直播,被突发意外打断!湾区网友却高喊: 我懂!超甜

如何使用Python给照片自动带上口罩,我是从入门放弃到爱不释手的相关推荐

  1. 用Python给你的女神带上口罩~

    前言 2019 年底开始蔓延的新型肺炎疫情牵动人心,作为个体,我们力所能及的就是尽量待在家中少出门. 看到一些朋友叫设计同学帮忙给自己的头像戴上口罩,作为技术人,心想一定还有更多人有这样的诉求,不如开 ...

  2. python 提取最小外接矩形_python给人脸带上口罩(简单版)

    导读 因为目前公开的口罩人脸数据比较少,如果想训练一个口罩人脸识别模型,必须依赖大量的人脸数据.为了收集到更多的口罩人脸数据,我们只能利用已有的公开人脸数据上通过程序来模拟人脸带口罩.这篇文章向大家介 ...

  3. python可以写什么视觉特效_Python实现视觉特效:一行命令给头像自动戴上口罩的案例...

    Python实现视觉特效:一行命令给头像自动戴上口罩的案例 发布时间:2020-07-23 16:22:40 来源:亿速云 阅读:90 作者:清晨 小编给大家分享一下Python实现视觉特效:一行命令 ...

  4. python给人脸带上口罩(简单版)

    导读 因为目前公开的口罩人脸数据比较少,如果想训练一个口罩人脸识别模型,必须依赖大量的人脸数据.为了收集到更多的口罩人脸数据,我们只能利用已有的公开人脸数据上通过程序来模拟人脸带口罩.这篇文章向大家介 ...

  5. postman发送object_.NetCore HttpClient发送请求的时候为什么自动带上了一个RequestId头部...

    奇怪的问题 最近在公司有个系统需要调用第三方的一个webservice.本来调用一个下很简单的事情,使用HttpClient构造一个SOAP请求发送出去拿到XML解析就是了. 可奇怪的是我们的请求在运 ...

  6. .NetCore HttpClient发送请求的时候为什么自动带上了一个RequestId头部?

    奇怪的问题 最近在公司有个系统需要调用第三方的一个webservice.本来调用一个下很简单的事情,使用HttpClient构造一个SOAP请求发送出去拿到XML解析就是了.可奇怪的是我们的请求在运行 ...

  7. Jmeter设置测试报告自动带上时间

    Jmeter测试报告在不更改报告名称的时候每一次新的测试报告内容都会追加在原文件下面的,不想每次都手动修改文件名的话可以用Jmeter自带的函数助手里面的时间函数加在文件名后面,这样每次测试都会按照时 ...

  8. 让你的博文自动带上缩址,方便发到微博客上

    添加以下代码到你的博客中: (呵呵,抄袭至lulu Studio  http://s8.hk/0itw) <script type="text/javascript"> ...

  9. 图像修复神器!带上口罩都能还原!DDPM:用去噪扩散概率模型极限修复图像,效果太牛了!...

    点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 转载自:机器之心 | 编辑:杜伟.陈萍 无论掩码类型如何多变,苏黎世联邦理工学院计算机视觉实验室(CVL)的 ...

  10. 自动为你的照片带上一副眼镜

    咪哥杂谈 本篇阅读时间约为 6 分钟. 1 前言 上篇文章讲解了如何将我们的"附属品"(例如眼镜.圣诞帽.口罩)图片背景透明化,那今天来介绍下实现自动带上眼镜的方法,通过人脸识别, ...

最新文章

  1. 如何解决diff: /../Podfile.lock: No such file or directory 的问题
  2. 文华软件登录显示请选择服务器,文华财经随身行要登录云服务器
  3. 宏基因组扩增子最新分析流程QIIME2:官方中文帮助文档
  4. java实现对HDFS增删改查(CRUD)等操作
  5. 一个简单的记事本程序
  6. 编写一个函数,计算下式当n=10和n=100的值。
  7. MathType使用中的四个小技巧
  8. C#将一个excel工作表根据指定范围拆分为多个excel文件
  9. Elasticseach 从零开始学习记录(三) - 分布式部署
  10. wps+for+linux+字体大小,WPS for Linux(ubuntu)字体配置(字体缺失解决办法)
  11. Andriod --- JetPack :LiveData setValue 和 postValue 的区别
  12. 03.获取网页源代码
  13. html水晶按钮图片,css 如何实现一个水晶按钮的效果呢?
  14. 豆瓣电影top250信息爬取
  15. P1500 丘比特的烦恼
  16. 对网页 ‘’为所欲为‘’ 之手动实现深色模式?
  17. 用JS实现一个秒表计时器
  18. umi 如何配置webpack_umi+dva开发环境+经常使用配置和webpack配置
  19. Tomcat项目结构及架构分析
  20. 录屏专家怎么用?录屏软件使用教程(附下载)

热门文章

  1. 基于Android Tv制作一个Tv桌面(三)
  2. 学java对年龄有要求吗_Java学习有年龄限制吗,多大年纪就不能学习?
  3. Beagleboneblack的MLO文件干了些啥
  4. 【正点原子MP157连载】第二章 Ubuntu系统入门-摘自【正点原子】【正点原子】STM32MP1嵌入式Linux驱动开发指南V1.7
  5. 大立公告:红外焦平面阵将以新的面貌出现
  6. 论文中常用的对word页眉页脚的操作
  7. iOS16新特性及开发适配
  8. Microsoft Help Viewer无法打开的问题
  9. Hexo + yilia 主题实现文章目录
  10. 技术美术知识学习_04:PBR的个人理解