一天一个开源项目(第32篇):Edit-Banana - 让不可编辑的图表变成可编辑,SAM3+多模态大模型驱动

引言

"把不可编辑的,变成可编辑的。------Make the Uneditable, Editable."

这是「一天一个开源项目」系列的第 32 篇文章。今天介绍的项目是 Edit-BananaGitHub)。

论文、报告、教材里的流程图、架构图、技术示意图往往是 PNG/JPG 或 PDF 里的「死图」------不能改文字、不能拖形状、不能换模板。Edit-Banana 是北京理工大学数据实验室(BIT-DataLab)开源的通用内容重编辑框架 :用自研微调的 SAM 3(Segment Anything Model 3) 做图表元素分割,用多模态大模型(Qwen-VL / GPT-4V 等) 做多轮扫描与 OCR,把静态图/PDF 高保真转成 DrawIO(XML)、SVG、PPTX,每个元素都可单独选中、拖拽、改样式,真正「可编辑」。

为什么值得看?

  • 🍌 一图变 DrawIO/PPTX:流程图、架构图、公式图 → 可编辑 XML/SVG/PPTX
  • 🤖 SAM3 + 多模态 VLM:分割 + 多轮 VLM 扫描,保留版式、层级、箭头样式
  • 📐 高保真:布局逻辑、配色、描边/填充、虚线/粗细、文字与公式(含 LaTeX)尽量还原
  • 🌐 即用 Demo :在线 editbanana.anxin6.cn 上传即用;本地支持 Web(React + FastAPI)与 CLI
  • 📄 PDF → PPTX:支持 PDF 转可编辑幻灯片
  • 🔧 可配置 :SAM3 阈值、路径、主色等通过 config.yaml 调优

你将学到什么

  • Edit-Banana 的定位与典型使用场景(图→DrawIO、PDF→PPTX、人机协同修改)
  • 整体流水线:输入 → SAM3 分割 → 文本/公式 OCR(Azure + VLM 回退)→ 合并生成 XML/PPTX
  • 关键技术点:SAM3 微调、多轮 VLM 扫描、Azure OCR、Crop 高分辨率文字/公式识别、LaTeX 输出
  • 项目结构、安装与配置、Web 与 CLI 两种使用方式
  • 与同类「图转可编辑」方案的对比与选型参考
  • 开发路线图(箭头智能连接、模板适配、批量导出、本地 VLM 等)

前置知识

  • 对图像分割、OCR 有基本概念即可
  • 了解 DrawIO(.drawio / XML)或 PPTX 格式会有帮助
  • 本地部署需 Python 3.10+、可选 CUDA GPU;前端为 React + Node

项目背景

项目简介

Edit-Banana 的 Slogan 是 「Universal Content Re-Editor: Make the Uneditable, Editable」 。它要解决的是:静态格式(图片、PDF)中的图表、示意图、公式无法直接编辑 的问题。

通过「SAM 3 分割 + 多模态大模型多轮扫描 + 高质量 OCR(Azure + VLM 回退 + 公式 LaTeX)」的流水线,把:

  • 输入:PNG/JPG 图片,或 PDF
  • 输出 :可编辑的 DrawIO(XML)、SVG、PPTX,元素可单独选中、拖拽、改样式

从而保留原图的布局逻辑、颜色、层级、箭头样式,并支持后续在 DrawIO 或 PowerPoint 中继续编辑、换模板。

面向的用户

  • 需要把论文/报告里的图改成可编辑版本的研究者、写作者
  • 想把现有教材/讲义中的图统一成 DrawIO/PPT 的教师、课程制作者
  • 希望从设计稿/截图快速得到可编辑图的开发者、产品经理
  • 对 SAM、多模态 VLM、OCR 流水线感兴趣的学习者

作者/团队介绍

  • 团队BIT-DataLab(北京理工大学数据实验室)
  • 代表贡献者 :Chai Chengliang、Zhang Chi、Deng Qiyan、Rao Sijing 等(见 GitHub Contributors
  • 联系:README 中提供 WeChat 群二维码,可扫码加入交流;Issues 可提 Bug 与建议

项目数据

  • GitHub Stars : 约 1.9k(GitHub
  • 🍴 Forks: 约 99
  • 📦 仓库状态 : 22 commits,持续迭代;README 注明在线服务优先更新,GitHub 代码可能略滞后于线上能力
  • 📄 License: Apache-2.0(可商用、二次开发,保留版权声明)
  • 🌐 在线 Demo : editbanana.anxin6.cn
  • 💬 社区: GitHub Issues、WeChat 群(见 README)

技术栈:Python(100% 仓库语言)、CUDA、React(前端)、FastAPI(后端)。


主要功能

核心作用

Edit-Banana 的核心作用是:把「不可编辑」的静态图表/PDF 转成「可编辑」的 DrawIO(XML)、SVG、PPTX

  1. 图 → DrawIO / SVG / PPTX:流程图、架构图、技术示意图、公式图等,输出可拖拽、可改样式的元素。
  2. PDF → PPTX:PDF 页面转成可编辑的 PPT 幻灯片。
  3. 人机协同:支持在流程中人工介入修改(Human in the Loop)。

转换时尽量做到:

  • 保留布局逻辑、颜色、元素层级;
  • 1:1 还原形状描边/填充、箭头样式(虚线、粗细等);
  • 文字与公式识别准确,支持后续编辑和 LaTeX 公式。

使用场景

  1. 论文/报告插图可编辑化

    • 将论文里的流程图、架构图从 PNG 转为 DrawIO,便于改版、复用。
  2. 教材/讲义图表统一格式

    • 把扫描版或截图中的图批量转为 DrawIO 或 PPTX,统一风格与模板。
  3. 设计稿/截图快速成图

    • 设计图或界面截图 → 可编辑图,便于在 DrawIO/PPT 中二次设计。
  4. PDF 讲义转 PPT

    • 将 PDF 讲义转成可编辑 PPTX,方便修改版式和内容。
  5. 技术文档与培训材料

    • 技术示意图、系统架构图从静态图变为可维护的 DrawIO/PPTX。

快速开始

在线使用(推荐)

  • 打开 editbanana.anxin6.cn/
  • 上传图片或 PDF,即可得到可编辑的 DrawIO(XML)或 PPTX
  • 新用户注册可获得一定免费额度

本地安装与运行

环境:Python 3.10+、Node.js & npm(前端)、建议带 CUDA 的 GPU。

bash 复制代码
# 1. 克隆
git clone https://github.com/BIT-DataLab/Edit-Banana.git
cd Edit-Banana

# 2. 创建目录
mkdir -p input output sam3_output

# 3. 下载模型(如 SAM3)
# 从 https://modelscope.cn/models/facebook/sam3 下载,放到 models/sam3.pt,并在 config 中配置路径

# 4. 后端依赖
pip install -r requirements.txt

# 5. 配置文件与环境变量
cp config/config.yaml.example config/config.yaml
# 创建 .env,配置 AZURE_ENDPOINT、AZURE_API_KEY 等(见 README)

# 6. 前端
cd frontend && npm install && cd ..

Web 方式

bash 复制代码
# 后端
python server_pa.py   # 默认 http://localhost:8000

# 前端(另开终端)
cd frontend && npm run dev   # 默认 http://localhost:5173

浏览器访问前端地址,上传图片即可在页面内看到转换结果(如内嵌 DrawIO 编辑器)。

CLI 方式

bash 复制代码
# 单张图
python main.py -i input/test_diagram.png
# 输出 XML 等在 output/ 目录

核心特性

  1. SAM3 分割

    • 使用项目微调的 SAM 3 对图表元素做分割,为后续还原几何与层级打基础。
  2. 多轮 VLM 扫描

    • 多模态大模型(如 Qwen-VL、GPT-4V) 引导的固定多轮扫描,提取结构、关系与文本。
  3. 高质量 OCR 与公式

    • Azure Document Intelligence 做精确文本定位;
    • 若 Azure 不可用,自动回退到 VLM 端到端 OCR
    • 使用 Mistral Vision / MLLM 做文本纠错与公式转 LaTeX
    • Crop-Guided:对文字/公式区域做高分辨率裁剪再送 LLM,提高识别质量。
  4. 用户与并发

    • 用户系统:注册送免费 credits,按量扣费防滥用;
    • 多用户并发Global Lock 保证 GPU 线程安全,LRU Cache 缓存图像嵌入,兼顾性能与稳定。
  5. Web 与 CLI

    • React 前端 + FastAPI 后端 ,上传即用;同时提供 CLImain.py)便于脚本化。
  6. 配置化

    • config/config.yaml 可调:SAM3 分数阈值、NMS、迭代次数、路径、主色提取等。

项目优势

对比项 Edit-Banana 传统截图重绘 通用 OCR 工具
输出格式 DrawIO(XML)/SVG/PPTX 可编辑 多为位图 纯文本/表格
图表结构 保留形状、连线、层级 需人工重画 不保留版式
公式 LaTeX 输出,可编辑 难以复用 部分支持
技术栈 SAM3 + 多模态 VLM + OCR 手工/简单工具 以文本为主
开源与商用 Apache-2.0,可二次开发 视具体工具 视具体产品

为什么选 Edit-Banana?

  • 专门针对「图→可编辑」场景,输出直接可用于 DrawIO/PPT;
  • 分割 + VLM + OCR 组合,在版式、箭头、公式上做了专门设计;
  • 有在线 Demo 和完整本地部署方案,便于试用与集成;
  • 北京理工大学实验室开源,Apache-2.0 友好。

项目详细剖析

架构与流水线

整体是一条顺序 + 并行的流水线:

  1. 输入:Image(PNG/JPG)或 PDF。
  2. 分割(SAM3):用微调 SAM3 的 mask 解码器得到图表元素区域。
  3. 文本提取(并行)
    • Azure OCR 得到文本框;
    • 对文字/公式区域做高分辨率 crop,送 Mistral/LLM 做识别与 LaTeX 转换。
  4. 生成 :合并 SAM3 的空间信息与 OCR 文本,生成 XML(DrawIO)/ PPTX
scss 复制代码
Input (Image/PDF)
    → SAM3 Segmentation
    → Text Extraction (Azure OCR + VLM crop-guided + LaTeX)
    → Merge spatial + text
    → DrawIO (XML) / SVG / PPTX

项目结构(概要)

根据 README,结构大致为:

csharp 复制代码
Edit-Banana/
├── config/              # 配置(如 config.yaml)
├── flowchart_text/      # OCR 与文本提取(Azure、Mistral、对齐等)
├── modules/             # 通用模块
├── prompts/             # 多模态/LLM 提示词
├── sam3/                # SAM3 模型封装
├── sam3_service/        # SAM3 服务化
├── scripts/             # 工具脚本(如 merge_xml.py 合并与编排)
├── static/              # 静态资源与 Demo 图
├── main.py              # CLI 入口(模块化流水线)
├── server_pa.py         # FastAPI 后端(Web 服务)
└── requirements.txt

前端在 frontend/(React),通过后端 API 上传文件并获取生成的 XML/PPTX。

关键技术点

  • SAM3 微调:针对图表场景微调,提升形状、箭头、框图等分割质量。
  • 多轮 VLM:用多模态大模型做多轮「扫描」,提取结构、关系、文本,而不是单次识别。
  • Crop-Guided OCR:只对文字/公式区域做高分辨率裁剪再送 LLM,在保证精度的同时控制 token 与成本。
  • 并发与缓存:Global Lock + LRU Cache 使多用户共享 GPU 时既安全又减少重复计算。

配置说明(config.yaml)

README 提到可在 config/config.yaml 中调整:

  • sam3:score 阈值、NMS 阈值、最大迭代轮数等;
  • paths:输入/输出目录;
  • dominant_color:主色提取相关灵敏度。

环境变量(如 .env)需配置 AZURE_ENDPOINTAZURE_API_KEY 等,具体以仓库说明为准。

开发路线图(README)

模块/功能 状态 说明
核心转换流水线 ✅ 已完成 分割 + 重建 + OCR 全流程
智能箭头连接 ⚠️ 开发中 自动将箭头关联到目标形状
DrawIO 模板适配 📍 计划中 支持自定义模板导入
批量导出优化 📍 计划中 批量导出为 .drawio 等
本地 VLM 适配 📍 计划中 支持本地 VLM,不依赖云端 API

项目地址与资源

官方资源

相关资源

  • SAM / SAM3 :Segment Anything Model 系列(如 ModelScope sam3
  • DrawIOdraw.io 编辑器与 XML 格式说明
  • Azure Document Intelligence:OCR 服务文档

适用人群

  • 需要把论文图、报告图、教材图转成可编辑 DrawIO/PPTX 的研究者、教师、写作者;
  • 想学习 SAM + 多模态 VLM + OCR 组合落地的开发者;
  • 需要图转可编辑能力的产品与项目(可基于 Apache-2.0 二次开发);
  • 对图表理解、公式识别、文档结构化感兴趣的同学。

欢迎来我中的个人主页找到更多有用的知识和有趣的产品

相关推荐
罗政1 小时前
AI图片识别批量提取医疗器械铭牌信息实战
人工智能
ppppppatrick2 小时前
【深度学习基础篇00】什么是深度学习?从单神经元到张量运算的入门全解
人工智能·深度学习
Dev7z2 小时前
基于深度学习电梯扶梯危险行为检测系统的设计与实现
人工智能·深度学习·电梯扶梯·扶梯危险行为
芝士爱知识a2 小时前
【FinTech前沿】重塑衍生品交易:十维深度解析 AlphaGBM 智能期权分析平台
人工智能·python·量化交易·期权分析·alphagbm·期权交易·ai期权
有为少年3 小时前
从独立性、相关性到复杂动力系统
人工智能·深度学习·机器学习·数学建模
阿里云大数据AI技术3 小时前
【新模型速递】PAI-Model Gallery云上一键部署Qwen3.5模型
人工智能
KG_LLM图谱增强大模型3 小时前
AgentRxiv:迈向协作式自主科学研究新范式
人工智能·知识图谱
人工智能培训3 小时前
超级人工智能(AGI)是否是大模型的必然发展方向?
人工智能·深度学习·逻辑回归·agi·具身智能·大模型应用工程师·企业ai培训