TIP2018《TextBoxes++: A Single-Shot Oriented Scene Text Detector》论文阅读笔记

前言

这篇论文是华科白翔老师组的工作,AAAI上也有一个版本,但是一般期刊的实验做得多一些,描述也更细致,所以本文以其在TIP上的版本为准。
这篇论文主要工作是在2017年完成的,TIP的审稿一两年才出结果挺正常的…所以对于这篇论文的核心思想,可以概括的更简练一些(毕竟现在SSD也不是什么时髦模型了)
关键词:SSDbounding boxScene Text Detection
论文链接:https://arxiv.org/pdf/1801.02765v3.pdf
源码链接:https://github.com/MhLiao/TextBoxes_plusplus

注:编者水平有限,如有谬误,欢迎指正。若要转载,请注明出处,谢谢。
联系方式:
邮箱:[email protected]
QQ:1156356625


概述

文章核心点:

  • 设计两种bbox的表达方式,分别是四边形和旋转矩形。
  • 对SSD做了一些修改,如换卷积的kernel、default box的长宽比、hard negative sample正负样本比例等。
  • word-level检测,配合OCR食用更佳。

框架

TIP2018《TextBoxes++: A Single-Shot Oriented Scene Text Detector》论文阅读笔记_第1张图片
和SSD基本一致吧,总结一下对SSD做的改进部分。

  • default boxes的长宽比改为1, 2, 3, 5, 1/2, 1/3, 1/5,相较原始SSD多了5和1/5.
  • 给default boxes添加vertical offsets,这一个操作没搞懂,文中没有找到具体怎么设置这个offset的地方。手工设置?感觉没讲清楚,也可能是cover之前某些论文的操作。文中关于offset的解释也不大好,我理解的是针对大尺度目标,细粒度的feature map上的default box框不够大,粗粒度的可能目标中心在grid边缘上,这样覆盖的都不好,所以主要是对粗粒度的grid加上这个offsets,但是具体的话感觉没啥用(框够大,至少是能覆盖全的)。
  • 适当使用3×5的kernel代替3×3的,针对字符倒是好理解,针对word的话其实也不见得有多大用,结果说话hhh
  • bbox的表达方式,带回归的矩形框 ( Δ x , Δ y , Δ w , Δ h , Δ x 1 , Δ y 1 , Δ x 2 , Δ y 2 , Δ x 3 , Δ y 3 , Δ x 4 , Δ y 4 , c ) (\Delta x,\Delta y,\Delta w,\Delta h,\Delta x_1,\Delta y_1,\Delta x_2,\Delta y_2,\Delta x_3,\Delta y_3,\Delta x_4,\Delta y_4,c) (Δx,Δy,Δw,Δh,Δx1,Δy1,Δx2,Δy2,Δx3,Δy3,Δx4,Δy4,c)和旋转的矩形框 ( Δ x , Δ y , Δ w , Δ h , Δ x 1 , Δ y 1 , Δ x 2 , Δ y 2 , Δ h r , c ) (\Delta x,\Delta y,\Delta w,\Delta h,\Delta x_1,\Delta y_1,\Delta x_2,\Delta y_2,\Delta h^r,c) (Δx,Δy,Δw,Δh,Δx1,Δy1,Δx2,Δy2,Δhr,c),在其他任务中用过。细节上其实还有些要注意的地方,比如不规则四边形的IOU、NMS的计算和Loss的计算等等,可视化的效果确实会变好,量化的提升还是不太多。

Train Details

Ground Truth Representation
不规则四边形的部分有点绕,因为在实际项目中是有4个点坐标的标注,所以这一部分没去管。旋转矩形的,没有用 倾斜角 θ \theta θ去表示,用的R2CNN这篇论文的方法。
Loss Function
跟SSD基本一致,调了下参。
online negative sample mining
比例在训练中会从3:1调到6:1。
Data Augmentation
考虑到小尺寸文本,overlap可能总是很小,所以一般的 ∣ B ∩ G ∣ ∣ B ∪ G ∣ \frac{|B\cap G|}{|B\cup G|} BGBG改成 ∣ B ∩ G ∣ ∣ G ∣ \frac{|B\cap G|}{|G|} GBG
Multi-Scale Training
全卷积的网络,所以可以考虑resize到不同尺寸进行训练,一般512尺寸和300比肯定是更好的。

Test Details

Post Processing
对后处理部分有些改动,SSD是把不同层的feature map全部flatten然后拼接,简单粗暴有效。这里说的是resize各个feature map层到原始的图片大小,然后叠加。(有点想吐槽,这样不是变分割了吗?干嘛不反卷积再叠,不是很懂)
NMS
先拿0.5的阈值跑最小包围的矩形,然后拿0.2的阈值跑文中提出的不规则四边形,主要原因是不规则四边形的IOU计算,不好写成tensor的矩阵操作,所以会比较费时间。所以先拿普通的举行包围框跑咯,滤个差不多再跑不规则的。(详情可见我之前的博客,不规则四边形NMS的代码)

其他细节

作者在检测后面接了CRNN来作为端对端的检测识别模型,提到了一个用识别置信度来refine检测置信度的公式 S = 2 × e ( s d + s r ) e s d + e s r S=\frac{2\times e^{(s_d+s_r)}}{e^{s_d}+e^{s_r}} S=esd+esr2×e(sd+sr)主要是分类模型往往置信度阈值比较低,要把两个置信度拉到一个量级。作者给出的参考值,检测和分类一般是0.6和0.005。(所以说分类容易过拟合hhh)
这篇论文放到现在,我最感兴趣的其实最主要的还是bounding box的设计,很简单效果也很好。

你可能感兴趣的:(Scene,Text,Detection)