看懂Faster-Rcnn 以及YOLOv5的结果

Faster-Rcnn

训练

训练命令

# 训练
python trainval_net.py --dataset pascal_voc --net vgg16 --bs 4 --nw 0 --lr 0.001 --lr_decay_step 5 --cuda
  • –bs batchsize一次训练所选样本数
  • –nw number worker 取决于GPU能力,不行就取0,慢一点
  • –lr 学习率
[session 1][epoch  1][iter    0/  93] loss: 2.6911, lr: 1.00e-03
fg/bg=(4/508), time cost: 4.584736
rpn_cls: 0.6750, rpn_box: 0.3954, 
rcnn_cls: 1.6207, rcnn_box 0.0001
save model: models/res101/pascal_voc\faster_rcnn_1_1_92.pth
  • batch size:批处理大小。一次训练所选取的样本数。 它的大小影响模型的优化程度和速度。
  • Iteration:迭代次数。一次Iteration就是batch size个训练数据前向传播和反向传播后更新参数的过程。
  • epoch:所有训练数据前向传播和反向传播后更新参数的过程。也就是我们认为的所有数据集跑了一遍。
    如果训练集大小是100000。batchsize为100,那么一个epoch需要1000次Iteration。
  • fg前景 bg后景
  • RPN 是一个输入global future map,输出许多可能ROI的网络
  • cls loss 分类损失
  • bbox regression loss 回归损失

测试结果

VOC07 metric? Yes
AP for break = 0.8306
AP for error_break = 0.7694
C:\Users\hid\PycharmProjects\fasterfcnn\lib\datasets\voc_eval.py:205: RuntimeWarning: invalid value encountered in true_divide
  rec = tp / float(npos)
AP for strip = 0.0000
AP for white_break = 1.0000
Mean AP = 0.6500
~~~~~~~~
Results:
0.831
0.769
0.000
1.000
0.650
~~~~~~~~

--------------------------------------------------------------
Results computed with the **unofficial** Python eval code.
Results should be very close to the official MATLAB eval code.
Recompute with `./tools/reval.py --matlab ...` for your paper.
-- Thanks, The Management
--------------------------------------------------------------
test time: 10.5248s

从数学公式理解:
混淆矩阵
True Positive(真正,TP):将正类预测为正类数 True
Negative(真负,TN):将负类预测为负类数
False Positive(假正,FP):将负类预测为正类数误报 (Type I error)
False Negative(假负,FN):将正类预测为负类数→漏报 (Type II error)
准确率(Accuracy):ACC=(TP+TN)/(Tp+TN+FP+FN)
精确率(precision):P=TP/(TP+FP)(分类后的结果中正类的占比)
召回率(recall):recall=TP/(TP+FN)(所有正例被分对的比例)

  • AP 就是 PR曲线下的面积,这里average,等于是对recall取平均。
  • mAP 平均精度

YOLOv5

获得结果如下:
在这里插入图片描述

  • weights:权重,分最好和最后

  • confusion_matrix :混淆矩阵,横轴是预测类别,纵轴是真实类别;

  • F1 curve ,是分类问题的衡量指标,1最好,0最差。召回率和精确率同等重要的情况下的指标
    F1

  • P curve 准确率和置信度的关系图
    请添加图片描述

  • PR-curve 精准率与召回率的关系,一般情况下,将recall设置为横坐标,precision设置为纵坐标。PR曲线下围成的面积即AP,所有类别AP平均值即Map
    在这里插入图片描述

  • results.png在这里插入图片描述Box:YOLO V5使用 GIOU Loss作为bounding box的损失,Box推测为GIoU损失函数均值,越小方框越准;
    Objectness:推测为目标检测loss均值,越小目标检测越准;
    Classification:推测为分类loss均值,越小分类越准;
    Precision:精度(找对的正类/所有找到的正类);
    Recall:真实为positive的准确率,即正样本有多少被找出来了(召回了多少)。
    val BOX: 验证集bounding box损失
    val Objectness:验证集目标检测loss均值
    val classification:验证集分类loss均值
    mAP是用Precision和Recall作为两轴作图后围成的面积,m表示平均,@后面的数表示判定iou为正负样本的阈值,@0.5:0.95表示阈值取0.5:0.05:0.95后取均值。

mAP@.5:.95(mAP@[.5:.95])
表示在不同IoU阈值(从0.5到0.95,步长0.05)(0.5、0.55、0.6、0.65、0.7、0.75、0.8、0.85、0.9、0.95)上的平均mAP。

mAP@.5:表示阈值大于0.5的平均mAP

一般训练结果主要观察精度和召回率波动情况(波动不是很大则训练效果较好)
然后观察mAP@0.5 & mAP@0.5:0.95 评价训练结果。

参考:参考1

  • 1
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值