/
script_rfcn_VOC0712_ResNet101_OHEM_ss.m
56 lines (49 loc) · 2.51 KB
/
script_rfcn_VOC0712_ResNet101_OHEM_ss.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
function script_rfcn_VOC0712_ResNet101_OHEM_ss()
% script_rfcn_VOC0712_ResNet101_OHEM_ss()
% RFCN training and testing with OHEM using ResNet101 model and selective
% search proposals
% --------------------------------------------------------
% R-FCN implementation
% Modified from MATLAB Faster R-CNN (https://github.com/shaoqingren/faster_rcnn)
% Copyright (c) 2016, Jifeng Dai
% Licensed under The MIT License [see LICENSE for details]
% --------------------------------------------------------
clc;
clear mex;
clear is_valid_handle; % to clear init_key
run(fullfile(fileparts(fileparts(mfilename('fullpath'))), 'startup'));
%% -------------------- CONFIG --------------------
opts.caffe_version = 'caffe_rfcn';
opts.gpu_id = auto_select_gpu;
active_caffe_mex(opts.gpu_id, opts.caffe_version);
% model
model = Model.ResNet101_for_RFCN_VOC0712_OHEM();
% cache name
opts.cache_name = 'rfcn_VOC0712_ResNet101_OHEM_ss';
% config
conf = rfcn_config_ohem('image_means', model.mean_image);
% train/test data
fprintf('Loading dataset...')
dataset = [];
dataset = Dataset.voc0712_trainval_ss(dataset, 'train', conf.use_flipped);
dataset = Dataset.voc2007_test_ss(dataset, 'test', false);
fprintf('Done.\n');
% do validation, or not
opts.do_val = true;
%% -------------------- TRAINING --------------------
opts.rfcn_model = rfcn_train(conf, dataset.imdb_train, dataset.roidb_train, ...
'do_val', opts.do_val, ...
'imdb_val', dataset.imdb_test, ...
'roidb_val', dataset.roidb_test, ...
'solver_def_file', model.solver_def_file, ...
'net_file', model.net_file, ...
'cache_name', opts.cache_name, ...
'caffe_version', opts.caffe_version);
assert(exist(opts.rfcn_model, 'file') ~= 0, 'not found trained model');
%% -------------------- TESTING --------------------
rfcn_test(conf, dataset.imdb_test, dataset.roidb_test, ...
'net_def_file', model.test_net_def_file, ...
'net_file', opts.rfcn_model, ...
'cache_name', opts.cache_name,...
'ignore_cache', true);
end