python微笑_Python人脸微笑识别2—–Ubuntu16.04基于Tensorflow卷积神经网络模型训练的Python3+Dlib+Opencv实现摄像头人脸微笑检测...

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)、数据集展示

c541672c460d2091b2f8ac5df2710ec3.png

f17608990f0796ae32f5b439de8ceef0.png

8afe640922f4ff3dfd1971b044be55f1.png

smile和unsmile中的便是数据集图片啦!

2、创建人脸微笑识别项目

1)、打开终端,创建项目文件夹Smile-Python

cd ~/lenovo

mkdir Smile-Python

cd Smile-Python

54797af083c209e74d4f3dc7b042b28d.png

3、数据集上传至Ubuntu人脸微笑识别项目文件夹

1)、将上面下载的数据集上传至Ubuntu,进行划分,林君学长之所以上传至Ubuntu上面做,是因为在Ubuntu上面配置好了Tensorflow以及Dlib环境,而在win上没有改环境,如果小伙伴在Win上面配置以上环境,便可以在Win下进行对应的操作哦!

3afd7e969fd079e51e79f4bef9fe3dd3.png

二、Python代码实现Tensorflow神经网络模型训练

1、创建模型训练train.py文件

1)、创建训练模型文件

cd ~/lenovo/Smile-Python

touch train.py

1fa035f91fdb60ba36f451e4b21e5cfd.png

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值