欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

目标检测之SSD:数据增强参数详解

程序员文章站 2024-03-17 11:51:16
...

数据增强效果图

假设原图输入是一张640*480的图片,这里由于版面问题我放缩了图片尺寸并且没做mean subtract,由于最后会有resize参数导致输出的图片都会resize到300x300,但是主要看的是增强的效果,SSD中的数据增强的顺序是:

DistortImage: 这个主要是修改图片的brightness,contrast,saturation,hue,reordering channels,并没改变标签bbox

ExpandImage: 这个主要是将DistortImage的图片用像素0进行扩展,标签bbox此时肯定会改变,就重新以黑边的左上角为原点计算[0,1]的bbox的左上角和右下角两个点坐标。

BatchSampler: 由于这里选错图了,BatchSampler必须要有GT的存在才会生效,由于我做的是人的检测所以图中没人就不会生成sampled_bboxes,后面修改例子。sampled_bboxes的值是随机在[0, 1]上生成的bbox,并且和某个gt_bboxes的IOU在[min, max]之间。由于proto中配的max_sample都是为1,所以每个batch_sampler可能会有1个sampled_bbox,随机取一个sampled bbox并且裁剪图片和标签。标签裁剪也很好理解首先要通过ProjectBBox将原坐标系标签投影到裁剪后图片的新坐标系的坐标,然后再ClipBBox到[0,1]之间。

Resize:放缩到300x300,最后将图片放缩到300x300,标签框也是线性放缩坐标而已。

Crop:原本data_transformer还会crop的,这个参数是配在prototxt中,默认是原图 所以就和没crop一样。如果要crop的话标签也是会和之前BatchSampler那样处理。

layer {
  name: "data"
  type: "AnnotatedData"
  top: "data"
  top: "label"
  include {
    phase: TRAIN
  }
  transform_param {
    mirror: true
    mean_value: 104
    mean_value: 117
    mean_value: 123
    resize_param {
      prob: 1
      resize_mode: WARP
      height: 512
      width: 512
      interp_mode: LINEAR
      interp_mode: AREA
      interp_mode: NEAREST
      interp_mode: CUBIC
      interp_mode: LANCZOS4
    }
    emit_constraint {
      emit_type: CENTER
    }
    distort_param {
      brightness_prob: 0.5   ##调整亮度
      brightness_delta: 32   ##添加像素值
      contrast_prob: 0.5     ##调整对比度
      contrast_lower: 0.5    ##随机对比因子的下界
      contrast_upper: 1.5    ##随机对比因子的上界
      hue_prob: 0.5          ##调整色调
      hue_delta: 18          ##调整色调通道数量
      saturation_prob: 0.5   ##调整饱和
      saturation_lower: 0.5  ##调整饱和因子的下界
      saturation_upper: 1.5  ##调整饱和因子的上界
      random_order_prob: 0.0 ##随机排列图像通道
    }
    expand_param {///////////////////////////////////////////////##存储数据转换器用于扩展策略的参数的消息
      prob: 0.5              ##使用扩展的概率
      max_expand_ratio: 4.0  ##扩大图像的比率
    }
  }
  data_param {
    source: "/home/x306/caffe/xn/image/VEDAI/lmdb/VEDAI_trainval_512_lmdb"
    batch_size: 2
    backend: LMDB
  }
  annotated_data_param {
    batch_sampler {///////////////
      max_sample: 1
      max_trials: 1
    }
    batch_sampler {
      sampler {
        min_scale: 0.3       ***********1.0 ##最大尺度与与最小尺度,如果样本几乎是均匀大小的,那么设置为1.0即可。
        max_scale: 1.0       ***********1.0 
        min_aspect_ratio: 0.5***********1.0 ##最大纵横比与最小纵横比,如果样本框几乎都是正方形的,那么设置为1.0就好。
        max_aspect_ratio: 2.0***********1.0
      }
      sample_constraint {
        min_jaccard_overlap: 0.1**********1.0    ####采样一个片段,使目标最小的jaccard重叠为0.1,0.3,0.5,0.7,0.9
      }
      max_sample: 1
      max_trials: 50
    }
    batch_sampler {
      sampler {
        min_scale: 0.3
        max_scale: 1.0
        min_aspect_ratio: 0.5 ***************1.0
        max_aspect_ratio: 2.0 ***************1.0
      }
      sample_constraint {
        min_jaccard_overlap: 0.3 *************1.0
      }
      max_sample: 1
      max_trials: 50
    }
    batch_sampler {
      sampler {
        min_scale: 0.3
        max_scale: 1.0
        min_aspect_ratio: 0.5 *****************1.0
        max_aspect_ratio: 2.0 *****************1.0
      }
      sample_constraint {
        min_jaccard_overlap: 0.5 *****************1.0
      }
      max_sample: 1
      max_trials: 50
    }
    batch_sampler {
      sampler {
        min_scale: 0.3
        max_scale: 1.0
        min_aspect_ratio: 0.5****************1.0
        max_aspect_ratio: 2.0****************1.0
      }
      sample_constraint {
        min_jaccard_overlap: 0.7*****************1.0
      }
      max_sample: 1
      max_trials: 50
    }
    batch_sampler {
      sampler {
        min_scale: 0.3
        max_scale: 1.0
        min_aspect_ratio: 0.5******************1.0
        max_aspect_ratio: 2.0******************1.0
      }
      sample_constraint {
        min_jaccard_overlap: 0.9****************1.0
      }
      max_sample: 1
      max_trials: 50
    }
    batch_sampler {
      sampler {
        min_scale: 0.3
        max_scale: 1.0
        min_aspect_ratio: 0.5*********************1.0
        max_aspect_ratio: 2.0*********************1.0
      }
      sample_constraint {
        max_jaccard_overlap: 1.0*****************1.0
      }
      max_sample: 1
      max_trials: 50
    }

相关标签: SSD