MOHD-OMER/Building-Safety-Smoke-Detection
GitHub: MOHD-OMER/Building-Safety-Smoke-Detection
结合IoT传感器数据与深度学习视觉检测的智慧建筑火灾烟雾预警Django应用系统。
Stars: 0 | Forks: 0
# 🔥 通过基于机器学习和深度学习的烟雾检测增强建筑安全性 [C169]
[](https://python.org)
[](https://djangoproject.com)
[](https://tensorflow.org)
[](https://ultralytics.com)
## 📌 项目概述
本项目提出了一种智能建筑安全系统,该系统通过双模块方法检测火灾和烟雾:
- **ML 模块** —— 在真实世界 IoT 传感器数据集(62,630 条读数,13 个传感器通道)上训练的七个经典机器学习分类器,实现了超过 0.999 的近乎完美 AUC-ROC 分数。
- **DL 模块** —— 通过迁移学习训练的 MobileNetV2 CNN 在火灾/非火灾图像分类上实现了 96.98% 的验证准确率。YOLOv8 目标检测模型可在同一预测页面上在火灾和烟雾区域周围绘制边界框。
整个系统作为全栈 Django Web 应用程序提供,可通过任何浏览器访问。
## 👨💻 团队
| 姓名 | 学号 |
|------|-------------|
| Syed Abdul Wasay | 160922748015 |
| M.A.Omer | 160922748048 |
| Syed Afeef ul Luqman | 160922748037 |
| Mohammed Muneebuddin Ahmed | 160922748060 |
**项目指导:** Dr. Mohammed Tajuddin,副教授
**联合指导 / 系主任:** Dr. Abdul Rasool MD,副教授兼 CSE (AIML) 系主任
**所属机构:** Lords Institute of Engineering and Technology, Hyderabad
## 🏗️ 项目结构
```
Buliding_Saftey_Through_Machine_learning/
│
├── admins/ # Admin app (login, dashboard, user management)
├── users/ # Users app (dataset, training, prediction, CNN+YOLO)
├── templates/ # HTML templates
│ ├── admins/
│ └── users/
├── media/ # Model files and dataset
│ ├── models/ # Trained ML classifiers (.pkl) + YOLO (best.pt)
│ ├── cnn_model.h5 # Trained MobileNetV2 CNN
│ ├── cnn_classes.json # Class index mapping
│ ├── scaler.pkl # Fitted StandardScaler
│ ├── smoke_detection_iot.csv # IoT sensor dataset (62,630 rows)
│ └── cnn_dataset/ # fire/ and no_fire/ image folders
├── static/ # Static CSS/JS/images
├── manage.py
├── requirements.txt
├── Procfile # Railway/Gunicorn deployment
├── train_cnn.py # Standalone CNN training script
└── README.md
```
## ✨ 功能特性
| 功能 | 描述 |
|---------|-------------|
| 🔐 用户注册与登录 | 基于角色的访问控制,包含管理员激活流程 |
| 📊 数据集浏览器 | 浏览所有 62,630 条 IoT 传感器数据,支持分页和搜索 |
| 🤖 ML 训练 | 按需训练所有 7 个分类器,提供实时指标和图表 |
| 📡 传感器预测 | 输入 13 个传感器数值 → 即时烟雾检测结果 |
| 🖼️ CNN 图像分类 | 上传图像 → MobileNetV2 火灾/非火灾结果及置信度 |
| 🔲 YOLO 火灾与烟雾检测 | YOLOv8 在同一图像上的火灾和烟雾区域绘制边界框 |
| 👤 管理员仪表板 | 激活/停用用户账户 |
## 🛠️ 技术栈
| 层级 | 技术 |
|-------|-----------|
| Web 框架 | Django 5.2 |
| ML 库 | Scikit-Learn 1.6.1 |
| 深度学习 | TensorFlow 2.10 / Keras |
| 目标检测 | Ultralytics YOLOv8 |
| 计算机视觉 | OpenCV |
| 数据处理 | Pandas, NumPy 1.26.4 |
| 前端 | Bootstrap 5, Chart.js |
| 数据库 | SQLite (Django ORM) |
| 部署 | Railway + Gunicorn + WhiteNoise |
## 🚀 本地设置
### 1. 克隆仓库
```
git clone https://github.com/YOUR_USERNAME/Building-Safety-Smoke-Detection.git
cd Building-Safety-Smoke-Detection/Buliding_Saftey_Through_Machine_learning
```
### 2. 创建并激活 conda 环境
```
conda create -n smoke python=3.10
conda activate smoke
```
### 3. 安装依赖项
```
pip install -r requirements.txt
```
### 4. 应用迁移
```
python manage.py migrate
```
### 5. 训练 CNN 模型(仅首次运行)
```
python train_cnn.py
```
### 6. 运行开发服务器
```
python manage.py runserver
```
访问:**http://127.0.0.1:8000/**
## 🔑 默认管理员凭据
| 字段 | 值 |
|-------|-------|
| 用户名 | `admin` |
| 密码 | `admin` |
## 📈 ML 模型性能
| 模型 | 精确率 | 召回率 | AUC-ROC |
|-------|-----------|--------|---------|
| Random Forest | ~100% | ~100% | ~100% |
| Gradient Boosting | ~100% | ~100% | ~100% |
| AdaBoost | ~99.9% | ~99.9% | ~100% |
| Logistic Regression | ~99.3% | ~99.0% | ~99.9% |
| SVM | ~100% | ~99.9% | ~100% |
| Decision Tree | ~99.9% | ~99.9% | ~99.9% |
| KNN | ~100% | ~100% | ~100% |
**CNN 验证准确率:** 96.98% (MobileNetV2, Kaggle Fire Dataset)
## 🌐 在线演示
🔗 **[部署在 Railway](https://building-safety-smoke-detection-production.up.railway.app/)** ← 部署后更新此链接
## 📄 许可证
本项目作为 Lords Institute of Engineering and Technology, Hyderabad 工学学士学位部分要求的大型项目提交。项目团队保留所有权利。
标签:Apex, CNN, Django, MobileNetV2, Python, TensorFlow, YOLOv8, 卷积神经网络, 后端开发, 图像分类, 建筑安全, 数据分类器, 无后门, 智能安防, 机器学习, 深度学习, 火灾检测, 烟雾检测, 物联网传感器, 目标检测, 计算机视觉, 迁移学习, 逆向工具