50行代码运用Python+OpenCV来实现人脸追踪

作者: LIUSE网络 2018-06-29 10:15:20

嗨,我最亲爱的伙计们,很高兴我们又见面了。

做这个头条号,就是鄙人的一点兴趣,首先先感谢朋友们的关注。当然我更希望认识与计算机相关的领域的朋友咱们一起探讨交流。重点说一下,我是真人,不是那些扒文章的自媒体组织,大家可以相互交流的!

50行代码运用Python+OpenCV实现人脸追踪

本篇文章我们来讲一下关于AI相关的人脸追踪,人脸识别相关的一些知识。当然本篇教程为(上)部分,讲一下利用python+opencv来实现人脸识别与追踪,下部分,用python来通过指纹对比实现人脸验证、人脸解锁(大家感兴趣的可以提前关注哦)。

这两节课呢,代码量都不是很多,鄙人尽量多注释点,便于大家理解。那我们就不多??路匣傲耍?苯由细苫酰?/p>

50行代码运用Python+OpenCV实现人脸追踪

OpenCV:

opencv目前来讲是十分流行的视觉库,而且可以支持多语言。说到opencv就不得不说它的cascades分类器。

如果我们要判断一张图片是不是有一张脸,早期方式是通过成千上万的分类器去从头匹配到尾,这样看并没有什么什么毛病,但判断的图片多了呢?那可能需要猴年马月。opencv的cascades呢,就把这些用来判断人脸特征的容器划分成多块层层匹配,到一层不匹配就被丢弃。

这好比一群人去公司面试,公司第一个要求是只要男人,那一批女人就走了,公司说只要本科,一批专科走了,公司说要两年工作经验的,又会走一批,直到最后。这样的工作量比每个人面试不管男女都过一遍流程轻松的多。

环境拓扑:

操作系统:windows7

python版本:2.7.14

opencv版本:3.x

环境配置:

1.安装python(额...这个当我没说)

2.安装Opencv

这个从官网下载就OK啦:https://opencv.org/

印象中我记得当初我下载的是3.3版本,但现在好像Github最近访问不了了,我不知道是不是我的Hosts的问题还是怎么着,大家如果能访问可以给我留个言,我修复下hosts文件。如果大家也访问不了,可以留言或者私信,我把以前下载的opencv打包发给大家。

50行代码运用Python+OpenCV实现人脸追踪

下载完之后直接解压就行,推荐解压到跟你的python安装的父路径。

3.使用pip安装numpy

打开cmd输入:

  1. pip install numpy 

进行安装,安装完毕后会给提示。

50行代码运用Python+OpenCV实现人脸追踪

4.找到你的opencv安装路径(比如我的是D盘)

复制D:opencvopencv3.xuildpython.7\x64路径下的cv2.py

50行代码运用Python+OpenCV实现人脸追踪

注意:我的windows版本为64位所以我选择的是X64,如果你的是32位的话你需要选择X86文件夹下的cv2.pyd

复制完之后,粘贴到你的python安装路径下的Lib/site-packages这个文件夹下。

完成上面这些就基本OK啦,我们在写代码之前先来测试一下,环境是否配置成功。

在CMD命令行下运行python:

  1. import numpy  
  2. import cv2  

如果没有报错,说明安装完成。

50行代码运用Python+OpenCV实现人脸追踪

实现原理:

1.调用计算机摄像头

  1. cv2.Videocamture(0) 

2.将摄像头数据按帧来取(相当于给每一帧图片的人脸加框框)

  1. cam.red() 

3.将每一帧摄像头记录的数据带入opencv让classifier去判断人脸

  1. detectMultiScale() 

4.如果存在人脸给人脸标记画框

  1. cv2.rectangle() 

5.输出画框后的帧动画

  1. cv2.imshow('My Camera',frame) 

代码实现:

第一步定义一个识别函数:

先放图片,这个地方比较重要,我在下面会详细的说一下。

50行代码运用Python+OpenCV实现人脸追踪

(代码上部分)

6-7行代码说明:

首先创建classifier,为什么要弄这个呢?

引用的haarcascade开头的文件是opencv里面关于人脸级联分类器,你在opencv文件夹下的sourcesdatahaarcascades可以看到:

50行代码运用Python+OpenCV实现人脸追踪

说明功能:

人脸检测器(默认):haarcascade_frontalface_default.xml

人脸检测器(快速Harr):haarcascade_frontalface_alt2.xml

人脸检测器(侧视):haarcascade_profileface.xml

眼部检测器(左眼):haarcascade_lefteye_2splits.xml

眼部检测器(右眼):haarcascade_righteye_2splits.xml

嘴部检测器:haarcascade_mcs_mouth.xml

鼻子检测器:haarcascade_mcs_nose.xml

身体检测器:haarcascade_fullbody.xml

人脸检测器(快速LBP):lbpcascade_frontalface.xml

1:haarcascade_frontalface_alt.xml

Stump-based 20x20 gentle adaboost frontal face detector.

2:haarcascade_frontalface_alt2.xml

Tree-based 20x20 gentle adaboost frontal face detector.

3:haarcascade_frontalface_alt_tree.xml

Stump-based 20x20 gentle adaboost frontal face detector.This detector uses tree of stage classifiers instead of a cascade

4:haarcascade_frontalface_default.xml

Stump-based 24x24 discrete(?) adaboost frontal face detector.

以上这四个鄙人都测试过,haarcascade_frontalface_alt.xml这个效果是最好的,其它的大家可以单个测试。

设定灰度:

灰度的设定是为了增强面部轮廓的对比度,这是增加精度必不可少的。

核心代码解剖:

DetectMultiScale 函数是一个检测物体的通用函数,我们介绍一下:

50行代码运用Python+OpenCV实现人脸追踪

gray:这是转换成灰度后的图片

scaleFactor:补偿参数,一般设置值为1.1-1.5比较好,效果大家自己改着看

minNeighbors:对当前其周围有多少物体进行定义

minSize:设定窗口大小

flags:略抽象,选择默认或者上图即可

画方框:

定义xywh利用for循环读取faces变量里面的坐标,然后通过rectangle()函数进行画方框。

代码下部分:

50行代码运用Python+OpenCV实现人脸追踪

(代码下部分)

OK,写完代码之后,我们把上部分代码跟下部分代码拼凑起来,运行下试一下:

50行代码运用Python+OpenCV实现人脸追踪

大家凑合看吧,我笔记本cam有点渣,不过随着人的晃动,都可以完美的识别出来,由于没法上视频,大家就自行测试吧。

实例代码,鄙人还没有打包,有需要的话,微头条我会给大家发出去~

Python OpenCV 人脸识别
上一篇:以智能重构企业外呼 讯众通信发布云讯云雀智能语音机器人 下一篇:密码危机:深度学习正在加速密码破解!
评论
取消
暂无评论,快去成为第一个评论的人吧

更多资讯推荐

人脸识别有风险,美国全面禁止,可为什么中国却全面推广?

对于大多数人而言,最先接触的就是指纹识别,对指纹识别的了解程度也相对比较深一些,然而随着科技的不断发展,人脸识别也越来越普及,所谓的人脸识别就是基于人的脸部特征信息进行身份识别的一种生物识别技术,用摄像头或摄像机采集含有人脸的图像或视频,并自动在图像中检测和跟踪人脸,对其进行一系列的相关技术,最后进行辨别完成自己想要完成的项目。

测评前线说 ·  3天前
AI 人工智能落地,数据安全绕不开这4大问题

这些年,在人工智能等新技术催化下,信息泄密正在围绕“数据”展开,这些数据涉及各类事、物、人、企业、政府部门等等,包括当事主体的相关生物特征、行为特征也能以数据化的泄密形式出现。

CDA数据分析师 ·  2019-09-27 10:18:13
十个基本的Python数据科学软件包

过去五年人们对数据科学的兴趣显著上升。尽管有许多编程语言适合数据科学和机器学习,但Python是最受欢迎的。

布加迪 ·  2019-09-25 09:20:33
未来可能颠覆世界的十大科技,你知道吗?

人脸识别技术是指利用分析比较的计算机技术识别人脸。人脸识别是一项热门的计算机技术研究领域,其中包括人脸追踪侦测,自动调整影像放大,夜间红外侦测,自动调整曝光强度等技术。

万仟生态圈 ·  2019-09-24 07:23:02
警惕刷脸支付,一不小心钱财被洗劫一空

人脸识别技术已经不仅仅可以用来识别对象身份,已经可以收集更多的信息了。而这种被动的采集捕捉,让我们无处可藏。想象一下,如果大街上的摄像头换成了这种摄像头,你的步态、表情都会纳入系统数据中,或许可以用来提高识别犯罪分子的概率,但这样一来普通人也没了隐私可言。

e科技观潮 ·  2019-09-19 20:47:29
一步一步带你完成深度学习与对象检测之人脸识别

要进行人脸识别,就要搜集用户的人脸图片,我们从网站上搜集了几个明星的照片来进行本期文章的分享。此部分文章是人脸识别的第一部分,人脸数据的搜集与提取,后期我们分享人脸识别系统的神经网络训练与人脸识别。

人工智能研究所 ·  2019-09-18 07:20:34
人民日报:人脸识别进课堂 纪律是手段而不是目的

拥抱潮流,为教育插上智能化的翅膀无可厚非。宿舍刷脸门禁、图书馆刷脸借阅,将金融领域成熟的技术迁移到校园内,的确可以提升效率、便利生活。

佚名 ·  2019-09-17 10:00:25
“刷脸”乘地铁,AI 诸雄的又一个掘金高地

一个行业鲜少让所有的从业者都能达成共识,AI行业是个例外,几乎所有的从业者都认为:智能安防、智慧交通会是最先爆发的 AI 产业。

张栋 ·  2019-09-14 22:05:19
Copyright©2005-2019 51CTO.COM 版权所有 未经许可 请勿转载