Search Posts

分类: OCR

关于图片文字识别OCR的话题

rust+Qt+PaddleOCR 实现的OCR桌面软件示例

功能效果

基于paddleOCR 的图片文字识别(OCR)桌面软件,使用Rust+QT开发。

带调试界面的运行效果:

src/ocr.rs 文件的来源:

安装 ruic 工具,https://github.com/jnbooth/ruic
然后

cd src/
ruic.exe -o uic.rs --all mainwindow.ui

就会得到src/uic.rs 。目前已包含 src/uic.rs 文件,所以无需执行上述 ruic 命令。

注意:

  1. ruic.exe 对 QT5 的Line 类 不支持。需要将uic.rs中重复的声明和 Line 相关的声明删掉。
  2. 编译环境要求:qt 5.14.0或低于该版本的qt。windows 10系统。rust qt在windows下的环境要求在有 msvc 编译器的环境,
    所以建议使用:打开【适用于 VS 2017 的 x64 本机工具命令提示】后cd到项目目录下进行cargo 操作。
  3. 在cargo build 之前,要确保按照 【PaddleOCR-json\说明.txt】 文件的要求放置好 PaddleOCR-json 的文件。
  4. main.rs 中 pub type OcrResult = Vec<Root>; 等代码参考了 https://gitee.com/toobo/PaddleOCRRust/blob/master/src/entity.rs ,在此向toobo( ZHao )表示感谢!感谢 PaddleOCR-json 项目

如何编译:

由于技术栈基于 Rust + Qt 5.14.0 + paddleOCR(C++),所以需要借助一些rust crate库实现。编译过程已通过build.rs 脚本进行了一键封装。

编译测试版

cargo build

编译生产版

cargo build --release

授权协议

Apache-2.0

rust+Qt 的其他项目:

  1. 使用 Rust + Qt 开发的仿有道词典的翻译 + 词典 工具.
  2. rust-qt的官方 examples

结论:

使用QT+Rust开发,主要是练手希望熟悉Rust,以及验证rust-qt的成熟度+OCR软件功能的MVP验证。

  1. 关于成熟度:QT C++能支持的功能,rust-qt也支持(目前rust-qt官方支持QT5.14.0 及以下版本的QT,提供了qt_core 、qt_gui、qt_widgets、 qt_ui_tools 等核心模块的crate库)。
  2. 关于开发效率: 对于熟悉Rust的人员,采用rust-qt的开发效率也可以很高,因为UI可以拖拽然后用 ruic 工具生成rust代码(参考 https://github.com/kerneltravel/rust_qt_gui_paddle_ocr_example
查看余下内容

如何在 PaddleOCR 中设置使用 GPU/CPU计算能力?

paddlepaddle的paddleOCR在安装配置阶段,要选对下载的版本,才能支持GPU模式,否则默认支持的是CPU模式

要在 PaddleOCR 中使用 GPU,您需要遵循几个步骤:

  1. 安装 PaddlePaddle 的 GPU 版本: 确保已安装 PaddlePaddle 的 GPU 版本,其中包括 CUDA 和 cuDNN 支持。你可以按照 PaddlePaddle官方的这个文档中提供的说明进行安装。注意选择对应的CUDA版本、操作系统版本、安装渠道等。

  2. 检查 GPU 可用性: 确保 PaddlePaddle 能正确识别你的 GPU。你可以运行以下代码片段来检查PaddlePaddle是否能检测到你的GPU:

import paddle
gpu_available  = paddle.device.is_compiled_with_cuda()
print("GPU available:", gpu_available)
如果输出为 True,则表示 PaddlePaddle 已检测到 GPU。
  1. 在 PaddleOCR 中设置 use_gpu 标志:在代码或配置文件中,确保将 use_gpu 标志设置为 True,以启用 GPU 的使用。例如,如果您使用的是 PaddleOCR API,可以这样设置:
from paddleocr import PaddleOCR
ocr = PaddleOCR(use_gpu=True)
如果使用配置文件,请在配置文件中将 use_gpu 标志设置为 true。
  1. 在推理过程中检查 GPU 的使用情况: 使用 PaddleOCR 执行推理时,可以使用 nvidia-smi(用于英伟达™(NVIDIA®)GPU)等工具或其他 GPU 监控工具监控 GPU 的使用情况。这将帮助你验证 GPU 是否在推理过程中被使用。

如果您已按照上述步骤操作,但仍遇到 PaddleOCR 使用 CPU 而非 GPU 的问题,则可能是其他因素导致了该问题。请确保您的系统环境和依赖项已正确设置为使用 GPU,并仔细检查是否安装了支持 GPU 的 PaddlePaddle。此外,检查 PaddleOCR 初始化或推理过程中的任何错误信息或警告,因为它们可能提供更多有关问题的信息。… 查看余下内容

【kerneltravel原创】机器学习的paddleOCR的项目经过pyinstaller打包后可执行文件启动报错的原因和解决方式

pyinstaller打包的基于paddleOCR的可执行文件启动报错

很多人的图片转文字功能都采用 paddleOCR项目,为了发布给用户使用,往往要借助pyinstaller等打包工具。使用pyinstaller打包paddleOCR为可执行后,很多开发者遇到,可执行文件启动报错:未找到模块。

网友kerneltravel 综合分析了多个issue和pyinstaller的报错信息后,找到这个问题的原因,并给出了解决方法,同时向paddleOCR官方提交了修复代码(见 PR1PR2 ),以PR2 为准。

下面对这个问题做具体分析:

问题表现:

  1. 打包后,paddleocr应用启动报错信息1:

    Traceback (most recent call last):
    File "main.py", line 5, in
    File "PyInstaller\loader\pyimod02_importers.py", line 385, in exec_module
    File "paddleocr_init_.py", line 14, in
    File "PyInstaller\loader\pyimod02_importers.py", line 385, in exec_module
    File "paddleocr\paddleocr.py", line 33, in
    File "importlib_init_.py", line 126, in import_module
    ModuleNotFoundError: No module named 'tools'
    [11752] Failed to execute script 'main' due to unhandled exception!
  2. 启动报错信息2:

    raceback (most recent call last):
    File "yes .py",line 1, in 
    File"PyInstaller\loader pyimod02 importers.py", line 385,in exec moduleFileFile"paddleocrinit .py",line 14,in 
    File"pyInstaller loader pyimod02 importers.py", line 385,in exec module
    File"paddleocr\paddleocr.py",line 34,in 
    File"importlib\ init .py",line 127,in import module
    ModuleNotFoundError: No module named"ppocr'
    [23216] Failed to execute script 'yes' due to unhandled exception!
查看余下内容
加好友请备注:chinaoss
您可以在微信公众号联系我们
我们将24小时内回复。
取消