• FastRCNN


    FastRCNN步骤

    • 使用选择化搜索生成候选区域
    • 使用深度神经网络提取特征
    • 将生成的候选区域映射到特征图上,使用ROI池化缩放到统一尺寸(7×7)
    • 将ROI池化后的特征图展平,然后通过多个全连接层
    • 并行使用两个全连接层来预测类别和边界框

    请添加图片描述

    FastRCNN和RCNN区别

    RCNN是先提取多个候选区域,然后把候选区域输入到卷积神经网络,这样在前向传播的时候会有许多的重复计算,而FastRCNN是直接将整张图片输入到卷积神经网络得到特征图,然后将候选区域映射到特征图上,这样就避免了重复计算。

    训练样本采样

    从选择化搜索得到的大约2000个候选区域中随机采样64个,其中一半为正样本,一半为负样本,当候选框和真实边界框的IOU大于0.5,那么认为是正样本,而候选框和所有边界框的IOU的最大值在0.1-0.5之间的则认为是负样本。

    ROI池化

    ROI池化可以将不同大小的特征图映射到相同大小,比如想要映射到n×n大小,那么就将原来的特征图划分成n×n个格子,每一个格子都包含了一些数值,对每一个格子使用max pooling,就可以得到n×n大小的特征。

    在这里插入图片描述

    分类器

    假设N为类别个数,那么softmax对应的全连接层应该是N+1个节点。
    在这里插入图片描述

    边界框回归器

    假设N为类别个数,那么边界框回归器输出(N+1)×4个值,每一个类别都对应4个值,分别为 ( d x , d y , d w , d h ) (d_x, d_y,d_w,d_h) (dx,dy,dw,dh)
    在这里插入图片描述
    边界框回归:
    G x ^ = P w d x ( P ) + P x G y ^ = P w d y ( P ) + P y G w ^ = P w e d w ( P ) G h ^ = P h e d h ( P ) \hat{G_x}=P_wd_x(P)+P_x \\ \hat{G_y}=P_wd_y(P)+P_y \\\\ \hat{G_w}=P_we^{d_w(P)} \\ \hat{G_h}=P_he^{d_h(P)} Gx^=Pwdx(P)+PxGy^=Pwdy(P)+PyGw^=Pwedw(P)Gh^=Phedh(P)
    其中, P x , P y , P w , P h P_x,P_y,P_w,P_h Px,Py,Pw,Ph分别为候选框中心x,y坐标和宽高。
    G x ^ , G y ^ , G w ^ , G h ^ \hat{G_x},\hat{G_y},\hat{G_w},\hat{G_h} Gx^,Gy^,Gw^,Gh^是最终预测的边界框中心和宽高。
    在这里插入图片描述

    损失函数

    FastRCNN使用的是多任务损失(Multi-task)
    在这里插入图片描述
    其中,p为softmax的输出概率,u为真实的标签, u ≥ 1 u\ge 1 u1表示只有类别不是背景的时候才有边界框回归损失。

    分类损失使用的是交叉熵损失,而边界框回归损失使用的是smoothL1损失
    在这里插入图片描述

  • 相关阅读:
    hive判断重复数据连续并分组
    Linux下的进程控制
    C++ Reference: Standard C++ Library reference: C Library: cwchar: wmemchr
    JavaScript大神:我们能对 JavaScript 做的最好事情就是让它退役!
    Emscripten安装并配置环境变量
    ARM硬件断点
    圆周率 π 小数点第 100 万亿数字是多少?Google 用 Debian 服务器给出了答案
    2022最火的Linux性能分析工具--perf
    微软Azure OpenAI申请和使用教程
    使用逆滤波算法deconvwnr恢复图像回复图像时,产生了很多横竖条纹。解决办法
  • 原文地址:https://blog.csdn.net/weixin_47524903/article/details/125412529