天若ocr文字识别软件开源本地版


天若ocr开源版本的本地版,采用Chinese-lite和paddle-ocr识别,再也不用网络啦

推荐paddle-ocr识别,可以在识别结果里面切换接口

本软件离不开以下仓库、软件的帮助,在此表达崇高的感谢:

https://gitee.com/ZZK-1989/tianruoocr

https://github.com/DayBreak-u/chineseocr_lite/tree/onnx/dotnet_projects/OcrLiteOnnxCs

https://github.com/RapidAI/RapidOCR

软件为64位系统使用,win10/win7都行,没有测试win11,需要.net4.7.2

本程序主要靠粘贴复制,要是有大佬帮忙改改就好了

中文识别率还是很舒服的

线程设的4,可以修改

本软件不具备任何捐赠的地方,也欢迎大家传播使用,软件作者是机械专业学生,不具备太多编程能力,大部分问题都是自己百度谷歌解决,有问题欢迎交流。

注意

  1. 编译的话需要引用Microsoft.ML.OnnxRuntime.dll,如果是为了win7能用可以引用我编译好的(在dll和runtime文件夹),也可以自己编译,需要把对应onnxruntime.dll放在运行文件夹中。如果不使用win7,可以直接使用nuget安装即可。
  2. 更改nuget包管理为PackageReference,应该不要packages了,编译之前请先安装nuget的一堆包
  3. 编译的话注意AdvRichTextBox.Designer.cs文件,必须重写,这个文件在切换的过程中有可能会被系统自动覆盖,需要复制回来

问题汇总

  1. win7无法使用,基本无解(V1.3 win7已经可以用了)
  2. 如果出现Exception from HRESULT: 0x8007007E可以使用dx修复工具进行修复,一般能够启动
  3. 请尝试安装vc++运行库,net4.7.2

目前模型

模型名称det模型rec模型cls模型
Chinese-lite默认默认默认
paddle-ocrch_PP-OCRv3_det_infer.onnxch_PP-OCRv2_rec_infer.onnxch_ppocr_mobile_v2.0_cls

下载地址

https://gitee.com/wanglifree/tianruoocr-cl/releases?https://github.com/wangfreexx/wangfreexx-tianruoocr-cl-paddle/releases

版本更新说明

v1.3.5(2022.8.14)(非重要更新,非区域问题可不下载)

  1. 彻底抛弃ini结构,采用xml结构utf8储存配置,适应不同语言环境(非unicode语言为中文以外的情况)
  2. 修改paddle默认参数适应小框识别的问题 I5LRD0

v1.3.4(2022.8.10)

  1. 彻底解决paddle识别率不高的bug
  2. 不再使用fody合并dll

v1.3.3(2022.8.7)

  1. 更新了paddle为v3模型,与RapidOCR一致,
  2. 关于之前反馈的模型识别率更低了的问题,我自认为解决了(并没有解决,心态爆炸,就算替换模型也不如1.2.5版本,咋回事啊,那咋整啊,但是只要切换一次cl再切回paddle,paddle又好使了,心态确实不好了,我决定有空好好弄下,但不是现在)
  3. 更改nuget包管理为PackageReference,更新emgu等库
  4. 解决了在不同语言环境下读取ini文件的问题,ini文件现在编码为unicode编码

v1.3.2(2022.3.11)

  1. 修改了模型名称,方便更新替换。同时更新了paddle的模型,与RapidOCR一致,准确率有提升的。

v1.3.1(2022.1.29)

  1. 修正了开启默认合并行数据丢失的问题
  2. 使用fody合并dll,减小文件数量

v1.3(2021.12.27)

  1. Win7也能用了!(详请见更新说明)
  2. 段落合并功能bug修复
  3. 尝试解决识别文本和显示不一样的bug,也就是识别框出现很多重复文字的bug(实际没有这些文字,只是显示而已)
  4. 谷歌翻译采用“ZZK-1989”大佬的方式,更加快速,且支持段落识别,但是能不能翻译全凭网络流畅与否
  5. 切换模型和修改模型不再需要重启应用,只需要随便切换一次模型即可(将载入模型放在了切换模型的位置)

v1.2.6

  1. 修正一个编译bug(具体情况是编译识别为空)
  2. 更加合理的段落合并功能,拆分按钮现状不会清空文字了,但是依然没用
  3. 采用64位编译

v1.2.5

  1. 把原来删除的百度在线ocr给撤销回来了,现在可以使用了,并且加入了错误检测,避免崩溃
  2. 段落翻译增加了延时,避免ip被封

v1.2.4

  1. 添加了保留段落翻译,不再合并段落翻译,切换接口即可,由于单独翻译,速度可能稍慢

v1.2.3

  1. 添加了参数帮助(注释)

v1.2.2

  1. 修复了不能重启的bug

v1.2.1

  1. 修复了不能切换模型的bug,初始paddle模型是选的英文

v1.2

  1. 更新了翻译接口,现在谷歌和百度可以用了!换行会自动处理成量起来的,方便pdf。百度需要申请API
  2. 添加了几个轻量模型(日文和英文专精),切换需要重启
  3. 修复了部分bug,清理了部分源码
  4. 应该不会再更新了!

V1.1

  1. 添加了paddle-ocr支持,模型并不大,速度快!
  2. 可以切换接口了,虽然工程里面名字还是其他名字,但是编译出来的不会显示搜狗和腾讯了
  3. 优化了内存占用(每次识别完自动清理内存)

V1.0

  1. 添加了Chineseocr-lite支持,使用原来搜狗的接口选项

一些碎碎念

v1.3.4

一杯茶一包烟,一个bug调一天,paddle识别不高的原因是因为模型所设置参数没有初始化,导致第一次时候程序识别不行,但是切换下模型相当于初始化又好了。。。。具体问题在438行,调用的参数错误

v1.3.3

win7编译后需要手动替换onnxruntime.dll,版本为1.6,vs nuget中的不支持win7,github上下载的支持。尝试解决读取ini文件的问题,本来想改成utf8格式读取,但是试了很久都不行,用了大概3天一无所获,不过今天用了别人的库一下就没问题了...........还是crtlv好用

v1.3

win7支持源自与逛吾爱时看到有大佬做出来ncnn和onnx的差不多的天若本地版,目的就是解决我的不支持win7的问题,可惜没有开源,但是大佬提供了思路,然后顺着大佬思路,我也自己编译了onnxruntime,得益于微软的开源,编译很简单,然后又修正了下库的引用,在win7上真的跑起来了(我用了虚拟机)。我编译的是onnxruntime 1.5.2版本,1.6我试了好像不支持了,具体不清楚。当然大佬还做了其他差异化的东西,例如二维码,局域网网页调用,我就没做了,自己还是太菜,应该不会再更新了,算是圆满了,这个项目其实只是简单粘贴复制,方法很菜,希望有朝一日能给大家提供一点微薄的帮助。