Bananapro SimpleCV 人臉定位

安裝好了SimpleCV,接下來我們來試一試人臉定位的功能,注意我們現在做的事人臉定位而不是人臉識別,這裏主要利用的是Haar分類器,具體原理我就不在這裏展開了,下面介紹

  1. 針對圖片的人臉定位
先貼出來代碼再一一講解!

from SimpleCV import *
Img=Image("display.jpg")
faces = Img.findHaarFeatures('face.xml')
if faces:
<span style="white-space:pre">	</span>for face in faces:
        print "Face at"+str(face.coordinates())
        face.draw(Color.RED,1)
   
else:
        break
Img.save("display2.jpg")
利用python語言,首先加載SimpleCV庫,然後Image("display.jpg") 加載圖片,findHaarFeatures函數調用Haar分類器,訓練的樣本爲face.xml即人臉定位,函數返回值爲識別到的人臉數據。然後對於識別到的每一張臉打印出人臉的位置並在人臉上劃上紅色的方框,並保存在display2.jpg中

       2.針對攝像頭的人臉定位

from SimpleCV import *
import time
display= Display()
my =Camera()
while display.isNotDone():
        Img = my.getImage()
        faces = Img.findHaarFeatures('face.xml')
        if faces:
                for face in faces:
                        #print "Face at"+str(face.coordinates())
                        face.draw(Color.RED,1)
        Img.show()
重複的地方,不再贅述,這裏主要的區別就是圖像來源變成了camera,while display.isNotDone() 表示如果顯示窗口沒有被人爲關閉(即按下x),Img=my.getImage(),是從攝像頭截圖,截圖打上人臉識別方框後,Img.show負責回顯在桌面對話框中,由於回顯過程在while循環下,就相當於連續輸出攝像頭的動態畫面。

3.問題

如果大家在使用過程中pygame出現問題,無法畫出方框,極有可能是pygame安裝時沒有安裝font庫,解決辦法是去編譯安裝SDL_ttf (依賴SDL1.2)和freetype(版本大於2.4.8),相關pygame依賴的說明請參考pygame。當然利用bananapro處理的時候畫面十分卡頓,cpu性能堪憂!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章