当前位置:网站首页>从零复现PyTorch版(2)
从零复现PyTorch版(2)
2022-07-16 21:35:00 【鹿衔草啊】
从零复现PyTorch版(与行人车辆检测实战)(2)
Yolov4网络结构和代码构建(1)
1. 项目介绍
Yolov4 网络结构和组件
Yolov3的回顾,Yolov4的整体框图介
绍,各个子模块的具体含义
Backbone
CSPNet等最新的提升性能技术
Neck
FPN+PANNET自顶向下+自低向上双
向多尺度融合, SPP金字塔池化
Yolo Head
头部的DECODE和ENCODE过程,和
Yolov3基本一致
Yolov3整整个部分由CBL,Resn,上采样,concat,yolo头组成,咱们后面使用
pytorch实现代码YOLOV3的backbone的时候也会依据图中的基础模块进行封装,
这样更便于大家理解。
2. 为什么要用残差模块?
早期的网络无法太深
在早期的VGG中,卷积网络达到了19层,在早期的GoogLeNet中,网络史无前例的达到了22层。现象随着网络层数的增加,网络发生了退化(degradation)的现象:深随着网络层数的增多,训练集loss逐渐下降,然后趋于饱和,当你再增加网络度的话,训练集loss反而会增大。
如何解决?
当网络退化时,浅层网络能够达到比深层网络更好的训练效果,这时如果我们把低层的特征传到深层,那么效果应该至少不比浅层的网络效果差残差网络由此而生!!!
CBL:包含卷积+BN+激活3个层组成
RESn:先经过一个DBL再+N个Res unit单元组成
Res unit:则是一个经典的Resnet残差模块,一个输入分别经过2个DBL,和直连,再进行
相加,这一经典的连接目前也大量应用到了各种网络中,包括后面的YOLOV4也是在此基础上的衍生。
假定输出入图尺寸是416x416,从网络的输入来看,一共输出3个分别Y1,Y2,Y3特征图向量,形状依次为13x13x(4+obj+class), 26x26x(4+obj+class),52x52x(4+obj+class), 其 中Y1尺寸最小具有更丰富的语义信息,而Y3最大具有更多的表征和空间信息,Y2则处于二者之间。
FPN网络结构
使用特征融合方式问题,特征融合的方式只是单方向的,即将小的特征往大特征图进行融合,而大特征图得到了另2个特征图的融合信息,但是大特征图并没有往小特征图方向融合,这也是后面YOLOV4的一个优化位置。
假定图片输入尺寸为416X416X3,图中在RES4之前则为Darknet53的网络,属于算法的backbone部分,之后经过5个DBL和DBL+Conv后得到一个13X13X255的特征图向量,从尺寸从416到13,经过分别经过了5次下采样,即缩小了32倍,这是提取的最小的一个特征图,具备图像更多的语义信息。
3. Yolov4 整体网络结构和组件

CBM:
卷积+BN层+Mish激活函数
CBL:
卷积+BN层+LeakyRelu激活e函数
SPP:
这个也算是一个创新点了,一个特征图经过3个最大池化+一个直连,最后通过拼接得到输出。
CSPX:
CSP网络结构再Res残差模块基础上又新加入了一个卷积分支再拼接到一起

4. Neck颈部原理
FPN+PANET等多尺度融合金字塔网络,这个地方区别于YOLOV3中,也算是一个创新点
FPN+PANET通过自底向上和自顶向下的方式,实现双方向的特征图融合,使得最终输出的3个特征图都具有了其他尺寸特征图的信息来提高准确。而再YOLOV3中只使用了自底向上单个方向的特征图融合。
边栏推荐
- Unpacking: what books are Ali technicians reading?
- Multithreaded application
- Interviewer: tell me about the most valuable bug you found in your work
- 二分查找题目汇总
- Instance Noise A trick for stabilising GAN training
- Robotics xm430-w350 pan tilt motor usage record
- canal-deployer canal-adapter镜像构建,部署
- leetcode-两数相加
- 广州铁骑霸气“公主抱”,安全感拉满!
- Cloud native: docker's practical experience (IV) deploying redis three master and three slave clusters on docker
猜你喜欢

Deep analysis of fiboracci sequence

深入了解arduino舵机控制库文件Servo.h

【百度飞桨】手写数字识别模型部署Paddle Inference

Robotics xm430-w350 pan tilt motor usage record

【开发教程1】开源蓝牙心率防水运动手环-套件检测教程

How to set the thickness of lines in a three line table

Preliminary test of ZVS circuit

Buffer Pool生产实践

【开发教程3】疯壳·ARM功能手机-整板资源介绍

Jvm-sandbox leads to the investigation of the target service JVM Metaspace oom
随机推荐
常用放大器基础知识(上)
Send papers! AI, machine learning, CV boss scientific research project enrollment!
Comparative investigation of three commonly used time series databases - incluxdb, Prometheus, iotdb
What are the efficient test methods for app regression testing?
9、学会查看GC日志
20220715 domestic CONDA does not FQ the method of installing the latest version of pytoch
第四章 指令系统
Progress [detailed summary]
Mysql内部架构
[C language] explanation and Simulation Implementation of strlen function
Tableqa technology of Ali Dharma academy makes tables speak
How is your MySQL server? More than 3.6 million units worldwide have been exposed to the Internet...
ngrx store 状态管理
canal-deployer canal-adapter镜像构建,部署
Learning record: FSMC - extended external SRAM
Dialogue with machines, Ali Dharma academy challenges the new generation of man-machine dialogue Technology
ACM板子
学习记录:FSMC—扩展外部SRAM
Three scenarios take you to unit testing
"Interface automation" software tests the core skills of salary increase and increases salary by 200%