关于 Faster RCNN正负样本选取的问题

faster rcnn的解读这两篇文章写的很好,很清楚。面试时被问了这个问题,专门记录下来。

  1. 一文读懂Faster RCNN
  2. 从编程实现角度学习Faster R-CNN(附极简实现)

回顾fast rcnn样本选取问题

fast rcnn 框架
在faster rcnn 中,首先通过selective search 产生了2000个候选框,在进行一个批次训练的时候选择R_sel个框进行训练(文中batch size=128),一个mini-batch中正负样本的比例按照1:3选取,且与groundtruth的IoU>=0.5的为正样本,0.1<IoU<0.5的为负样本。
P.S. 这里设置为0.1的原因是,作者认为与groundtruth有一定交叠的背景更可能是比较困难的负样本,这样选择负样本有助于收敛和提高准确性,但不难发现,这种选取方法忽略了一些重要的及困难的背景区域。

faster rcnn的正负样本选取问题

faster rcnn相比fast rcnn,主要贡献之处在于提出了RPN(区域建议网络,Region Proposal Networks)

对于 R-CNN(Region-based Convolutional Neural Network)模型,正负样本的训练是通过以下步骤进行的: 1. 候选框生成:使用选择性搜索等方法生成一系列可能包含目标对象的候选框。 2. 标注数据:对于每个候选框,根据与真实目标框的重叠程度,将其标记为正样本(包含目标)或负样本(不包含目标)。通常,与真实目标框的 IoU(Intersection over Union)大于某个阈值的候选框被标记为正样本,而 IoU 小于另一个阈值的候选框被标记为负样本。 3. 特征提取:对于每个候选框,从原始图像中提取特征。可以使用预训练的卷积神经网络(如 VGG、ResNet 等)来提取图像特征。 4. 特征处理:将提取的特征输入到一个支持向量机(SVM)分类器中。SVM 是一种二分类器,用于区分正样本和负样本。 5. SVM 训练:使用正样本和负样本的特征向量作为训练数据,训练 SVM 模型。训练过程中,SVM 会根据特征向量的分布情况调整其决策边界,以最大化正样本的得分并最小化负样本的得分。 6. 损失计算:计算 SVM 分类器的损失函数。损失函数通常包括正样本的分类损失和负样本的分类损失。 7. 反向传播:通过反向传播算法,将损失函数的梯度传递给卷积神经网络的参数,更新网络参数,以调整特征提取器的性能。 需要注意的是,上述步骤仅仅是 R-CNN 中一种基于 SVM 的训练方式。后续的模型演进中,R-CNN 曾经采用 Fast R-CNNFaster R-CNN 的改进版本,使用了更高效的训练策略(如区域建议网络)和更准确的目标检测方法(如基于回归的边界框回归)来提升性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值