信息
操作系统
未知
开发语言
开源协议
未知
CTC
Adds "Close Tab" to the context menu, shown whenever Back, Forward, Stop and Reload... 已更新 2007 年 03 月 5 日
收起全文
精华内容
下载资源
问答
  • CTC

    2020-11-23 02:08:01
    <div><p>Are anyone interested in CTC? <p>I ported a theano CTC to lasagne: https://github.com/skaae/Lasagne-CTC</p> <p>Problem is I haven't really had time to test it and I do not have a nice ...
  • CTC / USS CTC Help

    2020-12-09 07:01:42
    <div><p>There are two CTC tools. <p>jmri.jmrit.ussctc is the original and provides capabilities that are enabled using scripting. <p>jmri.jmrit.ctc is a recent addition. It was converted from an old ...
  • CTC细分 CTC分段可用于查找大型音频文件中的发音对齐方式。 该存储库包含ctc-segmentation python软件包。 该算法的说明位于 本文中使用的代码存储在 安装 随着pip : pip install ctc-segmentation 使用您最...
  • 四氯化碳 CTC师范学院课程资料
  • 在CPU和GPU上快速并行实现CTC。 介绍 主义者的是一种损失函数,可用于对序列数据进行监督学习,而无需在输入数据和标签之间进行对齐。 例如,CTC可用于训练用于,这就是我们在百度的硅谷AI实验室中一直使用的方式。 ...
  • CTC Loss和Focal CTC Loss

    千次阅读 2019-07-24 17:48:27
    最近一直在做手写体识别的工作,其中有个很重要的loss那就是ctc loss,之前在文档识别与分析课程中学习过,但是时间久远,早已忘得一干二净,现在重新整理记录下 本文大量引用了- CTC Algorithm Explained Part 1:...

    最近一直在做手写体识别的工作,其中有个很重要的loss那就是ctc loss,之前在文档识别与分析课程中学习过,但是时间久远,早已忘得一干二净,现在重新整理记录下

    本文大量引用了- CTC Algorithm Explained Part 1:Training the Network(CTC算法详解之训练篇),只是用自己的语言理解了一下,原论文:Connectionist Temporal Classification: Labelling UnsegmSequence Data with Recurrent Neural Networ

    解决的问题

    套用知乎上的一句话,CTC Loss要解决的问题就是当label长度小于模型输出长度时,如何做损失函数。
    一般做分类时,已有的softmax loss都是模型输出长度和label长度相同且严格对齐,而语音识别或者手写体识别中,无法预知一句话或者一张图应该输出多长的文字,这时做法有两种:seq2seq+attention机制,不限制输出长度,在最后加一个结束符号,让模型自动和gt label对齐;另一种是给定一个模型输出的最大长度,但是这些输出并没有对齐的label怎么办呢,这时就需要CTC loss了。
    在这里插入图片描述

    输出序列的扩展

    在这里插入图片描述

    所以,如果要计算?(?│?),可以累加其对应的全部输出序列o (也即映射到最终label的“路径”)的概率即可,如下图。

    在这里插入图片描述

    前向和后向计算

    由于我们没有每个时刻输出对应的label,因此CTC使用最大似然进行训练(CTC 假设输出的概率是(相对于输入)条件独立的)
    给定输入xx,输出序列 oo 的条件概率是:
    p(πx)=yπtt,πLT p(\pi|x) = \prod y^t_{\pi_t}, \forall \pi \in L^{\prime T}
    πt\pi _t 是序列 oo 中的一个元素,yy为模型在所有时刻输出各个字符的概率,shape为T*C(T是时刻,提前已固定。C是字符类别数,所有字符+blank(不是空格,是空) ,yπtty^t_{\pi_t} 是模型t时刻输出为πt\pi _t的概率

    我们模型的目标就是给定输入x,使得能映射到最终label的所有输出序列o的条件概率之和最大,该条件概率就是p(πx)p(\pi|x),和模型的输出概率yy直接关联

    那么我们如何计算这些条件概率之和呢?首先想到的就是暴力算法,一一找到可以映射到最终label的所有输出序列,然后概率连乘最后相加,但是很耗时,有木有更快的做法?联系一下HMM模型中的前向和后向算法,它就是利用动态规划求某个序列出现的概率,和此处我们要计算某个输出序列的条件概率很相似
    比如HMM模型中,我们要求红白红出现的概率,我们就可以利用动态规划的思想,因为红白红包含子问题红白的产生,红白包含子问题红的产生,参考引用的图片。
    而这里我们以apple这个label都可以由哪些输出序列映射过去为例(T为8):
    其中的一种 _ _ a p _ p l e
    在这里插入图片描述
    当然其他也可以如 a p p _ p p l e,但是考虑到我们最终对输出序列的处理(两个空字符之间的重复元素会去除,字符是从左到右的,且是依次的),我们的路径(状态转移)不是随便的,根据这样的规则,我们可以找到所有可以映射到apple的输出序列

    在这里插入图片描述
    很明显可以看到这和HMM很像,包含很多相同子问题,可以用动态规划做

    定义在时刻t经过节点s的全部前缀子路径的概率总和为前向概率 αt(s)\alpha_t (s),如α3(4)\alpha_3 (4)为在时刻3所有经过第4个节点的全部前缀子路径的概率总和: α3(4)\alpha_3 (4) = p(_ap) + p(aap) + p(a_p) + p(app),该节点为p
    在这里插入图片描述

    类似的定义在时刻t经过节点s的全部后缀子路径的概率总和为前向概率 βt(s)\beta_t (s),如β6(8)\beta_6 (8)为在时刻6所有经过第8个节点的全部后缀子路径的概率总和: β3(4)\beta_3 (4) = p(lle) + p(l_e) + p(lee) + p(le_),该节点为l
    在这里插入图片描述

    总结

    在这里插入图片描述

    Focal CTC Loss

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    实现
    在这里插入图片描述

    参考论文 Focal CTC Loss for Chinese Optical Character Recognition on Unbalanced Datasets


    展开全文
  • 千层面CTC 千层面的连接主义者-时空分类。 来自CTC代码适用于千层面。 学分 由“ Mohammad Pezeshki”和“ Philemon Brakel”提供的代码-五月。 2015年-蒙特利尔学习算法研究所 鸣谢:Shawn Tan,Rakesh Var
  • CTC segmentation

    2021-01-08 11:23:40
    <div><p>Integrate <a href="https://arxiv.org/abs/2007.09127">CTC segmentation</a> into the ESPnet toolkit, as previously discussed in #2192, extending the previous <code>ctc_align</code> tool. ...
  • ctc进程 使用CTC和VAE的组合训练ASR系统,该系统允许进行非自回归的端到端预测。 安装 运行python setup.py develop 数据准备 使用来自Kaldi的DNN预先配置来预处理数据并从数据集中提取音频特征。 对于WSJ,您需要...
  • However the pure CTC Loss is actually equivalent to the CTC Loss on a CTC+Att. training. Are the decoding strategy radically different in both cases ? <p>Thanks and Merry Christmas !!</p><p>该...
  • CTC过滤器 c2ctc.com的筛选视图 目前,c2ctc.com网站将所有挑战条目显示在一个列表中,将来自不同性别和不同体重类别的人的条​​目组合在一起。 如果您只希望查看女性的参赛作品怎么办? 还是来自轻量级的男人? ...
  • speech_recognition_ctc(中文语音识别) 数据来源 代码说明 1-1-generate.py: 生成MFCC特征矩阵,方便2-2和2-3的代码调用(一次性载入内存) 2-2-ctc_speech_thchs30.py:使用清华语音库进行训练,输入为一次性加载...
  • TensorFlow CTC

    2019-07-26 22:00:44
    CTC是序列标注的重要算法,主要解决了label对齐问题 比如 参考: CTC原文 端到端的OCR:LSTM+CTC的实现 语音识别中的CTC算法的基本原理解释 一文读懂CRNN+CTC文字识别 ...
    展开全文
  • CTC算法

    2021-06-05 12:02:21
    CTC算法   在语音识别或文字识别任务上,输入的语音或图像与输出的文字很难构建精准的映射关系。形式化的描述如下:   CTC算法旨在解决输入与输出对应对齐的问题。 1、CTC对齐方法 直接去重   输入一段语音或...

    CTC算法

      在语音识别或文字识别任务上,输入的语音或图像与输出的文字很难构建精准的映射关系。形式化的描述如下:
    在这里插入图片描述
      CTC算法旨在解决输入与输出对应对齐的问题。

    1、CTC对齐方法

    直接去重
      输入一段语音或图像,RNN输出预测每个位置的预测单词的概率分布,例如输出ccaaat,可直接去重,得到cat。该方法简单,但容易将本来有的重复字母也去重了,例如helllooo去重为helo。

    引入空位符
      为了解决上述问题,CTC算法引入的一个新的占位符用于输出对齐的结果。这个占位符称为空白占位符,通常使用符号“ϵ\epsilon”(或“-”),这个符号在对齐结果中输出,但是在最后的去重操作会将所有的ϵ删除得到最终的输出。利用这个占位符,可以将输入与输出有了非常合理的对应关系。
      下面给出两个例子:

    在这里插入图片描述
    在这里插入图片描述
      本质上就是将空位符之间的字符串先去重,再去掉所有占位符,最后合并得到结果。

    2、损失函数

    • 如上图可知,得到正确的识别结果“state”有非常多的合理的序列。每一个序列都认为是想要的结果,因此我们希望将所有预测出能够转换为正确答案的序列的概率进行加和;
    • CTC基于一个假设,每个时间步之间是相互独立的,因此对于某一个预测序列,其概率表示为各个时间步预测结果的累乘,例如:
      在这里插入图片描述
      最后对所有的路径进行求和,即可得到groud truth的预测概率(目标函数)
    • 如果想要计算出所有路径,复杂度为指数级的(T个时间步,n个类别,所有路径共有n^T个)。因此采用动态规划思想(类似于隐马尔可夫模型中的前后向算法)

    2.1 训练阶段

      训练时,需要获得groud truth对应的模型预测的概率,并以此作为目标函数。由于groud truth对应有许多个预测序列(例如上图中给出了4种预测序列都能够得到正确的“state”结果),因此需要对所有可能的路径对应的概率进行求和。

      假设groud truth为“state”(记作 ll ),则在每个字符之间插入一个占位符(“-”),形成 ll'
    在这里插入图片描述
      假设RNN一共有12个时间步,则可以得到所有的可以转换为“state”的合法路径,这里的每一条路径记作 π\pi

    在这里插入图片描述

    • 前向算法:计算前t时刻,且在第t时刻字符为k时所有路径的概率之和,可得到动态规划的递推式:
      在这里插入图片描述
    • 后向算法:计算t-T时刻,且在第t时刻字符为k时,所有路径的概率之和,可得到动态规划的递推式:

    在这里插入图片描述
      因此所有满足条件的路径的概率之和表达为:

    在这里插入图片描述
      在对第t时刻预测为字符k的概率进行求导:

    在这里插入图片描述
    在这里插入图片描述

    2.2 预测阶段

    • 可以在每个时刻挑选概率最大的作为预测序列;
    • 也可以采用beam search

    在这里插入图片描述

    3、CTC的几个性质

    • 条件独立性:CTC做了一个假设就是不同时间步的输出之间是独立的。这个假设对于很多序列问题来说并不成立,输出序列之间往往存在联系。
    • 单调对齐:CTC只允许单调对齐,在语音识别中可能是有效的,但是在机器翻译中,比如目标语句中的一些比较后的词,可能与源语句中前面的一些词对应,这个CTC是没法做到的。
    • 多对一映射:CTC的输入和输出是多对一的关系。这意味着输出长度不能超过输入长度,这在手写字体识别或者语音中不是什么问题,因为通常输入都会大于输出,但是对于输出长度大于输入长度的问题CTC就无法处理了。
    展开全文
  • Pytoch CTC

    2019-10-20 21:43:09
    关于CTC 原理的介绍可参考 Sequence Modeling With CTC. 主要采用动态规划算法实现 Issue GitHub issue 目前比较广泛使用的CTC 有两个,一个是百度实现的wrap ctc, 另一个则是由pytorch 实现。 对于百度实现的CTC...

    背景

    关于CTC 原理的介绍可参考 Sequence Modeling With CTC. 主要采用动态规划算法实现
    在这里插入图片描述

    Issue

    GitHub issue

    目前比较广泛使用的CTC 有两个,一个是百度实现的wrap ctc, 另一个则是由pytorch 实现。
    对于百度实现的CTC(在pytorch 1.1.0下编译), 在我的实验中,使用Synth90K 训练,在IIIT5K上只能达到64%左右的精度,与论文有很大的差距,说明还是有问题。
    当使用pytorch 中CTC 时,目前CTC实现还是有问题,体现在版本不同结果不一致,精度不一致。
    1.2.0 中使用下面代码[a]

    #criterion / preds / text / pred_size / length are cuda tensor
    torch.backends.cudnn.enabled = False
    cost = criterion(preds, text, preds_size, length)
    torch.backends.cudnn.enabled = True
    

    而在1.1.0 版本中稍有差异[b]

    #criterion / preds are cuda tensor
     cost = criterion(preds, text, preds_size, length)
    

    并且两者精度不一样, 根据该issue 描述,[b] 版本结果可能比[a]高一个点.

    展开全文
  • CTC文件

    2012-12-23 16:53:40
    CTC文件图片格式
  • ctr-ctc -不再支持此工具,并且已停产。 请查看我们在Pytorch中使用的新库,该库在ICFHR 2018 READ数据集竞赛中使用,我们排名第二。 用法 如果没有它,您可能需要先创建一个python3环境,即: conda create -n ...
  • Warp-ctc的MXNet绑定 请按照在MXNet源代码中构建此绑定。 由于CTC丢失的MXNet实现无法很好地处理大词汇量,因此此回购协议为MXNet提供了绑定。 Python换行 class CTCLoss ( gluon . loss . Loss ): def __init__ ...
  • CTC Loss

    2021-03-28 17:33:53
    1、CTC 主要解决的问题 CTC Loss要解决的问题就是当label长度小于模型输出长度时,如何做损失函数。 一般做分类时,已有的softmax loss都是模型输出长度和label长度相同且严格对齐,而语音识别或者手写体识别中,...
  • ctc_example 从复制 一层LSTM对mnist数据集进行分类 这是网络结构: 我们可以使用CTC识别OCR
  • PyTorch bindings for Warp-ctc This is an extension onto the original repo found here. Installation Install PyTorch v0.4. WARP_CTC_PATH should be set to the location of a built WarpCTC (i.e. ...
  • CTC 讲解

    万次阅读 2018-06-06 12:44:59
    Connectionist Temporal Classificationhttps://sunnycat2013.gitbooks.io/blogs/content/posts/ctc/learning-ctc.html因为最近做了...在学习 CTC 的时候,也看了不少博客,但是我觉得讲的最好的还是原论文 Connect...
  • ctc安装

    2020-06-01 13:28:07
    cd warp-ctc git checkout ac045b6072b9bc3454fb9f9f17674f0d59373789 mkdir build; cd build cmake .. make cd ../pytorch_binding/ python setup.py install 报错则修改如下: 1. binding.cpp文件的92行修改成...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,737
精华内容 1,094
关键字:

ctc