pytorch ocr 数字识别库_pytorch handbook

pytorch ocr 数字识别库_pytorch handbook实时姿态估计网络:https://github.com/Sierkinhane/AtrousPose简单单人跟踪:https://github.com/Sierkinhane/human_tracker(基于目标检测与特征映射算法)演示视频:https://www.bilibili.com/video/av44360925新写的关于人脸检测算法MTCNN的文章https://……

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

CVPR2022弱监督语义分割:https://blog.csdn.net/Sierkinhane/article/details/126228039

开源仓库:https://github.com/CVI-SZU/CLIMS

简单单人跟踪:https://github.com/Sierkinhane/human_tracker(基于目标检测与特征映射算法)

演示视频:https://www.bilibili.com/video/av44360925

斯坦福机器学习课程资料以及算法实现吴恩达-斯坦福CS229机器学习课程资料与算法的Python实现_Sierkinhane的博客-CSDN博客

代码仓库:GitHub – Sierkinhane/CS229-ML-Implementation: Implementation of algorithms introduced in CS229.

     在六七月份参加了一个比赛,做的项目是提取图片中的文字信息,首先是接触了一些文本检测算法(如CTPN,East),后研究了文本识别算法(我认为较好的是CRNN)。代码实现是参考算法提出者的pytorch,python3版本的crnn实现。因为python版本的迭代,导致代码重使用比较难,其中涉及到ctc,python编码,中文数据集,如何将模型finetune到自己的应用场景上种种问题。实现的深度学习框架是pytorch,虽然TensorFlow也可以,但是比较多坑。其实是什么框架实现的都没关系,现在语法都是比较简单,看懂不难!

     因为自己已经踩了很多坑,也填好了这些坑,就将自己填好的项目贡献给大家!

     GitHub – Sierkinhane/CRNN_Chinese_Characters_Rec: (CRNN) Chinese Characters Recognition. 代码地址

     这次分享的是文本识别算法CRNN,具体的内容我就不涉及了,这篇文章主要是做算法代码的实现(参考原作者),建议大家研读算法一定要看作者发的Paper! CRNN论文地址:http://arxiv.org/abs/1507.05717作者是华中科技大学的老师

     先放一些效果图,利用360万的中文数据训练集,最后可以finetune到97.7%的验证准确率,训练好的模型在train_models文件夹

pytorch ocr 数字识别库_pytorch handbook

pytorch ocr 数字识别库_pytorch handbook

pytorch ocr 数字识别库_pytorch handbook

pytorch ocr 数字识别库_pytorch handbook

    第一、二张图片是最近修改的一个demo,第三、四张图是CTPN算法和CRNN的结合,可以将图片上的任何文字信息提取。因为CTPN要求的环境比较复杂,所以这次只放出CRNN的代码,因为CRNN实现环境比较简单。

    现在开始介绍代码:

            

pytorch ocr 数字识别库_pytorch handbook

代码的实现必须是Linux环境(因为涉及到warp-ctc的安装,最好是Ubuntu16.04,能跳的坑我基本都填了)

1. Warp-ctc安装

首先得安装warp-ctc GitHub – SeanNaren/warp-ctc: Pytorch Bindings for warp-ctc,这是pytorch版本的ctc实现(计算序列loss,具体看论文),安装方法按照作者的步骤即可,如果遇到问题可以私聊我。我是在Ubuntu16.04安装的,并没有太大问题,但是在17.04就遇到很多问题,所以最好用Ubuntu16.04作为代码实现环境。

现在只需将pytorch更新至1.1.0,使用其自带的ctcloss即可。

2. 测试

    安装好ctc后,直接运行终端输入 python3 test.py 试下效果,测试图片在test_images文件夹下。

3. 训练

pytorch ocr 数字识别库_pytorch handbook

pytorch ocr 数字识别库_pytorch handbook

    正确的训练效果如图。

    训练之前首先制作数据集,因为360万的中文数据集制作成lmdb格式的数据有十几G,就没直接放到Github中。

    先下载360万中文数据集:Synthetic Chinese String Dataset .rar_免费高速下载|百度网盘-分享无限制

    对于数据集我想说明一下,在文字识别领域有比较多的识别场景,例如场景文本识别,比较正规的图片信息识别,这些不同的应用场景需要对应不同的数据集训练,这次我自己应用到的场景比较正规的字体识别,所以这个训练集不一定能够用到所有场景,但也确实提供了一个不错数据集资源!还有就是训练集最好是具有语义信息,如果只是将文字随机的组合生成图片作为训练集,模型收敛会更慢并且准确率受限!

   下图是部分训练集

pytorch ocr 数字识别库_pytorch handbook

      (这个数据是在Github中找到的,暂时没找到他的地址,很感谢作者的奉献!)

       数据集是随机选取定长的字数,经过模糊、倾斜、颜色变化等操作之后生成的,比较具有一般性,能很好地提升模型的Robust。

        下载好数据集之后如果解压出错,不完整,可以用好压进行修复。

        修改crnn_main_v2.py中的图片路径和标签路径,运行python crnn_main_v2.py即可

        接下来是制作lmdb格式的数据。

        图片与之对应的标签我链接:https://pan.baidu.com/s/1jfAKQVjD-SMJSffOwGhh8A 密码:u7bo,只需要将下载好的数据集放到lmdb文件中,根据情况修改to_lmdb.py中的文件名 运行该py程序就可以制作lmdb格式的数据!(需要用Python2来运行to_lmdb.py)

          制作好数据集之后将它放到lmdb_dataset文件夹中调出终端:

       python3 crnn_main.py –train_root 训练数据集路径 –val_root 验证集路径 –cuda (如果有cuda加速可选)

       大概流程就是这样了,最主要的还是自己看待自己琢磨!

       (不定长识别是将训练集图片的放缩feed到神经网络中的尺寸应用到测试中,test.py已经标注!)

       (如果有帮助到你,可以在Github给我个star!)

       (下一篇:斯坦福机器学习课程资料以及算法实现吴恩达-斯坦福CS229机器学习课程资料与算法的Python实现_Sierkinhane的博客-CSDN博客

  

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/194746.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • traceroute 工作原理

    traceroute 工作原理文章目录PINGTracerouteTraceroute的工作原理举个“栗子”PINGICMP的一个重要应用就是分组网间探测PING(PacketInterNetGroper),用来测试两台主机之间的连通性。PING使用了ICMP回送请求与回送回答报文。PING是应用层直接使用网络层ICMP的一个例子。他没有通过传输层的TCP或UDP。TracerouteICMP的另一个非常有用的应用是traceroute(这是UNIX操作系统中名字),它用来跟踪一个分组从源点到

    2022年6月20日
    24
  • 推荐自用黑苹果Clover引导主题「建议收藏」

    1.使用CloverConfiguration编辑软件修改启动主题挂载分区打开分区选择自己的config.plist文件打开文件选择“`引导界面“`修改主题保存CloverConfiguration的修改2.将主题文件复制到clover主题文件夹‘themes’下3.然后重启电脑就会出现主题了…

    2022年4月9日
    247
  • python安装numpy后pycharm导入不了_如何导入numpy

    python安装numpy后pycharm导入不了_如何导入numpypycharm安装好后numpy的导入pipinstallnumpy使用pip命令在dos环境下出现平台不支持,python版本太高,numpy不匹配,刚开始下的3.7的最新版,重新下载3.6的版本,安装成功。python安装的时候自己选择路径,勾选自动配置环境变量,默认安装路径在一个隐藏的文件夹temp里面,临时文件,容易系统清除。配置项目解释器,将py

    2022年8月26日
    6
  • 解决:如何写一个shell脚本(脚本名称:xsync,也称:xsync命令):实现多个电脑或者虚拟机之间的文件同步?

    解决:如何写一个shell脚本(脚本名称:xsync,也称:xsync命令):实现多个电脑或者虚拟机之间的文件同步?写一个shell脚本(脚本名称:xsync,又称xsync命令):实现多个电脑或者虚拟机之间的文件同步?一·xsync命令与rsync命令之间关系介绍:(1)xsync命令来源于一个xsync的脚本,这个脚本不是Linux系统自带的,是程序员自己写的。(2)xsync脚本的底层,实质是调用Linux系统自带的rsync命令,来实现多个电脑之间的快速文件同步。(3)rsync命令可以直接使用:二·xsync命令作用:(1)使用xsync命令同步一个文件,会只将这个文件,同步到其他服务器的相同路径下面。(2)使

    2022年5月21日
    43
  • 热拔插概念[通俗易懂]

    热拔插概念[通俗易懂]我们日常经常用到的电脑外设日益增多,如键盘、鼠标、耳机或音箱、U盘或移动硬盘、无线移动上网卡、显示器、笔记本电池、打印机、摄像头、数码相机、手机,还有无线路由器、宽带猫等,哪些可以热插拔,哪些必须关机

    2022年8月2日
    5
  • Tomcat部署war包项目请求404「建议收藏」

    Tomcat部署war包项目请求404「建议收藏」Tomcat部署war包请求404

    2022年6月5日
    364

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号