【问题标题】:Experimenting with creating OCR in tensorflow, what to do after training on letters?尝试在tensorflow中创建OCR,字母训练后怎么办?
【发布时间】:2017-12-22 00:47:12
【问题描述】:

老实说,我只是卡住了,无法思考。我一直在努力创建一个可以阅读字母的惊人模型,但是我该如何继续阅读单词、句子、段落和全文呢?

这是一个普遍的问题,所以请原谅我没有提供代码,但假设我已经成功训练了一个网络来识别多种字母和多种字体,图像中有各种不同的噪声和失真。

(只是为了技术,模型训练的图像只是36*36灰度图像,模型是一个简单的分类器,有一些conv2d层)

现在我想使用这个训练有素的模型和它的所有参数,并给它一些可供阅读的东西,以变成一个完整的 OCR 程序。这就是我卡住的地方。我想给程序一张纸的照片/扫描,让它识别所有的字母。但是,当图像明显大于单字母训练的图像时,如何使用我的模型“预测”?

我尝试添加一个额外的conv2d 层,它会尝试读取图像部分的特征,但这太复杂了,我无法弄清楚。

我还查看了opencv 程序,这些程序可以识别图像中的文本位置并将其裁剪出来,但我找不到单独的单个字母,现在可以将这些字母提供给经过训练的模型以尝试阅读。

我的下一步是什么?

【问题讨论】:

    标签: python opencv image-processing tensorflow ocr


    【解决方案1】:

    如果字母的字体在整个图像中都是相同的,您可以使用所谓的:“滑动窗口技术

    从左上角开始,将扫描窗口向右滑动到字母的大小,直到到达纸的末尾。

    滑动窗口将是扫描字母的大小,当输入到您的神经网络时,它将输出字母。将这些字母保存在某处。

    其他方法包括更改您的神经网络并更智能地检测扫描纸上的文本块

    如果您正在寻找现成的解决方案,请查看Tessaract-ocr

    【讨论】:

    • 你能扩展一下“滑动窗口”吗?我考虑过实现类似的东西,但我假设通过每次“滑动”几个像素,如果“幻灯片”太大,我可能会错过字母,或者如果幻灯片太大,我可能会多次阅读同一个字母小的。所需幻灯片的大小是未知的,并且对于每篇论文都不同。有没有处理这个问题的模型?
    • 您可以尝试使用不同的窗口大小,看看哪一个可以为图像的不同部分提供最佳精度,然后选择最佳的滑动窗口大小。
    • 在整个图像上使用相同的窗口大小和幻灯片长度,然后将图像缩小一点并再次滑动,然后缩小图像和幻灯片,依此类推。这是一种多尺度方法。但是根据您的分类器,可能还有另一个问题:它是否对旋转和透视失真保持不变,或者您是否假设直立的直线纸作为输入?
    • 或者可能使用笔画宽度变换来猜测字体大小或某事;)
    【解决方案2】:
    猜你喜欢
    • 2019-12-20
    • 2012-11-05
    • 2018-12-30
    • 2022-01-26
    • 2020-08-05
    • 2020-02-12
    • 2016-12-06
    • 2019-09-02
    • 2016-03-09
    相关资源
    最近更新 更多