MDNet(转)

2017-07-06  本文已影响664人  点滴回忆

原文地址 http://www.jianshu.com/p/2e1dd35c2763#comment-12556518

这篇文章结构比较简单,但是效果还不错,主要就三点

  1. hard negative mining
  2. long-term 和 short-term 更新
  3. bb回归

起作用比较大的是hard negative mining

MDnet--master 源代码目录###

pretraining (训练网络)

1、调用mdnet_prepare_model,准备CNN网络模型;
2、调用mdnet_pretrain,完成网络的训练和保存)
mdnet_prepare_model (为MDnet准备初始的卷积网络模型:
1、conv1-3直接采用VGG-M的结构和初始化权重,注意新的网络结构里filters对应原weight{1},
biases对应weight{2};pad由原来的格式[0,0,0,0],变换为0。
2、添加fc4层和相应的relu和dropout层,fc5层和相应的relu和dropout层,fc6层和softmax层,
fc4-6随机初始化,fc6构造为K个分支
注意:fc层的stride为数字1,conv层的stride为数组[1,1],
为了保证fc层的更新,还要设置w和B的倍乘速率和decay)


tracking###

1、调用mdnet_init执行初始化
2、bbox回归训练
1.调用gen_samples,生成10000个回归样本
2.调用overlap_ratio计算样本与gt的重叠率
3.选出重叠率大于0.6的样本,随机从中选择1000个作为正样本
4.调用mdnet_features_convX得到正样本经过卷积层处理后的特征图表示
5.将第4步的结果进行维度变换并拉伸为一行,输入到tran_bbox_regressor训练回归模型
3、提取第一帧图像的正负样本经过三层卷积后的特征
4、调用mdnet_finetune_hnm选出hard负样本,并和正样本一起微调net的fc层
5、为在线更新做好数据样本准备
6、从第二帧开始进入主循环
1.在当前帧调用gen-sample选出256个candidate样本,得到卷积后特征;
2.送入fc层,得到fc6二进制输出,正得分最高的五个取平均如果大于0,则为最佳结果,否则,扩大搜索范围
3.bounding box回归调整最后结果
4.做下一帧的数据样本准备,保存正负样本的特征)

上一篇 下一篇

猜你喜欢

热点阅读