基于opencv实现人脸检测

人脸检测是对人脸图片进行处理的前提条件,如果需要进行学习,那么数据集的采样可以配合人脸检测功能进行联动采集和过滤。此处,我们主要采用 python程序设计语言来对图片中的人脸信息进行处理。

首先我们需要在我们的计算机中安装opencv,如果安装出现问题的,可以尝试通过anaconda进行一个新环境的安装。

首先我们导入模块

import cv2
import matplotlib.pyplot as plt
import numpy as np
import os
import scipy.io

在这里,我们不仅要对我们采集到的人脸进行检测,我们还需要将一个画面中出现的不同的人脸打上一个标签,如果出现两个人脸相同的情况,那么我们认定他们是同一个人,就将他们的信息存储在一起。(这部分代码暂不放出)

获得人脸信息

在人脸检测的代码中,我们首先需要载入我们的级联分类器,在opencv中,我们的级联分类器的函数为:CascadeClassifier
我们载入开源的haarcascade_frontalface_default.xml人脸分类器

下载链接:https://github.com/kipr/opencv/blob/master/data/haarcascades/haarcascade_frontalface_default.xml

我们通过级联分类器对我们级联分类器分类出的信息进行过滤,获得我们想要的人脸数据。我们可以使用 分类器的detectMultiScale方法。
该方法中的image参数需要是一个图片信息,scanleFactor参数则是指定在每个图像比例下图像尺寸减小多少的参数,minNeighbors参数指定每个候选矩形应保留多少个邻居的参数,我们在这里对scanleFactor设置为1.5,对minNeighbors设置为5。

那么我们的代码如下:

face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
faces = face_cascade.detectMultiScale(image = img, scaleFactor = 1.5, minNeighbors = 5)

我们得到的faces是一个向量数组(类似于pytorch中的张量,也就是tensor),但是其本质是数组,我们通过len方法获得faces数组中的个数,那么如果len(faces)

Original: https://blog.csdn.net/qq_27180763/article/details/125979763
Author: 程序小黑
Title: 基于opencv实现人脸检测

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/701683/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球