YOLOV3-keras版本下计算自己数据集的mAP

这篇博客详细介绍了如何在YOLOV3的keras版本下,基于作者‘倔强的大萝卜’的文章和Cartucho/mAP代码库,计算自定义数据集的mAP。内容包括下载mAP压缩包,准备images-optional、ground_truth和detection-results文件夹,以及执行main.py文件的过程。
摘要由CSDN通过智能技术生成

大家好,这是本小白的第一篇博客,主要是在作者"倔强的大萝卜"这篇文章 【YOLOV3-keras-MAP】YOLOV3-keras版本的mAP计算(https://blog.csdn.net/plSong_CSDN/article/details/89502117)的基础上,进行补充,最终实现自己数据集的keras-yolov3的mAP计算。前提是,已经训练好了h5文件。

原博主直接给出了代码包 https://github.com/Cartucho/mAP,其博客也有关键代码的解释,但并没有给出整个连续的实现过程,我看评论里也有一些同是小白的盆友求具体代码,我把它连贯起来了,在这里记录总结一下~

前言

首先引用一下 目标检测问题中的-MAP 里的几个基本概念:
MAP(mean Average Precision):均值平均精度。目标检测模型的性能评估

Ground Truth:对于任何算法,度量总是与数据的真实值(Ground Truth)进行比较,Ground Truth就是数据的真实值。Ground Truth包括图像中的目标的类别以及图像中每个目标的边界框。

Iou:交并比。交并比是模型所预测的检测框和真实(Ground Truth)的检测框的交集和并集之间的比例。

如何计算可以查看原博主 目标检测问题中的-MAP 这篇博文,本文主要讲实现方法。

1 下载mAP压缩包

原博主给出了这个下载地址 mAP代码下载
下载后解压到keras-yolo3的主目录下,若要计算自己的数据,可以把压缩包里mAP-master/input下的三个文件夹(detection_results, ground_truth, images-optional)里的内容清空,以便后续放入自己的数据。

实现mAP的计算主要就是把相应的文件放入到 detection_results, ground_truth, images-optional 这三个文件夹中,然后根据压缩包里的main.py 文件直接生成结果。下面依次解释我是咋实现的。

2 images-optional文件夹

先从最简单的开始吧,images-optional文件夹主要是放你要测试(test)的图像数据的。
第一种方法是,你只需要把你准备的测试图片粘进去
第二种方法是,你可以在main.py 文件中把IMG_PATH的路径引到你放测试图片的文件夹。下面是main.py 文件中的部分代码,修改即可。


GT_PATH = os.path.join(os.getcwd(), 'input', 'ground-truth')
DR_PATH = os.path.join(os.getcwd(), 'input', 'detection-results')
# if there are no images then no animation can be shown
# IMG_PATH = os.path.join(os.getcwd(), 'input', 'images-optional')   默认是images-optional
IMG_PATH = '/home/bu807/Downloads/keras-yolo3-master2/keras-yolo3-master2/test'   #也可以引到自己的test路径

粘完图片,或者改完路径后,images-optional文件夹就搞定了。最简单。

3 ground_truth文件夹

ground_truth用来放真实值,就是你当初标的框的位置大小,如下:一张图里,眼睛 鼻子 嘴巴 的类型、位置和大小。

格式是:classname left top right bottom

eye 86 274 146 305
eye 214 273 282 303
nose 138 334 220 385
mouth 139 404 220 437

这里需要放入原始值的txt文件,我们可以根据xml文件生成。首先,需要将xml导入到ground_truth文件夹;然后,通过covert_gt_xml.py转成txt文件。

3.1 将xml导入到ground_truth文件夹

第一种方法,你的测试图片少的话,可以直接把相应的xml文件粘到ground_truth文件夹。
第二种方法,你的测试图片很多/一个一个找不好找,我简单写了一个代码(如下:findxml.py,你可以把它放在mAP-master/scripts/extra下 ),可以从你的Annotations文件夹中找到相应的xml文件,然后粘到ground_truth文件夹。


                
  • 25
    点赞
  • 91
    收藏
    觉得还不错? 一键收藏
  • 42
    评论
要使用yolov3-keras训练自己的数据集,您需要按照以下步骤进行操作: 1. 数据集准备: 首先,您需要准备您自己的数据集,并将其进行标注。您可以使用VOC2007数据集作为参考。确保您的数据集包含正确的文件夹结构,并且您的标注文件与图像文件匹配。 2. 生成训练集和验证集: 根据您的数据集,创建一个用于训练的文件夹和一个用于验证的文件夹。将您的数据集按比例划分到这两个文件夹中。 3. 修改参数文件: 根据您的数据集和需求,修改yolov3.cfg参数文件。确保您根据您的类别数量,修改参数文件中的类别数相关的选项。同时,您还可以根据需要调整其他参数,如输入图片大小等。 4. 修改类别文件: 创建一个voc_classes.txt文件,并在其中列出您的数据集中的类别名称。确保类别名称的顺序与您的标注文件中的类别顺序一致。 5. 修改训练脚本: 修改train.py文件,以便加载您的数据集和参数文件。确保您修改了相关的路径和文件名,并设置正确的训练参数,如批量大小、学习率等。 6. 开始训练: 运行train.py文件,开始训练您的模型。此时,您需要等待训练过程完成。训练时间可能会根据数据集的大小和计算资源的性能而有所不同。 请注意,您还需要安装相应的环境依赖,如tensorflow-gpu和keras,确保您的环境与yolov3-keras的要求一致。另外,您还可以参考相关的行动计划和具体实现内容,以了解更多关于训练自己数据集的细节。 总结起来,要使用yolov3-keras训练自己的数据集,您需要准备数据集、生成训练集和验证集、修改参数文件、修改类别文件、修改训练脚本并开始训练。记得根据自己的需求进行相应的调整和修改。希望这些信息对您有所帮助!
评论 42
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值