RCNN 学习

RCNN算法流程

RCNN算法流程可分为4个步骤

  • 一张图像生成1K~2K个候选区域(使用Selective Search方法)
  • 对每个候选区域,使用深度网络图特征
  • 特征送入每一类的SVM分类器,判别是否属于该类
  • 使用回归期器细修正候选框位置

 1.候选区域的生成

        利用Selective Search算法通过图像分割的方法得到一些原始区域,然后使用一些合并策略将这些区域合并,得到一个层次化的区域结构,而这些结构就包含着可能需要的物体。

2.对每个候选区域,使用深度网络提取特征

        将2000候选区域缩放到227x227pixel,接着将候选区域输入事先训练好的AlexNet CNN网络获取4096维的特征得到2000X4096维矩阵。

 3.特征送入每一类的SVM分类器,判定类别

        将2000X4096维特征与20个SVM组成的权值矩阵4096X20相乘获得2000X20维矩阵表示每个建议框是某个目标类别的得分(建议框归属于每一个类别的概率)。分别对上述2000X20维矩阵中每一列即每一类进行非极大值抑制剔除重叠建议框,得到该列即该类中得分最高的一些建议框。

       将2000X4096的特征矩阵与20个SVM组成的权值矩阵4096X20相乘,获得2000X20的概率矩阵,每一行代表一个建议框归于每个目标类别的概率。分别对上述2000X20维矩阵中每一列即每一类进行非极大值抑制剔除重叠建议框,得到该列即该类中得分最高的一些建议框。

 最左边是2000×4096的一个特征矩阵,在特征矩阵中,每一行就是我们一个候选框通过CNN网络得到的一个特征向量,然后它有2000个候选框,所以它有2000行特征向量。

中间的图是SVM权值矩阵,每一列对应着一个类别的的权值向量,一共有20个类别,拼接在一起就是4096×20的权值矩阵。(假设SVM分类器的第一列使我们所需要检测的猫,第二列是我们所需检测的狗......)

非最大抑制:抑制不是最大值的元素

4.使用回归器精细修正候选框位置
        对NMS处理后剩余的建议框进一步筛选。接着分别用20个回归器对上述20个类别中剩余的建议框进行回归操作,最终得到每个类别的修正后的得分最高的bounding box。
        如图,黄色框口P表示建议框Region Proposal,绿色窗口G表示实际框Ground Truth,红色窗G表示Region Proposal进行回归后的预测窗口,可以用最小二乘法解决的线性回归问题。

R-CNN框架

 R-CNN存在的问题

1.测试速度慢:

        测试一张图片约53s(CPU)。用Selective Search算法提取候选框用时约2秒,一张图像内候选框之间存在大量重叠,提取特征操作冗余。

2.训练速度慢:

        过程及其繁琐

3.训练所需空间大:
        对于SVM和bbox回归训练,需要从每个图像中的每个目标候选框提取特征,并写入磁盘。对于非常深的网络,如VGG16,从VOCO7训练集上的5k图像上提取的特征需要数百GB的存储空间

  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Mask RCNN中,部分监督学习是指在训练过程中,除了使用bounding box标注的目标位置信息进行训练外,还使用了像素级别的mask标注信息。这种监督学习方法被称为instance segmentation,它可以对每个目标实例进行精确的像素级别的分割。 在Mask RCNN的训练过程中,每个目标实例都有一个对应的mask。这些mask是通过手动标注或者使用图像分割算法生成的。通过将mask与对应的目标实例进行匹配,可以使模型学习到目标的精确边界信息。这样,在测试阶段,模型就可以根据输入图像准确地分割出目标实例的轮廓。 在代码实现中,可以使用PIL库中的Image.open函数读取掩码图片,然后将其转换为P模式,并使用调色板函数将像素值映射为特定的类别颜色。这样可以可视化掩码图像,并对图像进行数据增强等处理。然后可以使用PyTorch提供的MaskRCNNPredictor类来生成Mask预测器,从而实现目标实例的像素级别分割。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [MaskRCNN的实现](https://download.csdn.net/download/weixin_38717156/14941401)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [【纯小白】动手实现MASK RCNN 实例分割(带全部源码)](https://blog.csdn.net/m0_51325463/article/details/127516052)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值