为了之后更加顺利理解RCNN模型,在这篇博文中我们将主要介绍RCNN及其改进版本——Fast RCNN和Faster RCNN中一个重要模块——边界框回归(Bounding-Box Regression 因此掌握边界框回归(Bounding-Box Regression)是极其重要的,这是熟练使用RCNN系列模型的关键一步,也是代码实现中比较重要的一个模块。 接下来,我们对边界框回归(Bounding-Box Regression)进行详细介绍。 首先我们对边界框回归的输入数据集进行说明。输入到边界框回归的数据集为 ? ,其中 ? , ? 。 ?
proposal相交,且IoU(intersection over union,即相交面积比这两个proposal的并集面积之比)小于于一定阈值的情况下,则抛弃该proposal 正负样本比例应该在1;3左右 Bounding-box Bounding-box Regression训练的过程中,输入数据为N个训练对 ? 其中 ? 总的来说设计Bounding-box回归是为了使得提高定位效果,就是在原来定位的基础上进行微调使得,定位更加准确。如下图: ?
进行spatial derate timing 分析 GBA bounding-box mode GBA chip-size mode PBA bounding-box mode GBA bounding-box mode GBA 模式,工具不精确计算每一条path 的bounding-box, 针对一对startpoint-endpoint 从common point 起将该对timing check point GBA Bounding-box 只能用于design-level spatial derate table, 不能用于cell-level spatial derate table; GBA Bounding-box PBA bounding-box mode PBA 模式,如果物理坐标数据可用,工具会针对每一条path 计算一个精确的distance 值;如果物理坐标数据不可用,工具将默认使用芯片的尺寸来获得距离参数 PBA bounding-box mode, spatial derate 针对timing path 上的cell 设置,可以分别针对data, clock, net, cell 跟不同电压进行设置。
学习 bounding-box 回归器. 训练的空间和时间代价较高. 训练 SVM 和 bounding-box 回归器时,需要对每张图像的每个 object proposal 进行特征提取,并写入磁盘. 但,SPPNet 的明显缺点在于: 类似于 R-CNN,其训练也是 multi-stage 的,包括,特征提取,利用 log loss 微调网络,训练 SVMs 分类器,以及拟合 bounding-box 对于每个 RoI,网络有两个输出向量:softmax 概率和 per-class bounding-box 回归偏移值. Fast R-CNN 联合训练 softmax 分类器和 bounding-box 回归起,而分别训练 softmax 分类器,SVMs,回归器. image.png image.png image.png
在 COCO 的 instance segmentation, bounding-box object detection, person keypoint detection 三类竞赛均取得 top Mask R-CNN 网络分支: 每个候选 object 的 class label - Faster R-CNN 每个候选 object 的 bounding-box offset —— Faster Lbox+LmaskL=Lcls+Lbox+LmaskL= L_{cls} + L_{box} + L_{mask} LclsLclsL_{cls} - 分类 loss LboxLboxL_{box} - bounding-box Backbone2:ResNet-FPN Head 网络 —— 用于对每个 RoI 分别进行 bounding-box 识别(分类和回归) 和 mask 预测. ? 在这些 proposals 上,采用 bounding-box 网络分支和 NMS 来预测 box. 然后,采用 mask 网络分支对最高 score 的100 个检测 boxes 进行处理.
最新发布的Open Images V4包含190万图像、600个种类,1540万个bounding-box标注,是当前最大的带物体位置标注信息的数据集。 ? 比如: 训练集包含500类170万张图片,带有1220万处bounding-box标注; 比其他挑战赛有更广泛的检测类别,比如“雪人”等新对象; 除了物体检测,还设置了视觉关系检测,用来识别特定关系中的物体对
Each set of 4 values encodes refined bounding-box positions for one of the K classes. 在 Fast R-CNN 中 jointly optimizes a softmax classifier and bounding-box regressors 代替 training a softmax SVMs, and regressors in three separate stages Multi-task loss jointly train for classification and bounding-box regression OverFeat [19], R-CNN [9], and SPPnet [11] also train classifiers and bounding-box localizers
通过形态学操作,包括扩张和侵蚀(图1d),更多噪声边缘像素被过滤掉,连接边缘像素的最小Bounding-Box被检测到。太小的Bounding-Box最后被丢弃(图1e)。 ? 其中,W组成的Bounding-Box被表示为i,如果i=arg max_i |W∩Si|,其中|·|表示输入单词的个数。 如果识别的Bounding-Box里的文字与任何Si都不匹配,这个Bounding-Box被视为噪音并丢弃。
其产生 k 个 bounding-box proposals, 每一个 box proposal 有两个分数, 分别表示该 box 中是 object 的概率. anchor 用于寻找 boxes proposals regression 分支输出预测的边界框bounding-box: (x, y, w, h). classification 分支输出一个概率值, 表示 bounding-box 中是否包含 object (classid = 1), 或者是 background (classid = 0), no
通过形态学操作,包括扩张和侵蚀(图1d),更多噪声边缘像素被过滤掉,连接边缘像素的最小Bounding-Box被检测到。太小的Bounding-Box最后被丢弃(图1e)。 ? 其中,W组成的Bounding-Box被表示为i,如果i=arg max_i |W∩Si|,其中|·|表示输入单词的个数。 如果识别的Bounding-Box里的文字与任何Si都不匹配,这个Bounding-Box被视为噪音并丢弃。
通过形态学操作,包括扩张和侵蚀(图1d),更多噪声边缘像素被过滤掉,连接边缘像素的最小Bounding-Box被检测到。太小的Bounding-Box最后被丢弃(图1e)。 ? 其中,W组成的Bounding-Box被表示为i,如果i=arg max_i |W∩Si|,其中|·|表示输入单词的个数。 如果识别的Bounding-Box里的文字与任何Si都不匹配,这个Bounding-Box被视为噪音并丢弃。
超出边界的不考虑】,对于一个W×H的特征图,就会产生W×H×k个区域建议; ③步骤②中的低维特征向量输入两个并行连接的卷积层2:reg窗口回归层【位置精修】和cls窗口分类层,分别用于回归区域建议产生bounding-box RPN网络中bounding-box回归怎么理解?同Fast R-CNN中的bounding-box回归相比有什么区别? 对于bounding-box回归,采用以下公式: tx=(x−xa)/waty=(y−ya)/ha tw=log(w/wa)th=log(h/ha) t∗x=(x∗−xa)/wat∗y= 回归; RPN网络中bounding-box回归的实质其实就是计算出预测窗口。 回归所输入的特征是在特征图上对任意size的RoIs进行Pool操作提取的,所有size RoI共享回归参数,而在Faster R-CNN中,用来bounding-box回归所输入的特征是在特征图上相同的空间
但这个红框里面的loss函数 谁能解释下 Answer: 好多同学问过这个问题,一直没时间整理,下面是我对Bounding-box regression的理解,图片可能不是很清晰。 ? ? ? ?
如MS COCO数据集;OHEM结合其它目标检测改进策略(比如multiscale testing、iterative bounding-box regression等),OHEM在PASCAL VOC Map,然后提一个fixed-length的Feature Vector,将Feature Vector输入给FC Layer,最终得到两个输入结果:1)softmax,所有类别和背景的概率分布;2) bounding-box 4.2 PASCAL VOC and MS COCO数据集上的测试效果 4.3 Multi-scale与Iterative bounding-box regression OHEM结合Multi-scale 和Iterative bounding-box reg策略,在VOC07数据集上得到了State-Of-Art的75.1%的结果。
进行spatial derate timing 分析 GBA bounding-box mode GBA chip-size mode PBA bounding-box mode GBA bounding-box mode GBA 模式,工具不精确计算每一条path 的bounding-box, 针对一对startpoint-endpoint 从common point 起将该对timing check point GBA Bounding-box 只能用于design-level spatial derate table, 不能用于cell-level spatial derate table; GBA Bounding-box PBA bounding-box mode PBA 模式,如果物理坐标数据可用,工具会针对每一条path 计算一个精确的distance 值;如果物理坐标数据不可用,工具将默认使用芯片的尺寸来获得距离参数 PBA bounding-box mode, spatial derate 针对timing path 上的cell 设置,可以分别针对data, clock, net, cell 跟不同电压进行设置。
要解决的问题 1、RCNN和SPPnet分多步训练,先要fine tuning一个预训练的网络,然后针对每个类别都训练一个SVM分类器,最后还要用regressors对bounding-box进行回归 其次,将网络的最后一个完全连接层和softmax替换为先前描述的两个同级层(K + 1类的完全连接层和softmax以及特定于类别的bounding-box regressors)。
(2) 为什么要做Bounding-box regression? ? 那么即便红色的框被分类器识别为飞机,但是由于红色的框定位不准(IoU<0.5),那么这张图相当于没有正确的检测出飞机.如果我们能对红色的框进行微调,使得经过微调后的窗口跟Ground Truth更接近,这样岂不是定位会更准确.确实,Bounding-box (4) Bounding-box regression(边框回归) 那么经过何种变换才能从图11中的窗口P变为窗口呢?比较简单的思路就是: ? ? 线性回归就是给定输入的特征向量X,学习一组参数W,使得经过线性回归后的值跟真实值Y(Ground Truth)非常接近.即.那么Bounding-box中我们的输入以及输出分别是什么呢? ?
如右图所示,我们做了一个实验,让10个标定人员进行标定,蓝色表示 Bounding-box (边界框)标定方法,黄色是基于线段的标定方法,对于大尺度对象和小尺度对象,ground truth 的平均 IOU 它的核心想法非常简单,即 Bounding-box 表示方法会影响极小目标的检出率,所以我们需要为小目标单独设计一种生成信息的方式,我们通过 Bounding-box 上下两点中心,做了一个连线,即把原来用一个 Bounding-box 表示一个物体的表示方式,变成了用一个线段表示一个人体,上端表示头,下端表示人与头之间的中心。
48\times 48\times3 ,这三种大小分别对应了以下三个阶段模型的输入 阶段1(Proposal Network): 对上述的图像金字塔中 12\times 12\times 3 的图像提取Bounding-Box ,并利用NMS过滤掉大部分的窗口 阶段2(Refine Network): 对上述的图像金字塔中 24\times 24\times 3 的图像,根据阶段1中提取出的Bounding-Box进一步修正, 去除掉不符合要求的bounding box 阶段3(Output Network): 对上述的图像金字塔中 48\times 48\times 3 的图像,根据阶段2中提取出的Bounding-Box进行最终的分析
(4)对于每一个 bounding-box 分配 ResNet-152 的 top-1 score 所对应的 label; 3. 各数据集的上界 (1) PASCAL VOC ? (2)COCO ?