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, 地理围栏, 库, 应急响应, 智慧旅游, 机器学习, 访问控制, 逆向工具