Video Object Segmentation using Space-Time Memory Networks细节记录

结构细节

  1. 只用resnet的前4个stage。最大stride为16。
  2. query和memory的encoder(resnet50)不共享参数。
  3. memory不仅编码了前景mask,还有除了ROI目标之外的其他目标mask。
  4. 测试阶段,frame和mask要pad 0,满足能被16整除
  5. query的输入只有当前帧图像
  6. 特征align是在所有时间上做的。统一做softmax;在此之前,还对attention map除以了 c \sqrt c c
  7. 在训练和测试阶段,对所有的目标都统一进行soft aggregation,做成可以求导的部分,参与训练。

使用细节

  1. 上一帧一定是用于后一帧的memory读取,但不一定存入memory
  2. 用于memory的mask是概率图,并不是二值化的预测图
  3. 在数据读取部分,统一用10类(设置最大类别数目),装载多目标序列数据。
  4. 一个序列的所有目标同时编码,一起计算loss
  5. 测试的时候,根据pad值crop一下。

训练细节

  • pretrain:用SOD数据集和语义分割数据集伪造一些视频帧。具体做法,将一张静态图像,用三种affine transform得到三张图像,作为三帧,因为STM是all pair匹配,不需要按照时间顺序,所以这种预处理方式是可行的。affine transform包含:旋转,平移,缩放,裁剪
  • main training: 在真实数据上(davis17,youtube-vos),按照时序,随机采样三帧。同时为了处理大的形象变化,采样是有间隔的,逐渐从0到25变化。同时之前的结果都用于更新memory。
  • 随机裁剪384x384,adam with 1e-5 lr;冻结bn(除了backbone,其他位置没有bn),batch size 为4

测试细节

为了节省内存和速度上的考虑,并不是所以过去帧都会加入到memory中。第一帧和前一帧是一定会被加入到memory中,同时每隔5帧就更新一次memory。注意这里的“前一帧一定加入memory”,只是临时的做法,对于下下一帧,这个“前一帧“是否使用取决于它的帧数是不是5的倍数。

从Github issue中总结的其他训练细节

  1. 采样间隔每20个epoch增长,增长数值为5,davis和youtube都是一样的.
  2. 采样间隔也是随机数,在[1, interval]之间,指的是相邻帧的间隔
  3. 每个采样视频只随机取3帧,时间顺序排列
  4. 在pretrain和maintrain都使用了random affine,但maintrain的程度更小一些
  5. 每个采样视频最多包含3个目标(前景)
  6. maintrain中,加入youtube数据集,需要把davis的repeat time设置为5,然后使用concatdataset
  7. random crop的做法:
    Firstly, random resizing [384, shorter_side_original_size] & random crop [384, 384] is performed. Then, affine transform is performed with following parameter range.
    For pre-train, rotation=[-20, 20], sheer=[-10, 10], zoom=[0.9, 1.1]
    For main-train, rotation=[-15, 15], sheer=[-10, 10], zoom=[0.95, 1.05]; And color shift [0.97, 1.03]
  8. Youtube上的越预测,在480P下预测
  9. 在maintrain环节,所采样的3帧都使用相同的affine参数
  10. 在maintrain环节,均采用dynamic方式,且detach和non-detach没有大的区别
  11. 在5*davis+youtube上,total epoch是260,且batch为4,(1个gpu一个video)

非官方开源代码

stm-training 实现的效果并不算高。并没有在静态数据做预训练。
在这里插入图片描述

评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值