YOLO v1介绍
作者:互联网
YOLO v1算法介绍
YOLO v1是将整个图片作为网络的输入,直接在输出层对BBox的位置和类别进行回归。实现方法分为如下步骤:
- 一幅图像首先被分为 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
标签:Pr,Object,置信度,limits,sum,YOLO,介绍,v1,mathrm 来源: https://blog.csdn.net/qq_38406029/article/details/116420172