[人脸识别]09-人脸模型训练
1.程序代码
#导入CV模块 import cv2 as cv import os from PIL import Image import numpy as np def getImageAndLabels(path): #存储人脸数据 facesSamples=[] #存储姓名数据 ids=[] # 存储图片信息 imagePaths=[ os.path.join(path,f) for f in os.listdir(path)] print("files:",imagePaths) #加载分类器 face_detector=cv.CascadeClassifier(cv.data.haarcascades+"haarcascade_frontalface_default.xml") #遍历列表中的图片 for imagePath in imagePaths: #打开图片,灰度化,PIL有九种不同模式:1,l,p,rgb,rgba,cmyk,yCbCr,I,F PIL_img=Image.open(imagePath).convert('L') #将图片转换为数组,以黑白深浅 img_numpy=np.array(PIL_img,'uint8') #获取人脸特征 faces=face_detector.detectMultiScale(img_numpy) #获取每张图片的ID和新名 id=int(os.path.split(imagePath)[1].split('.')[0]) #预防无面容照片 for x,y,w,h in faces: ids.append(id) facesSamples.append(img_numpy[y:y+h,x:x+w]) print('id',id) print('fs',facesSamples) return facesSamples,ids if __name__ == '__main__': #图片路径 root = os.getcwd() path=root+"/jm/" print("path:", path) #获取图像数组,id faces,ids=getImageAndLabels(path) #获取训练对象 recognizer=cv.face.LBPHFaceRecognizer_create() #执行训练 recognizer.train(faces,np.array(ids)) #保存训练结果 print("write:", root+"/trainer/trainer.yml") recognizer.write(root+"/trainer/trainer.yml")
2结果
.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人