Python人脸微笑识别2–卷积神经网络进行模型训练目录
一、微笑数据集下载
1、微笑数据集下载
2、创建人脸微笑识别项目
3、数据集上传至Ubuntu人脸微笑识别项目文件夹
二、Python代码实现Tensorflow神经网络模型训练
1、创建模型训练train.py文件
2、Tensorflow神经网络模型训练
3、运行train.py进行模型训练
4、训练模型train.py源码
三、Dlib+Opencv实现人脸微笑检测
1、创建测试tset.py文件
2、运行test.py进行人脸微笑识别
上次博客,我们在Ubuntu16.04上进行dlib模型训练进行人脸微笑识别检测,本次博客,我们将通过Tensorflow进行神经网络进行微笑数据集的模型训练,然后通过Opencv实现对微笑人脸的检测
Tensorflow版本:Tensorflow-2.2.0
Keras版本:Keras-2.3.1
Ubuntu版本:Ubuntu-16.04
Python版本:Python-3.6
一、微笑数据集下载
1、微笑数据集下载
1)、微笑数据集下载注意事项
小伙伴在进行微笑数据集下载的时候,请一定注意要有正负样本的划分,并且,最好已经分类好的,也就是训练集和测试集应该需要有smile和unsmlie的分别
2)、对于微笑数据集的下载,小伙伴可以通过如下链接进行下载,是林君学长整理好的微笑数据集,且分为正负样本,链接如下所示:
https://download.csdn.net/download/qq_42451251/12579015
3)、数据集展示
smile和unsmile中的便是数据集图片啦!
2、创建人脸微笑识别项目
1)、打开终端,创建项目文件夹Smile-Python
cd ~/lenovo
mkdir Smile-Python
cd Smile-Python
3、数据集上传至Ubuntu人脸微笑识别项目文件夹
1)、将上面下载的数据集上传至Ubuntu,进行划分,林君学长之所以上传至Ubuntu上面做,是因为在Ubuntu上面配置好了Tensorflow以及Dlib环境,而在win上没有改环境,如果小伙伴在Win上面配置以上环境,便可以在Win下进行对应的操作哦!
二、Python代码实现Tensorflow神经网络模型训练
1、创建模型训练train.py文件
1)、创建训练模型文件
cd ~/lenovo/Smile-Python
touch train.py
2)、打开文件,写入步骤2的代码
gedit train.py
2、Tensorflow神经网络模型训练
1)、导入需要的库
import keras
import os, shutil
from keras import layers
from keras import models
from keras import optimizers
from keras.preprocessing.image import ImageDataGenerator
import matplotlib.pyplot as plt
2)、设置数据集训练测试集、正负样本路径
train_dir='./smile/train'
train_smiles_dir='./smile/train/smile'
train_unsmiles_dir='./smile/train/unsmile'
test_dir='./smile/test'
test_smiles_dir='./smile/test/smile'
test_unsmiles_dir='./smile/test/unsmile'
3)、定义打印出训练集和测试集的正负样本尺寸函数
def printSmile():
print('total training smile images:', len(os.listdir(train_smiles_dir)))
print('total training unsmile images:', len(os.listdir(train_unsmiles_dir)))
print('total test smile images:', len(os.listdir(test_smiles_dir)))
print('total test unsmile images:', len(os.listdir(test_unsmiles_dir)))
4)、定义构建小型卷积网络并进行数据集预处理函数
#构建小型卷积网络并进行数据集预处理
def convolutionNetwork():
model = models.Sequential()
model.add(layers.Conv2D(32, (3, 3), activation='relu',
input_shape=(1