影像辨識作為近年最熱門的專業技術之一,廣泛用於智慧監視器、車電監控、智慧工廠、生物醫療電子等等;其中,人臉辨識是一個很重要的部分,網絡上已經有相當多的資源可供下載使用;於是我們使用舵機雲台作為鏡頭旋轉的硬件,搭配鏡頭模塊,並結合RaspberryPi 作為微控制器,完成一台自制的人臉辨識追蹤系統,來看看如何操作吧!
背景技術
Haar cascades
這是「Haar Feature-based Cascade Classifier」的簡寫,「Haar-likefeature」為一種判斷某特定物體的矩陣,將待測圖片經由該矩陣運算后,產生該圖片的特征值矩陣。
「Cascade Classifier」是級聯分類器,將數個分類器Classifier依某種關系排列,如果該圖片的特征值矩陣通過階層式分類器的檢驗,即可判斷該待測圖片為某特定物體。總而言之,將照片經由Haar轉換后的特征矩陣,如果通過辨識度由低到高排列的級聯分類器的篩選,即可認定為人像。
硬件組裝
舵機雲台由兩個伺服馬達及一個組合式雲台構成,能夠同時進行左右及前后運動,使用材料如下:
1.組合式舵雲機台
2.SG90伺服馬達x2
舵機雲台組合完成的樣子:
接將相機鏡頭模塊固定在舵機雲台的卡榫處,硬件就組裝完成了。
連接Raspberry Pi
舵機雲台的上下轉動馬達(Pan)與左右轉動馬達(Tilt),需要使用Raspberry Pi的PWM腳位(pin7、11),但RaspberryPi的5V腳位最多只能接16mA,因此需要另外使用RaspberryPi的USB Port,並聯提供電流,才能推動伺服馬達。
除此之外,需要在RaspberryPi上安裝PIR與LED模塊,PIR用於偵測外界的動靜,當有人時才開啟舵機雲台進行搜尋;LED則作為指示器,當舵機雲台發現臉孔並鎖定時,發出亮光作為提示;並在相機扁平電纜插入Raspberry Pi的相機連結埠(CSI)。
CSI位於HDMI與Audio之間
軟件安裝
於Raspberry Pi安裝OpenCV
安裝步驟可參考以下鏈接,
http://yehnan.blogspot.com/2015/12/raspberry-piraspbianopencv.html
OpenCV里面的/haarcascades目錄,已包括數個已經訓練好的Haarcascades分類器,包括正面人臉、眼睛、載着眼鏡、嘴巴、鼻子、微笑、上半身、全身、由上往下的身體、甚至於還有貓臉……等xml文件名,不須另外下載或自己訓練,可直接使用。
操作流程
1. 當PIR(紅外線感應模塊)偵測到有物體時會啟動舵機,由上往下遞增30度,左右180度來回的轉動,偵測是否有臉孔出現;若有則持續追蹤臉孔,無則持續搜尋。
2. 若一輪搜尋結束后,PIR感測不到物體時,則停止舵機的運作,並等待有下一個物體被PIR偵測到時,再次啟動。
程序代碼
原始程序代碼可以從Github下載,
https://github.com/ch-tseng/PanTilt
您只將舵機雲台的兩個servo分別接到pin 7與pin 11,PIR接到pin 36,LED接到pin 32,執行儲存在RaspberryPi的main.py即可運作。當然您也可以使用其它腳位,只要記得修改程序中相對應的參數值即可。
原文參考
https://mp.weixin.qq.com/s?__biz=MzU0MTg0ODIzNA==&mid=2247484114&idx=1&sn=d86878c72fa78008e60d3719d2cd3e93&chksm=fb22e517cc556c01f46253d1e21dfbbdfd0470317d64ef99043b7c806fea40a54730000839c1#rd