4.66667

4.7 | 4 ratings Rate this file 102 Downloads (last 30 days) File Size: 19.54 MB File ID: #29800
image thumbnail

Scenes/Objects classification toolbox

by Sebastien PARIS

 

21 Dec 2010 (Updated 25 Apr 2011)

Scenes recognition toolbox for vision systems

| Watch this File

File Information
Description

Scenes/Objects Rocognition toolbox v0.12
---------------------------------------
This toolbox provides some basic tools for scenes/object recognition in vision systems.
Based on supervised classification, this toolbox offerts some state-of-art descriptors coupled with fast and efficient classifiers.
Descriptors are divided in two famillies:
i) "direct" features computed from images [1,2,3,4,5,19],
ii) "dictionnary learning + spatial pooling" features computed from a collection of patches:
    a) Bag of Features [6,7] and
    b) Sparse Dictionary learning [8,9].
Large-Scale Linear SVM such Liblinear [10] or Pagasos [11] are used to train models since features are almost perfectly linearly separable.
Non-linear Kernels extension for additive homogeneous kernels (chi2, intersection histogram, etc...) is performed through features map method [12,22].
The main objective of this toolbox is to deliver simple but efficient tools, easy to modify, mainly written in C codes with a matlab interface.

Please open readme.txt for full instructions

MATLAB release MATLAB 7.9 (2009b)
Tags for This File  
Everyone's Tags
Tags I've Applied
Add New Tags Please login to tag files.
Comments and Ratings (15)
04 May 2011 Leila

Dear Sébastien,
Thanks for this helpful code.
Where you specify ldporient, how do (x_1,y_1) and (x_0,y_0) correspond to neighborhood pixels in the original paper [Zhang et al, 2010]?

04 May 2011 Sebastien PARIS

Leila,
I use the same convention than in the Zhang paper.

ldporient Orientation for ldp computation (1 x norient), where norient <= 4 and ldporient(i) = {0,1,2,3}
ldporient(i) = 0 <=> (I(x_1+1,y_1)-I(x_1,y_1))*(I(x_0+1,y_0)-I(x_0,y_0))< 0
ldporient(i) = 1 <=> (I(x_1+1,y_1+1)-I(x_1,y_1))*(I(x_0+1,y_0+1)-I(x_0,y_0))< 0
ldporient(i) = 2 <=> (I(x_1,y_1+1)-I(x_1,y_1))*(I(x_0,y_0+1)-I(x_0,y_0))< 0
ldporient(i) = 3 <=> (I(x_1-1,y_1+1)-I(x_1,y_1))*(I(x_0-1,y_0+1)-I(x_0,y_0))< 0
(default ldporient = [0 , 1 , 2 , 3])

Sébastien

18 May 2011 Leila

Dear Sébastien,
Thanks for your answer. I have another question: in the normalization type 3, you normalize the square of the L1 norm, why?

19 May 2011 Sebastien PARIS

Leila. This normalization is often used in computer vision. See Maji'papers for example.

10 Jul 2011 Leila

Hi again. Thank you for your answer. Assuming one would like to see the LDP image, is there a way to output it using your function, or a variable in your function? Thanks!

19 Jul 2011 Sebastien PARIS

Leila,

There are in fact 4 LDP images ...
Maybe I will add an option for display them.

12 Sep 2011 Leila

yes, one for each derivative direction. I could output the one for 0 degrees.

13 Sep 2011 Ishrat Badami

Dear Sebastian,
I installed the toolbox as instructed on Ubuntu 10.04 32bit. While running the file extract_bag_of_features.m I get error message
??? Invalid MEX-file
'/home/ishrat/Uni_Bonn/Semester_2/Graphics_2/graphics_lab/Matlab/reco_toolbox/core/mexLasso.mexglx':
libiomp5.so: cannot open shared object file: No such file or directory.

Error in ==> dl_spyr at 77
        G = full(abs(mexLasso(X(: , index) , D(: , : , s , c) ,
        options)))'; %(np x K)
I also unzip the libgln32.zip in core folder. Am I missing something? Please help I am totally stuck.
Thanks in advance
Best
Ishrat

16 Sep 2011 Sebastien PARIS

Ishrat,

Please visit the SPAMS webpage (http://www.di.ens.fr/willow/SPAMS/), compile the lib with your current system and copy the associate requiered files such mexlasso, mexTrainDL, mexTrainDLmemory in the /core dir of my toolbox

16 Sep 2011 Sebastien PARIS

Leila,

I am working on a big update of this toolbox with a lot of new things, stay in touch so ...

06 Oct 2011 Venkat R

Dear Sebastian,
I was using your extract_bag_of_features.m for my object classification. If possible, can you help me in following problems I am facing...
1. For a database of size 50,000 samples, there is Out of memory problems coming...
2. Can I use the dictionary built on one database, for encoding another database(s). I will normalize all images to a standard size of 50x50 and keep the SIFT parameters also the same.

thanking you,

with regards,
Ramana

07 Oct 2011 Sebastien PARIS

Venkat,

1) For large database, I'll plan to use the new functionalities of Matlab 2011b to append/load partially from a file.

2) It's a good idea to separate the datasets. I'll make the modification in the incoming major update of this toolbox

30 Apr 2012 Weixia  
30 Apr 2012 Weixia

Dear Sebastian,
Thank you for sharing this remarkable toolbox!
I've just installed the toolbox and run the bag_of_features.m, but unfortunately, en error was reported. It said that "Undefined function 'dltrain' for input argument of type 'struct'."
Error in extract_bag_of_features (line 229)
                    D(: , : , s , c) = encoding(X(: , indexdico) ,
                    encoding_param{current_encoding}{current_descriptor});

Could you please so kind to help me with this little problem? I am really an new hand in this area...
Best wishes!
Weixia

31 May 2012 Leila

Hi Sébastien, Thanks for the info! But I did not notice any major changes to the ldp code... Are there traumatic differences?
Cheers,
Leila

Please login to add a comment or rating.
Updates
16 Apr 2011

0.11
-Compile SPAMS with -largeArrayDims flag for WIN64 system
-Can handle any many databases where images per topics are in a specific folder with specific config files
- Read readme.txt for a complete of changes

25 Apr 2011

0.12 - Add new normalization method.
- Better default parameters which improve results.
- Better databases handling.
- Add "triangle" soft assignement for K-means dictionary learning approach [21]

Tag Activity for this File
Tag Applied By Date/Time
densesift Sebastien PARIS 22 Dec 2010 09:13:24
color histograms Sebastien PARIS 22 Dec 2010 09:13:25
pixels patches Sebastien PARIS 22 Dec 2010 09:13:25
lbp Sebastien PARIS 22 Dec 2010 09:13:25
ldp Sebastien PARIS 22 Dec 2010 09:13:25
bag of features Sebastien PARIS 22 Dec 2010 09:13:25
dictionary learning Sebastien PARIS 22 Dec 2010 09:13:25
addidive kernel approximation Sebastien PARIS 22 Dec 2010 09:13:25
large scale svm Sebastien PARIS 22 Dec 2010 09:13:25
pegasos Sebastien PARIS 22 Dec 2010 09:13:25
liblinear Sebastien PARIS 22 Dec 2010 09:13:25
sparse learning Sebastien PARIS 22 Dec 2010 09:13:25
ldp Leila 04 May 2011 05:35:56
bag of features Francesc Iu Rillo Moral 24 Oct 2011 13:20:46

Contact us at files@mathworks.com