zoukankan      html  css  js  c++  java
  • 应用笔画宽度变换(SWT)来检测自然场景中的文本

    Introduction:

    应用背景:是盲人辅助系统,城市环境中的机器导航等计算机视觉系统应用的重要一步。获取文本能够为许多视觉任务提供上下文的线索,并且,图像检索算法的性能很大部分都依赖于对应的文本检测模块。

    意义:传统的OCR应用于扫描文本,所以其依赖于把文本从背景像素中正确分离。这对于扫描文本来说是很简单的,但是自然图像由于存在色彩噪声,模糊,遮挡,很难将文本从背景中分离。

    文章提出的方法:文本有着固定的笔画宽度,利用这一特性就够从背景中将其恢复。首先求图像的笔画宽度变换即每个像素都分配了一个笔画宽度,然后利用灵活的几何推理,把有着相似比划宽度的位置都被聚合成词。这相似并不是很严格,在一定范围内变化都是可以的。

    优点:1.没有提取分离每个像素特征如:颜色,梯度等,而是提出像素组的特征。2.没有使用在多尺度金字塔上滑动的窗口,而是基于自底向上的方式,把有着相似笔画宽度的像素归并成连通域。3.没有利用特定的语言信息滤除机制,所有能够用于多语言的文本检测。

    previous work :

    1.基于纹理的

    在多个尺度上扫描图像,然后利用一些文本的特性如:高密度的边缘,文本上下的低梯度,灰度变化明显,波形的分布,离散余弦变换系数等来分类像素。其缺点是大计算量,缺乏精度。

    2.基于区域的

    利用像素存在着相似的特性如一样的颜色来组织像素成连通域。然后利用几何或者纹理信息来排除那些不可能是文本的连通域。优点是:同时在各个尺度检测文本,并且不限制于水平方向的文本。

    The flowchart of the algorithms:

    step1 step2

    流程首先计算图像的canny 边缘,然后根据边缘的方向信息计算图像的SWT ,根据笔画宽度信息将像素聚集成连通域,利用几何推理如连通域的高宽比,连通域笔画的方差,均值,中值等来过滤连通域,将连通域聚集成文本行,最后将文本行分割成一个个词。流程的核心为SWT和滤除连通域。下面给出这些步骤的详细阐述,并给出matlab和C++代码。

    1.笔画宽度变换

    输入的是原始彩色图像,输出的是对每个像素都分配了笔画宽度的图像。

    First pass:

     boke_swt bokei1

    这个流程图有两个问题1.如果一个点被多个路径扫描到,那么就赋值为最小路径距离即笔画宽度。2.在笔画的转弯处会出现问题,如上图右边,从上到下和从左到右的两条路径经过这点,假设从上到下的笔画宽度为50,从左到右为40,那么这点的笔画宽度为40.这显然不符合实际情况。这就需要第二次扫描。

    Second pass:

    image

    第二次扫描流程是,对于所有第一次扫描到的路径,求出路径上的中值,将所有这条路径上大于中值的点全部赋值为中值。

    2.像素聚成连通域

    从第一步我们得到的是笔画宽度图像,这时也还是一个个像素,所以我们要根据一些规则把像素合并成区域(即自底向上的一个过程)这个主要通过改变传统连通域分析的连接条件得到,传统连通是像素周围4连接或者8连接的像素都是同一值则是同一连通域,而这里改变了这一条件,中心像素和周围像素SW(笔画宽度)比不能超过3.0.

    3.连通域滤除

    第二步得到的连通域中存在着许多明显不是字符的区域,我们需要根据一些先验的知识滤除这些区域。主要是根据以上几个规则

    varianceSW:连通域笔画的方差。meanSW:连通域笔画的均值。aspectRatio:连通域高宽比。diameter:连通域直径。width:连通域宽。height:连通域高

    1). 10<height<300;

    2).varianceSW/meanSW > .5

    3).diameter/medianSW >= 10

    4).aspectRatio < 0.1 && aspectRatio > 10

    5).连通域的boudingbox不能包含超过两个的连通部件

    4.字符成文本行

    同第三步一样,从上面得到的是一个个候选的字符(连通域),我们需要把字符合并成文本行。依据以下的规则

    1).两个候选字符的中值笔画宽度比不超过2.0.

    2).字符的宽度不超过3倍于最宽的字符宽度。

    3).字符的颜色一致

    5.文本行分割成词

    通过文本行的水平距离直方图来分割(??)

    论文地址:http://www.math.tau.ac.il/~turkel/imagepapers/text_detection.pdf

    核心部分的c++和matlab见下篇。

  • 相关阅读:
    SQL Server2008中删除重复记录
    Php环境在Windows (server 2003) 服务器部署标准 白丁简明版
    国外服务器鸟文windows,时间12小时制,如何改成24小时呢?我来告诉你
    将Capicom调用代码封装到ActiveX——解决javascript调Capicom读取数字证书信息时,IE弹出安全提示的问题
    Linq处理List数据
    C#将窗口最小化到系统托盘,并显示图标和快捷菜单
    C# 将程序添加到启动项 (写入注册表),及从启动项中删除
    C#中string[]数组和list<string>泛型的相互转换
    IIS7.5部署ASP.NET失败
    IIS 7.5版本中一些诡异问题的解决方案
  • 原文地址:https://www.cnblogs.com/dawnminghuang/p/3807678.html
Copyright © 2011-2022 走看看