目标检测PVAnet原理和代码理解

1 阐述了源码中影响模型的相关参数

http://blog.csdn.net/burning_keyboard/article/details/71773682

(1)train.prototxt里分别用c++和python层对proposal和rpn里的box的形状给了参数。c++的在pvanet/caffe-fast-rcnn/src/caffe/layers/proposal.cpp里,python的在pvanet/lib/rpn/generate_anchors.py里。

其中AnchorBox的 base_size=16。经过上述文件里的计算,其形状为:

w = scale * base_size / sqrt(ratio)和h = w *ratio,所以为了提高检测效果,可以用 scale 和 ratio 按需改box的形状。    

(2).pvanet/lib/fast_rcnn/config.py

这个文件很重要啊,训练网络相关的设置几乎都在里面了。

1.1 关键参数

1.TRAIN.HAS_RPN = Ture

2.样本里目标大小要大于 RPN_MIN_SIZE = 16 这个参数,这对应于pvanet 进行roipooling的特征图上目标至少有一个像素大小

3.开启水平翻转样本增强

比如:

#Minibatch size (number of regions of interest [ROIs])

__C.TRAIN.BATCH_SIZE= 128

#Overlap required between a ROI and ground-truth box in order for that ROI to

# beused as a bounding-box regression training example

__C.TRAIN.BBOX_THRESH= 0.5  

#Iterations between snapshots

__C.TRAIN.SNAPSHOT_ITERS= 10000  

# UseRPN to detect objects

__C.TRAIN.HAS_RPN= True

#IOU>= thresh: positive example

__C.TRAIN.RPN_POSITIVE_OVERLAP= 0.7

# IOU< thresh: negative example

__C.TRAIN.RPN_NEGATIVE_OVERLAP= 0.3

......

(3)绘制网络结构图
pvanet/caffe-fast-rcnn/python/draw_net.py脚本可以根据prototxt绘制网络结构模型:

python draw_net.pytest.prototxt test.jpg --rankdir TB

 

2关于pvanet中originalmodel和test model的理解

http://blog.csdn.net/tingyue_/article/details/53545027

1.1 为什么在fine-tuning过程中用的是test.pt网络架构?

fine-tuning按理说,属于训练过程。不采用bn,scale/shift操作势必会影响权值更新(bn的提出就是为了解决深层网络中权值衰减问题)。这也是,我之前的一大疑问点。
    不过讨论之后,终于明朗。虽说fine-tuning是训练过程,不过由于在fine-tuning之前,已经有过训练(有bn),网络权值已经在最优权值附近。fine-tuning的作用不过是网络权值的微调。而且有些时候因为所有分类目标卷积层的前几层特征都类似,在fine-tuning时,会固定前几层卷积层网络参数。所以fine-tuning采用不加bn,scale/shift的test.pt网络架构,也就说的通啦。

3 主要讲述了对论文的理解

http://www.jianshu.com/p/362f2535adb0

4 论文理解

https://zhuanlan.zhihu.com/p/30173314

5 论文解读

http://baijiahao.baidu.com/s?id=1577068638139284237&wfr=spider&for=pc

6 论文解读很详细并且全面的博客

http://www.cnblogs.com/xueyuxiaolang/p/5959442.html

6.1

6.2


7 训练过程中异常

 http://www.caffecn.cn/?/question/982

     pvanet训练自己的数据集生成压缩版(comp)的model的方法,采用pvanet训练自己的数据集(标注格式与voc完全一致),最终想要生成压缩版(comp)的model,尝试用命令:./tools/train_net.py --gpu 0 --solvermodels/pvanet/ example_finetune/ solver.prototxt --weightsmodels/pvanet/comp/test.model –iters 100000 --cfg models/pvanet/cfgs/train.yml–imdb voc_2007_trainval进行微调训练,生成的Model识别效果非常差!即使用models/pvanet/full/test.model微调的model识别的效果也是同样的差!后来用   ./tools/train_net.py  --gpu 0 --solver models/pvanet/ example_train_384/solver.prototxt--weights models/pvanet/imagenet/original.model --iters 100000  --cfgmodels/pvanet/cfgs/train.yml  --imdb voc_2007_trainval相当于在作者给的imagenet的model上进行微调的Model识别效果还可以,对于小目标的识别没有作者给的Model效果好,而且应该属于full版本的实时性一般。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值