欢迎使用CSDN-markdown编辑器

来源:互联网 发布:音频剪辑软件mac版 编辑:程序博客网 时间:2024/06/05 14:21

文档OCR-文字区域定位 (Edge Boxes)

标签:document_processing


   在介绍Edge Box之前先简单的介绍下图像中的文本分类以及传统的字符区域定位有哪些方法。

图像中的文本分类:

  • 叠加文本:叠加文本是指视频或图像中原本没有的,为了进行描述和解说,在后期制作中加入的文本。叠加文本主要是新闻中的标题字幕、电影中的对白字幕、广告中的广告商和产品信息等。

  • 场景文本: 场景文本是指从自然界的场景中,由相机不加处理获取到的文本,其来源是现实世界中的场景,所以命名为场景文本。场景文本主要是商店招牌、汽车号牌、球衣号码、牌匾等生活中常见的文本。

   字符区域定位是预处理的关键步骤,是否准确定位出字符,决定这字符识别的成功与否。当前字符区域自动定位的算法有很多。

叠加文本定位主要归为四大类:

  • 一是基于边缘特征的定位方法,如通过字符边缘异与非字符区域的密集度来定位,以上一节的水平、垂直直方图投影为例;
  • 二是基于字符结构特征的定位方法,即通过字符的字符颜色、几何特点等来定位,以颜色信息定位为例[33];
  • 三是基于笔画特征的方法;
  • 四是基于字符纹理特点的定位方法[34],即通过字符与背景纹理特点不同来定位,以基于离散余弦变换的字符定位方法为例。其中,基于字符结构特征的定位方法与基于字符纹理特点的定位方法是这章节的研究重点。而基于字符边缘特征的定位方法,以直方图投影为例。

场景文本定位主要归为三大类:

  • 一是基于区域的定位方法,也叫滑动窗口Sliding Window,用一个滑动窗口来搜索图像中可能的文本即候选区域,然后运用机器学习来判决文本。
  • 二是基于连通分量的定位方法Connected Component,是一类自下而上的文本检测算法。在基于连通分量的方法中,图像中的连通分量被提取作为候选字符,如果他们有相似的几何属性,则合并文本区域,然后再进行额外的检验来剔除伪文本区。基于连通分量的方法克服了滑动窗口类算法的一些缺点,它不用遍历图像的多尺度,也不采用窗口遍历图像,而是对整个图像进行统一的处理,无需对图像进行变换。

  • 三是基于deep features多特征融合的方法;

   光学字符识别系统的字符定位算法,可以根据不同的应用场合中,字符区域的结构、边缘或纹理特征来快速定位[35]。目前传统方法中应用较多的就是 基于离散余弦变换的纹理定位方法基于颜色空间的特征定位方法 ,两种方法各自应用于不同的场合。都是字符定位中简洁有效的方法。

  《Edge Boxes: Locating Object Proposals from Edges》是ECCV2014的一篇关于目标检测的一篇文章,作者是来自于MSRA的 Piotr 等人。本文并没有涉及到“机器学习”,反之采用的是最原始的图像处理方法,因为现在很多提取proposals的文献,例如BING等,都是基于学习的方法。此外,本文的许多内容,甚至数学公式,都是基于作者的直觉直接建立。一篇学术paper,一般由研究目标,研究方法和实验结论组成,以下部分分别从这几方面进行介绍。
  作者为了加速现有目标检测算法,提出了一种能够以较高精度确定proposal的新方法。至于proposal 还没有一个确定的中文翻译,一般被称作“目标可能位置”。这个概念非常重要,当我们看到一幅图像的时候,我们绝对不会像传统检测算法那样去遍历图像,而是一眼“纵观全局”,直接发现目标“大概的位置”,然后进一步细看。
  这篇文章确定 proposal 的方法的可贵之处就是进一步挖掘了图像更原始更本质的内容。显而易见,这样的方式,速度会很快。
  Pioter 的研究方法:利用边缘信息(Edge),确定bounding box 内的轮廓个数和与 box 边缘重叠的轮廓个数(这点很重要,如果我能够明确一个box内包含的轮廓个数,那么目标有很大可能性就在这个框中,这也是作者的直觉),并基于此对框框进行评分,进一步根据得分的高低顺序确定proposal信息(由大小,长宽比,位置构成)。而后续工作就是在proposal内部运行相关检测算法。
下面试着详细介绍本文算法流程。

图1来自于文献,箭头是我自己加的,我觉得这幅图像,可以很好的说明该文的算法思想。
  首先,第一行是原图,第二行是用 Structured Edge detector 计算出原图每一个像素的边缘响应 edge response 。详情见论文1 Doll´ar, P., Zitnick, C.L.: Structured forests for fast edge detection. In: ICCV. (2013)和论文2 Doll´ar, P., Zitnick, C.L.: Fast edge detection using structured forests. CoRR abs/1406.5549 (2014)。这时得到的的边缘图像显得很紧密,需要用NMS进一步处理得到一个相对稀疏的边缘图像。
  其次,第三行中,本来灰色的边缘变成了五颜六色的边缘,其实这些五颜六色的边缘是基于某种策略,将边缘点集合起来得到的N多个小段,论文中,叫做edge group。所采用的的策略是:将近乎在一条直线上的边缘点,集中起来形成一个edge group,具体的做法是,不停地寻找8连通的边缘点,直到两两边缘点之间的方向角度差值的和大于 π/2,这样便得到了N多个edge group。
  再其次,得到N个edge group之后,还要进一步计算两两edge group之间的相似度,相似度的公式很简单,如下:

a(Si,Sj)=|cos(θiθij)cos(θjθij)|γ(1)

  这样变使得,如果两个edge group 越在一条直线上,上述公式计算得到的相似度就越高,反之亦然。作者之所以引入edge group概念,是为了确定轮廓个数做准备,因为一个轮廓中的所有edge group当然是最相似的,这点可以在纸上画画,十分明显。
  最后,让我们看看作者是怎么根据edge group 来确定轮廓的。作者的做法在我看起来很奇葩,他给每一个 edge group 一个权值,换句话说,打个分数,然后把权值均为1的 edge group 归为框框内轮廓上的一部分,把权值为0的 edge group 归为框框外或者与框框边界重叠的轮廓的一部分。采用了一个数学公式达到了上述目的,如下:

wb(si)=1maxTj|T|1a(tj,tj1)(2)

  其中,T是指从框框的边缘开始到达si的edge group 序列集合,当然,会有很多个T,看到没,它的目标就是从这么多的路径T中,寻找相似度最高的路径,这就是传说中的轮廓。值得注意的是,在某路径T上,一旦出现相似度为0(这很容易出现)的情况,这条路径T就废弃了,所以想找到那个合适的T,真的很快。。。。
  最最后,作者给出了框框的评分(具体公式没什么好解释的,就不给出了)。然后就得到了倒数第二行的效果,效果还是很不错的。
综上,给出自己画的算法流程图,如下所示:

Created with Raphaël 2.1.0输入图像计算 edge response计算 edge groups计算 edge groups 之间的相似度公式 (1)计算 boxes 交叉集合 Sb计算 edge group 权值计算 boxes 评分End

  本文的实验效果:作者和几个当前流行的proposal提取算法进行了比较,得到了比较不错的效果,主要是基于经典的PASCAL VOC数据集,但是不得不说,他把BING弄得太差了。另外,这个算法存在一个较大的缺陷。
  本文算法的不足:一句话,通过demo测试,发现,其评分较高的proposals均为近乎整幅图像,比如说,图像中有8个人,那么该算法评分最高的proposal肯定是同时包含了这8个人的,这一点不足,使得这个算法的含金量大大缩水,因为,在实际应用中,我想要的效果往往是,最高评分的几个proposal最好是单独的人,而不是8个人一起。
  至于原因,不难理解,上面已经说过了,本文不是基于“学习”的算法,没有训练过程,不可能像BING那样,训练了单独人体,那么最高评分的proposal肯定就是单独的人体,训练了汽车,那么最高评分的proposal肯定就是单独的汽车等等。

原创粉丝点击