【问题标题】:Training YOLOv3 on COCO gives me bad mean average precision在 COCO 上训练 YOLOv3 给了我不好的平均精度
【发布时间】:2019-10-01 08:53:52
【问题描述】:

我想训练 YOLO 只检测类人。因此,我下载了 COCO 数据集,将标签调整为仅此类,并相应地更改了配置文件,然后按照本网站 https://pjreddie.com/darknet/yolo/ 上“在 COCO 上训练 YOLO”一节中描述的步骤训练了 YOLO。 但是,当我在标题“COCO 数据集上的性能”下使用同一页面的训练权重时,我对班级人员的训练权重的平均平均精度(地图)比同一班级的地图差得多。我想知道这可能是什么原因,以及哪些数据用于训练主页上可用的权重。

【问题讨论】:

    标签: yolo


    【解决方案1】:

    当您修改 cfg 文件(类、过滤器等)时,可能有问题。无论如何,你的任务的目的是什么?你真的需要重新训练模型,还是只需要过滤1个类并进行检测?

    如果您只想从 80 个类中筛选出 Person 标签,您可以简单地执行此解决方法。不需要重新训练模型,只需要使用作者在 yolo 网站上提供的权重即可。

    对于使用 COCO 数据集的简单方法,请按照以下步骤操作:

    • 修改(或复制备份)darknet\data\coco.names 中的coco.names 文件
    • 删除除person之外的所有其他类
    • 修改你的cfg文件(例如yolov3.cfg),将第610、696、783行的3个classes从80改为1
    • 将 cfg 文件中第 603、689、776 行的 3 个 filter从 255 更改为 18(源自 (classes+5)x3
    • 运行检测器./darknet detector test cfg/coco.data cfg/yolov3.cfg yolov3.weights data/your_image.jpg

    如需更多使用 COCO 数据集的高级方法,您可以使用此 repo 创建基于 voc、coco 或 open 图像的 yolo 数据集。 https://github.com/holger-prause/yolo_utils .
    另请参阅:How can I download a specific part of Coco Dataset?

    【讨论】:

    • 我尝试了您描述的仅检测班级人员的步骤,但这不起作用。如果我按照这些步骤进行操作,则不会检测到任何内容,并且我会得到班级人员的 0% 地图。
    • @Bixilein 你在用什么仓库?如果我没记错的话,原来的 repo 在预测过程中没有显示任何 mAP。
    • 我正在使用来自 AlexeyAB 的 repo,并且正在使用 ./darknet 检测器映射来计算 mAP。
    【解决方案2】:

    IMMO,将预训练的权重与预先提供的 *.names、*.data 和 *.cfg 一起使用会简单得多。然后在 YOLO 以类名、置信度和 bbox 的形式输出检测列表的模式(我不记得细节)中对单个图像或图像文件名列表运行检测器。然后,您只需忽略“人”类以外的任何内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-30
      • 2017-11-12
      • 2020-10-28
      • 2020-09-05
      • 1970-01-01
      • 2021-06-24
      • 2021-12-20
      • 1970-01-01
      相关资源
      最近更新 更多