注:文章是学习B站:霹雳吧啦Wz 的学习笔记哦,真的是位很棒的up,有兴趣的同学可以去看看~
R-CNN
1.ss算法选择候选框(几千个)
2、候选区缩放到同一维度,输入分类网络
3、特征输入SVM分类器,判断类别
- 定义IoU:
目标A ∩ 目标B/目标A∪目标B(我理解为两个目标重叠的程度,及是不是检测的同一个物体)
- 非极大值抑制剔除建议框:
eg. A的概率为0.98,B的概率为0.86 计算他两IoU大于给定阈值,则判定为同一物体,去B留A(毕竟A的正确概率大)最终得到一个最完美最准确的边界框。
2000个框,20是20个类别(eg 1~20),2000*20中每个元素代表这个框为这个类的概率(eg 第一行第一列表示第一个框含有第1类事物的概率),对每列使用非极大值抑制剔除建议框,(eg 这些框中哪些有第1类)
4、使用回归器修正候选框
问题
Fast R-CNN
与RCNN不同的是
这种方法参考了sppnet ,(一个是局部处理,会有重复的过程,一个是整体处理,再对应局部,像极了调版印刷和活字印刷)
训练的过程中只取一部分
正样本:有目标的 IoU大于0.5
负样本:背景 IoU在0.1~0.5
通过pooling 层 缩放到同一尺寸,忽略了channel 哦,
RoI是region of interest ,FCs全连接层,实现分类(特征拼到一起看是不是)
一个FC是目标概率的预测(左侧),所以这个FC是N+1个节点
另一个FC是边界框回归参数的预测(右侧)(n+1)*4个回归参数
xywh分别表示窗口的中心点坐标和宽高
SVM分类器和Softmax分类器有啥区别
假设空间:SVM使用线性或非线性超平面作为决策边界,而Softmax分类器使用多个线性分类器的组合。
输出值:SVM输出的是每个样本点到分类超平面的距离,而Softmax分类器输出的是每个类别的概率值。
目标函数:SVM使用最大间隔分类器来寻找最优解决方案,而Softmax分类器使用交叉熵损失函数。
支持的问题类型:SVM可以用于二分类和多分类问题,而Softmax分类器仅适用于多分类问题。
技术特点:SVM通常需要更长的训练时间和更高的存储需求,而Softmax分类器具有更快的训练速度和更低的存储需求
绿色是真实的,黄色是候选框,红色是最终预测的。
对于这个exp,是由于在计算偏移量dw,dh的时候用的log,那为啥用log呢
在Fast R-CNN中,偏移量采用的是对数空间(log space),这是因为它能够更好地缩小回归目标的范围,并使其更加平滑和易于优化。具体来说,如果两个物体大小之间的比例很大,我们希望更关注较小的物体。而在对数尺度上,较小物体的变化所对应的值更大,因此对于较小的物体,损失函数中的误差项也会变得更大。如果直接使用线性偏移量,则需要训练一个非常大的网络才能在广泛的比例范围内准确地回归目标。
也就是用log能更加准确的表述细微的差异(放大镜哦)
有个问题,下方的真实参数v和这里的d是一样的值吗?代码里再讲
P0代表为背景的概率,分类一共K类
λ是一个平衡参数,[u≥1]是艾弗森括号,[ ]里为真,则值为1,即为正样本,有边界框回归损失;[ ]里为假,则值为0,则为负样本,没有边界框回归损失,后一项为0;
交叉熵损失函数有两作用,1、是性能的指标。由期待模型输出越接近真实值越好。2、是反向传播算法中计算梯度。
对于retinanet的focal loss
调节因子
γ 的思想来源于对类别不平衡问题的分析。在许多现实世界的分类问题中,不同类别之间的样本数目往往存在较大的差异。这会导致模型更加关注数量较多的类别,而忽略数量较少的类别。Focal Loss 的设计就是为了解决这个问题。通过引入调节因子 γ,可以让模型更加关注困难样本的学习。当 γ=0 时,Focal Loss 就变成了普通的交叉熵损失函数。而当 γ 越大时,模型会更加关注困难样本,因此可以提高模型对数量较少的类别的学习能力。
具体来说,当 γ>0 时,Focal Loss 在计算损失函数时会降低易分类样本的权重,增加难分类样本的权重。这样的话,模型会更加关注那些被错误预测的样本,而减少对容易预测的样本的学习。从而提高模型对困难样本的学习能力,缓解类别不平衡问题的影响。
需要注意的是, γ 的最优取值需要根据具体问题进行调整。通常来说,较小的 γ 可以起到平衡不同类别的作用,而较大的 γ 则可以使模型更加关注那些困难样本。
![](https://i-blog.csdnimg.cn/blog_migrate/84cfdee7870e86acf55fcfc1e113c985.png)
![](https://i-blog.csdnimg.cn/blog_migrate/9d71c64683eaa7194bec2ed120ec8a11.png)
ss算法获得边界框(需要2s),特征提取(整个图像传入,再用映射的方法得到特征向量)、分类、边界框回归融合在一个CNN
下一步就是把SS也融入CNN
Faster R-CNN
可以看作RPN+Fast RCNN
两个预测参数,一个是背景一个是前景,不进行分类,4个回归参数,调整回归框
3重尺度,3个比例,所以每个位置9个anchor
用3*3的卷积核,