codecamp

AI人工智能 人脸检测

人脸检测是计算机视觉的令人着迷的应用之一,它使其更加逼真。 OpenCV 有一个内置的工具来执行人脸检测。 我们将使用 Haar 级联分类器进行人脸检测。

Haar 级联数据

我们需要数据来使用 Haar 级联分类器。 可以在我们的 OpenCV 包中找到这些数据。 安装 OpenCv 后,有一个文件夹名称 haarcascades。 将有不同应用程序的 .xml 文件。 现在,将它们全部复制以供不同的使用,然后粘贴到当前项目下的新文件夹中。

示例

以下是使用 Haar 级联检测下图中显示的 Amitabh Bachan 的面部的 Python 代码 -

img

如下所示导入 OpenCV 包 -

import cv2
import numpy as np

现在,使用 HaarCascadeClassifier 来检测脸部 -

face_detection=
cv2.CascadeClassifier('D:/ProgramData/cascadeclassifier/
haarcascade_frontalface_default.xml')

使用 imread() 函数读取一个指定的图像,

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

将其转换为灰度,因为它会接受灰色图像 -

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

接下来,使用 face_detection.detectMultiScale,执行实际的人脸检测

faces = face_detection.detectMultiScale(gray, 1.3, 5)

围绕整个脸部绘制一个矩形 -

for (x,y,w,h) in faces:
   img = cv2.rectangle(img,(x,y),(x+w, y+h),(255,0,0),3)
cv2.imwrite('Face_AB.jpg',img)

如图所示,这个 Python 程序将创建一个名为 Face_AB.jpg 的图像,它包含人脸检测 -

img

眼睛检测

眼睛检测是计算机视觉的另一个引人注目的应用,使其更加逼真和未来。 OpenCV 有一个内置的工具来执行眼睛检测。 我们将使用 Haar 级联分类器进行眼睛检测。

示例 以下示例给出了使用 Haar 级联的 Python 代码来检测下图中给出的 Amitabh Bachan 的面部 -

img

如下所示导入 OpenCV 包 -

import cv2
import numpy as np

使用 HaarCascadeClassifier 检测脸部 -

eye_cascade = cv2.CascadeClassifier('D:/ProgramData/cascadeclassifier/haarcascade_eye.xml')

使用 imread()函数读取指定图像 -

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

然后,将其转换为灰度,因为它会接受灰色图像 -

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

使用 eye_cascade.detectMultiScale ,执行实际的人脸检测 -

eyes = eye_cascade.detectMultiScale(gray, 1.03, 5)

现在,围绕整个脸部绘制一个矩形 -

for (ex,ey,ew,eh) in eyes:
   img = cv2.rectangle(img,(ex,ey),(ex+ew, ey+eh),(0,255,0),2)
cv2.imwrite('Eye_AB.jpg',img)

这个 Python 程序将创建一个名为 Eye_AB.jpg 的图像,如图所示,

img

AI人工智能 边缘检测
AI人工智能 机器学习VS深度学习
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

AI人工智能监督学习(回归)

AI人工智能无监督学习:聚类

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }