Yolo算法详解及注意事项
1 yolo算法---常用概念
概念1 grid cell的size (个数)
对输入图像(假设是448*448)不断提取特征然后sample得到的(缩小了32倍)得到的尺寸size:7*7,然后将输入图像划分成7*7个grid cell,这样输入图像中的32个像素点就对应一个grid cell。
概念2 object中心坐标输入哪个grid cell ? 位置 == 中心坐标 == 中心位置
由于每个object都有标注信息(相当于知道 了每个训练样本中每个object的中心坐标在输入图像的哪个位置/坐标),等价于知道了每个object的中心点坐标属于哪个grid cell;meanwhile,只要object的中心点坐标落在哪个grid cell中,这个object就由哪个grid cell负责预测,也就是该grid cell包含这个object
概念3 bounding box 和 grid cell的关系? 每个包含object的grid cell 会输出有一个 bounding box 及 类别信息
虽然一个grid cell会预测两个bounding box ,实际输出只有一个bounding来预测属于该grid cell的object ,因为两个bounding box到底由哪个来预测,如果grid cell 中包含目标,那么这两个bounding box 都会用来预测,但 最后通过NMS,会选择该object的ground truth中IOU值较大的bounding box;
reference:https://blog.csdn.net/u014380165/article/details/72616238
概念4 confidence的计算公司如下:
每个bounding box都对应一个confidence score,如果grid cell里面没有object,confidence就是0,如果有,则confidence score等于预测的box和ground truth的IOU值, 所以如何判断一个grid cell中是否包含object呢?答案是:如果一个object的ground truth的中心点坐标在一个grid cell中,那么这个grid cell就是包含这个object,也就是说这个object的预测就由该grid cell负责。
概念5 每个grid cell 预测B个 bounding box,每个bounding box 会输出5个预测值:x,y,w,h和confidence,x,y就是bounding box的中心坐标,与grid cell对齐(即相对于当前grid cell的偏移值),使得范围变成0到1;w和h进行归一化(分别除以图像的w和h,这样最后的w和h就在0到1范围);每个bounding box 对应一个confidence score
每个grid cell都预测C个类别概率,表示一个grid cell在包含object的条件下属于某个类别的概率,注意grid ce