faster_rcnn_inception_v2_coco.config的解析

参考:
https://blog.csdn.net/wubingwei12/article/details/88184140

model {
  faster_rcnn {
    num_classes: 3  //获取要识别的类数
    image_resizer {
      keep_aspect_ratio_resizer {
        min_dimension: 128  //最小的图片像素
        max_dimension: 1024  //最大的图片像素
      }
    }
    feature_extractor {  // 特征提取的配置
      type: "faster_rcnn_resnet101"
      first_stage_features_stride: 16  //rpn特征图的输出
    }
    first_stage_anchor_generator {  //构建Anchor
      grid_anchor_generator {  //构建过程二选一,是使用grid_anchor_generator还是ssd_anchor_generator 使用传入的参数对grid_anchor_generator进行初始化
        height_stride: 16  //锚点的高度 default = 16
        width_stride: 16  //锚点的高度 default = 16
        scales: 0.1
        scales: 0.25
        scales: 0.5
        scales: 0.75
        scales: 1.0
        scales: 2.0
        aspect_ratios: 0.5
        aspect_ratios: 1.0
        aspect_ratios: 1.5
        aspect_ratios: 2.0
      }
    }
    first_stage_box_predictor_conv_hyperparams {  //卷积神经网络的参数
      op: CONV
      regularizer {
        l2_regularizer {  //选择一种归一化方法
          weight: 0.00002
        }
      }
      initializer {
        truncated_normal_initializer { //选择一种初始化方法
          stddev: 0.00999999977648
        }
      }
    }
    first_stage_nms_score_threshold: 0.0 //用于第一层的nms的值 default=0.0
    first_stage_nms_iou_threshold: 0.66  //第一层中重叠率的阈值  default=0.7
    first_stage_max_proposals: 100  //多少个rpn提出的nms进入第二阶段 default=300
    first_stage_localization_loss_weight: 2.0  //第一阶段的定位的损失权重在反向中的比例  default=1.0
    first_stage_objectness_loss_weight: 1.0  第一阶段总物品判断的损失比例 default=1.0
    initial_crop_size: 14  //ROI 池化层上切取的输出的大小
    maxpool_kernel_size: 2  //在ROI pooling上切取的feature map上进行池化是的核的大小
    maxpool_stride: 2  // 上面的有了核的大小,现在是步长
    second_stage_box_predictor {  //第二个识别阶段的参数
      mask_rcnn_box_predictor {
        fc_hyperparams {
          op: FC
          regularizer {
            l2_regularizer {
              weight: 0.0000012
            }
          }
          initializer {  //初始化权重的方式
            variance_scaling_initializer {  //选择一种初始化方法
              factor: 1.0
              uniform: true
              mode: FAN_AVG
            }
          }
        }
        use_dropout: true
        dropout_keep_probability: 1.0
      }
    }
    second_stage_post_processing {  //在第二阶段的box的预测上的预处理
      batch_non_max_suppression {
        score_threshold: 0.300000011921  //前景box的最低阈值 default = 0.0
        iou_threshold: 0.600000023842  //进行融合是的IOU阈值 default = 0.6
        max_detections_per_class: 40  //每一个类别最多返回多少个检测 default = 100
        max_total_detections: 40  // 总共最多返回多少个 default = 100
      }
      score_converter: SOFTMAX  // Score converter to use
    }
    second_stage_localization_loss_weight: 2.0  //第二阶段定位的损失比例
    second_stage_classification_loss_weight: 1.0  //第二阶段的识别的损失比例
  }
}
train_config {
  batch_size: 1
  data_augmentation_options {  // 数据扩容的选项
    random_horizontal_flip {
    }
  }
  data_augmentation_options {
    random_crop_image {
    }
  }
  data_augmentation_options {
    random_adjust_brightness {
    }
  }
  optimizer {
    momentum_optimizer {
      learning_rate {
        manual_step_learning_rate {
          initial_learning_rate: 0.000300000014249
          schedule {
            step: 1
            learning_rate: 0.000300000014249
          }
          schedule {
            step: 900000
            learning_rate: 2.99999992421e-05
          }
          schedule {
            step: 1200000
            learning_rate: 3.00000010611e-06
          }
        }
      }
      momentum_optimizer_value: 0.8666625
    }
    use_moving_average: false  // default=false
  }
  gradient_clipping_by_norm: 10.0   如果大于0,在将梯度在这个值进行截断
  fine_tune_checkpoint: "/********/model.ckpt"
  // 如果是从一个检测(detection)模型进行恢复,则分类
  // 数量必须相等,如果不定则检查点要从一个识别(classification)模型恢复
  from_detection_checkpoint: true  //default=false
}

具体含义解析:
num_classes: 该参数为必调项,与该模型设计需要检测的缺陷种类数量相同。
image_resizer: 该参数为原始图像的缩放尺寸指示,通常有两种配置方式:
keep_aspect_ratio_resizer:输入图像的大小是可变的,但是需要保持长宽比,
它有两个子参数:min_dimension和max_dimension,表示最小和最大尺寸,例如:
min_dimension :800
max_dimension:1000
image_resizer配置-固定长宽比
其含义是对于任一个图片,最短的边最小是800,最长的边最大是1024。举例:假设输入的图像尺寸是100 * 100,则会调整到800 * 800;输入为2000 * 2000,会调整为1024 * 1024,输入为900 * 1000,则首先会将短边调整到800,然后长边按比例调整到(800 / 900) * 1000。
feature_extractor:表示用于特征提取的backbone网络的选型
First_stage_features_stride表示第一阶段特征提取步长,根据经验,训练时可以保持 16 不变,如果待检测目标比较密集且较小,则可以尝试将其修改为8,以降低特征提取步长,提高特征提取密度,从而提升模型效果。修改为4的话会导致及结算量巨大,而且容易导致训练的过度抖动,难以拟合,因此建议最小改成8。
first_stage_anchor_generator:用于指示在RPN网络在feature map上生成锚点的策略。
对RPN的性能有较大影响,因为它直接影响着提取出来的候选框区域的数量、大小、密度等因素。如果生成的proposals太少,或者尺度不合理,则可能导致对于大小目标检测的失衡,或者对部分目标的漏检;而设置的太多,则又会增加训练难度,加大运算量,同时使得RPN网络拟合困难。因此,需要根据具体情况具体分析后,结合经验值进行合理的设定。
在模型训练时,可通过加密scales以及aspec_ratios来对RPN网络产生影响,但是要注意把握计算量、训练拟合难度、数据特征等因素质检的权衡,否则很容易导致模型的RPN网络不收敛,从而使得训练一直震荡。

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mirinda_cjy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值