◆廣東省東莞中學(xué)松山湖學(xué)校高一(十四)班 陳霖凱
最近朋友A向我訴苦:“總有人趁我不在的時(shí)候偷用我的電腦,不是打亂桌面的圖標(biāo)順序,就是刪除我的文件。你能幫我想個(gè)辦法,找到偷用我電腦的‘真兇’嗎?”
要抓到“真兇”,就得找到其偷用電腦的證據(jù),最好的證據(jù)就是留下相關(guān)的影像!最初,我建議A用電腦自帶的攝像頭充當(dāng)監(jiān)控器。但研討后我們發(fā)現(xiàn),電腦自帶的攝像頭錄制的視頻時(shí)間過(guò)長(zhǎng),不便于快速查找“真兇”,所以這個(gè)方案被否定了。
于是我便思考,能否讓筆記本電腦上自帶的攝像頭在有人靠近電腦時(shí)自動(dòng)拍照,記錄“真兇”的影像證據(jù),以便找出“真兇”?
我提出的第一版方案是使用python對(duì)攝像頭返回的每一幀進(jìn)行處理,識(shí)別出人臉并拍照。這個(gè)方案主要通過(guò)opencv庫(kù)及其內(nèi)置的人臉檢測(cè)分類器工作,技術(shù)較成熟,進(jìn)行相關(guān)的開(kāi)發(fā)也十分便捷。
編寫程序后,我發(fā)現(xiàn)這個(gè)方案存在如下兩個(gè)問(wèn)題。
1.該方案在識(shí)別人臉時(shí),易受外部環(huán)境的干擾而導(dǎo)致識(shí)別失敗。例如,用一張紙遮住人臉的下半部分后,程序便無(wú)法確認(rèn)攝像頭傳回的畫面中有無(wú)人臉。如果“真兇”稍加偽裝,遮住人臉的某些特征部位,程序便無(wú)法識(shí)別。
2.該方案對(duì)電腦資源占用過(guò)大,性能不佳的電腦運(yùn)行程序時(shí)易導(dǎo)致系統(tǒng)崩潰(朋友A的電腦就因?yàn)樾阅懿患讯霈F(xiàn)了這樣的情況)。
為解決上述問(wèn)題,我又開(kāi)始思索:既然基于人臉的識(shí)別方式不夠精準(zhǔn),能否對(duì)人體的其他特征進(jìn)行監(jiān)測(cè)?
人體會(huì)向外輻射紅外光,紅外光很難被屏蔽。所以,我想使用Arduino這一開(kāi)源創(chuàng)客神器與人體紅外感應(yīng)模塊來(lái)找出“真兇”。只要“真兇”進(jìn)入感應(yīng)模塊的感應(yīng)區(qū)域,紅外感應(yīng)模塊就會(huì)通過(guò)高低電平的變化向Arduino控制板發(fā)出信號(hào),Arduino通過(guò)USB線與電腦進(jìn)行串口通信,電腦中運(yùn)行的上位機(jī)程序收到串口傳來(lái)的信號(hào)后,通過(guò)接口調(diào)用攝像頭自動(dòng)抓拍。
圖2為根據(jù)上述方案做的裝置半成品,但缺少了3D打印的外殼。該裝置的主控是一塊Arduino Uno,傳感器部分使用了人體紅外感應(yīng)模塊HC-SR501,用一根數(shù)據(jù)線與電腦連接,通過(guò)串口與電腦端的python腳本通信,操控電腦攝像頭拍照。Arduino的具體接線如圖3。
圖 1 opencv人臉識(shí)別易受環(huán)境干擾導(dǎo)致識(shí)別失敗
圖2 半成品裝置
圖3 Arduino的接線
人體紅外感應(yīng)模塊HC-SR501價(jià)格低,按照上圖連接性能也可以滿足該項(xiàng)目的需求。這個(gè)傳感器有可重復(fù)和不可重復(fù)兩種觸發(fā)模式。我選擇的是默認(rèn)不可重復(fù)觸發(fā)模式,即感應(yīng)輸出高電平后,延時(shí)時(shí)間一結(jié)束,輸出將自動(dòng)從高電平變?yōu)榈碗娖?。模塊上有兩個(gè)可用螺絲刀調(diào)節(jié)的旋鈕,可根據(jù)自身情況,調(diào)整探測(cè)距離等參數(shù)。
圖4 模塊上有兩個(gè)可用螺絲刀調(diào)節(jié)的旋鈕
接下來(lái)是編寫Arduino與python腳本的具體程序。將Arduino程序輸入開(kāi)發(fā)板中,運(yùn)行python腳本(注意,應(yīng)將python腳本中的端口號(hào)改為自己的電腦對(duì)應(yīng)的端口號(hào),可以通過(guò)Arduino IDE查看),先等待傳感器初始化(初始化的過(guò)程大概耗時(shí)一分鐘),將裝置擺在合適的位置,傳感器探頭指向需要探測(cè)的方向,例如與電腦屏幕對(duì)準(zhǔn)同一方向,即“真兇”可能出現(xiàn)的方向,然后就可以開(kāi)啟Arduino并正常工作了。
當(dāng)有人靠近傳感器時(shí),電腦會(huì)自動(dòng)拍照。測(cè)試時(shí),我模仿“真兇”靠近傳感器,該裝置立即自動(dòng)拍照。測(cè)試成功!
我已經(jīng)將這個(gè)小裝置及腳本的資料發(fā)給了A,希望他能早日找到“真兇”!