Faster Rcnn源码阅读之faster_rcnn

本文主要关注Faster R-CNN的源码实现,特别是faster_rcnn.py中的关键部分。初始化阶段设置类别数和是否为类不敏感,还包括分类损失和边界框偏移损失。_init_weights函数用于参数初始化。在forward过程中,输入包括图片、图片信息、标注框和类别数,输出包含预测框、分类概率、边界框偏移、损失函数值等。后续计划在理解论文基础上继续解析代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

此代码位于 lib/model/faster_rcnn
这个文件夹下的resnet.py和vgg16.py是用训练好的模型提取图片特征。

重点看一下faster_rcnn.py 代码
1,初始化

1,classes ,具体什么作用还不知道
2,class_agnostic,是否专类
def init(self, classes, class_agnostic):
super(_fasterRCNN, self).init()
self.classes = classes
//类别的数量
self.n_classes = len(classes)
self.class_agnostic = class_agnostic
# 初始化分类loss和边框偏移loss
self.RCNN_loss_cls = 0
self.RCNN_loss_bbox = 0
# 定义rpn网络
self.RCNN_rpn = _RPN(self.dout_base_model)
self.RCNN_proposal_target = _ProposalTargetLayer(self.n_classes)
self.RCNN_roi_pool = _RoIPooling(cfg.POOLING_SIZE, cfg.POOLING_SIZE, 1.0/16.0)
self.RCNN_roi_align = RoIAlignAvg(cfg.POOLING_SIZE, cfg.POOLING_SIZE, 1.0/16.0)
self.grid_size = cfg.POOLING_SIZE * 2 if cfg.CROP_RESIZE_WITH_MAX_POOL else cfg.POOLING_SIZE
self.RCNN_roi_crop = _RoICrop()

2,第二个函数是:_init_weights
主要初始化参数,RCNN_cls_score roi分类的打分。RCNN_bbox_pred,偏移的打分。

3,forward:
输入:

1, im_data,图片
2,im_info,图片信息(宽高)
3,gt_boxes,标注信息
4,num_boxes分类数目

输出:

1,rois,预测框 测试条件下,通过rpn中的proposal_layer 拿到
训练条件下,通过rpn中proproposal_target_layer 拿到
2,cls_prob 对cls_core 进行一个softmax
3,bbox_pred bbox的offset
4,RCNN_loss_cls(cls_score和rois_label 的交叉熵.
5,RCNN_loss_bbox,预测偏差和实际偏差的偏移的误差
6,rpn_loss_cls cls的loss,rpn中获得
7,rpn_loss_bbox(),rpn中获得
8,rois_label,每个rois的分类

后续需要在对代码详细理解的基础上,学习normal_init是如何生成各项数据的。

之后的代码我准备在阅读论文之后,再进行解析。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值