Faster-RCNN-TF测试及问题

前面仅说了如何训练自己的数据,其实运行Faster-RCNN-TF训练后,也会经过验证以及测试,最后产生一个结果,具体结果就是我们常说的AP值,当然对于多分类问题程序会求出mAP值。这里主要是记录一下在训练后会出现的问题,然后能让我们进行接下来的测试集测试以及demo的测试,同时通过测试,可以帮助我们更好的优化我们的模型,让模型达到更好的效果。

一、测试

测试前准备

对于测试,我们在训练完成后,Faster-RCNN-TF会将训练好的模型保存在output文件夹下,具体如下,这里是自己训练的一个模型 ,前面迭代次数保存的模型,自己删掉了,所以,就只看一下这个吧。

Faster-RCNN-TF测试及问题
对于需要调整参数进行优化的我们来讲,我们最好对于不同迭代次数产生的模型都进行测试,能够让我们很好的找到一个合适的迭代次数。

训练完成后,会产生许多数据的计算值,并保存了下来,但是在单独测试(单独)时,我们就要将这些文件删除了,以免会产生错误,如下图
Faster-RCNN-TF测试及问题Faster-RCNN-TF测试及问题
另外,在测试前,一定要进入自己数据集中的ImageSet/Main文件夹下,重新看一下自己的训练、验证、测试集编号和数量,确认没有问题。

测试

我们可以根据tool文件夹里的test_net.py文件能够得到我们的训练语句,如下图
Faster-RCNN-TF测试及问题
这里,根据自己的情况进行修改,其中default中的值就是默认值,如果你在测试时,在终端输入时对这部分不赋值,那么就会按照default中默认值进行赋值。如果你想压缩在终端时的赋值语句,就完全可以把这部分的default值全部按照自己要输入的值修改好。
这里是自己的一个测试语句
Faster-RCNN-TF测试及问题
这里,采用gpu,weights就是我们训练好的模型位置。cfg就选择你测试的方式,这里使用的就是端到端的方式,即由输入直接得到结果。networks就是你使用的网络结构,当然,如果你有自己的网络结构,可以使用自己的,只是自己需要重新修改定义。

测试的结果,自然是计算AP值,针对多分类任务,会求出mAP值,我们也一直使用它来衡量模型的效果。

有时,自己会使用alt_opt的方法,也就是交替优化,这种方法,可以先找出目标位置和大小,再经过第二部分网络,判断目标存在以及分类。这样增加训练的时长,但有助于我们修改以及理解算法。

二、问题

这部分产生的问题,主要还是没有全部将代码修改好,如果我们想通过训练然后直接得到目标迭代次数的模型结果,我们就要将测试部分的代码也修改好。
如在lib/networks/VGGnet_test.py,需要修改类别
Faster-RCNN-TF测试及问题
另外在lib/fast_rcnn/config.py中修改超参数,这个根据自己目标情况修改。

最重要的问题,自己在训练完成到测试时会产生一个问题,就是无法找到comp文件,文件名太长,就不写了,直接截图了
Faster-RCNN-TF测试及问题
就是放在这个位置的txt文件,当然,前面的results/VOC2007/Main文件夹也不存在,最终在同学的指导帮助下,就是自己直接在训练前或者测试前,建立results/VOC2007/Main文件夹,并建立以comp这个名字命名的txt文件,这样就解决了出错的问题。
但是,为什么这样修改,这个问题一直困扰着自己,所以如果最近有同学也遇到相同的问题,可以一起交流一下!!

这些只是自己的总结,不足的地方希望阅读者指正见谅!