论文解读 (01)

An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition

Baoguang Shi, Xiang Bai and Cong Yao

该论文提出了一种CRNN的架构,用于基于图像的场景文本识别(scene text recognition),该架构如下:
在这里插入图片描述

先使用CNN提取input image的特征图,然后所有特征图从左到右地将每一列元素串联,得到一个特征向量 x i x_i xi(即一帧,一个像素的宽度, i ∈ { 1 , . . . , T } i\in\left\{1,...,T\right\} i{1,...,T})。

原文摘要:This means the i-th feature vector is the concatenation of the i-th columns of all the maps. The width of each column in our settings is fixed to single pixel

将每一个特征向量 x i x_i xi整合成序列,CNN最终得到一个特征序列 x = ( x 1 , x 2 , . . . , x i , . . . , x T ) x=\left(x_1,x_2,...,x_i,...,x_T \right) x=(x1,x2,...,xi,...,xT)
在这里插入图片描述
CNN所提取的特征序列 x = ( x 1 , x 2 , . . . , x i , . . . , x T ) x=\left(x_1,x_2,...,x_i,...,x_T \right) x=(x1,x2,...,xi,...,xT)中的每一帧特征向量都对应则原始图像中的一块感受野(receptive field)。

*对于英文scene text而言,一共有26个字母 ( a − z ) \left(a-z \right) (az) .
将该长度为 T T T帧特征序列,将其输入至双向深度LSTM网络中,计算出每一帧的各个字母的概率分布。

特征序列 x = ( x 1 , x 2 , . . . , x i , . . . , x T ) x=\left(x_1,x_2,...,x_i,...,x_T \right) x=(x1,x2,...,xi,...,xT)在经过LSTM的过程可以抽象为如下映射:

在这里插入图片描述在这里插入图片描述
(由于英文有26个字母,再算上一个空白字符,故 n = 27 n=27 n=27
则LSTM的输出为:
在这里插入图片描述
y y y作为LSTM的输出序列,其与输入序列 x x x一样都有 T T T帧: y = ( y 1 , . . . , y t , . . . , y T ) , t ≤ T y=\left(y_1,...,y_t,...,y_T\right), t\leq{T} y=(y1,...,yt,...,yT),tT
对于每一帧输出向量 y t y_t yt的大小为 n × 1 n\times{1} n×1,输出向量 y t y_t yt中的每个元素为该位置上的对于的字母的概率。
y = [ P ( a ) P ( a ) ⋯ P ( a ) P ( b ) P ( b ) ⋯ P ( b ) P ( c ) P ( c ) ⋯ P ( c ) ⋮ ⋮ ⋯ ⋮ P ( z ) P ( z ) ⋯ P ( z ) P ( − ) P ( − ) ⋯ P ( − ) ] y=\begin{bmatrix} P(a) & P(a) & \cdots &P(a) \\ P(b) & P(b) & \cdots & P(b) \\ P(c) & P(c) & \cdots & P(c) \\ \vdots & \vdots & \cdots & \vdots\\ P(z) & P(z) & \cdots & P(z) \\ P(-) & P(-) & \cdots & P(-) \\ \end{bmatrix} y=P(a)P(b)P(c)P(z)P()P(a)P(b)P(c)P(z)P()P(a)P(b)P(c)P(z)P()
其中 P ( − ) P(-) P()表示该帧识别为空白字符的概率。
设字母集合为 L = { a , b , c , . . . , z } L=\left\{a,b,c,...,z\right\} L={a,b,c,...,z},则 y k t , k ∈ L y_k^t, k\in{L} ykt,kL表示第t帧被判为字母 k k k的概率。
对于字母集合 L = { a , b , c , . . . , z } L=\left\{a,b,c,...,z\right\} L={a,b,c,...,z},定义 L T L^T LT为所有可能的长度为 T T T的字母序列所组成的集合,设
∣ L ∣ \begin{vmatrix} L \end{vmatrix} L为集合 L L L的大小,则有:
∣ L ∣ = 26 , ∣ L T ∣ = 2 6 T \begin{vmatrix} L \end{vmatrix} = 26, \begin{vmatrix} L^T \end{vmatrix} = 26^T L=26,LT=26T
设加入空白字符后的新集合为 L ′ = L ⋃ { b l a n k } L' = L\bigcup{\left\{blank\right\}} L=L{blank},则同样有:
∣ L ′ ∣ = 27 , ∣ L ′ T ∣ = 2 7 T \begin{vmatrix} L' \end{vmatrix} = 27, \begin{vmatrix} L'^T \end{vmatrix} = 27^T L=27,LT=27T

对于序列集合 L ′ T L'^T LT中的任一个序列 π \pi π而言,即 ∀ π ∈ L ′ T \forall{\pi}\in{ L'^T } πLT,它都是一个 T T T帧长度的序列,其每一帧为 L ′ L' L中27个字符的其中一个, 如果基于LSTM模型输出的各帧字母的概率分布序列 y = ( y 1 , . . . , y t , . . . , y T ) , t ≤ T y=\left(y_1,...,y_t,...,y_T\right), t\leq{T} y=(y1,...,yt,...,yT),tT来计算 L ′ T L'^T LT 中所有可能的字符序列 π \pi π的概率,则其概率为为:
P ( π ∣ x ) = ∏ i = 1 T y π t t , ∀ π ∈ L ′ T P(\pi|x) = \prod_{i=1}^T y_{{\pi}_t}^t, \forall{\pi}\in{ L'^T } P(πx)=i=1Tyπtt,πLT

假如对scene text image “hello”的最终识别得到的序列为“_hh_e_l_ll_oo”,需要将该序列中重复的字母以及空白字符"_"去除,故引入一个“去重去空”函数映射: B \mathscr{B} B ,即:
h    h e    l    l l    o o → B h e l l o h\;h e\;l\;ll\;oo \xrightarrow{\mathscr{B}} hello hhelllooB hello
l = B ( π ) l=\mathscr{B}(\pi) l=B(π), l l l为去重去空后的字符序列, π ∈ L ′ T \pi\in{L'^T} πLT为未去重去空的字符序列, l l l可以是一个或者多个 π \pi π B \mathscr{B} B映射后的结果。
因此基于LSTM模型输出的各帧字母的概率分布序列 y = ( y 1 , . . . , y t , . . . , y T ) , t ≤ T y=\left(y_1,...,y_t,...,y_T\right), t\leq{T} y=(y1,...,yt,...,yT),tT,某个字符序列可能出现的概率为:
在这里插入图片描述

*转录的定义:从LSTM输出的各帧字母的概率分布序列 y = ( y 1 , . . . , y t , . . . , y T ) , t ≤ T y=\left(y_1,...,y_t,...,y_T\right), t\leq{T} y=(y1,...,yt,...,yT),tT,判决出最终输出字符序列结果的过程,字符序列结果是经 l = B ( π ) l=\mathscr{B}(\pi) l=B(π)去重去空的结果。

1. 对于无词典的转录

对于最终输出的字符序列没有范围的限定,故最终识别的结果可以直接取 y = ( y 1 , . . . , y t , . . . , y T ) , t ≤ T y=\left(y_1,...,y_t,...,y_T\right), t\leq{T} y=(y1,...,yt,...,yT),tT的各帧中概率最大的字母所组成的序列的 B \mathscr{B} B映射,即:
l ∗ = B ( a r g m a x π P ( π ∣ y ) ) l^* = \mathscr{B}(\rm{argmax}_{\pi}P({\pi}|y)) l=B(argmaxπP(πy))

2. 对于有词典约束的转录

对于最终输出的字符序列(转录的结果)必须存在于词典当中。
<1> 设词典集合为 D D D,对于 D D D中所有的序列 l l l,可以取是的 P ( l ∣ y ) P(l|y) P(ly)最大的序列作为最终的识别结果,即:
l ∗ = a r g m a x l ∈ D P ( l ∣ y ) l^* = \rm{argmax}_{l\in{D}}P(l|y) l=argmaxlDP(ly)
但是这种做法需对整个词典遍历一遍,耗时巨大。
<2> 一般情况下,无词典转录所得到的结果 l ′ l&#x27; l已经较为接近真实结果了,故可以用BK_tree算法寻找出 l ′ l&#x27; l在词典中与之最邻近的 δ \delta δ个字符序列,取其中概率 P ( l ∣ y ) P(l|y) P(ly)最大的作为最终识别结果 l ∗ l^* l,即:
在这里插入图片描述

以上即为该论文模型对scene text的前向传播原理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值