快速入门
安装
下载安装即可,没有什么可以讲解的
添加服务模型
无需阅读,已经内置 server 端模型
为了减少安装的包的体积,默认内置内置了移动端模型.移动端模型的推理速度较快,但是有些生僻字无法识别,下面介绍如何添加服务端模型解决这一问题
下载 paddle ocr 服务端模型
paddle paddle 模型下载
下面直接给成服务端模型下载地址
模型转换
下载的模型默认格式是 paddle paddle 格式,为了实现较快的推理和速度和在 cpu 上进行推理,需要将 paddle 格式的模型转为 onnx 格式
简介
- Paddle 格式模型的转换,主要借助
paddle2onnx
库实现。针对 PaddleOCR 中涉及到的相关模型,直接转换并不太方便。因此,推出了PaddleOCRModelConverter转换工具。 - 主要有两种使用方式:
- 方法一:在线转换,借助魔搭和 Hugging Face 两个平台,搭建在线转换 demo;
- 方法二:离线转换,pip 安装该工具,即可本地转换使用。
在线快速转换
离线转换
替换模型
进入目录替换模型即可,笔者 windows 的目录是
- D:\dev_program\treehole-v2.2.9-windows-x64-cpu\app\models
注意下载模型后需要重名模型存放的对应的目录,笔者的目录如下
.
├── ch_PP-OCRv4_det_infer
│ ├── inference.onnx
├── ch_PP-OCRv4_rec_infer
│ ├── dict.txt
│ ├── inference.onnx
├── readme.md
已有 onnx 模型下载
已经将部分转换好的 ONNX 模型做了整理,提供了 Hugging Face、Google 网盘和百度网盘两个下载途径。
服务端口接口
有些时候需要中服务端使用 ocr 识别,笔者退出了一个服务端项目,对外提供了 http 接口,开源地址如下
二次开发
代码结构
这是一个典型的 Maven 项目结构,其中:
pom.xml
: 这是 Maven 的项目对象模型文件,它包含了项目的依赖、插件和其他配置信息。src
: 这是源代码目录,通常包含主代码 (src/main
) 和测试代码 (src/test
)。
从 pom.xml
文件的部分内容中,
- 项目的
groupId
是com.luooqi
,而artifactId
是tool-ocr
。这意味着该项目是由luooqi
开发的一个名为tool-ocr
的项目。 - 项目的版本信息由一个属性
soft.version
定义,其值为1.2.6
。 - 项目有几个依赖项,包括但不限于:
jnativehook
:可能与键盘和鼠标挂钩有关,允许应用程序全局监听键盘和鼠标事件。hutool-all
:Hutool 是一个 Java 工具包,包含了一些常用的 Java 功能模块。imgscalr-lib
:这是一个简单的 Java 图片缩放库。
项目的 src
目录结构如下:
资源文件:
main/deploy/package/macosx/
和main/deploy/package/windows/
:这些似乎是针对不同操作系统的应用程序图标。main/resources/
:包含了各种资源文件,如 CSS、字体、图片等。
Java 文件:
com.benjaminwan.ocrlibrary
:这个包似乎包含与 OCR 处理相关的类。com.luooqi.ocr
:这是应用程序的主要包,其中MainFm.java
可能是主类。com.luooqi.ocr.controller
:包含应用程序的控制器类。com.luooqi.ocr.local
:可能包含本地 OCR 功能的类。com.luooqi.ocr.model
:包含应用程序的数据模型。com.luooqi.ocr.snap
:似乎与屏幕截图功能有关。com.luooqi.ocr.utils
:包含各种实用程序类。
测试文件:
test/java/com/luooqi/ocr/utils/OcrUtilsTest.java
:一个针对OcrUtils
类的测试。
使用 javafx-maven-plugin 打包应用程序
javafx-maven-plugin 简介
javafx-maven-plugin 插件。这个插件为 JavaFX 项目提供了便捷的构建和打包工具。
使用 javafx-maven-plugin 生成 native
set JAVA_HOME=D:\dev_program\java\jdk1.8.0_121
mvn jfx:native -DskipTests
目标文件目录
target\jfx\native
安装包目录结构
windows
.
├── app
│ ├── lib
│ │ ├── commons-logging-1.2.jar
│ │ ├── fontbox-2.0.24.jar
│ │ ├── hutool-all-5.8.11.jar
│ │ ├── imgscalr-lib-4.2.jar
│ │ ├── jnativehook-2.1.0.jar
│ │ ├── logback-classic-1.2.3.jar
│ │ ├── logback-core-1.2.3.jar
│ │ ├── pdfbox-2.0.24.jar
│ │ ├── rapidocr-0.0.7.jar
│ │ ├── rapidocr-common-0.0.7.jar
│ │ ├── rapidocr-onnx-models-1.2.2.jar
│ │ ├── rapidocr-onnx-platform-0.0.7.jar
│ │ ├── rapidocr-onnx-windows-x86_64-1.2.2.jar
│ │ ├── slf4j-api-1.7.25.jar
│ ├── logs
│ │ ├── ocr-2024-04-28.log
│ ├── tmp_1995725880.png
│ ├── tools-ocr-2.3.0-jfx.jar
│ ├── treehole.cfg
├── msvcp120.dll
├── msvcr100.dll
├── msvcr120.dll
├── packager.dll
├── runtime
│ ├── COPYRIGHT
│ ├── LICENSE
│ ├── README.txt
│ ├── THIRDPARTYLICENSEREADME-JAVAFX.txt
│ ├── THIRDPARTYLICENSEREADME.txt
│ ├── Welcome.html
│ ├── bin
│ │ ├── JAWTAccessBridge-64.dll
│ │ ├── JavaAccessBridge-64.dll
│ │ ├── WindowsAccessBridge-64.dll
│ │ ├── attach.dll
│ │ ├── awt.dll
│ │ ├── bci.dll
│ │ ├── dcevm
│ │ │ ├── jvm.dll
│ │ ├── dcpr.dll
│ │ ├── decora_sse.dll
│ │ ├── deploy.dll
│ │ ├── dt_shmem.dll
│ │ ├── dt_socket.dll
│ │ ├── fontmanager.dll
│ │ ├── fxplugins.dll
│ │ ├── glass.dll
│ │ ├── glib-lite.dll
│ │ ├── gstreamer-lite.dll
│ │ ├── hprof.dll
│ │ ├── instrument.dll
│ │ ├── j2pcsc.dll
│ │ ├── j2pkcs11.dll
│ │ ├── jaas_nt.dll
│ │ ├── java.dll
│ │ ├── java_crw_demo.dll
│ │ ├── javafx_font.dll
│ │ ├── javafx_font_t2k.dll
│ │ ├── javafx_iio.dll
│ │ ├── jawt.dll
│ │ ├── jdwp.dll
│ │ ├── jfr.dll
│ │ ├── jfxmedia.dll
│ │ ├── jfxwebkit.dll
│ │ ├── jli.dll
│ │ ├── jpeg.dll
│ │ ├── jsdt.dll
│ │ ├── jsound.dll
│ │ ├── jsoundds.dll
│ │ ├── kcms.dll
│ │ ├── lcms.dll
│ │ ├── management.dll
│ │ ├── mlib_image.dll
│ │ ├── msvcp120.dll
│ │ ├── msvcr100.dll
│ │ ├── msvcr120.dll
│ │ ├── net.dll
│ │ ├── nio.dll
│ │ ├── npt.dll
│ │ ├── plugin2
│ │ │ ├── msvcr100.dll
│ │ │ ├── npjp2.dll
│ │ ├── prism_common.dll
│ │ ├── prism_d3d.dll
│ │ ├── prism_sw.dll
│ │ ├── resource.dll
│ │ ├── sawindbg.dll
│ │ ├── server
│ │ │ ├── Xusage.txt
│ │ │ ├── classes.jsa
│ │ │ ├── jvm.dll
│ │ ├── splashscreen.dll
│ │ ├── sunec.dll
│ │ ├── sunmscapi.dll
│ │ ├── t2k.dll
│ │ ├── unpack.dll
│ │ ├── verify.dll
│ │ ├── w2k_lsa_auth.dll
│ │ ├── zip.dll
│ ├── lib
│ │ ├── accessibility.properties
│ │ ├── amd64
│ │ │ ├── jvm.cfg
│ │ ├── calendars.properties
│ │ ├── charsets.jar
│ │ ├── classlist
│ │ ├── cmm
│ │ │ ├── CIEXYZ.pf
│ │ │ ├── GRAY.pf
│ │ │ ├── LINEAR_RGB.pf
│ │ │ ├── PYCC.pf
│ │ │ ├── sRGB.pf
│ │ ├── content-types.properties
│ │ ├── currency.data
│ │ ├── ext
│ │ │ ├── access-bridge-64.jar
│ │ │ ├── cldrdata.jar
│ │ │ ├── dnsns.jar
│ │ │ ├── jaccess.jar
│ │ │ ├── jfxrt.jar
│ │ │ ├── localedata.jar
│ │ │ ├── meta-index
│ │ │ ├── nashorn.jar
│ │ │ ├── sunec.jar
│ │ │ ├── sunjce_provider.jar
│ │ │ ├── sunmscapi.jar
│ │ │ ├── sunpkcs11.jar
│ │ │ ├── zipfs.jar
│ │ ├── flavormap.properties
│ │ ├── fontconfig.bfc
│ │ ├── fontconfig.properties.src
│ │ ├── fonts
│ │ │ ├── LucidaBrightDemiBold.ttf
│ │ │ ├── LucidaBrightDemiItalic.ttf
│ │ │ ├── LucidaBrightItalic.ttf
│ │ │ ├── LucidaBrightRegular.ttf
│ │ │ ├── LucidaSansDemiBold.ttf
│ │ │ ├── LucidaSansRegular.ttf
│ │ │ ├── LucidaTypewriterBold.ttf
│ │ │ ├── LucidaTypewriterRegular.ttf
│ │ ├── hijrah-config-umalqura.properties
│ │ ├── images
│ │ │ ├── cursors
│ │ │ │ ├── cursors.properties
│ │ │ │ ├── invalid32x32.gif
│ │ │ │ ├── win32_CopyDrop32x32.gif
│ │ │ │ ├── win32_CopyNoDrop32x32.gif
│ │ │ │ ├── win32_LinkDrop32x32.gif
│ │ │ │ ├── win32_LinkNoDrop32x32.gif
│ │ │ │ ├── win32_MoveDrop32x32.gif
│ │ │ │ ├── win32_MoveNoDrop32x32.gif
│ │ ├── javafx.properties
│ │ ├── javaws.jar
│ │ ├── jce.jar
│ │ ├── jfr
│ │ │ ├── default.jfc
│ │ │ ├── profile.jfc
│ │ ├── jfr.jar
│ │ ├── jfxswt.jar
│ │ ├── jsse.jar
│ │ ├── jvm.hprof.txt
│ │ ├── logging.properties
│ │ ├── management
│ │ │ ├── jmxremote.access
│ │ │ ├── jmxremote.password.template
│ │ │ ├── management.properties
│ │ │ ├── snmp.acl.template
│ │ ├── management-agent.jar
│ │ ├── meta-index
│ │ ├── net.properties
│ │ ├── plugin.jar
│ │ ├── psfont.properties.ja
│ │ ├── psfontj2d.properties
│ │ ├── resources.jar
│ │ ├── rt.jar
│ │ ├── security
│ │ │ ├── README.txt
│ │ │ ├── US_export_policy.jar
│ │ │ ├── blacklist
│ │ │ ├── blacklisted.certs
│ │ │ ├── cacerts
│ │ │ ├── java.policy
│ │ │ ├── java.security
│ │ │ ├── javaws.policy
│ │ │ ├── local_policy.jar
│ │ │ ├── trusted.libraries
│ │ ├── sound.properties
│ │ ├── tzdb.dat
│ │ ├── tzmappings
├── treehole.exe
├── treehole.ico