有爱,有技术,有你^_^)y
╱人◕‿‿◕人╲订下契约(注册新用户)

合作站点账号登陆

QQ登录

只需一步,快速开始

快捷导航
查看: 2691|回复: 12
收起左侧

[Python] python-opencv人脸检测

 关闭 [复制链接]

该用户从未签到

30

主题

127

好友

2万

积分

技术宅认证程序员

重度中二患者

积分
28325
发表于 2013-3-15 11:27:49 | 显示全部楼层 |阅读模式

╱人◕‿‿◕人╲定下契约

您需要 登录 才可以下载或查看,没有账号?╱人◕‿‿◕人╲订下契约(注册新用户)

x
又到了骗钱时间!!
人脸检测也算是一个老话题了。。。但是opencv提供了很好的目标检测的API,我们只需要提供harr分类器便可以轻松搞定。。
直接上代码
[mw_shl_code=python,true]#!/usr/bin/env python
# -*- coding:utf-8 -*-
import cv

HAAR_CASCADE_PATH = "/usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_default.xml"
CAMERA_INDEX = 0


def detect_faces(image, cascade, storage):
    faces = []
    detected = cv.HaarDetectObjects(image, cascade, storage, 1.2, 2, cv.CV_HAAR_DO_CANNY_PRUNING, (50, 50))
    if detected:
        for (x, y, w, h), n in detected:
            faces.append((x, y, w, h))
    return faces

if __name__ == "__main__":
    cv.NamedWindow("Video", cv.CV_WINDOW_AUTOSIZE)
    capture = cv.CaptureFromCAM(CAMERA_INDEX)
    storage = cv.CreateMemStorage()
    cascade = cv.Load(HAAR_CASCADE_PATH)
    faces = []
    i = 0
    while True:
        image = cv.QueryFrame(capture)
        if i % 5 == 0:
            faces = detect_faces(image, cascade, storage)
        for (x, y, w, h) in faces:
            cv.Rectangle(image, (x, y), (x + w, y + h), 255, -1)
        cv.ShowImage("Video", image)
        i += 1
        c = cv.WaitKey(10)
[/mw_shl_code]
其中分类器我是直接用了opencv库自带的一个人脸识别的分类器
效果如图 face.png
个人原因挡住脸了。。如果不想挡住脸。。将cv.Rectange中最后一个参数-1改为1或者直接删掉就好了。

这个东西当然也有很大缺陷,比如有时候识别错误啊,而且不支持旋转什么的。。。歪个脖子就认不出来了。。。所以还是有很大的改进空间的。

评分

参与人数 2宅币 +35 贡献 +3 元气(技能点) +3 收起 理由
风音洛洛 + 10 + 3 o(* ̄▽ ̄*)ブ 发糖
Mr_Alex + 25 + 3 o(* ̄▽ ̄*)ブ 发糖

查看全部评分

等死星人
回复

使用道具 举报

签到天数: 1 天

连续签到: 1 天

[LV.1]初来乍到

21

主题

63

好友

1万

积分

第一章

积分
18553
发表于 2013-3-15 12:14:08 | 显示全部楼层
python不错呢,有api就是方便。。
lz完全用ubuntu吗?
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

30

主题

127

好友

2万

积分

技术宅认证程序员

重度中二患者

积分
28325
 楼主| 发表于 2013-3-15 12:21:52 | 显示全部楼层

除了切回windows用ie查成绩啊,用网银啊。打打dota,imba什么的。。。基本就是用ubuntu了。。。对于编程来说省很多心啊。。。windows下有些东西配置还是太麻烦了
等死星人
回复 支持 反对

使用道具 举报

签到天数: 1 天

连续签到: 1 天

[LV.1]初来乍到

21

主题

63

好友

1万

积分

第一章

积分
18553
发表于 2013-3-15 12:24:38 | 显示全部楼层
可惜用的校园网,linux下的锐捷客户端没研究,懒得折腾。。
另外在用渣渣上网本,没那能力虚拟机
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

30

主题

127

好友

2万

积分

技术宅认证程序员

重度中二患者

积分
28325
 楼主| 发表于 2013-3-15 12:28:09 | 显示全部楼层
moxiagy 发表于 2013-3-15 12:24
可惜用的校园网,linux下的锐捷客户端没研究,懒得折腾。。

似乎在哪见过有人问过锐捷客户端的事情的。。。貌似很常用的说。。。不过还好我们学校是直接网页登陆,太方便了。。。不过ubuntu对网的要求比较高吧。。。经常要上外网。。。害得我常年关ipv4用ipv6上外网更新查资料。。。也算比较麻烦的。。。再加上我比较爱尝试新鲜事物。。。每天更新。。。
等死星人
回复 支持 反对

使用道具 举报

该用户从未签到

258

主题

314

好友

3万

积分

第二章

积分
35715
发表于 2013-3-15 13:45:27 | 显示全部楼层
python的opencv啊
之前用过一点C++的opencv
博客什么的求人气 http://bimania.org
回复 支持 反对

使用道具 举报

签到天数: 3 天

连续签到: 1 天

[LV.2]偶尔看看I

41

主题

60

好友

2万

积分

第一章

守望者

积分
21763
发表于 2013-3-15 13:48:56 | 显示全部楼层
foodszhu 最近在本版比较活跃呢 加油哟
向着勋章努力吧
如果有来生,要做一棵树,站成永恒,没有悲欢的姿势。一半在土里安详,一半在风里飞扬,一半洒落阴凉,一半沐浴阳光,非常沉默非常骄傲,从不依靠从不寻找。
回复 支持 反对

使用道具 举报

该用户从未签到

30

主题

127

好友

2万

积分

技术宅认证程序员

重度中二患者

积分
28325
 楼主| 发表于 2013-3-15 14:03:48 | 显示全部楼层
Mr_Alex 发表于 2013-3-15 13:48
foodszhu 最近在本版比较活跃呢 加油哟
向着勋章努力吧

原创贴字数和数量早够了啊。。奈何只有一篇回复够数。。。不过勋章倒在其次,本版过于冷清才是更需要解决的问题所在啊。。。以前还有不少问答贴,现在问答贴都少多了。。全部为了热闹!
等死星人
回复 支持 反对

使用道具 举报

该用户从未签到

81

主题

92

好友

2万

积分

第一章

去哪里找比我更懒得

积分
28955
发表于 2013-3-15 18:16:48 | 显示全部楼层
这个API很给力啊,相对C++还要自己写库的苦逼来讲。。。
回复 支持 反对

使用道具 举报

该用户从未签到

30

主题

127

好友

2万

积分

技术宅认证程序员

重度中二患者

积分
28325
 楼主| 发表于 2013-3-15 18:27:08 | 显示全部楼层
风音洛洛 发表于 2013-3-15 18:16
这个API很给力啊,相对C++还要自己写库的苦逼来讲。。。

opencv是C++库没错啦。。。重复制作轮子可是罪恶啊。。。
但是自己学习就是另一回事了。。。也挺纠结的。。

补充内容 (2013-5-29 19:06):
.。。。。
等死星人
回复 支持 反对

使用道具 举报

该用户从未签到

81

主题

92

好友

2万

积分

第一章

去哪里找比我更懒得

积分
28955
发表于 2013-3-15 18:30:35 | 显示全部楼层
foodszhu 发表于 2013-3-15 18:27
opencv是C++库没错啦。。。重复制作轮子可是罪恶啊。。。
但是自己学习就是另一回事了。。。也挺纠结的。 ...

反正还处于痛苦的学习阶段,等到能流畅的吐代码了就好了Q Q
回复 支持 反对

使用道具 举报

该用户从未签到

9

主题

34

好友

4626

积分

序章

积分
4626
发表于 2013-3-16 22:53:22 | 显示全部楼层
毕业设计就是python的opencv 人体跟踪
正在研究苦b的算法中啊。。。。。
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

30

主题

127

好友

2万

积分

技术宅认证程序员

重度中二患者

积分
28325
 楼主| 发表于 2013-3-16 23:07:16 | 显示全部楼层
langyxxl 发表于 2013-3-16 22:53
毕业设计就是python的opencv 人体跟踪
正在研究苦b的算法中啊。。。。。

这么帅气啊。。。。自己研究算法碉堡了!
我只是随便跟个项目人脸识别什么的糊弄老师罢了。。。
等死星人
回复 支持 反对

使用道具 举报

本版积分规则

小黑屋|手机版|技术宅(基宅) ( 粤ICP备18082987号-1 | 浙公网安备 33010902001746号 )

GMT+8, 2024-6-5 02:44 , Processed in 0.358016 second(s), 26 queries , Redis On.

Copyright © 2018 技术宅社区

Powered by Discuz! X3.5

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