一款系统能识别逐渐朝你走来的老板,并且自动隐藏正在浏览的屏幕.doc

上传人:白大夫 文档编号:3363543 上传时间:2019-08-18 格式:DOC 页数:6 大小:29.50KB
返回 下载 相关 举报
一款系统能识别逐渐朝你走来的老板,并且自动隐藏正在浏览的屏幕.doc_第1页
第1页 / 共6页
亲,该文档总共6页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《一款系统能识别逐渐朝你走来的老板,并且自动隐藏正在浏览的屏幕.doc》由会员分享,可在线阅读,更多相关《一款系统能识别逐渐朝你走来的老板,并且自动隐藏正在浏览的屏幕.doc(6页珍藏版)》请在三一文库上搜索。

1、一款系统能识别逐渐朝你走来的老板,并且自动隐藏正在浏览的屏幕在当下网络发达的时代,我们很难抵挡信息的冲击,上班时间总想偷偷刷个微博、看个新闻啥的,才能走在潮流前线嘛!然而此时此刻,最怕老板悄咪咪出现在身后,恐怖指数可以和门外突然出现的班主任相比。一身冷汗之后,手忙脚乱马上切换屏幕!假装努力工作!但是一切都太晚了,你的小动作都被老板看在眼里、记在心中所以,为了躲避老板的监控,日本一程序员自制了一款系统,能识别逐渐朝你走来的老板,并且自动隐藏正在浏览的屏幕。具体来说,系统使用了基于Keras的神经网络学习辨认人脸,网络摄像头用于判断目标对象是否靠近,并基于判断切换屏幕。以下是论智对这一项目的编译。

2、任务概述这一任务的目标是当老板靠近我的时候,屏幕可以自动切换到与工作有关的内容。我和老板的位置大致如下:从他的座位到我的座位大约有67米的距离,这之间只需要45秒的时间。所以我必须让系统在几秒内完成一系列动作。制定策略首先,让电脑通过深度学习掌握老板的脸。然后,在我的工位上设置一个摄像头,当捕捉到老板的脸时,屏幕可以自动切换。我将这套系统称为“老板感应器(Boss Sensor)”,简直完美!系统架构“老板感应器”的简单结构如下:摄像头能实时拍摄图像经过学习的模型从拍摄图像中检测并认出老板的脸确认之后切换屏幕简单地说就是拍照、辨认、转换屏幕。让我们一步一步的解释。拍摄人脸照片在这里,我用的是B

3、UFFALO BSW20KM11BK作为拍摄工具。你也可以用相机自带的软件进行拍摄,但是考虑到后期的处理,用自制的程序拍摄会更好。同样,因为接下来会处理人脸识别,所以需要把画面切割成只有人脸的部分。所以我用Python和OpenCV捕捉人脸图像。代码在这里:github/Hironsan/BossSensor/blob/master/camera_reader.py结果我得到了比我想象中更清晰的照片。认出老板的脸接下来,我们用机器学习分三步识别出老板的面容:收集照片对照片进行预处理建立机器学习模型收集照片首先,我需要收集大量老板的照片用作学习,其中收集方法有三种:谷歌搜索从Facebook搜索

4、拍视频前面两种方法能找到的照片很少,所以我用拍摄视频的方法,再将视频分解成许多照片。预处理照片虽然我得到了大量面部图片,但是学习模型并不能达到预期效果。这是因为照片中还有和面部无关的内容,所以我们要裁剪掉无关内容,只留下面部。这里我用到的是ImageMagick(imagemagick/script/index.php)。最终收集到的面部照片如下:现在要开始让模型学习了!建立机器学习模型Keras用来建立卷积神经网络(CNN),TensorFlow用作Keras的后端。如果只用来识别面部,你可以请求类似Computer Vision API的网络API进行图片识别,但是这次我决定自己DIY。网

5、络的框架如下所示。Keras非常方便,因为它能非常容易地输出这一结构:_Layer (type) Output Shape Param # Connected to =convolution2d_1 (Convolution2D) (None, 32, 64, 64) 896 convolution2d_input_100 _activation_1 (Activation) (None, 32, 64, 64) 0 convolution2d_100 _convolution2d_2 (Convolution2D) (None, 32, 62, 62) 9248 activation_100

6、 _activation_2 (Activation) (None, 32, 62, 62) 0 convolution2d_200 _maxpooling2d_1 (MaxPooling2D) (None, 32, 31, 31) 0 activation_200 _dropout_1 (Dropout) (None, 32, 31, 31) 0 maxpooling2d_100 _convolution2d_3 (Convolution2D) (None, 64, 31, 31) 18496 dropout_100 _activation_3 (Activation) (None, 64,

7、 31, 31) 0 convolution2d_300 _convolution2d_4 (Convolution2D) (None, 64, 29, 29) 36928 activation_300 _activation_4 (Activation) (None, 64, 29, 29) 0 convolution2d_400 _maxpooling2d_2 (MaxPooling2D) (None, 64, 14, 14) 0 activation_400 _dropout_2 (Dropout) (None, 64, 14, 14) 0 maxpooling2d_200 _flatt

8、en_1 (Flatten) (None, 12544) 0 dropout_200 _dense_1 (Dense) (None, 512) 6423040 flatten_100 _activation_5 (Activation) (None, 512) 0 dense_100 _dropout_3 (Dropout) (None, 512) 0 activation_500 _dense_2 (Dense) (None, 2) 1026 dropout_300 _activation_6 (Activation) (None, 2) 0 dense_200 =Total params:

9、 6489634代码在这里:github/Hironsan/BossSensor/blob/master/boss_train.py目前为止,只要老板出现在摄像机镜头下,系统就能认出他。切换屏幕现在,学习过的模型可以认出老板的脸了,下一步就是切换屏幕。首先放一张假装在工作时候的照片,因为我是程序员,所以以下是我的工作常态:如果想全屏显示这张图片,可以用PyQt,代码在这里:github/Hironsan/BossSensor/blob/master/image_show.pyOK,一切准备就绪。成品展示把上面的技术结合在一起,我们的工作就完成了。接下来让我们试验一下。老板离开了他的座位并向我走来OpenCV检测到了他的脸然后向模型中输入了图片屏幕切换成功!结论目前我用OpenCV进行面部识别,但是由于OpenCV的准确性不高,我打算尝试一下Dlib提高准确度。我还想试一下自己训练的人脸检测模型。另外,由于摄像头捕捉到的画面也并不准确,我会对此加以改进。后记目前知乎上有人已经做出了该项目的Demo,加以改进后可以直接把老板来了的信息发送到手机上。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1