首页 > 其他分享 >crnn_migraphx用于端到端地对不定长的文本序列进行识别的OCR模型

crnn_migraphx用于端到端地对不定长的文本序列进行识别的OCR模型

时间:2024-09-25 08:52:40浏览次数:8  
标签:opt 示例 -- CRNN migraphx crnn OCR

CRNN

论文

An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition

模型结构

CRNN模型的主要结构包括基于CNN的图像特征提取模块以及基于双向LSTM的文字序列特征提取模块。

算法原理

CRNN是文本识别领域的一种经典算法,该算法的主要思想是认为文本识别需要对序列进行预测,所以采用了预测序列常用的RNN网络。该算法首先通过CNN提取图片特征,然后采用RNN对序列进行预测,最终使用CTC方法得到最终结果。

环境配置

Docker(方法一)

拉取镜像:

docker pull image.sourcefind.cn:5000/dcu/admin/base/migraphx:4.3.0-ubuntu20.04-dtk24.04.1-py3.10

创建并启动容器,安装相关依赖:

docker run --shm-size 16g --network=host --name=crnn_migraphx --privileged --device=/dev/kfd --device=/dev/dri --group-add video --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -v $PWD/crnn_migraphx:/home/crnn_migraphx -v /opt/hyhal:/opt/hyhal:ro -it <Your Image ID> /bin/bash

# 激活dtk
source /opt/dtk/env.sh

Dockerfile(方法二)

cd ./docker
docker build --no-cache -t crnn_migraphx:2.0 .

docker run --shm-size 16g --network=host --name=crnn_migraphx --privileged --device=/dev/kfd --device=/dev/dri --group-add video --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -v $PWD/crnn_migraphx:/home/crnn_migraphx -v /opt/hyhal:/opt/hyhal:ro -it <Your Image ID> /bin/bash

# 激活dtk
source /opt/dtk/env.sh

数据集

根据提供的样本数据,进行文本识别。

推理

Python版本推理

下面介绍如何运行Python代码示例,Python示例的详细说明见Doc目录下的Tutorial_Python.md。

设置环境变量
export PYTHONPATH=/opt/dtk/lib:$PYTHONPATH
运行示例

CRNN工程的Python推理示例仅提供静态推理,可使用如下命令运行:

# 进入python示例目录
cd <path_to_crnn_migraphx>/Python

# 安装依赖
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

# 运行示例
python Crnn_infer_migraphx.py 

C++版本推理

注意:当使用操作系统不一样时,CMakeList需要做相应的修改:

# ubuntu操作系统
${CMAKE_CURRENT_SOURCE_DIR}/depend/lib64/ 修改为 ${CMAKE_CURRENT_SOURCE_DIR}/depend/lib/

# centos操作系统
${CMAKE_CURRENT_SOURCE_DIR}/depend/lib/ 修改为 ${CMAKE_CURRENT_SOURCE_DIR}/depend/lib64/

下面介绍如何运行C++代码示例,C++示例的详细说明见Doc目录下的Tutorial_Cpp.md。

构建工程
cd <path_to_crnn_migraphx>
rbuild build -d depend
设置环境变量

将依赖库依赖加入环境变量LD_LIBRARY_PATH,在~/.bashrc中添加如下语句:

当操作系统是ubuntu系统时:

export LD_LIBRARY_PATH=<path_to_crnn_migraphx>/depend/lib/:$LD_LIBRARY_PATH

当操作系统是centos系统时:

export LD_LIBRARY_PATH=<path_to_crnn_migraphx>/depend/lib64/:$LD_LIBRARY_PATH

然后执行:

source ~/.bashrc
运行示例

成功编译CRNN工程后,执行如下命令运行该示例:

# 进入crnn migraphx工程根目录
cd <path_to_crnn_migraphx> 

# 进入build目录
cd build/
  1. 静态推理
./CRNN 0
  1. 动态shape推理
# 执行动态推理示例程序
./CRNN 1

result

Python版本

输入样本图像得到文本识别的结果

a-----v--a-i-l-a-bb-l-e--- => available

C++版本

静态推理:

输入样本图像得到文本识别的结果

a-----v--a-i-l-a-bb-l-e--- => available

动态推理:

可以连续对多张样本图像进行文本识别

available
migraphx
waiting
recognition

精度

应用场景

算法类别

ocr

热点应用行业

金融,交通,教育,医疗

源码仓库及问题反馈

ModelZoo / CRNN_migraphx · GitLab

参考资料

https://github.com/meijieru/crnn.pytorch

标签:opt,示例,--,CRNN,migraphx,crnn,OCR
From: https://blog.csdn.net/qq_27815483/article/details/141855537

相关文章

  • 【Python调用ddddocr打包成exe文件指定模型库及注意事项】
    ddddocr打包成exe后一直存在各种各样的问题,例如:ddddocr\common.onnxfailed.Filedoesn’texist查阅资料后,问题得到解决。但相关资料不多,且不够详细,特写下本文,以便于后来者解决问题。希望本文能帮到你。目标:为了方便调用,打算分别起三个服务,并且打包成EXE方便......
  • 天若OCR文字识别本地版
    下载地址:天若OCR文字识别本地版-v1.3.9-x64.zip1、解压下载包,将【天若OCR文字识别.exe】发送到桌面快捷方式2、点击桌面图标启动3、按F4或双击要识别的文字,以下是我识别的图片文字......
  • docker部署paddleocr过程中遇到的问题
    坑1:尝试了下面csdn博客中的解决方案,但是不太行,后来发现是paddlepaddle-gpu的版本问题,版本改对后就OK了https://blog.csdn.net/weixin_43021830/article/details/128243800坑2:困扰了一周了,还是卡住了,目前尝试解决的两个思路1、将paddleocr模块添加到python解释器的搜索路径......
  • General OCR Theory: Towards OCR-2.0 via a Unified End-to-end Model
    摘要传统的OCR系统(OCR-1.0)越来越无法满足人们对智能处理人造光学字符的需求。在本文中,我们将所有人造光学信号(例如,普通文本、数学/分子公式、表格、图表、乐谱,甚至是几何形状)统称为“字符”,并提出了通用OCR理论以及一个优秀的模型,即GOT,以促进OCR-2.0的到来。GOT拥有5.8亿参......
  • OpenCV和Tesseract OCR识别复杂验证码喽~~
    目录代码实现思路流程:主要流程:整体代码效果展示原图处理之后的图总结流程图代码实现思路使用OpenCV进行图像预处理,并通过TesseractOCR来识别验证码中的字符。以下是其实现思路的详细讲解:流程:加载验证码图像:使用cv2.imread()读取验证码图片,将其加载为......
  • 营业执照识别OCR接口如何用PHP调用
    一、什么是营业执照OCR识别接口?营业执照识别OCR接口,即营业执照识别,通过上传图片或URL,识别图片内容,能够识别营业执照上的多种信息,如企业名称、统一社会信用代码、法定代表人等基本信息,以及经营范围、注册地址等详细信息。二、营业执照OCR识别接口适用哪些场景?例如:电商与零售......
  • 简单好用的OCR API
    现如今,越来越多的科技产品可以帮助我们改善和提高相应的工作效率。OCR技术的出现,提高了人们的工作效率,其应用领域及其广泛。就拿应用了OCR技术的翔云文档识别服务来说,只需上传文档图片便可自动识别并返回文档中相应的内容。翔云文档识别API可以集成到企业系统、APP产品、或网......
  • 免费OCR 文字识别工具
    免费:本项目所有代码开源,完全免费。方便:解压即用,离线运行,无需网络。高效:自带高效率的离线OCR引擎,内置多种语言识别库。灵活:支持命令行、HTTP接口等外部调用方式。功能:截图OCR/批量OCR/PDF识别/二维码/公式识别下载地址:https://pan.quark.cn/s/f263ecc221b7......
  • python PaddleOCR库用法及知识点详解
    识别图片的设置https://blog.csdn.net/f2315895270/article/details/128147744?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0-128147744-blog-89082526.pc_relevant_default&spm=1001.2101.3001.4242.1&utm_relevant_in......
  • PP-OCR技术原理与实现方法
    OCR(OpticalCharacterRecognition)是一种针对图像中文字进行自动识别的技术,有着悠久的研究历史和广泛的应用场景,如公文电子化、身份认证、数字金融系统、车牌识别等。此外,在工厂中,通过自动提取产品的文本信息,可以更方便地管理产品。学生的线下作业或试卷可以通过OCR系统实......