Rotational Region CNN
R2CNN
论文Rotational Region CNN for Orientation Robust Scene Text Detection与RRPN(Arbitrary-Oriented Scene Text Detection via Rotation Proposals)均提出了检测出任意角度的文字目标框的方法.两篇论文是同一年出的(2017,R2CNN在RRPN之后3个月,并且在论文中做了结果对比),两个方法的主要区别在于得到候选框角度的网络位置,在RRPN中是在RPN中产生带角度的候选框\((cx,cy,w,h,\theta)\),在后续的RCNN中对候选框分类和回归候选框位置.R2CNN作者认为RPN产生的矩形候选区域足以供RCNN得到更进一步的类别信息和角度信息.因此将角度信息的获取放在了RCNN中.但是作者指出直接使用角度表示并不稳定,如对于角度分别为90度和-90度的box,在不严格区分头尾的情况下可看作相同的角度,但是数值计算上却相差很大.论文采用的box表示法是(x1,y1,x2,y2,h),即宽边上的两个点坐标和高度.在RCNN中在原来两条分支,分类和边框回归分支的基础上再加一条分支,用来输出任意角度的rbox(添分支的方式与mask r-cnn类似).使用不同的权重控制每个分支对整体loss的比例:
\[
\mathcal L(p,t,v,v^*,u,u^*)=L_{cls}+\lambda_1t\sum_{i\in\{x,y,w,h\}}L_{reg}(v_i,v^*_i) \\
+\lambda_2t\sum_{i\in\{x1,y1,x2,y2,h\}}L_{reg}(u_i,u^*_i)
\]
实验结果表明两个box回归分支同时使用比单独使用任意角度的box回归分支效果好.
由于文字通常是长条形,在ROIPooling中仅使用7x7正方形网格提取特征可能不太合适,作者采用了三种尺寸(7x7,11x3,3x11)得到三个特征之后拼接起来.F score有大约1%的提升.RRPN需要按照倾斜角度进行ROIPooling,而R2CNN不需要,因此计算较为方便.R2CNN在ICDAR2015的检测结果F score比RRPN高出5%.由于R2CNN是基于坐标轴方向的box得到任意角度的rbox,因此这种方法很容易迁移到SSD,YOLO等方法中.
TextBoxes++
这是白翔等人在2018年1月初公布的一篇关于文字检测的论文,是TextBoxes的升级版.
其借鉴SSD等网络的做法使文字检测能够end-2-end训练,并与R2CNN类似,在输出坐标对齐的矩形框时同时输出任意角度的目标框(R2CNN中也提到该方法可以用于SSD,YOLO这种方法上,TextBoxes++引用了R2CNN).
TextBoxes++除了输出水平的矩形还可输出更紧确的任意四边形 quadrilateral \((x^q_1,y^q_1,x^q_2,y^q_2,x^q_3,y^q_3,x^q_4,y^q_4)\)或者倾斜的矩形\((x^r_1,y^r_1,x^r_2,y^r_2,h^r)\).这种倾斜矩形表示法采用和R2CNN相同的表示法,不采用角度\(\theta\)表示的原因是数据集中\(\theta\)分布有bias,即不均衡,使得模型会与数据强相关(而R2CNN指出90度与-90度代表相同的结果时数值计算不稳定).这两种表示法的一个主要区别是任意四边形可以是不规则的,对不规则的艺术字等效果更好,将图片拉伸缩放后倾斜的矩形会变形,重设置为矩形则不够贴切.实验结果中表明任意四边形表示法比任意角度的矩形表示法高2.5%.
anchor(default box)的生成方式:
长宽比按照1,2,3,5,1/2,1/3,1/5设计,anchor均设置为水平的矩形,而不像RRPN那样设置多角度的矩形或者DMPNet(Y. Liu and L. Jin, “Deep matching prior network: Toward tighter multi-oriented text detection,” in Proc. CVPR, 2017.)那种多角度的任意四边形.并考虑到文字图片通常在竖直方向上相对比较稠密,因此通过在竖直方向上对anchor增加偏移使得竖直方向上anchor box比较稠密,能够覆盖更多的文字区域.
考虑到文字的形状特点,在卷积层做的改变是采用矩形而不是方形的卷积核.用3x5代替3x3,这样能够减少多余区域带来的噪声.
测试时级联NMS
提高四边形NMS速度,具体做法是先对水平的矩形以较高的IOU(如0.5)去除多余的目标框,接着对任意的四边形或任意角的矩形以较低的IOU(如0.2)去除多余框.
与文字识别相结合提升检测结果
,CRNN也是一个端到端训练的网络,可以和它相结合提升检测的精度,其做法是将识别得到的score与检测的score相结合得到新score.由于检测分数\(s_d\)的阈值与识别\(s_r\)的阈值通常相差较大(0.6 vs 0.005),因此不能直接将两者相加,可以采用调和均值(harmonic mean):
\[
S={2\times e^{s_d+s_r}\over e^{s_d}+e^{s_r}} \tag{$m={2\over {1\over a}+{1\over b}}$}
\]
在ICDAR 2015 Incidental Text dataset上通过识别结果改进检测器可获得1.3%的提升.
数据增广
:改进了SSD的随机裁剪的增广方式.SSD增广随机裁剪时要求裁剪的目标与ground truth之间的Jaccard(IOU)超过阈值.这样裁剪出的图片的目标占比较大,这种情况在文字数据集中很少出现,因此需要避免这种情况,方法便是约束裁减后的目标占原ground truth的比例.
不足之处
:
- 有目标遮挡和较大的字符间隙
- 垂直的文字,由于此类数据较少
- 弯曲文字
对这些问题处理的比较好的方法有:linking segment和EAST.
Rotational Region CNN的更多相关文章
- 论文阅读笔记三:R2CNN:Rotational Region CNN for Orientation Robust Scene Text Detection(CVPR2017)
进行文本的检测的学习,开始使用的是ctpn网络,由于ctpn只能检测水平的文字,而对场景图片中倾斜的文本无法进行很好的检测,故将网络换为RRCNN(全称如题).小白一枚,这里就将RRCNN的论文拿来拜 ...
- Rotation Proposals
Rotation Proposals 论文Arbitrary-Oriented Scene Text Detection via Rotation Proposals 这篇论文提出了一个基于Faste ...
- R2CNN论文思路记录
Rotational region cnn 我们的目标是检测任意方向的场景文本,与RRPN类似,我们的网络也基于FasterR-CNN ,但我们采用不同的策略,而不是产生倾斜角度建议. 我们认为RPN ...
- R2CNN模型——用于文本目标检测的模型
引言 R2CNN全称Rotational Region CNN,是一个针对斜框文本检测的CNN模型,原型是Faster R-CNN,paper中的模型主要针对文本检测,调整后也可用于航拍图像的检测中去 ...
- 大规模视觉识别挑战赛ILSVRC2015各团队结果和方法 Large Scale Visual Recognition Challenge 2015
Large Scale Visual Recognition Challenge 2015 (ILSVRC2015) Legend: Yellow background = winner in thi ...
- 2017-2018_OCR_papers汇总
2017-2018_OCR_papers 1. 简单背景 基于深度的OCR方法的发展历程 近年来OCR发展热点与趋势 检测方法按照主题进行分类 2. ECCV + CVPR + ICCV +AAAI ...
- Coursera, Deep Learning 4, Convolutional Neural Networks, week3, Object detection
学习目标 Understand the challenges of Object Localization, Object Detection and Landmark Finding Underst ...
- 【目标检测】Faster RCNN算法详解
Ren, Shaoqing, et al. “Faster R-CNN: Towards real-time object detection with region proposal network ...
- 目标检测-Faster R-CNN
[目标检测]Faster RCNN算法详解 Ren, Shaoqing, et al. “Faster R-CNN: Towards real-time object detection with r ...
随机推荐
- Java导出freemarker的三种方法
在上一篇呢,我将导出word文档的想法与思路以及实现功能的代码分享了一下,在这里, 我想说的是我对导出freemarker模板路径的三种方法的理解和认知. 有错误的话希望大家帮忙指正 在接下来我会使 ...
- 浅谈扩展欧几里得算法(exgcd)
在讲解扩展欧几里得之前我们先回顾下辗转相除法: \(gcd(a,b)=gcd(b,a\%b)\)当a%b==0的时候b即为所求最大公约数 好了切入正题: 简单地来说exgcd函数求解的是\(ax+by ...
- 进入Docker容器
在进入Docker容器之前,首先要运行对应的Docker容器,先使用命令docker ps查看正在运行的容器. docker inspect --format='{{.NetworkSettings. ...
- Qt msvc Modules
3D ActiveQt container ActiveQt server Bluetooth Concurrent Core Enginio Declarative Gui Help Locatio ...
- 《android开发艺术探索》读书笔记(九)--四大组件
接上篇<android开发艺术探索>读书笔记(八)--WindowManager No1: 四大组件除了BroadcastReceiver,其他三种组件都必须在AndroidManifes ...
- Json序列化、反序列化
引用 using Newtonsoft.Json; using Newtonsoft.Json.Converters; 把Json字符串反序列化为对象 1.目标对象 = JavaScriptConve ...
- RMAN还原时注意set newname时文件名不要有空格
今天遇到一个非常奇怪的现象,查看ORACLE数据库的一个文件,明明这个文件是存在的,但是使用ls -lrt 查看都显示这个文件不存在.很是纳闷! 后面发现在终端输入文件名后并使用tab键时,发现文 ...
- MySQL Crash Errcode: 28 - No space left on device
一台MySQL服务器突然Crash了,检查进程 ps -ef | grep -i mysql 发现mysqld进程已经没有了, 检查错误日志时发现MySQL确实Crash了.具体如下所示: 注意日志中 ...
- 通用的Android控件抖动效果实现
这个小程序的功能在实际的开发中会用到,比如:设置Button左右晃动,或者上下的晃动效果,下面就给出示例代码. 首先:要定义一个xml文件,命名为Shake [html] view plain cop ...
- 第6章 MSI和MSI-X中断机制
在PCI总线中,所有需要提交中断请求的设备,必须能够通过INTx引脚提交中断请求,而MSI机制是一个可选机制.而在PCIe总线中,PCIe设备必须支持MSI或者MSI-X中断请求机制,而可以不支持IN ...