If, during training, detect.m decides that it's not worth doing detections at any scale, then I get a nasty stack trace like this one:
graphical_model: iter 1: latent positive: 5/3171
detect() skipping level 4/7
detect() skipping level 6/7
detect() skipping level 7/7
detect() skipping level 2/7
detect() skipping level 5/7
detect() skipping level 1/7
detect() skipping level 3/7
A dot name structure assignment is illegal when the structure is empty. Use a subscript on the structure.
Error in detect>unscale_boxes (line 437)
[dets.boxes] = deal(scaled_boxes{:});
Error in detect (line 334)
boxes = unscale_boxes(boxes, cs_xtrim, cs_ytrim, cs_scale);
Error in train>poslatent (line 184)
box = detect(d1, d2, model, 'PairInfo', pair, 'Thresh', 0, ...
Error in train (line 79)
numpositives = poslatent(name, iter_idx, model, pos, overlap, cache_dir);
Error in train_model (line 22)
model = train(cachedir, cls, model, pos_val, neg_val, 1);
Error in main_generic (line 68)
ssvm_model = train_model(conf, val_dataset, neg_dataset, subpose_disps);
Error in main_h36m (line 13)
main_generic(conf, train_dataset, val_dataset, test_seqs);
437 [dets.boxes] = deal(scaled_boxes{:});
The immediate problem there is that boxes (in the detect.m frame) is an empty array.
In all likelihood that is not the only place where my pipeline can fail, and I probably need to fix things higher up as well (e.g. in the "best example" writing code).
If, during training,
detect.m
decides that it's not worth doing detections at any scale, then I get a nasty stack trace like this one:The immediate problem there is that
boxes
(in thedetect.m
frame) is an empty array.In all likelihood that is not the only place where my pipeline can fail, and I probably need to fix things higher up as well (e.g. in the "best example" writing code).