目标检测YOLO系列学习记录
前言
最近要用到目标检测网络,为了更好理解YOLO系列检测算法,跟着bilibili的up主(视频链接)学习一下,同时做一些笔记加深印象。
一、YOLOv1
首先将图片分成S*S个grid cell(S=7),如果目标的中心落在某个cell里,那么这个cell就负责预测这个目标,每个网格预测B个bounding box(B=2)。除了预测位置之外,附带预测一个confidence值和C(VOC数据集的C=20)个类别的分数。SSD和Faster R-CNN都没有预测confidence这个参数。
这个图表示了网络的输出的feature map的形状。 x,y表示中心点相对于每个cell的坐标,范围是0-1,这里是把cell的长宽作为单位1来看的,w,h也是0-1的值,是bounding box与图片长宽的比值。confidence定义为预测框与gt的IoU。最终的置信度是对应的class score与confidence相乘。
网络细节组成,其中1470=7x7x30
w和h取根号的原因是考虑到了目标大小的差异,当一个大目标和一个小目标预测框与gt的偏移量相同时,从下边的图可以看出,小目标的IoU远小于大目标的IoU,因此这个偏移量相对于小目标来说是很大的,所以希望对小目标的惩罚更大。下图中的曲线也可以看出,小目标的根号下w的差值比大目标的更大。
confidence损失的第一行计算的是正样本的损失,第二行是负样本的损失。
YOLOV1的限制: 当一群小目标聚集在一起的时候,效果变差。出现了新的长款比时效果变差。直接预测坐标,定位没那么准确。