数据测试是干嘛的,大数据测试是干嘛的,数据测试是干嘛的,大数据测试是啥
看了很多博客,有一个更简单的方法。请看一看。我直接用了fastrcnn的地图脚本。这个博客是为了评价网络上的项目,而不是故意走那么多弯路。因为原图计算和我们yolo采集的数据集不兼容。然后,为了更准确地判断,我们修改了iou的值、置信度数据、区域滤波、坐标滤波等。计算地图时。想求地图,博主看教程很容易,但是没试过。原理是一样的。359 blog.csdn.net/leewanzhi/article/details/79690275s的态度不好,但看起来很简单。根据本文的yolo公式,yolo v2的mAP为76.8%,与SSD 500相当。它只通过fps冥想碾压获胜。除此之外,tiny-yolo也有57.1%的地图。以前博客是yolov2和tinu-yolo移植改进的,训练了近3000条数据。但实际测试后发现,tiny-yolo网络的实际效果并没有官网宣称的那么好,即使把迭代次数改成6万次也是徒劳。但是yolov2网络的效果不可小觑,基本博客的大部分检测对象都能很好的识别。所以博主们尝试实际测量yolov2和tiny-yolo的实际地图值。
首先解释一下什么是地图。Map(meanaverageprecision)是目标检测中衡量识别精度的指标。在多类别目标检测中,可以根据每一类别的查全率和查准率绘制曲线。AP是这条曲线下的面积,mAP是AP的多个类别的平均值。以上介绍来自知乎论坛。具体信息可以在百度和谷歌上搜索。
因为是用的voc数据集,所以应该有训练图像的源文件和xml文件。但是这些文件并不是直接在yolo网络上检测到的,而是每张图片都要转换成相应的描述文件txt。这里,每个图像记录被检测物体的类别、位置和大小。但是对于进入fast-rcnn的地图计算程序来说,他需要的真的是另一种格式。因为博主在格式转换上有很多bug,所以现在公认的voc格式是统一的,MMC。
衡量训练网络的效果,首先需要一定数量的测试数据集。测试数据集需要图像和对应于每个图像的xml描述文件,而不是txt描述语言,因此需要的进一步转换相对较少。使用。/darknetdetectorvalidcfg/VOC . data CFG/lucky-VOC。CFG备份/幸运拖鞋-color _ 30000 .重量-出123 -
上面的代码使用yolo network附带的valid函数接口测试了大量的图片,并将它们存储在123.txt文件中。其他文件、名称、位置也可以自己决定。
首先,cfg/voc.data中描述了几个路径,具体如下
类别=1
train=/home/lucky/open/tuoxie _ VOC/train . txt
valid=/home/lucky/open/tuoxie _ VOC/valid . txt
names=data/voc.names
备份=备份
因为我只有一个ID,class是1,train是用于训练的数据地址描述文件,valid是用于值测试的地址描述文件。后面的名字是类别描述文件,备份通常是训练时保存的路径。只有名为valid的项需要修改,它指的是要测试的文件名。
Cfg/lucky-voc.cfg指的是与培训和检查中使用的配置文件相同的配置文件。
backup/lucky-sliders-color _ 30000 . weights是指您使用的重量。
-out是一个输出到紧随其后的文件名的参数。
-thresh是输出阈值参数,但没有设置为源代码,所以在实际测试中影响不大。这里它被设置为0.5。
该语句执行后,darknet开始加载权重文件,并根据提供的测试文件目录逐一开始识别检查。最后,执行后,图像如下
(我们用的是gpu!请忽略它。这是以前博主测试gpu和cpu速度时输出的)
在文件中可以看到刚才的输出文件123tuoxie.txt。/results/。Yolo对识别出的内容进行分类,并在自定义名称后追加类别名称,比如这里的123tuxie。
里面的内容也有点奇怪,好像不合逻辑。是博客操作错误,还是博客在之前的优化中误改了yolo的源代码?(从数据上看,设置的阈值真的没用。在源代码中也可以看到。)
首先,算算地图。该映射使用fast-rcnn的voc_eval函数。因为专业变了,我们可以更直接的得到想要的数据。首先,确保所有的测试图像都有相应的xml文件。否则,在查找匹配的配置文件时将会出错。
请注意,所有分类的图片都要放在同一个目录!!!
如下图所示然后将计算出来的源代码下载到本地小文件voc-eval-github。
git克隆gi
t @ github . com:lucky-ing/VOC _ eval . git里面只有一个文件123.py。使用
python 123 . py/home/lucky/yolo/darknet/results/123 tuo Xie . txt/home/lucky/open/tuo Xie _ VOC/valid . txt tuo Xie/home/lucky/yolo/darknet/results/123 tuo Xie . txt参考刚刚测试的数据。测试的镜像地址描述文件/home/lucky/open/tuo Xie _ VOC/valid . txt和上面的voc.data是同一个文件。第四个参数tuoxie是我们要计算的地图的类别名称。然后,输入,运行,
不同的类有不同的有效文件,所以不同的类需要逐个测试。
更新:这个用来测试地图的文件因为麻烦收到了很多问题。博主会在这里回复。
计算mAP时为什么需要xml文件?
回答:因为yolo network valid出来的时候有多个文件夹,每个文件夹代表一个分类检测到的所有情况,但是这些情况的信息是用像素位置来表示的。也就是说,如果在一个480480的图片中,在其中检测到的对象块图都是像素的位置,例如
20171015_210945 0.006307 292.750244 123.649994 354.466797 264.518311
这意味着在20171015_210945的图片中,检测到一个置信度为0.006307的物体,其位置为292.750244 123.400000040005然而,当我们训练时,标注文件(。txt)使用相对比例信息,例如
0.4 0.5 0.2 0.1
这是指在0.4和0.5的画面比例下,宽度为0.2、高度为0.1的对象。这就导致了在求解mAP时信息的格式不对等,所以只能从源xml文件中找到标注的信息。
为什么voc_eval文件在计算的时候会保存一个txt文件?
答:因为xml文件,他需要一个统一的路径,所以他保存了文件,然后读取。现在博主更新了,不会再保存文件了。
为什么读取有效文件时会出错?
因为博主设置的图片格式只有。jpg,它现在支持。jpg。JPEG。png。PNG图像格式。
为什么用voc_eval文件计算mAP时会出现目录错误?
请注意是否是
将所有的测试图片都放在了同一个文件夹
。请注意,所有的测试图片必须放在同一个文件夹中!为什么有时会出现像拆分这样的错误?
Blogger遇到了这个问题,后来分析测试集的名称中有一个空格,导致提取信息时出现问题。如果真的是这个问题,就需要修改yolo源代码,让yolo输出的文件用:或者其他符号表示,然后解压就不会出现这种问题了。
新功能支持图像的召回和精确。目录中存储的123.jpg联系人欢迎读者讨论,或联系博主邮箱:lucky_lsq@163.com。