GPU的主页

帮趣游戏     进入个人中心

GPU

gpu

幫趣網協助針對GPU資訊發佈, 幫趣網擁有針對IT領域数十萬筆活動聯繫資訊,並且協助廠商做資訊發佈,活動發佈

http://bangqu.com/gpu

职业: GPU

现居:

  • 浏览 798次
  • 感谢 0人
  • 收益 ¥0.0元

利用深度學習開發老闆探測器,再也不擔心刷著微博一回頭突然看到老闆了



如果上班的時候想放鬆一下,或者直說想偷偷懶,看點和工作無關的網頁,這時候萬一老闆突然出現在背後,會不會感到很難堪呢?


有的瀏覽器設置了boss按鍵,手快的人還可以切換屏幕,不過總會顯得不自然,而且經常搞的手忙腳亂的。


一個日本程序員決定自己動手,編寫一個一勞永逸的辦法,我們來看看他是怎麼實現的吧~


思路很直接:用網絡攝像頭自動識別在工位通道走過的人臉,如果確認是老闆的話,就用一張寫滿了代碼的截圖覆蓋到整個屏幕上。


整個工程中應用了Keras深度學習框架來建立識別人臉的神經網絡,和一個網絡攝像頭用來捕捉老闆的人臉。


任務是這樣的:


當老闆接近我的工位時,電腦就會自動切換屏幕。


辦公室的情況如下:

從老闆的座位到我的座位大約6~7米,他會在離開座位後4到5秒鐘到達我的座位,因此,需要在這之前隱藏屏幕,所以時間比較緊迫。


策略:


首先需要讓電腦完成對老闆面部的深度學習。然後在我的辦公桌上擺上一個網絡攝像頭,讓攝像頭對著通道,當網絡攝像頭捕捉到老闆的臉時就切換屏幕。


嗯,這是一個完美的項目。先取一個好名字,就叫Boss Sensor(老闆探測器)好了。

Boss Sensor的簡單結構圖如下:


處理過程分為三步:


網絡攝像頭實時拍攝圖像


學習模型檢測和識別所拍攝圖像的人臉


如果識別結果是老闆則切換屏幕


所需要的技術實現只有三項:


拍攝人臉圖像


識別人臉圖像


切換屏幕


一步步完成之後整合就可以了。


拍攝人臉圖像


首先找一個網絡攝像頭,我用的是BUFFALO BSW20KM11BK攝像頭,大家隨便找個清晰度夠的就可以了。

最好不要用相機自帶的識別軟件裁剪人臉,因為後面的深度學習過程還需要處理。所以,我用Python和OpenCV編寫了一段裁剪人臉圖像的腳本,代碼在這裡下載。


偷拍到的人臉圖像比我之前設想的更清楚▼

識別人臉圖像


接下來,要用機器學習教會電腦識別老闆的臉。


我們需要以下三個步驟:


採集圖像


圖像預處理


建立機器學習模型


讓我們一個接一個看一下。


採集圖像


首先,需要收集大量的圖片供電腦學習。一般來說有三種大量收集圖片的方法:


谷歌圖片搜索


Facebook的圖像採集


從視頻裡截圖


一開始,我像電影裡的特工一樣收集了各種搜索引擎上的老闆照片,還有Facebook上老闆自己上傳的照片,但說實話,沒有收集到足夠的圖像。所以,反正老闆就在身邊,我就簡單粗暴的拍攝了一段他的視頻,然後把視頻分解成大量的圖像。


圖像預處理


現在我有很多人臉圖像了,但還不能拿它們來建立學習模型,必須要裁剪掉與臉部不相關的部分。


我使用ImageMagick來提取人臉,你可以用別的圖像軟件來做。


總之,最後我收集了大量的人臉圖像,就像這樣: ▼

估計我是全世界擁有最多老闆頭像的人了,肯定比他爸爸媽媽要多的多。


現在可以準備機器學習了。


建立機器學習模型


Keras框架用來建立卷積神經網絡和神經網絡培訓。 Tensorflow用來寫Keras的後端。如果只識別臉部的話,可以調用一些Web API比如微軟的Computer Vision API,但這次我決定自己來實現,因為這個項目需要確保實時性。


網絡體系結構大體如下,Keras非常方便,它可以很輕鬆的輸出這樣的結構: ▼

代碼在這裡下載。


至此,只要老闆出現在攝像頭中,我就可以識別出他來了。


切換屏幕


最後一步,很簡單,學習模型識別出老闆的臉之後,把電腦屏幕換掉就好了。


我是程序員,所以我準備了這樣一張圖:▼

電腦上只顯示這張圖片,這樣就可以假裝我在認真工作了。


這張圖需要全屏顯示,所以我調用了PyQt庫,代碼在這裡下載。


一切工作都完成了。


成品


最後把分別實現的技術整合起來並驗證,真的成功了!


“現在老闆離開了座位,正走向我的工位。”▼

“OpenCV已經檢測出人臉,將人臉圖像發送給學習模型。”▼

“學習模型認出了他,屏幕自動切換。ヽ(‘ ∇‘ )ノ”▼

這就是我的Boss Sensor,全部的源碼都放在github上了,可以在這裡下載。


總結


結合網絡攝像頭的實時圖像採集和Keras深度學習框架,確實可以完成人臉識別。


在實踐過程中,我發現OpenCV的圖像精度不夠高,雖然不影響識別,但我準備改用Dlib來提高精度,另外我想自己編寫人臉檢測訓練模型。


網絡攝像頭獲取的圖像不夠清晰,我準備換個攝像頭。


唉,坑還是越挖越深啊~


來源:http://www.leiphone.com/news/201701/769GO52vq3z5ebrG.html

分享时间: