(图像检测1)Py-faster-rcnn-master目录解析

代码来源:https://github.com/rbgirshick/py-faster-rcnn

代码目录:

(图像检测1)Py-faster-rcnn-master目录解析_第1张图片

 Fast-Rcnn是一个two-steps目标检测算法,与之对应的是one-step YOLO算法。Fast-Rcnn主要是解决R-Cnn存在的问题:1、训练分多步,2、时间内存消耗大,3、测试速度慢。作为CV领域的三剑客之一图像检测,对于大家的学习尤为重要,下一篇再讲述YOLO算法。

一、README解读

该代码必须在Caffe构建时支持Python层。并且不能注释WITH_PYTHON_LAYER:= 1,最好使用USE_CUDNN:= 1。对于硬件的要求,至少需要一个3GB的GPU,然后就是一些数据集的链接和如何使用数据集进行训练。

二、代码目录详解

2.1 data文件夹主要包含demo和script,demo里面是用来测试的图片,script文件夹里包含了三种模型的脚本。

(图像检测1)Py-faster-rcnn-master目录解析_第2张图片

2.2 experiments文件夹有3个小文件夹:cfgs,logs,scripts。cfgs是yaml文件,也就是一些配置文件的设置,用户可以自己修改。scripts是一些脚本文件,这些脚本文件是包含不同的网络模型结构。logs文件是用来记录脚本文件运行的日志。

(图像检测1)Py-faster-rcnn-master目录解析_第3张图片

 2.3 lib库是Fast-Rcnn的资源库,里面有很多的资源python文件,比如数据集的制作,包含coco数据集,pascal数据集,voc数据集等等。还有nms的设置,有cpu版本的,gpu版本的。

(图像检测1)Py-faster-rcnn-master目录解析_第4张图片

 2.4 modes 这是一个包含以coco和pascal_voc数据集设置的模型数据,主要的网络结构为VGG16和VGG_CNN_M_1024,然后在目标分类的时候添加了3种目标检测的算法,主要还是以Fast-Rcnn为主。

(图像检测1)Py-faster-rcnn-master目录解析_第5张图片

2.5 tools为工具类,里面有一个demo的小例子,可以让用户自己测试一下效果。除此之外,还有测试网络结构,以及训练网络结构和支持向量机。

(图像检测1)Py-faster-rcnn-master目录解析_第6张图片


 该源代码的目录结构大致如此,具体代码需要读者自行理解,Fast-Rcnn的网络结构讲解如下


三、Fast-Rcnn网络结构

Fast-Rcnn的主网络还是VGG16,输入224*224的原始图像,经过5次卷积层和2个降采样层,再经过感兴趣区域最大池化,最后再经过2个并行的4096的全连接层,前者代表分类的输出,后者代表回归的输出。

(图像检测1)Py-faster-rcnn-master目录解析_第7张图片

由此可以看出,卷积不再是对每一个region proposal进行,而是直接对整张图像进行卷积,这样就可以减轻计算。用了ROIpooling进行特征的尺寸变换,并且将regressor放进网络一起训练,并且用softmax代替了之前的SVM分类器。

四、总结

Fast-Rcnn是图像检测的一种特点,是分为2步走,其识别率和识别速度有限,与现在端到端的YOLO算法相比,大多数性能都不如YOLO。但是其全局卷积和ROIpooling思想值得一学。

 

你可能感兴趣的:(目标检测,人工智能,计算机视觉)