Views
No views yet

| 痛点 | 解决方案 |
|---|---|
| 不同时期影像难以对齐 | 两级配准(刚性+非刚性),亚毫米精度 |
| 病灶变化难以量化 | 体素级差异计算,RECIST 1.1 自动评估 |
| 报告撰写耗时长 | LLM 智能生成,3分钟出报告 |
| 数据隐私担忧 | 完全本地部署,数据不出院 |
1# 安装 huggingface_hub
2pip install huggingface_hub
3
4# 下载完整代码
5from huggingface_hub import snapshot_download
6snapshot_download(repo_id="cyd0806/neuroscan-ai", local_dir="./NeuroScan")
7
8# 下载模型权重
9snapshot_download(repo_id="cyd0806/neuroscan-ai-models", local_dir="./models")
10
11# 下载数据集
12snapshot_download(repo_id="cyd0806/neuroscan-ai-dataset", repo_type="dataset", local_dir="./data")| 仓库 | 内容 | 链接 |
|---|---|---|
| 📦 代码 | 完整项目代码 | cyd0806/neuroscan-ai |
| 🧠 模型 | MONAI 分割模型 | cyd0806/neuroscan-ai-models |
| 📊 数据 | Learn2Reg 数据集 | cyd0806/neuroscan-ai-dataset |
详细测试报告见 BENCHMARK.md
| 并发数 | 总耗时 | 吞吐量 | CPU峰值 | CPU均值 | 内存增量 | 并行效率 |
|---|---|---|---|---|---|---|
| 1 | 7.4s | 8.1/min | 10.3% | 1.9% | +1.0 GB | 100% |
| 2 | 7.7s | 15.6/min | 38.8% | 5.4% | +2.0 GB | 192% |
| 3 | 8.4s | 21.3/min | 39.2% | 7.4% | +3.0 GB | 262% |
| 4 | 9.1s | 26.5/min | 42.6% | 9.5% | +4.0 GB | 325% |
| 5 | 9.6s | 31.2/min | 42.0% | 11.3% | +5.0 GB | 384% |
| 并发数 | 总耗时 | GPU显存峰值 | GPU利用率 | CPU峰值 |
|---|---|---|---|---|
| 1 | 8.2s | 9.0 GB | 100% | 37.5% |
| 2 | 8.5s | 15.0 GB | 100% | 5.8% |
| 阶段 | CPU配准流程 | GPU分割流程 |
|---|---|---|
| 数据加载 | 0.1s (1%) | 0.1s (1%) |
| 刚性配准 | 1.1s (15%) | - |
| 非刚性配准 | 6.2s (84%) | - |
| 模型推理 | - | 8.1s (99%) |
| 总计 | 7.4s | 8.2s |
| 功能模块 | CPU | 内存 | GPU 显存 | 说明 |
|---|---|---|---|---|
| 📁 数据加载 (DICOM/NIfTI) | 2 核 | 2 GB | 无需 | 基础功能 |
| 🔄 图像配准 (刚性+非刚性) | 4 核 | 4 GB | 无需 | SimpleITK CPU 计算 |
| 📈 变化检测 | 2 核 | 2 GB | 无需 | NumPy 计算 |
| 🧠 器官分割 (MONAI) | 4 核 | 8 GB | 9-12 GB | 深度学习推理 |
| 💬 LLM 报告 (7B模型) | 4 核 | 8 GB | 4-6 GB | Ollama 推理 |
| 💬 LLM 报告 (3B模型) | 2 核 | 4 GB | 2-4 GB | 轻量级模型 |
| 方案 | CPU | 内存 | GPU | 存储 | 适用场景 |
|---|---|---|---|---|---|
| 💡 入门版 | 4 核 | 8 GB | 无 | 20 GB | 仅配准+变化检测,无 AI 功能 |
| ⚡ 标准版 | 8 核 | 16 GB | RTX 3060 (12GB) | 50 GB | 完整功能,使用 3B LLM |
| 🚀 专业版 | 16 核 | 32 GB | RTX 4090 (24GB) | 100 GB | 高性能,分割+8B LLM |
| 🏢 企业版 | 32 核+ | 64 GB+ | A100 (40GB+) | 500 GB+ | 批量处理,多用户 |
| 云服务商 | 推荐机型 | 配置 | 月费用估算 |
|---|---|---|---|
| AWS | g4dn.xlarge | 4C16G + T4 16GB | ~$380/月 |
| 阿里云 | ecs.gn6i-c4g1.xlarge | 4C15G + T4 16GB | ~¥2500/月 |
| AutoDL | RTX 3090 | 4C24G + RTX 3090 24GB | ~¥2.5/时 |
| 推荐入门 | AutoDL RTX 3060 | 4C16G + RTX 3060 12GB | ~¥1.2/时 |
💡 省钱建议: 开发测试阶段推荐使用 AutoDL 等按时计费平台,正式部署再考虑包月。
| 组件 | 大小 | 说明 |
|---|---|---|
| 代码仓库 | ~500 KB | Git clone |
| Python 依赖 | ~5 GB | pip install |
| MONAI 分割模型 | ~12 GB | 自动下载 |
| Ollama LLM (7B) | ~5 GB | ollama pull |
| 示例数据集 | ~300 MB | Learn2Reg |
| 总计 | ~25 GB | 最小安装 |
| 组件 | 最低配置 | 推荐配置 |
|---|---|---|
| OS | Ubuntu 20.04+ / Windows 10 | Ubuntu 22.04 LTS |
| Python | 3.9+ | 3.11 |
| CUDA | 11.8+ (如使用GPU) | 12.0+ |
| Docker | 20.10+ (可选) | 24.0+ |
1# 1. 克隆项目
2git clone https://github.com/ydchen0806/NeuronScanAI.git
3cd NeuronScanAI
4
5# 2. 创建虚拟环境
6conda create -n neuroscan python=3.11 -y
7conda activate neuroscan
8
9# 3. 安装依赖
10pip install -r requirements.txt
11
12# 4. 下载示例数据
13python scripts/download_datasets.py --dataset learn2reg
14
15# 5. 配置中文字体(可选)
16python scripts/setup_fonts.py
17
18# 6. 启动服务
19./start_demo.sh1# 完整启动(推荐)
2./start_demo.sh
3
4# 仅启动 API 后端
5./start_demo.sh api
6
7# 仅启动前端界面
8./start_demo.sh streamlit
9
10# 下载数据集
11./start_demo.sh download
12
13# 运行后端调试
14./start_demo.sh debug
┌─────────────────────────────────────────────────────────────┐
│ NeuroScan AI │
├─────────────────────────────────────────────────────────────┤
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Streamlit │ │ FastAPI │ │ Ollama │ │
│ │ Frontend │──│ Backend │──│ LLM │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
├─────────────────────────────────────────────────────────────┤
│ Core Services │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ DICOM │ │ Segment │ │Register │ │ Report │ │
│ │ Loader │ │ MONAI │ │ SimpleITK│ │Generator│ │
│ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │
├─────────────────────────────────────────────────────────────┤
│ PyTorch / MONAI / SimpleITK / NiBabel │
└─────────────────────────────────────────────────────────────┘NeuroScan/
├── app/ # 核心应用
│ ├── api/ # REST API
│ ├── services/ # 业务服务
│ │ ├── dicom/ # DICOM 处理
│ │ ├── segmentation/ # 器官分割
│ │ ├── registration/ # 图像配准
│ │ ├── analysis/ # 变化检测
│ │ └── report/ # 报告生成
│ └── agents/ # LLM Agents
├── scripts/ # 工具脚本
├── data/ # 数据目录
│ ├── raw/ # 原始数据
│ └── processed/ # 处理后数据
├── models/ # AI 模型
├── streamlit_app.py # Web 前端
└── requirements.txt # Python 依赖
| 测试项目 | 结果 | 耗时 |
|---|---|---|
| NIfTI 数据加载 | ✅ 成功 | < 1s |
| 刚性配准 (L1) | ✅ metric: -0.286 | 0.9s |
| 非刚性配准 (L2) | ✅ metric: -0.424 | 10.3s |
| 总配准时间 | ✅ 亚毫米精度 | 11.3s |
| 变化检测 | ✅ 6,239,210 体素 | < 1s |
| LLM 报告生成 | ✅ Ollama llama3.1:8b | ~120s |
1# CT 纵向对比分析报告
2
3**患者 ID**: TEST001
4**检查间隔**: 约 7 个月
5
6## 定量测量
7| 指标 | 基线 | 随访 | 变化 |
8|------|------|------|------|
9| 最大直径 (mm) | 15.5 | 12.3 | -20.6% |
10| 体积 (cc) | 1.20 | 0.80 | -33.3% |
11
12## RECIST 1.1 评估
13**评估结果**: 🟠 **SD (疾病稳定)**
14- 实际变化: -20.6%
15- 评估依据: 介于 PR 和 PD 之间
16
17## 临床建议
181. 继续当前治疗方案或观察
192. 建议 2-3 个月后复查
203. 定期监测肿瘤标志物1# 下载示例数据(约 300MB)
2python scripts/download_datasets.py --dataset learn2reg
3
4# 运行完整后端测试
5python scripts/debug_backend.py
6
7# 启动 Web 界面
8./start_demo.sh| 数据集 | 大小 | 说明 |
|---|---|---|
| Learn2Reg Lung CT | ~300 MB | 肺部吸气/呼气配对 ⭐推荐 |
| RIDER Lung CT | ~43 GB | 肺癌重复扫描 |
| NLST | ~12 TB | 国家肺癌筛查试验 |
| 模型 | 大小 | 用途 |
|---|---|---|
| llama3.1:8b | 4.9 GB | 通用医学报告 ⭐推荐 |
| meditron:7b | 3.8 GB | 医学专用模型 |
| medllama2:7b | 3.8 GB | 医学对话模型 |
1POST /api/v1/ingest
2Content-Type: multipart/form-data
3
4# 响应
5{
6 "scan_id": "uuid",
7 "message": "上传成功",
8 "metadata": {...}
9}1POST /api/v1/analyze/longitudinal
2{
3 "baseline_scan_id": "uuid1",
4 "followup_scan_id": "uuid2",
5 "region_of_interest": "chest"
6}
7
8# 响应
9{
10 "task_id": "uuid",
11 "status": "processing"
12}1GET /api/v1/reports/{task_id}
2
3# 响应
4{
5 "status": "completed",
6 "markdown_report": "...",
7 "key_images": [...]
8}1# LLM 配置
2LLM_MODEL=llama3.1:8b
3LLM_TEMPERATURE=0.1
4
5# 代理配置(下载数据时使用)
6http_proxy=http://127.0.0.1:7890
7https_proxy=http://127.0.0.1:7890| 模型 | 显存需求 | 特点 |
|---|---|---|
| llama3.1:8b | 8 GB | 通用能力强 |
| llama3.2:3b | 4 GB | 轻量级 |
| meditron:7b | 8 GB | 医学专用 |
1# 后端调试
2python scripts/debug_backend.py
3
4# 单元测试
5python -m pytest test_case/1# 清理所有临时文件
2python scripts/cleanup.py --all
3
4# 仅清理缓存
5python scripts/cleanup.py --cache
6
7# 查看磁盘使用
8python scripts/cleanup.py --stats