基于opencv的人脸识别模型训练

import cv2
import os
import numpy as np
import sys
from PIL import Image

imgs=[]
# 用于存储人脸数据
cl=[]
# 用于存储标签
face_eneine = cv2.CascadeClassifier(cv2.data.haarcascades+'haarcascade_frontalface_default.xml')
# 获取人脸检测分类器

with open("D:/java_ceshi/python_wenjian/at.txt","r") as f:
    #打开预处理好的数据文件
    for line in f.readlines():
        str,bian=line.split(';')
        #通过逗号分割数据,str是人脸数据路径,bian是人脸标签
        PIL_img = Image.open(str).convert('L')
        #打开人脸图片
        img_numpy=np.array(PIL_img,'uint8')
        #把人脸数据转化为数组
        faces = face_eneine.detectMultiScale(img_numpy,scaleFactor=1.3,minNeighbors=5)
        #检测人脸部分,并且把人脸坐标返回
        for x,y,w,h in faces:
            imgs.append(img_numpy[y:y+h,x:x+w])
            #把人脸数据进行分割,只保留人脸部分,并且存储到列表中
            cl.append(int(bian))
            #将标签存储进列表中
    print(len(imgs))
    print(len(cl))

recognizer = cv2.face.LBPHFaceRecognizer_create()
recognizer.train(imgs,np.array(cl))
#进行模型训练

recognizer.write('renlianshib.xml')
#把训练好的模型存储到这个文件中
cv2.destroyAllWindows()
print("模型训练完成")
  • 0
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值