学习笔记:Pytorch 搭建自己的Faster-RCNN目标检测平台

FasterR-CNN深度学习架构详解与PyTorch实现
本文介绍了FasterR-CNN框架,包括其结构、ResNet50主干特征提取、RPN建议框网络构建、Anchors先验框以及模型在VOC2007数据集上的训练过程。详细讲解了ResNet50模块和预训练权重加载,以及如何使用PyTorch进行实践。

B站学习视频
up主的csdn博客

1、什么是Faster R-CNN

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、pytorch-gpu环境配置(跳过)

3、Faster R-CNN整体结构介绍

在这里插入图片描述
Faster-RCNN可以采用多种的主干特征提取网络,常用的有VGG,Resnet,Xception等等。
Faster-RCNN对输入进来的图片尺寸没有固定,但一般会把输入进来的图片短边固定成600.

4、Resnet50-主干特征提取网络介绍

具体学习见:Resnet50

import math

import torch.nn as nn
from torch.hub import load_state_dict_from_url


class Bottleneck(nn.Module):
    expansion = 4 #最后一个卷积层输出通道数相对于输入通道数的倍数
    def __init__(self, inplanes, planes, stride=1, downsample=None):
        '''
        inplanes:输入通道数
        planes:卷积层输出的通道数
        stride:卷积的步长,默认为1
        downsample:是否对输入进行下采样
        '''
        super(Bottleneck, self).__init__()
        #使用1*1卷积核,压缩通道数
        self.conv1 = nn.Conv2d(inplanes, planes, kernel_size=1, stride=stride, bias=False)#二维卷积层
        self.bn1 = nn.BatchNorm2d(planes)#二维批归一化层
        #使用3*3卷积核,特征提取,padding=1,在输入的周围使用1个零填充,以保持特征图的尺寸
        self.conv2 = nn.Conv2d(planes, planes, kernel_size=3, stride=1, padding=1, bias=False)
        self.bn2 = nn.BatchNorm2d(planes)
        #使用1*1卷积核,扩张通道数
        self.conv3 = nn.Conv2d(planes, planes * 4, kernel_size=1, bias=False)
        self.bn3 = nn.BatchNorm2d(planes * 4)

        self.relu = nn.ReLU(inplace=True)
        self.downsample = downsample
        self.stride = stride

    def forward(self, x):
        residual = x#残差

        out = self.conv1(x)
        out = self.bn1(out)
        out = self.relu(out)

        out = self.conv2(out)
        out = self.bn2(out)
        out = self.relu(out)

        out = self.conv3(out)
        out = self.bn3(out)
        if self.downsample is not None:
            residual = self.downsample(x)

        out += residual
        out = self.relu(out)

        return out

class ResNet(nn.Module
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值