Proposal,同时可以达到和检测网络共享整个图片的卷积网络特征的目标,使得region proposal几乎是cost free的。
关于Faster R-CNN的详细介绍,可以参考我。
Faster R-CNN的代码是开源的,有两个版本:,。
这里我主要使用的是Python版本,Python版本在测试期间会比MATLAB版本慢10%,因为Python layers中的一些操作是在CPU中执行的,但是准确率应该是差不多的。
为了检验你的py-faster-rcnn是否成功安装,作者给出了一个demo,可以利用在PASCAL VOC2007数据集上体现训练好的模型,来进行demo的运行,步骤如下:
demo会检测5张图片,这5张图片放在data/demo/
文件夹下,其中一张的检测结果如下:
至此如果上述过程没有出错,那么py-faster-rcnn算是成功编译安装。
由于Faster R-CNN的一部分实验是在PASCAL VOC2007数据集上进行的,所以要想用Faster R-CNN训练我们自己的数据集,首先应该搞清楚PASCAL VOC2007数据集中的目录、图片、标注格式,这样我们才能用自己的数据集制作出类似于PASCAL VOC2007类似的数据集,供Faster R-CNN来进行训练及测试。
这一部分不是必须的,如果你需要PASCAL VOC2007数据集,可以利用以下命令获取数据集,但我们下载VOC数据集的目的主要是观察他的文件结构和文件内容,以便于我们构建符合要求的自己的数据集。
创建一个专门用来存数据集的地方,假设是$HOME/data
文件夹。
下载PASCAL VOC2007的训练、验证和测试数据集:
下载完后用以下命令解压:
创建快捷方式symlinks来连接到VOC数据集存放的地方:
最好使用symlinks来在共享同一份数据集,防止数据集多处拷贝,占用空间。
至此VOC数据集创建完毕。
PASCAL VOC数据集的文件结构,如下:
该文件夹主要用来存放图片标注(即为ground truth),文件是.xml格式,每张图片都有一个.xml文件与之对应。选取其中一个文件进行如下分析:
所以为了能够顺利训练,一定要仔细检查自己的xml文件中的左上角的坐标是否都为正。我被这个bug卡了一两天,最终把自己标记中所有的错误坐标找出来,才得以顺利训练。
ImageSets文件夹下有三个子文件夹,这里我们只需关注Main文件夹即可。Main文件夹下主要用到的是train.txt、val.txt、test.txt、trainval.txt文件,每个文件中写着供训练、验证、测试所用的文件名的集合,如下:
JPEGImages文件夹下主要存放着所有的.jpg文件格式的输入图片,不在赘述。
经过以上对PASCAL VOC数据集文件结构的分析,我们仿照其,创建首先创建类似的文件结构即可:
我建议将Caltech文件创建一个symlinks链接到VOCdevkit文件夹之下,因为这样会方便之后训练代码的修改。
以上所有和有关的文件,都可以直接邮件与我联系,我直接发给你,可以省下不少制作数据集的时间。
楼主你好,我想问一下我的训练数据集只包含目标(Xmin,Ymin,Xmax,Ymax=(0,0,17,29)图片大小为30*18)这样是可以的吗?我的实验结果中,检测框很大,跟这个有关系吗?
第一次写博客,没想太多。只是想记录一下训练Faster-rcnn是遇见的一些问题。因为在我训练出bug的时候有点绝望,怀疑人生。不过在看到开始训练的一瞬间又觉得活着挺好的。
咸鱼大神的博客简单易懂。并且对于一些训练时出现的问题给出了解答。(5星好评)
到这里,如过没出错,已经能训练了。
4.自己碰到的问题(5个)
这句话的时候,报了个很稀奇的错,而且网上没找到答案。
找不到这个路径,但是我的文件确实放对了地方,而且当我用cd命令的时候可以进入这个文件夹,打开对应的.jpg文件。
可能有两个原因:
如果有编码问题的话可能你还要修改另一个地方,要不test的时候会报错。
训练的最后完事后,遇到个错误
因为我在训练自己的数据前用过rbg大神的来跑demo,所以这个是他的.caffemodel,就是标注的红色部分21各类。
后面绿色的是你自己的类的数目。
都能好了,demo能跑完,但是不出结果。没有跑rbg大神demo时候的图片框出现。(有点急,后天就要交稿了,自己的demo还没跑出来)
浪费了一天,后来突发奇想解决了。
(我也忘了是什么时候放到这个文件夹下的了。可能是之前跑rbg大神的demo的时候,也可能是之前搭环境的时候。)
*越南小哥给我的一个建议:(节省时间的小技巧)
为了省时间,先运行几条数据试试水。
后来发现,时间跟迭代次数有关,跟数据多少关系好像不大。所以就修改了迭代次数。
我改的比较极端[40,20,40,20],一路跑下来到最后的时候会有另一个错。
这个错是说没有学习到东西,我用了[00,2000]试了一下也不行。不过能看到这个错误,如果你的数据集做的没有问题的话,用[,](亲测大概16小时,1341张图)运行你自己的数据集就没问题了。为了省时间我用的是[,](大概8小时,50张图)。这个时间好像与图片大小和图片数量关系不大。感觉只与迭代次数有关。
到这是我经历的各种坑。一个小白的心路历程,希望大家不要再踩了。(捂脸)
*还有个我自己的小技巧:没有什么事是上心了还做好的。这两天,睡觉5点都会惊醒,然后穿上衣服直奔研究室。
这是我做的数据(我只用了50张训练2个类,samurai和背景。最后的结果不是很理想,框子有点大。可能是数据不够的原因)