porting cascade model from Matlab to OpenCV - matlab

I'm currently designing an algorithm for car detection using Matlab. In order to do so, I'm using the cascade classifier tools provided by Matlab. By the end of the process, I'll get an xml file which contains my classifier model. I'd like to know if I can use this 'xml' model as is in OpenCV while porting my algorithm to C++?
thanks for your help

Yes, you can. If you look at the resulting xml file, you should see a comment at the top telling you which version of OpenCV it is compatible with.

Related

Can MATLAB fcnLayers function be compared with MatConvNet?

In order to leverage FCN facilities for an image processing project, firstly I headed to use MatConvNet. However, in the preparation steps I found that MATLAB provided a new function (fcnLayers) to do so.
Can fcnLayers and its functionality be compared with MatConvNet? Specifically, I mean that is it possible to train models or use pre-trained ones?
Finally, may I achieve same result by using each of them?

Can vision.cascadeObjectDetector calculate HOG, LBP features given a cascade.xml?

I have created a cascade.xml for detecting face images using the opencv_traincascade utility. I am using LBP or HOG feature based cascades since they are much faster. And I do all my testing on Matlab using vision.cascadeObjectDetector. But I am unsure if Matlab is capable of understanding and calculating LBP/ HOG features for a given cascade.xml file.
Is this the correct approach for testing a cascade detector? If not, what platform should I be using for testing?
Yes, vision.cascadeObjectDetector supports LBP and HOG, as well as Haar features, as of version R2013a.
Furthermore you can now train your detector using trainCascadeObjectDetector function, which is easier to use than opencv_traincascade. There is also a trainingImageLabeler app, which gives you a nice GUI to label objects of interest in your images.

Which is a better method? libsvm or svmclassify?

I have been recently trying to use svm for feature classification. While i was doing so, a question came to my mind.
Which would be a better method to use, LIBSVM or svmclassify? What I mean by svmclassify is to use in-built functions in MATLAB such as svmtrain and svmclassify. In that sense, I was interested to know which method would be more accurate and which would be easier to use.
Since MATLAB has already the Bioinformatics toolbox already, why would you use LIBSVM? Aren't the functions like svmtrain and svmclassify already built in.. what additional benefits does LIBSVM bring about?
I would like to hear some of your opinions. Please Pardon me if the question is stupid..
I expect you would get very similar result using each library.
They are both very easy to use. The only big difference is that one comes with the MATLAB Bioinformatics toolbox and the other one you need to obtain from the authors web site and install by hand. If to you this is an issue I would recommend you stick to what is already installed in your computer. If not consider using LIBSVM, as it is a very well tested and well regarded library.
Also, from personal experience on playing with both, libSVM is much faster than MATLAB svm routines for obvious reasons. Last but not the least, libSVM has MATLAB plugins which can be called from MATLAB if you are more comfortable within a MATLAB environment.
I have also the same question, but I think that Libsvm is very useful and very easy in the case of multi-classes classification , but the matlab toolbox is designed for only two classes classification.
In my experience the libsvm performed giving cross validaion results as 45% where matlab code did 90%. So I looked up the explanation of matlab function for svm where they had such options related with perceptrones, I wonder if they are using pure svm or not but will write again in my case matlab was much better. (multiclass svm)

Wavelet Transform - Matlab

I would like to learn how does the Wavelet transform works from a practical point of view. I have read the theory regarding it and I think that I have understood the main idea behind it, but I would like to have some practice with it.
Can you please recommend me some tutorial and some data which I can use for learning the Wavelet Transform by using Matlab environment?
I tried to search for audio signal or practical tutorial on which I can work on but I had no results.
The Mathworks site has some information on their wavelet toolbox and some simple examples of continuous 1D wavelet transforms and discrete 2D wavelet transforms.
Since you have studied and understood the theory behind wavelet transforms, the best way to learn is to go through the source code for various algorithms that have been used by others. For starters looking at the core of the various functions provided in the toolbox above (just enter type functionname at the command line in MATLAB. Unless if it's a built-in function, you'll see the file contents). By core of the function, I mean the main algorithm without all the various input checks that are common.
The Wavelab toolbox from Stanford university is also a good resource to learn from (and later use in your applications when you're comfortable with it).
Lastly, this is a resource I found by Googling and it looks like they have some examples that you can try out.

ICA (Independent Component Analysis) in matlab

Could you provide an example of ICA Independent Component Analysis IN MATLAB?
I know PCA is implemented in matlab but ICA, what about RCA?
Have a look at the FastICA implementation. I've used their R version before, I assume the matlab implementation does the same thing... On that page you get a description of the algorithm and pointers to more info.
Dr G was right.
Now, you are able to find a complete and a very useful Matlab Package (works also with 2013a version):
FastICA
Also you can find a another ICA and PCA Matlab implementation package there: ICA/PCA. But I have no experience with it.
The topic is quite old, but it is worth mentioning that in 2017a, matlab introduced reconstruction independent component analysis (RICA), which may come in handy for someone searching for ICA.