• 8月23日计算机视觉理论学习笔记——目标检测


    系列文章目录


    前言

    本文为8月23日计算机视觉理论学习笔记——目标检测,分为四个章节:

    • 目标检测的目标;
    • 区域卷积神经网络 R-CNN;
    • SPP-Net;
    • Fast R-CNN。

    一、目标检测的目标

    检测图片中所有物体的:

    • 类别标签(Category label);
    • 位置(最小外接矩形/Bounding box)。

    1


    二、区域卷积神经网络 R-CNN

    1、模型结构

    • 模块 1:提取物体区域(Region proposal);
    • 模块 2:对区域进行分类识别(Classification)。

    2
    3

    • 步骤:
    1. 按一定的规则生成区域集 R R R
    2. 计算区域集 R R R 里每个相邻区域的相似度 S = { s 1 , s 2 , … } S = \{s1, s2, …\} S={s1,s2,}
    3. 找出相似度最高的两个区域,将其合并为新集,添加进 R R R
    4. S S S 中移除所有与 2 中有关的子集;
    5. 计算新集与所有子集的相似度;
    6. 跳至 2 ,直至 S S S 为空。

    2、架构

    • 模块1:Selective search(SS)获取区域;
    • 区域预处理:
      • Bounding box 膨胀 ⇒ 尺寸变换成 227×227.
    • 模块2:AlexNet 网络 ⇒ 对所有区域进行特征提取;
    • 模块3:线性 SVMs 分类器;
    • 模块4:Bounding box 回归模型。

    4

    3、微调

    • IoU = (A∩B) / (A∪B)

      • 正样本(N 类):跟 Ground-truth 重合 I o U ≥ 0.5 IoU \ge 0.5 IoU0.5
      • 负样本(1 类): I o U < 0.5 IoU < 0.5 IoU<0.5
    • M:在图像上对 CNN 进行 pre-train;

    • M‘:在 SS 生成的所有区域上对 M 进行 fine-tune。

    • 训练流程:

      1. C:在 M’ 的Fc7 特征上训练线性 SVMs 分类器:
        • Hinge loss;
        • 每个类别(N 类)对应一个 SVM 分类器;
        • 正样本:所有 Ground-truth 区域;
        • 负样本:跟 Ground-truth 重合 I o U < 0.3 IoU < 0.3 IoU<0.3 的 SS 区域。
          5
      2. SVM 训练完成后,若完全分类正确,所有正样本的输出概率都大于 0.5,而所有负样本的输出概率都小于 0.5。但会有一部分的负样本的输出概率也大于 0.5,这些样本就称为“False Positives”。把这些 “False Positives” 收集起来,对 SVM 进行二次训练,可提升分类准确度。
      3. R:在 M’ 的Fc7 特征上训练 Bounding box 回归模型:
        • 将 SS 提供的 Bounding box 做重新映射 P ⇒ G P ⇒ G PG
        • 训练输入:
          • 中心位置(x, y): P i = ( P x i , P y i , P w i , P h i ) P^i = (P_x^i, P_y^i, P_w^i, P_h^i) Pi=(Pxi,Pyi,Pwi,Phi)
          • 宽高尺寸(w, h): G i = ( G x i , G y i , G w i , G h i ) G^i = (G_x^i, G_y^i, G_w^i, G_h^i) Gi=(Gxi,Gyi,Gwi,Ghi)
          • P 的 I o U > 0.6 IoU > 0.6 IoU>0.6

    4、测试阶段

    1. Selective Search 提取约2000区域/图片;
    2. 将所有区域膨胀+缩放到 227×227;
    3. 使用 fine-tuned AlexNet 计算2套特征。

    三、SPP-Net

    SPP 实现了:

    • 共享计算;
    • 适应不同输入尺寸。

    6

    1、训练流程

    • M:在图像上对 CNN 进行 pre-train;
    • F:计算所有 SS 区域的 SPP 特征;
    • M‘:使用 F 特征 fine tune 新fc6→fc7→fc8 层;
    • F’:计算 M‘ 的 fc7 特征;
    • C:使用 F’ 特征训练线性 SVM 分类器;
    • R:使用 F 特征训练 Bounding box 回归模型。

    四、Fast R-CNN

    • 比 R-CNN、SPP-Net 更快;
    • 更高的 mAP;
    • 实现端对端单阶段训练;
    • 所有层的参数都可以 fine tune;
    • 不需要离线存储特征文件。

    7

    1、2个新技术

    • RoI pooling 感兴趣区域池化:
      • 将 RoI 区域的卷积特征拆分成 H×W 网格(7×7 for VGG);
      • 每个 Bin 内的所有特征进行 Max pooling。

    8

    • Multi-task loss多任务损失函数:
      • L ( p , u , t u , υ ) = L c l s ( p , u ) + λ [ u ≥ 1 ] L l o c ( t u , υ ) L(p, u, t^u, \upsilon ) = L_{cls}(p, u) + \lambda [u \ge 1] L_{loc}(t^u, \upsilon ) L(p,u,tu,υ)=Lcls(p,u)+λ[u1]Lloc(tu,υ)
      • 分类器 Loss: L c l s ( p , u ) = − l o g p u L_{cls}(p, u) = -logp_{u} Lcls(p,u)=logpu
        • 每个 RoI 的概率分布: p = ( p 0 , … , p K ) p = (p_0, …, p_K) p=(p0,,pK)
      • Bounding box 回归 L1 Loss: L l o c ( t u , υ ) = ∑ i ∈ { x , y , w , h } s m o o t h L 1 ( t i u − υ i ) L_{loc}(t^u, \upsilon ) = \sum_{i\in \{x, y, w, h\}}smooth_{L1}(t_i^u - \upsilon_i) Lloc(tu,υ)=i{x,y,w,h}smoothL1(tiuυi) s m o o t h L 1 ( x ) = { 0.5 x 2 i f   ∣ x ∣ < 1 ∣ x ∣ − 0.5 o t h e r w i s e smooth_{L1}(x) = \left\{
        0.5x2if |x|<1|x|0.5otherwise" role="presentation" style="position: relative;">0.5x2if |x|<1|x|0.5otherwise
        \right.
        smoothL1(x)={0.5x2if x<1x0.5otherwise
        • 每个 RoI 有 N个Loss;
        • 偏差目标: υ = ( υ x , υ y , υ w , υ h ) \upsilon = (\upsilon_x, \upsilon_y, \upsilon_w, \upsilon_h) υ=(υx,υy,υw,υh)
        • 预测偏差: t u = ( t x u , t y u , t w u , t h u ) t^u = (t^u_x, t^u_y, t^u_w, t^u_h) tu=(txu,tyu,twu,thu)
        • 指示函数: [ u ≥ 1 ] [u\ge 1] [u1]

    2、训练流程

    1. 训练 RPN 网络;
    2. 训练 Fast R-CNN 网络:
      • Region proposals 由第一步的 RPN 生成。
    3. 调优 RPN:
      • 固定卷积层,finetune 剩余层。
    4. 调优 Fast R-CNN:
      • Region proposals 由第三步的 RPN 生成。

  • 相关阅读:
    计算机毕业设计ssm趣评美食管理评论系统lrt3w系统+程序+源码+lw+远程部署
    leetcode 2. 两数相加
    How to capture Microsoft logs IE Activex issue
    【Go电商实战03】如何使用ORM链式操作?如何优雅的实现软删除?
    混合云运维解决方案,支持公有云、私有云、信创云等环境
    谣言检测论文精读——3.Detect Rumor and Stance Jointly by Neural Multi-task Learning
    三大电商平台(淘宝/京东/阿里巴巴)封装商品详情API接口附代码实例|参数解析
    ArcGIS Pro SDK (四)框架 2
    [机缘参悟-59]:《素书》-6-安于礼仪[安礼章第六]
    rabbitMq 针对于当前监听的队列,来控制消费者并发数量,不影响其他队列,代码示例
  • 原文地址:https://blog.csdn.net/Ashen_0nee/article/details/126480595