首页
/ Faster R-CNN中VGG_CNN_M_1024模型的训练网络结构解析

Faster R-CNN中VGG_CNN_M_1024模型的训练网络结构解析

2025-07-07 02:12:25作者:卓艾滢Kingsley

模型概述

Faster R-CNN是目标检测领域的经典算法,而VGG_CNN_M_1024是该框架中使用的一个中等规模卷积神经网络模型。本文将从技术角度详细解析其训练网络结构(train.prototxt)的设计原理和实现细节。

网络整体架构

该模型采用端到端(end-to-end)的训练方式,主要由以下几个部分组成:

  1. 基础卷积网络(特征提取器)
  2. 区域建议网络(RPN)
  3. 感兴趣区域池化(RoI Pooling)
  4. 分类和回归网络

基础卷积网络

基础网络采用VGG_CNN_M_1024结构,包含5个卷积层和2个全连接层:

# 第一卷积层
layer {
  name: "conv1"
  type: "Convolution"
  bottom: "data"
  top: "conv1"
  param { lr_mult: 0 }  # 固定预训练权重
  convolution_param {
    num_output: 96
    kernel_size: 7
    stride: 2
  }
}

特征提取部分的特点:

  • 前两层卷积后接LRN(局部响应归一化)层
  • 使用较大的卷积核(7x7,5x5)和步长(2)快速降低特征图尺寸
  • 固定前两层的学习率(lr_mult=0),保持预训练权重不变

区域建议网络(RPN)

RPN是Faster R-CNN的核心创新,用于生成候选区域:

layer {
  name: "rpn_conv/3x3"
  type: "Convolution"
  bottom: "conv5"
  top: "rpn/output"
  convolution_param {
    num_output: 256  # 中间特征维度
    kernel_size: 3 pad: 1 stride: 1
  }
}

RPN关键组件:

  1. 3x3卷积生成256维特征
  2. 两个1x1卷积分别输出分类得分(rpn_cls_score)和边界框回归(rpn_bbox_pred)
  3. AnchorTargetLayer生成训练目标
  4. 使用SoftmaxWithLoss和SmoothL1Loss进行多任务训练

感兴趣区域处理

从RPN生成的候选区域经过以下处理:

  1. ProposalLayer筛选高质量建议框
  2. ProposalTargetLayer为每个RoI分配标签和回归目标
  3. RoIPooling将不同大小的区域统一为6x6特征图
layer {
  name: "roi_pool5"
  type: "ROIPooling"
  roi_pooling_param {
    pooled_w: 6
    pooled_h: 6
    spatial_scale: 0.0625 # 1/16
  }
}

分类与回归网络

最后的全连接网络完成两个任务:

  1. 分类网络(fc6,fc7,cls_score)

    • 输出21类得分(PASCAL VOC 20类+背景)
    • 使用SoftmaxWithLoss计算分类损失
  2. 回归网络(bbox_pred)

    • 输出84维向量(21类×4个坐标偏移)
    • 使用SmoothL1Loss计算回归损失
layer {
  name: "cls_score"
  type: "InnerProduct"
  inner_product_param {
    num_output: 21
    weight_filler { type: "gaussian" std: 0.01 }
  }
}

训练策略

  1. 多任务损失联合训练:

    • RPN分类损失(rpn_loss_cls)
    • RPN回归损失(rpn_loss_bbox)
    • 最终分类损失(loss_cls)
    • 最终回归损失(loss_bbox)
  2. 学习率策略:

    • 基础网络底层固定(lr_mult=0)
    • 新增层使用较高学习率(lr_mult=1, bias_lr_mult=2)
  3. 正则化:

    • Dropout层(drop6, drop7)防止过拟合
    • 权重使用高斯初始化

总结

该训练网络结构体现了Faster R-CNN的几个关键设计思想:

  1. 共享卷积特征计算
  2. 端到端的联合训练
  3. 多任务学习框架
  4. 高效的区域建议机制

理解这个网络结构对于掌握Faster R-CNN的实现原理和进行模型调优具有重要意义。