R2CNN 算法笔记
论文:R2CNN: Rotational Region CNN for Orientation Robust Scene Text Detection
论文链接:https://arxiv.org/abs/1706.09579
这篇文章提出了R2CNN(Rotational Region CNN)算法解决旋转文本的检测。
Figure2是R2CNN算法的整体结构,主要是在Faster RCNN算法的基础上做了一些修改:1、ROI Pooling时的尺寸除了7*7外,还有两种长宽不一致的尺寸:3*11和11*3,这种设置的用意也非常明显,就是为了解决水平和竖直长文本的检测。然后对于提取到的ROI特征做cancat操作进行融合作为后续预测支路的输入。2、预测输出有3个支路,第一个支路是有无文本的二分类,这个和目标检测算法中的目标分类类似。第二个支路是水平框(axis-aligned box)的预测,这个和目标检测算法中的框预测一样。第三个支路时倾斜框(inclined box)的预测,这部分是这篇文章的亮点,而且该支路后面跟一个NMS进行处理得到最后结果。至于RPN网络部分输出的ROI则和常规目标检测中RPN网络输出的ROI一样,都是水平方向。另外这篇文章其实还增加了一些小尺寸的anchor提升对小文本的检测效果。所以R2CNN算法最后既有常规的水平预测框输出,也有倾斜框输出,这两种框都是基于RPN网络输出的ROI得到的,虽然倾斜框支路也能预测水平框,但是作者认为第二个支路的存在对最后结果帮助较大。
因此R2CNN算法整体上的处理流程可以用Figure1所示。(a)是输入图像。(b)是RPN网络得到的ROI,这些ROI区域都是常规的水平框。(c)是R2CNN算法预测得到的水平预测框(第二个支路)和倾斜预测框(第三个支路)的结果。(d)是经过倾斜框的NMS算法后得到的最终输出结果。
Figure3是关于这篇文章用的倾斜框定义。框其实表示方式非常多,比如可以用Figure3(a)所示的4个点坐标来表示一个任意形状的四边形,这种表示方式其实就覆盖了水平框和倾斜框,而且框的形状不仅限于矩形,而是延伸至四边形。但这篇文章不采用任意形状的四边形预测方式,而认为倾斜矩形框足够覆盖待检测的文本,因此这篇文章所提到的倾斜框是指倾斜的矩形框,为了描述简单,后续都用倾斜框代替倾斜的矩形框。倾斜框的定义也有好几种,比如可以用水平框+旋转角度来表示一个倾斜框,这种表示方式在旋转目标检测算法中也比较常见,比如east算法。但是这篇文章认为训练旋转角度时在有些角度情况下模型不是很稳定,主要是因为一些特殊的相似角度在表示上有可能差别较大,比如90度和-90度,所以考虑采用Figure3(b)(c)这种用两个相邻点坐标和高来定义一个倾斜框。
Figure4是关于倾斜框的NMS算法。(a)是R2CNN算法的水平框和倾斜框预测结果合并在一张图上的结果。(b)是采用水平框的NMS算法处理(a)中的预测框后得到的结果,可以看到有部分正确的文本框被剔除掉(红色虚线)。(c)是采用倾斜框的NMS算法处理(a)中的预测框后得到的结果,可以看到结果比较好。基于倾斜框的NMS算法和传统的基于水平矩形框的NMS算法差别不大,只不过计算对象换成两个倾斜框,这个操作还是比较重要的。
损失函数方面从Figure2的网络结构图也可以看出一共包含3个部分:1、有无文本的二分类损失Lcls。2、水平框的回归损失Lreg(vi,vi*)。3、倾斜框的回归损失Lreg(ui,ui*)。后面两部分都是采用目标检测中常用的smooth L1损失函数,所以损失函数方面没有太大的改动。
实验结果:
Table1是在IDCAR 2015数据集上不同参数配置时R2CNN测试结果。
Table2是R2CNN算法和其他算法在IDCAR2015数据集上的对比结果。
Table3是R2CNN算法和其他算法在IDCAR2013数据集上的对比结果。
R2CNN 算法笔记相关推荐
- 《算法笔记》中文版 - 包括数组,链表,树,图,递归,DP,有序表等相关数据结构与算法的讲解及代码实现...
来源:专知本文为资源,建议阅读5分钟本文为你分享<算法笔记>中文版. https://github.com/Dairongpeng/algorithm-note 目录概览 第一节 复杂度. ...
- 数据结构与算法笔记 - 绪论
数据结构与算法笔记 - 绪论 1. 什么是计算 2. 评判DSA优劣的参照(直尺) 3. 度量DSA性能的尺度(刻度) 4. DSA的性能度量的方法 5. DSA性能的设计及其优化 x1. 理论模型与 ...
- 数据结构与算法笔记(十六)—— 二叉搜索树
一.二叉搜索树定义 二叉搜索树(Binary Search Tree),又名二叉排序树(Binary Sort Tree). 二叉搜索树是具有有以下性质的二叉树: 若左子树不为空,则左子树上所有节点的 ...
- 数据结构与算法笔记(十五)—— 散列(哈希表)
一.前沿 1.1.直接寻址表 当关键字的全域U比较小时,直接寻址是一种简单而有效的技术.假设某应用要用到一个动态集合,其中每个元素都有一个取自全域U={0,1,-,m-1)的关键字,此处m是一个不很大 ...
- 《algorithm-note》算法笔记中文版正式发布!
无论是做机器学习.深度学习.自然语言处理还是其它领域,算法的重要性不言而喻!吃透算法底层原理.掌握算法数学推导和代码实现,对提高自己的硬核实力来说非常重要!今天给大家推荐一个超赞的开源算法笔记!中文版 ...
- 【算法】《algorithm-note》算法笔记中文版正式发布!
无论是做机器学习.深度学习.自然语言处理还是其它领域,算法的重要性不言而喻!吃透算法底层原理.掌握算法数学推导和代码实现,对提高自己的硬核实力来说非常重要!今天给大家推荐一个超赞的开源算法笔记!中文版 ...
- c++ string 删除字符_算法笔记|(5)第二章C、C++的快速入门字符数组的存放方式string.h文件...
字符数组的存放方式 由于字符数组是由若干个char类型的元素组成的,因此字符数组的每一位都是一个char字符,除此之外,在一维字符数组或者二维字符数组的第二维的末尾都有一个空字符\0表示存放的字符串的 ...
- 算法笔记(JavaScript版)——排序
算法笔记(JavaScript版)--排序 本文内容根据Rebert Sedgewick和Kevin Wayne的<算法(第四版)>整理,原代码为java语言,自己修改为JavaScrip ...
- 三维重建7:Visual SLAM算法笔记
VSLAM研究了几十年,新的东西不是很多,三维重建的VSLAM方法可以用一篇文章总结一下. 此文是一个好的视觉SLAM综述,对视觉SLAM总结比较全面,是SLAM那本书的很好的补充.介绍了基于滤波器的 ...
- 最优化理论与算法笔记
最优化理论与算法笔记
最新文章
- android自定义下载框架,Android_DownloadUtil
- 设计模式之_动态代理_02
- elasticsearch api中的Buckets(桶)及Metrics(指标)
- Python用subprocess的Popen来调用系统命令
- mysql+自动还原备份_Mysql 自动备份与恢复
- git 的 merge 默认有commit操作
- 华为2018年收入超阿里腾讯总和,任正非:华为最大问题是赚钱太多
- Vue3学习之第四节:setup()中使用watch、watchEffect 函数
- 用命令行建立空白的simulink模型(mdl文件)(Matlab)
- win7 旗舰版系统激活方法
- Storm运行原理探索
- 更新QQ连连看外挂 加入自动挂机多项功能
- 【魔兽世界插件】魔兽世界插件实战笔记从入门到放弃的心理历程 第二节XML框架的建立
- win10远程连接ubuntu18.4
- 获取微信小程序二维码后返回一堆乱码
- 配置 nginx server 出现nginx: [emerg] root directive is duplicate in /etc/nginx/server/blogs.conf:107...
- More Joel on Software 读书笔记
- 零信任网络安全——软件定义边界SDP技术架构指南
- vue实现单选做题根据对错标色,作对跳转下一题,实现思路详解
- MLdonkey与sancho安装使用及设置详解
热门文章
- 讨厌的任意门事件,删了会出系统提示:安装prosheild.msi问题,不要乱删!
- Java项目开发管理工具-Maven基础
- 微信分享出错问题,MicroMsg.SDK.WXMediaMessage: checkArgs fail, thumbData is invalid
- Session销毁方式
- 2012年4月份第3周51Aspx源码发布详情
- 【GIMP】免费开源图像处理软件
- VM 网络设置 for xp3
- Android SELinux avc denied解决
- SPSS:因子分析步骤
- spss因子分析结果解读_【SPSS数据分析】SPSS聚类分析(R型聚类)的软件操作与结果解读 ——【杏花开生物医药统计】...