查看: 3413|回复: 1

【Tigerboard】基于Tigerboard的人脸识别测试

[复制链接]
  • TA的每日心情
    奋斗
    2022-10-13 10:27
  • 签到天数: 216 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2016-3-20 11:26:17 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 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开发环境(如果前面已经搭建好可以忽略)
    1.jpg

    步骤二:安装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
    复制代码
    2.jpg
    3.jpg
    步骤三:Mplayer摄像头并测试
    360截图20160320113817893.jpg

    360截图20160320112049781.jpg
    步骤四: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."
    #如果未检测到人脸打印信息
    步骤五:运行程序
    360截图20160320111944284.jpg

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

    回复

    使用道具 举报

  • TA的每日心情

    2021-12-7 12:35
  • 签到天数: 1354 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2016-3-20 22:36:37 | 显示全部楼层
    参考和学习
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

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



    手机版|小黑屋|与非网

    GMT+8, 2024-12-19 06:15 , Processed in 0.128556 second(s), 18 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.