gpu训练cnn人脸识别准确率_用深度学习keras的cnn做图像识别分类,准确率达97%

本文介绍了如何利用Keras库构建卷积神经网络(CNN)进行图像识别,特别是在人脸识别任务中,通过GPU训练实现了97%的准确率。文章详细讲解了数据预处理、模型构建以及训练过程,包括从Olivetti Faces数据库获取数据,使用PIL库进行图像处理,最后使用Keras的CNN模型进行分类。
摘要由CSDN通过智能技术生成

原标题:用深度学习keras的cnn做图像识别分类,准确率达97%

Keras是一个简约,高度模块化的神经网络库。

可以很容易和快速实现原型(通过总模块化,极简主义,和可扩展性)

同时支持卷积网络(vision)和复发性的网络(序列数据)。以及两者的组合。

无缝地运行在CPU和GPU上。

keras的资源库网址为https://github.com/fchollet/keras

olivettifaces人脸数据库介绍

Olivetti Faces是纽约大学的一个比较小的人脸库,由 40个人的400张图片构成,即每个人的人脸图片为10张。每张图片的灰度级为8位,每个像素的灰度大小位于0-255之间,每张图片大小为64×64。 如下图,这个图片大小是1140942,一共有2020张人脸,故每张人脸大小是(1140/20)(942/20)即5747=2679:

预处理模块

使用了PIL(Python Imaging Library)模块,是Python平台事实上的图像处理标准库。

预处理流程是:打开文件-》归一化-》将图片转为数据集-》生成label-》使用pickle序列化数据集

numpy.ndarray.flatten函数的功能是将一个矩阵平铺为向量

from PIL import Image

import numpy

import cPickle

img = Image.open('G:dataolivettifaces.gif')

# numpy supports conversion from image to ndarray and normalization by dividing 255

# 1140 * 942 ndarray

img_ndarray = numpy.asarray(img, dtype='float64') / 255

# create numpy array of 400*2679

img_rows, img_cols = 57, 47

face_data = numpy.empty((400, img_rows*img_cols))

# convert 1140*942 ndarray to 400*2679 matrix

for row in range(20):

for col in range(20):

face_data[row*20+col] = numpy.ndarray

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值