Tensorflow学习笔记-基于LeNet5结构的ORL数据集人脸识别

参考文献:
《基于卷积神经网络的人脸识别研究》 李春利,柳振东,惠康华

文章中基于经典的网络LeNet-5的结构,提出了一种适用于ORL数据集的CNN结构,在该数据集上取得了较高的识别率。

本文是在参考此论文的基础上,使用tensorflow实现了文中相关理论。

ORL训练集byCSDN

训练集下载解压后可以看到,ORL训练集一共有40类,每一类有10张bmp类型的图片。
目录

s1中图片

首先我们需要做的就是将这些数据读入,制作我们自己的训练集和测试集。

input_path = "./orl"
train_path = "./train"
test_path = "./test"

if not os.path.exists(train_path):
    os.mkdir(train_path)

if not os.path.exists(test_path):
    os.mkdir(test_path)

for i in range(1, 41):
    if not os.path.exists(train_path + '/' + str(i)):
        os.mkdir(train_path + '/' + str(i))
    if not os.path.exists(test_path + '/' + str(i)):
        os.mkdir(test_path + '/' + str(i))


# 生成训练和测试的数据
def generate_data(train_path, test_path):
    index = 1
    output_index = 1
    for (dirpath, dirnames, filenames) in os.walk(input_path):
        # 打乱文件列表,相当于是随机选取8张训练集,2张测试
        random.shuffle(filenames)
        for filename in filenames:
            if filename.endswith('.bmp'):
                img_path = dirpath + '/' + filename
                # 使用opencv 读取图片
                img_data = cv2.imread(img_path)
                # 按照论文中的将图片大小调整为28 * 28
                img_data = cv2.resize(img_data, (28, 28), interpolation=cv2.INTER_AREA)
                if index < 3:
                    cv2.imwrite(test_path + '/' + str(output_index) + '/' + str(index) + '.jpg', img_data)
                    index += 1
                elif 10 >= index >= 3<
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值