deepika-s45/mini-project
GitHub: deepika-s45/mini-project
基于集成机器学习与可解释 AI 的离线优先旅游安全监控仪表盘,为偏远低连接地区的游客提供实时风险评估与事件响应能力。
Stars: 0 | Forks: 0
# 🛡️ TravelEye:基于 AI 的智能旅游安全监控与事件响应系统
一个使用 **Streamlit** 构建的智能实时旅游安全监控仪表盘,由**集成机器学习 (Ensemble Machine Learning)**、**可解释 AI (SHAP)** 和**地理围栏 (Geo-Fencing)** 驱动 — 旨在保护偏远和低连接地区的游客。
## 📌 问题陈述
偏远目的地的游客安全面临严峻挑战:
| 挑战 | 影响 |
|-----------|--------|
| **网络信号差** | 事件报告和响应延迟 |
| **预测准确率低** | 单一模型 AI 系统无法捕捉复杂的风险模式 |
| **缺乏透明度** | AI 决策不透明 — 当局无法信任或采取行动 |
| **隐私问题** | 游客个人数据未经同意被共享 |
该系统通过一个统一的、支持离线的平台直接解决这四个问题。
## ✨ 核心功能
### 🤖 驱动的风险评估
- 结合随机森林和梯度提升的**集成模型**,准确率更高
- 实时风险分类:**安全** / **警告** / **危险**
- 基于 10 个上下文特征(地形、天气、信号、海拔等)进行训练
### 🧠 基于 SHAP 的可解释 AI
- 每次 AI 预测都附带 **SHAP 解释**
- 当局可以看到*为什么*游客会被标记为存在风险
- 提供特征重要性可视化以实现完全透明
### 🗺️ 地理围栏与实时监控
- 带有可配置安全区的交互式 **Folium** 地图
- 当游客离开安全区时进行实时越界检测
- 事件自动记录到本地数据库中
### 🔒 基于授权的隐私系统
- 游客数据**仅在**明确授权的情况下共享
- 在未经授权的紧急情况下 — 仅共享位置信息(不包含任何个人隐私信息)
- 完全符合隐私优先的设计原则
### 📡 离线优先架构
- **SQLite** 本地数据库无需互联网即可工作
- 专为信号差、偏远的旅游目的地设计
- 在恢复连接时进行同步
### 📊 分析仪表盘
- 事件类型分布与严重程度分析
- 风险等级细分图表
- 带有实时状态指示器的实时指标卡片
## 🏗️ 系统架构
```
┌──────────────────────────────────────────────────┐
│ Streamlit Web Dashboard │
│ ┌─────────────┐ ┌─────────────┐ ┌────────────┐ │
│ │ Live │ │ AI Risk │ │ Geo-Fence │ │
│ │ Dashboard │ │ Assessment │ │ Monitor │ │
│ └──────┬──────┘ └──────┬──────┘ └──────┬─────┘ │
│ │ │ │ │
│ ┌──────┴───────────────┴───────────────┴──────┐ │
│ │ Core Processing Engine │ │
│ │ ┌──────────┐ ┌───────┐ ┌──────────────┐ │ │
│ │ │ Ensemble │ │ SHAP │ │ Privacy & │ │ │
│ │ │ ML Model │ │ XAI │ │ Consent Mgr │ │ │
│ │ └──────────┘ └───────┘ └──────────────┘ │ │
│ └──────────────────┬──────────────────────────┘ │
│ │ │
│ ┌──────────────────┴──────────────────────────┐ │
│ │ SQLite Local Database │ │
│ │ tourists │ incidents │ zone_alerts │ │
│ └─────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────┘
```
## 🛠️ 技术栈
| 层级 | 技术 |
|-------|-----------|
| **Frontend** | Streamlit, Plotly, Folium |
| **ML 引擎** | scikit-learn (Random Forest, Gradient Boosting) |
| **可解释性** | SHAP (SHapley Additive exPlanations) |
| **数据库** | SQLite (支持离线) |
| **地图** | Folium + streamlit-folium |
| **编程语言** | Python 3.10+ |
## 🚀 快速开始
### 前置条件
- Python 3.10 或更高版本
- pip (Python 包管理器)
### 安装说明
**安装依赖项**
```
pip install -r requirements.txt
```
**运行应用程序**
```
streamlit run tourist_safety_system.py
```
**在浏览器中打开**
在您的 Web 浏览器中导航至 `http://localhost:8501`。
## 📂 项目结构
```
├── tourist_safety_system.py # Main application (UI + ML + Database)
├── requirements.txt # Python dependencies
├── .gitignore # Excludes DB files & sensitive data
└── README.md # Project documentation
```
## 📱 仪表盘模块
### 1. 📊 实时仪表盘
实时概览,显示安全/警告/危险的游客人数、区域警报状态(颜色区分)、各区域信号覆盖以及离线模式指示器。
### 2. 🤖 AI 风险评估
输入游客参数(年龄、地形、天气、信号、海拔等),即可获得即时的风险分类,并附带基于 SHAP 的解释,准确展示哪些因素促成了该预测结果。
### 3. 🗺️ 地理围栏监控
由 Folium 提供支持的交互式地图,带有预配置的安全区。模拟游客位置并实时检测地理围栏越界行为。越界行为将作为事件记录在本地数据库中。
### 4. 🔒 隐私与授权
注册游客时可选择是否授权共享紧急数据。模拟紧急与普通访问模式 — 只有在启用紧急模式且游客已授权的情况下,才会显示个人数据。
### 5. 📈 分析
使用交互式 Plotly 图表,按类型、严重程度级别和风险类别分布对事件进行可视化细分。
## 🔬 AI 模型细节
| 模型 | 类型 | 集成中的作用 |
|-------|------|---------------|
| **Random Forest** | Bagging | 降低方差,处理噪声特征 |
| **Gradient Boosting** | Boosting | 降低偏差,捕捉复杂模式 |
### 输入特征(共 10 个)
| 特征 | 描述 |
|---------|-------------|
| `age` | 游客年龄 |
| `signal_strength` | 网络信号强度 (0–100%) |
| `distance_from_safe_zone` | 距离最近安全区的距离 |
| `time_since_last_checkin` | 距离上次签到的时间(小时) |
| `weather_severity` | 天气状况严重程度 (1–5) |
| `terrain_difficulty` | 地形难度评级 (1–5) |
| `group_size` | 旅游团规模 |
| `experience_level` | 游客经验评级 (1–5) |
| `temperature` | 环境温度 (°C) |
| `altitude` | 当前海拔高度(米) |
### 输出类别
| 类别 | 含义 |
|-------|---------|
| 🟢 **安全** | 低风险 — 无需采取行动 |
| 🟡 **警告** | 中等风险 — 需密切监控 |
| 🔴 **危险** | 高风险 — 需立即响应 |
## 👥 作者
DEEPIKA SULAKE
标签:Apex, Kubernetes, Streamlit, 可解释AI, 地理围栏, 库, 应急响应, 智慧旅游, 机器学习, 访问控制, 逆向工具