Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

桌面端支持搜索图片 OCR 文本 #3470

Closed
jibwf opened this issue Nov 23, 2021 · 26 comments
Closed

桌面端支持搜索图片 OCR 文本 #3470

jibwf opened this issue Nov 23, 2021 · 26 comments
Assignees
Labels
Milestone

Comments

@jibwf
Copy link

jibwf commented Nov 23, 2021

笔记里面有很多是直接截图记录的,希望能像onenote一样,支持OCR,这样可以通过文字搜索到

@88250
Copy link
Member

88250 commented Nov 23, 2021

你好,OCR 短期内无法支持,目前只能考虑手动设置图片标题来进行搜索 #3427

@linglongyoudoufu
Copy link

linglongyoudoufu commented Oct 16, 2022

不能立为长期计划吗,我想了解下难点在哪里?

@88250
Copy link
Member

88250 commented Oct 16, 2022

@linglongyoudoufu 需要一个支持跨平台、能够打包整合进思源的开源方案,有推荐不?

@pisceswb
Copy link

感觉ocr功能没必要一定跨平台,PC端能够实现图片ocr,并把ocr识别到的内容保存到图片的“提示文本”中就可以了,这样跨平台也能搜索。相信提出ocr功能需要的人都是为了搜索需求的。需要注意的是,如果在android端添加了图片,或以前就在思源笔记中存在的图片,ocr功能能够将这些未进行ocr的图片识别到,并自动对其ocr识别,保存到各自图片的“提示文本”中。这样就能满足图片文字搜索的需求了,感觉ocr功能很实用,提出该问题的人也很多,希望能够添加,谢谢!

@88250
Copy link
Member

88250 commented Jan 15, 2023

仅支持桌面端的话至少也要考虑支持 Windows/Linux/macOS,目前似乎只有联网调用其他平台 API 比较现实,或者让用户自行安装 tesseract?

@pisceswb
Copy link

仅支持桌面端的话至少也要考虑支持 Windows/Linux/macOS,目前似乎只有联网调用其他平台 API 比较现实,或者让用户自行安装 tesseract?

联网调用其他平台 API 也可以啊,让确实有需要使用ocr功能的用户自己去申请接口。Windows端的用户,也可以调用win10自带ocr功能。确实感觉ocr功能对于搜索功能来说帮助很大,尤其是笔记较多的用户和喜欢截图保存数据的用户。

@Soltus
Copy link
Contributor

Soltus commented Jan 15, 2023

确实,调API就行,然后限定为订阅用户权益

@88250 88250 self-assigned this Jan 15, 2023
@88250 88250 added the Feature label Jan 15, 2023
@88250 88250 added this to the 2.7.0 milestone Jan 15, 2023
@88250 88250 reopened this Jan 15, 2023
@88250 88250 changed the title 希望增加对图片内容搜索的功能 支持搜索图片中的文本 Jan 15, 2023
@88250 88250 changed the title 支持搜索图片中的文本 桌面端支持搜索图片中的文本 Jan 15, 2023
@88250
Copy link
Member

88250 commented Jan 15, 2023

解决方案:

  1. 用户自行安装 Tesseract,注意需要勾选中文语言包,并将安装后的 Tesseract-OCR 目录路径添加到环境变量 PATH 中。如果安装正常的话,启动思源后内核日志会输出这一行:
    image
  2. 自动在建立数据库索引时对行级元素图片节点进行识别
  3. 将识别结果追加到 ast.NodeLinkText 结果后面,这样 blocks 表 content 字段就会保存 OCR 结果,以供后续搜索使用
  4. 如果需要对以前的图片进行 OCR,执行一次重建索引

@88250 88250 changed the title 桌面端支持搜索图片中的文本 桌面端支持搜索图片 OCR 文本 Jan 15, 2023
@tcmtom
Copy link

tcmtom commented Jan 15, 2023

解决方案:

  1. 用户自行安装 Tesseract,注意需要勾选中文语言包,并将安装后的 Tesseract-OCR 目录路径添加到环境变量 PATH 中。如果安装正常的话,启动思源后内核日志会输出这一行:
    image
  2. 自动在建立数据库索引时对行级元素图片节点进行识别
  3. 将识别结果追加到 ast.NodeLinkText 结果后面,这样 blocks 表 content 字段就会保存 OCR 结果,以供后续搜索使用
  4. 如果需要对以前的图片进行 OCR,执行一次重建索引

能和pandoc一样直接内置在软件里吗

@pisceswb
Copy link

解决方案:

  1. 用户自行安装 Tesseract,注意需要勾选中文语言包,并将安装后的 Tesseract-OCR 目录路径添加到环境变量 PATH 中。如果安装正常的话,启动思源后内核日志会输出这一行:
    image
  2. 自动在建立数据库索引时对行级元素图片节点进行识别
  3. 将识别结果追加到 ast.NodeLinkText 结果后面,这样 blocks 表 content 字段就会保存 OCR 结果,以供后续搜索使用
  4. 如果需要对以前的图片进行 OCR,执行一次重建索引

感谢!赞!

@mozhux
Copy link

mozhux commented Jan 16, 2023

话说这个支持百度腾讯那些ocr接口吗?实现难度?

@88250
Copy link
Member

88250 commented Jan 16, 2023

@mozhux 不支持,仅支持本地的 Tesseract,后续版本可能会考虑改为配置命令,这样可以用其他程序实现。

@pisceswb
Copy link

中文识别能力较差,建议能够对接百度图片识别的API

@ericma15
Copy link

在macos上,homebrew安装的tesseract输出如下,使用‘tesseract v’判定是否存在不正确。

tesseract 5.3.0
 leptonica-1.82.0
  libgif 5.2.1 : libjpeg 8d (libjpeg-turbo 2.1.4) : libpng 1.6.39 : libtiff 4.4.0 : zlib 1.2.11 : libwebp 1.3.0 : libopenjp2 2.5.0
 Found NEON
 Found libcurl/7.84.0 SecureTransport (LibreSSL/3.3.6) zlib/1.2.11 nghttp2/1.47.0

@88250
Copy link
Member

88250 commented Jan 17, 2023

@ericma15 使用的是 if nil == err && strings.HasPrefix(string(data), "tesseract ") { 判断的,感觉好像没问题哦。

@ericma15
Copy link

是我看错版本了。我再看看为啥没成功

@ZinYY
Copy link

ZinYY commented Jan 17, 2023

image

系统是 MacOS 12.6,为什么已经成功安装了tesseract并且安装了中文语言包,还是无法在思源笔记中激活该功能呢?(思源笔记的启动日志中也没有)

image

@88250
Copy link
Member

88250 commented Jan 17, 2023

macOS 端 Tesseract 有问题的话请关注 #7107

@lentikr
Copy link

lentikr commented Jan 18, 2023

是仅支持本地图片吗?图床上的图片我这里好像没有效果呢,搜索不到里面的文字。

@88250
Copy link
Member

88250 commented Jan 18, 2023

仅支持本地图片。

@lentikr
Copy link

lentikr commented Jan 18, 2023

我这里本地图片中的简体字会被识别为繁体字,这样的话搜简体是搜不到的,D大知道是什么原因吗?
image

@88250
Copy link
Member

88250 commented Jan 18, 2023

把 tesseract 繁体字的语言包删掉看看,chi_tra*

@lentikr
Copy link

lentikr commented Jan 18, 2023

可以了,谢谢D大

@linglongyoudoufu
Copy link

解决方案:

  1. 用户自行安装 Tesseract,注意需要勾选中文语言包,并将安装后的 Tesseract-OCR 目录路径添加到环境变量 PATH 中。如果安装正常的话,启动思源后内核日志会输出这一行:
    image
  2. 自动在建立数据库索引时对行级元素图片节点进行识别
  3. 将识别结果追加到 ast.NodeLinkText 结果后面,这样 blocks 表 content 字段就会保存 OCR 结果,以供后续搜索使用
  4. 如果需要对以前的图片进行 OCR,执行一次重建索引

请问有教程吗

@pisceswb
Copy link

中文识别能力较差,建议能够对接百度图片识别的API

自己把中文语言包安装错了,Tesseract对中文的识别还是很好的。

@InEase
Copy link
Contributor

InEase commented Jan 28, 2023

Windows用户如果安装后,重启思源还是没有ocr功能的话,可以尝试:

  1. 命令行使用tesseract --version看看有没有输出,如果有的话,重启电脑再开思源应该就可以了
  2. 如果没有输出,需要把安装路径添加到环境变量(我这里是C:\Program Files\Tesseract-OCR)
I 2023/01/28 13:53:21 runtime.go:91: use network proxy [system]
I 2023/01/28 13:53:21 tesseract.go:135: tesseract-ocr enabled [ver=v5.3.0.20221222, langs=chi_sim+eng]
I 2023/01/28 13:53:21 serve.go:111: kernel [pid=18976] http server [127.0.0.1:2832] is booting

用了一下太香了,感谢D大!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests