learn_dataset_fixedmodel.m 892 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. function model = learn_dataset_fixedmodel(pos, neg, name, model)
  2. %TODO
  3. % Load background statistics if they exist; else build them
  4. file = bg_file_name;
  5. try
  6. load(file);
  7. catch
  8. all = rmfield(pos,{'x1','y1','x2','y2'});
  9. all = [all neg];
  10. bg = trainBG(all,20,5,8);
  11. save(file,'bg');
  12. end
  13. bg
  14. % Define model structure
  15. %model = initmodel(name,pos,bg);
  16. model.bg=bg;
  17. %skip models if the HOG window is too skewed
  18. if(max(model.maxsize)<4*min(model.maxsize))
  19. warped=warppos(name, model, pos);
  20. %flip if necessary
  21. if(isfield(pos, 'flipped'))
  22. fprintf('Warning: contains flipped images. Flipping\n');
  23. for k=1:numel(warped)
  24. if(pos(k).flipped)
  25. warped{k}=warped{k}(:,end:-1:1,:);
  26. end
  27. end
  28. end
  29. % Learn by linear discriminant analysis
  30. model = learn(name,model,warped);
  31. end
  32. model.w=model.w./norm(model.w(:));
  33. model.bg=[];
  34. model.thresh = 0.5;
  35. model.name=name;