FOTS:自然场景的文本检测与识别(下)

简介: FOTS:自然场景的文本检测与识别

准备识别数据

对于识别任务,我们必须提供文本图像作为输入,以及编码的文本序列(在该图像中)。在给出图像作为输入之前,我们将调整所有图像的高度和宽度。在我的例子中,我将所有图像的大小调整为(15,64,3)。我对所有与图像对应的文本进行了编码,并在Keras预处理库的帮助下依次进行了转换。因此,在编码之后,我们的输出将是(1,15)的形状,这15从哪里来,我将所有编码的文本填充为15个长度。

如果批大小为32,则输入形状为(32,15,64,3),输出形状为(32,1,15)。

训练检测与识别模型

检测模型-

第一篇研究论文是https://arxiv.org/pdf/1801.01671.pdf,它解释了整个工作。在本文“FOTS”中,他们同时进行了检测和识别,这是端到端系统,意思是如果我们给出一个有文本的场景,那么它将返回检测到的文本区域,并对文本进行识别。首先,他们提取特征图,用一些CNN检测文本区域,然后,他们在检测区域的序列解码的帮助下进行识别部分。

首先,他们从图像中提取特征的帮助下共享层的卷积,然后这些特征在文本检测分支(这又是一堆褶积层)然后文本检测分支预测b框(边界框)和边界框的方向,本预测输出和ROI旋转使面向文本区域固定高度和长宽比不变,然后这个转到文本识别分支(也就是RNN)和CTC解码器,它给出预测的文本。

但我已经实现了两部分,首先我有一个训练过检测模型,然后我有一个训练过的识别模型。因为我们有这两个任务的数据。

所以我们的检测部分是受East 论文的启发,https://arxiv.org/abs/1704.03155。本文介绍了一种从不同背景的场景中检测文本的方法。该网络使用的架构由卷积层、池化层和规范化层组成。

这个网络的灵感来自于u形网络,正如你所看到的,从特征提取器的中层,我们将信息提取到特征合并分支。

这里我们使用了预先训练的resnet50模型,该模型在imagenet数据集上进行了训练,用于提取特征并将其用于特征合并分支。你可以看到前50个训练时代的检测模型-

640.png

640.png

640.png

识别模型

对于识别模型,我们使用了一些初始的Conv层、批处理归一化层和max-pooling层从图像中提取信息,之后我们必须使用一个双向LSTM层。

对于如何构建数据的识别模型,我已经在上面的准备数据一节中解释过了。

你可以在这里看到识别模型的训练时代

640.png

640.png

训练代码整合

现在我们需要创建一个管道或者说是python函数,它可以获取图像并返回带有高亮文本区域和文本的图像。

为了编写这个函数,我们将使用NMS(Non-Max suppression)技术和一个ROI-ROTATE方法。问题是什么是NMS, NMS是一种选择与文本区域相交较高的边框的技术。在预测之后我们将得到shape的输出(512,512,6)。geo-map,score-map和angle的帮助下,我们将首先制作很多边界框要。假设图像中已有文本,现在将该图像提供给检测模型,我们将获得6个通道的结果图,现在我们将只提取所有6个通道中的像素,这些像素在预测得分图中的值为1,这样我们就拥有了文本区域像素的位置及其与像素顶部,右侧,底部和左侧的预测距离矩形。每个像素都有它自己的边界框(我们知道区域的面积,像素和距离两边的像素),所以最后得分图和距离的帮助下,我们将得到一个为每个像素边界框。此后,NMS的工作就开始了,NMS选择其中包含大部分文本的最佳边界框。然后,我们用ROI旋转技术旋转这些边界框中的区域。现在我们在边界框的帮助下裁剪文本图像,并将其发送到识别模型,识别模型给出文本输出。现在我们将在TensorFlow ctc_decoder方法的帮助下解码这个输出。在这之后,我们可以很容易地得到我们的文本。

显示结果

我已将此图片提供给我的管道

640.png

得到如下结果:

640.png

正如我们在此处看到的那样,它正在检测“ fendi”和更多的单词,并且可以正确识别“ fendi”单词。

现在我们可以看到更多示例

640.png

我们可以在上图中看到该模型的检测和识别能力还是可以的

但是,有些图像在模型上表现不佳,例如,如果图像中的单词很大或单词的角度一定,则无法正确检测到它们,也无法正确识别它们。查看一些示例-

640.png

因此,要解决此问题,首先,我们可以使用更多数据,我们仅在1300张图像上训练了我的检测模型,并且您也可以在识别模型的训练中获取更多数据。因此,如果我们训练更多的数据,则该模型可能会为包含文本的每个像素预测更准确的标注。

完整代码:https://github.com/vishwas-upadhyaya/mercari_price_suggestion

目录
相关文章
|
文字识别 算法 数据挖掘
文本检测 DBNet
文本检测 DBNet
349 0
|
1月前
|
机器学习/深度学习 算法 计算机视觉
人像检测的结果数据都有什么属性?
【10月更文挑战第26天】人像检测的结果数据都有什么属性?
42 1
|
5月前
|
人工智能 自然语言处理 测试技术
将图像自动文本化,图像描述质量更高、更准确了
【7月更文挑战第11天】AI研究提升图像文本化准确性:新框架IT融合多模态大模型与视觉专家,生成详细无幻觉的图像描述。通过三个阶段—全局文本化、视觉细节提取和重描述,实现更高质量的图像转文本。研究人员建立DID-Bench、D2I-Bench和LIN-Bench基准,展示描述质量显著提升。尽管有进步,仍面临幻觉、细节缺失及大规模处理挑战。[论文链接](https://arxiv.org/pdf/2406.07502v1)**
45 1
|
机器学习/深度学习 自然语言处理 算法
解读未知:文本识别算法的突破与实际应用
解读未知:文本识别算法的突破与实际应用
解读未知:文本识别算法的突破与实际应用
|
7月前
|
机器学习/深度学习 语音技术
Hotword模型在语音识别系统中定义为能够识别特定关键词或短语(也称为唤醒词)的模型
Hotword模型在语音识别系统中定义为能够识别特定关键词或短语(也称为唤醒词)的模型
343 9
|
7月前
|
机器学习/深度学习 自然语言处理
代码识别模型有哪些
代码识别模型有哪些
121 1
|
机器学习/深度学习 编解码 自然语言处理
文本检测之SegLink
翻译:《Detecting Oriented Text in Natural Images by Linking Segments》
139 1
|
机器学习/深度学习 人工智能 文字识别
从模式识别到图像文档分析——浅析场景文本识别研究
文本检测领域经历了从水平文字检测到多方向文字检测再到任意形状文字检测这样越来越有挑战性的应用场景转变。 在复杂场景下,由于光照、遮挡等因素的影响,图像中的文本经常会出现模糊、失真、变形等问题;其次,文本与背景之间偶尔存在相似度较高的情况,文字颜色和背景颜色相近或者噪点过多等情况会严重干扰文本的准确识别;此外,在某些场景下(如手写体、印章、二维码等),不同于常规字体的字形特征也会增加识别难度。复杂场景下的文本识别依然是目前难以解决的问题。
|
机器学习/深度学习 算法 计算机视觉
计算机视觉 文本检测与文本识别 (一)
计算机视觉 文本检测与文本识别 (一)
149 0
|
机器学习/深度学习
FOTS:自然场景的文本检测与识别(上)
FOTS:自然场景的文本检测与识别
180 0
FOTS:自然场景的文本检测与识别(上)