使用Python完成口罩数据集训练,并实现摄像头口罩识别

一、准备数据集

下载地址
大家还可以自己找数据集进行训练。

二、导入Keras库,并划分数据集

import keras
keras.__version__

在这里插入图片描述

import os, shutil #复制文件
# 原始目录所在的路径
# 数据集未压缩
original_dataset_dir0 = 'D:\\Workspaces\\Jupyter-notebook\\datasets\\mldata\\人脸口罩数据集\\mask\\mask'
original_dataset_dir1 = 'D:\\Workspaces\\Jupyter-notebook\\datasets\\mldata\\人脸口罩数据集\\mask\\unmask'

# 我们将在其中的目录存储较小的数据集
base_dir = 'D:\\Workspaces\\Jupyter-notebook\\datasets\\mldata\\mask_small'
os.mkdir(base_dir)

# # 训练、验证、测试数据集的目录
train_dir = os.path.join(base_dir, 'train')
os.mkdir(train_dir)
validation_dir = os.path.join(base_dir, 'validation')
os.mkdir(validation_dir)
test_dir = os.path.join(base_dir, 'test')
os.mkdir(test_dir)

# 戴口罩训练图片所在目录
train_mask_dir = os.path.join(train_dir, 'mask')
os.mkdir(train_mask_dir)

# 不戴口罩训练图片所在目录
train_unmask_dir = os.path.join(train_dir, 'unmask')
os.mkdir(train_unmask_dir)

# 戴口罩验证图片所在目录
validation_mask_dir = os.path.join(validation_dir, 'mask')
os.mkdir(validation_mask_dir)

# 不戴口罩验证数据集所在目录
validation_unmask_dir = os.path.join(validation_dir, 'unmask')
os.mkdir(validation_unmask_dir)

# 戴口罩测试数据集所在目录
test_mask_dir = os.path.join(test_dir, 'mask')
os.mkdir(test_mask_dir)

# 不戴口罩测试数据集所在目录
test_unmask_dir = os.path.join(test_dir, 'unmask')
os.mkdir(test_unmask_dir)

# 将前600张戴口罩图像复制到train_mask_dir
fnames = ['mask{}.jpg'.format(i) for i in range(600)]
for fname in fnames:
    src = os.path.join(original_dataset_dir0, fname)
    dst = os.path.join(train_mask_dir, fname)
    shutil.copyfile(src, dst)

# 将600张戴口罩图像复制到validation_mask_dir
fnames = ['mask{}.jpg'.format(i) for i in range(600)]
for fname in fnames:
    src = os.path.join(original_dataset_dir0, fname)
    dst = os.path.join(validation_mask_dir, fname)
    shutil.copyfile(src, dst)
    
# 将600张戴口罩图像复制到test_mask_dir
fnames = ['mask{}.jpg'.format(i) for i in range(600)]
for fname in fnames:
    src = os.path.join(original_dataset_dir0, fname)
    dst = os.path.join(test_mask_dir, fname)
    shutil.copyfile(src, dst)
    
# 将前1000张不戴口罩图像复制到train_unmask_dir
fnames = ['unmask{}.jpg'.format(i) for i in range(1000)]
for fname in fnames:
    src = os.path.join(original_dataset_dir1, fname)
    dst = os.path.join(train_unmask_dir, fname)
    shutil.copyfile(src, dst)
    
# 将500张不戴口罩图像复制到validation_unmask_dir
fnames = ['unmask{}.jpg'.format(i) for i in range(1000, 1500)]
for fname in fnames:
    src = os.path.join(original_dataset_dir1, fname)
    dst = os.path.join(validation_unmask_dir, fname)
    shutil.copyfile
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值