运行faster rcnn运行-CNN 时报错,是哪地方错了吗

RCNN, Fast RCNN, Faster RCNN - 推酷
RCNN, Fast RCNN, Faster RCNN
学习目标检测的三种方法:
目标检测(Object detection):给定一张图片,对其中的某些目标进行检测,输出相应的目标类别和包围盒(bounding box)。
目标检测主要有四个基本步骤:
候选区域生成(region proposal)
特征提取(feature extraction)
分类(classification)
位置精修(rectangle refine)
在RCNN中,为4个步骤除了最后两个同时进行外均是依次进行;在Fast RCNN中,后3个步骤被统一起来;在Faster RCNN中,所有步骤都被统一到了一个深度网络框架内,大大提高了运行速度。这里主要使用Faster RCNN进行实验。
RCNN可以说是利用深度学习进行目标检测的开山之作,算法具体分为以下4个步骤:
对每张图像生成大约2000个候选区域
对每个候选区域,使用CNN提取特征
特征输入每一类的SVM分类器进行类别判断
使用回归器精细修正包围盒位置
候选区域生成
使用Selective Search方法从一张图像生成大约2000个候选区域,步骤如下:
使用一种过分割手段,将输入的图像分割成小区域
查看现有小区域,合并可能性最高的两个区域
合并的方法为:优先合并颜色(颜色直方图)相近的、纹理(梯度直方图)相近的、合并后总面积小的、合并后总面积在其包围盒中所占比例大的区域,且保证合并操作的尺度较为均匀以避免一个大区域陆续吞并其他小区域,保证合并后形状规则。
重复第2步直到整张图像合并成一个区域位置
输出所有曾经存在过的区域,即候选区域
把输入的候选区域归一化成同一尺寸227&227。
使用在ILSVRC 2012分类任务数据集预训练的AlexNet卷积神经网络(CNN)进行调优(fine-tune),并把网络全连接层的输出提取作为特征。
对每一个分类,训练一个线性SVM二分类器。之后可以使用这些分类器进行分类,即输入提取的特征,输出是否属于此类。
目标检测问题的衡量标准是重叠面积,因此需要对包围盒的位置进行精细的修正。
对每一个分类,使用一个回归器(regressor)进行精修。使用分类正确与真实包围盒重叠面积大于0.6的候选区域作为训练样本,输入提取的特征,输出xy方向的缩放和平移。
Fast RCNN方法解决了RCNN方法的三个问题:
测试时速度慢
在RCNN中,每张图像内候选框之间大量重叠,提取特征操作冗余。
Fast RCNN将整张图像归一化后直接送入网络。在邻接时,才加入候选框信息,在末尾的少数几层处理每个候选框。
训练时速度慢
在RCNN中,每张图像内候选框之间大量重叠,提取特征操作冗余。
Fast RCNN在训练时,先将一张图像送入网络,紧接着送入从这幅图像上提取出的候选区域。这些候选区域的前几层特征不需要再重复计算。
训练所需空间大
在RCNN中,独立的分类器和回归器需要大量特征作为训练样本。
Fast RCNN把类别判断和位置精修统一用深度网络实现,不再需要额外存储。
候选区域生成
把输入的图像归一化为同一尺寸224&224直接送入网络。
在网络第5个阶段的卷积层后输入候选区域并连接到roi_pool层。roi_pool层在forward阶段将每个候选区域均匀分成$M \times N$块,对每块进行max pooling;在backward阶段中每个输入节点可能和多个候选区域的输出节点相连。
在网络第5个阶段池化层输出的特征输入到cls_score分类的全连接层中,输出一个$K + 1$维向量,表示K个分类和背景的概率。
在网络第5个阶段池化层输出的特征输入到bbox_predict调整包围盒的全连接层中,与分类层并行形成multi-task。输出一个$4 \times K$维向量,表示属于第K类的包围盒平移缩放的参数。
Faster RCNN
在Faster RCNN中,区域生成网络(Region Proposal Network)代替Fast RCNN中的Selective Search方法,把4个步骤整合到一个网络中,加快了运行速度。
候选区域生成
使用一个区域生成网络(Region Proposal Network)来对输入的图片输出目标区域集及其相关分数。RPN本身是一个FCN(Fully Convolutional Network)。
对每一个大小为$W \times H$的feature map,考虑3种面积和3种比例共$k = 9$种候选区域(anchor),共$WHk$个anchor。
RPN训练的时候,对输入的每张图片,首先把每个标定的真值候选区域与其重叠比例最大的anchor记为前景样本;剩余的anchor中与某个标定重叠比例大于0.7的记为前景样本,而与任意一个标定的重叠比例都小于0.3的记为背景样本;最后剩余的anchor弃去不用。代价函数同时最小化分类误差和前景样本的区域位置偏差。
由于RPN和Fast RCNN都需要一个原始特征提取网络(raw feature extraction net),因此可以共享特征来加速。文中介绍了3种方法:
轮流训练(Alternating training)。用$W_0$训练RPN并用RPN提取训练集上的候选区域。用$W_0$和候选区域训练Fast RCNN,参数记为$W_1$。再用$W_1$训练RPN并用RPN提取训练集上的候选区域……依此类推。
近似联合训练(Approximate joint training)。合并成一个网络训练,在backward计算梯度时,把提取的roi区域当做固定值看待;在backward更新参数时,来自RPN和来自Fast RCNN的增量合并输入原始特征提取层。
联合训练(Non-approximate joint training)。合并成一个网络训练,在backward计算梯度时,要考虑roi区域的变化的影响,具体参考。
基本同Fast RCNN。
基本同Fast RCNN。
基本同Fast RCNN。
1. Object detection. Wikipedia. 最后修订于日.
2. Girshick R, Donahue J, Darrell T, et al. Rich Feature Hierarchies for Accurate Object Detection and Semantic Segmentation[J]., 2014.
3. Girshick R. Fast R-CNN[C]. International Conference on Computer Vision, 2015.
4. Ren S, He K, Girshick R, et al. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks[C]. Neural Information Processing Systems, 2015.
5. Uijlings J, Sande K E, Gevers T, et al. Selective Search for Object Recognition[J]. International Journal of Computer Vision, ): 154-171.
6. Russakovsky O, Deng J, Su H, et al. ImageNet Large Scale Visual Recognition Challenge[J]. International Journal of Computer Vision, ): 211-252.
7. Krizhevsky A, Sutskever I, Hinton G E, et al. ImageNet Classification with Deep Convolutional Neural Networks[C]. Neural Information Processing Systems, 2012.
8. Dai J, He K, Sun J, et al. Instance-aware Semantic Segmentation via Multi-task Network Cascades[J]. Clinical Orthopaedics and Related Research, 2015.
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致3814人阅读
计算机视觉(3)
机器学习(2)
编程相关(1)
深度学习(3)
配置环境: Windows10x64
Matlab2015Ra
Opencv2.4.11
CUDA7.5安装
因为Cuda7.5做了很大的优化改进,而且对win10支持较好,所以这里选择安装Cuda7.5,具体过程 。但是由于作者Matlab 版本的Faster r-CNN的cnn库是在Cuda6.5下编译的,所以这里会出现问题,要么需要自己在Cuda7.5下编译,要么可以在下载。
下载 FasterR-CNN程序包
在作者ShaoqingRen的github上下载Matlab版本的faster-cnn:。然后解压到本地。
编译external/caffe库
如果你的电脑安装的是CUDA6.5, 那么可以直接运行fetch_data/fetch_caffe_mex_windows_vs2013_cuda65.m。
如果你是像本人那样安装了CUDA7.5, 那么你可以在下载编译好的库,直接解压到作者代码的根目录下。
生成nms mex文件
运行文件根目录下的:faster_rcnn_build.m
注意:这里运行的时候会经常报错,是需要将functions/nms/nvmex.m下的Cuda_path改成你电脑的CUDA安装路径。
设置相关函数路径
运行startup.m文件,这只函数运行的相关路径。
下载CNN的models
要么运行作者代码包里的:fetch_data/fetch_faster_rcnn_final_model.m
自动下载并保存在output文件夹里面。
或者自己在里下载,并解压到output文件夹里。
测试运行demo
如果前面一切ok没有问题的话,这里将experiments/script_faster_rcnn_demo.m 拷贝到根目录下,然后运行就可以看到结果了。
注意:由于VGG16模型太大了,所以一般电脑运行起来会出现matlab奔溃,所以这里要么将
opts.use_gpu
=在cpu下运行。
或者使用ZF模型(比VGG16简单,准确度降低):
model_dir= fullfile(pwd, 'output', 'faster_rcnn_final', 'faster_rcnn_VOC0712_ZF');
这样就可以看到测试图片的运行结果和运行时间了。
关于‘invalid Mex File’几点补充
一般是由于系统找不到库文件的原因引起的。
1. 检查caffe_faster_rcnn下面的dll库是否完整,不完整就重新拷过来;
2. 检查cuda, opencv的安装是否完成;
3. 检查系统环境变量,尤其是在Path中添加cuda, opencv的路径。
by Dr. Sword.
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:7507次
排名:千里之外
评论:56条
(1)(2)(1)(1)(1)Faster_R-CNN_v3_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
Faster_R-CNN_v3
上传于|0|0|文档简介
&&Faster_R-CNN
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩11页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢

我要回帖

更多关于 faster rcnn c 的文章

 

随机推荐