反抗996!启舰肝了个监控老板人脸,自动切桌面程序
Posted 启舰
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了反抗996!启舰肝了个监控老板人脸,自动切桌面程序相关的知识,希望对你有一定的参考价值。
前两天我在逛全球最大同性社交网站github的时候,发现了一个古董级程序。这就是2017年一位日本小哥写的一个监控老板的摸鱼程序。
程序非常简单,运行这个程序,就可以用摄像头监控老板,当发现老板以后,会自动切换桌面。
以下视频为模拟,效果过于逼真,切勿模仿
让老板每次看见你,都是满心的欢喜,源码都有,大家可以自己修改。
后来发现,这个程序还上了各大新闻。
一、程序的修改
今天就给大家分享这段碉堡的程序。
因为时间过于久远,很多函数都弃用了,我CherryPick这个程序以后,对其进行修复,现在已经可以正常运行了。
配置和运行也是非常简单的,配置环境只需要运行以下几个指令:
conda create -n venv python=3.5
source activate venv
conda install -c https://conda.anaconda.org/menpo opencv3
conda install -c conda-forge tensorflow
pip install -r requirements.txt
在环境配置好以后,先训练老板的人脸:
python boss_train.py
然后就可以开始监控老板了:
python camera_reader.py
程序非常简单
二、碎碎念——为什么非硕士毕业不要用Python找工作
你没看错,这里用的是python语言来开发的。
如果等下你决定研究它的源码的话,你也会发现源码不过500行。
从这里也可以看出,我曾经写的一篇文章的意义《为什么我建议你学python,但不建议你用Python找工作?》
Python太简单了,像这个人像识别的程序,我根本没有接触过,但也只是查了查所用到模块的API文档,就能对其修改,整个时长也只有周六一天。
正所谓成也萧何,败也萧何。
过于简单的API,就必然不会要求使用者对其内部原理的理解。
像你使用一条语句就能实现训练老板人脸集合,那你知道具体是怎么训练的吗?
单纯学会API的使用,对于Python而言,是没有任何竞争力的,有竞争力的是真正能够实现这些API的人。
这也就是为什么机器学习、图片识别这些岗位的招人要求都是硕士起的原因。
你一句话就能实现人脸识别,但要让你优化提升人脸识别成功率,你就抓瞎了。而这些岗位需要的恰恰就是优化算法、创建算法的这些人。
三、下载时间到
虽然程序简单,但是在整个配置、执行过程中,还是会遇到不少问题的。我在配置、运行过程中的记录会放在第四部分,供大家参考。
大家可以到我GitHub上去下载我已经修复好的源码:
https://github.com/harvic/BossSensor
也可以扫描下方的二维码,到我小号【启舰杂谈】上,回复【013】获取源码和配置注意事项合集
(回复【013】,获取源码/注意事项文档合集)
四、配置/运行注意事项
这部分是用MarkDown语法写的,在上面回复013获取到的注意事项里都有。
内容写的比较细,建议你在配置\\运行的时候,再仔细看,现在看的话,只会头大。
一、配置过程
1、安装Anaconda
(1)、到https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 下载Anaconda3-4.1.0版本
注意:
是Anaconda3开头,不是Anaconda2!!!!该版本对应的Python版本是3.5.1。
安装过程中注意勾选安装及自动配置Python3.5.1的勾选框,一定要勾选,不然很可能与本文环境不同而导致不可知的问题。
2、cmd中执行
conda create -n venv python=3.5
(1)、先将cmd的执行目录切到你下载的BossSensor的根目录:
(2)、执行 conda create -n venv python=3.5
会询问是否继续,输入y,以继续程序。后续的各项,都会有这种询问,直接输入y即可
3、执行 activate venv
4、执行
conda install -c https://conda.anaconda.org/menpo opencv3
5、执行
conda install -c conda-forge tensorflow
6、执行 pip install -r requirements.txt
到这里,我都没有报过错,我是win10环境,如果你有报错,可能与你的环境有关,需要自行查找解决方案哦。
二、训练老板图片集
1、放进需要捕捉的人头像
(1)、初次尝试,建议大家先用自己的图片尝试,先把整个流程走通再说。把图片放进1、BossSensor\\data\\boss文件夹下
注意:文件名不能有中文,不然会报“AttributeError: 'NoneType' object has no attribute 'shape'”错误
(2)、至少放10张图片,如果想要更改训练的图片数量,可以到boss_train.py中,将train(self, dataset, batch_size=10, nb_epoch=40, data_augmentation=True),中的batch_size=10中的10修改掉,这个10就是默认的训练图片数量,当然,图片越多,精准度越高
注意:如果执行时仍然报“'ProgbarLogger' no attribute 'log_values' ”错误,就表示图片数量不够,可以再加几张图片试试。
2、一切就绪以后,执行 python boss_train.py
执行成功后,结果如下:
三、捕捉老板
捕捉老板的指令为python camera_reader.py
,以下的安装步骤,都是因为直接执行该指令报错之后,一步步排查解决的过程。
当然,你也可以不看下面的步骤,直接执行捕捉老板的指令,看是否报错。如果能直接执行最好,如果不能直接执行,则可以根据我的排查与安装过程做为参考,看是否能够解决。
1、先安装PyQt5,执行
conda install pyqt=5
(1)、执行 conda install pyqt=5
安装PyQt5
原作者使用的PyQt4版本,因为版本过老,我这里修改成PyQt5版本了,并且把原来用到的函数进行了修改,以保证正常运行,所以,如果你跟原作者版本相比较的话,会发现这里是有改动的。
2、安装openCV,执行conda install py-opencv=3.4.2
这时候,如果你执行捕捉老板程序的指令,你会发现报错:
是因为缺少opencv,所以,我们需要安装opencv2
执行 conda install py-opencv=3.4.2
3、更新 scikit-learn,执行conda update scikit-learn
如果你重新执行训练老板的程序,你会发现报错:
执行 conda update scikit-learn
更新scikit-learn
4、安装keras,执行 pip install keras==2.2.4
再次执行监控老板指令,会报 ImportError: No module named 'keras'
错误
安装keras2.2.4版本,pip install keras==2.2.4
一定注意,keras版本不能错!!!!错了以后,会因为函数用法不一致,而出现其它问题。
5、安装tensorflow,conda install tensorflow
当你再次执行监控老板指令时,会报 ImportError: No module named 'tensorflow'
错误
安装tensorflow,
执行 conda install tensorflow
6、执行监控老板指令,成功!!!
执行python camera_reader.py
,开始监控老板
(1)、持续监控老板中
执行指令以后,界面如下:
我为了让大家感知,当前程序正在监控,所以让它一直在打印日志“Is monitoring”
这时候,你会发现,你摄像头被开启了,因为它的灯亮了
(2)、老板到来
当老板到来时,桌面会瞬间被切到预置的图片s_pycharm.jpg,并全屏显示
此时,代码停止:
到这里,整个程序就运行完了,下面要讲一些如何修改代码的问题,有些没接触过Python的小伙伴,可以帮你研究研究。
7、修改代码
(1)、修改展示图片
如果你想修改老板出现时,所出现的图片的话,就非常简单,你只需要保持s_pycharm.jpg的文件名不变,把原图片替换掉即可。
(2)、为什么程序只执行一次,能不能循环执行?
为什么程序只执行一次呢?原因还是要看代码
在发现老版时,会调用show_image()方法
show_image()方法在image_show.py中:
从这段代码中可以看出,在执行完展示图片以后,作者调用了sys.exit(app.exec_())
来退出整个主程序。
既然知道原因在哪了,那你能实现让它在老板消失以后,继续重新执行吗?
试试吧,留个作业。
我精心整理了计算机各个方向的从入门、进阶、实战的视频课程和电子书,都是技术学习路上必备的经验,跟着视频学习是进步最快的,而且所有课程都有源码,直接跟着去学!!!
只要关注微信公众号【启舰杂谈】后回复你所需方向的关键字即可,比如『android』、『java』、『ReactNative』、『H5』、『javaweb』、『面试』、『机器学习』、『web前端』、『设计模式』等关键字获取对应资料。(所有资料免费送,转发宣传靠大家自愿)
以上是关于反抗996!启舰肝了个监控老板人脸,自动切桌面程序的主要内容,如果未能解决你的问题,请参考以下文章