首页 > 编程知识 正文

数据测试是干嘛的,大数据测试

时间:2023-05-03 10:49:03 阅读:189545 作者:4719

看了很多博客,有了更简单的方法。 请看一下。 我直接使用了fastrcnn的地图脚本。 本博客是为了在项目上评价网络,并不是故意走那么多弯路。 因为原始的地图计算和我们yolo收集的数据集是不兼容的。 然后,为了更准确地判断,我们在计算地图时修改其iou的数值、confidence数据、面积滤波、坐标滤波等。 如果大家想求map的话,博主看教程很容易,但是没有试过。 原理是一样的。 3359 blog.csdn.net/leewanzhi/article/details/79690275态度虽然不好,但看起来可能很简单。 本文根据yolo公式,yolo v2具有76.8%的mAP,与SSD 500持平,仅通过fps冥想就以碾压优势取胜。 除此之外,tiny-yolo也有57.1%的地图。 以前博客进行了yolov2和tinu-yolo的移植和改良,训练了近3000张数据。 但经过实际测试,发现tiny-yolo网络的实际效果并没有官网所宣称的那么好,即使将迭代次数改为60000也是徒劳的。 但是,yolov2网络的效果不容小觑,基本博客的大部分检测物体都能很好地识别。 因此,博主试图实际测量yolov2和tiny-yolo的实际mAP值。

首先说明什么是地图。 目标检测中测量识别精度的指标是map(meanaverageprecision )。 在多个类别的物体检测中,可以根据每个类别的recall和precision绘制曲线。 AP是该曲线下的面积,mAP是多个类别AP的平均值。 以上介绍来自知乎论坛。 具体信息可以在百度和谷歌上搜索。

因为是使用的voc规格的数据集,所以应该有训练图像的源文件、xml文件。 但是,这些文件并不直接在yolo网络上检测到,而是必须将每个图像转换为相应的描述性文件txt。 这里,每个图像都记载了检测物体的类别、位置、尺寸。 但是,对于进入fast-rcnn的mAP计算程序来说,他需要的确实是别的格式,由于博主在进行格式变换时出现了很多bug,所以现在统一了识别为voc格式的格式,MMC

要衡量训练网络的效果,首先需要一定数量的测试数据集。 测试数据集需要图像和对应于每个图像的xml描述文件,而不是txt描述语言,因此相对来说需要较少的进一步转换。 使用

./darknetdetectorvalidcfg/VOC.data CFG/lucky-VOC.CFG backup/lucky-slippers-color _ 30000.weights-out 123 -

上述代码使用yolo网络附带的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

backup=backup

因为我只有一个标识,所以class为1,train是训练的数据地址描述文件,valid是值测试的地址描述文件。 后面的name是类别描述文件,backup通常是培训时保存的路径。 需要修改的只有名为valid的项目,指的是需要测试的文件名。

cfg/lucky-voc.cfg是指与培训、检查时相同的配置文件。

backup/lucky-slippers-color _ 30000.weights是指你使用的权重。

-out是参数,输出到紧接在其后的文件名。

-thresh是输出阈值参数,但没有设置为源代码,因此在实际测试中效果不大。 这里设为0.5。

执行此语句后,darknet开始加载权重文件,并根据提供的测试文件目录逐一开始识别检查。 最后执行后,图像如下所示

(we use gpu! 请无视。 这是博主以前测试gpu和cpu速度时输出的)

在文件./results/中可以看到刚才的输出文件123tuoxie.txt。 yolo对识别的内容进行分类,并在自定义名称之后附加类别名称,如这里的123tuxie。

里面的内容也有点奇怪,好像不合逻辑。 是博客操作错误,还是博客在以前的优化时错误地更改了yolo的源代码? (从数据上看,设定的阈值确实没有用。 在源代码中也能看到。 )

首先开始计算地图。 映射计算使用fast-rcnn的voc_eval函数。 因为专业变了,所以可以更直接地得到我们想要的数据。 首先,确保所有测试图像都与对应的xml文件在一起。 否则,在查找匹配的描述文件时会出现错误。请注意,所有分类的图片都要放在同一个目录!!!如下图所示

然后将计算出的源代码下载到本地小文件voc-eval-github中

git clone gi

t@github.com:lucky-ing/voc_eval.git

里面只有一个文件123.py,使用

python 123.py /home/lucky/yolo/darknet/results/123tuoxie.txt /home/lucky/open/tuoxie_VOC/valid.txt tuoxie

/home/lucky/yolo/darknet/results/123tuoxie.txt是指刚才测试后的数据地址。/home/lucky/open/tuoxie_VOC/valid.txt,是测试的图片地址描述文件,和上面的voc.data是同一个文件。第四个参数tuoxie,是我们要计算mAP的类别名。然后,回车,运行,

不同的class有不同的valid文件,所以不同的分类需要一个一个测试。

最新更新:

这个用来测试mAP的文件因为麻烦,收到很多质问,博主在这一并回复。

为什么计算mAP的时候还需要xml文件?

答:因为yolo网络valid出来的是多个文件夹,每个文件夹代表一个分类检测出来的所有的情况,但是这些情况的信息使用使用像素位置来表示的。即,如果在480×480的图片中,里面检测出来的物体框图都是使用像素的位置,例如
20171015_210945 0.006307 292.750244 123.649994 354.466797 264.518311
代表着在20171015_210945图片中,检测出一个置信度为0.006307的物体,位置在292.750244 123.649994 354.466797 264.518311,这表示的是方框的对角的像素坐标。但是我们训练时候的标注文件(.txt)里面使用却是相对比例信息,例如
0.4 0.5 0.2 0.1
这个是指在图片比例0.4,0.5点有一个宽0.2,高0.1的物体。这就导致了求解mAP的时候信息格式是不对等的,所以只能从源xml文件找标注的信息。

为什么voc_eval文件计算的时候会保存一个txt文件?

答:因为xml的文件的原因,他需要统一路径,所以保存了文件,然后再读取,现在博主已经更新了,不会再保存文件了。

为什么读取valid文件错误?

因为博主设定的图片格式只有.jpg,现在已经支持.jpg .JPEG .png .PNG图像格式了。

为什么在使用voc_eval文件计算mAP的时候会显示目录错误。

请注意,是否将所有的测试图片都放在了同一个文件夹,请注意,一定要将所有的测试图片放在同一个文件夹内!!

为什么有时候会有split之类的错误?

博主遇到了这个问题,后来分析是因为测试集的名字有空格,所以导致在提取信息的时候会产生问题。如果真的是这个问题,那就需要修改yolo源码了,使yolo输出的文件用:或者其他符号来表示,然后提取的时候就不会出现这种问题。

新添加的功能 支持了查全率和查准率的图像的调取,保存在了目录下的123.jpg contact

欢迎读者一起讨论,或者联系博主邮件:lucky_lsq@163.com

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。