Brainμ-Spike

Brainμ-Spike:脉冲相机影像重建

北京大学余肇飞团队与北京智源人工智能研究院(BAAI)联合开展面向 Brainmu 模型微调的脉冲相机影像重建研究。

目录说明

config.json         小网络结构、输入规格及推理参数
model.safetensors   小网络权重
README.md           项目说明
src/
├── code/           训练、条件图像导出与微调代码
├── scripts/        安装、推理和网页入口
├── ui/             网页界面与多 GPU 调度
├── vendor/Brainmu/  适配后的上游模型代码
├── configs/        配置示例
├── tests/          单元测试
├── assets/         标识图片
├── requirements.txt
├── LICENSE
└── NOTICE

根目录权重对应脉冲重建卷积模块。基础大模型和 LoRA 权重暂未发布;完整生成流程需要另行准备这两部分权重。代码来源与许可见 LICENSENOTICE

环境安装

需要 Linux、NVIDIA GPU 和 uv。安装脚本使用 Python 3.12、PyTorch 2.11.0、torchvision 0.26.0、CUDA 13.0 对应的 PyTorch 构建,以及 FlashAttention 2.8.3.post1;请准备兼容的 NVIDIA 驱动及用于编译扩展的 CUDA 工具链。其余依赖见 src/requirements.txt

在仓库根目录执行:

bash src/scripts/setup_uv.sh

脚本创建 src/.venv 并安装依赖,不覆盖已有环境。若已有兼容环境,可在评测时设置 BRAINMU_ENV=/path/to/environment;命令行评测启动脚本仍需要 uv。

小网络推理

在仓库根目录执行;本入口读取根目录的配置和 safetensors 权重,不加载大模型。只运行此入口可按 轻量环境说明 安装 CPU 依赖。

python src/scripts/infer_frontend.py \
  --spike-dir /path/to/test/spike \
  --gt-dir /path/to/test/gt \
  --output-dir outputs/frontend_test \
  --device cpu

输入 DAT 为 41 × 250 × 400 的二值序列,little-bit 打包,共 512,500 字节;读取时沿高度翻转。GT 为同名 400 × 250 PNG。--gt-dir 可省略;提供 GT 时输出逐图 PSNR/SSIM 与平均指标。--limit 3 可用于小规模验证;GPU 环境可选择 --device cuda:0

完整流程推理与评测

准备好基础模型、LoRA 和数据,并激活 src/.venv 后,从仓库根目录执行:

CUDA_VISIBLE_DEVICES=0 bash src/scripts/test.sh \
  --model-path /path/to/base_model \
  --adapter /path/to/adapter.safetensors \
  --frontend "$PWD/model.safetensors" \
  --spike-dir /path/to/test/spike \
  --gt-dir /path/to/test/gt \
  --output-dir "$PWD/outputs/test1000"

默认检查并评测 1,000 对数据,固定提示词为 Restore the clean image.。可通过 --prompt 自定义提示词。常用选项:

  • --check-only:只检查文件与数据,不执行模型推理;仍需提供权重文件路径。
  • --expected-count N:调整要求的数据数量。
  • --expected-count 0 --limit 3:仅对排序后的前三张进行小规模试运行。

每次使用新的输出目录。输出包括:

文件或目录 内容
condition/ 卷积模块生成的条件图像
prediction/ 重建 RGB 图像
metrics.csv 逐样本指标
metrics.json 已完成数量、平均指标和运行状态
dataset_manifest.json 输入文件清单及内容哈希
run_config.json 推理设置与运行环境信息

评测将预测图像转换为灰度、归一化到 [0,1],逐图计算 PSNR 后取平均;SSIM 使用 11 × 11 高斯窗口、σ=1.5,不裁剪边界。GT 会按预测尺寸调整。只有 status=complete 且完成数量等于请求数量才表示评测结束。请使用独立测试数据;程序不会自动检测训练与测试集重叠。

网页演示

source src/.venv/bin/activate
bash src/scripts/start_ui.sh

打开 http://127.0.0.1:8997,依次指定权重路径、加载模型、加载测试数据并开始评测。界面支持 1/2/4/8 卡,默认 8 卡;请在加载前按可用 GPU 数量选择。网页入口预期 1,000 对 DAT/GT,其他数量请使用命令行入口。

远程部署时,在本地建立两个端口转发:

ssh -N -L 8997:127.0.0.1:8997 -L 8998:127.0.0.1:8998 USER@HOST

界面没有用户认证,请通过 SSH 转发访问,不要直接暴露到公网。在启动终端按 Ctrl+C 停止服务。

Downloads last month
833
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support