python画人脸编程怎么写_Python中的简单人脸检测(建议收藏)

如何使用OpenCV库检测图像中的人脸

在本文中,将展示如何使用Python构建简单的面部检测器。建立一个可以检测人脸的程序是一个很好的项目,可以开始使用计算机视觉。

从名称可以理解,我们将编写一个程序来检测图像中的面部。当我说“程序”时,您可以将其理解为教机器做什么。我喜欢使用教学而不是编程,因为这实际上是我们正在做的事情。最好的学习方法是教学,因此在教机器如何识别人脸的同时,我们也在学习。在进入项目之前,讲一讲人脸检测和人脸识别器之间的区别。

35a85edf8db1cb138bfd3c676ff7a04893584b5c.jpeg?token=4bf82da647974937d9eb058bdee4aab1

人脸检测与人脸识别

这两件事听起来很相似,但实际上它们并不相同。让我们理解它们之间的区别,以便我们不会错过重点。人脸检测是从图像或视频中检测人脸的过程,无关紧要。该程序除了发现面孔外没有做任何其他事情。但是,另一方面,人脸识别程序会找到人脸,并且还能分辨出谁属于谁。因此,它不仅仅是提供检测信息。有更多的编程,换句话说,就是更多的教学。

假设您正在观看街道,汽车正在驶过。人脸检测就像告诉路过的物体是一辆汽车。而面部识别器就像是能够分辨路过的汽车的模型。这是一个很好的图像,显示了实际的差异。

我们将为此项目使用一个模块库,称为OpenCV。OpenCV是高度优化的库,专注于实时应用程序。

OpenCV(开源计算机视觉库)是一个开源计算机视觉和机器学习软件库。OpenCV的构建旨在为计算机视觉应用程序提供通用的基础结构,并加速在商业产品中使用机器感知。作为BSD许可的产品,OpenCV使企业可以轻松地使用和修改代码。

b8014a90f603738d14959adc03b84657fa19ec98.jpeg?token=3cab276a1faf04cf21e5c17513a71f24

安装软件包。

pip install opencv-python

安装完成后,我们可以将其导入到我们的程序中。

import cv2

OpenCV已经包含许多针对面部,眼睛,微笑等的经过预先训练的分类器。这些XML文件存储在文件夹中。我们将使用面部检测模型。

这是面部检测的链接:https : //raw.githubusercontent.com/opencv/opencv/master/data/haarcascades/haarcascade_frontalface_default.xml

如果您有帐户,则可以从Github下载XML文件。如果不这样做,请随时从下面的链接复制代码,并将其粘贴到文本文档中,并将其另存为“ face_detector.xml”。

将文件保存到当前文件夹后,让我们将其加载到程序中。

# Load the cascade

face_cascade = cv2.CascadeClassifier('face_detector.xml')

导入图片

在此步骤中,您将选择要在其上测试代码的图像。确保图像中至少有一张脸,以便我们的程序可以找到一张。这是一个人的示例图像。

5882b2b7d0a20cf4cb001a93c6aabd30adaf9911.jpeg?token=0d3d95c6a4465d867f494ef3397fd303

选择图像后,让我们在程序中对其进行定义。确保图像文件位于您正在使用的文件夹中。

#读取输入图像

img = cv2.imread('test.jpg')

人脸检测

感谢为OpenCV做出的贡献。这是检测图像中人脸的代码:

#检测人脸

face = face_cascade.detectMultiScale(img,1.1,4)

我们在代码前面定义了face_cascade。检测到面部之后,我们将在其周围绘制矩形,以便我们知道机器看到的内容。机器可能会犯错误,但是我们的目标应该是教导最佳和最优化的方法,以使预测更加准确。

使用以下代码可以在检测到的面部周围绘制矩形:

# Draw rectangle around the faces

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

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

(255,0,0)是我们要绘制的矩形的颜色。您可以使用它并更改颜色。(2)视线的粗细。您可以更改值并查看其外观。结果

这是最后一步,现在我们将结果导出为图像文件。此图像将显示人脸检测的结果。要保存新的图像文件,我们将使用cv2库中的一种名为“ imwrite”的方法。保存完成后,您将在终端中看到“成功保存”。

# Exporttheresult

cv2.imwrite("face_detected.png", img)

print('Successfully saved')

3bf33a87e950352a4593257ae2e00df4b3118b78.jpeg?token=d03df70776c62565f0ee428414bf573d

现在,就已经创建了一个检测图像中人脸的程序。感谢阅读!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值