-
Notifications
You must be signed in to change notification settings - Fork 38
/
Copy pathV_featInv.m
40 lines (30 loc) · 967 Bytes
/
V_featInv.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
% Usage: invert CNN features into images, same as deep-goggle
param_init
cnn_mode = 'caffe'; % 'caffe' or 'matconvnet'
gpu_id=0; % -1: cpu mode
mn='alex';
ln = 'c1';
ln = 'p5';
% 1. load feat, invert p5 feature
imName = 'data/images/test.jpg';
im_gt = U_prepare_image(single(imread(imName)),[],'alex',-2);
figure(2);imagesc(imread(imName)),title('original image')
% 2. setup optimization param
U_optsInit
opts.feats = imName;
opts.task = 0;opts.objective = 'l2';
opts.dsp = 5;
% get the truncated model
if ~exist('net','var');U_loadModel;end
% initial image
init_img = randn([net.im_sz net.im_sz 3],'single') ;
load('x0_sigma.mat', 'x0_sigma');
init_img = init_img / norm(init_img(:)) * x0_sigma ;
opts.init = init_img;
% debug
% opts.init = im_gt;
opts= U_param(opts,mn,ln); % hard-coded learning rate and MRF energy parameters
% 3. do inversion
exp = experiment_init(mn, [], '', 'cnn', opts) ;
res = experiment_run(exp,net);
out = unit8(res.output{end});