目标检测--yolo系列复习资料

"""
机器学习分类衡量指标

混淆矩阵:          正例:是 P、反例:否 N
    真实:  是  否
    预测是:TP  FP
    预测否:FN  TN

(总)准确率:(TP + TN) / (TP + FP + FN + TN)
(行)查准率:预测数据中预测正确占比   TP / (TP + FP)  从混淆矩阵的角度:当前类别所在的 行 相加比上当前类别预测正确的值    预测的全部
(列)查全率:真实数据中预测正确占比   TP / (TP + FN)  从混淆矩阵的角度:当前类别所在的 列 相加比上当前类别预测正确的值    真实的全部
(均)F1得分:(2*查准率*查全率) / (查准率+查全率)

ROC曲线:用不同概率阈值(0~1)进行分类,所得到的多个混淆矩阵,用二维的方式绘制出来。
X轴:FPR = FP / (FP + TN)    "否"真实值中预测错误的占比
Y轴:TPR = TP / (TP + FN)    "是"真实值中预测正确的占比

AUC指标:指ROC曲线下的阴影面积 0~1


目标检测通用衡量指标
map值:(PR图:X轴查全率、Y轴查准率),将递增的阈值(0~1)的查准率与查全率(去重-x取最大),绘制成二维图像,计算图像的面积。 n个类别的阴影面积相加 / n
iou值:交并比    两个框的 交集/并集

yolo是一个端对端的1阶段检测器,速度非常快,精准度相对差
"""

"""
yolo-v1 原理

将原图分割7*7的格子,每个格子生成两种候选框,预测每个候选框的置信度,置信度大于一定值,
真实框与每个格子的两个候选框计算iou,选择大的。计算 真实框 与 预选框 的差。

输入:448*448*3 
网络结构:GoogleNet --> 14*14*1024  *3组  --> 7*7*1024  *2组  --> 1096*1 --> 1470*1 --> 7*7*30 
最后一层:7*7*30 
解释:宽7、高7、30深度 = (候选框1的4个点)x1、y1、h、w、 置信度1、 (候选框2的4个点)x2、y2、h、w、 置信度2、 20个类别

损失函数:位置误差、置信度误差(前景、背景)、分类误差、
位置误差: 7*7个格子 --> 真实框与每个格子的两个候选框计算iou,选择大的。
         第一块:x、y、直接计算两者误差的平方。第二块: 根号w、根号h 计算两者误差的平方
         两块的前面都加上权重系数
         为什么x、y可以直接计算,h、w就得加根号? 因为想要将小的物体偏差小一点、大的物体偏差大一点。
置信度误差:前景为1,背景为0,设置阈值超参数,超过阈值判定为前景。
          第一块(前景):选择iou最大的一个候选框。置信度与预测的差平方。第二块(后景):加权重系数,置信度与预测的差平方
分类误差:交叉熵损失

最后使用 非极大值抑制(NMS)

缺点:重合物体检测困难、小物体检测困难、长宽比单一、

"""

"""
yolo-v2 原理
1.卷积后全部加入Batch Normalization(对网络进行零均值归一化) 加快收敛、     map提升2%
2.提高分辨率。先224*224*3,增加额外10轮训练,使用448*448*3               map提升4%
3.更改网络为:DarkNet19
    去掉全连接层,使用1*1卷积核,5次降采样(2的5次方=32),降低参数计算量
    输入:416*416*3,最终输出13*13
4.将真实的标注框,用k-means聚类(5类),距离使用(1-iou比例)               map降低0.3%,召回率提高7%
5.13*13格子矩阵,预测框的中心点偏移量是在格子内部是相对数值,需要按照原比例还原成绝对数值
目的是在训练过程中将预测框的中心点,限制在格子内,偏移量是相对于格子的左上角的相对数值(0~1)。
6.特征融合:最后二层输出13*13*1024
    前1层,若26*26*512 分解为 4*13*13*512,这样,高宽=13,特征图个数=512*4
    融合为:13*13*(512*4+1024=3072)
    为什么特征融合?大的感受野,容易提取大物体特征,小的感受野一样。无论大小物体均可识别。
7.多尺度检测:训练过程中可使用不同尺度的图片进行训练320*320、352*352、628*628、
    输入大小需求:(2的5次方=32)的倍数
"""

"""
yolo-v3 原理
更改网络为:DarkNet53
1.输出3种大小特征图 52*52、26*26、13*13、 用于检测不同大小的物体。
    后面特征融合前面特征,例如,26*26需融合13*13特征
2.去除池化操作,去掉全连接,只有卷积操作
    不使用池化,如何使特征数量变少呢? 可以将卷积步长加大
3.依然采用 k-means聚类 9种 根据3种特征分类为:小、中、大,且每个都有3个先验框
4.softmax层改进,单个类别 是、否概率判定。

"""

"""
yolo-v4 原理

损失函数改进
改进iou损失:未相交框无法计算梯度、相交面积无法反应真实情况、
    1.GIOU 将A、B框包裹=C框,1-IOU+(C框-真框与预测框的并集)/C框   解决了未相交框无法计算梯度
    2.DIOU 将A、B框包裹=C框,1-IOU+(真框中心点、预测框中心点)欧氏距离差 / C框左上点与右下点的欧式距离  解决相交问题
    3.CIOU 1-IoU + DIOU + 权重 * 真框与预测框长宽比的差
    损失从3方面考虑:重叠面积、中心点距离、长宽比
    
改非极大值抑制
    1. DIOU-NMS(非极大值抑制)
        方法:重叠面积过大,中心点距离过大,删除该框
    2. SOFT-NMS
        方法:重叠面积过大,中心点距离过大,降低置信概率

激活函数
    Mish:
    计算量增加,效果提升
    
1.数据增强
    BOF 基本方法(ResNet-50):调整亮度、对比度、色调、随机缩放、剪切、翻转、旋转
        单独方法1(Mixup):图像融合 (A图+B图-->A图概率0.5 + B图概率0.5)
        单独方法:图像融合噪音(A图+0.007*噪声图)
        单独方法(Cutout):图像随机部分区域涂黑
        单独方法(CutMix):A图像随机部分填充B类别,概率值按比例分配
        单独方法(马赛克):4张图拼在一起     减轻对显存的要求
        单独方法(Random Erase):图像随机部分区域随机填充
        
2.标签平滑-->概率不绝对  防止过拟合

3.网络结构 BOS
    1. SPPNet 将不同卷积后的特征图,统一池化为同一大小,堆叠在一起
    2. CSPNet 将特征图一分为二,一半进行下一步操作,另一半跳过下一步操作直接对结果进行拼接。   减少参数计算量、少许提升精度、稍许推理代价
    3. 由CBAM 改 SAM :特征图 * 权重矩阵     注意力机制:特征图的权重矩阵 = (特征图 * 卷积 * Sigmoid) 
    4. PAN 融合特征从后向前,融合后的新特征再从前向后进行融合

输入:416*416*3
"""

你可能感兴趣的:(目标检测,计算机视觉,机器学习)