论文阅读(Xiang Bai——【CVPR2012】Detecting Texts of Arbitrary Orientations in Natural Images)
Xiang Bai——【CVPR2012】Detecting Texts of Arbitrary Orientations in Natural Images
目录
- 作者和相关链接
- 方法概括
- 方法细节
- 创新点和贡献
- 实验结果
- 问题讨论
- 总结与收获点
作者和相关链接
- 华科:姚聪(Cong Yao),白翔(Xiang Bai),刘文予(Wenyu Liu)
- 微软MSRA:马毅(Yi Ma)
- UCLA(加州大学圣地亚哥分校):屠卓文(Zhuowen Tu)
- 文章中提到的MSRA-TD 500 数据库

方法概括
- 方法简述:
- 使用SWT提取候选区域,用字符级分类器(简单特征+随机森林)过滤非字符区域;
- 利用字符间相似性连接成字符串,再用字符串级的分类器(简单特征+随机森林)过滤非文字串。
- 方法流程图:

图1. 流程图
方法细节
- 提取候选字符区域
- canny边缘检测
- SWT
- 连通分量聚合(相邻笔画宽度小于3倍)
- 提取候选字符区域

图2. 提取候选字符区域的三个步骤效果图
- 组件分析(组件级噪声过滤)
- 启发式规则过滤(特征:宽度方差,长宽比,占比;设定阈值范围)
- 组件分析(组件级噪声过滤)

- 组件级分类器过滤(特征:6种自己提的分量级特征;分类器:随机森林)
- 特征:轮廓形状,边缘形状,占比,轴比,宽度方差,密度
- 组件级分类器过滤(特征:6种自己提的分量级特征;分类器:随机森林)

图3. 组件级特征计算,(a)为模板,(b)为模板叠加在原图的示例图,(c)、(d)、(e)分别用来计算轮廓形状特征,边缘形状特征,占比特征
- 如上图所示,(a)为两种模板。上面是只有一种半径,一个扇形区域(整个圆),下面是有两种半径,共八个扇形区域(4个小的,4个大的)。每个扇形区域单独计算直方图(边缘,轮廓,占比),然后把每个区域的直方图串起来作为整个图的特征。(b)为在一个原图上叠加一种模板的示例图。(c)图为轮廓图上叠加两种模板的示例图。(d)为边缘图上叠加两种模板的示例图。(e)为二值图上叠加模板的示例图。
- 实际计算特征(比如,边缘特征)的时候,第一,先利用Camshift计算出每个连通分量的质心,尺度(最大轴与最小轴的和),方向(角度);第二,各种梯度方向都按照第一步求出的方向进行旋转(为了和模板对齐),并归一到[0,Π]上;第三,将模板中心固定在质心上,模板半径为尺度的大小,统计模板上每个sector的(轮廓形状,边缘形状,占比)直方图,并把每个sector的直方图串起来形成特征向量。


图4. 组件级噪声过滤(组件分析)的效果,(e)图为规则过滤,(f)为分类器过滤,经过两层过滤后大部分非文字的组件都被过滤掉了
- 候选区域连接
- 两两组队pair(相似性度量:笔画宽度,大小,颜色,距离;设定阈值范围)
- 聚类
- 至少包含一个公共组件
- 相似性度量:方向一致,群体一致(组件个数差异小)
- 候选区域连接



- 公式(1)中的So表示的是方向一致性,C1和C2是两个不同的chain,初始每个chain就是由两个相似组件得到的一个pair,γ(C1,C2)表示的是C1和C2之间的夹角(每条chain利用线性最小二乘法拟合出一条直线。两个chain的夹角就表示这两条直线间的夹角)。So是保证要聚类的两个chain的方向尽可能一致。
- 公式(2)中的Sp表示的是群体一致性,nC1是C1中组件的个数。Sp是保证要聚类的两个chain的个数差异不要太大。
- 公式(3)中的S是总的相似性度量的标准,是So和Sp的加权求和。每次要聚类时都是选择使得S最大的两个chain进行合并,这样采用自底向上进行合并的方式可以适用于任意方向,而不单纯是水平(或近似水平),甚至可以处理竖直,斜线的,更重要一点是,把在阈值范围内可能形成直线的组合都找的出来。如图5所示。

图5. 候选区域连接的效果,不但找到了PRIVATE,CAR等水平的,还找出了PCO,PRL这样的潜在的组合
- 链分析(链级噪声过滤)
- 链级特征:11种特征
- 链中候选区域个数
- 平均概率(组件级分类器打分)
- 平均转角(每个组件与左右相邻组件形成的直线的夹角)
- 大小方差(每个组件的尺度)
- 距离方差(质心的欧氏距离)
- 平均角度偏差(每个组件的最大轴方向与拟合出的链的直线方向的垂直方向间的角度偏差)
- 平均轴比
- 平均密度
- 平均宽度方差
- 平均颜色自相似性(颜色直方图的cosine相似性)
- 平均结构自相似性(边缘形状描述子的cosine相似性)
- 分类器:随机森林
- 链级特征:11种特征
- 新的数据库和评价标准
- MSRA-TD数据库
- 样本数:train-300,test-200
- 语言:中文,英文,中英混合
- 标注粒度:文本线(无字符,单词级标注)
- 图像大小:1296*864~1920*1280
- 标注矩形类别:最小面积矩形(mini area rectangle)
- 评价标准:
- 链分析(链级噪声过滤)

- 上图中(c)所示,G和D分别为groundTruth和detection的bounding box。由于两个都是斜的,直接计算交并比意义不大,故先求出两个box的角度(相对于水平方向的旋转角度),并将其转至水平,如图中的虚线图G'和D',再通过计算G'和D'的交并比来判断。
- 检测正确的标准是:(1) G和D的旋转角度差的绝对值小于Π/8;(2)G'和D'的交并比大于0.5;
创新点和贡献
- 解决的问题角度新:从一般的水平或近水平文字检测到任意方向的文字检测(直线)
- 提出了两级分类机制,尤其是其中的字符特征:组件级特征与链级特征
- 介绍了专门用来检测任意方向的文字的新的MSRA-TD数据库:针对任意方向的文字检测的数据库,切提出了新的评价标准
实验结果
- ICDAR03, detection:

- MSRA-TD, detection:

- OSTD:

问题讨论
- 为什么文中的方法可以用来检测各种方向的文字?
- 特征的旋转不变性,尺度不变性;
- 字符链形成算法比较通用,适用于各种方向,不一定是水平或者竖直。
- 组件级分类器正样本怎么获得?(MSRA-TD库上只有链级的标注)
- 链级分类器的正样本怎么获得?(ICDAR03库上最多只有单词级标注,没有包含多个单词的链级样本,是否采用简单规则先把groundTruth进行合并?)
- mini area rectangle的原理?(如何从四个点得到一个包含这四个点的最小面积矩形?)
- 长轴和短轴指的是字符的竖直和水平?(不是对角线?)
- 如何用Camshift得到质心,方向,和长短轴?
- 为什么文中的方法可以用来检测各种方向的文字?
总结与收获点
- 这篇做文字检测的方法思路很传统,从字符到字符串,然后给字符和字符串分别用一个分类器过滤噪声。比较有用的有三点,第一,整理的这些字符特征都是人工,经验得到的,简单有效;第二,字符链的形成算法有一定借鉴意义;第三,新的数据库和评价标准成为了后来检测多方向的主流。
论文阅读(Xiang Bai——【CVPR2012】Detecting Texts of Arbitrary Orientations in Natural Images)的更多相关文章
- 论文阅读(Xiang Bai——【TIP2014】A Unified Framework for Multi-Oriented Text Detection and Recognition)
Xiang Bai--[TIP2014]A Unified Framework for Multi-Oriented Text Detection and Recognition 目录 作者和相关链接 ...
- 论文阅读(Weilin Huang——【TIP2016】Text-Attentional Convolutional Neural Network for Scene Text Detection)
Weilin Huang--[TIP2015]Text-Attentional Convolutional Neural Network for Scene Text Detection) 目录 作者 ...
- 论文阅读(Xiang Bai——【PAMI2017】An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition)
白翔的CRNN论文阅读 1. 论文题目 Xiang Bai--[PAMI2017]An End-to-End Trainable Neural Network for Image-based Seq ...
- 论文阅读(Xiang Bai——【arXiv2016】Scene Text Detection via Holistic, Multi-Channel Prediction)
Xiang Bai--[arXiv2016]Scene Text Detection via Holistic, Multi-Channel Prediction 目录 作者和相关链接 方法概括 创新 ...
- 论文阅读(Xiang Bai——【CVPR2015】Symmetry-Based Text Line Detection in Natural Scenes)
Xiang Bai--[CVPR2015]Symmetry-Based Text Line Detection in Natural Scenes 目录 作者和相关链接 方法概括 创新点和贡献 方法细 ...
- 论文阅读(Xiang Bai——【CVPR2016】Multi-Oriented Text Detection with Fully Convolutional Networks)
Xiang Bai--[CVPR2016]Multi-Oriented Text Detection with Fully Convolutional Networks 目录 作者和相关链接 方法概括 ...
- 【论文阅读】TextSnake: A Flexible Representation for Detecting Text of Arbitrary Shapes
TextSnake: A Flexible Representation for Detecting Text of Arbitrary Shapes ECCV2018 北京大学.face++ 思路: ...
- 论文阅读(XiangBai——【PAMI2018】ASTER_An Attentional Scene Text Recognizer with Flexible Rectification )
目录 XiangBai--[PAMI2018]ASTER_An Attentional Scene Text Recognizer with Flexible Rectification 作者和论文 ...
- 论文阅读(Weilin Huang——【AAAI2016】Reading Scene Text in Deep Convolutional Sequences)
Weilin Huang--[AAAI2016]Reading Scene Text in Deep Convolutional Sequences 目录 作者和相关链接 方法概括 创新点和贡献 方法 ...
随机推荐
- 【BZOJ3669】[Noi2014]魔法森林 LCT
终于不是裸的LCT了...然而一开始一眼看上去这是kruskal..不对,题目要求1->n的路径上的每个点的两个最大权值和最小,这样便可以用LCT来维护一个最小生成路(瞎编的...),先以a为关 ...
- MongoDB使用小结:一些不常见的经验分享
最近一年忙碌于数据处理相关的工作,跟MongoDB打交道极多,以下为实践过程中的Q&A,后续会不定期更新补充. 另有<MongoDB使用小结:一些常用操作分享>,注:本文完成时Mo ...
- Linux查看进程PID信息
ps -ef|grep 进程名 可检索到具体进程PID以及启动命令行信息 ls -l /proc/进程ID Linux在启动程序时会在 /proc/PID 目录下以PID为名称创建一个文件存储相关进程 ...
- session在本地可以正常使用,而在sae上却无法使用或者值为空的解决方法
session在本地可以正常使用,而在sae上却无法使用或者值为空的解决方法: session_start()放在当前页代码的第一行即可解决该问题. 在本地上session_start()如果不是放在 ...
- WPF整理-XAML构建后台类对象
1.XAML 接触WPF的第一眼就是XAML---XAML是用来描绘界面的.其实不然! "Actually, XAML has nothing to do with UI. It's mer ...
- Android-简单拨号器案例
Android [19]简单电话拨号器 @方法步骤 1.新建一个android程序,项目名设置为 phone ,然后打开 phone->res->layout->activity ...
- PHP的变量
1.可变变量 一个变量的变量名可以动态地设置和使用.一个普通的变量通过声明来设置,而一个可变变量获取了一个普通变量的值作为这个可变变量的变量名,如下所示: <?php $hi = "h ...
- Windows 7无法卸载及安装IE11的解决方法
1. 清空 C:\Windows\TEMP\ 中的所有内容 2. 以管理员身份运行命令行,在命令中行输入下面的代码: FORFILES /P %WINDIR%\servicing\Packages ...
- html css 样式继承的问题
body 设置css中可以继承的属性:letter-spacing.word-spacing.white-space.line-height.color.font等 但有时,body的样式,不能在有的 ...
- 事务处理-回滚(转账操作)(转自http://www.cnblogs.com/void-m/p/6143540.html)
JDBC事务处理-四大原则 原子性一致性隔离性持久性 第一步:实现转账操作 假设在账户中,盖伦有余额5000元,赵信有余额2000元, 盖伦要向赵信转账1000元. 1 2 3 4 5 6 7 8 9 ...