Faster-Rcnn

Loss3+Loss4 :用于训练 prediction_layer的网络参数

Loss1+Loss2 :用于训练 RPN的网络参数

1.prediction_layer解析

参数训练:通过Loss3+Loss4训练全连接层的参数

rol pooling:根据rois对net进行特征图裁剪为14*14的特征图,池化为7*7大小的特征图

特征扁平化:将[batch,height,weight,channel]特征图reshape为[batch,height*weight*channel]

其他:为全连接层

2.RPN网络解析

2.1 生成瞄点

2.2 卷积操作

将特征图通过卷积核(3*3@512)进行卷积,分别通过卷积核1(1*1@2*n n=9为每个图像特征点生成的瞄点数)生成特征图rpn_cls_score(形状[batch,height,weight,2*n]),前n为特征表示每个图像特征点对应的n个瞄点分类为背景类的得分,后n为特征表示每个图像特征点对应的n个瞄点分类为前景类的得分;卷积核2(1*1@4*n n=9为每个图像特征点生成的瞄点数)生成特征图rpn_bbox_pred(形状[batch,height,weight,4*n]),4*n个特征对应与net特征图像上每个点的n个瞄点的(△cent_x,△cent_y,△h,△w)

2.3 reshape层

将特征图rpn_cls_score(形状[batch,height,weight,2*n])reshape为rpn_cls_score_reshape(形状[batch,height*n,weight,2]),

二维特征分别为:瞄点分类为背景得分,瞄点分类为前景得分

2.4 soft max层

将rpn_cls_score_reshape通过soft max将得分转变为概率,(形状[batch,height*n,weight,2])

二维特征分别为:瞄点分类为背景概率,瞄点分类为前景概率

2.5 reshape层

将前一层的输出reshape为同rpn_cls_score相同的形状([batch,height,weight,2*n])

2*n维特征分别为:前n为特征表示每个图像特征点对应的n个瞄点分类为背景类的概率,后n为特征表示每个图像特征点对应的n个瞄点分类为前景类的概率

3.proposal_layer

说明:将瞄点anchors根据RPN网络预测进行调整,对越界瞄点进行修改,限定到特征图的大小,选取pre_nms_topN个前景得分最高的瞄点,进行NMS操作,后再选取前post_nms_topN个瞄点,并添加类标贴记为 blob

3.1将瞄点anchors根据rpn网络的rpn_bbox_pred进行调整,调整后的瞄点记为proposals

3.2将越界的proposals大小限定在特征图内

3.3取rpn_cls_prob后n维特征作(前景概率)记为scores

3.4获取概率最高的前pre_nms_topN个proposals,进行NMS(非极大值抑制)操作,去除部分瞄点

3.5取NMS后的前post_nms_topN个瞄点proposals,以及对应scores

3.6在proposals左侧添加一列值为0的特征,记为blob

blob.shape=(None,5)5个特征分别为:(0,x1,y1,x2,y2)

4.RPN网络与prediction_layer层的目标值的生成

4.1 RPN网络目标值的生成——anchor_target_layer

说明:首先构建未越界瞄点的labels,bbox_targets,bbox_inside_weights,bbox_outside_weights

           再构建越界瞄点的labels,bbox_targets,bbox_inside_weights,bbox_outside_weights

           最终生成所有瞄点的labels,bbox_targets,bbox_inside_weights,bbox_outside_weights

4.1.1去除越界的瞄点,构建瞄点对应的标签labels,默认-1

4.1.2计算瞄点与目标边框的IOU值,

        将瞄点与多个目标边框的IOU最大值小于0.3的label置为0(背景点)

        将每个目标边框与其相交的瞄点IOU值最大的多个瞄点的label置为1(前景点)

        将与目标边框IOU大于0.7的瞄点的label置为1(前景点)

4.1.3前景点数如果大于128个,则随机将对应的m1(前景点数-128)个labels置-1

       背景点数如果大于(256-前景点数)个,则随机将对应的m2(背景点数-(256-前景点数))个labels置-1

4.1.4计算瞄点与目标边框的偏差bbox_targets shape=[None,4](targets_dx, targets_dy, targets_dw, targets_dh)

4.1.5生成bbox_inside_weights shape=[None,4]将label=1的前景点对应值置为(1,1,1,1),其他均为(0,0,0,0)

        生成bbox_outside_weights  shape=[None,4] 将label=1的前景点对应值置为(a,a,a,a)a=1/(前景点+背景点个数和),

        其他   均为(0,0,0,0)

4.1.6构建所有瞄点对应的标签(包括越界的瞄点),越界瞄点的label置为-1,

       构建所有瞄点的目标边框(包括越界的瞄点),越界瞄点的bbox_targets值为0,

       构建所有瞄点的目标边框输入权重(包括越界的瞄点),越界瞄点的bbox_inside_weights值为0,

       构建所有瞄点的目标边框输出权重(包括越界的瞄点),越界瞄点的bbox_outside_weights值为0,

4.1.7修改形状

       labels((1, 1, A * height, width))

       bbox_targets((1, height, width, A * 4))

       bbox_inside_weights((1, height, width, A * 4))

       bbox_outside_weights((1, height, width, A * 4))

4.2 prediction_layer 目标值的生成——proposal_target_layer

说明:将与瞄点IOU值最大的目标边框作为瞄点的目标边框,随机选择N1个IOU大于0.5的作为前景瞄点,0.1<IOU<0.5的作为背景瞄点,将背景瞄点的label置为0,生成训练需要的目标值

4.2.1 计算经proposal_layer调整的 瞄点all_rois(对应图上的rois)与目标边框的IOU值,overlaps[i,j]为第i个all_rois与g第j个gt_boxes的IOU值

4.2.2 将每个瞄点与多个目标边框的IOU值最大的作为该瞄点的目标边框

4.2.3 将每个瞄点与对应的目标边框IOU大于0.5的作为前景瞄点,0.1<IOU<0.5的作为背景瞄点

4.2.4 随机选取N1个前景瞄点,N2个背景瞄点,并获取对应目标边框的所属类,将N2个背景瞄点对应的所属类置为0

得到经过随机选择的N1+N2 瞄点,记为rois,并从rois_score中取对应的瞄点得分值,记为roi_scores,以及对应的所属类,记为labels

4.2.5 计算瞄点需要的偏移量,并将对应瞄点的所属类进行堆叠,生成bbox_target_data.shape=[None,5],(label,dx,dy,dw,dh)

4.2.6 生成形状为(瞄点数, 4 * num_classes)的两个变量bbox_targets(最终需要的边框目标值),bbox_inside_weights

将bbox_target_data中所属类labels>0的瞄点的(dx,dy,dw,dh),写入bbox_targets中,并将bbox_inside_weights中对应位置置为1

最终得到经过筛选的 labels, rois, roi_scores, bbox_targets, bbox_inside_weights

 

 

 

 

 

 

Faster-RCNN是一种用于目标检测的深度学习网络模型。它是在R-CNN和Fast RCNN的基础上发展而来的,通过将特征抽取、proposal提取、bounding box regression和classification整合在一个网络中,提高了综合性能和检测速度。[2] Faster-RCNN的训练过程可以分为以下几个步骤: 1. 使用一个预训练的卷积神经网络(如VGG16)来提取图像的特征。 2. 在特征图上使用Region Proposal Network (RPN) 来生成候选目标框(proposals)。 3. 使用这些候选目标框和真实标签来计算损失函数,并通过反向传播来更新网络参数,以使网络能够更好地预测目标框的位置和类别。 4. 使用训练好的RPN来生成候选目标框,并将这些候选目标框输入到网络中进行分类和边界框回归。 5. 通过计算损失函数并反向传播来更新网络参数,以进一步提高检测性能。 6. 可以进行多次迭代的训练,每次迭代都使用之前训练好的网络来初始化网络参数,并继续训练网络。[3] Faster-RCNN的网络结构包括一个共享的卷积层(用于特征提取)和两个分支:一个用于生成候选目标框的RPN,另一个用于对这些候选目标框进行分类和边界框回归。通过共享卷积层,Faster-RCNN能够在不同尺度的特征图上进行目标检测,从而提高检测的准确性和效率。[2] 总结来说,Faster-RCNN是一种用于目标检测的深度学习网络模型,通过整合特征抽取、proposal提取、bounding box regression和classification,提高了综合性能和检测速度。它的训练过程包括特征提取、候选目标框生成、分类和边界框回归等步骤。[2][3]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值