YOLOV3网络搭建 and 代码复现Pytorch and 元器件检测

本文详细介绍了YOLOV3的主干网络DarkNet53的结构及其特点,包括残差网络的设计和DarknetConv2D操作。接着,通过Python代码展示了DarkNet53的搭建过程,以及如何利用特征加强和YoloHead进行结果预测。最后,给出了源码地址和训练后的电容检测效果。

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

目录

一. YOLOV3 网络

1.主干网络DarkNet53

二. 代码复现        

1.DarkNet53搭建

2.特征加强 and 结果预测​编辑

3. 源码地址

三. 检测效果


一. YOLOV3 网络

1.主干网络DarkNet53

YoloV3所使用的主干特征提取网络为Darknet53,它具有两个重要特点:
1、Darknet53具有一个重要特点是使用了残差网络Residual(残差结构可以在"分类"栏中的ResNet中了解)...... 。通过不断的1X1卷积和3X3卷积以及残差边的叠加,我们便大幅度的加深了网络。残差网络的特点是容易优化,并且能够通过增加相当的深度来提高准确率。其内部的残差块使用了跳跃连接,缓解了在深度神经网络中增加深度带来的梯度消失问题。

2、Darknet53的每一个卷积部分使用了特有的DarknetConv2D结构,每一次卷积的时候进行l2正则化,完成卷积后进行BatchNormalization标准化与LeakyReLU。普通的ReLU是将所有的负值都设为零,Leaky ReLU则是给所有负值赋予一个非零斜率。以数学的方式我们可以表示为:

Fig1. DarkNet53结构表 

画成流程图如下,更好理解:

上述流程图的关键字均与下面列出的代码中的参数名一样, 对照网络结构看代码 更易于理解。 

二. 代码复现
        

1.DarkNet53搭建

import math
from collections import OrderedDict

import torch.nn as nn


#---------------------------------------------------------------------#
#   残差块结构
#   利用一个1x1卷积下降通道数,然后利用一个3x3卷积提取特征并且上升通道数
#   最后接上一个残差边
#---------------------------------------------------------------------#
class BasicBlock(nn.Module):
    def __init__(self, inplanes, planes):
        super(BasicBlock, self).__init__()
        self.conv1 = nn.Conv2d(inplanes, planes[0], kernel_size=1, stride=1, padding=0, bias=False)
        self.bn1   = nn.BatchNorm2d(planes[0])
        self.relu1 = nn.LeakyReLU(0.1)

        self.conv2 = nn.Conv2d(planes[0], planes[1], kernel_size=3, stride=1, padding=1, bias=False)
        self.bn2   = nn.BatchNorm2d(planes[1])
        self.relu2 = nn.LeakyReLU(0.1)

    def forward(self, x):
        residual = x

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

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

        out = out + residual

        return out

class DarkNet(nn.Module):
    def __ini
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值