YOLOv5网络详解_yolov5网络结构详解(1),2024年最新程序员必会知识

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上网络安全知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip204888 (备注网络安全)
img

正文

1.5

×

640

0.5 \times 640 \sim 1.5 \times 640

0.5×640∼1.5×640之间随机取值,注意取值时取得都是32的整数倍(因为网络会最大下采样32倍)。

  • AutoAnchor(For training custom data),训练自己数据集时可以根据自己数据集里的目标进行重新聚类生成Anchors模板。
  • Warmup and Cosine LR scheduler,训练前先进行Warmup热身,然后在采用Cosine学习率下降策略。
  • EMA(Exponential Moving Average),可以理解为给训练的参数加了一个动量,让它更新过程更加平滑。
  • Mixed precision,混合精度训练,能够减少显存的占用并且加快训练速度,前提是GPU硬件支持。
  • Evolve hyper-parameters,超参数优化,没有炼丹经验的人勿碰,保持默认就好。

4 其他

4.1 损失计算

YOLOv5的损失主要由三个部分组成:

  • Classes loss,分类损失,采用的是BCE loss,注意只计算正样本的分类损失。
  • Objectness lossobj损失,采用的依然是BCE loss,注意这里的obj指的是网络预测的目标边界框与GT Box的CIoU。这里计算的是所有样本的obj损失。
  • Location loss,定位损失,采用的是CIoU loss,注意只计算正样本的定位损失。

L

o

s

s

=

λ

1

L

c

l

s

λ

2

L

o

b

j

λ

3

L

l

o

c

Loss=\lambda_1 L_{cls} + \lambda_2 L_{obj} + \lambda_3 L_{loc}

Loss=λ1​Lcls​+λ2​Lobj​+λ3​Lloc​
其中,

λ

1

,

λ

2

,

λ

3

\lambda_1, \lambda_2, \lambda_3

λ1​,λ2​,λ3​为平衡系数。

4.2 平衡不同尺度的损失

这里是指针对三个预测特征层(P3, P4, P5)上的obj损失采用不同的权重。在源码中,针对预测小目标的预测特征层(P3)采用的权重是4.0,针对预测中等目标的预测特征层(P4)采用的权重是1.0,针对预测大目标的预测特征层(P5)采用的权重是0.4,作者说这是针对COCO数据集设置的超参数。

L

o

b

j

=

4.0

L

o

b

j

s

m

a

l

l

1.0

L

o

b

j

m

e

d

i

u

m

0.4

L

o

b

j

l

a

r

g

e

L_{obj} = 4.0 \cdot L_{obj}^{small} + 1.0 \cdot L_{obj}^{medium} + 0.4 \cdot L_{obj}^{large}

Lobj​=4.0⋅Lobjsmall​+1.0⋅Lobjmedium​+0.4⋅Lobjlarge​

4.3 消除Grid敏感度

在上篇文章YOLOv4中有提到过,主要是调整预测目标中心点相对Grid网格的左上角偏移量。下图是YOLOv2,v3的计算公式。

在这里插入图片描述

其中:

  • t

x

t_x

tx​是网络预测的目标中心

x

x

x坐标偏移量(相对于网格的左上角)

  • t

y

t_y

ty​是网络预测的目标中心

y

y

y坐标偏移量(相对于网格的左上角)

  • c

x

c_x

cx​是对应网格左上角的

x

x

x坐标

  • c

y

c_y

cy​是对应网格左上角的

y

y

y坐标

  • σ

\sigma

σ是Sigmoid激活函数,将预测的偏移量限制在0到1之间,即预测的中心点不会超出对应的Grid Cell区域

关于预测目标中心点相对Grid网格左上角

(

c

x

,

c

y

)

(c_x, c_y)

(cx​,cy​)偏移量为

σ

(

t

x

)

,

σ

(

t

y

)

\sigma(t_x), \sigma(t_y)

σ(tx​),σ(ty​)。YOLOv4的作者认为这样做不太合理,比如当真实目标中心点非常靠近网格的左上角点(

σ

(

t

x

)

\sigma(t_x)

σ(tx​)和

σ

(

t

y

)

\sigma(t_y)

σ(ty​)应该趋近与0)或者右下角点(

σ

(

t

x

)

\sigma(t_x)

σ(tx​)和

σ

(

t

y

)

\sigma(t_y)

σ(ty​)应该趋近与1)时,网络的预测值需要负无穷或者正无穷时才能取到,而这种很极端的值网络一般无法达到。为了解决这个问题,作者对偏移量进行了缩放从原来的

(

0

,

1

)

(0, 1)

(0,1)缩放到

(

0.5

,

1.5

)

(-0.5, 1.5)

(−0.5,1.5)这样网络预测的偏移量就能很方便达到0或1,故最终预测的目标中心点

b

x

,

b

y

b_x, b_y

bx​,by​的计算公式为:

b

x

=

(

2

σ

(

t

x

)

0.5

)

c

x

b

y

=

(

2

σ

(

t

y

)

0.5

)

c

y

b_x = (2 \cdot \sigma(t_x) - 0.5) + c_x \ b_y = (2 \cdot \sigma(t_y) - 0.5) + c_y

bx​=(2⋅σ(tx​)−0.5)+cx​by​=(2⋅σ(ty​)−0.5)+cy​
下图是我绘制的

y

=

σ

(

x

)

y = \sigma(x)

y=σ(x)对应before曲线和

y

=

2

σ

(

x

)

0.5

y = 2 \cdot \sigma(x) - 0.5

y=2⋅σ(x)−0.5对应after曲线,很明显通过引入缩放系数scale以后,

y

y

y对

x

x

x更敏感了,且偏移的范围由原来的

(

0

,

1

)

(0, 1)

(0,1)调整到了

(

0.5

,

1.5

)

(-0.5, 1.5)

(−0.5,1.5)。
在这里插入图片描述
在YOLOv5中除了调整预测Anchor相对Grid网格左上角

(

c

x

,

c

y

)

(c_x, c_y)

(cx​,cy​)偏移量以外,还调整了预测目标高宽的计算公式,之前是:

b

w

=

p

w

e

t

w

b

h

=

p

h

e

t

h

b_w = p_w \cdot e^{t_w} \ b_h = p_h \cdot e^{t_h}

bw​=pw​⋅etw​bh​=ph​⋅eth​
在YOLOv5调整为:

b

w

=

p

w

(

2

σ

(

t

w

)

)

2

b

h

=

p

h

(

2

σ

(

t

h

)

)

2

b_w = p_w \cdot (2 \cdot \sigma(t_w))^2 \ b_h = p_h \cdot (2 \cdot \sigma(t_h))^2

bw​=pw​⋅(2⋅σ(tw​))2bh​=ph​⋅(2⋅σ(th​))2
作者Glenn Jocher的原话如下,也可以参考issue #471

The original yolo/darknet box equations have a serious flaw. Width and Height are completely unbounded as they are simply out=exp(in), which is dangerous, as it can lead to runaway gradients, instabilities, NaN losses and ultimately a complete loss of training.

作者的大致意思是,原来的计算公式并没有对预测目标宽高做限制,这样可能出现梯度爆炸,训练不稳定等问题。下图是修改前

y

=

e

x

y = e^x

y=ex和修改后

y

=

(

2

σ

(

x

)

)

2

还有兄弟不知道网络安全面试可以提前刷题吗?费时一周整理的160+网络安全面试题,金九银十,做网络安全面试里的显眼包!

王岚嵚工程师面试题(附答案),只能帮兄弟们到这儿了!如果你能答对70%,找一个安全工作,问题不大。

对于有1-3年工作经验,想要跳槽的朋友来说,也是很好的温习资料!

【完整版领取方式在文末!!】

93道网络安全面试题

内容实在太多,不一一截图了

黑客学习资源推荐

最后给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

1️⃣零基础入门
① 学习路线

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

image

② 路线对应学习视频

同时每个成长路线对应的板块都有配套的视频提供:

image-20231025112050764

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注网络安全)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

=

(

2

σ

(

x

)

)

2

还有兄弟不知道网络安全面试可以提前刷题吗?费时一周整理的160+网络安全面试题,金九银十,做网络安全面试里的显眼包!

王岚嵚工程师面试题(附答案),只能帮兄弟们到这儿了!如果你能答对70%,找一个安全工作,问题不大。

对于有1-3年工作经验,想要跳槽的朋友来说,也是很好的温习资料!

【完整版领取方式在文末!!】

93道网络安全面试题

内容实在太多,不一一截图了

黑客学习资源推荐

最后给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

1️⃣零基础入门
① 学习路线

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

image

② 路线对应学习视频

同时每个成长路线对应的板块都有配套的视频提供:

image-20231025112050764

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注网络安全)
[外链图片转存中…(img-OJ3WzXVh-1713438845158)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 28
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值