衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

一款系統能識別逐漸朝你走來的老板,并且自動隱藏正在瀏覽的屏幕

zhKF_jqr_AI ? 來源:未知 ? 作者:李倩 ? 2018-06-26 16:28 ? 次閱讀

在當下網絡發達的時代,我們很難抵擋信息的沖擊,上班時間總想偷偷刷個微博、看個新聞啥的,才能走在潮流前線嘛!然而此時此刻,最怕老板悄咪咪出現在身后,恐怖指數可以和門外突然出現的班主任相比。

一身冷汗之后,手忙腳亂馬上切換屏幕!假裝努力工作!但是一切都太晚了,你的小動作都被老板看在眼里、記在心中……

所以,為了躲避老板的監控,日本一程序員自制了一款系統,能識別逐漸朝你走來的老板,并且自動隱藏正在瀏覽的屏幕。

具體來說,系統使用了基于Keras的神經網絡學習辨認人臉,網絡攝像頭用于判斷目標對象是否靠近,并基于判斷切換屏幕。以下是論智對這一項目的編譯。

任務概述

這一任務的目標是當老板靠近我的時候,屏幕可以自動切換到與工作有關的內容。我和老板的位置大致如下:

從他的座位到我的座位大約有6~7米的距離,這之間只需要4~5秒的時間。所以我必須讓系統在幾秒內完成一系列動作。

制定策略

首先,讓電腦通過深度學習掌握老板的臉。然后,在我的工位上設置一個攝像頭,當捕捉到老板的臉時,屏幕可以自動切換。我將這套系統稱為“老板感應器(Boss Sensor)”,簡直完美!

系統架構

“老板感應器”的簡單結構如下:

攝像頭能實時拍攝圖像

經過學習的模型從拍攝圖像中檢測并認出老板的臉

確認之后切換屏幕

簡單地說就是拍照、辨認、轉換屏幕。讓我們一步一步的解釋。

拍攝人臉照片

在這里,我用的是BUFFALO BSW20KM11BK作為拍攝工具。

你也可以用相機自帶的軟件進行拍攝,但是考慮到后期的處理,用自制的程序拍攝會更好。同樣,因為接下來會處理人臉識別,所以需要把畫面切割成只有人臉的部分。所以我用Python和OpenCV捕捉人臉圖像。代碼在這里:github.com/Hironsan/BossSensor/blob/master/camera_reader.py

結果我得到了比我想象中更清晰的照片。

認出老板的臉

接下來,我們用機器學習分三步識別出老板的面容:

收集照片

對照片進行預處理

建立機器學習模型

收集照片

首先,我需要收集大量老板的照片用作學習,其中收集方法有三種:

谷歌搜索

從Facebook搜索

視頻

前面兩種方法能找到的照片很少,所以我用拍攝視頻的方法,再將視頻分解成許多照片。

預處理照片

雖然我得到了大量面部圖片,但是學習模型并不能達到預期效果。這是因為照片中還有和面部無關的內容,所以我們要裁剪掉無關內容,只留下面部。這里我用到的是ImageMagick(www.imagemagick.org/script/index.php)。

最終收集到的面部照片如下:

現在要開始讓模型學習了!

建立機器學習模型

Keras用來建立卷積神經網絡(CNN),TensorFlow用作Keras的后端。如果只用來識別面部,你可以請求類似Computer Vision API的網絡API進行圖片識別,但是這次我決定自己DIY

網絡的框架如下所示。Keras非常方便,因為它能非常容易地輸出這一結構:

____________________________________________________________________________________________________

Layer (type) Output Shape Param # Connected to

====================================================================================================

convolution2d_1 (Convolution2D) (None, 32, 64, 64) 896 convolution2d_input_1[0][0]

____________________________________________________________________________________________________

activation_1 (Activation) (None, 32, 64, 64) 0 convolution2d_1[0][0]

____________________________________________________________________________________________________

convolution2d_2 (Convolution2D) (None, 32, 62, 62) 9248 activation_1[0][0]

____________________________________________________________________________________________________

activation_2 (Activation) (None, 32, 62, 62) 0 convolution2d_2[0][0]

____________________________________________________________________________________________________

maxpooling2d_1 (MaxPooling2D) (None, 32, 31, 31) 0 activation_2[0][0]

____________________________________________________________________________________________________

dropout_1 (Dropout) (None, 32, 31, 31) 0 maxpooling2d_1[0][0]

____________________________________________________________________________________________________

convolution2d_3 (Convolution2D) (None, 64, 31, 31) 18496 dropout_1[0][0]

____________________________________________________________________________________________________

activation_3 (Activation) (None, 64, 31, 31) 0 convolution2d_3[0][0]

____________________________________________________________________________________________________

convolution2d_4 (Convolution2D) (None, 64, 29, 29) 36928 activation_3[0][0]

____________________________________________________________________________________________________

activation_4 (Activation) (None, 64, 29, 29) 0 convolution2d_4[0][0]

____________________________________________________________________________________________________

maxpooling2d_2 (MaxPooling2D) (None, 64, 14, 14) 0 activation_4[0][0]

____________________________________________________________________________________________________

dropout_2 (Dropout) (None, 64, 14, 14) 0 maxpooling2d_2[0][0]

____________________________________________________________________________________________________

flatten_1 (Flatten) (None, 12544) 0 dropout_2[0][0]

____________________________________________________________________________________________________

dense_1 (Dense) (None, 512) 6423040 flatten_1[0][0]

____________________________________________________________________________________________________

activation_5 (Activation) (None, 512) 0 dense_1[0][0]

____________________________________________________________________________________________________

dropout_3 (Dropout) (None, 512) 0 activation_5[0][0]

____________________________________________________________________________________________________

dense_2 (Dense) (None, 2) 1026 dropout_3[0][0]

____________________________________________________________________________________________________

activation_6 (Activation) (None, 2) 0 dense_2[0][0]

====================================================================================================

Total params: 6489634

代碼在這里:github.com/Hironsan/BossSensor/blob/master/boss_train.py

目前為止,只要老板出現在攝像機鏡頭下,系統就能認出他。

切換屏幕

現在,學習過的模型可以認出老板的臉了,下一步就是切換屏幕。首先放一張假裝在工作時候的照片,因為我是程序員,所以以下是我的工作常態:

如果想全屏顯示這張圖片,可以用PyQt,代碼在這里:github.com/Hironsan/BossSensor/blob/master/image_show.py

OK,一切準備就緒。

成品展示

把上面的技術結合在一起,我們的工作就完成了。接下來讓我們試驗一下。

老板離開了他的座位并向我走來

OpenCV檢測到了他的臉然后向模型中輸入了圖片

屏幕切換成功!

結論

目前我用OpenCV進行面部識別,但是由于OpenCV的準確性不高,我打算嘗試一下Dlib提高準確度。我還想試一下自己訓練的人臉檢測模型。另外,由于攝像頭捕捉到的畫面也并不準確,我會對此加以改進。

后記

目前知乎上有人已經做出了該項目的Demo,加以改進后可以直接把老板來了的信息發送到手機上。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 神經網絡
    +關注

    關注

    42

    文章

    4781

    瀏覽量

    101176
  • 深度學習
    +關注

    關注

    73

    文章

    5516

    瀏覽量

    121553

原文標題:摸魚神器:用深度學習實現老板靠近自動切屏

文章出處:【微信號:jqr_AI,微信公眾號:論智】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    DIY一款基于arduino的自動澆花系統

    DIY一款既有創意,又實用的基于arduino的自動澆花系統
    的頭像 發表于 11-25 18:31 ?7.6w次閱讀

    怎用設置任務欄自動隱藏,并在“開始”菜單顯示小圖標

    `<p>步驟:任務欄-》右鍵-》屬性-》在任務欄選中<font face="Verdana">自動隱藏
    發表于 06-28 10:57

    你熟悉的十大另類瀏覽

    :18.0.1025.162  支持系統:Windows XP和Windows 7  五、Swiftfox  這是一款經過優化火狐瀏覽器后形成的瀏覽器,
    發表于 07-08 11:10

    怎么在labview中實現靠邊自動隱藏效果??

    在labview中實現靠邊自動隱藏效果,就是類似于QQ界面靠近電腦的屏幕的邊上就是自動隱藏這樣子的個功能,謝謝了。。。
    發表于 11-02 21:43

    布爾控件鼠標進入自動隱藏名稱.rar

    鼠標移動到布爾控件上方自動隱藏它的標題和標簽,移出后又顯示
    發表于 07-11 09:00

    多種方式減輕瀏覽器的資源占用   

    ,讓它們在使用的時候可以輕裝前進了呢?   首先下載一款名為speedyfox的小工具,并且退出正在運行的瀏覽器等軟件。該工具運行以后會自動
    發表于 06-28 14:54

    請問Altium Designer19畫原理圖時怎么隱藏componets中的PCBLIB封裝?

    Altium designer19畫原理圖時如何隱藏componets中的PCBLIB封裝哦?18是自動隱藏,19怎么隱藏哦?H:\Desktop\1.png
    發表于 09-29 01:10

    AD18 原理圖生成PCB元件標號自動隱藏,是什么原因?

    AD18原理圖生成PCB文件后,元件位號都自動隱藏了。不知道是什么原因,可能動了什么設置了,直恢復不過來。
    發表于 09-19 08:10

    怎樣設計研發一款高性能的智能太陽飲水機控制系統

    取之不盡、用之不竭,其次干凈無污染又是大特點,因此積極推廣太陽的應用具有重大意義。本設計將研發一款高性能的智能太陽飲水機控制系統,產品
    發表于 12-08 08:00

    基于語音識別一款識別語音的App

    最近做了一款語音識別的App,想著利用手機控制arduino實現RGB的調節,開發思路:基于訊飛語音識別一款
    發表于 03-01 07:05

    InletexEMC_一款小巧的屏幕共享軟件

    電子發燒友網站提供《InletexEMC_一款小巧的屏幕共享軟件.rar》資料免費下載
    發表于 05-15 14:26 ?2次下載

    Mozilla正在打造一款專門針對VR/AR頭盔上網用的瀏覽

    Mozilla,家以開發Firefox在線瀏覽器出名的軟件廠商,近日公布他們正在打造一款專門針對VR/AR頭盔上網用的瀏覽器 - Fire
    發表于 08-23 14:23 ?885次閱讀

    Mozilla正在開發一款用于VR、AR和MR設備的Firefox瀏覽

    Mozilla 在今年 4 月透露,他們正在開發一款用于 VR、AR 和 MR 設備的 Firefox 瀏覽器,現在,Firefox Reality 正式推出,用戶可以通過 Viveport、Oculus、Daydream 的應
    發表于 09-25 11:11 ?1117次閱讀

    新版火狐瀏覽器:一款專為VR開發的網絡瀏覽

    今年早些時候,火狐瀏覽器Firefox的開發者Mozilla宣布,他們正在開發一款新版本的火狐瀏覽器,這款瀏覽器專為VR和AR頭戴設備設計
    發表于 10-01 16:30 ?3671次閱讀

    繼綠光瀏覽器、Tuber瀏覽器后,小編又發現一款神級APP

    現如今最受年輕人喜歡的莫過于瀏覽軟件,隨意的打開手機都可以看到琳瑯滿目的APP。都2021年了,一款真正好用的APP瀏覽器是什么樣的呢?繼綠光瀏覽器,Tuber
    發表于 09-30 11:22 ?2.1w次閱讀
    繼綠光<b class='flag-5'>瀏覽</b>器、Tuber<b class='flag-5'>瀏覽</b>器后,小編又發現<b class='flag-5'>一款</b>神級APP
    大邑县| 百家乐破解策略| 百家乐官网筹码皇冠| 澳门百家乐官网怎洋赢钱| 百家乐官网信息| 破解百家乐官网真人游戏| 哪里有百家乐官网游戏下载| 百家乐官网电话投注怎么玩 | 24卦| 24山向| 百家乐娱乐城注册| 百家乐高手长胜攻略| 百家乐心得打法| 喜达百家乐的玩法技巧和规则 | 博彩网大全| 邵阳市| 澳门百家乐官网技巧| 百家乐官网摇色子网站| 百家乐官网棋牌交友| 凱旋门百家乐官网的玩法技巧和规则 | 百家乐官网游戏机图片| 红桃K百家乐官网的玩法技巧和规则 | 威尼斯人娱乐城送宝马| 威尼斯人娱乐场cqsscgw88| 德州扑克高手| 绍兴县| 尊龙百家乐官网娱乐平台| 百家乐怎么才赢| 百家乐图形的秘密破解| 香港六合彩开奖现场直播| 百家乐官网游戏类型| 百家乐官网看图赢| 百家乐外挂程式| 百家乐bp| 平罗县| 网上百家乐游戏| 百家乐官网二十一点| 博九百家乐娱乐城| 高档百家乐桌子| 竞彩足球推荐| 广东百家乐官网网|