一、模型训练与测试
1.1、模型训练
目标检测网络的训练大致流程:
1、设置超参数
2、定义数据加载模块 dataloader
3、定义网络模型 model
4、定义损失函数 loss function
5、定义优化器 optimizer
6、遍历训练数据,预测-计算loss-反向传播
各部分典型示例代码如《datawhale动手学CV》添加链接描述这里不做过多赘述。
1.2、后处理
-
目标框信息解码
模型一般不直接预测目标框信息,而预测的是anchor的偏移量,并经过编码。我们得到预测偏移量后要对其进行解码操作,才可得到最终目标框回归结果 -
NMS非极大值抑制
这里在 |Datawhale目标检测打卡笔记【1、基本理论】|中已经介绍过,这里不做过多赘述 -
单图预测推理
模型训练完成后,可对单张图片进行推理,得到目标检测结果。
整个流程大致为:
第一步,读取一张图片
第二步,预处理
第三步,模型预测
第四步,对模型预测进行后处理
由推理结果我们不难看出,目标检测可能会存在一些问题,如:漏框,误检,重复检测,定位不准等。
二、模型的评价
不同的数据集可能指定不同的相关评价标准,不过基本万变不离其宗,我们介绍几个典型的评判标准
- TP:真实值是positive,模型认为是positive的数量(True Positive=TP)
- FN:真实值是positive,模型认为是negative的数量(False Negative =FN):这就是统计学上的第二类错误(Type II Error)
- FP:真实值是negative,模型认为是positive的数量(False Positive = FP):这就是统计学上的第一类错误(Type I Error)
- TN:真实值是negative,模型认为是negative的数量(True
Negative = TN)
混淆矩阵(confusion matrix),又称可能性表格或错误矩阵,是一种特定的矩阵用来呈现算法性能的可视化效果,通常用于监督学习(非监督学习,通常用匹配矩阵:matching matrix)。其每一列代表预测值,每一行代表的是实际的类别。
F1 Score:F1 Score = 2PR / P+R,P代表Precision,R代表Recall(召回率)。F1-Score指标综合了Precision与Recall的产出的结果。F1-Score的取值范围从0到1,1代表模型的输出最好,0代表模型的输出结果最差。
AP(Average Precision): 平均精确度。
mAP(Mean Average Precision):平均AP值,是对多个验证集个体求平均AP值,作为object detection中衡量检测精度的指标。
P-R曲线:precision和recall作为纵、横轴坐标的二维曲线。P-R曲线的总体趋势是精度越高,召回越低,当召回到达1时,对应概率分数最低的正样本,这个时候正样本数量除以所有大于等于该阈值的样本数量就是最低的精度值。 另外,P-R曲线围起来的面积就是AP值,通常来说一个越好的分类器,AP值越高。P-R曲线可通过选取不同阈值时对应的精度和召回率画出,如下图所示:
参考文献
【1】、datawhale《动手学CV-Pytorch》添加链接描述