Saketh2172/Multimodal-Crime-Incident-Report-Analyzer

GitHub: Saketh2172/Multimodal-Crime-Incident-Report-Analyzer

一个多模态AI事件报告分析器,通过统一处理音频、视频、图像和文本等多种数据源,自动提取结构化细节并生成严重程度评级以供应急响应审查。

Stars: 0 | Forks: 0

# 多模态犯罪/事件报告分析器 本项目在 Python 中运行处理**音频**、**图像**、**视频**、**文本**和**文档 (PDF/DOCX)** 的 pipeline,然后将结果合并到 CSV 文件中。位于 `dashboard/` 目录下的 **React 仪表板**会在一个可搜索的表格中显示所有事件。 **仓库地址:** [AdithyaReddyGeeda/Multimodal-Crime-Incident-Report-Analyzer](https://github.com/AdithyaReddyGeeda/Multimodal-Crime-Incident-Report-Analyzer) ## 请先阅读此说明 1. **始终使用项目根目录** — 即包含 `main.py`、`modules/` 和 `dashboard/` 的文件夹。如果你在 `dashboard/` 内部运行 Python,路径将会出错。 2. **使用 Python 虚拟环境**,以免依赖项与其他项目发生冲突。 3. **在** pipeline 完成后,运行一次 **`sync_dashboard_data.py`**,然后启动仪表板。网站是从 `dashboard/src/data/*.js` 读取数据的,而不是直接读取 CSV 文件。 ## 需要安装的软件 | 软件 | 用途 | |----------|-----| | **Python 3.9+** | 运行所有分析脚本 | | **Node.js (LTS)** | 运行 React 仪表板 (`npm run dev`) | **可选(某些功能在使用这些软件时体验更佳):** | 软件 | 用途 | |----------|-----| | **Tesseract** | 识别图像内部的 OCR 文本(Mac 上使用 `brew install tesseract`) | | **FFmpeg** | 在某些系统上对音频/视频工具很有帮助 | | **Roboflow API key** | 云端图像模型;如果没有它,图像模块可能会使用本地的 YOLO 作为备选方案 | ## 详细步骤:从零开始运行项目 ### 1. 获取代码并进入文件夹 ``` git clone https://github.com/AdithyaReddyGeeda/Multimodal-Crime-Incident-Report-Analyzer.git cd Multimodal-Crime-Incident-Report-Analyzer ``` 如果你已经有该文件夹,请打开终端并 `cd` 进入其中(即包含 `main.py` 的目录)。 ### 2. 创建 Python 环境并安装依赖包 **macOS / Linux:** ``` python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt python -m spacy download en_core_web_sm python -m nltk.downloader stopwords punkt punkt_tab ``` **Windows (命令提示符或 PowerShell):** ``` python -m venv .venv .venv\Scripts\activate pip install -r requirements.txt python -m spacy download en_core_web_sm python -m nltk.downloader stopwords punkt punkt_tab ``` 当环境激活时,你的终端提示符中应该会看到 `(.venv)`。**只有在激活环境后,才运行下方的所有 `python` / `python3` 命令。** ### 3. 安装仪表板依赖(仅需一次) 在**项目根目录**下(先不要进入 `dashboard/`): ``` cd dashboard npm install cd .. ``` ### 4. 用于图像的 API key(可选) ``` cp .env.example .env ``` 在项目根目录下编辑 `.env` 并设置: ``` ROBOFLOW_API_KEY=your_key_here ``` 前往 [roboflow.com](https://roboflow.com) 获取 key。如果你跳过此步骤,根据你的配置,图像 pipeline 可能仍会使用本地模型运行。 **请勿提交 `.env`。** 它已被列入 `.gitignore`。 ### 5. 将数据存放在脚本预期的位置 pipeline 从固定路径读取数据。如果缺少某些内容,该模块可能会打印警告或生成空的 CSV。 | 模块 | 所需内容 | 典型位置 | |--------|----------------|------------------| | **Audio** | 转录 CSV | `data/audio/transcripts.csv` | | **Image** | 测试图像 | `fire-detection.v1i.yolov8/test/images/` (YOLO 数据集布局) | | **Video** | 视频文件 | `data/videos/` (例如 `.mpg`, `.mp4`) | | **Text** | 犯罪类文本 | `data/text/` 或 `data/Text/` — 例如 `CrimeReport.txt` 或 CSV(有关支持的名称,请参见 `modules/text_analyst.py`) | | **Document** | PDF / DOCX / TXT | `data/documents/` | 仓库可能已经包含其中一些内容(例如音频和文本)。**大**文件(完整的图像数据集、CAVIAR 视频、外部 PDF)通常**不**在 Git 中 — 如果你的作业需要,请单独下载。有关链接,请参阅本文件末尾的**“下载数据集”**部分。 ### 6. 运行完整 pipeline 留在**项目根目录**中。如果需要,激活 `.venv`,然后: ``` python3 main.py ``` 在 Windows 上,如果找不到 `python3`,请使用 `python main.py`。 `main.py` 会**按此顺序**执行这些步骤(每个步骤都包裹在 `try`/`except` 中,因此一个步骤失败不会停止其余步骤): 1. Audio 分析模块 2. Image 分析模块 3. Video 分析模块 4. Text 分析模块 5. Document 分析模块 6. Integrator(将所有模块的 CSV 合并到 `outputs/final_integrated_report.csv`) 在下载模型时,第一次运行可能会花费很长时间。 ### 7. 将结果复制到仪表板中,然后打开网站 仍在**项目根目录**下: ``` python3 sync_dashboard_data.py cd dashboard npm run dev ``` 你的终端将显示一个本地 URL — 在浏览器中打开它(通常是 **http://localhost:5173**)。 每当你在 `outputs/` 中重新生成 CSV 时,在刷新应用之前,请再次运行 **`python3 sync_dashboard_data.py`**。 ## 单独运行某个模块(可选) 使用相同的项目根目录和已激活的 venv。顺序与 `main.py` 匹配: ``` python3 modules/audio_analyst.py python3 modules/image_analyst.py python3 modules/video_analyst.py python3 modules/text_analyst.py python3 modules/document_analyst.py python3 modules/integrator.py ``` ## 输出 运行 pipeline 后,请查看 **`outputs/`**: | 文件 | 含义 | |------|---------| | `audio_output.csv` | Audio 模块 | | `image_output.csv` | Image 模块 | | `video_output.csv` | Video 模块 | | `text_output.csv` | Text 模块 | | `document_output.csv` | Document 模块 | | `final_integrated_report.csv` | Integrator(合并所有来源) | ## 项目布局(简述) ``` main.py # Full pipeline entry point sync_dashboard_data.py # CSV → dashboard/src/data/*.js requirements.txt .env # Create locally; never commit modules/ # audio_analyst, image_analyst, video_analyst, # text_analyst, document_analyst, integrator data/ # audio, videos, text, documents, etc. outputs/ # Generated CSVs (created when you run pipelines) dashboard/ # React app — npm install once, then npm run dev ``` **额外文件(如果有):** `dashboard/pipeline_architecture.html`(在浏览器中打开以查看图表),`project_report.docx`(书面报告)。 ## 常见问题 | 问题 | 解决方法 | |---------|------------| | `No such file ... modules/...` 或 `can't open file 'modules/...'` | 你不在项目根目录中。请 `cd` 到包含 `main.py` 的文件夹,然后再次运行该命令。 | | `No module named 'pandas'` (或类似错误) | 激活 `.venv` 并再次运行 `pip install -r requirements.txt`。 | | 仪表板为空或显示旧数据 | 生成 CSV 后,从项目根目录运行 `python3 sync_dashboard_data.py`。 | | 图像步骤失败 | 检查 `.env` 中的 `ROBOFLOW_API_KEY`,并确保图像路径与 `modules/image_analyst.py` 匹配。 | | 视频步骤失败 | 将视频文件放在 `data/videos/` 下,并检查你的脚本支持的视频格式。 | | 文档步骤未生成任何行 | 在 `data/documents/` 下添加至少一个 `.pdf`、`.docx` 或 `.txt` 文件。 | ## 下载数据集(当仓库未捆绑提供时) 这些只是**示例** — 请遵循你的课程或作业说明以获取所需的文件。 - **火灾检测图像:** [Roboflow 火灾检测](https://universe.roboflow.com/) — 下载 YOLOv8 格式并解压,以便在项目根目录下生成 `fire-detection.v1i.yolov8/test/images/` 目录。 - **CAVIAR 监控:** [CAVIAR 数据集](https://homepages.inf.ed.ac.uk/rbf/CAVIARDATA1/) — 将 `.mpg`(或受支持的)文件放置在 `data/videos/` 中。 - **用于文档的示例 PDF:** 将任何警察报告风格的 PDF 添加到 `data/documents/` 中,或使用你作业中链接的来源。 ## 许可证与数据 第三方数据集和 API 拥有各自的使用条款。请勿提交 API key、密码或私密数据。
标签:Python, React, Syscalls, 代码示例, 多模态AI, 库, 应急响应, 数据分析, 无后门, 计算机视觉, 逆向工具