rcnn

AlexNet、ResNet 到 Mask RCNN

匿名 (未验证) 提交于 2019-12-03 00:18:01
新智元编译 最近,物体识别已经成为计算机视觉和AI最令人激动的领域之一。即时地识别出场景中所有的物体的能力似乎已经不再是秘密。随着卷积神经网络架构的发展,以及大型训练数据集和高级计算技术的支持,计算机现在可以在某些特定设置(例如人脸识别)的任务中超越人类的识别能力。 我感觉每当计算机视觉识别方面有什么惊人的突破发生了,都得有人再讲一遍是怎么回事。这就是我做这个图表的原因。它试图用最简洁的语言和最有吸引力的方式讲述物体识别的现代史。故事开始于2012年AlexNet赢得了ILSVRC(ImageNet大规模视觉识别挑战赛)。信息图由2页组成,第1页总结了重要的概念,第2页则勾画了历史。每一个图解都是重新设计的,以便更加一致和容易理解。所有参考文献都是精挑细选的,以便读者能够知道从哪里找到有关细节的解释。 计算机视觉6大关键技术 图像分类:根据图像的主要内容进行分类。数据集:MNIST,CIFAR,ImageNet物体定位:预测包含主要物体的图像区域,以便识别区域中的物体。数据集:ImageNet物体识别:定位并分类图像中出现的所有物体。这一过程通常包括:划出区域然后对其中的物体进行分类。数据集:PASCAL,COCO语义分割:把图像中的每一个像素分到其所属物体类别,在样例中如人类、绵羊和草地。数据集:PASCAL,COCO实例分割:把图像中的每一个像素分到其物体类别和所属物体实例

RCNN、Fast-RCNN、Faster-RCNN系列总结

匿名 (未验证) 提交于 2019-12-02 22:56:40
目标检测,作为图像处理的进阶应用。相比于初级的分类,它还需要一个定位物体的过程。通过定位,分类的交替过程完成图片中的多目标检测。 对于定位。主要有两个路线。一,把定位问题看做一个回归问题,直接得到对象的坐标。如,YOLO系列中的五元组,(x,y,w,h,cls)。二,通过滑动窗口轮询的方式,进行定位,这就是RCNN系列region-based思路,这也方便将RCNN系列算法,扩展到语义分割领域。 RCNN 使用卷积神经网络来进行物体检测和语义分割。这是神经网络应用到目标检测领域的关键一步。 针对特定领域的有监督微调 RCNN的过程包括三个: Selective Search算法。在图片全局按照物体类别,依次得到一些region proposal。 把每个region分别输入到卷积神经网络里,提取固定大小(4096维)的特征向量。这里的CNN相当于一个特征提取器。 将特征输入到全连接层,末尾跟一组SVM分类器,分别针对21类进行训练,使其可以在测试时完成分类。 在处理一张图片的全部region以后,对region使用nms极大值抑制(每一类单独处理)。这会拒绝掉一部分重复度较高的region。 RCNN的优点: 1. RCNN回答了卷积神经网络在分类中良好的表现在目标检测部分的可借鉴之处,把CNN当做一个特征提取器。 2. 在特征提取部分,21类共享权值

anaconda环境管理

£可爱£侵袭症+ 提交于 2019-12-01 09:41:20
创建新环境 conda create -n rcnn python=3.6 删除环境 conda remove -n rcnn --all 重命名环境 conda 其实没有重命名指令,实现重命名是通过 clone 完成的,分两步: 先 clone 一份 new name 的环境 删除 old name 的环境 比如,想把环境 rcnn 重命名成 tf 第1步 conda create -n tf --clone rcnn Source: /anaconda3/envs/rcnn Destination: /anaconda3/envs/tf Packages: 37 Files: 8463 第2步 conda remove -n rcnn --all 结果 conda info -e # conda environments: # crawl /anaconda3/envs/crawl flask /anaconda3/envs/flask tf /anaconda3/envs/tf root * /anaconda3 来源: https://www.cnblogs.com/acm-icpcer/p/11675628.html

Faster RCNN

狂风中的少年 提交于 2019-12-01 02:45:02
Faster RCNN Fast-RCNN基本实现端对端(除了proposal阶段外),下一步自然就是要把proposal阶段也用CNN实现(放到GPU上)。这就出现了Faster-RCNN,一个完全end-to-end的CNN对象检测模型(现在是完全的端对端的网络了)。 论文提出:网络中的各个卷积层特征(feature map)也可以用来预测类别相关的region proposal(不需要事先执行诸如selective search之类的算法),但是如果简单的在前面增加一个专门提取proposal的网络又显得不够优雅,所以最终把region proposal提取和Fast-RCNN部分融合进了一个网络模型 (区域生成网络 RPN层),虽然训练阶段仍然要分多步,但是检测阶段非常方便快捷,准确率也与原来的Fast-RCNN相差不多,从此,再也不用担心region proposal提取耗时比实际对象检测还多这种尴尬场景了。(faster RCNN可以大致看做“区域生成网络+fast RCNN“的系统,用区域生成网络代替fast RCNN中的Selective Search方法) 综上,我们可以看出Faster RCNN的创新点就是:将Region Proposal与Fast RCNN相结合,最终实现了速度与精度的平衡。 不信你看: Fast RCNN与Faster RCNNn对比如下:

Fast RCNN

房东的猫 提交于 2019-12-01 01:31:08
回顾 RCNN与Sppnet 可见,Sppnet依然是用了SVM加bbox regression这个套路。 创新点 1>联合训练 实现大部分end-to-end训练(提proposal阶段除外): 所有的特征都暂存在显存中,就不需要额外的磁盘空。 joint training (SVM分类,bbox回归 联合起来在CNN阶段训练)把最后一层的Softmax换成两个,一个是对区域的分类Softmax(包括背景),另一个是对bounding box的微调。这个网络有两个输入,一个是整张图片,另一个是候选proposals算法产生的可能proposals的坐标。(对于SVM和Softmax,论文在SVM和Softmax的对比实验中说明,SVM的优势并不明显,故直接用Softmax将整个网络整合训练更好。对于联合训练: 同时利用了分类的监督信息和回归的监督信息,使得网络训练的更加鲁棒,效果更好。这两种信息是可以有效联合的。) 2>RoI层 提出了一个RoI层,算是SPP的变种,SPP是pooling成多个固定尺度,RoI只pooling到单个固定的尺度 (论文通过实验得到的结论是多尺度学习能提高一点点mAP,不过计算量成倍的增加,故单尺度训练的效果更好。) 3>其他贡献点 指出SPP-net训练时的不足之处,并提出新的训练方式,就是把同张图片的prososals作为一批进行学习

RCNN

房东的猫 提交于 2019-11-30 22:09:25
RCNN是将CNN引入目标检测的开山之作 一、创新点 1、引入Selective Search,预先提取一系列较可能是物体的候选区域,之后仅在这些候选区域上(采用CNN)提取特征,进行判断。 2、预训练:使用两个数据库: 一个较大的识别库(ImageNet ILSVC 2012):标定每张图片中物体的类别。一千万图像,1000类(说白了,这玩意就是为了预训练)。 一个较小的检测库(PASCAL VOC 2007):标定每张图片中,物体的类别和位置,20类(就是在这里面进行Selective Search找到那些框框)。 二、总体架构——四步走战略 1、候选区域生成: 一张图像生成1K~2K个候选区域 (采用Selective Search 方法) 2、特征提取: 对每个候选区域,使用深度卷积网络提取特征 (CNN) 3、类别判断: 特征送入每一类的SVM 分类器,判别是否属于该类 4、位置精修: 使用回归器精细修正候选框位置 三、(细节)Selective Search主要思想 1、使用一种过分割手段,将图像分割成小区域 (1k~2k 个) 2、查看现有小区域,按照合并规则合并可能性最高的相邻两个区域。重复直到整张图像合并成一个区域位置 3、输出所有曾经存在过的区域,所谓候选区域(2、3、的意思是说,先都把区域割的很小很小,逐步合并,那么每一块就会变得越来越大

Paper Reading:Mask RCNN

Deadly 提交于 2019-11-29 02:28:52
Mask RCNN 论文:Mask R-CNN 发表时间:2018 发表作者:(Facebook AI Research)Kaiming He, Georgia Gkioxari, Piotr Dollar, Ross Girshick 论文链接: 论文链接 论文代码:Facebook 代码链接 ;Tensorflow版本 代码链接 ; Keras and TensorFlow版本 代码链接 ;MxNet版本 代码链接 Mask R-CNN是一个实例分割(Instance segmentation)算法,可以用来做“目标检测”、“目标实例分割”、“目标关键点检测”。Mask RCNN以Faster RCNN原型,增加了一个分支用于分割任务。Mask RCNN比Faster RCNN速度慢一些,达到了5fps。 Mask R-CNN引入了RoI Align代替Faster RCNN中的RoI Pooling。因为RoI Pooling并不是按照像素一一对齐的(pixel-to-pixel alignment),也许这对bbox的影响不是很大,但对于mask的精度却有很大影响。使用RoI Align后mask的精度从10%显著提高到50%。引入语义分割分支,实现了mask和class预测的关系的解耦,mask分支只做语义分割,类型预测的任务交给另一个分支。这与原本的FCN网络是不同的

Faster RCNN 学习笔记

强颜欢笑 提交于 2019-11-28 22:23:51
下面的介绍都是基于 VGG16 的 Faster RCNN 网络,各网络的差异在于 Conv layers 层提取特征时有细微差异,至于后续的 RPN 层、 Pooling 层及全连接的分类和目标定位基本相同 . 一)、整体框架 我们先整体的介绍下上图中各层主要的功能 1) 、 Conv layers 提取特征图: 作为一种 CNN 网络目标检测方法, Faster RCNN 首先使用一组基础的 conv+relu+pooling 层提取 input image 的 feature maps, 该 feature maps 会用于后续的 RPN 层和全连接层 2) 、 RPN(Region Proposal Networks): RPN 网络主要用于生成 region proposals ,首先生成一堆 Anchor box ,对其进行裁剪过滤后通过 softmax 判断 anchors 属于前景 (foreground) 或者后景 (background) ,即是物体 or 不是物体,所以这是一个二分类;同时,另一分支 bounding box regression 修正 anchor box ,形成较精确的 proposal (注:这里的较精确是相对于后面全连接层的再一次 box regression 而言) 3) 、 Roi Pooling : 该层利用 RPN 生成的

如何运行Faster RCNN的tensorflow代码

青春壹個敷衍的年華 提交于 2019-11-28 22:23:29
0.目的   刚刚学习faster rcnn目标检测算法,在尝试跑通github上面Xinlei Chen的tensorflow版本的faster rcnn代码时候遇到很多问题(我真是太菜),代码地址如下: https://github.com/endernewton/tf-faster-rcnn 1. 运行环境配置   代码的README里面说明了,环境要求既有是这个git里面的,还有就是rbg的caffe代码中也有了一些环境。基本上包括: python2.7 CUDA(并行计算库)>=6.0 cudnn(深度学习库) cython , opencv-pyt hon easydict=1.6   当然这只是跑通代码的环境,并没有那么苛刻的。 1.1 检查环境   检查环境的目的是为了安装TensorFlow,首先是 1.1.1 Linux 内核和发行版   需要查看 linux内核和发行版,来确定后续一些软件的安装版本选择。《如何查看LINUX发行版的名称及其版本号》:https://www.qiancheng.me/post/coding/show-linux-issue-version   查看Linux内核 uname -a   查看Linux发行版 cat /etc/redhat-release #centos下面的命令      我用的是 centos

Tensorflow faster rcnn系列一

二次信任 提交于 2019-11-28 22:23:03
注意:本文主要是学习用,发现了一个在faster rcnn训练流程写的比较详细的博客。 大部分内容来自以下博客连接:https://blog.csdn.net/weixin_37203756/article/details/79926543 以下为正文: 第一点:首先要明白faster rcnn目录下都有哪些文件夹,都有什么用处。 文件夹: data ----------------> 存放的是用于训练的数据集,一般我们用的都是voc2007的数据集,还有一个很重要的文件夹是imagenet_weights, 必不可少的, 这里存放的也就是VGG的模型,还有一个cache文件夹是随着训练的进行,用来存放数据的,为了下次加载数据方便。 expreiments------>下面有个scripts文件夹里面存放的是faster_rcnn_end2end.sh, 算是起始指令吧,我们是通过运行这个文件,加载参数来调用 其他各个文件的。 lib-------------------->该文件夹存放的东西很多,主要是一些python接口及运行的Log文件。所以说程序运行之前先make一下,关于里面各个作用, 下面我会根据流程一一讲解。 output--------------> 存放的是你的输出结果,你的训练结束后所训练好的模型。 tools---------------->里面存放的是训练