Introduction:

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

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

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

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

previous work :

1.基于纹理的

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

2.基于区域的

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

The flowchart of the algorithms:

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

1.笔画宽度变换

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

First pass:

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

Second pass:

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

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见下篇。

应用笔画宽度变换(SWT)来检测自然场景中的文本的更多相关文章

  1. 【OCR技术系列之五】自然场景文本检测技术综述(CTPN, SegLink, EAST)

    文字识别分为两个具体步骤:文字的检测和文字的识别,两者缺一不可,尤其是文字检测,是识别的前提条件,若文字都找不到,那何谈文字识别.今天我们首先来谈一下当今流行的文字检测技术有哪些. 文本检测不是一件简 ...

  2. EAST 自然场景文本检测

           自然场景文本检测是图像处理的核心模块,也是一直想要接触的一个方面. 刚好看到国内的旷视今年在CVPR2017的一篇文章:EAST: An Efficient and Accurate S ...

  3. OpenCV_contrib里的Text(自然场景图像中的文本检测与识别)

    平台:win10 x64 +VS 2015专业版 +opencv-3.x.+CMake 待解决!!!Issue说明:最近做一些字符识别的事情,想试一下opencv_contrib里的Text(自然场景 ...

  4. 使用Python基于VGG/CTPN/CRNN的自然场景文字方向检测/区域检测/不定长OCR识别

    GitHub:https://github.com/pengcao/chinese_ocr https://github.com/xiaofengShi/CHINESE-OCR |-angle 基于V ...

  5. Android——检测TXT文件中是否含有双字节字符

    在读取双字节字符时,主要涉及到编码的选取: public static boolean isRightfulTXT(File f) { // TODO Auto-generated method st ...

  6. [Swift通天遁地]七、数据与安全-(11)如何检测应用程序中的内存泄露

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  7. bash命令检测Shell脚本中的语法错误和查看详细执行过程

    (1).bash命令检测Shell脚本中的语法错误 bash -v [脚本] [root@youxi1 ~]# vim a.sh #/bin/bash sum=$[$1+$2] echoo $sum ...

  8. hough变换是如何检测出直线和圆的?

    (I)直线篇 1 直线是如何表示的?对于平面中的一条直线,在笛卡尔坐标系中,常见的有点斜式,两点式两种表示方法.然而在hough变换中,考虑的是另外一种表示方式:使用(r,theta)来表示一条直线. ...

  9. 利用Laplacian变换进行图像模糊检测

    检测图片是否模糊有很多方法(这篇文章review了36种),比如FFT和variation of Laplacian等,前者在操作到时候需要定义高频的量有多低和多高来区分图片是模糊的,操作起来比较麻烦 ...

随机推荐

  1. Lua中的table构造式(table constructor)

    最简单的构造式就是一个空构造式{},用于创建一个空table. 构造式还可以用于初始化数组.例如,以下语句:days = {"Sunday", "Monday" ...

  2. JS 实现拖动效果

    <html> <body style="margin:0px;"> <script src="http://ajax.googleapis. ...

  3. ubuntu下升级特定软件与查看软件版本信息

    ubuntu 升级软件: sudo apt-get update 更新源 sudo apt-get upgrade 更新已安装的包 sudo apt-get dist-upgrade 升级系统 ubu ...

  4. session超时跃出iframe并跳到登陆页面(转载)

    session超时跳出iframe并跳到登陆页面 在网页编程时,我们经常需要处理,当session过期时,我们要跳到登陆页面让用户登陆,由于我们可能用到IFrame框架,所以我们我登陆页面需要显示在整 ...

  5. linux prefix

    指定安装路径不指定prefix,则可执行文件默认放在/usr /local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc.其它的资源文件放在/usr ...

  6. django进阶-modelform&admin action

    先看效果图: 登陆admin后的界面: 查看作者: 当然你也可以定制admin, 使界面更牛逼 数据库表结构: app01/models.py from django.db import models ...

  7. Adobe Acrobat Reader DC For Android 下载

    http://get.adobe.com/cn/reader/otherversions/ 点击“立即下载”按钮,即可开始下载到PC端

  8. FTP协议的粗浅学习--利用wireshark抓包分析相关tcp连接

    一.为什么写这个 昨天遇到个ftp相关的问题,关于ftp匿名访问的.花费了大量的脑细胞后,终于搞定了服务端的配置,现在客户端可以像下图一样,直接在浏览器输入url,即可直接访问. 期间不会弹出输入用户 ...

  9. Telnet是什么意思又是什么协议 Telnet有什么作用及功能

    Telnet是teletype network的缩写,专业的说,Telnet是Internet上远程登录的一种程序:它可以让您的电脑通过网络登录到网络另一端的电脑上,甚至还可以存取那台电脑上的文件. ...

  10. WORD Application.Documents.Open函数返回null的一种解决方法

    DCOM Config Setting for "Microsoft Office Word 97 - 2003 Document" 内部配置一切正常,但调用Application ...