ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

论文里的架构图是张死 PNG?Edit-Banana 把它变回可编辑的 DrawIO

论文里的架构图是张死 PNG?Edit-Banana 把它变回可编辑的 DrawIO 不知道你有没有遇到过这种事老板甩给你一份两年前的项目报告里面的系统架构图是个 PNG。现在要复用得把其中一个服务框的名字改掉、再加一条连线。你兴冲冲打开它发现——字是画死在图里的不能选中、不能改。我前两天就栽在这上面。最后没办法只能照着原图在 DrawIO 里重画了一遍半小时就这么没了。后来刷 GitHub 看到个叫Edit-Banana的项目一句话定位很戳我把不可编辑的静态图/PDF变成能在 DrawIO、PPT 里随便拖、随便改的可编辑图。我试了下在线版又翻了翻源码这篇就聊聊它到底好不好用、适合谁。题外话名字里的 Banana 是硬凑的谐音梗uneditable → editablebanana 纯粹是为了好记别较真。它是什么来头Edit-Banana 是北理工数据实验室BIT-DataLab开源的一个通用内容重编辑框架。说人话就是你给它一张流程图 / 架构图 / 技术示意图甚至是带公式的图它帮你把图里的每个元素——方框、箭头、文字、公式——重新拆出来拼成一个能在 DrawIO.drawio / XML 格式或 PPT 里继续编辑的文件。它主要靠三样东西SAM3一种图像分割模型 [Segment Anything Model 3可以理解成看图就能把里面每个独立物体圈出来的 AI比如把流程图里的每个框、每段箭头单独抠出来]。项目方针对图表场景做了微调。多模态大模型VLM像 Qwen-VL、GPT-4V 这类能看图说话的模型负责多轮扫描搞清楚元素之间的关系、谁连着谁。OCR 公式识别把图里的文字、公式认出来公式还能转成 LaTeX [一种科技论文里写公式的标准排版语言比如Emc²写成\frac{E}{m}c²]。效果到底怎么样先上对比图光说没用上对比图。下面左边是原始截图右边是它重建出来的可编辑 DrawIO——注意右边图里元素带了选中小方块说明能单独拖。第一组流程图原图一张 PNG 流程图文字和框都是画死的没法选中重建结果同样的内容变成了 DrawIO每个元素带选中小方块能单独拖、改字、换样式第二组架构示意图原图架构类示意图重建结果方框、连线、配色都还原了箭头也能选中调整从这两组看布局、配色、箭头样式、文字基本都还原了元素也能选中。说实话比我自己重画快多了。哪些场景真的用得上场景举个具体的例子不用它的话改论文 / 报告里的图导师让你把第三章那张流程图里的数据库改成数据仓库用 PS 改字会糊只能重画教材 / 讲义图统一你攒了一堆从别处截的图想统一成 DrawIO 风格模板一张张手画一下午没了设计稿 / 截图快速成图产品丢来一张竞品架构截图要改成自己家的照着描还容易描错PDF 讲义转可编辑一份扫描版讲义要改成 PPT 接着讲 [官方在线服务支持见后文]重新排版费眼简单说凡是图是死的、但你还得接着改的地方它都能省事。背后是怎么做到的我把官方画的流水线说成人话版你丢一张图进去SAM3 先分割把图里每个框、每段箭头抠成独立区域记下它们的位置和大小OCR 认字 公式识别把每个区域里的文字、公式读出来官方用 Azure 的文档识别服务做精确位置认公式用 Pix2Text 这类工具云端大模型不可用时还能退回 VLM 端到端识别多模态大模型多轮扫描搞清这个框连着那个框这段箭头是虚线之类的结构关系最后把位置 文字 关系拼到一起导出成 DrawIOXML或 SVG。比喻一下SAM3 像是个手脚麻利的拆件工把整台机器拆成一个个零件摆好OCR 是旁边念说明书的人把每个零件上的字念出来VLM 是老师傅指出这个零件应该接在那个上面。最后仓库管理员导出模块按清单把零件重新装成一份你能改的图纸。我翻了翻源码说点实在的我在 GitHub 上把仓库克隆下来看了一眼也试用了一下官方在线服务有几点想提前告诉你免得踩坑开源出来的代码核心是图片 → DrawIOXML/ SVG这条线。仓库里主要是 Python 的后端流水线分割、OCR、合并导出我翻目录没看到现成的前端代码也没看到 PDF / PPTX 的导出实现。PDF → 可编辑 PPTX 这类能力目前主要在官方在线服务上。也就是说你想本地跑开源版主要享受到的是图 → DrawIO要 PDF 转 PPT 这种得上它的在线 Demo。在线服务要注册新用户有一定免费额度按量扣应该是为了挡住滥用、摊 GPU 成本。多人并发时它用全局锁 缓存保证 GPU 不打架。开源协议这点要提醒一下想二开的兄弟——仓库 README 徽章写的是 Apache-2.0但仓库里的 LICENSE 文件实际是AGPL-3.0。两个不一样商用或闭源二开前自己核对一下协议文件别只看徽章。官方在线服务的 Web 界面上传图片即可在页面里看到可编辑结果怎么用三种方式一张图看懂在线版最省事本地后端适合不想传图到云端的命令行适合写进脚本批量跑。方式一在线版最省事推荐先试打开 editbanana.net 注册登录上传图片或 PDF等一会儿就能拿到可编辑的 DrawIOXML或 PPTX页面里还能直接拖着改。新用户有免费额度先薅这个最划算。方式二本地跑后端 CLI适合想接自己数据、或者不想传图到云端的同学。# 1. 克隆仓库 git clone https://github.com/BIT-DataLab/Edit-Banana.git cd Edit-Banana # 2. 建几个目录输入、输出、模型缓存 mkdir -p input output sam3_output # 3. 装后端依赖需要 Python 3.10 pip install -r requirements.txt # 4. 准备模型从 ModelScope 下载 SAM3 权重放到 models/sam3.pt # 下载地址https://modelscope.cn/models/facebook/sam3 # 并在 config 里把路径指过去 # 5. 配置环境变量OCR 用的具体以仓库说明为准 # 新建 .env填 AZURE_ENDPOINT、AZURE_API_KEY 等 # 6. 启动后端默认 http://localhost:8000 python server_pa.py说明官方在线版的前端是 React 写的但开源仓库里我没找到对应的前端目录能直接跑通的是后端 API CLI 这两条路。方式三命令行CLI适合脚本化# 单张图转换结果输出到 output/ 目录 python main.py -i input/test_diagram.png调参config.yaml转换效果不满意可以改config/config.yamlsam3: score_threshold: 0.85 # 分割置信度阈值调低能抠出更多小元素但也可能更碎 nms_threshold: 0.3 # 重叠框抑制避免一个元素被圈好几圈 max_iter: 3 # 最大迭代轮数 paths: input_dir: input output_dir: output dominant_color: sensitivity: 0.5 # 主色提取灵敏度小经验框太碎就调高score_threshold箭头连不上就多跑几轮max_iter。具体手感得拿你自己的图试。它和普通重画或OCR 工具比强在哪对比项Edit-Banana你手动重画普通 OCR 工具输出DrawIO(XML)/SVG 可编辑位图还是改不了纯文本 / 表格丢版式图表结构保留形状、连线、层级全靠手不保留公式能转 LaTeX可继续编难复用大多不支持适合谁要图变可编辑的人图很少时只要提取文字时一句话普通 OCR 只给你图里写了啥Edit-Banana 给你图本身能改。区别就像别人把书读给你听和把书原样还给你、还能在上面划重点。我的一点看法 路线图说实话这个项目的定位挺巧——专门解决图是死的但还得改这个很多人忍了很久的小痛点。分割 多模态大模型 OCR 这套组合在箭头、配色、公式这些细节上确实比截图重画省心。从仓库的路线图看几个有意思的方向还在路上智能箭头连接自动把箭头关联到目标形状现在有的连线还得手动对一下DrawIO 模板适配支持导入你自己的模板统一风格批量导出一次转一堆图本地 VLM不依赖云端大模型 API数据不出本机。要挑刺的话开源版目前主要是图 → DrawIOPDF / PPTX 得靠在线服务协议那块AGPL vs Apache 徽章不一致商用前务必自己确认。另外它吃 GPU本地没卡的话还是在线版香。去哪看GitHubgithub.com/BIT-DataLab/Edit-Banana在线 Demoeditbanana.net适合人群要把论文图 / 报告图 / 教材图变成可编辑 DrawIO 的研究者、老师、写作者想学 SAM 多模态大模型 OCR 落地组合的开发者。如果你也经常跟改不动的死图搏斗不妨去在线版传张图试试比重画一小时强。
返回列表