本文共 3081 字,大约阅读时间需要 10 分钟。
原视频:
参考文章:如何学习网络?
1)、学习网络原理 2)、读原论文 3)、跑通github上的代码 / 选择自己喜欢的框架+经常更新+标star多的 4)、读代码 / 分析网络搭建+数据预处理+损失计算 / 结合原论文+代码解读文章一些术语:
【论文思想】
1)、一幅图像分成S×S个 网格(grid cell),落在某个object中心的网格负责该object 2)、final predicting is a (S×S×(5*B + C)) tensor 以S=7, B=2, C=20为例
一个网格负责预测两个bndbox + 20个类别的分值。 每个bounding box包含(x,y,w,h) + confidence, 共5个数值 (x, y): the centerof the box relative to the bounds of the grid cell. 取值[0, 1] (w,h): The width and height are predicted relative to the whole image.取值[0, 1] confidence = Pr(Object)*IOU(truth, pred), 当存在object时,Pr(Object)=1,confidence可简单理解为IOU 【网络结构】
【损失函数】
注:w,h要开根处理,因为同样的偏移,不同尺度的目标IOU变化不同,尺度越大变化越小
【v1存在问题】 1)small objects that appear in groups 2) objects in new or unusual aspect ratios or configurations 主要原因在于定位不准确 【better】Yolov2的7种尝试:
1) ,mAP提升2% 在每一个卷积层后加入BatchNormalization, BatchNormalization批归一化:指神经网络中间层也进行归一化处理,有助于规范化模型,防止过拟合。2)high resolution classifier,mAP提升4%
一般的目标检测方法中,先使用AlexNet / VGG网络进行特征提取,图片resize到< 256256,分辨率低,目标检测困难;YOLOv2自定义了darknet分类网络,将图像的输入分辨率更改为4484483)Convolutional with Anchor Boxes,提升recall
借鉴FasterR-CNN中的anchor思想,产生多个bounding boxes先验框4)Dimension Cluster
先通过维度聚类生成先验框 给定AnchorBoxes的宽高纬度,然后通过网络学习转换系数,得到准确的boundingbox候选框。有priors更快。5)Direct location prediction, 4+5后mAP提升5%
直接位置预测:YOLOv2中不采用直接的offset方法,而是限制预测的坐标信息,每个anchor去负责 中心落在某个grid cell区域内 的目标,避免anchor落在图像中的任意一个位置导致的不稳定
6)Fine-Grained Features,mAP提升1% 细粒度特征。通过passthrough layer将底层特征与高层特征融合,提升检测小目标的效果
7)Multi-Scale Training 多尺度训练。We want YOLOv2 to be robust to running on images of different sizes ,so 每经过10个epoch,随机选择新的图片尺寸进行训练 由于YOLOv2中仅存在卷积层和池化层,所以可以进行动态调整 由于YOLOv2中降采样的参数为32,所以尺寸可选值{320,352,…,608}总共十个不同尺寸的的图像 【faster】
使用基于GoogleNet的定制网络DarkNet,改善检测速度【网络结构】

【目标边界框的预测】
【正负样本的匹配】 【损失的计算】
Eg. 真实标签 [0, 0, 1] 预测概率 [0.1, 0.8, 0.9]; 每个概率是相互独立的,没有使用softmax所以和不为1
【Mosaic图像增强】
一种将4张训练图片混合成一张的新数据增强方法,可以丰富图像的上下文信息。
优点:1)增加数据多样性;2)增加目标个数;3)大大减少了对大mini-batch处理size的需求。BN时要求batch-size要尽可能大,加入Mosaic后,输入一张四张图像拼接的图像≈并行输入四张(batch Sze=4)原始图像 【SPP模块】
实现了不同尺度的特征融合,注意与不同 具体结构为:
输出为:1616(512*4) 图中显示在第一个预测特征图之前加入了SPP,第二/三个预测特征图之前也可以加SPP,效果都差不多 【CIOU Loss】
Yolov3选用差值平方,Yolov3 SPP 选用CIOU Loss,考虑到了重叠面积、中心点距离、长宽比
Focal loss(map下降2%?黑人问号脸?) 主要是为了解决one-stage目标检测中正负样本比例失衡class imbalance的问题:一张图像中能够匹配到目标的候选框(正样本)个数一般只有十几个或几十个,而没匹配到的候选框(负样本)大概有10000-100000个。其中大部分为简单易分的负样本(对训练网络起不到什么作用,但数量太多会淹没掉少量但有助于训练的样本)。该损失函数降低了大量简单负样本在训练中所占的权重 类似的思想有困难样本挖掘 hard negative mining: 只选取损失较大的负样本训练网络
then
引入α平衡正负样本权重; a∈[0,1]for class 1 and 1-0 for class -1.取0.75 效果最好 then
降低简单样本权重, focus on hard negatives then
又加了一个超参数平衡,当γ = 2 α = 0.25时,效果最好 转载地址:http://cwdhz.baihongyu.com/