1回答

0收藏

[原创] 【Tigerboard】基于Tigerboard的人脸识别测试

#拆解/开源硬件 #拆解/开源硬件 4047 人阅读 | 1 人回复 | 2016-03-20

本帖最后由 windworld-1898442 于 2016-3-20 23:23 编辑

   实现人脸识别的方法和途径很多,不过OpenCV 作为开源的计算机视觉软件包,在人脸识别方面相比其他方法更为简单些,在这里我们采用OpenCV相关库数,并Python编程语言下和TigerBoard开发板来实现简单人脸识别,方法如下。

硬件:
1. TigerBoar开发板
2. USB免驱摄像头
软件:
1. Python
2. opencv2.4.9及相关依赖包
3. simpleCV函数库
开发环境:
1.Gobian

步骤一:搭建opencvPython开发环境(如果前面已经搭建好可以忽略)


步骤二:安装SimpleCV库函数(如果前面已经搭建好可以忽略)
  1. sudo apt-get install ipython python-opencv python-scipy python-numpy python-setuptools
  2. python-pip
  3. sudo pip install https://github.com/ingenuitas/SimpleCV/zipball/master
  4. sudo apt-get install python-pygame
  5. sudo apt-get install python-imaging
复制代码


步骤三:Mplayer摄像头并测试



步骤四:Python实现人脸识别程序
  1. #!/usr/bin/env python
  2. from SimpleCV import *
  3. import SimpleCV
  4. from time import sleep
  5. #myCamera = Camera(prop_set={'width':320, 'height': 240})
  6. myCamera =SimpleCV.Camera()
  7. myDisplay = Display(resolution=(320, 240))
  8. while not myDisplay.isDone():
  9.    frame = myCamera.getImage()
  10.    faces = frame.findHaarFeatures('face')
  11.    if faces:
  12.      for face in faces:
  13.         print "Face at: " + str(face.coordinates())
  14.         facelayer = DrawingLayer((frame.width,frame.height))
  15.         w=face.width()
  16.         h=face.height()
  17.         print "x:"+str(w)+" y:"+str(h)
  18.         facebox_dim = (w,h)
  19.         facebox = facelayer.centeredRectangle(face.coordinates(),facebox_dim)
  20.         frame.addDrawingLayer(facelayer)
  21.         frame.applyLayers()
  22.    else:
  23.         print "No faces detected."
  24.    frame.save(myDisplay)
  25.    sleep(.1)

复制代码
程序说明:
myCamera =Camera(prop_set={'width':320,'height': 240})
#指定摄像头影像尺寸
myDisplay =Display(resolution=(320, 240))
#显示窗口大小
frame =myCamera.getImage()
#获取视频流摄像头影像
faces =frame.findHaarFeatures('face')
#寻找人脸
facebox=facelayer.centeredRectangle(face.coordinates(),facebox_dim)
frame.addDrawingLayer(facelayer)
#框出识别到的人脸并把图层放到画面上
print "Nofaces detected."
#如果未检测到人脸打印信息
步骤五:运行程序



  这里如果识别到有人脸出现在摄像头范围内,程序会框出人脸,同时Python shell下会打印出具体位置,如果没有检测到人脸则会打印Nofaces detected。

分享到:
回复

使用道具 举报

回答|共 1 个

倒序浏览

沙发

jwdxu2009

发表于 2016-3-20 22:36:37 | 只看该作者

参考和学习
您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条