MATLAB Answers

1

How to do training in matlab using SVM?

Asked by Anushka on 11 Mar 2015
Latest activity Edited by Nikolay S. on 17 Mar 2015
I have to detect humans from an image for that I should first train the system using SVM.How to do training in matlab using SVM?What is the code for the same?

  0 Comments

Sign in to comment.

2 Answers

Answer by Dima Lisin
on 13 Mar 2015

Hi Anushka,
First of all, you can use the vision.PeopleDetector object in the Computer Vision System Toolbox to detect humans. The object includes a pre-trained HOG-SVM classifier.
Alternatively, you can use the trainCascadeObjectDetector. This function will train a boosted cascade classifier, rather than an SVM.

  0 Comments

Sign in to comment.


Answer by Nikolay S. on 17 Mar 2015
Edited by Nikolay S. on 17 Mar 2015

Good evening Anna.
Allow me to add my humble opinion.
To train and SVM , you need a series of positive and negative examples- usually you need hundreds/thousands of each, with negatives being much more (~x10, ~x20...) then positives. In case of images this will mean you need to have multiple examples of human figures photos as positives, and relevant images without such figures as negatives (we usually used all image regions without humans as negatives). This usually implies having sufficient database with ground truth markings/ annotations. Building this on your own is lots of work, but luckily for many problems under serious research you have available set of examples. Now, you convert each image (negative and positive) into a feature vector- resulting in a huge group of vectors- each with a priory know label- "positive" or "negative". You provide this to SVMtrain function (depending on the toolbox you're using), specifying SVN parameters- linear, RBF, etc, and voila, you got a trained SVN. Now, with SVNclassify- using the trained classifier and given a feature vector you will know whether is is considered positive and negative. You got Yourself a detector ! Good luck!

  0 Comments

Sign in to comment.