目标检测 YOLOv5 边框预测(bounding box prediction)

目标检测 YOLOv5 边框预测(bounding box prediction)

flyfish

代码在yolo.py

主要是这段代码

y = x[i].sigmoid()
y[..., 0:2] = (y[..., 0:2] * 2. - 0.5 + self.grid[i]) * self.stride[i]  # xy
y[..., 2:4] = (y[..., 2:4] * 2) ** 2 * self.anchor_grid[i]  # wh
z.append(y.view(bs, -1, self.no))

用公式表示如下

b

x

=

σ

(

t

x

)

×

2

0.5

+

c

x

b

y

=

σ

(

t

y

)

×

2

0.5

+

c

y

b

w

=

p

w

(

σ

(

t

w

)

×

2

)

2

b

h

=

p

h

(

σ

(

t

h

)

×

2

)

2

\begin{array}{c} b_{x}=\sigma\left(t_{x}\right) \times 2-0.5+c_{x} \\ b_{y}=\sigma\left(t_{y}\right) \times 2-0.5+c_{y} \\ b_{w}=p_{w}\left(\sigma\left(t_{w}\right) \times 2\right)^{2} \\ b_{h}=p_{h}\left(\sigma\left(t_{h}\right) \times 2\right)^{2} \end{array}

bx=σ(tx)×20.5+cxby=σ(ty)×20.5+cybw=pw(σ(tw)×2)2bh=ph(σ(th)×2)2
这样改造的原因
在这里插入图片描述
YOLOv3的代码等于 ** 1.0,还是其他** 1.6** 2.0

y[..., 2:4] = (y[..., 2:4] * 2) ** 1.0 * self.anchor_grid[i]  # wh
= y[..., 2:4] * 2 * self.anchor_grid[i]  # wh 

这段代码改造自 YOLOv3

b

x

=

σ

(

t

x

)

+

c

x

b

y

=

σ

(

t

y

)

+

c

y

b

w

=

p

w

e

t

w

b

h

=

p

h

e

t

h

\begin{aligned} b_{x} &=\sigma\left(t_{x}\right)+c_{x} \\ b_{y} &=\sigma\left(t_{y}\right)+c_{y} \\ b_{w} &=p_{w} e^{t_{w}} \\ b_{h} &=p_{h} e^{t_{h}} \end{aligned}

bxbybwbh=σ(tx)+cx=σ(ty)+cy=pwetw=pheth
在这里插入图片描述

在这里插入图片描述
简写是
在这里插入图片描述
在这里插入图片描述

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

版权声明:本文为CSDN博主「TheOldManAndTheSea」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/flyfish1986/article/details/117425996

TheOldManAndTheSea

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

YOLOv5从入门到部署之:初识YOLOv5

1 YOLOv5
在YOLOv4发布不到50天,“YOLOv5” 就问世了并且官方介绍的性能效果可以说相当好。只可惜YOLOv5当前只公布了代码没有相关的论文,只能通过YOLOv5的代码来了解其算法。其链接如下&#

深度学习_目标检测_“YOLOv5”详解(持续更新)

我最近对很火的元宇宙及其衍生概念进行了思考,虽然现在谈元宇宙落地还为时尚早,但是根据这个愿景反推回来很多的技术趋势和未来的发展方向还是值得关注的。下面是我的公众号原文:【AI行业进展研究与商业价值分析】