什么是连接主义者的时间分类(CTC)?


15

我正在寻找一个光学字符识别(OCR)项目。在进行了一些研究之后,我遇到了一个看起来很有趣的体系结构:CNN + RNN + CTC。我熟悉卷积神经网络(CNN)和递归神经网络(RNN),但是什么是连接主义时间分类(CTC)?我想用外行的话解释一下。


3
我建议您阅读原始论文:Graves等。(2006)Connectionist时间分类:使用递归神经网络标记未分段的序列数据,第23届国际机器学习会议论文集pdf)。
neo li

Answers:


28

您有一个包含以下内容的数据集:

  • 图像I1,I2 ...
  • 图像I1,I2,...的地面真实文本T1,T2,...

因此您的数据集可能看起来像这样:

在此处输入图片说明

神经网络(NN)输出图像的每个可能水平位置(在文献中通常称为时间步长 t )的得分。对于宽度为2(t0,t1)和2个可能的字符(“ a”,“ b”)的图像,这看起来像这样:

| t0 | t1 --+-----+---- a | 0.1 | 0.6 b | 0.9 | 0.4

要训​​练这样的NN,您必须为每个图像指定在图像中放置地面真实文本的字符的位置。例如,考虑一个包含文本“ Hello”的图像。现在,您必须指定“ H”的开始和结束位置(例如,“ H”从第10个像素开始,一直到第25个像素)。“ e”,“ l” ...相同,这听起来很无聊,并且对于大型数据集来说是一项艰巨的工作。

即使您设法以这种方式注释完整的数据集,也存在另一个问题。NN在每个时间步输出每个角色的分数,有关玩具示例,请参见上面显示的表格。现在,我们可以按时间步长选择最可能的角色,在玩具示例中为“ b”和“ a”。现在考虑一个较大的文本,例如“ Hello”。如果作家的写作风格在水平位置占用大量空间,则每个字符将占用多个时间步长。以每个时间步长中最有可能出现的角色为例,可以给我们提供类似“ HHHHHHHHeeeellllllllloooo”的文字。我们应该如何将这些文本转换为正确的输出?删除每个重复的字符?这会产生“ Helo”,这是不正确的。因此,我们需要一些巧妙的后处理。

CTC解决了两个问题:

  • 您可以从对(I,T)中训练网络,而不必使用CTC损失指定字符出现在哪个位置
  • 您无需对输出进行后处理,因为CTC解码器会将NN输出转换为最终文本

如何实现的?

  • 引入一个特殊字符(CTC空白,在本文中表示为“-”),以指示在给定的时间步长未看到任何字符
  • 通过插入CTC空格和以所有可能的方式重复字符来将地面真实文本T修改为T'
  • 我们知道图像,我们知道文本,但是我们不知道文本的位置。因此,让我们尝试尝试文本“ Hi ----”,“-Hi ---”,“-Hi-”,...的所有可能位置。
  • 我们也不知道每个字符在图像中占据多少空间。因此,让我们通过允许重复字符“ HHi ----”,“ HHHi ---”,“ HHHHi-”,...来尝试所有可能的对齐方式。
  • 在这里看到问题了吗?当然,如果我们允许一个字符重复多次,我们如何处理像“ Hello”中的“ l”这样的真实重复字符?好吧,在这种情况下,总是在两者之间插入一个空格,例如“ Hel-lo”或“ Heeellll ------- llo”
  • 计算每个可能的T'(即每个转换及其组合)的分数,对所有分数求和,得出该对(I,T)的损失
  • 解码很容易:在每个时间步中选择得分最高的字符,例如“ HHHHHH-eeeellll-ll--oo ---”,丢掉重复的字符“ H-el-lo”,丢掉空格“ Hello”,然后完成。

为了说明这一点,请看下图。它是在语音识别的上下文中,但是,文本识别是相同的。即使字符的对齐方式和位置不同,解码也会为两个讲话者产生相同的文本。

在此处输入图片说明

进一步阅读:


至少对我来说,这有点令人困惑,起初您所说的“ 每个图像T1,T2,...的地面真理文本 ”。您应该先解释一下。另外,如果您不熟悉这些概念,还不是很清楚,您的意思是“神经网络(NN)输出图像每个可能的水平位置(时间步长t)的得分”。图像为什么会有时间步长?总而言之,您的某些初始陈述似乎假设您知道一些概念,这些概念最终将在以后的相同答案中得到理解,但是恕我直言,您应该澄清这些概念。
nbro

感谢您的反馈。我添加了有关数据集的说明并改进了描述。此外,术语“时间步长”在文本识别的上下文中仅表示“水平位置”或x坐标。该术语最有可能起源于语音识别(类似的任务),其中时间步长是指音频信号中时间的位置。
哈里
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.