albanie / mcnSSD

A matconvnet implementation of the Single Shot Detector
MIT License
36 stars 23 forks source link

Inconsistency between "vl_nnmatchpriors.m" and "matchPriors.m" #14

Closed Arminkhodaei closed 7 years ago

Arminkhodaei commented 7 years ago

Hello;

It seems there is some inconsistency between "vl_nnmatchpriors.m" and "matchPriors.m", since when I tried to train the network using "ssd_pascal_train", I got stuck in the following errors:

1)

Expected either a param-value pair or a structure.

Error in matchPriors (line 8) opts = vl_argparse(opts, varargin, 'nonrecursive') ;

2)

Unknown parameter 'matchRanker'

Error in matchPriors (line 8) opts = vl_argparse(opts, varargin, 'nonrecursive') ;

I would be appreciated if you have a solution.

albanie commented 7 years ago

Apologies, some dev code got mixed into the main branch by mistake, will push a fix shortly.

albanie commented 7 years ago

(feel free to re-open if the fix doesn't work)

Arminkhodaei commented 7 years ago

Thank you so much @albanie. The previous problems have solved. But I think there is something else that is going wrong in vl_nnmatchpriors. When I want to use the output generated by training procedure (for example net-epoch-50.mat) in test mode, I face an error at the following assertion:

  cellfun(@(x) assert(all(all(x(:,3:4) - x(:,1:2) > 0)), ...
          'MULTIBOXCODER:invalidGroundTruthBoxes', ...
          'ground truth boxes must be in the (xmin, ymin, xmax, ymax) format'), ...
          gt) ;

This is the exact error message:

Input #2 expected to be a cell array, was double instead.

I think since in this case, the gt argument is an empty 0x0 double array, there should be some problems.