YOLOv4 绘制PR曲线

YOLOv4 绘制PR曲线简述YOLOv4 自带mAP检测代码第三方库简述最近做的一项工作就是交通目标的识别,我用的是YOLOv4基于Darknet的那一版,其中最重要的评价一项目标检测,但是我试过YOLOv4自带的map和网上常用的绘制PR曲线的方法进行对比,发现计算得到的map有一定差距,于是我想找一个第三方的库来试试。找来找去还真让我发现一个,https://github.com/Cartucho/mAP,接下来,我详细说一下应该怎么使用。YOLOv4 自带mAP检测代码darknet.exe
摘要由CSDN通过智能技术生成

简述

最近做的一项工作就是交通目标的识别,我用的是YOLOv4基于Darknet的那一版,其中最重要的评价一项目标检测,但是我试过YOLOv4自带的map和网上常用的绘制PR曲线的方法进行对比,发现计算得到的map有一定差距,于是我想找一个第三方的库来试试。找来找去还真让我发现一个,https://github.com/Cartucho/mAP,接下来,我详细说一下应该怎么使用。

YOLOv4 自带mAP检测代码

darknet.exe detector map data/obj.data cfg/yolov4_custom.cfg backup/yolov4_custom.weights
那么yolov4其实自带了一套检测工具,其他博主也有写,例如这位博主写的:https://blog.csdn.net/qq_44929031/article/details/113355506
但是我尝试了一下,发现mAP差5%,不知道是什么原因,有懂的小伙伴可以留言告诉我。

第三方库

因为我的本行是搞汽车的,不是写代码的,所以代码写的不太好还请多包涵。
这边先把库拖下来,我们可以看到这个库需要一个input
在这里插入图片描述
在这里插入图片描述
这个input文件夹中两个文件是必须的,那就是detection-results和ground-truth,通过官网,我们看到detection-results里面的要求是这样子的,那就是类别的名字,置信度和位置坐标,
tvmonitor 0.471781 0 13 174 244
cup 0.414941 274 226 301 265
book 0.460851 429 219 528 247
chair 0.292345 0 199 88 436
book 0.269833 433 260 506 336
而ground-truth的要求是这样子,
tvmonitor 2 10 173 238
book 439 157 556 241
book 437 246 518 351
pottedplant 272 190 316 259
名字坐标即可,如果是难例可以标上难例。
但是yolo中类别是数字形式表达,然后位置坐标页不太一致,所以需要转换一下,我贴一下我的代码:

import os
from tqdm import tqdm
from PIL import Image

label = {'0' : 'car', '1' : 'van', '2' : 'truck', '3' : 'bus'}
  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: YOLOv5是一种用于目标检测的深度学习模型,它可以在图像或视频中捕捉和定位对象。当我们训练一个模型时,我们需要评估模型的性能。这时候我们可以用PR曲线来评估模型的性能。 PR曲线是一种评估模型性能的常用方法。它基于两个主要的参数,即召回率(Recall)和精确率(Precision)。其中,召回率表示检测到的正样本/实际正样本的数量,精确率表示检测到的正样本/所有检测到的样本的数量。 在编写YOLOv5时,我们可以通过以下步骤绘制PR曲线: 1. 我们可以使用验证集来预测模型。 2. 根据预测结果,我们可以计算每个预测的召回率和精度。 3. 我们可以根据计算的召回率和精度值绘制PR曲线。 4. 我们可以通过PR曲线来比较不同的模型,并选择最好的模型。 总之,PR曲线是一种非常有用的工具,可以用来评估模型性能。在编写YOLOv5时,绘制PR曲线有助于我们了解模型性能,并选择最好的模型。 ### 回答2: Yolov5是计算机视觉领域中最先进的目标检测算法之一,通过使用PR曲线可以直观地评估算法的性能。PR曲线由两部分组成,一个是召回率(Recall),另一个是精度(Precision)。Yolov5绘制PR曲线的过程主要包括以下几个步骤: 首先,需要设置一组阈值来确定算法预测的目标框是否与真实目标框匹配。然后,通过计算所有图像中目标框的精度和召回率,并将其绘制PR曲线上。 在绘制过程中,我们可以通过调整阈值来实现精度和召回率之间的平衡,以得到最佳的算法性能。高精度阈值将提高精度,但可能会导致低召回率,而高召回率阈值将提高召回率,但可能会导致低精度。 通过绘制和分析PR曲线,我们可以确定算法的最佳阈值,以获得最佳的目标检测性能。此外,PR曲线也提供了关于模型在不同目标类别上的性能差异的重要信息,可以用于优化模型并提高其性能。 ### 回答3: YOLOv5是一种流行的目标检测算法,许多人使用它来处理计算机视觉应用程序中的物体识别和跟踪问题。在使用YOLOv5时,我们需要对其性能进行评估。评估性能的一种方法是通过生成Precision-Recall(PR曲线PR曲线可以帮助我们确定具体算法的准确性和召回率。 绘制YOLOv5的PR曲线时,我们需要运行算法并获得预测结果。接下来,我们需要计算出对于每个类别,真实正例和虚假正例的数量。 然后,我们可以使用这些数字来计算出真正的积极率(TPR)和假正积极率(FPR)的值,从而生成PR曲线。具体而言,我们可以使用以下公式: TPR = TP / (TP + FN) FPR = FP / (FP + TN) 其中,TP表示真正的积极数,FN表示假负数,FP表示假正数,TN表示真负数。 一旦我们得到了TPR和FPR的值,我们就可以将它们绘制PR曲线上。按照惯例,我们会在曲线上标记出不同的阈值,以便我们能够对不同的算法进行比较。 最后,通过查看PR曲线,我们可以确定算法的性能。具体而言,我们可以注意到,当我们提高阈值时,召回率会下降,但精确度会上升。因此,我们必须找到一个折衷方案,以平衡这两个因素,从而获得最佳的性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值