25 行 Python 代码实现人脸检测——OpenCV 技术教程

用Python实现简单的人脸识别,10分钟搞定!(附源码) 前言 让我的电脑认识我,我的电脑只有认识我,才配称之为我的电脑! 今天,我们用Python实现简单的人脸识别技术! Python里,简单的人脸识别有很多种方法可以实现,依赖于python胶水语言的特性,我们通过调用包可以快速准确的达成这一目的。这里介绍的是准确性比较高的一种。 欲直接下载源代码文件,关注微信公众号:Python联盟,回复“人脸识别”即可获取~ 一、首先 梳理一下实现人脸识别需要进行的步骤: 流程大致如此,在此之前,要先让人脸被准确的找出来,也就是能准确区分人脸的分类器,在这 阅读详情

安装 OpenCV

首选,你需要找到对应你的操作系统的正确设置文件。

我发现,安装 OpenCV 是最难的一个环节。如果你遇到奇怪的、无法解释的错误,有可能是库崩溃了、32 与 64 比特的兼容问题等等。个人经验是,只用 Linux 虚拟机,从头安装 OpenCV 最简单。

安装好之后,你可以开启一个 Python 会话,敲出下面的代码,来测试它是否能工作:

$ python

>>> import cv2

>>>

如果没弹出任何错误,你就可以到下个环节了。

理解代码

记得拿好 face_detect.py 文本、abba.png 图片以及 haarcascade_frontalface_default.xml。下面,我把代码分解开来。

# Get user supplied values

imagePath = sys.argv[1]

cascPath = sys.argv[2]

 将图片和 cascade 名字作为命令行参数传入。我们会用 Abba 图片和 OpenCV 提供的默认 cascade 来人脸检测。

# Create the haar cascade

faceCascade = cv2.CascadeClassifier(cascPath)

现在,我们创建一个 cascade,并用人脸 cascade 初始化。这把人脸 cascade 导入内存,所以它随时可以使用。记住,该 cascade 只是一个包含人脸检测数据的  XML 文件。

# Read the image

image = cv2.imread(imagePath)

gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

读取图片把它转化到灰度格式。

# Detect faces in the image

faces = faceCascade.detectMultiScale(    

gray,    

scaleFactor=1.1,    

minNeighbors=5,    

minSize=(30, 30),   

flags = cv2.cv.CV_HAAR_SCALE_IMAGE

)

该函数做的就是检测人脸,是代码核心部分。所以,我们来过一遍选项。

DetectMultiScale 函数是一个检测物体的通用函数。我们在人脸 cascade 上调用它,它检测的就是人脸。第一个选项是灰度图片。

第二个是 scaleFactor。有的人脸离镜头近,会比其他人脸更大。ScaleFactor 对此进行补偿。

检测算法使用移动窗口来检测物体。在系统宣布检测到人脸之前,minNeighbors 会对当前其周围有多少物体进行定义。MinSize 给出每个窗口的大小。

我用的是这些领域的常用值。现实中,你会拿不同的值试验窗口尺寸、扩展因素等参数,直到找出最比较合适的那一个。

当该函数认为它找到一张人脸时,会返回一个矩形列表。下一步,我们会进行循环,直到它认为检测出了什么。

print "Found {0} faces!".format(len(faces))

# Draw a rectangle around the faces

for (x, y, w, h) in faces:

    cv2.rectangle(image, (x, y), (x+w, y+h), (0, 255, 0), 2)   

该函数返回四个值:矩形的 x 和 y 坐标,以及它的高和宽。我们用这些值和内置的 rectangle() 函数,画出矩阵。

cv2.imshow("Faces found" ,image)

cv2.waitKey(0)

最后,我们显示该模型,等用户摁下按键。

检验结果

用 Abba 来检验。

$ python face_detect.py abba.png haarcascade_frontalface_default.xml

25 行 Python 代码实现人脸检测——OpenCV 技术教程

没有问题,试试另一张照片。

25 行 Python 代码实现人脸检测——OpenCV 技术教程

那两个东西不是脸,我们再试一次。我调整了参数,发现把 scaleFactor 调成 1.2 能去除错误检测。

25 行 Python 代码实现人脸检测——OpenCV 技术教程

发生了什么?第一张图片由高清摄像机近距离拍摄,第二章拍摄距离相对更远,而且可能是用手机拍的。这就是需要调整 scaleFactor 的原因。正如我说的,你需要按照实际场景设置算法,避免假正例。

这里,雷锋网(公众号:雷锋网)提醒大家,由于这基于机器学习,结果永远不会 100% 精确。大多数情况下,你会得到不错的结果。但算法偶尔会失误。

用网络摄像头

如果你想要用网络摄像头呢?OpenCV 从摄像头读取每一帧,你可以通过处理每一帧进行人脸检测。你需要一个性能强大的 PC,不过我的五岁大的笔记本用着还行。

今天就的文章就分享到这了,小编最后还为大家送上一份python大礼包【加君羊:605018913】帮助大家更好的学习!

 

Python25行代码人脸识别 OpenCV 技术教程 建议先读一遍本文再跑代码——你需要理解这些代码是干什么的。成功跑一遍不是目的,能够举一反三、在新任务上找出 bug 才是。 请确保用的是 OpenCV v2 你需要一个网络摄像头 OpenCV OpenCV 是最流行的计算机视觉库,原本用 C 和 C++ 开发,现在也支持 Python。 它使用机器学习算法 阅读详情

相关推荐

图像跟踪

如何跟踪视频的移动的物体,这在军事,监控等领域频繁地被用到。刚好最近up猪需要使用相关方面的技术。在网上找到一些内容,在此总结一下 --------------------------前言 import numpy as np import cv2 cap=cv2.VideoCapture("test.mp4")#待测试视频 kernel=cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(3,3)) fgbg=cv2.createBackgroundSubtrac

weixin_44772948的博客 328

python 三种常用的人脸检测算法详解+代码

OpenCV是一个广泛用于计算机视觉任务的开源库。它提供了许多预训练的人脸检测模型,其中最常用的就是基于Haar特征的级联分类器。在Python中,有许多库可以用于实现人脸检测算法。: MTCNN是一种基于卷积神经网络的人脸检测算法,可以同时检测人脸的边界框、关键点等信息。: Dlib是一个强大的C++库,提供了许多计算机视觉工具,包括人脸检测。

m0_49127166的博客 6843

OpenCV-Python实战(14)——人脸检测详解(仅需6行代码学会4种人脸检测方法)

人脸处理是人工智能中的一个热门话题,人脸处理可以使用计算机视觉算法从人脸中自动提取大量信息,例如身份、意图和情感。人脸在视觉交流中起着重要作用,这是由于人脸中包含大量非语言信息,因此人脸处理一直以来对于计算机视觉学习者来说都是非常有趣的话题,因为它涉及不同的专业领域,例如对象检测、特征点检测以及对象跟踪等。在本文中,将首先介绍常用人脸处理库,然后通过实战讲解如何使用这些库进行人脸检测,为进一步进行相关处理奠定基础。

盼小辉丶的博客 4万+

用Python在25行以下代码实现人脸识别

*

Baihu292的博客 4524

OpenCV-Python实战(21)——OpenCV人脸检测项目在Web端的部署

将 OpenCV 计算机视觉项目部署在 Web 端一个有趣的话题,部署在 Web 端的优势之一是不需要安装任何应用,只需要访问地址就可以访问应用,有很多 Python Web 框架可用于部署应用程序,这些框架可以使我们专注于应用程序的核心逻辑,而不必处理低级细节(例如,协议、套接字或进程和线程管理等)。在本文中,将使用 Flask 框架,以构建计算机视觉 Web 应用程序,包括人脸检测项目等。

盼小辉丶的博客 2万+

OpenCV-Python实战(16)——人脸追踪详解

人脸处理是人工智能中的一个热门话题,人脸处理可以使用计算机视觉算法从人脸中自动提取大量信息,例如身份、意图和情感,由于外观变化、遮挡、快速运动、运动模糊和比例变化等多种因素,人脸追踪非常具有挑战性。dlib 库实现了基于 DCF 的跟踪器,非常适合用于进行人脸追踪,本文利用此跟踪器进行面部跟踪和用于选择的其他对象的追踪。

盼小辉丶的博客 2万+

Python 人脸识别实现(三种方式)

识别图像中的人面部位置,并将面部裁切下来,存储到excel里(excel里最多存储8张,按照从左到右顺序存储)

CXY00000的博客 9971

【OpenCV实战】OpenCV实现人脸检测详解(含代码)

OpenCV中有许多可以进行人脸、人眼检测的特征文件,今天我们利用OpenCV中自带的特征文件haarcascade_frontalface_default.xml来进行人脸检测。 【OpenCV实战】OpenCV实现人脸检测“超详解”(含代码)1、整体思路2、代码详解2.1从百度爬取图片2.2训练数据2.3测试,绘制框和标签3、总结4、参考 1、整体思路 第一:利用Python根据特征词从百度爬...

qq_40784418的博客 6463

25行 Python 代码实现人脸检测——OpenCV 技术教程

这是篇是利用 OpenCV 进行人脸识别的技术讲解。阅读本文之前,这是注意事项:建议先读一遍本文再跑代码——你需要理解这些代码是干什么的。成功跑一遍不是目的,能够举一反三、在新任务上找出 bug 才是。请确保用的是 OpenCV v2你需要一个网络摄像头。

优快云专栏--北京中关村 2235

OpenCV-Python实战(15)——面部特征点检测详解(仅需5行代码学会3种面部特征点检测方法)

在计算机视觉中,面部关键点(也称为面部特征点)的定位通常是许多面部分析方法和算法中的关键步骤。例如,面部表情识别、头部姿态估计和疲倦检测系统都依赖于面部特征点检测提供的面部信息。在本文中,将介绍如何使用 OpenCV、dlib 以及 face_recognition 进行面部特征点检测。

盼小辉丶的博客 3万+

matlab 求解多项式的根 四种方法

matlab 求解多项式的根 四种方法 方法一 %多项式求根函数roots p=[1,-3,1];%建立多项式系数向量p x=roots(p)%求多项式的根 x=-5:0.1:5;%步长为0.1 y1=x.*x-3*x+1;%构建一个函数 y2=zeros(size(x));%产生一个与x同大小的零向量 plot(x,y1,x,y2); 方法二 %利用函数fzero f=@(x)x*x-3*x+1; x1=fzero(f,0.5) x2=fzero(f,2.5) 方法三 %利用f

weixin_57038822的博客 1万+

python人脸检测代码_25行 Python 代码实现人脸检测——OpenCV 技术教程

这是篇是利用 OpenCV 进行人脸识别的技术讲解。阅读本文之前,这是注意事项:建议先读一遍本文再跑代码——你需要理解这些代码是干什么的。成功跑一遍不是目的,能够举一反三、在新任务上找出 bug 才是。请确保用的是 OpenCV v2你需要一个网络摄像头OpenCVOpenCV 是最流行的计算机视觉库,原本用 C 和 C++ 开发,现在也支持 Python。它使用机器学习算法在图像中搜索人的面部。...

weixin_39926193的博客 256

UDS服务应该支持哪些否定响应码

UDS服务应该支持哪些否定响应码所有服务都需支持的否定响应码具体的服务需要支持的否定响应码否定响应码定义及其取值 USD诊断服务的否定响应中包含有导致否定响应原因的编码,称为否定响应码(NRC, Negative Response Code)。否定响应码的取值范围为0x00 - 0xFF,被分为三组: 0x00:服务器内部实现否定响应码判断逻辑时使用,表示要给出肯定响应。 0x01 – 0x7F:诊断通信相关的否定响应码。 0x80 – 0xFF:服务器收到诊断服务请求时,由于某些条件不满足要求而给出的否定

闲聊汽车软件开发 4万+

python 人脸检测_25 行 Python 代码实现人脸检测——OpenCV 技术教程

雷锋网按:这是篇是利用 OpenCV 进行人脸识别的技术讲解。阅读本文之前,这是注意事项:建议先读一遍本文再跑代码——你需要理解这些代码是干什么的。成功跑一遍不是目的,能够举一反三、在新任务上找出 bug 才是。请确保用的是 OpenCV v2你需要一个网络摄像头OpenCVOpenCV 是最流行的计算机视觉库,原本用 C 和 C++ 开发,现在也支持 Python。它使用机器学习算法在图像中搜索...

weixin_39724441的博客 583

uniapp: err = err.replace(this._UNI_INPUT_DIR_REG, ‘UNI_TypeError: err.replace is not a function问题修复

问题:uniapp的依赖包出现了问题,需要升级解决办法:升级uniapp依赖包,下载"semver"和”@dcloudio/uni-i18n“两个包,本地锁定postcss为7版本,就解决了。

py_boy的博客 1453

FreeRTOS OTA实战:从Bootloader设计到安全升级的完整流程(附MQTT示例代码)

本文详细介绍了在FreeRTOS系统中实现安全OTA固件升级的完整流程。内容涵盖从Bootloader设计、存储分区规划到与MQTT协议集成的OTA Agent任务开发,并重点解析了固件签名验证、防回滚等关键安全机制,为嵌入式物联网设备提供了一套高可靠性的远程升级解决方案。

weixin_29248653的博客 161

Python中使用opencv-python进行人脸检测

之前写过一篇的博客。以数字图像处理中经常使用的lena图像为例,如下图所示:使用OpenCV进行人脸检测十分简单,OpenCV官网给了一个Python人脸检测的示例程序,所在目录为D:\env_build\opencv4.9.0\opencv\sources\samples\python\tutorial_code\objectDetection\cascade_classifier\objectDetection.py。

ccf19881030的专栏 5688

稳定性仿真(stb闭环增益仿真)

stb仿真主要是测试电路的稳定性,例如运放在闭环电路中的增益和相位裕度的值,从而判别电路是否正常工作。 以下是stb仿真的过程: (1)调用iprobe器件 从analogLib中调iprobe器件,通过器件中的箭头标识确定接入电路的方法,箭头起点端连运放的输出端,箭头的终点端连在反馈环路的作用端。iprobe器件连入电路后相当于理想导线。(iprobe器件连接在反馈回路上) (2)analyses设置 勾选stb和frequency,此处的频率范围设置在0.1~1GHz,Probe Instance/T

qq_36686804的博客 3万+

python实现人脸口罩检测(基于opencv和深度学习两种方法)

人脸口罩检测GUI系统(基于opencv和深度学习两种方法对比) 由于疫情的影响,人脸口罩检测系统的开发成为很多人争相开发的一种算法。很多公司或者个人都开源了他们很多的代码或者SDK。大家在GitHub或者各种平台上都能够找到很多的资源。 前段时间在博客上看到几个有趣的开源项目,它能检测我们是否有戴口罩,跑起程序测试后,发现识别率挺高的,也适应不同环境;于是分享给大家。我用了其中两种并整合在一个GUI下面,一种是基于深度学习的,一种是基于opencv训练的。 测试环境 windows10 系统; 软件:p

qq_43987474的博客 2万+

Win11专业版破解RDP限制:实现多用户远程桌面协同办公

本文详细介绍了如何在Windows 11专业版上破解RDP限制,实现多用户远程桌面协同办公。通过使用RDPWrap工具,用户可以绕过微软的授权限制,允许多个用户同时登录同一台电脑,提高硬件利用率和团队协作效率。文章包含详细的安装配置步骤、性能优化技巧及常见问题解决方案,适用于需要远程协作的办公场景。

weixin_33806300的博客 467

从苏宁电器到卡巴斯基第02篇:我的本科时光(中)

怎么还分班了呢? 大概是在大二第二学期的时候吧,学院突然通知我们要分班。因为我们目前所有学生都是属于工商管理专业的,而从下个学期开始,就要分为会计、市场营销以及工商管理这三个方向。这还真是打了我一个措手不及,我都不知道还有分班这一回事。不过也没关系,我继续选择我的工商管理就好了。不过,在实际的选择结果上,像会计和工商管理这种学科,选的人自然是占了绝大多数,而选择市场营销的,大概也就是十

Gleam的专栏 9608

25 行 Python 代码实现人脸识别——OpenCV

建议先读一遍本文再跑代码。

xiangz_csdn的博客 9047

(LDA新闻文本主题分析)基于 gensim训练LDA模型,进行新闻文本主题分析 完整代码+数据 可直接运行

(LDA新闻文本主题分析)基于 gensim训练LDA模型,进行新闻文本主题分析 完整代码+数据 可直接运行

机器学习深度学习业余选手 1498

基于Opencv-python人脸口罩检测(附完整代码)

一、任务

伤心兮的博客 5万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

基于OpenCV的人脸微笑检测实现

本文介绍了一个基于OpenCV Haar级联分类器的实时微笑检测系统。虽然Haar级联分类器在复杂场景下可能表现不佳,但它的计算效率高,非常适合初学者学习和快速原型开发。通过调整参数和优化流程,可以在实际应用中获得不错的效果。

zdx2585503940的博客 1901

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

上一篇: Python 中让你相见恨晚的 20 个“骚操作“
下一篇: 11 个最优的 Python 编译器和解释器
python2021_
博客等级 码龄6年 1730粉丝 157原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值