AI实战:OCR模型之训练数据自动生成

前言

前段时间,项目中的一个核心模块中需要中文OCR功能,模型架构可以参考我的上一篇文章:AI实战:用DenseNet + CTC搭建中文OCR模型

深度学习模型的上限取决于2个方面:
1、模型网络结构
2、训练数据

本文意在提供一种OCR数据自动生成的方法。


实战

  • 涉及技术
    • 文本处理
    • 图像处理(PIL、opencv)

  • 流程图
    1

  • 重要说明

    • 文本语料

      语料取决于OCR的应用领域。比如识别医疗的OCR,则取语料时一半取通用语料,一半取医疗语料;再比如识别教育的OCR,由于涉及到公式符号等的识别,取语料时更是需要更多的教育语料。

    • OCR词汇表

      词汇表同样取决于应用领域,如教育OCR需要识别各种公式符号、几何图形符号等。

      所以,OCR词汇表构成:一是通用中文,如GB2312中的汉字;二是数字英文;三是领域内特殊的字符。

    • 文本长度

      我的经验是:文本长度取10个字符,生成的文本数量300w+ 。

    • 背景图片

      背景图片可以根据应用场景来取,场景越多越好。

    • 画图方法

      图像大小:若是文本长度为10个字符,则图像大小为 32*280。

      推荐使用PIL库的,主要步骤:

      from PIL import Image, ImageDraw, ImageFont
      
      image = Image.open(img)
      draw = ImageDraw.Draw(image)
      
      #选择文字字体和大小
      setFont = ImageFont.truetype('xxx.ttf', 20)
      #设置文字颜色
      fillColor = "#ff0000"
      
      draw.text((x, y), text, font=setFont, fill=fillColor)
      image.save(img,'jpeg')
      

      说明:在图像img上的(x,y)坐标画出text文本,可以设置字体、大小、颜色等。

    • 图像增强处理

      增强方法:
      1、倾斜处理
      2、扭曲处理
      3、加噪声处理
      4、模糊处理

    • 图片索引数据

      一行数据格式为:
      xxx.jpg 12 23 21 3 3535 121 234 53 743 892



最后

模型架构可以参考我的上一篇文章:
AI实战:用DenseNet + CTC搭建中文OCR模型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

szZack

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值