python人脸识别模型怎么训练_keras_训练人脸识别模型心得

本文分享了使用Keras和OpenCV训练人脸识别模型的经验,强调了预处理和数据增强的重要性。作者通过将人脸图片转为灰度、调整大小并归一化,创建了一个仅包含6张图片的小数据集,并通过复制增强到100张,使用CNN模型进行训练,最终得到了满意的效果。
摘要由CSDN通过智能技术生成

keras_cnn_实现人脸训练分类

废话不多扯,直接进入正题吧!今天在训练自己分割出来的图片,感觉效果挺不错的,所以在这分享一下心得,望入门的同孩采纳。

1、首先使用python OpenCV库里面的人脸检测分类器把你需要训练的测试人脸图片给提取出来,这一步很重要,因为deep learn他也不是万能的,很多原始人脸图片有很多干扰因素,直接拿去做模型训练效果是非常low的。所以必须得做这一步。而且还提醒一点就是你的人脸图片每个类别的人脸图片光线不要相差太大,虽然都是灰度图片,但是会影响你的结果,我测试过了好多次了,

2、把分割出来的人脸全部使用resize的方法变成[100x100]的图片,之前我也试过rgb的图片,但是效果不好,所以我建议都转成灰度图片,这样数据量小,计算速度也快,当然了keras的后端我建议使用TensorFlow-GPU版,这样计算过程明显比CPU快1万倍。

3、时间有限,我的数据集只有六张,前面三张是某某的人脸,后面三张又是另一个人脸,这样就只有两个类别,说到这里的时候很多人都觉得不可思议了吧,数据集这么小你怎么训练的?效果会好吗?那么你不要着急慢慢读下去吧!其次我把每个类别的前面两张图片自我复制了100次,这样我就有数据集了,类别的最后一张使用来做测试集,

自我复制50次。下面我来为大家揭晓答案吧,请详细参考如下代码:

(1)、导包

# coding:utf-8import numpyasnp

import os

import cv2

os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

fromkeras.models import Sequentialfromkeras.layers import Dense,Dropout,Flattenfromkeras.layers import Conv2D,MaxPooling2Dfromkeras import optimizers

import pandasaspd

import matplotlib.pyplotas plt

导入需要包

(2)、读取我们的图片数据

filePath = os.listdir('img_test/')print(filePath)

img_data=[]for i infilePath:

img_data.append(cv2.resize(cv2.cvtColor(cv2.imread('img_test/%s'%i),cv2.COLOR_BGR2GRAY),(100,100),interpolation=cv2.INTER_AREA))

导入图片

(3)、

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值