图文可以参考
crnn就是卷积加lstm加ctc,cnn用于提取特征,lstm用于提取序列特征,ctc用来解决训练时标签对齐问题,假如没有ctc,经过lstm输出的维度为w×n×c,其中w为输入进lstm的特征图宽度,n为batch size,c为类别数,如果直接以softmax输出,我们需要为每一个时刻的序列都标注一个标签,而每一个序列在原图上会对应一个区域,这样我们会为一个图片标注w个标签,我们在标注标签的时候还需要计算每一个序列在原图对应的区域,是相当麻烦的,ctc提出了一种计算方法,引入blank,如果输出序列中相邻的字符相同,那么就合并,如果相同但是中间有个空白符,就保留,这样就会输出一个标签序列,即为P(Π|x),意思是在x的条件下输出为Π的概率,在ctc中就是每个序列的预测概率乘积,但是输出序列可能会和标签序列的长度不同,ctc计算思想就是,计算所有由Π到达标签l的的概率总和的-ln,简单来说就是-ln(p(l|x)),l是标签,x对应lstm输出。
这里我并没有去解释Π怎么变成l的,实际中会用到动态规划的算法,求编辑距离,比较麻烦,这些足够应付面试提问了
关于crnn中的ctc
最新推荐文章于 2022-10-24 13:33:21 发布