网站首页 > 技术文章 正文
●输入一张多目标图像,采用selective search算法提取约2000个建议框;
●先在每个建议框周围加上16个像素值为建议框像素平均值的边框,再直接变形为227×227的大小;
●先将所有建议框像素减去该建议框像素平均值后【预处理操作】,再依次将每个227×227的建议框输入AlexNet CNN网络获取4096维的特征【比以前的人工经验特征低两个数量级】,2000个建议框的CNN特征组合成2000×4096维矩阵;
●将2000×4096维特征与20个SVM组成的权值矩阵4096×20相乘【20种分类,SVM是二分类器,则有20个SVM】,获得2000×20维矩阵表示每个建议框是某个物体类别的得分;
●分别对上述2000×20维矩阵中每一列即每一类进行非极大值抑制剔除重叠建议框,得到该列即该类中得分最高的一些建议框;●分别用20个回归器对上述20个类别中剩余的建议框进行回归操作,最终得到每个类别的修正后的得分最高的bounding box。
●1. 使用 Efficient Graph-Based ImageSegmentation【1】的方法获取原始分割区域R={r1,r2,…,rn}
● 2. 初始化相似度集合S=?
● 3. 计算两两相邻区域之间的相似度(见第三部分),将其添加到相似度集合S中
● 4. 从相似度集合S中找出,相似度最大的两个区域ri和rj,将其合并成为一个区域 rt,从相似度集合中除去原先与ri和rj相邻区域之间计算的相似度,计算rt与其相邻区域(原先与ri或rj相邻的区域)的相似度,将其结果添加的到相似度集合S中。同时将新区域rt添加到 区域集合R中。
●5. 获取每个区域的Bounding Boxes,这个结果就是物体位置的可能结果L
各向同性缩放
第一列是在原始图片中先将box进行扩展成正方形,然后进行裁剪,如果扩展到了图片的外边界,则用box里面的颜色均值填充,
第二列先将box里面的图片裁剪出来,然后用颜色均值填充成正方形,进行裁剪
各向异性缩放
第三列直接缩放,不管扭曲与否
最后发现,在box周围进行16pixel的padding之后,进行各向异性缩放精度最高
直接用alexnet的网络,用ILSVRC2012预训练得到的超参数,作为初始参数值。
然后用2000个建议框进行处理的图片,对预训练的cnn模型进行fine tuning,将最后一层替换成(N+1)个神经元进行输出,n个分类,1个背景,这一层随机初始化参数,其它层参数不变,然后进行SGD训练。
最后用svm进行物体分类
图中省略了通过ss获得proposal的过程
第一张图中红框里的内容即为通过ss提取到的proposal
中间的一块是经过深度卷积之后得到的conv feature map,图中灰色的部分就是我们红框中的proposal对应于conv feature map中的位置
之后对这个特征经过ROI pooling layer处理,之后进行全连接。
在这里得到的ROI feature vector最终被分享,一个进行全连接之后用来做softmax回归,用来进行分类,另一个经过全连接之后用来做bbox回归。
ROI就是候选框在特征图上的映射
●可以简单看作RPN网络+FastR-CNN网络。
●首先向CNN网络【ZF或VGG-16】输入任意大小图片;
●经过CNN网络前向传播至最后共享的卷积层,一方面得到供RPN网络输入的特征图,另一方面继续前向传播至特有卷积层,产生更高维特征图;
●供RPN网络输入的特征图经过RPN网络得到区域建议和区域得分,并对区域得分采用非极大值抑制【阈值为0.7】,输出其Top-N【文中为300】得分的区域建议给RoI池化层;
●第2步得到的高维特征图和第3步输出的区域建议同时输入RoI池化层,提取对应区域建议的特征;
●第4步得到的区域建议特征通过全连接层后,输出该区域的分类得分以及回归后的bounding-box。
●RPN的作用:RPN在CNN卷积层后增加滑动窗口操作以及两个卷积层完成区域建议功能,第一个卷积层将特征图每个滑窗位置编码成一个特征向量,第二个卷积层对应每个滑窗位置输出k个区域得分和k个回归后的区域建议,并对得分区域进行非极大值抑制后输出得分Top-N【文中为300】区域,告诉检测网络应该注意哪些区域,本质上实现了Selective Search、EdgeBoxes等方法的功能。
●首先套用ImageNet上常用的图像分类网络,本文中试验了两种网络:ZF或VGG-16,利用这两种网络的部分卷积层产生原始图像的特征图;
●对于1中特征图,用n×n【论文中设计为3×3,n=3看起来很小,但是要考虑到这是非常高层的feature map,其size本身也没有多大,因此9个矩形中,每个矩形窗框都是可以感知到很大范围的】的滑动窗口在特征图上滑动扫描【代替了从原始图滑窗获取特征】,每个滑窗位置通过卷积层1映射到一个低维的特征向量【ZF网络:256维;VGG-16网络:512维,低维是相对于特征图大小W×H,typically~60×40=2400】后采用ReLU,并为每个滑窗位置考虑k种【论文中k=9】可能的参考窗口【论文中称为anchors,见下解释】,这就意味着每个滑窗位置会同时预测最多9个区域建议【超出边界的不考虑】,对于一个W×H的特征图,就会产生W×H×k个区域建议;
●Anchors是一组大小固定的参考窗口:三种尺度{ 1282,2562,51221282,2562,5122 }×三种长宽比{1:1,1:2,2:1},如下图所示,表示RPN网络中对特征图滑窗时每个滑窗位置所对应的原图区域中9种可能的大小,相当于模板,对任意图像任意滑窗位置都是这9中模板。继而根据图像大小计算滑窗中心点对应原图区域的中心点,通过中心点和size就可以得到滑窗位置和原图位置的映射关系,由此原图位置并根据与Ground Truth重复率贴上正负标签,让RPN学习该Anchors是否有物体即可。对于每个滑窗位置,产生k=9个anchor对于一个大小为W*H的卷积feature map,总共会产生WHk个anchor
●步骤2中的低维特征向量输入两个并行连接的卷积层2:reg窗口回归层【位置精修】和cls窗口分类层,分别用于回归区域建议产生bounding-box【超出图像边界的裁剪到图像边缘位置】和对区域建议是否为前景或背景打分,这里由于每个滑窗位置产生k个区域建议,所以reg层有4k个输出来编码【平移缩放参数】k个区域建议的坐标,cls层有2k个得分估计k个区域建议为前景或者背景的概率。
文中通过4步训练算法,交替优化学习:
●进行上面RPN网络预训练,和以区域建议为目的的RPN网络end-to-end微调训练。●进行上面FastR-CNN网络预训练,用第①步中得到的区域建议进行以检测为目的的Fast R-CNN网络end-to-end微调训练【此时无共享卷积层】。
●使用第2步中微调后的FastR-CNN网络重新初始化RPN网络,固定共享卷积层【即设置学习率为0,不更新】,仅微调RPN网络独有的层【此时共享卷积层】。
●固定第3步中共享卷积层,利用第③步中得到的区域建议,仅微调Fast R-CNN独有的层,至此形成统一网络如上图所示。
猜你喜欢
- 2024-10-15 你认为CNN的归纳偏差,Transformer它没有吗?
- 2024-10-15 Genetic CNN: 经典NAS算法,遗传算法的标准套用 | ICCV 2017
- 2024-10-15 CB Loss:基于有效样本的类别不平衡损失
- 2024-10-15 资源|注意迁移的PyTorch实现 pytorch accuracy
- 2024-10-15 NVIDIA Jetson Nano 2GB 系列文章(49):智能避撞之现场演示
- 2024-10-15 针对不平衡问题建模的有趣Loss 不平衡指派问题matlab
- 2024-10-15 谷歌开源GPipe:单个加速器处理参数3.18亿,速度提升25倍
- 2024-10-15 TensorFlow 模型优化工具包:模型大小减半,精度几乎不变
- 2024-10-15 资源受限场景下的深度学习图像分类:MSDNet多尺度密集网络
- 2024-10-15 ILSVR发展简介 ilsvrc创立者
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)