作为一个 AI 方向的研究生兼重度 Obsidian 笔记用户,我一直都很关心如何用 AI 改良我们的知识管理工作流。之前,我在我的文章《用 AI 重构知识管理:重塑 Obsidian 工作流的三层进阶指南》中探讨了如何将大语言模型(LLMs)嵌入到 Obsidian 中来让知识管理更加高效。但是这篇文章提到的方法的都是针对文本这一载体的,知识管理的另一大重要组成部分——图像,被忽略了。因此,在写完这篇文章后,我开始思考能不能借助 AI 把图像也纳入到知识管理之中来。
经过了几周的探索实践后,这篇文章诞生了。
本文会围绕知识管理中的图像来探讨如何用 AI 改良我们的知识管理工作流。我会结合我的实践经验,争取能够为你打造自己的知识系统提供一些灵感。
图像:知识管理中的被忽视者
如果把人之间传递信息的载体叫做「媒体」,那么计算机技术诞生以来的那么多年里,其大多数时候能处理的媒体其实有且只有文本。虽然后来凭借节节高升的算力,从图像到视频再到游戏(如果能看作媒体的话)等各类媒体素材都开始呈现在了计算机的显示器上,但是其对这些媒体材料的处理都始终谈不上擅长——这是由这类媒体的性质决定的:计算机没有能力理解潜藏在 RGB 像素之下的抽象模式。因此一直以来,除了图像处理专业软件之外,大多数产品都不把创新的方向放在图像上面。
基于这种流传下来的习惯,一直到现在,主流的笔记软件对图像都是忽视的。以 Obsidian 为例,如果不做特殊的配置,Obsidian 就不能对图片进行编辑,也不能缩放以及调整图像对齐方式。此外,原生的 Obsidian 也对图像没有任何管理。如果你想在文章中引用过去用过的一张图像,你唯一的办法就是打开附件文件夹进行肉眼查找:

但是在计算机视觉已经成为最卷方向的二十一世纪二〇年代,忽视图像不应该是常态。虽然 Obsidian 虽然在图像方面无所建树,但却留给了我们足够的空间去进行自定义配置。接下来的部分,我会围绕图像的识别、检索几个方面来介绍我是如何用 AI 改善图像工作流的。
OCR
OCR 可能是计算机视觉(CV)领域最成熟的技术之一,而且也是一个相当实用的技术。有了 OCR 的帮助之后,各种扫描版 PDF、禁止右键复制的网站将无法再阻止我们复制粘贴的脚步。
经过 CV 学者们多年的内卷之后,OCR 模型已经可以毫不费力地在本地运行了,因此 OCR 也已经从一个亮点功能变成了标配。当前市面上大多数手机都已经内置支持 OCR 识图,Obsidian 之中也有许多相关插件。但是在我看来,OCR 功能不应该局限在一个 app 之中,而是应该支持全局调用,这样其才能成为一件趁手的工具。
Pixpin 是我个人使用过的最好截图工具,其一站式地包打了从普通截图、长截图、录屏到取色、OCR、图像编辑在内的一系列功能,而且这些功能对普通用户完全免费。在按下截图键 Ctrl+1 后,框选住屏幕上的文字,再按下 Shift+C 即可复制图中的文字:

如果你愿意购买 Pixpin 会员,则还能实现复制表格到 Excel以及截图翻译(图源自官网):

Pixpin 会员价格不算高,年费会员平均为 6.66 元每月,也可以选择 198 元买断,且购买的会员均为全平台通用。最主要的是,pixpin 免费版没有广告,而且功能相当全面,可以满足大多数人的日常需求。
LaTeX OCR
相比起识别文本,要准确识别数学公式并且转化为 LaTeX 代码是一个困难得多的问题。这是因为数学公式是介于文本和图画之间的一种东西,模型不仅得准确识别图中的符号,还需要识别符号之间的位置关系并且对应到 LaTeX 代码结构。这就给训练模型增加了许多困难。

然而很不巧的是,由于 LaTeX 公式书写起来很麻烦,大家对 OCR 识别公式的需求更加强烈。这催生了一大堆收费服务。比如大家公认的效果比较好的 LaTeX OCR 工具 Mathpix ,其免费版只支持每个月识别 10 个图片(教育优惠是 20 个),完全满足不了需求;Pro 版则收费达到了 4.99 美元一个月(36.37 元),且仍然有次数限制(5000 次)。

作为一个毫无经济实力的穷学生,我实在是无法接受为这样一个并非刚需的小功能付这么高的月费,因此在大多数时候我都依靠手打 LaTeX 公式来做论文笔记(使用 LaTeX Suite 技巧之后编辑 LaTeX 公式其实也很快,具体方法见一个简单的功能,让你再不为编辑公式发愁 - 少数派)。但是后来我发现,这并非是一个两难问题:我可以自己部署自己的 LaTeX 公式识别模型,实现免费且好用的 LaTeX OCR 功能。
首先,下载 Image2LaTEX 插件:

Image2LaTEX 本身不具有相关功能,其需要后端服务来识别公式。后端服务可以选择 Texify、SimpleTex 或者 pix2tex。
经过实测之后,我发现 Texify 本身不够稳定,而且部署出现问题不会有报错信息,可能需要修改代码,比较麻烦;SimpleTex 属于比较稳定的商用服务,无需部署,只需要在 simpletex.cn
网站上注册账户并且获取 API 即可。SimpleTex 对普通用户提供每日高达 2000 次识别的免费次数,足够满足日常需求:

然而,要领取 API 必须开通其开放平台,而开通开放平台需要充值 20 元:

而 pix2tex 则没有上述缺点,既没有付费部分,配置也相对简单。如果你安装有 docker,那只需要拉取镜像然后运行 API 服务:
docker pull lukasblecher/pix2tex:api
docker run --rm -p 8502:8502 lukasblecher/pix2tex:api
然后在插件设置中填入 url(http://localhost:8502/predict
)即可使用公式识别服务:

对公式进行截图,然后选择插件命令:

识别效果:

pix2tex可以精准识别多行公式。以下图为例,pix2tex可以自动识别到多行公式,不过不会自动加入 \displaystyle
,这导致分式看起来要小一些:

不过相比于Mathpix,pix2tex识别矩阵就比较艰难了:

因此如果有识别大型矩阵以及 latex 表格的需求,仍然建议购买 Mathpix。当前,在高识别精度以及对大型矩阵、LaTeX 表格的识别方面,Mathpix 几乎没有平替,虽然贵但是物有所值。
图像搜索
OCR 只能将图像中的文本识别并且抽取出来,不能识别文本之外的内容。要真正让计算机理解图像中的内容则还需要更加复杂的算法。一般来说,常见的处理方法有两种:
- 编码为向量:将图片编码为一个向量,这个向量浓缩了图像中的内容信息,可以用于图像分类、搜索等任务;
- 图生文:用文字描述图像中的内容,然后用这段文字替代图像。
其中,前者常用于检索增强生成、图像搜索等问题,搜索效果较好;比如Obsidian Copilot插件就使用向量搜索检索相关笔记。而相对而言,后者则常用于图像文本混合搜索,搜索效率较高。
将搜索内容编码为向量之后进行搜索的方法可以统称为向量搜索。相比关键字搜索,向量搜索的好处是可以真正基于对内容的理解去搜索;而坏处是需要将搜索的关键词也编码为向量,成本较高。
由于需要在搜索时对查询的关键字进行编码,向量搜索需要一些配套组件才能使用(比如编码器,向量数据库,特定搜索算法),要将其引入 Obsidian 中工程量会比较大。而为每张图片生成文字描述则要方便得多,可以无缝适应传统的搜索算法。

虽然从技术的角度来看,图像搜索是个相当复杂的问题。但是许多人不曾注意到的是,Obsidian 的知名搜索插件 Omnisearch 其实就支持基于图生文的图像搜索,而且相对很完善。不过要实现这个功能,我们需要安装另一个支持插件:

AI Image Analysis Plugin 支持使用 Llava 等多模态大模型为图像生成文字描述索引,从而让 Omnisearch 可以搜索图像。
AI Image Analysis Plugin 推荐用 Ollama 托管模型。Ollama 是一个很高效的本地大模型推理引擎。换句话说,就是 Ollama 可以大幅压缩大模型所需要的资源,允许你本地运行大语言模型。此外更重要的是,Ollama 对普通用户非常友好。只靠 API 交互或者简单的命令,就可以轻松下载、管理以及运行自己的大模型。少数派有一个系列《本地大模型之路(一):大模型的是什么、为什么以及怎么选》已经将相关知识讲的很清楚,我这里不再赘述。
仍然使用 docker 安装服务。首先拉取 Ollama 镜像,然后启动一个 docker 容器来运行 Ollama 服务。这两个操作可以用一行命令完成:
docker run -d --gpus=all -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
然后在插件设置填上 URL。如果你是在本地部署的话,你应该填写 http://localhost:11434/
:

选择一个模型,点击 Pull Model 即可在 Ollama 中下载模型。下载完毕之后,可以从 Ollama 输出的日志中发现 Obsidian 在调用模型:

Omnisearch 搜索区会显示正在进行索引:

索引建立期间不能进行搜索,而索引所需的时间由库中图片的多少决定。如果你和我一样,库中有数千张图片的话,索引起来还是会很慢的。但是由于索引文件会被缓存起来,日常并不需要做索引这一操作,一劳永逸的等待也可以接受。正因如此,我建议关闭自动清理缓存选项,并且千万不要瞎点 Clear Cache:

等索引建立完成,Omnisearch 就可以搜索图像了:

如果使用中文搜索,需要把插件设置中的 prompt 用中文重写,否则建立的索引将不是汉语,无法用汉语搜索到。
除了图生文搜索,Omnisearch 也支持搜索图像中的文字。Omnisearch 可以使用 Text Extractor 插件 OCR 识别图像中的文本,并且也作为索引进行搜索。OCR 模型体积较小,可以内置在插件里面,因此 Text Extractor 即插即用即可。

结语
图文可能是目前效率最高的信息传递方式,我们的笔记数据几乎都是图文形式。但是作为「图文」二字中排在前面的图片却一直处于被忽视的状态,不仅难以管理和编辑,而且几乎完全和文字分离,也无法搜索。
而通过 OCR 以及图生文等技术,我们可以打破文字和图像之间的藩篱,将图像也纳入到知识管理之中来。
> 关注 少数派公众号,解锁全新阅读体验 📰
> 实用、好用的 正版软件,少数派为你呈现 🚀