• 理解Faster-RCNN 中的Anchor


    先上图看一下Faster R-CNN操作流程:


     图片说明:Faster R-CNN=Fast R-CNN+RPN,其中Fast R-CNN结构不变;RPN负责生成proposals,配合最后一层的feature map,使用ROI Pooling,生成fixed length的feature vector。我们详细讨论一下RPN的操作过程 


    图片说明,红框只是一个滑窗的操作过程,注意这里的anchor是原图像像素空间,而不是feature map上的。这样
    anchor是RPN的核心:

           假设我们现在得到的feature map为W * H * C(13 * 13 * 256就是feature map的width=13,height=13,channel=256),我们如何产生网络需要的proposals呢?我们在feature map使用滑动窗口的操作方式(stride=1,padding=1),当前滑窗的中心在原像素空间的映射点称为anchor,以此anchor为中心,生成k(paper中default k=9, 3 scales and 3 aspect ratios)个proposals。
    在此feature map滑动一个mini-network,这个network输入是3 * 3 * 256,经过3 * 3 * 256 * 256的卷积,得到1 * 1 * 256的低维向量;接下来进行分类:①Classification:经过1 * 1 * 256 * 18的卷积核,得到1 * 1 * 18的feature vector,分别代表9个proposals的是/不是Object的概率(这里有一个疑惑,为什么要生成一对?生成一个是Object的概率不就好了?也许是为了设计方便?);②Regression:经过1 * 1 * 256 * 36的卷积核,得到1 * 1 * 36的feature vector,分别代表9个proposals的(center_x,center_y,w,d)。
    上述操作只是一个3 * 3的滑动窗口的操作过程,实际操作过程中,必须将13 * 13的feature map均执行一边;于是在RPN中,产生了两个损失函数:①Classification loss②Regression loss。
    这样的话,通过滑动窗口和anchor机制,我们就可以找到固定比例、一定大小的proposals:①物体大小不同导致的proposal被覆盖②物体aspects ratios不同导致proposals也被覆盖
    由上可知,NRP可以代替Selective Search产生proposals,而且最关键的一点是RPN 更快
    ROI pooling V.S. SSP Pooling 
    ROI是只有一层的

    SSP Pooling:ROI Pooling将proposal在feature map上的对应区域分为W * H 份,每一份取Max/Avg 将其放到固定位置
    SSP Pooling是将proposal分为(4 * 4 / 2 * 2 / 1 * 1份,然后进行拼接,得到fixed length=21的feature vector)

    对于Faster-RCNN的解读:https://zhuanlan.zhihu.com/p/31426458

  • 相关阅读:
    php读取大文件如日志文件
    大型站点高并发架构技术
    Nginx配置文件nginx.conf详细说明文档
    关于PHP高并发抢购系统设计
    Mysql常用的锁机制
    Sping基础
    Reliable Master持续集成环境搭建Centos
    Win7 macaca自动化环境搭建 PC篇
    安卓appium无线调试
    Selenium PageFactory使用
  • 原文地址:https://www.cnblogs.com/yuanmingzhou/p/11077438.html
Copyright © 2020-2023  润新知