整个trick

数据输入方面:1.image pyramid 图像金字塔.目前代码里是先选取一个scale,然后在每个GPU上按照scale读图片,相应的gt也更改."scales":[440, 520, 600, 680, 760] 使用的是短边的缩放到的尺寸,还用个maxsize限制了你的scale必须小于一个值

       wk的代码和原本的sensenet很大不一样,重新看,好像加了很多trick

       deformable convolution是同时训练多个scale,然后每个网络训练出来的乘以一个权重

       但这样不同scale的网络结构不应该不一样不是吗?

       2.flip,老版的sensenet里面仅仅是使用flip之后的,cv::flip(img, img, 1);,即只使用了沿y轴翻转,且没有用原图.个人觉得这里翻转的角度应该还可以很多.据说还有只rotate20度,然后剪裁补0这种数据增强,在分割中用的比较多.

       3."pixel_means":[103.939, 116.779, 123.68],3个通道不同的mean值,然后图像原始的每个值减去这些值

         有什么作用?

       4.anchor_scales,anchor_ratios

       5.gaussian_noise 输入图片加高斯噪声 

       6.FrcnnTrainData的参数,自己的caffe目录中总结了这些        

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
 }

       7.加高斯噪声或者resize的时候换插值的方法,这两个在v系列中都没有使用

      8.

      

 

多GPU训练,这个很重要,每个GPU一张图

 

 

 

v9、v7:经过4个降采样,第一个是通过一个尺寸为3,stride为2,pad为1,后面是3个pool,并且pool层主要集中在前面那些没有block堆积的层

    9是有5个block,7有6个block,并且7的block的4个分支的channel比9的4个分支的channel多(当然是第一个block对应第一个block)。并且两者都是的        block越往后面每个分支对应的channel数增加。block内部的分支是通过concat连接的channel层。

    其实D2就是把v7每个分支的channel然后把层增加了。(就用这个讲)

rfcn相对于faster:用了全卷积替代fc,增加了平移不变性

posted @ 2018-06-10 20:30  有梦就要去实现他  阅读(191)  评论(0编辑  收藏  举报