正样本的选择:
目标中心点落在哪个grid上,然后计算这个grid的9个先验框(anchor)和目标真实位置的IOU值(直接计算,不考虑二者的中心位置),取IOU值最大的先验框和目标匹配。于是,找到的该grid中的 该anchor 负责预测这个目标,其余的网格、anchor都不负责。
负样本的选择:
计算各个先验框和所有的目标ground truth之间的IOU,如果某先验框和图像中所有物体最大的IOU都小于阈值(一般0.5),那么就认为该先验框不含目标,记作负样本,其置信度应当为0
不参与计算部分
这部分虽然不负责预测对象,但IOU较大,可以认为包含了目标的一部分,不可简单当作负样本,所以这部分不参与误差计算。
LOSS
yolo算法将目标看成回归问题,采用sum-square函数,对不同的部分采用了不同的权重值。
由4部分构成:
1.x,y 均方误差
2.w,h均方误差
3.是否含有object误差
4.cls分类
yolo的原理:
把网络分成sxs个网格(s通常为7),对于每一个网格要预测出B个边框,每个边框五个坐标(x,y,w,h)和一个分数(来预测这个边框和真是的边框有多接近),每个网格也会预测类别,所以一共有S × S × (B ∗ 5 + C) 个张量
这就是yolo的网络模型,对于卷积层和全连接层,采用Leaky ReLU**函数。但是最后一层却采用线性**函数,最后出来的是边界框的预测,之前说的是7x7的网格,那么最后出来的就是7x7x30,20类,2个置信度(判断有没有物体),两个框,一个框(x,y,w,h)