Python-3.1使用OpenCV人脸对比
Python-3.1使用OpenCV人脸对比
提示:实验示例,仅供参考
Python:下载地址
IDEA Python:下载地址
Open CV:官网
前言
随着人工智能的不断发展,机器视觉越来越重要,如下介绍Opencv中人脸对比应用,采用自训练模型方式,对期望人脸获取置信度。
一、安装OpenCV
环境准备
打开Pycharm,点击右上角File,选中Settings

搜索,opencv-python,然后点击左下角,Package Install
搜索,numpy,然后点击左下角,Package Install
搜索,opencv-contrib-python,然后点击左下角,Package Install

二、使用OpenCV
新建项目

创建目录
- imgs 用于存放需要识别的图片,目录中存放训练图片(1.jpg,2.jpg,copy_5.jpg.jpg),存放测试图片(5.jpg)

Python全代码
本实例copy_5.jpg 来源于 5.jpg进行灰度后保存
# -*- coding: utf-8 -*-
# -*- coding: utf-8 -*-
import cv2
import numpy as np
images = []
# 定义统一宽高
width = 300
height = 300
# 重置图片大小,对比需要; 置灰度,提高效率
image1 = cv2.resize(cv2.imread("imgs/1.jpg", cv2.IMREAD_GRAYSCALE), (width, height))
image2 = cv2.resize(cv2.imread("imgs/1.jpg", cv2.IMREAD_GRAYSCALE), (width, height))
image3 = cv2.resize(cv2.imread("imgs/2.jpg", cv2.IMREAD_GRAYSCALE), (width, height))
image4 = cv2.resize(cv2.imread("imgs/2.jpg", cv2.IMREAD_GRAYSCALE), (width, height))
image5 = cv2.resize(cv2.imread("imgs/copy_5.jpg", cv2.IMREAD_GRAYSCALE), (width, height))
# cv2.imwrite('imgs/copy_5.jpg', ime)
images.append(image1)
images.append(image2)
images.append(image3)
images.append(image4)
images.append(image5)
# 标签,长度和图片数组一样大小
labels = [0, 8, 5, 1, 3]
print(labels)
# 生成一个训练器
recognizer = cv2.face.FisherFaceRecognizer_create()
# 使用训练器,训练一个模型
recognizer.train(images, np.array(labels))
# 取一个对比图片文件,灰度,设置大小
predict_image = cv2.resize(cv2.imread("imgs/5.jpg", cv2.IMREAD_GRAYSCALE), (width, height))
# 使用训练器,将训练的模型和需要对比的文件进行对比,返回标签和置信度
label, confidence = recognizer.predict(predict_image)
# 输出匹配的人脸图像标签,0或1
print("label=", label)
print("confidence=", confidence)
执行结果
[0, 8, 5, 1, 3]
label= 3
confidence= 6.851639525386138
Process finished with exit code 0
总结
不要放弃你的幻想。当幻想没有了以后,你还可以生存,但是你虽生犹死。