【米尔-全志 T527 开发板-试用评测】-OpenCV人脸识别
[复制链接]
OpenCV人脸识别
一、软件环境安装
1.安装OpenCV
sudo apt-get install libopencv-dev python3-opencv
2.安装pip
sudo apt-get install python3-pip
3.安装依赖库
pip install opencv-contrib-python
face模块实际上并不是opencv库的一部分。更确切地说,face是部分的的opencv-contrib库。所以,需要 安装opencv-contrib库
二、基本流程
1.人脸检测:
首先需要检测图像中的人脸。OpenCV提供了基于Haar级联分类器的detectMultiScale函数来进行人脸检测。这个函数可以在图像的不同尺度上查找可能的人脸区域。
2.人脸特征提取:
一旦检测到人脸,接下来需要提取人脸的特征。这一步是为了将人脸表示为一个特征向量,该向量可以用于后续的识别过程。
3.训练分类器:
使用提取的特征向量和相应的标签来训练一个分类器。OpenCV提供了多种机器学习算法,如支持向量机(SVM)、k最近邻(k-NN)等,来训练分类器。
4.人脸识别:
在测试阶段,对于新的图像,首先检测图像中的人脸,然后提取其特征,并使用训练好的分类器进行识别。
三、程序代码
# -*- coding: utf-8 -*-
import cv2
import numpy as np
# 读取训练图像
images=[]
images.append(cv2.imread("f01.png",cv2.IMREAD_GRAYSCALE))
images.append(cv2.imread("f02.png",cv2.IMREAD_GRAYSCALE))
images.append(cv2.imread("f11.png",cv2.IMREAD_GRAYSCALE))
images.append(cv2.imread("f12.png",cv2.IMREAD_GRAYSCALE))
# 给训练图像贴标签
labels=[0,0,1,1]
# 读取待识别图像
predict_image=cv2.imread("fTest.png",cv2.IMREAD_GRAYSCALE)
# 识别
recognizer = cv2.face.FisherFaceRecognizer_create()
recognizer.train(images, np.array(labels))
label,confidence= recognizer.predict(predict_image)
# 打印识别结果
print("识别标签label=",label)
print("置信度confidence=",confidence)
四、实验过程
NumPy(Numeric Python)是Python的一种开源的数值计算扩展,也是Python科学计算的基础库
1.程序对应图像如下:
2.运行程序的结果
3.程序对应的彩色图像
4.运行程序结果
5.注意事项
图片的像素大小有要求,要求训练图像的像素大小与检测图像的大小相同
注意更改图像的名称
|