乐趣区

关于文本处理:文本检测与识别白皮书第三章第三节算法模型

3.1.3 罕用的文本检测模型

R-CNN、Fast R-CNN、Faster R-CNN

1)R-CNN(CVPR 2014, TPAMI 2015)

2014 年论文《Rich feature hierarchies for accurate object detection and semantic segmentation Tech report》提出 R -CNN 模型,即 Regions with CNN features。这篇论文能够算是将 CNN 办法利用到指标检测问题上的开山之作。
R-CNN 的算法原理:

 RCNN 算法分成四个步骤:
(1)获取输出图像
(2)提取大概 2000 个自下而上的候选区域
(3)应用大型卷积神经网络(CNN)计算每个倡议的特色
(4)应用特定分类的线性反对向量机(SVM)对每个区域进行分类。

试验后果:
表 1 显示了 VOC 2010 数据集上的试验残缺后果。试验将 R -CNN 办法与四个强 Baseline 进行了比拟,其中包含 SegDPM,它将 DPM 检测器与语义宰割零碎的输入相结合,并应用额定的检测器间上下文和图像分类器从新排序。最亲密的比拟是与 Uijlings 等人钻研的 UVA 零碎,因为 R -CNN 的零碎应用雷同的区域候选算法。为了对区域进行分类,UVA 的办法构建了一个四级空间金字塔,并应用密集采样的 SIFT、扩大的 OpponentSIFT 和 RGBSIFT 描述符对其进行填充,每个向量应用 4000 字的码本进行量化。采纳直方图相交核反对向量机进行分类。与 UVA 的多特色非线性核 SVM 办法相比,R-CNN 在 mAP 方面获得了很大的改良,从 35.1% 进步到 53.7%,同时速度也更快。R-CNN 的办法在 VOC 2011/12 测试中达到了相似的性能(53.3%mAP)。

 图 3 将 R -CNN 与 ILSVRC 2013 年较量的参赛作品以及赛后的 OverFeat 后果进行了比拟。R-CNN 取得了 31.4% 的 mAP,显著当先于 OverFeat 第二好的 24.3%。为了理解 AP 在不同类别上的散布状况,还提供了方框图,并在表 8 中的文章开端提供了一个 perclass AP 表。大多数竞争对手提交的材料(OverFeat、NEC-MU、UvAEuvision、Toronto A 和 UIUC-IFP)都应用了卷积神经网络,这表明 CNN 如何利用于指标检测存在显著差别,导致后果差别很大。

 首先查看 CNN 不在 PASCAL 进行微调,即所有 CNN 参数仅在 ILSVRC 2012 上进行预训练后的后果。逐层剖析性能(表 2 第 1 - 3 行)表明,fc7 的特色概括起来比 fc6 的特色更差。这意味着,在不升高地图品质的状况下,能够删除 29% 或 1680 万个 CNN 参数。更令人诧异的是,删除 fc7 和 fc6 会产生十分好的后果,只管 pool5 性能仅应用 CNN 6% 的参数计算。CNN 的大部分提取特色的能力来自其卷积层,而不是更大的密集连贯层。这一发现表明,仅应用 CNN 的卷积层就能够计算任意大小图像的浓密特色图(从 HOG 的意义上讲)的潜在效用。这种示意形式将反对在 pool5 个性的根底上应用滑动窗口检测器(包含 DPM)进行试验。

在 VOC 2007 trainval 上微调了 CNN 的参数后,当初来看一下 CNN 的后果。改良是惊人的(表 2 第 4 - 6 行):微调将 mAP 进步了 8.0 个百分点,达到 54.2%。fc6 和 fc7 的微调带来的晋升要比 pool5 大得多,这表明从 ImageNet 学习到的 pool5 性能是通用的,大部分改良都是通过学习特定畛域的非线性分类器取得的。所有 R -CNN 变体的性能都显著优于三个 DPMBaseline(表 2 第 8 -10 行),包含应用性能学习的两个。与只应用 HOG 性能的最新版本 DPM 相比,R-CNN 的 mAP 进步了 20 多个百分点:54.2% 比 33.7%,绝对进步了 61%。HOG 和 sketch 令牌的组合比独自的 HOG 产生 2.5 个 mAP,而 HSC 比 HOG 进步了 4 个 mAP(与它们的专用 DPM Baseline 进行外部比拟时,两者都使用性能低于开源版本的非公开 DPM 实现)。这些办法别离实现了 29.1% 和 34.3% 的 MAP。

 在表 3 中,试验展现了应用 Simonyan 和 Zisserman 最近提出的 16 层深度网络进行 VOC 2007 测试的后果。该网络是最近 ILSVRC 2014 分类挑战赛中体现最好的网络之一。该网络具备由 13 层 3×3 卷积核组成的同质构造,其中交叉有 5 个最大池层,顶部有 3 个齐全连贯的层。对于 OxfordNet,试验将该网络称为“O-Net”,对于 TorontoNet,试验将 baseline 称为“T-Net”。

为了在 R -CNN 中应用 O -Net,试验从 Caffe 模型 Zoo1 下载了 VGG ILSVRC 16 层模型的公开预训练网络权重,而后应用与 T -Net 雷同的协定对网络进行微调。惟一的区别是依据须要应用较小的小批量(24 个示例),以适应 GPU 内存。表 3 中的结果表明,应用 O -Net 的 RCNN 显著优于应用 T -Net 的 R -CNN,将 mAP 从 58.5% 减少到 66.0%。然而,在计算工夫方面有一个相当大的毛病,O-Net 的向前传递大概比 T -Net 长 7 倍。

  成果:
R-CNN 在 pascal voc2007 上的检测后果从 DPM HSC 的 34.3% 间接晋升到了 66%(mAP)。R-CNN 速度慢的起因:对图像提取 region proposal(2000 个左右)之后将每个 proposal 当成一张图像进行后续解决(利用 CNN 提取特色+SVM 分类),实际上对一张图像进行了 2000 次提取特色和分类的过程。

2)Fast R-CNN(ICCV 2015)

Fast R-CNN 的算法原理:

 Fast R-CNN 算法步骤:
(1)输出待检测图像
(2)利用 Selective Search 算法在输出图像中提取出 2000 个左右的候选区域,
(3)将这些候选区域输出到 CNN 进行特征提取
(4)对于卷积特色层上的每个候选区域进行 RoI Pooling 操作,失去固定维度的 feature map;
(5)提取到的特色输出全连贯层,而后用 Softmax 进行分类,对候选区域的地位进行回归。

试验后果:
在 VOC07 上,试验比拟了 Fast R-CNN、R-CNN 和 SPPnet。所有办法都从雷同的预训练 VGG16 网络开始,并应用边界框回归。VGG16 SPPnet 后果由 SPPnet BB 的作者计算得出。SPPnet 在培训和测试期间应用五个量表。与 SPPnet 相比,Fast R-CNN 的改良表明,只管 Fast R-CNN 应用单尺度训练和测试,但微调 conv 层能够大幅提高 mAP(从 63.1% 进步到 66.9%)。R-CNN 取得了 66.0% 的 mAP。主要的一点是,SPPnet 在帕斯卡语中没有标记为“艰难”的例子。删除这些示例将 Fast R-CNN 映射进步到 68.1%。所有其余试验都应用“艰难”的例子。

 在 VOC 2010 and 2012 数据集中,试验将 Fast R-CNN(简称 FRCN)与公开排行榜 comp4(内部数据)上的顶级办法进行比拟(表 2,表 3)。对于 NUS NIN c2000 和 BabyLearning 办法,目前没有相干论文,试验无奈找到所用 ConvNet 体系结构的确切信息;它们是网络设计中网络的变体。所有其余办法都是从雷同的预训练 VGG16 网络初始化的。Fast R-CNN 以 65.7% 的 mAP 在 VOC12 上获得了最佳后果(额定数据为 68.4%)。

它也比其余办法快两个数量级,这些办法都基于“慢速”R-CNN 管道。在 VOC10 上,SegDeepM 取得了比 Fast R-CNN 更高的 mAP(67.2% 对 66.1%)。SegDeepM 在 VOC12 trainval 和分段正文上进行训练;通过应用马尔可夫随机场推理 O2P 语义宰割办法中的 R -CNN 检测和宰割,旨在进步 R -CNN 的准确性。疾速 R -CNN 能够替换为 SEGDEPM 代替 R -CNN,这可能会产生更好的后果。当应用扩充的 07++12 训练集(见表 2 题目)时,Fast R-CNN 的 mAP 减少到 68.8%,超过 SegDeepM。

 与 R -CNN 框架图比照,有两处不同:
(1)最初一个卷积层后加了一个 RoI(Regions of Interest) pooling layer;
(2)损失函数应用了多任务损失函数(multi-task loss),将边框回归间接退出到 CNN 网络中进行训练。

Fast R-CNN 改良:
(1)RoI pooling layer:SPP-NET 对每个 proposal 应用了不同大小的金字塔映射,将 RoI pooling layer 只须要下采样到一个 7×7 的特色图;
(2)应用 softmax 代替 SVM 分类,将多任务损失函数边框回归退出到网络中:除了 region proposal 提取阶段以外,其余的训练过程是端到端的;
(3)微调局部卷积层。

存在问题
要先提取 region proposal,没有实现真正意义上的端到端训练。

3)Faster R-CNN(ICCV 2015)

通过 R -CNN 和 Fast R-CNN 的积淀,Ross B. Girshick 在 2016 年的论文《Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks》提出了新的 Faster RCNN。Faster R-CNN 算法原理:

 整个网络能够分为四个局部:
(1)Conv layers。首先应用一组根底的 conv+relu+pooling 层提取 image 的 feature maps。该 feature maps 被共享用于后续的 RPN 层和全连贯层。
(2)Region Proposal Networks。RPN 网络用于生成 region proposals。该层通过 softmax 判断 anchors 属于 foreground 或者 background,再利用 bounding box regression 来修改 anchors 来取得准确 proposals。
(3)RoI Pooling。该层收集输出的 feature maps 和 proposals,送入后续全连贯层断定指标类别。
(4)Classifier。利用 proposal feature maps 计算 proposals 的类别,同时再次利用 bounding box regression 取得检测框最终的准确地位。

FASTER-RCNN 算法步骤:
(1)输出测试图像;
(2)将整张图片输出 CNN,进行特征提取;
(3)用 RPN 生成倡议窗口 (proposals),每张图片生成 300 个倡议窗口;
(4) 把倡议窗口映射到 CNN 的最初一层卷积 feature map 上;
(5)通过 RoI pooling 层使每个 RoI 生成固定尺寸的 feature map;
(6)利用 Softmax Loss(探测分类概率) 和 Smooth L1 Loss(探测边框回归)对分类概率和边框回归 (Bounding box regression) 联结训练. 

试验后果:
试验在 PASCAL VOC 2007 检测基准上综合评估了 FASTER-RCNN 的办法【11】。该数据集包含约 5k 个 TranVal 图像和超过 20 个对象类别的 5k 个测试图像。FASTER-RCNN 还提供了一些模型的 PASCAL VOC 2012 基准测试后果。对于 ImageNet 预训练网络,FASTER-RCNN 应用“疾速”版本的 ZF net[32],它有 5 个卷积层和 3 个齐全连贯层,以及公共 VGG-16 model7[3],它有 13 个卷积层和 3 个齐全连贯层。FASTER-RCNN 次要评估检测均匀精度(mAP),因为这是对象检测的理论度量(而不是关注对象倡议代理度量)。

表 2(顶部)显示了应用各种区域候选办法进行训练和测试时的 Fast R-CNN 后果。这些后果应用 ZF 网络。对于选 Selective Search(SS),试验通过“疾速”模式生成了大概 2000 个候选。对于 EdgeBoxes(EB),试验通过调整为 0.7 IoU 的默认 EB 设置生成提案。在疾速 R -CNN 框架下,SS 的 mAP 为 58.7%,EB 的 mAP 为 58.6%。应用 Fast R-CNN 的 RPN 获得了有竞争力的后果,在应用多达 300 个提议 8 的状况下,其 mAP 为 59.9%。因为共享卷积计算,应用 RPN 比应用 SS 或 EB 产生更快的检测零碎;更少的提案也升高了区域级齐全连贯层的老本(表 5)。

为了钻研 RPN 的行为作为一种倡议办法,试验进行了几项融化钻研。首先,试验展现了 RPN 和 Fast R-CNN 检测网络之间共享卷积层的成果。为此,试验在四步训练过程的第二步之后进行。应用独自的网络将后果稍微升高到 58.7%(RPN+ZF,非共享,表 2)。察看到这是因为在第三步中,当应用 detectortuned 特色微调 RPN 时,倡议品质失去了进步。

接下来,试验剖析了 RPN 对训练 Fast R-CNN 检测网络的影响。为此,试验应用 2000 SS 提案和 ZF 网络来训练 Fast R-CNN 模型。Fast R-CNN 修复此检测器,并通过更改测试时应用的倡议区域来评估检测图。在这些烧蚀试验中,RPN 与探测器不具备雷同的特色在测试时用 300 个 RPN 提案替换 SS,mAP 为 56.8%。mAP 中的损失是因为培训 / 测试提案之间的不统一。此后果作为以下比拟的基线。有些令人诧异的是,当在测试时应用排名前 100 的提案时,RPN 依然会导致竞争后果(55.1%),这表明排名前 100 的 RPN 提案是精确的。另一方面,应用排名靠前的 6000 个 RPN 计划(无 NMS)有一个可比的地图(55.2%),表明 NMS 不会侵害检测地图,并可能缩小误报。

接下来,Fast R-CNN 通过在测试时敞开其中一个来别离钻研 RPN 的 cls 和 reg 输入的作用。当在测试时删除 cls 层(因而不应用 NMS/ 排名)时,Fast R-CNN 从未评分区域随机抽取 N 个提案。当 N =1000 时,mAP 简直没有变动(55.8%),但当 N =100 时,mAP 显著降落至 44.6%。这表明 cls 分数阐明了排名最高的提案的准确性。

另一方面,当 reg 层在测试时被移除(因而提案成为锚定框)时,mAP 降落到 52.1%。这表明,高质量的提案次要是因为回归框界线。锚箱尽管具备多个刻度和纵横比,但不足以进行准确检测。试验还评估了更弱小的网络对 RPN 提案品质的影响。试验应用 VGG-16 来训练 RPN,并且依然应用上述 SS+ZF 检测器。mAP 从 56.8%(应用 RPN+ZF)进步到 59.2%(应用 RPN+VGG)。这是一个有心愿的后果,因为它表明 RPN+VGG 的提案品质优于 RPN+ZF。因为 RPN+ZF 的提案与 SS 具备竞争性(当继续用于培训和测试时,两者均为 58.7%),能够预期 RPN+VGG 优于 SS。以下试验证实了这一假如。VGG-16 的性能。

表 3 显示了 VGG-16 的倡议和检测后果。应用 RPN+VGG,非共享个性的后果为 68.5%,略高于 SS 基线。如上所示,这是因为 RPN+VGG 生成的提案比 SS 更精确。与预约义的 SS 不同,RPN 通过踊跃培训,并受害于更好的网络。对于性能共享变体,后果是 69.9%,比弱小的 SS 基线要好,但简直没有老本。试验进一步在 PASCAL VOC 2007 trainval 和 2012 trainval 的联结集上训练 RPN 和检测网络。mAP 为 73.2%。图 5 显示了 PASCAL VOC 2007 测试集的一些后果。

在 PASCAL VOC 2012 测试集(表 4)上,faster-RCNN 的办法在 VOC 2007 trainval+ 测试和 VOC 2012 trainval 的联结集上训练了 70.4% 的映射。表 6 和表 7 显示了具体的数据。

在表 5 中,试验总结了整个指标检测零碎的运行工夫。SS 须要 1 - 2 秒,具体取决于内容(均匀约 1.5 秒),而带有 VGG-16 的 Fast R-CNN 在 2000 个 SS 提案上须要 320ms(如果在齐全连贯的层上应用 SVD,则须要 223ms[2])。试验应用 VGG-16 的零碎在倡议和检测方面总共须要 198ms。共享卷积个性后,仅 RPN 就只需 10ms 即可计算额定的层。因为提案较少(每张图片 300 个),区域计算也较低。Faster RCNN 零碎在 ZF 网络上的帧速率为 17 fps。

相比 FAST R-CNN,次要两处不同:
(1)应用 RPN(Region Proposal Network)代替原来的 Selective Search 办法产生候选窗口;
(2)产生候选窗口的 CNN 和指标检测的 CNN 共享 次要奉献:提出了区域举荐网络(RPN,Region Proposal Networks),实现了真正意义上的端到端训练。

RPN 网络:
在提取特色的最初的卷积层上滑动一遍,利用 anchor 机制和边框回归,失去多尺度多长宽比的 region proposals。

Anchor 机制:

  对于提取特色的最初的卷积层的每一个地位,思考9个可能的候选窗口:三种面积(128128,256256,512512) 三种比例(1:1,1:2,2:1)。这些候选窗口称为 anchors。

退出移动版