发 帖  
原厂入驻New

[经验] 【Raspberry Pi 3试用体验】+Opencv+python的人脸识别

2016-5-13 21:38:47  19077 人脸识别
分享
8
本帖最后由 擦肩的阳光 于 2016-5-13 21:50 编辑

上次安装了opencv库,这次我们来使用一下。
安装PIL库
  1. sudo pip install pil
复制代码
  1. import os
  2. from PIL import Image, ImageDraw
  3. import cv

  4. def detect_object(image):
  5.     '''检测图片,获取人脸在图片中的坐标'''
  6.     grayscale = cv.CreateImage((image.width, image.height), 8, 1)
  7.     cv.CvtColor(image, grayscale, cv.CV_BGR2GRAY)

  8.     cascade = cv.Load("/usr/local/opencv-2.4.9/data/haarcascades/haarcascade_frontalface_alt_tree.xml")
  9.     rect = cv.HaarDetectObjects(grayscale, cascade, cv.CreateMemStorage(), 1.1, 2,
  10.         cv.CV_HAAR_DO_CANNY_PRUNING, (20,20))

  11.     result = []
  12.     for r in rect:
  13.         result.append((r[0][0], r[0][1], r[0][0]+r[0][2], r[0][1]+r[0][3]))

  14.     return result

  15. def process(infile):
  16.     '''在原图上框出头像并且截取每个头像到单独文件夹'''
  17.     image = cv.LoadImage(infile);
  18.     IF image:
  19.         faces = detect_object(image)

  20.     im = Image.open(infile)
  21.     path = os.path.abspath(infile)
  22.     save_path = os.path.splitext(path)[0]+"_face"
  23.     try:
  24.         os.mkdir(save_path)
  25.     except:
  26.         pass
  27.     if faces:
  28.         draw = ImageDraw.Draw(im)
  29.         count = 0
  30.         for f in faces:
  31.             count += 1
  32.             draw.rectangle(f, outline=(255, 0, 0))
  33.             a = im.crop(f)
  34.             file_name = os.path.join(save_path,str(count)+".jpg")
  35.      #       print file_name
  36.             a.save(file_name)

  37.         drow_save_path = os.path.join(save_path,"out.jpg")
  38.         im.save(drow_save_path, "JPEG", quality=80)
  39.     else:
  40.         print "Error: cannot detect faces on %s" % infile

  41. if __name__ == "__main__":
  42.     process("kobe.jpg")
复制代码

接下来只要运行python xx.py
过一会,如果图片内有人的话生成一个文件夹,里面有一张人脸的截图和一张人脸的标识图。
以下为示例:
接下来用一下摄像头:
  1. sudo apt-get install fswebcam
  2. sudo fswebcam --device /dev/video0  a.jpg
复制代码
在 process(“kobe.jpg”) 前面加一句:
  1. os.system("fswebcam --device /dev/video0 /home/pi/Desktop/kobe.jpg")
复制代码
看一下效果:
光线不好还是能认出来,说明opencv自带的分类器算开源里面不错的了~
参考:
Tigerboard开发板试用体验 python+opencv的人脸识别
NanoPi2试用体验 简单人脸识别-结项
擦肩的阳光 2016-5-13 21:49:51
好啦,此次的试用基本结项啦~
这里汇总下:
1、【Raspberry Pi 3申请】基于树莓派3的多项服务搭建与使用
https://bbs.elecfans.com/jishu_580634_1_1.html
2、【3.5寸电阻屏试用体验】+ 试用体验(4.20)
https://bbs.elecfans.com/jishu_582681_1_1.html
3、【Raspberry Pi 3试用体验】+ 开箱+扩容+samba(4.20)
https://bbs.elecfans.com/jishu_582843_1_1.html
4、【Raspberry Pi 3试用体验】+wifi的一些问题(4.21)
https://bbs.elecfans.com/jishu_583079_1_1.html
5、【Raspberry Pi 3试用体验】+ 中文显示及输入+百度云传输(4.22)
https://bbs.elecfans.com/jishu_583519_1_1.html
6、【Raspberry Pi 3试用体验】+ 搭建本地DNS服务器(4.24)
https://bbs.elecfans.com/jishu_583911_1_1.html
7、【Raspberry Pi 3试用体验】+ 发微博(4.24)
https://bbs.elecfans.com/jishu_583914_1_1.html
8、【Raspberry Pi 3试用体验】+ 一些对系统的困惑(4.28) (提问帖)
https://bbs.elecfans.com/jishu_595881_1_1.html
9、【Raspberry Pi 3试用体验】+ 使用owncloud云服务(4.30)
https://bbs.elecfans.com/jishu_596069_1_1.html
10、【Raspberry Pi 3试用体验】+ngrok 内网穿透(4.30)
https://bbs.elecfans.com/jishu_596092_1_1.html
11、【3.5寸电阻屏试用体验】+ 在微雪电阻屏和液晶屏之间切换(5.1)
https://bbs.elecfans.com/jishu_596342_1_1.html
12、【Raspberry Pi 3试用体验】+编译opencv(5.5)
https://bbs.elecfans.com/jishu_597533_1_1.html
13、【Raspberry Pi 3试用体验+Opencv+python的人脸识别(5.13)
https://bbs.elecfans.com/jishu_607153_1_1.html
回复

举报

xianyoudian 2016-5-13 22:39:31
谢谢分享学习一下
回复

举报

smalln 2016-5-17 13:14:07
正需要这个,谢谢
回复

举报

elecfans跑堂 2016-5-17 16:56:48
楼主你的这个拍的也太黑了吧  哈哈哈哈  敢漏个正脸么
回复

举报

擦肩的阳光 2016-5-17 17:10:36
elecfans跑堂 发表于 2016-5-17 16:56
楼主你的这个拍的也太黑了吧  哈哈哈哈  敢漏个正脸么

宿舍光线是在太暗了。。。
回复

举报

向上***牛C 2016-5-19 11:14:48
楼主,请问你提取出来的图像如何对其再打包成视频格式,编码,输出至网络端口呢?
回复

举报

JonkMing 2016-5-21 09:24:19
感觉 6的不要不要的~~~~
回复

举报

嗯一生戴戴 2016-7-23 09:22:38
我没有生成那个文件,也没有显示错误,怎么办
回复

举报

苏国林 2016-8-22 14:39:16
楼主有没有建个QQ群方便讨论学习
回复

举报

乌云踏雪 2016-9-5 14:26:12
厉害啊
回复

举报

whl_458 2016-9-7 13:19:20
回复

举报

空澄 2017-1-5 20:01:57

谢谢分享学习一下
回复

举报

只有小组成员才能发言,加入小组>>

651个成员聚集在这个小组

加入小组

创建小组步骤

关闭

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

快速回复 返回顶部 返回列表