YOLO学习总结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gentelyang/article/details/80488625

每个网格要预测B个bounding box,每个bounding box除了要回归自身的位置之外,还要附带预测一个confidence值。 

confidence代表了所预测的box中含有object的置信度和这个box预测的有多准两重信息。

YOLO的一些细节:

1:每个grid有30维,这30维中,8维是回归box的坐标,2维是box的confidence,还有20维是类别。

 2:其中坐标的x,y用对应网格的offset归一化到0-1之间,w,h用图像的width和height归一化到0-1之间。

3:激活函数:leaky rectified linear activation

YOLO的网络结构图:

YOLO直接从一张图片中提取特征,来预测每一个Bounding box,最小化和ground turth的误差。由于YOLO是一个端到端的训练,并且中间没有region proposal生成,所以在速度上有了很大的提升。

loss损失函数

实验:
训练中,总共进行了 135 轮 epoches,训练、验证集来自 PASCAL 2012、2007。当在 VOC 2012 数据集上测试时,训练集包括了 VOC 2007 的测试集。训练中,bacthsize 为 64,momentum 为 0.9,decay 为 0.0005. 
Learning rate 的设置: 
(1)在第一轮 epoch 中,learning rate 逐渐从 1e−3 增加到 1e−2。如果训练时从一个较大的 learning rate 开始,通常因为不稳定的梯度,而使得模型发散。 
(2)之后,保持 learning rate 为 1e−2 直到 epoch = 75; 
(3)再接下的 30 轮 epoch,learning rate 为 1e−3; 
(4)最后 30 轮 epoch,learning rate 为 1e−4。 

        在训练中,为了避免 overfitting,使用了 dropout 技术,在第一层全连接层后面增加了一个 dropout layer,随机置零的 rate=0.5。 为了防止 overfitting,也使用了 data augmentation 技术。

YOLO一张图片只会预测98个Bounding Box和所述类的可能性。所以YOLO在计算过程中,速度很快。
但是YOLO的局限性也相当明显,首先一个cell只能预测两个Bounding Box,预测一类物体,所以当
有一群小物体密集的时候很难得到正确的Bounding Box,小物体在卷积和pooling的过程中,损失的

信息越来越多,得到的有用信息已经很少,所以YOLO在检测小目标效果不尽人意。

总结:
每个 grid cell 中只能预测两个 boxes,以及有一个类别。这种太强的空间约束,限制了 YOLO 对于相邻物体的检测能力,一旦相邻的物体数量过多,YOLO 就检测不好了。
YOLO开辟了一种新的目标检测的思路,改变了原来的pipeline,虽然牺牲了一些检测的精度,但是大幅度的提升了目标检测的速度。

 

猜你喜欢

转载自blog.csdn.net/gentelyang/article/details/80488625