天天看點

Faster RCNN參數詳解

1.首先是function model =ZF_for_Faster_RCNN_VOC2007(model)中的參數

% Stride in inputimage pixels at the last conv layer

model.feat_stride                               = 16;

%此處必須是16,和5次卷積對應。若不是16,如為8,則隻有左上角1/4的位置有anchor

%% final test

% 對已排好序的abox,先選擇6000個,然後進行nms消除,門檻值0.7,最後從中篩選300個。

model.final_test.nms.per_nms_topN                  =6000; %圖像中目标較少時可考慮降低

model.final_test.nms.after_nms_topN                =300; %圖像中目标較少時可考慮降低,recall較低時可考慮增大

2. functionconf = proposal_config(varargin)和function conf = fast_rcnn_config(varargin)中的參數

    ip.addParamValue('scales',          600,            @ismatrix);

    % Max pixel size of a scaled input image

    ip.addParamValue('max_size',        1000,          @isscalar);

    ip.addParamValue('batch_size',     128,            @isscalar);

   ip.addParamValue('test_min_box_size',16,           @isscalar);

根據圖檔和目标的尺度可以修改scale和max_size參數;根據圖檔中目标的尺度,可以修改test_min_box_size參數。

根據類别數量和每張圖包含目标數目,可修改batch_size

3.solve.txt中的參數

base_lr: 0.001 

lr_policy:"step" 

gamma: 0.1

stepsize: 30000

這四個參數根據loss變化情況修改,loss波動較大時考慮降低lr

max_iter: 40000 %樣本較少時可以适當降低

weight_decay: 0.0005 %過拟合時可以考慮增大

4.function anchors =proposal_generate_anchors(cache_name, varargin)中的參數

    ip.addParamValue('base_size',       16,             @isscalar);

    % ratio list of anchors

    ip.addParamValue('ratios',          [0.5, 1, 2],    @ismatrix);

    % scale list of anchors

    ip.addParamValue('scales',          2.^[3:5],       @ismatrix);   

小目标時,可考慮降低base_size或者scales。

5.ZF-net和VGG-net選擇

樣本較多,目标尺度較大時,優先考慮VGG-net;

小樣本容易過拟合,優先考慮ZF-net

6. RPN的train_val.prototxt

如果proposal_config中修改了base_size,則這裡的loss_bbox層(最後一層)中的loss_weight也需要相應調整

繼續閱讀