moazabeer/Face-Mask-Detection-using-EfficientNetB0
GitHub: moazabeer/Face-Mask-Detection-using-EfficientNetB0
基于 EfficientNetB0 和 PyTorch 构建的口罩佩戴检测系统,通过迁移学习实现公共场所人员是否佩戴口罩的自动二分类识别。
Stars: 0 | Forks: 0
# 使用 EfficientNetB0 进行口罩检测
开发者:**Moaz**
本仓库包含一个用于在公共场所检测口罩的高性能计算机视觉解决方案。通过使用 **EfficientNetB0** 架构,该项目在计算效率和高准确率之间取得了平衡,使其适用于机场、医院和其他公共场所的实时监控。
## 📌 问题描述
在健康危机期间确保公共安全,需要对佩戴口罩的规定进行持续监控。人工监控不仅效率低下,而且容易出现人为错误。本项目使用 Deep Learning 实现了一个自动化的口罩检测系统,将人员分类为“佩戴口罩”或“未佩戴口罩”,从而实现非接触式安全监控。
## 📊 数据集
本项目使用了 Kaggle 上的 **Face Mask Detection** 数据集。
* **内容:** 包含在不同朝向和背景下佩戴口罩和未佩戴口罩的人像图片。
* **类别:** `With Mask`(佩戴口罩)和 `Without Mask`(未佩戴口罩)。
* **来源:** (https://www.kaggle.com/datasets/andrewmvd/face-mask-detection)
## 🛠️ 技术实现
* **框架:** PyTorch
* **模型:** EfficientNetB0(在 ImageNet 上预训练)
* **预处理:**
* 将图像大小调整为 $224 \times 224$ 像素。
* 数据增强(随机水平翻转和亮度调整)。
* 使用标准 ImageNet 参数进行 Tensor 转换和归一化。
* **训练策略:**
* Transfer Learning 结合专为二分类定制的自定义全连接(FC)层。
* **Optimizer:** Adam。
* **损失函数:** Cross-Entropy Loss。
* **数据集划分:** 80% 训练集,20% 评估/测试集。
## 🚀 如何运行
1. **克隆仓库:**
git clone https://github.com/your-username/face-mask-detection-efficientnet.git
cd face-mask-detection-efficientnet
2. **数据集设置:**
从 Kaggle 下载数据集,并确保将图像文件解压到项目目录中名为 `dataset` 的文件夹内。
3. **运行 Notebook:**
在 Google Colab 或 Jupyter Notebook 中启动 `Face_Mask_Detection_using_EfficientNetB0.ipynb` 并运行所有单元格。
## 📈 评估结果
系统性能通过以下方式进行验证:
* **准确率指标:** 评估 Precision、Recall 和 F1-Score,以实现可靠的安全监控。
* **Confusion Matrix:** 以可视化方式展示模型区分佩戴口罩和未佩戴口罩人脸的能力。
* **推理测试:** 在全新的、未见过的图像上运行模型,以证明其鲁棒性和现实世界中的适用性。
## 📦 环境依赖
* `torch`
* `torchvision`
* `matplotlib`
* `numpy`
* `scikit-learn`
* `Pillow`
## 📜 许可证
本项目为开源项目,基于 [MIT License](LICENSE) 发布。
标签:Adam优化器, EfficientNetB0, ImageNet预训练模型, Kaggle, PyTorch, 二分类, 交叉熵损失函数, 人工智能, 人群图像分析, 人脸口罩检测, 公共安全, 凭据扫描, 医疗健康监控, 口罩识别, 图像分类, 数据增强, 智能安防, 机器视觉, 深度学习, 用户模式Hook绕过, 疫情防控, 视频监控, 计算机视觉, 迁移学习, 逆向工具, 防疫工具