YOLOv5目标检测实验

YOLOv5目标检测实验


最近在用YOLOv5跑一些目标检测的东西,这是自己日常学习的一些总结!后期会继续更新!有问题也欢迎批评指正!如果雷同请见谅!

1.数据集

  • 创建数据集是在detect.py里面的create_dataloader,并在主函数里面调用
  • yolov5在计算资源的调用上采用了torch.nn.parallel.DistributedDataParallel(DDP,多张显卡并行),因为即使只是用单张显卡,torch.nn.DataParallel(DP)也比DDP慢。这个在train.py中设置
  • 训练完成后会最后一个exp的weights下保存最好的一次后最后一次的model
  • data的hpy里面可以设置学习率、loss等超参数
  • 数据的读取是采用主进程预读取并缓存,然后其它进程从缓存中读取,不同进程之间的数据具体通过torch.distributed.barrier()实现。这个function在utils.py/torch_utils.py中。在dataset.py创建数据集的时候调用,如果当前不是主进程执行,则会让该进程等待,直到主进程执行完
  • dataset.py
    (1) img_files用来存放所有images的路径
    (2) cache是个字典,key的个数为图像个数+4,存储了每张图像对应的所有gt box标签和图像宽高
    (3) Rectangular Training是将images按照宽高比排序后,将宽高比接近的数据放到同一个batch。 因同一个batch里的数据,在输入网络时必需有相同的宽和高,这样将宽高比接近的数据放到同一个batch,则batch内的数据,填充的无效像素就是最少的。
    (4) 将数据集中所有图像读取进来,并等比缩放,保存到self.imgs里,当设置了本地保存时,保存为本地.npy文件

2.YOLOv5结果

1)expX目录代表生成结果次数

2)result.png

  • GIoU:越小方框越准(图上没有这个)
    Objectness:检测loss均值,越小越准
    mAP@0.5:0.95:阈值取0.5:0.05:0.95后取均值
    mAP@0.5:阈值大于0.5的mAP

3) result.txt

  • 从左到右依次为:epoch GPU消耗 边界框损失 目标检测损失 分类损失 total_loss targets数量 网络输入图片大小 P R mAP@0.5 mAP@0.5:0.95 验证集val_box 验证集val_obj val_cls
  • train.py里面with open(result_file,‘a’) as f是将训练结果写入result.txt
  • 640后面的四列分别表示Precision,Recall,mAP@.5,mAP@.5:.95
    *mAP@.5:阈值为0.5时的mAP
    *mAP@.5:阈值为0.5-0.95(步长为0.05)时的所有mAP的均值

4)confusion_matrix.png

  • 混淆矩阵,用于监督学习(无监督学习叫匹配矩阵),用于观察是否混淆类,某一个格Aij表示第j和类别被预测为i的概率

5)curve.png

  • P_curve:单一类准确率(预测为positive),曲线表明,置信度越大,类别检测越准确,即置信度很大时,才被判断为某一类
  • R_curve: recall ,有多少正样本被找出来了
  • PR_curve:精度越高,召回率越低。
  • F1_curve:分类问题的衡量标准,是精确率和召回率的调和平均数[0,1],1是最好的,0最差。

6)labels.png

(1)训练集数据量,每个类别有多少
(2)框的尺寸、数量
(3)center点的位置
(4)label的高宽

7)train_batchx.png

  • 一次读取的batch数量的图,test_batch同
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值