一幅图像首先被分为
S
×
S
\mathrm{S \times S}
S×S个网格,如果某个
O
b
j
e
c
t
\mathrm{Object}
Object的中心落在这个网格中,则这个网格就负责预测这个
O
b
j
e
c
t
\mathrm{Object}
Object。
每个网格需要预测
B
\mathrm{B}
B个BBox的位置信息和置信度信息,一个BBox对应着四个位置信息和一个置信度信息。其中置信度信息的公式如下所示
P
r
(
O
b
j
e
c
t
)
∗
I
O
U
\mathrm{Pr}(\mathrm{Object})*{\bf{IOU}}
Pr(Object)∗IOU其中如果
O
b
j
e
c
t
\mathrm{Object}
Object落在一个网格里,则
P
r
(
O
b
j
e
c
t
)
\mathrm{Pr}(\mathrm{Object})
Pr(Object)取1,否则取0。
每个BBox要预测
(
x
,
y
,
w
,
h
)
(x,y,w,h)
(x,y,w,h)和置信度共5个值,每个网格还要预测一个类别信息共
C
\mathrm{C}
C类。则最终输出的维度为
d
i
m
=
S
×
S
×
(
5
B
+
C
)
\mathrm{dim}=\mathrm{S\times S}\times (5 \mathrm{B+C})
dim=S×S×(5B+C)
在测试的时候,每个网格预测的类信息和BBox的预测置信度信息相乘,就得到了每个BBox的类别置信度分数
C
S
=
P
r
(
C
l
a
s
s
i
∣
O
b
j
e
c
t
)
∗
P
r
(
O
b
j
e
c
t
)
∗
I
O
U
=
P
r
(
C
l
a
s
s
i
)
∗
I
O
U
\begin{aligned}\mathrm{CS}&=\mathrm{Pr}(\mathrm{Class}_i|\mathrm{Object})*\mathrm{Pr}(\mathrm{Object})*{\bf{IOU}}\\&=\mathrm{Pr}(\mathrm{Class}_i)*{\bf{IOU}}\end{aligned}
CS=Pr(Classi∣Object)∗Pr(Object)∗IOU=Pr(Classi)∗IOU这个公式表示了预测某个BBox属于某一类的概率。
损失函数
损失函数共包括三部分
L
t
o
t
a
l
=
L
c
o
o
r
d
+
L
b
c
+
L
c
L_{total}=L_{coord}+L_{bc}+L_{c}
Ltotal=Lcoord+Lbc+Lc
L
t
o
t
a
l
L_{total}
Ltotal表示的是对坐标的预测
L
c
o
o
r
d
=
λ
c
o
o
r
d
∑
i
=
0
S
2
∑
j
=
0
B
I
i
j
o
b
j
[
(
x
i
−
x
^
i
)
2
+
(
y
i
−
y
^
i
)
2
+
(
w
i
−
w
^
i
)
2
+
(
h
i
−
h
^
i
)
2
]
L_{coord}=\lambda_{coord}\sum\limits_{i=0}^{S^2}\sum\limits_{j=0}^{B}\mathbb{I}_{ij}^{\mathrm{obj}}[(x_i-\hat{x}_i)^2+(y_i-\hat{y}_i)^2+(\sqrt{w_i}-\sqrt{\hat{w}_i})^2+(\sqrt{h_i}-\sqrt{\hat{h}_i})^2]
Lcoord=λcoordi=0∑S2j=0∑BIijobj[(xi−x^i)2+(yi−y^i)2+(wi
−w^i
)2+(hi
−h^i
)2]其中
I
i
j
o
b
j
\mathbb{I}_{ij}^{\mathrm{obj}}
Iijobj表示的是第
i
i
i个网格中的
j
j
j个box是否负责这个object。
L
b
c
L_{bc}
Lbc主要负责预测box的置信度
L
b
c
=
∑
i
=
0
S
2
∑
j
=
0
B
I
i
j
o
b
j
(
C
i
−
C
^
i
)
2
+
λ
n
o
o
b
j
∑
i
=
0
S
2
∑
j
=
0
B
I
i
j
n
o
o
b
j
(
C
i
−
C
^
i
)
2
L_{bc}=\sum\limits_{i=0}^{S^2}\sum\limits_{j=0}^{B}\mathbb{I}_{ij}^{\mathrm{obj}}(C_i-\hat{C}_i)^2+\lambda_{noobj}\sum\limits_{i=0}^{S^2}\sum\limits_{j=0}^{B}\mathbb{I}_{ij}^{\mathrm{noobj}}(C_i-\hat{C}_i)^2
Lbc=i=0∑S2j=0∑BIijobj(Ci−C^i)2+λnoobji=0∑S2j=0∑BIijnoobj(Ci−C^i)2
L
c
L_{c}
Lc主要负责类别预测
L
c
=
∑
i
=
0
S
2
I
i
j
o
b
j
∑
c
∈
c
l
a
s
s
e
s
(
p
i
(
c
)
−
p
^
i
(
c
)
)
2
L_{c}=\sum\limits_{i=0}^{S^2}\mathbb{I}_{ij}^{\mathrm{obj}}\sum\limits_{c \in \mathrm{classes}}(p_i(c)-\hat{p}_i(c))^2
Lc=i=0∑S2Iijobjc∈classes∑(pi(c)−p^i(c))2