![]()
目标检测 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)×2−0.5+cxby=σ(ty)×2−0.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
![]()

暂无评论