幫你偷懶的「老闆探測器」,簡直是機器學習年末最佳應用

在漫長的無意工做的「年末」裏,大家大概須要動用深度學習技能來僞裝好好工做:當老闆快要走到身後,讓電腦自動隱藏「工做不宜」的窗口。

付出這麼多努力就爲了工做時開個小差?

好像是的……

AHOGRAMMER發佈了這樣一個名爲「老闆傳感器」的製做教程:

定義任務


這個程序的任務就是當老闆接近的時候,自動隱藏「工做不宜」窗口。



老闆和個人座位距離約6-7米,若是我在看「工做不宜」的東西,當老闆離開座位,有4-5秒的時間切換界面。


策略


1.用深度學習訓練一個模型,讓電腦能認出老闆的臉。

2.在桌上安裝一個攝像頭,當攝像頭捕捉到老闆的臉,讓電腦自動隱藏「工做不宜」窗口。



老闆探測器的系統架構以下:



  • Camera:一個實時捕捉圖像的攝像頭。
  • Recognize:一個訓練過的模型,能識別面部特徵。
  • Hide Screen:若是識別的結果是老闆,隱藏「工做不宜」窗口。

所以,這個系統須要如下能力:

  • 拍攝臉部照片
  • 識別臉部照片
  • 切換電腦窗口
咱們來逐個解決。

拍攝臉部照片


我選擇了BUFFALO BSW20KM11BK攝像頭。



攝像頭有自帶的拍照程序,可是考慮到後續的處理,須要在拍照時自動切出臉部圖片,所以我選擇用了Python和OpenCV來拍照。

獲得的臉部照片質量比我預想的要好。


識別老闆的臉


接下來,咱們用機器學習算法讓計算機認出老闆的臉。分爲如下三步:

  1. 收集圖片
  2. 處理圖片
  3. 創建機器學習模型

讓咱們一步一步來看。

收集圖片


首先,咱們須要收集大量照片供算法學習,我用下面的收集方法:

  • Google圖片搜索
  • Facebook上的相冊
  • 拍視頻

起初,我經過網絡搜索和Facebook收集了圖片,可是數量不夠,因而我又拍攝了視頻,而後轉換成大量的圖片。

處理圖片


咱們收集了大量包括人臉的圖片,可是學習算法還不能直接用,由於圖片裏包含太多不是人臉的部分。所以,咱們須要把臉部剪切出來。

我主要用ImageMagick來作臉部提取的工做,獲得了下面這些臉部照片:



如今能夠開始學習了。


創建機器學習模型


咱們用Keras來創建卷積神經網絡(CNN),而後用TensorFlow來作它的後端。若是你只想識別人臉,能夠用Computer Vision API等圖像識別的Web API。可是此次我決定本身寫一個實時的識別。

這個網絡的架構以下:



如今,當老闆出如今攝像頭範圍內,就能自動被識別出來了。

切換電腦窗口


如今,當訓練過的模型識別出老闆的臉,咱們須要切換窗口來僞裝工做:做爲一個程序員,我選擇切換到這張圖片:



我用PyQt來全屏展現這張圖片。

試用效果


老闆離開座位:



OpenCV探測到人臉,把圖像放進訓練過的模型:



窗口自動切換到僞裝工做的圖片啦ヽ(‘ ∇‘ )ノ ワーイ



做者 | HIRONSAN @ AHOGRAMMER編譯 | 夏乙 @ AI100 題圖來自Unsplash
相關文章
相關標籤/搜索