FasterRCNN源码解析(三)——网络框架

本文是对FasterRCNN源码的解析,主要涵盖网络框架的各个环节:数据预处理、Backbone、RPN、Fast RCNN后半部分以及后处理步骤。详细介绍了各个模块的功能和参数设置,帮助读者理解FasterRCNN的工作流程。
摘要由CSDN通过智能技术生成

FasterRCNN源码解析——网络框架



前言

主要是对哔哩哔哩up主霹雳吧啦Wz所讲解的视频Faster RCNN源码解析(pytorch)进行一个总结回顾,以加深印象。


一、FasterRCNN流程图

FasterRCNN

黄色虚线框代表只有在训练过程中才有的部分

二、框架

在faster_rcnn/network_files/faster_rcnn_framework.py脚本中

1. FasterRCNNBase

1.__init__

在初始化函数当中我们会传入backbone, rpn, roi_heads, transform四个参数分别对应框架图的四个部分

    def __init__(self, backbone, rpn, roi_heads, transform):
        super(FasterRCNNBase, self).__init__()
        self.transform = transform
        self.backbone = backbone
        self.rpn = rpn
        self.roi_heads = roi_heads
        # used only on torchscript mode
        self._has_warned = False
2.forward

传入的是 图片以及其标签,也就是读取解析PASCAL VOC2012数据集一文中的__getitem__方法输出的imagetarget(type: (List[Tensor], list[Dict[Tensor]]))
这里输入的images的大小都是不同的,后面会进行预处理将这些图片放入同样大小的tensor中打包成一个batch

    def forward(self, images, targets=None):
        # type: (List[Tensor], Optional[List[Dict[str, Tensor]]]) -> Tuple[Dict[str, Tensor], List[Dict[str, Tensor]]]
        """
        Arguments:
            images (list[Tensor]): images to be processed
            targets (list[Dict[Tensor]]): ground-truth boxes present in the image (optional)

        Returns:
            result (list[BoxList] or dict[Tensor]): the output from the model.
                During training, it returns a dict[Tensor] which contains the losses.
                During testing, it returns list[BoxList] contains additional fields
                like `scores`, `labels` and `mask` (for Mask R-CNN models).

        """
1.对数据进行数据预处理

两个操作1,标准化 2.限定输入图像最小边长和最大边长
在这里插入图片描述


                
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值