文本检测(一)

此篇博客记录Scene text detection深度学习相关论文笔记。
Ref:Scene Text Detection and Recognition: The Deep Learning Era
世界没有一定…才能…,just do it.

Method 1

FCN

是一种semantic segmentation深度学习方法。

特点
  • 使用不同的backbone networks进行实验
  • 卷积化,将fully connected layers全部换成卷积,以使得可以处理任意size的输入
  • 使用固定参数(FYI:bilinear interpolation且学习率为0)的transposed convolutions实现将最终的输出还原回input尺寸,通道维表示各个类别的预测
  • 使用skip architecture进行fuse coarse information and fine information提高IU值,分别有FCN8s、FCN16s、FCN32s三种架构。其中FCN32s最终输出由最后的卷积层32 X upsampling得到;FCN16s是使用最后的卷积层2 X upsampling加上pooling 4的外加一层预测卷积的输出,然后进行16 X upsampling得到FCN16s的最终输出;FCN8s是使用FCN16s的1/16的加和的2 X upsampling加上pooling 3的外加一层预测卷积的输出,然后进行8 X upsampling得到FCN8s的最终dense预测输出。显然FCN8s获得最好效果,相对FCN16s提高很小,所以作者并没有继续使用FCN4s
  • end-to-end training
  • fine-tune
缺点

对于fine detail 处理并不是很好。

深入浅出SVM

在DSN论文中使用了SVM,SVM在DL也有应用,之前并没有怎么深入理解,趁着这篇论文的契机,重新捡起来。this section参考了李航的《统计学习方法》。

some mathematic conceptions

从数学角度谈谈自己对超平面的理解。

在数学中,我们可以通过很多方式表达二维平面的直线,例如斜截式、一般式等,对于一般式,我们也能够写成向量的形式
a x + b y + c = 0 W X + C = 0      i n   v e c t o r   f o r m ax+by+c=0 \\ WX+C=0 \ \ \ \ in\ vector\ form ax+by+c=0WX+C=0    in vector form
可以证明其中的 W W W实质上表示的是垂直于直线的向量。
对于三维空间,亦是如此,可以设定面内的某一点,作出所有的面内向量,很方便地就可以证明 W W W是三维空间面的法向量。
在更高维空间里面,没有我们一般意义上的直线或者平面,我们称 W X + C = 0 WX+C=0 WX+C=0为超平面,超平面的概念和平面、直线的概念均一样,都是指满足 W X + C = 0 WX+C=0 WX+C=0的所有 X X X组成的无限集合。只是在可视化方面,二维和三维很容易地展示出来它们的几何意义,我们能够直观地认识到什么是法向量什么是平面等,而四维或者更高维没有办法像二维三维一样直观地展示出来它们的几何意义,但是抛开几何意义或者说是视觉含义,在数学层面上它们是一致的,都表示一个无限点集合,至于法向量的含义也进行了高维拓展,表示垂直于超平面的高维向量。安利一个很好的数学可视化网站mathematics visible.
进一步,我们可以很容易地将 W W W单位化,这样就可以认为 W X WX WX表示 X X X在法向量方向上的投影,当带符号的投影的长度等于 C C C的相反数时,则表示点刚好在超平面上。称 C C C为截距,在三维空间,很容易理解,我们是能够用投影去衡量点在平面的什么位置。伴随着这样的前提条件,我们可以调整点距离原点的位置和调整点到原点的向量与法向量的角度来改变点在平面的位置。在实际中,我们可以取法向量方向一侧为正类,反向为负类。

各种SVM

有三种类型的SVM,由简单到复杂。

  • linear support vector machine in linearly separable case with hard margin maximization
  • linear support vector machine with soft margin maximization
  • non-linear support vector machine with kernel method and soft margin maximization
函数间隔和几何间隔
  • functional margin: ∣ W X + C ∣ \left|WX+C\right| WX+C可以衡量点到平面的距离,如果值越大表示距离越远,表示分类预测的置信度越高(只有 W W W为单位向量的话,那么这个距离就等于 ∣ W X + C ∣ \left|WX+C\right| WX+C)。再者 y y y的符号和(WX+C\right)符号是否一致能够表示分类的正确与否,基于这两点就可以定义functional margin为 y ( W X + C ) y\left(WX+C\right) y(WX+C).它表示了预测的正确性和预测的确信度,函数间隔对于整个训练数据集为 min ⁡ i y i ( W X + C ) \min\limits_i{yi}\left(WX+C\right) iminyi(WX+C).
  • geometric margin:当 W W W C C C成比例扩大或缩小,平面而没有变化,但函数间隔会按相同比例缩小扩大,我们利用regularization得到几何间隔,即 min ⁡ i y i ( W ∣ ∣ W ∣ ∣ X + C ∣ ∣ W ∣ ∣ ) \min\limits_i{yi}\left(\frac{W}{||W||}X+\frac{C}{||W||}\right) iminyi(WWX+WC),当 ∣ ∣ W ∣ ∣ = 1 ||W||=1 W=1时两个间隔相等。之所以为几何间隔,因为当我们的预测正确时,几何间隔就是点到平面的距离。
核技巧(kernel trick)

在解决非线性分类问题时,我们尝试将输入空间映射到特征空间,在特征空间中使用线性支持向量机解决分类问题。下面定义核函数(kernel function):
假 设 输 入 空 间 X ( 欧 氏 空 间 ) 和 特 征 空 间 H ( 希 尔 伯 特 空 间 ) , 如 果 存 在 映 射 ϕ ( x ) 将 输 入 空 间 中 的 点 映 射 到 特 征 空 间 中 , 使 得 对 任 意 x , z ∈ X , K 函 数 都 满 足 下 面 条 件 K ( x , z ) = ϕ ( x ) ⋅ ϕ ( z ) 则 称 K 为 核 函 数 , ϕ 为 映 射 函 数 , 其 中 ⋅ 为 特 征 空 间 中 的 点 积 。 假设输入空间\Chi(欧氏空间)和特征空间\Eta(希尔伯特空间),如果存在映射\phi(x)将输入空间中的点映射到特征空间中,使得对任意x,z\in\Chi,K函数都满足下面条件\\ K(x,z)=\phi(x)\cdot\phi(z)\\ 则称K为核函数,\phi为映射函数,其中\cdot为特征空间中的点积。 XHϕ(x)使x,zXKK(x,z)=ϕ(x)ϕ(z)Kϕ
kernel trick:由于对偶问题的目标函数和分类器决策函数都包含样本点之间的点乘,加之特征空间往往是高维的或者无穷维的,所以只需要定义核函数,使得存在映射函数 ϕ \phi ϕ将输入空间中的样本点映射到特征空间中近似线性可分样本点,这样能够隐式地在特征空间中使用线性支持向量机对偶学习算法学习一个线性分类器,从而使用线性支持向量机解决非线性问题,而不需要显示地定义 ϕ \phi ϕ和特征空间。这就是核技巧。

linear support vector machine in linearly separable case with hard margin maximization

针对那些具有完全的线性可分特性的数据集。基于学习目的的不同,感知机对应的解有无穷多个,而SVM仅有一个解,SVM学习的模型不但能够正确分类训练集,且对于整个训练数据集还拥有最大几何间隔,最大的几何间隔就意味着对于最难分的样本点(离分离平面最近的点)也能拥有足够大的确信度,所以SVM是一个最大最小问题,即最大化最低确信度或者说是最大化最小间隔。从几何角度解释SVM,也即我们需要找一个平面,对所有平面我们计算离它最近的点与它的距离,然后选择有最大距离的面,这就是解。更加具体的,SVM的最大间隔formulation如下:
arg max ⁡ W , C   min ⁡ i y i ( W ∣ ∣ W ∣ ∣ X + C ∣ ∣ W ∣ ∣ ) \argmax\limits_{W,C} \ \min\limits_i{yi}\left(\frac{W}{||W||}X+\frac{C}{||W||}\right) W,Cargmax iminyi(WWX+WC)
更进一步,我们可以想象这样的一个空间: ∣ ∣ W ∣ ∣ ||W|| W为1的平面是真实世界的平面, ∣ ∣ W ∣ ∣ ≠ 1 ||W||\not=1 W=1的平面位于相对于真实世界被放缩了的世界,在放缩世界里仅仅是空间的长度(size)被放缩了,我们能够利用 ∣ ∣ W ∣ ∣ ||W|| W这个放缩比例轻易地还原为真实世界。在一个完全的 ( W , C ) (W,C) (W,C)空间中,不同的 ( W , C ) (W,C) (W,C)对可能对应同一个平面,但是是在不同的放缩空间中。在所有放缩世界里,我们任意取定一个长度,让所有的点到平面的距离大于或者等于这个长度(在SVM中这个长度设置为1,任意数均可以),保证了最近点到平面的距离也大于或等于这个给定值,也保证了最近点到平面距离还原后也大于给定值还原后的值,我们只用还原给定值,最后找距离最大的 ( W , C ) (W,C) (W,C)对。对于某一个平面来说,当且仅当在某个合适的放缩比例 ∣ ∣ M ∣ ∣ ||M|| M的放缩空间中最近的点到平面的距离等于给定值时,它们还原后的距离相等否则给定值还原后的距离都小于真实空间中最近点到平面的距离,保证了正确性。如果在某个放缩空间中,最近点与平面的距离小于了给定的长度,那么还原这个长度回去得到的距离比真实世界中最近点到平面的距离大。如果暴力搜索完全的 ( W , C ) (W,C) (W,C)空间,由于部分放缩比例是没有意义的,会造成大量时间的浪费。
因此我们先调整上面的式子到放缩空间中,得到如下:
arg max ⁡ W , C γ ∣ ∣ W ∣ ∣ s . t .     y i ( W X i + C ) > = γ \argmax\limits_{W,C} \frac{\gamma}{||W||} \\ s.t.\ \ \ yi(WX_i+C) >= \gamma W,CargmaxWγs.t.   yi(WXi+C)>=γ
上面的式子保证了 γ \gamma γ是最近的点到平面的距离,再将放缩世界中的 γ \gamma γ固定为1,得到:
arg max ⁡ W , C 1 ∣ ∣ W ∣ ∣ s . t .     y i ( W X i + C ) − 1 > = 0 \argmax\limits_{W,C} \frac{1}{||W||} \\ s.t.\ \ \ yi(WX_i+C) -1>= 0 W,CargmaxW1s.t.   yi(WXi+C)1>=0
将上面的最优化问题转为线性可分支持向量机的二次规划优化问题:
min ⁡ W , C 1 2 ∣ ∣ W ∣ ∣ 2 s . t .     y i ( W X i + C ) − 1 > = 0 , i = 1 , 2 , . . . N \min\limits_{W,C}\frac{1}{2}||W||^2 \\ s.t.\ \ \ yi(WX_i+C) -1>= 0,i=1,2,...N W,Cmin21W2s.t.   yi(WXi+C)1>=0,i=1,2,...N
因为对于一个线性可分训练数据集,一定存在满足条件的解,即存在可行解,又由于目标函数是一个有界函数,所以上述的优化问题一定存在解。对于参数 W W W,可以通过反证法假定存在两个 W W W满足最优解,利用两个 W W W和的1/2构造一个新的 W W W,利用新的 W W W与其他两个 W W W模的大小关系证明两个 W W W是线性关系,进一步证明这两个 W W W相等。对于参数 C C C,假定存在两个不同的 C C C,因为最优的 W W W一定能够满足最近的点使得限制条件等号刚好成立,所以可以通过利用离两个平面的最近点构造关于两个 C C C的等式,然后做差,证明这个差为0即可。
所以综上,在线性可分训练数据集中,解能够正确划分所有的正负数据,解存在且唯一。
支持向量定义为使得问题的约束条件等号成立的样本点,即离分离平面最近的样本点,这些点决定了分离平面,所以将这个模型称为支持向量机。分别令 y = − 1   a n d   1 y = -1\ and\ 1 y=1 and 1等号成立的两个超平面称为间隔边界,中间长条称为间隔(margin),位于间隔边界平面上的样本点都是支持向量。可见对于支持向量机来说,最重要的是位于正负样点的边界部分的点。
我们可以这样想象求解过程,以每一个点做任意平面,保证与它同类的所有点在平面一侧且这一侧没有另一类别的点,并做一个平行的平面使得它们之间没有任何样本点,然后取两个平面中间的平面作为一个可行解,然后求间隔大小,最后找到最大间隔对应的平面。
个人认为在李航老师的书中提到移动间隔边界外的点或者去掉不会改变解,这个说法有问题,如果将间隔边界外一个点移到间隔内,由于这个平面对应的支持向量变化了,间隔更窄了,可能导致最终解发生变化,可以举一个极端的例子,例如只有三个点
最终的求解是转换为求解对偶问题从而求解线性可分SVM的优化问题。

linear support vector machine with soft margin maximization

线性支持向量机相比于线性可分支持向量机来说,多了一个软间隔参数,使得线性支持向量机应用范围比线性可分支持向量机广,对于线性可分训练数据集中多了奇异点或者噪声,都可以使用线性支持向量机解决,线性可分支持向量机是线性支持向量机的特例,线性支持向量机二次规划表达如下:
min ⁡ W , C , ξ 1 2 ∣ W ∣ ∣ 2 + B ∑ i N ξ i s . t .      y i ( W X i + C ) ≥ 1 − ξ i , i = 1 , 2 , 3... N ξ i ≥ 0 , i = 0 , 1 , 2 , . . . N \min\limits_{W,C,\xi} \frac{1}{2}|W||^2+B\sum_{i}^{N}\xi_i \\ s.t.\ \ \ \ y_i(WX_i+C) \geq1-\xi_i,i=1,2,3...N\\ \xi_i\geq0,i=0,1,2,...N W,C,ξmin21W2+BiNξis.t.    yi(WXi+C)1ξi,i=1,2,3...Nξi0,i=0,1,2,...N
其中 B B B是有关于任务的一个惩罚参数,对于对分类错误比较敏感的任务可以设置大一点,反之小一点。因为 y i ( W X i + C ) y_i(WX_i+C) yi(WXi+C)表示的是最近点到平面的有符号的距离,如果为负数意味着分类错误,在几何上,可以理解为点位于分离平面两侧中其所属类别一侧的相反侧,这个新增加的参数 ξ \xi ξ在几何上表示将点沿着超平面法向量方向移动,使得这个点能够在正确的一侧,并且保证与超平面的距离大于或等于1。(PS:即使在正确的一侧,但是距离小于1,那么也需要移动)
当计算出 W W W C C C变量后,我们就可以得到最终的分类超平面:
W X + C = 0 WX+C=0 WX+C=0
进而得到线性支持向量机:
s i g n ( W X + C ) sign(WX+C) sign(WX+C)
s i g n sign sign函数是一个符号函数。同样可以使用其二次规划问题的对偶问题得到最终的解,其中 W W W唯一, C C C不唯一。除了间隔边界上的样本点是支持向量外,还有 ξ i > 0 \xi_i>0 ξi>0的样本点。另外线性SVM二次规划问题还有一种等价的形式叫做合页损失函数(hinge loss function),如下:
min ⁡ W , C ∑ i N [ 1 − y i ( W X i + C ) ] + + λ ∣ ∣ W ∣ ∣ 2 \min\limits_{W,C} \sum_i^N[1-y_i(WXi+C)]_++\lambda||W||^2 W,CminiN[1yi(WXi+C)]++λW2

有时间再来补一补对偶问题的求解过程和合页损失函数推理吧
对偶形式如下,给定超参 B B B后,求解下面的凸二次规划问题即可得出最终结果:
min ⁡ a 1 2 ∑ i N ∑ j N a i a j y i y j ( x i ⋅ x j ) − ∑ i N a i s . t .      ∑ i N a i y i = 0 0 < = a i < = B , i = 1 , 2 , 3... N \min\limits_{a}\frac{1}{2}\sum_i^N\sum_j^Na_ia_jy_iy_j(x_i \cdot x_j)-\sum_i^Na_i\\ s.t.\ \ \ \ \sum_i^Na_iy_i=0\\ 0<=a_i<=B,i=1,2,3...N amin21iNjNaiajyiyj(xixj)iNais.t.    iNaiyi=00<=ai<=B,i=1,2,3...N
在得到了上述式子的解 a ∗ = { a 1 ∗ , a 2 ∗ , a 3 ∗ , . . . , a N ∗ } a^*=\{a_1^*,a_2^*,a_3^*,...,a_N^*\} a={a1,a2,a3,...,aN}后,对任意一个 ( x j , y j ) (x_j,y_j) (xj,yj)样点满足 0 < a j ∗ < B 0<a_j^*<B 0<aj<B,求解参数 C C C
C ∗ = y j − ∑ i N a i ∗ y i ( x i ⋅ x j ) C^*=y_j-\sum_i^Na^*_iy_i(x_i \cdot x_j) C=yjiNaiyi(xixj)
最终的线性分类器决策函数如下:
f ( x ) = s i g n ( ∑ i N a i ∗ y i ( x , x i ) + C ∗ ) f(x)=sign(\sum_i^Na_i^*y_i(x,x_i)+C^*) f(x)=sign(iNaiyi(x,xi)+C)
求解上面的对偶形式,有许多方法例如SMO算法等,可以高效地求解对偶形式的解。

non-linear support vector machine with kernel method and soft margin maximization

上面的两种模型都是线性模型,解决的是线性问题,对于非线性问题,我们使用核技巧,即结合核函数和线性支持向量机对偶学习算法,解决非线性问题。本质上是将训练集从线性不可分空间变到线性可分空间,然后使用线性支持向量机进行分类。核函数的选择需要依赖于领域知识,它的好坏需要通过实验进行验证。
我们一般称核函数为正定核函数,通过推导(详细请移步李航老师的《统计学习方法》)我们能够得到正定核的充要条件,也可以看作是正定核即核函数的另一个等价的定义。定义如下:
设 X ⊂ R n , K ( x , z ) 是 定 义 在 X × X 上 的 对 称 函 数 , 如 果 对 任 意 x i ∈ X , i = 1 , 2 , 3 , . . . m , K ( x , z ) 对 应 的 G r a m 矩 阵 K = [ K ( x i , x j ) ] m , m 都 是 半 正 定 矩 阵 , 那 么 K ( x , z ) 函 数 称 为 正 定 核 。 设\Chi\subset R^n,K(x,z)是定义在\Chi \times \Chi上的对称函数,如果对任意x_i\in\Chi,i=1,2,3,...m,K(x,z)对应的Gram矩阵\\ K=\left[ K(x_i,x_j)\right]_{m,m}\\ 都是半正定矩阵,那么K(x,z)函数称为正定核。 XRn,K(x,z)X×XxiX,i=1,2,3,...m,K(x,z)GramK=[K(xi,xj)]m,mK(x,z)
这里不是一般意义的Gram矩阵,所以 K K K矩阵仅仅是一个对称矩阵。利用上述定义可以很方便构造地构造核函数,但是要判断一个函数是否是正定核比较困难,因为需要验证所有可能的 { x 1 , x 2 , . . . , x m } \{x_1,x_2,...,x_m\} {x1,x2,...,xm}集合对应的 K K K矩阵是否是半正定矩阵,不太现实。在实际中,往往使用已经存在的正定核。包括多项式核函数、高斯核函数等。
我们利用线性支持向量机的对偶学习算法+核技巧就可以学习得到非线性支持向量机,优化问题依然为凸二次规划问题。在选定一个 K ( x , z ) K(x,z) K(x,z)函数和超参 B B B后,并将上面线性支持向量机的对偶形式中的点积 ( x i ⋅ x j ) (x_i \cdot x_j) (xixj)换成 K ( x i , x j ) K(x_i,x_j) K(xi,xj),然后就可以求解 a ∗ a^* a,最后将 C ∗ C^* C f ( x ) f(x) f(x)求解式子中的点积 ( x i ⋅ x j ) (x_i \cdot x_j) (xixj)换成 K ( x i , x j ) K(x_i,x_j) K(xi,xj),即可得到最终的非线性支持向量机。

感知机与SVM的区别

对于传统的线性感知机和线性可分支持向量机来说,因为线性可分SVM目的是在特征空间中实现最大化间隔,这与线性感知机目的不同,一般地,线性感知机只要求位于分割直线之上(或之下)的区域为正类,之下(或之上)为负类,最小化错误率即可,容易出现过拟合现象,而线性可分SVM的最大化间隔保证了一定的泛化能力。

一点思考
  • 为什么线性支持向量机的原始二次规划式子中的slack variables没有除以 ∣ ∣ W ∣ ∣ ||W|| W以标准化?
  • L2-SVM(slack variables从线性相加变为平方和)的优点在哪?L2-SVM is differentiable and imposes a bigger (quadratic vs. linear) loss for points which violate the margin.

Deeply-supervised net

改论文介绍了现存DL框架的问题,包括在隐藏层学习的特征的意义影响难解释性、在隐藏层低质量的低鲁棒性的学习的特征、消失梯度难以引导学习、DL数学原理难以系统解释。

改论文的contributions:

  • integrated layer-wise loss function:因为每一个hidden layer都有一个objective function,这样的算法能够解决如及其深的神经网络出现的梯度消失情况(还有一种解决方法是使用dense convolution neural network技术)。这些新增加的objective functions能够作为一些额外的限制,从实验结果中得到测试结果效果提升而训练结果没有提升,相当于做了regularization,泛化性能更好。
  • a analysis technique from stochastic gradient method:
  • combined learning:相比较之前的greedy layer-wise pre-training方法来说,这里的方法学习的特征更好,greedy layer-wise pre-training方法造成了过拟合。
  • companion objective zero-ing:作者使用hidden layers的supervision本质是为了更容易学得更好的hidden layers特征,便于最终的输出层分类器分类,所以当hidden layers objective functions降低到一定数值后就不再对梯度有所贡献。而输出层分类器的损失对梯度的贡献将会存在于整个training过程。可以通过两个方法实现companion objective functions zero-ing,即设置一个阀值或使用decay function。
  • 作者使用了L2-SVM和softmax作为分类器验证模型效果,不管是直接使用CNN-type的framework还是DSN,结果都是分类器为L2-SVM的模型结果最优
  • 当分类器为L2-SVM,每一个hidden layer的objective function都是一个squaredhingeloss函数,这里将线性SVM中的squaredhingeloss扩展到了多分类任务,并去除了 ∣ ∣ W ∣ ∣ 2 ||W||^2 W2项。这里在卷积和loss之间使用全连接网络表示一个线性SVM分类器(肯定是不能等同上述提到的线性SVM,不然就没有任何DL意义了,只是说线性SVM中是有inner product计算的,所以可以简单使用全连接网络表示线性SVM分类器,而不是学习过程),对于多分类任务,实质相当于使用多个二分类线性SVM,每个SVM负责决定属于或不属于这个类别,详情参考了caffe的document HingeLossLayer
  • 作者在第一层卷积结束后就应用了companion objective function,所有objective functions(包括最后输出层的objective function函数)都使用了squaredhingeloss,且code中使用了学习率衰减的方式不断减弱companion objective function对网络的梯度更新,而输出层(一个pooling操作)并没有学习率衰减,与作者论文中描述一致(实质上仅仅只有表示线性SVM的全连接网络有学习率的衰减,其他地方并没有学习率的衰减,因为链式法则中乘法的因素,所以能够实现减弱companion objective function对网络的梯度更新)。详细的框架参考了作者的caffe prototxt文件DSN framework in cifar10
优点

就实验结果而言,相比于之前的greedy layer-wise pre-training结果overfitting,此实验的结果不错,因为将companion objectives作为hidden layer feature quality的proxy联合训练,regularization能力强。通过实验结果,相比于普通的CNN-SVM,DSN-SVM的generalization能力更强。与普通的CNN网络相比,DSN网络在训练数据集很缺乏的时候性能(test error rate)提升更明显,从这个角度也说明了DSN拥有更好的generalization能力,能够在一定程度上减弱因训练数据集缺乏导致的过拟合现象,所以说DSN是一个强的generalization工具。对于更大的数据集和更深的网络,它能够使得训练更加容易,不会出现像梯度消失的问题。

HED Edge Detection Algorithm

multi-scale and multi-level learning

最初接触multi-scale learning是在学习SSD的时候,在SSD中multi-scale的object可以通过backbone网络后的各个多尺度检测块进行检测和学习。在HED论文中,作者对multi-scale和multi-level learning进行了总结,例如multi-scale learning可以用神经网络本身的学习过程(i.e. multiscale receptive field or multiscale feature representations learned by each layer)和multiscale input image来解释。

接下来,作者将常见的multi-scale deep learning architectures分为了4个类型:

  • multi-stream architecture:典型特征是创建多个streams,多个streams使用不同的参数,拥有不同的感受野,对应了multi-scale,最后将这些输出进行concat,然后传入最后的输出层产生最终的结果。
  • skip-layer network learning:典型特征是使用single stream,提取单一single stream中的不同层的feature maps,然后将他们合并,典型代表就是FCN网络,从某种意义上经典的特征提取网络FPN网络也是用了这样的结构。这个architecture和上面的architecture都是得到single prediction,这与一般流行的边检测算法不一致。
  • single model on multiple inputs:基于multiple scaled input images和单个网络,在训练时,相当于使用了图像增强技术进行训练,在测试时多次的前向传播,效率极低。
  • training independent networks:它是第一种architecture的变形,这里将训练多个独立的网络,不同的网络使用不同的depth以及得到不同的prediction。但是效率同样很低。
  • holistically-nested networks:正如前面所述,大量的重复计算使得现存方法效率不高,这里提出的方法和方法2(例如:FCN)很相似,都是利用了单一神经网络不同层学习的多尺寸特征。利用single stream network中各个层产生side outputs,如果需要可以将这些side outputs做一个fusion操作,最终的最优结构结合了side outputs的平均和fusion结果。
  • 作者为了解决high-level side output layer造成的梯度爆炸问题,以及提高模型的能力和鲁棒性,使用了多个标注器,至少3个annotators标注一个pixel为positive时,这个pixel才被标记为positive class,其余都是negative class。
  • 作者也使用了image augmentation技术,将一个图片经过一些变换,得到32张图片。在测试时,使用这32张图片的预测结果的平均值作为test image的prediction并没有提高表现,所以作者在执行test时,就只是使用原始图片。
  • poolling function对edge detection result影响较大
  • 与FCN网络相似,这里作者也使用bilinear上采样得到original image size的side output,且上采样的weights是被固定为bilinear interpolation参数即学习率为0。在FCN论文中作者指出可以使用learned deconvolution(虽然FCN代码并没有learn deconvolution weights),但是这篇文章中作者在采用learned deconvolution layer时并没有获得显著的模型能力提升。
  • HED结合了FCN(存在于HED的fusion过程,但FCN和HED的fusion处理过程是有点不同的)和DSN(存在于side output supervision,这是和FCN的single loss function完全不同的)技术,作者实验中比较了FCN8s和FCN2s(换成了cross entropy loss function)、HED without DSN,结果都比HED with DSN差,原因主要是作者将每一个网络层及其之前的层看作一个单独的network,对应的side output loss是这个network的损失函数,这样每一个side output network能够依靠损失函数优化对应scale的edge map。而且经过实验,在HED without DSN框架,由于没有对side output的控制即损失函数的引导,仅仅有最后的loss function,它更加关注large structure edge,所以一些存在于lower layer的关键的edge就缺失掉了,效果下降。下面展示一个example result:(来源于作者Github源码example页面,上面是fusion output 和 下面是五张side outputs)
    在这里插入图片描述
  • 在测试时直接使用fusion output作为prediction或者是所有outputs的平均。

总结:无论哪一种方法,我们都是基于了neural network本身的nature即hierarchical learning,利用这个nature我们能够设计得到各种architectures,这些architectures能够进行multi-scale预测。更进一步,我们并不能用feature map的size去表现multi-scale,更加根本地应从receptive field size去表现,因为即使feature map size与原图保持一致,而感受野可以很大。我们要实现multi-scale学习,可以尝试创建更大的感受野feature map,然后基于这些multi-scale receptive field maps去进行multi-scale object detection,像SSD算法、FPN、Mask-RCNN等都是这样做的。

Training & Testing

隐藏层的监督可以提高结果表现。

因为target set中标签分布的不均匀,为了进行平衡,作者使用了一种简单的cost-sensitive loss function for per-pixel,即weighted cross-entropy loss function,使用负类和正类所占比例作为权值。损失函数是建立在side-outputs和fusion output与target set的差别上的。

Comparing FCN with HED about architecture

HED与FCN相比,相同点:

  • 都使用了单一神经网络的各个层学习的特征组合得到最终结果
  • 在这些层后面加上额外的1x1卷积然后进行transposed convolution
  • 都使用了额外的1x1卷积改变中间层的输出通道为类别数
  • 在上采样部分依然使用了bi-linear采样初始化,

不同点:

  • 被transposed convolution的层不一致,HED用的是卷积层输出且在层数方面使用的深度范围更深
  • 与FCN8s相比,HED分别对每一层额外卷积输出结果直接transposed convolution到input image shape,然后concat这些结果,组成5通道的输出,然后传入一个卷积层输出fuse的结果(同样为单通道),接着将这个fuse结果和其他的side output 进行concat,最后对这个结果使用激活函数作为输出。而FCN8s是将最后一层的输出进行2x transposed convolution,然后加上pool4额外卷积输出,再进行2x transposed convolution, pool3同样的道理

Regard text detection as semantic segmentation problem

由于前面很多的工作是在local region进行搜索text,而且几乎所有的前面的工作都是检测horizontal or near-horizontal的text,忽略了non-horizontal区域

Features
  • 使用FCN网络进行holistic的预测,不再基于局部(基于整个图片进行预测),能够有效地利用contextual information,抑制false positives
  • 能够解决non-horizontal predict
  • 当两个文本行距离太近的时候,作者在论文中提到简单地使用两分类的语义分割器,将导致分割的结果是粘连在一起的,意味着这样的语义分割器很困难去单独识别每一个文本行,直接使用语义分割技术是不足够用于文本检测任务的。作者解决这个问题是通过除了考虑text region location,还考虑了单个character的中心和尺寸以及相邻characters的linking orientation;

Ref

[1] J. Long, E. Shelhamer, and T. Darrell. Fully convolutional networks for semantic segmentation. In Proc. of CVPR, 2015.
[2] C.-Y. Lee, S. Xie, P. Gallagher, Z. Zhang, and Z. Tu. Deeply- supervised nets. In AISTATS, 2015.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值