人工智能-使用Python 和 OpenCV只需 15 行代码即可进行人脸检测!
小职 2022-01-21 来源 :掘金 阅读 619 评论 0

摘要:本篇介绍了人工智能-使用Python 和 OpenCV只需 15 行代码即可进行人脸检测!,通过具体的内容展现分享,希望对大家人工智能的学习有所帮助。

本篇介绍了人工智能-使用Python 和 OpenCV只需 15 行代码即可进行人脸检测!,通过具体的内容展现分享,希望对大家人工智能的学习有所帮助。

人工智能-使用Python 和 OpenCV只需 15 行代码即可进行人脸检测!


无论你是最近开始探索OpenCV还是已经使用它很长一段时间,在任何一种情况下,您都一定遇到过“人脸检测”这个词。随着机器变得越来越智能,它们模仿人类行为的能力似乎也在增加,而人脸检测就是人工智能的进步之一。


所以今天,我们将快速了解一下面部检测是什么,为什么它很有用,以及如何仅用 15 行代码就可以在您的系统上实际实现面部检测!

让我们从了解面部检测开始。


什么是人脸检测?

人脸检测是一种基于人工智能的计算机技术,能够识别和定位数码照片和视频中人脸的存在。简而言之,机器检测图像或视频中人脸的能力。

由于人工智能的重大进步,现在可以检测图像或视频中的人脸,无论光照条件、肤色、头部姿势和背景如何。

人脸检测是几个人脸相关应用程序的起点,例如人脸识别或人脸验证。如今,大多数数码设备中的摄像头都利用人脸检测技术来检测人脸所在的位置并相应地调整焦距。

那么人脸检测是如何工作的呢? 很高兴你问了!任何人脸检测应用程序的主干都是一种算法(机器遵循的简单分步指南),可帮助确定图像是正图像(有脸的图像)还是负图像(没有人脸的图像)。

为了准确地做到这一点,算法在包含数十万张人脸图像和非人脸图像的海量数据集上进行了训练。这种经过训练的机器学习算法可以检测图像中是否有人脸,如果检测到人脸,还会放置一个边界框。


使用 OpenCV 进行人脸检测

计算机视觉是人工智能中最令人兴奋和最具挑战性的任务之一,有几个软件包可用于解决与计算机视觉相关的问题。OpenCV 是迄今为止最流行的用于解决基于计算机视觉的问题的开源库。

OpenCV 库的下载量超过1800 万次,活跃的用户社区拥有 47000 名成员。它拥有 2500 种优化算法,包括一整套经典和最先进的计算机视觉和机器学习算法,使其成为机器学习领域最重要的库之一。

图像中的人脸检测是一个简单的 3 步过程:


第一步:安装并导入open-cv模块:

pip install opencv-python 复制代码
import cv2 import matplotlib.pyplot as plt # 用于绘制图像 


第 2 步:将 XML 文件加载到系统中

下载 Haar-cascade Classifier XML 文件并将其加载到系统中:

Haar-cascade Classifier 是一种机器学习算法,我们用大量图像训练级联函数。根据不同的目标对象有不同类型的级联分类器,这里我们将使用考虑人脸的分类器将其识别为目标对象。

您可以点击此处找到用于人脸检测的经过训练的分类器 XML 文件

# 加载级联 face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml') 


第 3 步:检测人脸并在其周围绘制边界框

使用Haar-cascade 分类器中的detectMultiScale()函数检测人脸并在其周围绘制边界框:

# 读取输入图像 img = cv2.imread('test.png') # 检测人脸 faces = face_cascade.detectMultiScale(image = img, scaleFactor = 1.1, minNeighbors = 5) # 在人脸周围绘制边界框 for (x, y, w, h) in faces:       cv2.rectangle(img, (x, y), (x+w, y+h), (255, 0, 0), 2) # 显示图像中检测到的人脸数量 print(len(faces),"faces detected!") # 绘制检测到人脸的图像 finalimg = cv2.cvtColor(img, cv2.COLOR_RGB2BGR) plt.figure(figsize=(12,12)) plt.imshow(finalimg)  plt.axis("off") plt.show() 、

detectMultiScale() 参数:

image: CV_8U 类型的矩阵,其中包含检测到对象的图像。

scaleFactor:指定在每个图像比例下图像尺寸减小多少的参数。

minNeighbors:参数指定每个候选矩形应该保留多少邻居。

可能需要调整一下这些值来获取最佳结果。

人工智能-使用Python 和 OpenCV只需 15 行代码即可进行人脸检测!

就像这样,你可以实现计算机视觉最独特的应用程序之一。


208小时视频教程,995份干货资料,扫码领取资料+高薪就业咨询

人工智能-使用Python 和 OpenCV只需 15 行代码即可进行人脸检测!

本文由 @小职 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程