https://github.com/WZMIAOMIAO/deep-learning-for-image-processing
yolo1
xy是小网格中的,(0,1) w,h是整个图像中的 ,(0,1) confidence=bounding box是否含有object×预测的与gt之间的iou。
为每个目标的概率+预测的目标边界框和真实的目标边界框的重合程度。 为什么w和h要根号? 假设蓝色为预测的边界框,绿色为真实边界框。 假设目标越小 ,预测的边界框与真实边界框偏移相同的情况下 ,IOU就越大,检测效果越差。 所以应该要让小目标的偏差设的更大一些。 confidence损失的前一项是正样本(C=1)的损失计算,后者是负样本的( C=0)。
YOLOv1存在的问题: 1.因为每个cell只预测一组类别 ,所以对群体聚集的小目标检测结果较差。 2.输入尺寸变化时,检测效果较差; 3.定位不准确。(因为直接预测坐标信息)
yolo2
class大于9000 采用anchor偏移的方式,recall提升较高,map略微上升
t_0是confidence,也受到sigmoid限制。 高层和底层信息融合,为了更好提取细节信息。
每10个batch,就随机输入网络的图片尺寸(32的倍数)。 用224是为了方便对比。
yolov3
用了新的backbone,效果持平同时fps也比较高。和resnet相比,没有最大池化层,而是用了卷积。 http://blog.csdn.net/qq_37541097/article/details/81214953
yolov3 spp (包括CIoU 和Focal Loss)
A^c是蓝色框,u是并集。GIoU在两者不相交时也可提供损失。
CIoU(D)是将C计算IoU时把其换成DIoU
负样本挖掘没focal loss好。
正负样本。 难易样本。 右边曲线表示: p_t越大,就表示越容易分类。这部分就降低其权重。 越小,表示越难分类,这部分就提高其权重。 这里的α是用来平衡γ的(平衡套娃)。 前两者都是易分样本,所以权重降低比较好。
前提:数据标注要正确。
|