INTERSPEECH 2017系列 | 语音识别之语言模型技术

随着iPHONE 4S中siri的出现,越来越多的民用语音识别出现在大家眼前。现在市面上各种语音输入法、语音机器人层出不穷。下图是去年阿里云栖大会,基于iDST语音技术的ET机器人。现在市面上漫山遍野的智能音箱大战,其中也包含语音识别技术。


语音识别技术,通俗讲叫语音转文字,speech-to-text,是将观测得到的语音输入信号,转化成与之对应的文本序列的过程。传统语音识别系统如下图所示,包括特征提取、声学模型、语言模型和解码器四部分,通过特征提取将原始音频信号分帧加窗,转化成有利于机器进行识别得声学特征,经由声学模型获得该帧的声学模型得分,配合语言模型获得对应的语言模型得分,通过解码器在可能的文本空间中搜索,获得最可能的文本序列,作为结果输出。这里语言模型的作用是在路径搜索过程中辅助声学模型,判断文本路径的可能性。其中一个作用是同音消歧,即找到相同发音的目标文本序列。

2 语言模型

语言模型,顾名思义,对语言进行建模的模型。语言表达可以看作一串字符序列,不同的字符序列组合代表不同的含义,字符的单位可以是字或者词。语言模型的任务,可以看作是给定字符序列,如何估计该序列的概率,或者说,如何估计该序列的合理性。

P(上海 的 工人 师傅 有 力量)>P(上海 的 工人 食腐 有 力量)

拿这句话做个例子。比如到底应该是“工人师傅有力量”,还是“工人食腐有力量”,哪句话更“合适”。我们容易判断左边这句的概率大一点,工人师傅。于是我们希望通过语言模型的建模,可以给出符合人类预期的概率分配。就像这句,工人师傅的概率,大于工人食腐的概率。

根据条件概率的公式,我们很容易推出一句话的概率应该符合各个词条件概率的连乘,也就是链式法则。比如“上海的工人师傅有力量“,通过分词分成上海、的、工人、师傅、有、力量六个词,于是这句话(不考虑句首句尾)的概率就可以根据链式法则计算了,上海的概率,乘以”上海“后面跟”的“的概率,也就是上海条件下”的“的概率,再乘以”上海的“后面跟”工人“的概率,再乘以”上海的工人”后面出现“师傅“的概率,以此类推,一直到”上海的工人师傅有”,后面跟力量的概率。对于这种条件概率,也很容易通过朴素地计算词频的方式计算出来。然而我们发现,实际计算中,当句子比较长的时候,可能的组合数实在太多,实际操作中难以进行计算,于是人们就开始想着怎么简化问题,比如马尔可夫假设。

马尔可夫假设是,大致描述一下,给定时刻t的状态的条件下,则时刻t+1的状态与t-1及之前时刻的状态条件独立。比如一阶情况,假设在给定W(k-1)的情况下,W(k)和W(k-2)及以前的状态(也就是词),条件独立。我们可以理解为W(k)只与W(k-1)相关,计算的时候不考虑W(k-2)的影响,只与前面一个词有关,于是事情就变得简单了,以前计算”上海的工人师傅有”这一大长串后面出现”力量”的概率,很麻烦,现在只需要计算”有”后面”力量”的概率。

对于高阶版本,也是一个道理,比如假设只与前面N-1个词有关,于是W(1)到W(k-1)这一长串后面跟W(k)的概率转化成了W(k-N+1)W(k-N+2)到W(k-1)后面跟W(k)的概率,就只需要计算一个N元组W(k-N+1)到W(k)的词频,以及一个N-1元组W(k-N+1)一直到W(k-1)的词频,两者作比求得。这种通过马尔可夫假设简化计算、通过N元组词频计算得到条件概率的模型,叫做N元组模型,或者N元文法模型,英文N-Gram Model。

总结一下N元文法模型:通过马尔可夫假设简化了模型结构和计算,通过数数的方式计算,通过查找的方式使用。它计算简单(数数),计算速度快(查表)。有超过三十年的历史,性能稳定可靠,经得起检验。但限于词频计数的计算,它比较稀疏,依赖平滑算法,但对于没见过的组合(unseen data)它的泛化能力还是不太好;而且限于马尔可夫假设,其可用的历史信息有限,只与前N-1个词有关,再长就影响不到了。前段时间深度学习火了几年,于是大家都在想能不能用神经网络做点什么,于是人们开始尝试用神经网络替代N元文法模型。

首先是全连接神经网络,最早经得起检验的模型。内部实值节点,连续空间建模,于是比数数流拥有了更好的泛化性,训练得到Projection层作为词向量,也被发现具有不错的语义相关性。但FCNN, fully-connected NN全连接神经网络,结构并没有比ngram模型用更长的历史信息,依然跟前面N-1个词相关。于是大家就开始用理论历史信息无限长的递归结构的RNN,递归神经网络,来对语言进行建模。理论上无穷长的历史信息,实际上人们通过LSTM,long short-term memory或者GRU这种改进结构来弥补梯度衰减的问题,于是获得了还挺明显的提升。实际应用的时候有以下几个问题吧,节点数多,除了占空间,就是训练和测试的计算量都很大,然后对训练数据也比较敏感。

词表的大小是影响模型的关键因素,比如一个100w词的词表,对应100w的输入/输出节点,如果recurrent层有1000个节点,那光输出层的权重就有10的九次方量级,算起来可是个大工程,于是压缩词典尺寸成了一个最直接的解决方案,很多时候压缩词典尺寸会造成性能损失,其实真正制约速度性能的主要是输出层节点,所以一个折中的解决方案就是仅压缩输出层词表,输入选用一个大点的词表。

除了直接压缩词表,也可以对词表进行聚类,比如100w词表聚成1000个类,每个类别1000个词,于是就把100w的输出变成了2000的两个softmax,大幅提升了速度;第三种方法是瓶颈层,就是输出或输入增加瓶颈层来削减节点数量,但输出softmax的计算量不减,而且节点数过少对性能还是有很大影响的,分层输出Hierarchical Softmax是个树状结构,通过对输出层类别进行树状结构的聚类(或者叫编码),这样只有标签节点对应的路径需要计算,但CPU上实现还好,这种结构在树节点串行运算,不太适合GPU这种低主频高并发的计算架构,而且同数据量情况下性能衰减还是挺严重的。前段时间刚刚出来的文章,LightRNN,通过类似聚类的方式,利用embedding的思想,把词表映射到一个实值矩阵上,实际输出只需要矩阵的行加矩阵的列,计算量大概也能开个方。和节点数多一起造成计算量大的一个原因就是softmax输出,需要计算所有的节点求个和,然后得到分母。若是这个分母能保持一个常数,实际计算的时候就只算需要的节点,在测试环节就快的多了。于是就有了正则项相关的方法,variance
regularization,如果训练速度可以接受的话,这种方法在基本不损失模型正确性的情况下可以大幅提升前向计算速度;如果训练的时候也想提速,还可以考虑基于采样,sampling,的方法,比如NCE、IS importance sampling、black sampling等,本质上就是说,在训练的时候不计算全部节点,只计算正样本(也就是标签为1的节点),以及部分通过某种分布采样的到的负样本,避免高输出造成的计算缓慢。速度上提升还是很明显的。

3 评价指标

语言模型一般通过混淆度,英文Perplexity,简称PPL或者PP值,来评价语言模型性能。

首先我们知道熵,可以表达一组分布的最短平均编码长度,比如一个标签的值符合一组分布p1 p2 pn,出现第i个值得概率是pi,那如果我们对第i个值按负的以二为底pi的对数个bit进行编码,则可以得到最短平均编码长度。

现在有一篇文档,或者说我们的测试集,S,每一句是Sj,我们可以根据模型算得其总概率为P(向量S),于是要达到理论最优,其编码位数应该是负的以2为底P(S)的对数,我们除以总词数Nw,得到文档的平均最短编码长度。为了计算简便,以此二的平均编码位数次方,作为PPL,展开之后就是最下面的公式,每个词概率连乘后,开Nw次方。一般几十几百不等,偶尔上千吧,对应平均编码位数在6到10这一块。编码位数越少,对应匹配度越高,也就是PPL越小,我们认为模型越好

因为是语音识别中的一部分,为语音识别服务,所以最终的评价指标,往往是语音识别常用的评价体系,叫做符号错误率。错误包含三种,插入错误,删除错误,替换错误。通过找到最小化三种错误的一组匹配,来计算实际的错误率,是三种错误总数,除以总符号数。例如上面这个例子,上海的工人师傅有力量,被识别成了上海工人食腐有的是力量,这里左边的红字“的”,属于删除错误;“师傅”被错误识别成“食腐“,属于替换错误;多出来的右边的”的”、“是”,属于插入错误。错误一共有2+1+2共5处,原句10个字,所以错误率是50% 。对于中文,我们一般使用字错误率,对于英文,我们一般使用词错误率。

4 会议前沿

接下来是Interspeech2017会议的,语音识别中语言模型的研究进展。分为以下四个方面,模型优化相关的、数据和其它信息自适应相关的、解码过程相关的,以及分析类的文章。

首先是模型优化相关的,直接从模型入手,包含以上这几篇文章,比如使用更新的模型结构,残差网络、更大广度的CNN、双向RNN等;或者更好的训练方式,比如基于Batch的NCE训练、谷歌的稀疏非负矩阵语言模型SNM LM参数估计等。

然后是adaptation,也就是自适应相关的文章。实际业务中我们也会碰倒类似问题,比如我们用大量数据训练了一个通用模型,这是有业务需求说,我们需要做某一个domain的识别,可不可以帮我们优化一下,这个domain的数据不是很多。

这种时候就需要自适应相关的方法了,将通用的大模型,通过少量数据,或者其它信息(比如这里有knowledge graph的),自适应到某一特定领域。

第三部分是解码部分。如何将各种花样地语言模型用于语音识别。比如传说中的NNLM,基于神经网络的语言模型,刚刚说的全连接NN或者RNN结构的语言模型,其计算量是远大于N-Gram这种可以查表操作的模型的。语音识别的解码工作是一个很复杂的搜索,有很大的计算量和很高的实时性要求,如果每一次查表操作都替换成一次神经网络输出的计算,不好好优化一下可能会非常慢。这里就有一些语言模型解码这块的优化工作,包含以上三篇文章。

最后是一篇分析类的文章,分析现在的语言模型技术,和人类之间的差距。文中估计的人类对于一般文本的理解,对应的PPL在14左右,与目前语言模型技术有较大差距,预测至少需要10-20甚至更多年,机器才能在语言模型领域达到人类的认知。

总览完这些,我们就挑两篇文章一起看一下吧。

第一篇,题目是Empirical
Exploration of Novel Architectures and Objectives for Language Models,对比了LSTM-RNN和文章提出的一种广度更大的CNN,在单任务传统交叉熵(也就是CE)准则下和多任务学习(multitask learning)下的性能对比。文章的contribution有两点,尝试了一个更大广度的CNN,一个是用了multitask learning。

是LSTM-RNN的两个基线系统,包括word-level和character-level两个建模尺度。模型比较基本,对于word-level,embedding上面两层LSTM,对于character-level,尺度更细,于是加了一层LSTM以更好地刻画。输出都是word。两种尺度和LSTM-RNN的建模之前的工作中都有,所以只算是基线系统,这里没有创新。

这里是作者propose的word-level 的DCC。这里为了增加对更长时的信息进行建模,使用了一个更大时间尺度的CNN,这里为了建模的效果,它没有采取一整个大卷积窗,而是分层合并的方式,比如左边这个例子,不是传统的对wanted to be
able这四个单词一次卷积,而是分为wanted to和be able两个组,分别卷积,然后再卷一层的方式。右边做了一点小改进,就是又增加了一级1x2的卷积,word-DCC加一个additional的卷积层。传统CNN在英文上往往采用character-level的建模,以发挥CNN的优势,对较细的尺度进行建模,同时利用窗长和多层卷积的优势,在保证计算效率的前提下,提高时间尺度的长度;这里更加侧重时间尺度的长度,而不是更细的粒度。

第二个contribution是用了multi-task learning。很经典的训练策略,通过加入额外的secondary task,来提升primary task(也就是主task)的性能。当然很多时候两个task互相帮助。合并的优化目标按照左边这个公式,两个交叉熵准则按权相加,按照两个task的相关性选择一个合适的lamda参数。新的task意味着额外的信息量,同时也是一种正则,对于抑制过拟合有帮助。对于数据有限的任务,multi-task
learning尤为有效。这里采用了单词的类别分类作为一个task,类别是灰度聚类的到的,先聚类,再把聚类结果用于分类。没有直接增加人为设计的准则,自己对自己提升,也可以看成一种boost。

实验在三个数据集展开,分别是Broadcast News、switchboard和callhome三个语音识别的常用8k采样英文数据集。其中swtichboard和callhome都是电话对话,放在后面说,我们先来看broadcast news。

上表是混淆度PPL,下表两种不同AM情况下的WER。左边表中word-level LSTM RNN明显好过其它模型,其中Multitask
learning训练的LSTM-RNN获得最低的PPL96.47;其次是character-level的LSTM,最后是CNN,其中多一个卷积层的Word-DCC+C,就是最下面两个结果,比没有这个卷积层还是有点用的。Multitask
learning在这个量级的数据下面还是有一定帮助的,或多或少都看到一点提升。

这个结果也是比较符合预期,LSTM-RNN作为经典的模型,在大多数情况还是非常优异的,只是因为其recurrent结构,它的训练速度相比CNN还是慢了一些。上面的表格是语音识别的词错误率结果,使用了两种声学模型,一种是差一些的GMM模型,一种是比较好的CNN声学模型。结果一样符合预期,word-level的LSTM-RNN + multitask learning训练获得单模型最优,与CNN及character-level LSTM合并后又小幅提升了一点。

第二个实验在两个电话对话数据库上进行,就是刚刚提到的switchboard SWB和 callhome CH。相比上一个实验测试不同的AM,这个实验加强了基础LM,使用了N-Gram模型+一个modelM,一个准神经网络模型,这里不详述了。对于这种更强的基线LM,几个模型的相对提升下降了一些,但总体趋势与之前一致,还是word-level LSTM-RNN +
multitask learning效果最好。右边的WER在两个测试集上进行,趋势基本一致,三个模型融合相比最优的单个模型又小幅提升了一点。

这里个人觉得本文的这种CNN应该尝试character-level的建模,发挥CNN的优势,和LSTM长时信息形成互补。

刚刚是一篇模型结构、训练准则的探究,实际应用中,之前说过,基于神经网络的语言模型比基于查表的N-Gram模型计算量大了很多,在实际系统中很难实时运算,往往采用重打分的模式做rerank。这里有一篇工程性强一些的文章,针对几个影响速度的点,结合了几种优化方式,做到了NNLM的准实时one-pass解码。特色在于用N-Gram模型查表的计算量,做到NNLM的计算。

Contribution包含以下几点,加速100倍以上,做到准实时计算;

其中使用了NCE训练的unnormalized NNLM解决输出问题;

通过预计算存储和缓存解决隐层节点输出;

通过PReLU和Maxout激活函数替代tanh。

几个技术都不是新技术,但本文把它们用到一起,达到了比较好的效果。

模型结构如下图所示,n-1个词的输入,每个输入按1-hot编码,通过shared weights映射到E维的embedding。n-1个E维的embedding拼在一起作为隐层输入,经过隐层线性映射到维度H,这里的affine映射耗时(n-1)*E*H;隐层节点通过双曲正切函数tanh的映射,耗时T_n,也就是H个Tanh的计算时间;输出层共计V个节点,也就是输出词典的size是V,包括一个H*V的affine projection和一个节点数为V的softmax计算。

下面我们看看这篇文章是怎么一点一点压缩计算量的。首先是对于hidden layer的affine projection计算,一个(n-1)*E维映射到H维的矩阵乘法。这个输入特征(n-1)*E维,可以看作n-1个E维的子矩阵,每个矩阵分别有一个E->H的映射,届时再把这n-1个H维的向量加在一起,就是整个过程了。而这个过程中,词表是有限的,E维向量就是有限的,n-1个位置的E->H的映射也就是有限的,我们本来要存V个E维的embedding,V是词表size,这里可以认为需要存储V个(n-1)*H维embedding就可以免去刚刚说的E->H的映射了,于是隐层affine计算的时间就从n-1乘以E乘以H,降低到(n-1)*H次加法运算

当然,存储成本从V*E,变到V * n-1 * H,增加了n-1 * H / E倍。比如H是1024,E是128,n是5,则增加了4*8=32倍。

解决完affine
transform,第二步就是激活函数。我们知道双曲正切函数,就是tanh函数,泰勒需要展开到好多阶,单CPU计算代价还是比较大的。文章中替换成了PReLU(Parametric ReLU),一个参数可学习的ReLU函数,以及尝试了maxout。两个激活函数计算量都是比较低的,这样激活函数的时间Tn也就压缩到kTmax(H),k个H维向量取max的时间。

第三步是cache策略,对于一组n-1个词的词序列 w1 w2 w(n-1),当我们计算过它的值之后,可以把输入的词序列和输出的概率都存下来放到缓存中,当计算的时候就可以直接拿出来用,避免复杂的计算。这也是常见的工程技巧,假设命中率为1-p,则计算时间可以进一步压缩为p倍

我们的目标是计算一个词序列的概率,其实对于每个输入词,我只需要计算它后面一个词的输出概率,而不是全词典的输出概率。但softmax函数,需要计算分母,用于归一化整个概率和为1,所有节点的值都需要被计算一遍。对于较大的词典,也就是V较大的时候,比如100w,计算量还是很大的。这里我们把分母的求和看做一个整体Zc,我们想要是Zc是个常数就好了。

本文引入了Noise
Contrastive Estimation,噪声对比估计,NCE的训练准则,通过对噪声(负样本)进行采样,把一个多类分类问题,转化成每个类别的二类分类问题。一方面训练的时候不需要计算全部输出,只需要计算采样的噪声和目标节点,节省训练开销;一方面测试的时候,分母Zc可以趋近于一个常数,从而只需要计算目标节点的输出,节省测试开销。

于是通过NCE训练,输出层计算量也压缩到只有H量级了。系统中每个步骤的计算,都如下表压缩到一个很低的量级。

下面是实验结果。这里用的数据集跟之前比较相似,用了switchboard和broadcast news两个测试集,分别记作swb和bn。首先看看识别率。对于上表,用的是6-元文法模型,识别率分别从7.0降到6.6,以及10.9降到10.0,降幅都是很乐观的,识别率性能有保证。对于ModelM,提升小一些,但也相对比较稳定。

性能问题不大,这篇文章主要看速度。首先是表4,precompute策略和cache策略,分别加速50倍和15-50倍。其中Broadcast news和switchboard用的embedding数不一样,所以加速倍数不一样。但总体都有不少于100倍的提升,switchboard因为embedding数较大,更有225倍速的提升。

然后表5是激活函数的提升,maxout在保证性能的前提下提速1.9倍,prelu性能稍降,6.6到6.7,但提速3.6倍,届时需要tradeoff一下;

表6是cache的memory消耗,显然这里对cache的消耗还是大幅提升的,这里cache的size和命中率也是需要tradeoff一下;

最后表7是整体的提升,将5.62的RTF,real time factor,实时率,整体优化到1.04,趋近ngram的1.01。实际系统中ngram模型的rtf还可以继续优化到远小于1,对应的NNLM也是可以提供one-pass实时识别服务的。

4 总结
本届INTERSPEECH的论文中,语言模型的文章有很多。对这些文章的调研有助于了解目前实际产品中的性能水平,技术细节,很有借鉴意义。通过本文的介绍,希望大家能对语音识别中的语言模型技术有一定的了解。

注:
下期主题:语音合成技术
时间:11月15日晚7:30
嘉宾:阿里巴巴iDST算法专家,卢恒
报名链接:

时间: 2024-08-31 01:54:12

INTERSPEECH 2017系列 | 语音识别之语言模型技术的相关文章

INTERSPEECH 2017系列 | 语音识别技术之声学模型

1.语音识别技术简介 1.1 什么是语音识别        语音识别(Automatic Speech Recognition,ASR)所要解决的问题是让计算机能够"听懂"人类的语音,将语音转化成文本.语音识别是实现智能的人机交互的前沿阵地,是完全机器翻译,自然语言理解等的前提条件.语音识别的研究起源于上世纪的50年代,此后经过无数学者坚持不懈的努力,从最初的基于孤立词的小词汇量语音识别系统到目前的基于大词汇量的连续语音识别识别系统,语音识别技术取得了显著的进展.特别是近年来随着大数据

INTERSPEECH 2017系列 | 远场语音识别技术

1. 远场语音识别技术简介 1.1. 什么是远场语音识别 远场语音识别是语音交互领域的重要技术,目的在于在远距离条件下(通常1m-10m),让机器能够识别人的语音.该技术在智能家居(智能音箱.智能电视等).会议转录.车载导航等场景都有重要的应用.远场语音识别通常采用麦克风阵列的方式收集语音,由于真实环境中存在大量的背景噪声.多径反射和混响,甚至是人声干扰,导致拾取信号的质量下降,通常远场语音识别准确率与近场语音识别相比会有大幅下降. 1.2. 远场语音识别系统 远场语音识别系统通常包含前端信号处

INTERSPEECH 2017系列 | 语音合成技术

1.2 语音合成的应用场景和研究范围 语音合成技术是人与计算机语音交互中必不可少的模块.从地图导航(例如高德地图高晓松语音导航),语音助手(Apple Siri, Google Assistant,微软 Cortana, Nuance Nina), 小说.新闻朗读(书旗.百度小说), 智能音箱(Amazon Alexa, 天猫精灵, Google Home,Apple Pod Home 等 ),语音实时翻译,到各种大大小小的客服,呼叫中心,甚至机场广播,地铁公交车报站都少不了语音合成技术的身影.

预告:语音交互前沿技术分享——INTERSPEECH 2017系列

今年的INTERSPEECH于8月20日至24日在瑞典的斯德哥尔摩顺利召开,共历时5天.据了解,本次大会共有839篇论文被大会接受,分成109个session.众多的高校研究机构和著名的公司纷纷在本次会议上介绍了各自最新的技术.系统和相关产品,而阿里巴巴集团作为钻石赞助商也派出了强大的阵容前往现场. 首期分享将在10月25日(本周三)晚上7点半正式开始,欢迎关注语音识别技术的同学报名参与(报名请戳这里)!. 直播主题:语音识别技术之自适应技术 内容简介:语音识别技术是将语音转换成文字的技术,而说

大牛讲堂 | 语音专题第二讲,语言模型技术

雷锋网(公众号:雷锋网)注:曹立新,地平线机器人语音算法工程师.2011年7月毕业于哈尔滨工业大学计算机科学与技术专业,曾任百度语音资深研发工程师.负责百度超大语言模型训练,语音交互技术研发以及语音搜索.语音输入法.语音助手等产品的语音识别优化.现在地平线负责语音识别.自然语言处理等相关技术算法研究. 语言模型技术 语言模型技术广泛应用于语音识别.OCR.机器翻译.输入法等产品上.语言模型建模过程中,包括词典.语料.模型选择,对产品的性能有至关重要的影响.语言模型的建模需要利用复杂的模型公式进行

报名还来得及!运维人的痛点,以及如何转型,尽在今晚——2017运维/Devops在线技术峰会

策划.准备和等待了两个月,2017运维/Devops在线技术峰会直播的"正日子"终于来了. 怀着激动,以及期待大家有所得的心情,我们将和你一起度过这个难忘的"升级"之晚. 今晚的日程 当然,如果你现在还没报名,现在还来得及--这是大会官网,戳此进入报名 报名用户,可以在会后第一时间得到所有学习资料,包括全部视频和PPT. 以下是本次在线技术峰会的背景: 近几个月,运维事件频发.从"炉石数据被删"到"MongoDB遭黑客勒索",

WINPASS静脉身份认证系列产品最大的技术优势是安全性

很长一段时间里,应用最广泛也最为公众了解的生物识别身份认证技术是指纹识别身份认证.随着更多的指纹产品进入寻常百姓家,安全问题逐渐引起大家的关注.为了解决大家对安全问题的担忧,智冠股份通过对生物识别身份技术的进一步了解,发现日本80%的ATM都使用了指静脉识别身份认证装置取代密码输入.既然指静脉身份识别技术能在日本金融领域大规模应用,那是否证明了这项技术具有高安全性呢?智冠股份通过进一步的调查,确定了这一事实并将静脉识别技术引入国内.智冠股份从创业之初的进军电子政务领域到2010年涉足生物识别技术

2017 VQA Challenge 第一名技术报告

本文讲的是2017 VQA Challenge 第一名技术报告 1. 前言 之前听 Chris Manning 讲过一个 talk,说他们复现别人的 paper,按照别人的算法写,做到了比原本那篇 paper 高了 10 个点的结果.还有听认识的同学说,有一年因为算法的 performance 不够好论文被拒了,第二年重新回过去跑那个代码,随便调了调,performance 就比当时他们提交的时候高了很多. 我们做玄学的,好的 idea 固然重要,然而一个好的 idea 可能带来的效果的提升还不

【视觉目标跟踪最高峰】VOT Challenge 2017 亚军北邮团队技术分享(附代码)

视觉跟踪领域国际顶级赛事 Visual-Object-Tracking Challenge (VOT) 2017年结果出炉,结合传统滤波及深度学习的方案取得最佳成绩.本文是第二名北京邮电大学代表团队的技术分享.他们基于滤波的框架,抛弃传统特征,只使用CNN特征,减少了特征冗余,缓解了模型过拟合,使追踪器在速度和精度上都有不小的提高.代码分享链接:https://github.com/he010103/CFWCR.git 随着深度学习在计算机视觉方面大放异彩,近几年物体追踪也得到了飞速的发展.物体