请问目前OB可以做到ocr图片并且把ocr后的内容纳入到全局搜索中吗?

目前我正在使用思源笔记,然后也尝试了OB一段时间,基本功能都是大同小异各有各的优缺点,但是目前思源有一个比较吸引我的优点就是可以OCR图片,并且把OCR后的结果纳入到全局搜索中,从而达到搜索图片的目的(图片和文本会在搜索结果中一并出现)。

在OB里我暂时没有找到实现的方法,看其他文章推荐,尝试了Obsidian OCR 这个插件,貌似是OCR后自己建立了一个sqlite数据库保存结果,搜索的话只能command+P调出命令面板,使用插件自带的搜索OCR功能才能搜索(单独搜索OCR结果,独立于系统搜索),而且查找中文的结果也不是太准确。

请问对这个需求,目前有比较好的插件可以解决吗?如果没有的话,强烈推荐主创团队能把这个功能整合进去。

Ob默认搜索是对纯文本的,
可能最简单不操心的办法, 是以任意手段OCR后, 把识别文本直接搁在这张图后面,

我看有人是识别后写到 <details>识别文本</details> 里 ( obsidian-tesseract-ocr 实测不太完善)

个人觉得, 也可以写到 %% <details>识别文本</details> %% 这在阅读模式里是隐藏的,
其他比如结合 > [!note]- 之类方案也不错

这样有图有字, 搜索时能命中, 上下文能找到原图, 就完事了


更复杂些, 还可以自动造跟图片同名的笔记专门存识别文字, 道理类似, 不污染图片所在的原笔记


实现以上这些, 其实也不太需要OCR插件

  • 可以用 obsidian shell commands 调任意命令行程序
  • 能跟 web 交互的插件就更多了
  • 甚至拿 Custom Frames 把网页识图工具放在侧栏, 简单情况也够了

自己选 OCR 工具好处是未必只能用 tesseract,
许多工具 ( Umi-OCR, 白描 等) 已经做了完善的文字细节处理, 断行该不该连? 公式怎么识别?
这比没加参数的 tesseract + chi_sim 要强很多, 对中文兼容也更好


如果一定是用 Ob 插件, 我也没找到特别完善的,

Obsidian OCR 似乎仍是功能最强的, 还能处理 pdf, 甚至存了段落坐标 (可能为在搜索命中后, 能展示图中关键词的大致位置)
实际用时, 可以在 OCR Provider Tesseract → Additional args 里, 加上 --dpi 300 --oem 1 -c tessedit_create_hocr=1 就基本满足要求, (Tesseract 默认 dpi=70 有时识别质量很烂)
另外 语言模型有 best 和 fast 两版, 我用的是 best

如果要求一次搜索时, 同时搜到正文和OCR文字,
可以 Text Extractor (识图) + Omnisearch (搜索) + cm-chs-patch (中文分词), 这个组合里, 分词插件支持的 Omnisearch 搜索质量很高, 但是 Text Extractor 的可配参数很少, 中文识别差些

但这些基于插件的OCR方案, 确实不算好用

1 个赞

请问下,这个是什么写法?是<detail>隐藏还是%%隐藏?
帮助中没搜到相关内容。

都是隐藏

<details> 用于收起一大段文本, 省地方
%% ... %% 注释掉, 表示这段字没用, 只为以后能搜到

%% 是 Ob 自家语法 ref , 但它比 <!-- --> 有个额外的好处: 里面可以写任意 html 标签 或 md 语法


PS: 应该是 <details> 我之前拼写错了

但是自家语法就兼容性不好了吧?typora会如何解析?

这个是什么语法?好像是网页的通用的?

对, 别的工具未必识别, 看需求取舍呗
那个是 html 通用的注释

自带的搜索是不是有点弱,比如不支持正则?

支持, 搜索时写成 /pattern/ 就行

感谢指教,官方的帮助文档不支持全文搜索真是太麻烦了。

别客气,
我也刚发现官方帮助居然不支持全文搜索, 这确实有点弱

实在不行看这个 github 版吧, 内容一样, 可以下载到本地 obsidianmd/obsidian-help

1 个赞

我刚刚测试了下,发现正则对文件名和路径有效,但是标签好像无效,其他还没测试。