中文OCR光学字符检测与识别二:用最先进的DBNet训练自己的数据集检测中文文本


本文介绍 中文OCR光学字符检测与识别二:用最先进的DBNet训练自己的数据集检测中文文本

中文OCR光学字符检测与识别二:用最先进的DBNet训练自己的数据集检测中文文本

本文由林大佬原创,转载请注明出处,来自腾讯、阿里等一线AI算法工程师组成的QQ交流群欢迎你的加入: 1037662480

a这是中文OCR检测与识别系列教程的第二篇, 这篇文章将继续给大家讲解如何使用最目前最好的模型来进行文本检测, 也就是DBNet.

最文本的可能听说过PSENet, 有可能听说过PSENet++ (PAN), 但从实用性和精度来讲, DBNet比之前的算法都要强, 事实上在笔者用下来, DBNet训练容易, 结果简单移动, 没有太复杂的后处理操作 (优势尤其明显,对比PAN系列). 关于算法的原理我们会做一个简单的阐述, 但今天的目的是教大家如何使用DBNet训练自己的文本检测数据集, 在这里, 我们特指中文.

首先来看看我们能做大的效果:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a2V9zLHV-1599117001314)(https://i.loli.net/2020/07/29/ZsF7Tz2w1gCrkSK.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZXdwHM1d-1599117001322)(https://i.loli.net/2020/07/29/h5Hqxz6gXLDckOy.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hkybET5s-1599117001325)(https://i.loli.net/2020/07/29/3hizBApcOWHyJrn.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S5N2gdeT-1599117001330)(https://i.loli.net/2020/07/29/SjeskzDgl8QoA9I.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5X0hc5np-1599117001331)(https://i.loli.net/2020/07/29/xm7X8c1WuTYhACM.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1Se5DYRg-1599117001333)(https://i.loli.net/2020/07/29/YpebXWmCGqkrSBv.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Kcf5zRq8-1599117001335)(https://i.loli.net/2020/07/29/GcCvOTU4IBMEqR7.png)]

这个效果对于一个采用resnet18作为backbone的轻量模型来说, 非常不错. 可以看到, DBNet在处理形变, 艺术字体, 中文, 英文, 数字, 以及横排竖排的文字都比较强. 整体的鲁棒性很不错了.

结合我们前一篇文章的关于CRNN的教程, 加上文本检测, 我们就可以自己做一个端到端的文本检测系统了.

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WOoyR1Sk-1599117001337)(https://i.loli.net/2020/07/17/QkaNwp42YLEXHD1.png)]

我们从数据集开始今天的教程.

01. 数据集的准备

要训练这么一个中文文本检测器, 首先需要中文的数据集. 这里我比较推荐两个, 一个是ICPR的数据集, 另外一个就是ICDAR的中文worldwide检测.

考虑到我们想做的事印刷字体的OCR, 对于真实环境下的场景我们不太考究, 上面的效果就是在ICPR的数据集上训练的.

关于ICPR的数据集链接, 由于数据集较大, 而且放到百度云不时的被封, 为了给大家一个统一的下载渠道, 大家可以麻烦一下, 扫描这个公众二维码, 关注一下, 回复 [ocr] 既可以获取所有数据集的下载链接:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9tuvkxnH-1599117001338)(https://i.loli.net/2020/07/29/2hfe1gpB9oy5azi.png)]

如果知乎自定和谐了二维码, 可以添加我的微信: jintianandmerry 邀请你加入AI社群, 同时我会给你分享数据集下载链接.

02. 数据集的存放格式

实际上, 对于数据集的标注格式, 也很好理解:

['61.95,195.68,58.95,229.11,235.53,226.11,234.53,196.68,Jagermeifter', '454.58,421.37,450.58,451.0,601.63,449.0,602.63,418.37,Jagermeifter', '63.11,366.16,65.16,428.74,270.21,425.79,289.26,366.16,买就送!', '482.84,524.53,482.84,534.47,569.16,532.47,571.16,521.53,JagermeifterAG', '512.63,504.42,512.63,513.95,538.32,514.95,537.32,506.42,mast', '482.47,484.21,480.47,489.68,567.63,490.68,567.63,485.21,###', '594.32,473.84,595.32,619.95,600.63,618.95,599.63,472.84,###', '482.16,616.84,483.84,625.68,567.21,632.16,565.26,621.89,HERBLIQUEUR', '363.32,574.63,365.16,590.63,441.16,589.21,445.0,574.63,GLENFRANT', '371.42,590.74,372.42,599.16,434.89,600.16,434.89,593.42,SINGLEMALT', '389.95,603.95,391.95,609.84,419.42,609.84,419.42,603.95,CHWH', '374.26,603.37,372.26,609.84,386.32,609.84,387.32,604.37,###', '372.26,615.32,374.26,621.47,436.58,621.05,434.32,615.32,TheMajorsHesenre', '380.16,628.63,379.16,632.0,426.74,633.0,426.74,628.63,###', '386.05,634.26,386.05,637.63,422.95,637.63,421.95,634.26,###', '392.63,640.42,392.63,643.37,415.63,643.37,416.63,641.42,###', '396.42,644.63,396.42,648.42,410.16,648.42,411.16,645.63,###', '362.74,787.79,362.74,796.89,443.32,799.89,444.32,787.79,###', '370.42,777.95,373.42,791.05,397.16,788.05,394.16,780.95,###', '402.47,781.89,402.47,787.79,433.21,788.79,432.21,782.89,###', '371.16,759.58,370.16,767.74,430.68,767.74,428.68,759.58,###', '379.16,749.47,380.16,753.26,426.89,754.26,426.89,750.47,###', '384.79,745.42,383.79,748.37,422.68,748.37,420.68,745.42,###', '392.37,740.21,391.37,744.16,413.53,744.16,413.53,741.21,###', '394.89,735.16,392.89,739.95,408.63,738.95,409.63,735.16,###', '496.79,256.0,495.79,264.84,523.32,258.11,518.37,253.21,###', '504.05,586.84,507.89,594.37,548.74,598.05,544.74,585.53,###', '558.11,571.26,557.11,583.42,574.53,585.42,573.53,570.26,35%', '562.74,589.32,561.74,600.42,574.26,600.42,575.26,592.32,VDl', '472.11,581.74,469.11,598.21,495.68,595.21,493.68,584.74,700ml', '474.47,568.16,471.47,581.79,492.58,581.79,492.74,566.16,70d', '509.53,555.79,510.53,562.11,539.58,563.11,540.58,556.79,###', '484.95,542.21,488.89,552.32,564.32,554.84,563.89,546.42,WOLFENBGTTEL', '452.16,294.47,452.16,397.21,459.16,397.21,458.16,294.47,###', '594.32,294.47,595.32,389.21,600.89,388.21,600.89,294.47,###', '588.16,272.16,595.32,288.16,600.47,286.47,592.89,265.26,###', '555.42,252.37,554.74,259.95,584.37,270.05,585.74,264.16,###', '525.53,250.95,529.63,259.95,552.21,259.95,554.47,251.37,###', '460.26,290.11,456.79,284.21,488.47,259.79,493.84,268.21,###', '673.68,313.84,667.68,605.17,707.68,603.17,708.02,319.17,Jagermeifter']

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jkWFy33Q-1599117001339)(https://i.loli.net/2020/07/29/DfqFIwnPtWKij5G.png)]

一张图片的标注就像这样, 我把文本解析成了列表. 每一行就是这一行字的四个点坐标.

03. 代码获取

DBNet训练以及demo代码都可以在下面链接获取:

http://manaai.cn/aicodes_detail3.html?id=65

DBNet的模型结构如图所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yhC6vc5q-1599117001340)(https://i.loli.net/2020/07/29/VKDeqlpaykrIOXB.jpg)]

开始训练:

./single_gpu_train.sh

将ICPR的数据集软链接到 datasets 下面, 不用更改任何配置即可开始训练.

04. 预测demo

执行:

 python3 demo.py --model_path output/DBNet_resnet18_FPN_DBHead/checkpoint/model_best.pth --data ./imgs/

既可实现预测:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SNQkvVzZ-1599117001340)(https://i.loli.net/2020/07/29/SjeskzDgl8QoA9I.png)]

和往常一样, 本文用到的所有工程代码都在神力平台, 神力平台是国内最大的AI算法市场, 海量AI算法开箱既用:

http://manaai.cn

本文代码链接:

http://manaai.cn/aicodes_detail3.html?id=65

如果你想学习人工智能,对前沿的AI技术比较感兴趣,可以加入我们的知识星球,获取第一时间资讯,前沿学术动态,业界新闻等等!你的支持将会鼓励我们更频繁的创作,我们也会帮助你开启更深入的深度学习之旅!

往期文章

https://zhuanlan.zhihu.com/p/149398749

https://zhuanlan.zhihu.com/p/147622974

https://zhuanlan.zhihu.com/p/144727162

中文OCR光学字符检测与识别二:用最先进的DBNet训练自己的数据集检测中文文本相关推荐

  1. 超轻量级中文OCR,支持竖排文字识别、ncnn推理,总模型仅17M

    整理 | AI科技大本营 光学字符识别(OCR)技术已经得到了广泛应用.比如发票上用来识别关键字样,搜题App用来识别书本上的试题. 近期,这个叫做chineseocr_lite的OCR项目开源了,这 ...

  2. Github标星3K+,超轻量级中文OCR,支持竖排文字识别、ncnn推理,总模型仅17M

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 光学字符识别(OCR)技术已经得到了广泛应用.比如发票上用来识别关键字样,搜题Ap ...

  3. python实现人脸检测及识别(2)---- 利用keras库训练人脸识别模型

    前面已经采集好数据集boss文件夹存放需要识别的对象照片,other存放其他人的训练集照片,现在,我们终于可以尝试训练我们自己的卷积神经网络模型了.CNN擅长图像处理,keras库的tensorflo ...

  4. 全球No.1集装箱人工智能领军企业中集飞瞳,已完成上百万AI集装箱箱况检测,上亿箱信息识别,全球最先进集装箱AI动态感知箱况检测

    中集集团[000039]人工智能企业,全球No.1集装箱人工智能企业CIMC中集飞瞳,是全球集装箱AI应用范围最广,最先进的航运港口人工智能领军企业.CIMCAI已完成百万人工智能集装箱箱况检验,完成 ...

  5. GitHub 热榜:文字识别神器,超轻量级中文 OCR!

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 整理 | AI 科技大本营 光学字符识别(OCR)技术已 ...

  6. halcon车牌识别完整源码_基于chineseocr_lite的身份证、火车票、车牌等中文OCR文字识别...

    简介 chineseocr_lite 超轻量级中文ocr,支持竖排文字识别, 支持ncnn推理 , psenet(8.5M) + crnn(6.3M) + anglenet(1.5M) 总模型仅17M ...

  7. OCR光学字符识别方法汇总(附开源代码)

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 文本是人类最重要的信息来源之一,自然场景中充满了形形色色的文字符号 ...

  8. OCR光学字符识别方法汇总

    编者荐语 OCR英文全称是Optical Character Recognition,中文叫做光学字符识别.它是利用光学技术和计算机技术把印在或写在纸上的文字读取出来,并转换成一种计算机能够接受.人又 ...

  9. 【逆天应用】如何用Python实现检测和识别车牌号?(详细教程)

    文章目录 前言 一.创建Python环境 二.如何在您的计算机上安装Tesseract OCR? 1.导入库 2.获取输入 2.获取输入 3.在输入端检测车牌 4.筛选轮廓 5.遍历前30个轮廓 5. ...

最新文章

  1. VirtualBox虚拟机网络连接设置的四种方式
  2. 《中国人工智能ABC人才发展报告》发布,算法和应用类人才短缺
  3. 清华大数据能力提升项目《数据分析方法》选课开始 !(附旁听名额)
  4. 进一步掌握linux吧
  5. 谷歌深度学习四大教训:应用、系统、数据及原理(附数据集列表)
  6. 性能调优某大型银行的一个系统过程跟踪和记录
  7. bat java 启动脚本_从bat脚本运行的Java应用程序上的Windows关闭挂钩
  8. 关于windows下的libtorch配置
  9. 程序设计基础——c语言篇,C语言程序设计基础篇.ppt
  10. python有趣小程序-python好玩的小程序
  11. 杭电 -- 2000
  12. Android 项目中用得最多最火的第三方框架可能都在这里了
  13. 手机点餐系统概述_餐馆点菜系统概要设计
  14. C++编写红警3 1.12版本修改器
  15. 安装python环境以及安装pycharm编译器教程
  16. word读入富文本编辑器,编辑后导出下载word日常总结
  17. PyQt5 自定义颜色、形状粗细、虚线等组合下拉框
  18. 猿人学web端爬虫攻防平台第七题动态字体
  19. vscode代码自动格式化快捷键
  20. iOS AVFoundation

热门文章

  1. linux系统部署微服务项目
  2. 常见未授权访问漏洞详解
  3. LSH 近似最近邻查找
  4. 快看!如何实现快速赢利--国内期货反跟单
  5. 瘦臀瘦腿的最快方法是什么?
  6. 人脸识别-Loss-2010:Softmax Loss(Softmax激活函数 + “交叉熵损失函数”)【样本3真实标签为c_5,则样本3的损失:loss_3=-log(\hat{y}_5^3)】
  7. IT桔子分布式项目2
  8. 小程序源码整理最新的学习小程序的源码清单包含前后台
  9. 2022-5-20 解决 cdn.jsdelivr 打不开
  10. 数据可视化之中国足球队在国际足联及亚洲的历史排名看这儿