介绍
在你的工作时间,你上网浏览了与你的工作无关的网站吗?
每当这个时候,当老板不知道什么时候站在我后面的时候,我就会感到很尴尬。当然,我可以快速切换画面,但这种行为真的很可疑。何况我有时看不出他已经在那儿了。因此,为了解决这个问题,我们创建了一个使用Keras的系统。Keras自动识别上司是否正在接近我的位置,以及是否在及时切换我电脑的屏幕。(大卫亚设)。
特别是,Keras被用于神经网络,学习我老板的脸,同时网络摄像头被用来确认他是否在接近我的行为,并切换画面。(大卫亚设)。
任务
这个系统的任务是在我老板接近我的时候自动切换屏幕。
使用情形如下:
总经理的座位到我的座位大约有六七米。他离开座位后4,5秒内就能到达我的座位。因此,必须在这段时间内完成屏幕切换。
战略
有多种策略可供选择,我选择的策略是跟随。第一,让电脑深入研究老板的脸。然后在我桌上安装网络摄像头,当网络摄像头捕捉到他的脸时,切换屏幕。这是完美的策略。我将称之为惊人的boss嗅探器系统。
系统体系结构
Boss Sensor的简单系统体系结构如下:
网络摄像头实时拍摄图像。
学习的人脸识别模型可以检测和识别拍摄的人脸图像。
如果识别结果是我上司,就切换画面。
要完成上述任务,需要以下技术:
拍脸部图像
人脸图像识别
切换画面
一个一个完成,最后合并。
采取脸部形象
首先用网络摄像头拍摄脸部图像。我使用的是BUFFALO BSW20KM11BK网络摄像头。
您也可以使用随附的软件在相机上拍摄图像,但考虑到以后的处理,最好在程序中采取。(大卫亚设,Northern Exposure(美国电视剧))此外,后续处理中需要面部识别,所以只需切除面部图像即可。所以我用Python和OpenCV拍摄了脸部图像。下面是代码。
BossSensor
我能得到比预期更清晰的面部图像。
认出总经理的脸
接下来,我们使用机器学习,让电脑识别老板的脸。
我们需要以下三个阶段。
1.收集图像
2.图像预处理
机器学习模型的构建
让我逐一分析一下。
收集形象
首先,我需要为学习收集大量的图像。收集方法使用了以下资源:
谷歌图像搜索
在Facebook上收集图像
拍视频
起初我用网络搜索和Facebook收集图像,但没有收集到足够的图像。所以我用相机拍摄视频,把视频分解成很多图像。
事先处理形象
现在我有足够的面部形象,但学习模式不能直接学习。因为形象中有很多与脸无关的信息。所以我得先把图像切到脸上。
我主要使用ImageMagick进行面部提取。可以使用ImageMagick提取图像的面部部分。
ImageMagick
我收集的很多脸部图像如下。
也许我是这个世界上我老板脸部照片最多的人。比他父母还多。
现在准备进行机器学习。
机器学习模型的构建
Keras被用来构建已经学过的卷积神经网络(CNN)。TensorFlow用于Keras后端。如果只识别人脸,则可以直接调用web API来执行图像识别,如Cognitive Services的Computer Vision API。但是这次考虑到系统的实时性,决定自己实现这一部分。
网络具有以下体系结构:使用Keras很方便。
,因为它可以轻松地输出架构。
代码如下:
BossSensor至此,系统可以识别出老板的面部了。
切换屏幕
现在,当学习模型识别老板的脸,我需要切换屏幕。 在这个时候,让我们显示准备好的截屏来假装工作。
我是一个程序员,所以我准备了下面的图像。
我只显示这张图片。
由于我想以全屏显示图像,所以使用了PyQt。 下面是代码:
BossSensor/image_show.py
现在,一切都准备就绪。
完成的产品
一旦我们整合所有运用到的技术,我们就大功告成了。
“我的老板离开了他的座位,他正在接近我的座位”
“OpenCV已经检测到面部并将图像输入到学习模型中。”
快切屏!
源代码
你可以从以下链接下载Boss Sensor:
BossSensor
结论
我结合了从Web相机的实时图像采集和面部识别使用Keras来识别我的老板和切换屏幕。目前,我用OpenCV来检测面部,但由于OpenCV中的面部检测的准确性似乎不太好,我想尝试使用Dlib来提高准确性。 另外,我还想试验一下我自己的面部检测模型。最后,由于从网络摄像机获取的图像的识别精度不太好,我还想改进这个方面。
文章原标题《Deep Learning Enables You to Hide Screen when Your Boss is Approaching》,作者:HIRONSAN,译者:friday012
戳原文,更有料!