vlfeat / vlfeat Goto Github PK
View Code? Open in Web Editor NEWAn open library of computer vision algorithms
Home Page: http://vlfeat.org/
License: BSD 2-Clause "Simplified" License
An open library of computer vision algorithms
Home Page: http://vlfeat.org/
License: BSD 2-Clause "Simplified" License
I am using the following code to plot the covdet feature frames. But the output is different from vl_plotframe in matlab. Please tell me how can I plot it using C Api?
Code Snippet:
VlCovDetFeature const * feature = (VlCovDetFeature*)vl_covdet_get_features(covdet) ;
for (int i=0;i<numFeatures;i++)
{
float x = feature[i].frame.y;
float y = feature[i].frame.x;
float sigma = feature[i].frame.a11;
cvDrawCircle(Image, cvPoint(x,y), sigma, CV_RGB( 255,0,0));
}
Hi. I'm trying to achieve what you show in vl_quickseg doing using the C api.
( http://www.vlfeat.org/overview/quickshift.html#tut.qs.multi )
From the docs it is not really clear how that would work using vl_quickshift_get_parents and vl_quickshift_get_dists
Some pointers on how to use the information returned from vl_quickshift_process or a vl_quickseg.c :) would be most appreciated!
Also I couldn't find this anywhere on the site documentation what is the main numeric range vlfeat uses for pixels/color?
Is it 0.0 - 1.0 or 0 - 255 ?
Thanks!
Theo
ps thanks for the library!
line 275 in vl_dsift.c dims [1] = numFrames ;
if image produces 0 features. dims is then used for creating arrays.
In runs of hundred of images, it is quite likely to run in to an image with zero sift features ( although that is a feature by itself :) )
-Arman
Hi,
when I am using the cli interface to get the SIFT for a custom frame, I get slightly different results from the matlab equivalent process. For the --read-frames=frames.key
option in cli, I guess that frames.key
should be just a file with my custom frame e.g. 100 100 10 0
like in the matlab case? (with the -1 to account for the c/matlab indexing difference)
Is that assumption wrong?
operating system: fedora21 x64
matlab: x64
error information
mex: unrecognized option '-glnxa64'
mex: unrecognized option '-O'
mex: unrecognized option '-largeArrayDims'
This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013)
restricted \write18 enabled.
entering extended mode
! I can't find file `"CFLAGS=$CFLAGS -std=c99 -Wall -Wextra -Wno-unused-functio
n -Wno-long-long -Wno-variadic-macros -DNDEBUG -O3 -m64 -D_GNU_SOURCE -fno-stac
k-protector"'.
<*> ... -m64 -D_GNU_SOURCE -fno-stack-protector"
LDFLAGS=$LDFLAGS -m64 -Wl...
(Press Enter to retry, or Control-D to exit)
Please type another input file name:
! I can't find file `"CFLAGS=$CFLAGS -std=c99 -Wall -Wextra -Wno-unused-functio
n -Wno-long-long -Wno-variadic-macros -DNDEBUG -O3 -m64 -D_GNU_SOURCE -fno-stac
k-protector"'.
<*> ... -m64 -D_GNU_SOURCE -fno-stack-protector"
LDFLAGS=$LDFLAGS -m64 -Wl...
(Press Enter to retry, or Control-D to exit)
Hi Andrea,
I've parallelized and templated your SLIC implementation in mine libbioimage. Tested for a while and it seems to be working great. I used OpenMP to parallelize most loops. Take a look at my changes and I think it would be very easy for you to merge them into VLFEAT:
Example:
With order
set to 3, inputting 0 will only set 0 for the first 4 elements to dest
instead of all 2*3+1=7 elements as per the documentation.
VlHomogeneousKernelMap* map;
float* dest = new float[7];
map = vl_homogeneouskernelmap_new(VlHomogeneousKernelIntersection,
1.0, // Standard kernel
(vl_size) 3,
-1.0, // Default
VlHomogeneousKernelMapWindowRectangular);
vl_homogeneouskernelmap_evaluate_f(map, dest, (vl_size) 1, 0.0);
cout << dest[4]; // Not necessarily 0
Possible fix:
homkermap.c Line 471: Change j <= self->order
to j < 2*self->order + 1
Hi guys,
i was trying to use the function vl_gmm_get_loglikelyhood and i realized that there is a small mismatch between the gmm.h and the gmm.c files.
While in gmm.h is defined as: "vl_gmm_get_loglikelyhood", in gmm.c is defined as "vl_gmm_get_loglikelihood".
So, whenever you tried to call the function with any of the names it returns error: vlfeat/libvl.so: undefined symbol: vl_gmm_get_loglikelihood.
I noticed it, cause i am using the pre-compiled version 0.9.18 of the library obtained from:
http://www.vlfeat.org/download/vlfeat-0.9.18-bin.tar.gz
Best regards, Luis Tobias.
Hi,
I'm having trouble installing vlfeat to use with Octave. I've followed the Install instructions in the README but ll *.d files end up in the VLFeat root instead of toolbox/mex/octave/mexa64
. Therefore I get a bunch of errors similar to the following:
mv: cannot stat ‘./toolbox/geometry/vl_irodr.d’: No such file or directory
MKOCTFILE toolbox/mex/octave/mexa64/vl_rodr.d
Any suggestions please? I'm not sure where in the Makefiles the files should have been generated into toolbox/mex/octave/mexa64/.
"make -n" is supposed to print what make would do, but not actually do anything. This is currently broken in the dependency-generator. I.e.
cc .... -MF ....
is still executed. This happens because quiet() in the Makefile bypasses make's build mechanisms, and just generating the command to run ends up running the command.
Hi,
The documentation indicates the data matrix has one feature vector per column
[...] data has dimension rows and numData columns.
However, afaic througout fisher.c and gmm.c data access seems to be row major and thus assumes a feature vector per row for example
for(dim = 0; dim < dimension; dim++) {
TYPE diff = data[i_d*dimension + dim] - means[i_cl*dimension + dim] ;
I would propose to adapt the documentation accordingly :)
With the latest version of vlfeat, building with
make MKOCTFILE=which mkoctfile
then:
cd toolbox
octave
octave:1> vl_setup
octave:2> K=3;
octave:3> data = uint8(rand(2,1000) * 255) ;
octave:4> [C,A] = vl_ikmeans(data,K) ;
error: /home/borsh/bin/lib/vlfeat/toolbox/mex/octave/vl_ikmeans.mex: failed to load: /home/borsh/bin/lib/vlfeat/toolbox/mex/octave/vl_ikmeans.mex: undefined symbol: vl_ikm_new
octave:4>
I managed to get it working with:
LD_PRELOAD=./mex/octave/libvl.so octave
Hi
I run the following code in MATLAB:
numFeatures = 5000 ;
dimension = 2 ;
data = rand(dimension,numFeatures) ;
numClusters = 30 ;
[means, covariances, priors] = vl_gmm(data, numClusters);
numDataToBeEncoded = 1000;
dataToBeEncoded = rand(dimension,numDataToBeEncoded);
encoding = vl_fisher(dataToBeEncoded, means, covariances, priors);
size(encoding)
The size of encoding is 120x1 , although dataToBeEncoded is 2x1000.
I assume the correct dimension of encoding should be 120x1000.
I looked at the source code of vl_fisher.c , it seems OUT(ENC)'s has only 1 column regardless of numData.
Hi, I just tried to compile the package and got this weird linker error. Any thought?
$ make
MK toolbox/mex/mexa64/
CC toolbox/mex/mexa64/vl_mser.d
CC toolbox/mex/mexa64/vl_erfill.d
CC toolbox/mex/mexa64/vl_localmax.d
CC toolbox/mex/mexa64/vl_pegasos.d
CC toolbox/mex/mexa64/vl_ihashfind.d
CC toolbox/mex/mexa64/vl_homkermap.d
CC toolbox/mex/mexa64/vl_alldist.d
CC toolbox/mex/mexa64/vl_alldist2.d
CC toolbox/mex/mexa64/vl_binsearch.d
CC toolbox/mex/mexa64/vl_simdctrl.d
CC toolbox/mex/mexa64/vl_binsum.d
CC toolbox/mex/mexa64/vl_ihashsum.d
CC toolbox/mex/mexa64/vl_kdtreebuild.d
CC toolbox/mex/mexa64/vl_samplinthist.d
CC toolbox/mex/mexa64/vl_getpid.d
CC toolbox/mex/mexa64/vl_twister.d
CC toolbox/mex/mexa64/vl_kdtreequery.d
CC toolbox/mex/mexa64/vl_inthist.d
CC toolbox/mex/mexa64/vl_lbp.d
CC toolbox/mex/mexa64/vl_version.d
CC toolbox/mex/mexa64/vl_rodr.d
CC toolbox/mex/mexa64/vl_irodr.d
CC toolbox/mex/mexa64/vl_quickshift.d
CC toolbox/mex/mexa64/vl_imwbackwardmx.d
CC toolbox/mex/mexa64/vl_tpsumx.d
CC toolbox/mex/mexa64/vl_imdisttf.d
CC toolbox/mex/mexa64/vl_imintegral.d
CC toolbox/mex/mexa64/vl_imsmooth.d
CC toolbox/mex/mexa64/vl_dsift.d
CC toolbox/mex/mexa64/vl_ubcmatch.d
CC toolbox/mex/mexa64/vl_siftdescriptor.d
CC toolbox/mex/mexa64/vl_sift.d
CC toolbox/mex/mexa64/vl_aibhist.d
CC toolbox/mex/mexa64/vl_aib.d
CC toolbox/mex/mexa64/vl_ikmeanspush.d
CC toolbox/mex/mexa64/vl_ikmeans.d
CC toolbox/mex/mexa64/vl_hikmeans.d
CC toolbox/mex/mexa64/vl_kmeans.d
CC toolbox/mex/mexa64/vl_hikmeanspush.d
MK bin/glnxa64/
MK bin/glnxa64/objs/
CC bin/glnxa64/test_vec_comp.d
CC bin/glnxa64/test_threads.d
CC bin/glnxa64/test_stringop.d
CC bin/glnxa64/test_rand.d
CC bin/glnxa64/test_qsort-def.d
CC bin/glnxa64/test_nan.d
CC bin/glnxa64/test_mathop.d
CC bin/glnxa64/test_mathop_abs.d
CC bin/glnxa64/test_imopv.d
CC bin/glnxa64/test_host.d
CC bin/glnxa64/test_heap-def.d
CC bin/glnxa64/test_getopt_long.d
CC bin/glnxa64/sift.d
CC bin/glnxa64/mser.d
CC bin/glnxa64/aib.d
CC bin/glnxa64/objs/stringop.d
CC bin/glnxa64/objs/sift.d
CC bin/glnxa64/objs/rodrigues.d
CC bin/glnxa64/objs/random.d
CC bin/glnxa64/objs/quickshift.d
CC bin/glnxa64/objs/pgm.d
CC bin/glnxa64/objs/pegasos.d
CC bin/glnxa64/objs/mser.d
CC bin/glnxa64/objs/mathop_sse2.d
CC bin/glnxa64/objs/mathop.d
CC bin/glnxa64/objs/lbp.d
CC bin/glnxa64/objs/kmeans.d
CC bin/glnxa64/objs/kdtree.d
CC bin/glnxa64/objs/imopv_sse2.d
CC bin/glnxa64/objs/imopv.d
CC bin/glnxa64/objs/ikmeans.d
CC bin/glnxa64/objs/host.d
CC bin/glnxa64/objs/homkermap.d
CC bin/glnxa64/objs/hikmeans.d
CC bin/glnxa64/objs/getopt_long.d
CC bin/glnxa64/objs/generic.d
CC bin/glnxa64/objs/dsift.d
CC bin/glnxa64/objs/array.d
CC bin/glnxa64/objs/aib.d
CC bin/glnxa64/objs/aib.o
CC bin/glnxa64/objs/array.o
CC bin/glnxa64/objs/dsift.o
CC bin/glnxa64/objs/generic.o
CC bin/glnxa64/objs/getopt_long.o
CC bin/glnxa64/objs/hikmeans.o
CC bin/glnxa64/objs/homkermap.o
CC bin/glnxa64/objs/host.o
CC bin/glnxa64/objs/ikmeans.o
CC bin/glnxa64/objs/imopv.o
CC bin/glnxa64/objs/imopv_sse2.o
CC bin/glnxa64/objs/kdtree.o
CC bin/glnxa64/objs/kmeans.o
vl/kmeans.c:546:11: warning: variable ‘allDone’ set but not used [-Wunused-but-set-variable]
vl/kmeans.c:546:11: warning: variable ‘allDone’ set but not used [-Wunused-but-set-variable]
CC bin/glnxa64/objs/lbp.o
CC bin/glnxa64/objs/mathop.o
CC bin/glnxa64/objs/mathop_sse2.o
CC bin/glnxa64/objs/mser.o
CC bin/glnxa64/objs/pegasos.o
CC bin/glnxa64/objs/pgm.o
CC bin/glnxa64/objs/quickshift.o
CC bin/glnxa64/objs/random.o
CC bin/glnxa64/objs/rodrigues.o
CC bin/glnxa64/objs/sift.o
CC bin/glnxa64/objs/stringop.o
CC bin/glnxa64/libvl.so
CC bin/glnxa64/aib
******* Offending Command:
cc '-std=c99' '-Wall' '-Wextra' '-Wno-unused-function' '-Wno-long-long' '-Wno-variadic-macros' '-I.' '-DNDEBUG' '-O3' '-lm' '-Wl,--rpath,$ORIGIN/' '-Lbin/glnxa64' '-lvl' 'src/aib.c' '-o' 'bin/glnxa64/aib'
******* Error Code: 1
******* Command Output:
/tmp/cclyk1YX.o: In function main': aib.c:(.text.startup+0x43d): undefined reference to
vl_aib_new'
aib.c:(.text.startup+0x448): undefined reference to vl_aib_process' aib.c:(.text.startup+0x47d): undefined reference to
vl_aib_delete'
collect2: ld returned 1 exit status
make: *** [bin/glnxa64/aib] Error 1
The function vl_covdet_extract_laplacian_scales_for_frame() in covdet.c (around line 2043) uses VL_COVDET_DOG_DEF_PEAK_THRESHOLD as the peak threshold instead of self->peakThreshold.
OK, so I was trying to compile vlfeat on OSX 10.9.3 with XCode 5.1.1 and clang-503.0.40 for Matlab 2014a and I encountered two different errors:
Running make info
yields:
** MATLAB support
MATLAB support disabled (MEX not found)
mex_src = ./toolbox/aib/vl_aib.c ./toolbox/aib/vl_aibhist.c ...
mex_tgt = toolbox/mex/mexmaci64/vl_aib.mexmaci64 toolbox/mex/mexmaci64/vl_aibhist.mexmaci64 ...
mex_dep = toolbox/mex/mexmaci64/vl_aib.d toolbox/mex/mexmaci64/vl_aibhist.d ...
m_src = ./toolbox/aib/vl_aib.m ./toolbox/aib/vl_aibcut.m ...
m_lnk = toolbox/noprefix/aib.m toolbox/noprefix/aibcut.m ...
mex_dll = toolbox/mex/mexmaci64/libvl.dylib
MATLAB_PATH =
MATLAB_EXE = /bin/matlab
MEX = mex
...
which obviously shows that Matlab couldn't be found.
Running mex
on the command line yields:
Not enough input arguments.
So matlab is definitely on the path.
Run:
make MATLAB_PATH=/Applications/MATLAB_R2014a.app
Detected compiler: clang 50100
Clang does not support OpenMP yet, disabling.
MEX toolbox/mex/mexmaci64/vl_aib.mexmaci64
Building with 'Xcode with Clang'.
ld: can't open -exported_symbols_list file: /Applications/MATLAB_R2014a.app/extern/lib/$Arch/$MAPFILE
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [toolbox/mex/mexmaci64/vl_aib.mexmaci64] Error 255
Seems like $Arch
and $MAPFILE
are not properly set?
--- make/matlab.mak
+++ make/matlab.mak
@@ -122,7 +122,7 @@
-arch x86_64 \
-Wl,-syslibroot,$(SDKROOT) \
-mmacosx-version-min=$(MACOSX_DEPLOYMENT_TARGET) \
--bundle -Wl,-exported_symbols_list,$(MATLAB_PATH)/extern/lib/\$$Arch/\$$MAPFILE \
+-bundle -Wl,-exported_symbols_list,$(MATLAB_PATH)/extern/lib/maci64/mexFunction.map \
$(if $(DISABLE_OPENMP),,-L$(MATLAB_PATH)/sys/os/$(ARCH)/) \
$(call escape,$(STD_LDFLAGS))'
endif
This also appears on L105
for the 32-bit Mac compilation. Not sure why this isn't set? But setting it explicitly definitely seems to work.
This page:
http://www.vlfeat.org/man/sift.html
says that command line program "sift" produces an ascii file with "5 floats and 128 integers" (5 for the frame, 128 for the descriptor).
However when I run it in ascii mode, each line has 4 floats and 128 integers.
(sames difference when I run it to produce the frame or descriptors separately)
I'm currently trying to read in a binary version of the file, and haven't been able to successfully read the values, because this documentation is apparently out of date (incorrect)?
I can't seem to find any combination of X_sizeof(double)+128_sizeof(unsigned char) or X_sizeof(float)+128_sizeof(unsigned char), where X = {4,5} that will read in a good descriptor (and frame).
(again same problem when I try this for a descriptor or frame only file)
For example for the binary case, I can try to read in the first 4 floats or doubles in python like so:
f = open('image_0001.binsift', 'rb')
struct.unpack('f',f.read(4))
// or
struct.unpack('d',f.read(8))
but the results are gibberish (and certainly don't match the corresponding results in ascii) ... apparently the description in the documentation doesn't match what is being written out by the program.. this should probably be updated for people to be able to use it.
Hi there,
is it correct that in lines 29 and 33 of file vl/imopv_sse2.c there are two includes that include the file itself?
Thanks,
Pedro
Dear Sir
There is a function vl_kmeans_quantize(C API),which should work with 5 parameters.However,in your demo code,it works like this: vl_kmeans_quantize(kmeans,indexes,dataToEncode,numDataToEncode);.Is there a problem?
Hi!
I downloaded and installed the Framework according to the Homepage!
The vl_demo script as well as the phow_caltech101.m script is running perfectly.
However, whenever I call the script traintest.m (or if I run the experiments.m file) the following error occurs:
Undefined function 'eq' for input arguments of type 'cell'.
Error in fullfile (line 39)
elseif (f(end)==fs) || (part(1)==fs || (bIsPC && (f(end)=='/' || part(1)=='/'))
)
Error in traintest (line 69)
encoder = trainEncoder(fullfile(imdb.imageDir,imdb.images.name(train)), ...
Error in experiments (line 155)
traintest(...
(error pasted from experiments.m)
I downloaded all the neccesary image files and didn't change anything in the scripts.
I am running Matlab R2012a on a Xubuntu 13.10 64bit platform!
regards
When I ran 'vl_demo_svm' in matlab 2014a, it came across an error:
Error using findstr
Input strings must have one row.
Error in ezplot>ezimplicit (line 198)
if (isa(f, 'inline') && ~isempty(findstr(char(f), '=')))
Error in ezplot (line 153)
hp = ezimplicit(cax, f{1}, vars, labels, args{:});
Error in vl_demo_svm (line 38)
line = ezplot(eq, [-0.9 0.9 -0.9 0.9]);
Then I went into ezplot.m, changed following line
if (isa(f, 'inline') && ~isempty(findstr(char(f), '=')))
into
if (isa(f, 'inline') && ~isempty(findstr(char(f)', '=')))
And it works fine now.
Should this be a bug? Or I have missed some instruction and thus it leads this happening?
Thanks!
Hi,
During using LIOP descriptor I have faced with problem. Possible bug is in vl_liopdesc_process on the following lines of code (513-516):
if (ix >= 0 && iy >= 0) { a = patch[ix + iy * L] ; }
if (ix < L && iy >= 0) { b = patch[ix+1 + iy * L] ; }
if (ix >= 0 && iy < L) { c = patch[ix + (iy+1) * L] ; }
if (ix < L && iy < L) { d = patch[ix+1 + (iy+1) * L] ; }
For example, in case of iy == L - 1, the code will cause undefined behaviour.
I try to use g++ to compile the simplest "Hello World" program of vlfeat. My system is Ubuntu 12.04 LTS 64-bit.
I can compile successfully, but when I run it, it failed with message like this:
"error while loading shared libraries: libvl.so: cannot open shared object file: No such file or directory"
Anyone tell me how to fix it?
I both used covdet sift descriptor in vlfeat and the original hesaff code of Dr. Michal Perd’och. Hesaff's output format is unsigned char as Lowe sift.
Why the class of covdet sift descriptor is single? Usually we treat Hesaff as sift with gravity contraint, but in vlfeat if we don't note that covdet's output is single it might cause bugs.
Hi,
At http://www.vlfeat.org/mdoc/VL_IKMEANS.html says we could change "MaxPasses" parameter, and I was getting an error of unkown parameter. I saw the .c code to see the correct parameter, and is "MaxIters". Could you update de documentation please?
In the vl_ucbmatch.c file, I inserted code to exit the loop early if there's a second_best already and the current accumulation has become greater than the second_best.
This code results in a performance improvement cutting the matching time in half for my images of 4000x3000.
process without matching: 23 secs
process with matching and not exiting early: 63 secs
process with matching and this early exit: 43 secs
for(bin = 0 ; bin < ND ; ++bin) {
int delta =
((int) L1_pt[bin]) -
((int) L2_pt[bin]) ;
acc += delta*delta ;
if ( acc > second_best ) {
break;
}
}
In liop.c:vl_liopdesc_process memset is called as:
memset(desc,0,self->dimension);
but should be called like
memset(desc,0,sizeof(float)*self->dimension);
This means that currently the last three quarters of the descriptor entries are currently never initialized to zero and hence are biased by garbage memory and invalid.
When I go through the tutorial on vl_sift on the site, I get the error: "Attempt to execute SCRIPT vl_sift as a function". Is this a common installation error or something?
The demo code writes
"
for(i = 0; i < numDataToEncode; i++) {
assignments[i + numCenters * indexes[i]] = 1.;
}
"
But I think it should be
"
for(i = 0; i < numDataToEncode; i++) {
assignments[i + numDataToEncode * indexes[i]] = 1.;
}
"
Hi,
I am running the command-line SIFT implementation of the VLFEATROOT project on a macos64 (Mavericks) with pgm files I am able to have usable .sift as result's file BUT the problem is that it does not provide at his top line the numbers of features & length of the descriptor.
I really need these values for the completion of my sift descriptors software.
Thank you very much for your help.
as describe in the page
http://www.vlfeat.org/sandbox/matlab/vl_dsift.html
The X coordiante of the center of the first descriptor is therefore at (XMIN + XMIN + 3*SIZE) / 2 = XMIN + 3/2 * SIZE
so the spatial bin is 4x4 or 3x3?
if it is 3x3, then the above description seems correct(as far as I understand)
but the sift feature is always with 4x4 spatial-bin by default, should it be XMIN + 2 * SIZE
SIZE
a spatial bin covers SIZE pixels
An example in which output AP is wrong: when
(1) data points are ordered as positives first, then negatives
(2) all data points are assigned exactly the same score,
AP returned is 1.
Source of error: vl_pr and vl_roc both use the vl_tpfp helper function. vl_tpfp sorts the scores in descending order. Unfortunately the rankings assigned by the matlab sort function when scores are equal are meaningless. In fact, the ranks when all scores are equal are the same as the indices of the data points.=> because the data points are ordered positives first, the rankings match exactly, returning the perfect AP score of 1.
Scores returned by vl_pr and vl_roc must not depend on the ordering of the data points. One way to fix this could be to find unique scores in the data and sort those alone, and then map those rankings back to all the data points.
--first-octave=0 fixes it on the command line, but is not required in MATLAB. Maybe the defaults are different?
Hi,
I got this error when I compute vl_phow
"Attempt to execute SCRIPT vl_imsmooth as a function"
Someone gave this solution:
You are getting this error because your path ".../vlfeat-0.9.16/toolbox/imop/vl_imsmooth.m"
has a higher precedence than " ...../vlfeat-0.9.16/toolbox/mex/mexa64/vl_imsmooth.mexa64"
so you can simply run
pathtool
I tried it, but it doesn't work. Thanks
novi
Looks like edgeMap is never freed
Hi,
when running vl_means, I get the following error:
Can you help me with that? Thanks in advance
MATLAB crash file:C:\Users\GIUSEP~1\AppData\Local\Temp\matlab_crash_dump.5532-1:
Access violation detected at Tue Sep 23 16:41:09 2014
Configuration:
Crash Decoding : Disabled
Default Encoding : windows-1252
MATLAB Architecture: win64
MATLAB Root : C:\Program Files\MATLAB\R2014a
MATLAB Version : 8.3.0.532 (R2014a)
Operating System : Microsoft Windows 7 Professional
Processor ID : x86 Family 6 Model 30 Stepping 5, GenuineIntel
Virtual Machine : Java 1.7.0_11-b21 with Oracle Corporation Java HotSpot(TM) 64-Bit Server VM mixed mode
Window System : Version 6.1 (Build 7601: Service Pack 1)
Fault Count: 1
Abnormal termination:
Access violation
Register State (from fault):
RAX = 000000007be553e0 RBX = 0000000000000014
RCX = 000000007be55520 RDX = ffffffff841aac20
RSP = 00000000040271a8 RBP = 000000007ca27860
RSI = 0000000000000000 RDI = 0000000000000140
R8 = 0000000000000140 R9 = 000000000000000a
R10 = 0000000000000028 R11 = 000000007be553e0
R12 = 000000005516c140 R13 = 0000000000000000
R14 = 0000000000002710 R15 = 0000000004028610
RIP = 0000000007f6e480 EFL = 00010287
CS = 0033 FS = 0053 GS = 002b
Stack Trace (from fault):
[ 0] 0x0000000007f6e480 C:\Windows\WinSxS\amd64_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.6161_none_08e61857a83bc251\MSVCR90.dll+00124032 memmove+00000592
[ 1] 0x0000000006e8244e \I-PATH-SBS2008\NewFolderRedirections\GiuseppeLippolis\Documents\MATLAB\vlfeat-0.9.18-bin.tar\vlfeat-0.9.18\toolbox\mex\mexw64\vl_kmeans.mexw64+00009294 mexFunction+00003758
[ 2] 0x00000000fc5ef711 C:\Program Files\MATLAB\R2014a\bin\win64\libmex.dll+00063249 mexRunMexFile+00000129
[ 3] 0x00000000fc5ee1e2 C:\Program Files\MATLAB\R2014a\bin\win64\libmex.dll+00057826 inSwapMexfileReader+00000226
[ 4] 0x00000000fc5ef294 C:\Program Files\MATLAB\R2014a\bin\win64\libmex.dll+00062100 _constructor_lm_mexmaci64+00001620
[ 5] 0x000000000463be4f C:\Program Files\MATLAB\R2014a\bin\win64\m_dispatcher.dll+00048719 Mfh_file::dispatch_fh+00000687
[ 6] 0x000000000463c77a C:\Program Files\MATLAB\R2014a\bin\win64\m_dispatcher.dll+00051066 Mfunction_handle::dispatch+00000810
[ 7] 0x000000000478cdfe C:\Program Files\MATLAB\R2014a\bin\win64\m_interpreter.dll+00577022 MathWorks::MException::MExceptionEnvelope::GetID+00371822
[ 8] 0x00000000048068a7 C:\Program Files\MATLAB\R2014a\bin\win64\m_interpreter.dll+01075367 inEachVisibleName+00016119
[ 9] 0x000000000478ab1a C:\Program Files\MATLAB\R2014a\bin\win64\m_interpreter.dll+00568090 MathWorks::MException::MExceptionEnvelope::GetID+00362890
[ 10] 0x00000000047a446f C:\Program Files\MATLAB\R2014a\bin\win64\m_interpreter.dll+00672879 MathWorks::MException::MExceptionEnvelope::GetID+00467679
[ 11] 0x00000000047a45b8 C:\Program Files\MATLAB\R2014a\bin\win64\m_interpreter.dll+00673208 MathWorks::MException::MExceptionEnvelope::GetID+00468008
[ 12] 0x0000000004794a2d C:\Program Files\MATLAB\R2014a\bin\win64\m_interpreter.dll+00608813 MathWorks::MException::MExceptionEnvelope::GetID+00403613
[ 13] 0x000000000479192c C:\Program Files\MATLAB\R2014a\bin\win64\m_interpreter.dll+00596268 MathWorks::MException::MExceptionEnvelope::GetID+00391068
[ 14] 0x00000000047a11c9 C:\Program Files\MATLAB\R2014a\bin\win64\m_interpreter.dll+00659913 MathWorks::MException::MExceptionEnvelope::GetID+00454713
[ 15] 0x000000000463c00e C:\Program Files\MATLAB\R2014a\bin\win64\m_dispatcher.dll+00049166 Mfh_file::dispatch_fh+00001134
[ 16] 0x000000000463c77a C:\Program Files\MATLAB\R2014a\bin\win64\m_dispatcher.dll+00051066 Mfunction_handle::dispatch+00000810
[ 17] 0x000000000478cdfe C:\Program Files\MATLAB\R2014a\bin\win64\m_interpreter.dll+00577022 MathWorks::MException::MExceptionEnvelope::GetID+00371822
[ 18] 0x00000000048068a7 C:\Program Files\MATLAB\R2014a\bin\win64\m_interpreter.dll+01075367 inEachVisibleName+00016119
[ 19] 0x000000000478ab1a C:\Program Files\MATLAB\R2014a\bin\win64\m_interpreter.dll+00568090 MathWorks::MException::MExceptionEnvelope::GetID+00362890
[ 20] 0x00000000047a446f C:\Program Files\MATLAB\R2014a\bin\win64\m_interpreter.dll+00672879 MathWorks::MException::MExceptionEnvelope::GetID+00467679
[ 21] 0x00000000047a45b8 C:\Program Files\MATLAB\R2014a\bin\win64\m_interpreter.dll+00673208 MathWorks::MException::MExceptionEnvelope::GetID+00468008
[ 22] 0x0000000004794a2d C:\Program Files\MATLAB\R2014a\bin\win64\m_interpreter.dll+00608813 MathWorks::MException::MExceptionEnvelope::GetID+00403613
[ 23] 0x000000000479192c C:\Program Files\MATLAB\R2014a\bin\win64\m_interpreter.dll+00596268 MathWorks::MException::MExceptionEnvelope::GetID+00391068
[ 24] 0x00000000047a11c9 C:\Program Files\MATLAB\R2014a\bin\win64\m_interpreter.dll+00659913 MathWorks::MException::MExceptionEnvelope::GetID+00454713
[ 25] 0x000000000463c00e C:\Program Files\MATLAB\R2014a\bin\win64\m_dispatcher.dll+00049166 Mfh_file::dispatch_fh+00001134
[ 26] 0x000000000463c77a C:\Program Files\MATLAB\R2014a\bin\win64\m_dispatcher.dll+00051066 Mfunction_handle::dispatch+00000810
[ 27] 0x0000000004814a0e C:\Program Files\MATLAB\R2014a\bin\win64\m_interpreter.dll+01133070 inValidateLoadedObject+00003486
[ 28] 0x000000000481bd95 C:\Program Files\MATLAB\R2014a\bin\win64\m_interpreter.dll+01162645 inResetInterpreter+00005029
[ 29] 0x0000000004820a05 C:\Program Files\MATLAB\R2014a\bin\win64\m_interpreter.dll+01182213 MathWorks::MException::MExceptionEnvelope::Copy+00010997
[ 30] 0x00000000048209d2 C:\Program Files\MATLAB\R2014a\bin\win64\m_interpreter.dll+01182162 MathWorks::MException::MExceptionEnvelope::Copy+00010946
[ 31] 0x0000000004820997 C:\Program Files\MATLAB\R2014a\bin\win64\m_interpreter.dll+01182103 MathWorks::MException::MExceptionEnvelope::Copy+00010887
[ 32] 0x0000000004c0e89c C:\Program Files\MATLAB\R2014a\bin\win64\m_interpreter.dll+05302428 inMexPutVariable+00004204
[ 33] 0x0000000004c0ebf6 C:\Program Files\MATLAB\R2014a\bin\win64\m_interpreter.dll+05303286 inMexPutVariable+00005062
[ 34] 0x0000000004c0f02e C:\Program Files\MATLAB\R2014a\bin\win64\m_interpreter.dll+05304366 inMexPutVariable+00006142
[ 35] 0x0000000004c0f36c C:\Program Files\MATLAB\R2014a\bin\win64\m_interpreter.dll+05305196 inMexPutVariable+00006972
[ 36] 0x0000000004b20161 C:\Program Files\MATLAB\R2014a\bin\win64\m_interpreter.dll+04325729 inEvalCmdWithLocalReturn+00000065
[ 37] 0x000000000417becd C:\Program Files\MATLAB\R2014a\bin\win64\libmwbridge.dll+00048845 mnDebugPrompt+00000109
[ 38] 0x000000000417cfaf C:\Program Files\MATLAB\R2014a\bin\win64\libmwbridge.dll+00053167 mnParser+00000735
[ 39] 0x00000000fd0afae4 C:\Program Files\MATLAB\R2014a\bin\win64\mcr.dll+00195300 mcrInstance::mnParser_on_interpreter_thread+00000036
[ 40] 0x00000000fd093af0 C:\Program Files\MATLAB\R2014a\bin\win64\mcr.dll+00080624 mcr::runtime::setInterpreterThreadToCurrent+00029488
[ 41] 0x00000000fd093b50 C:\Program Files\MATLAB\R2014a\bin\win64\mcr.dll+00080720 mcr::runtime::setInterpreterThreadToCurrent+00029584
[ 42] 0x00000000fab6e026 C:\Program Files\MATLAB\R2014a\bin\win64\uiw.dll+00581670 UIW_IsUserMessage+00000086
[ 43] 0x00000000fab6e705 C:\Program Files\MATLAB\R2014a\bin\win64\uiw.dll+00583429 UIW_SetGLIMUserMsg+00000117
[ 44] 0x00000000fab6e789 C:\Program Files\MATLAB\R2014a\bin\win64\uiw.dll+00583561 UIW_SetGLIMUserMsg+00000249
[ 45] 0x00000000771a87fe C:\Windows\system32\USER32.dll+00165886 GetMenuBarInfo+00000638
[ 46] 0x000000007718f5fb C:\Windows\system32\USER32.dll+00062971 SystemParametersInfoW+00000235
[ 47] 0x0000000077194895 C:\Windows\system32\USER32.dll+00084117 IsProcessDPIAware+00000465
[ 48] 0x00000000773f11f5 C:\Windows\SYSTEM32\ntdll.dll+00332277 KiUserCallbackDispatcher+00000031
[ 49] 0x000000007719908a C:\Windows\system32\USER32.dll+00102538 PeekMessageW+00000186
[ 50] 0x00000000771950fe C:\Windows\system32\USER32.dll+00086270 GetKeyState+00000238
[ 51] 0x0000000077193a6f C:\Windows\system32\USER32.dll+00080495 PeekMessageA+00000087
[ 52] 0x00000000fab1bd4b C:\Program Files\MATLAB\R2014a\bin\win64\uiw.dll+00245067 UIW_SetCurrentDialog+00000731
[ 53] 0x00000000fab6fbe2 C:\Program Files\MATLAB\R2014a\bin\win64\uiw.dll+00588770 ws_FreeSystemFont+00000482
[ 54] 0x00000001000e2ed0 C:\Program Files\MATLAB\R2014a\bin\win64\libmwservices.dll+00995024 services::system_events::PpeDispatchHook::~PpeDispatchHook+00053488
[ 55] 0x00000001000e36a5 C:\Program Files\MATLAB\R2014a\bin\win64\libmwservices.dll+00997029 services::system_events::PpeDispatchHook::~PpeDispatchHook+00055493
[ 56] 0x00000001000e4330 C:\Program Files\MATLAB\R2014a\bin\win64\libmwservices.dll+01000240 services::system_events::PpeDispatchHook::~PpeDispatchHook+00058704
[ 57] 0x00000001000ed4c6 C:\Program Files\MATLAB\R2014a\bin\win64\libmwservices.dll+01037510 sysq::removeProcessPendingEventsHook+00011030
[ 58] 0x00000001000ed7ca C:\Program Files\MATLAB\R2014a\bin\win64\libmwservices.dll+01038282 svWS_ProcessPendingEvents+00000138
[ 59] 0x00000000fd094b6d C:\Program Files\MATLAB\R2014a\bin\win64\mcr.dll+00084845 mcr::runtime::setInterpreterThreadToCurrent+00033709
[ 60] 0x00000000fd094e3b C:\Program Files\MATLAB\R2014a\bin\win64\mcr.dll+00085563 mcr::runtime::setInterpreterThreadToCurrent+00034427
[ 61] 0x00000000fd088b75 C:\Program Files\MATLAB\R2014a\bin\win64\mcr.dll+00035701 mcrInstantiationError::operator=+00003221
[ 62] 0x00000000fd08bea2 C:\Program Files\MATLAB\R2014a\bin\win64\mcr.dll+00048802 mcr_invoke_on_interpreter_thread+00001602
[ 63] 0x00000000fa7e6e5d C:\Program Files\MATLAB\R2014a\bin\win64\MVMLocal.dll+00159325 mvm_server::inproc::LocalFactory::createMVM+00040653
[ 64] 0x00000000051fafaa C:\Program Files\MATLAB\R2014a\bin\win64\mvm.dll+00569258 mvm::detail::SessionImpl::privateSession+00001754
[ 65] 0x00000000051fd32a C:\Program Files\MATLAB\R2014a\bin\win64\mvm.dll+00578346 mvm::detail::SessionImpl::privateSession+00010842
[ 66] 0x00000000051fce85 C:\Program Files\MATLAB\R2014a\bin\win64\mvm.dll+00577157 mvm::detail::SessionImpl::privateSession+00009653
[ 67] 0x0000000140004f79 C:\Program Files\MATLAB\R2014a\bin\win64\MATLAB.exe+00020345
[ 68] 0x0000000140006a07 C:\Program Files\MATLAB\R2014a\bin\win64\MATLAB.exe+00027143
[ 69] 0x00000000772959ed C:\Windows\system32\kernel32.dll+00088557 BaseThreadInitThunk+00000013
[ 70] 0x00000000773cc541 C:\Windows\SYSTEM32\ntdll.dll+00181569 RtlUserThreadStart+00000033
This error was detected while a MEX-file was running. If the MEX-file
is not an official MathWorks function, please examine its source code
for errors. Please consult the External Interfaces Guide for information
on debugging MEX-files.
If this problem is reproducible, please submit a Service Request via:
http://www.mathworks.com/support/contact_us/
A technical support engineer might contact you with further information.
Thank you for your help.
In vl_ubcmatch.c, line 166, an array of length K1+K2 is allocated. Looking at the code, I believe the length should be K1. Of course allocating more space than required will not lead to errors but appears unnecessary.
vl_ubcmatch.c:166 Pair* pairs_begin = (Pair*) mxMalloc(sizeof(Pair) * (K1+K2)) ;
Hi!
is it possible to use VLfeat library from VisualStudio without having Matlab? I am trying to but I have several problems. For example I am coding vl_phow (because there is only a matlab file) and I have to use vl_dsift but this seem to depend on mexutils and mex. And this gives an error because I do not have matlab. What am I doing wrong?
Thanks very much!
Hello,
When compiling vlfeat-0.9.17 on Mac OS X 10.9, I get the linker error copied below regarding missing libgomp. It appears that Xcode 5 does not support OpenMP.
As a workaround, I can successfully build using gcc-4.8 installed using macports,then editing make/dll.mak and make/matlab.mak to remove the offending option -mmacosx-version-min.
make CC=gcc-mp-4.8
Thanks for a great library for the community!
******* Offending Command:
gcc '-m64' '-dynamiclib' '-undefined' 'suppress' '-flat_namespace' '-install_name' '@loader_path/libvl.dylib' '-compatibility_version' '0.9.17' '-current_version' '0.9.17' '-isysroot' '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk' '-mmacosx_version_min=10.4' '-lm' '-lpthread' '-m64' '-fopenmp' 'bin/maci64/objs/aib.o' 'bin/maci64/objs/array.o' 'bin/maci64/objs/covdet.o' 'bin/maci64/objs/dsift.o' 'bin/maci64/objs/fisher.o' 'bin/maci64/objs/generic.o' 'bin/maci64/objs/getopt_long.o' 'bin/maci64/objs/gmm.o' 'bin/maci64/objs/hikmeans.o' 'bin/maci64/objs/hog.o' 'bin/maci64/objs/homkermap.o' 'bin/maci64/objs/host.o' 'bin/maci64/objs/ikmeans.o' 'bin/maci64/objs/imopv.o' 'bin/maci64/objs/imopv_sse2.o' 'bin/maci64/objs/kdtree.o' 'bin/maci64/objs/kmeans.o' 'bin/maci64/objs/lbp.o' 'bin/maci64/objs/liop.o' 'bin/maci64/objs/mathop.o' 'bin/maci64/objs/mathop_avx.o' 'bin/maci64/objs/mathop_sse2.o' 'bin/maci64/objs/mser.o' 'bin/maci64/objs/pgm.o' 'bin/maci64/objs/quickshift.o' 'bin/maci64/objs/random.o' 'bin/maci64/objs/rodrigues.o' 'bin/maci64/objs/scalespace.o' 'bin/maci64/objs/sift.o' 'bin/maci64/objs/slic.o' 'bin/maci64/objs/stringop.o' 'bin/maci64/objs/svm.o' 'bin/maci64/objs/svmdataset.o' 'bin/maci64/objs/vlad.o' '-o' 'bin/maci64/libvl.dylib'
******* Error Code: 1
******* Command Output:
ld: library not found for -lgomp
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [bin/maci64/libvl.dylib] Error 1
"Spatially Invariant Vector Quantization: A pattern matching algorithm for multiple classes of image subject matter including pathology"
http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3049270/
In lines 150 in vl_phow.m, forget lower "switch lower(opts.color)",
It would be nice if the library could be linked statically. This should be (relatively) straightforward to support on Linux/Mac but on Windows will require no longer using the DllMain() function to call vl_constructor. See http://stackoverflow.com/questions/1113409/attribute-constructor-equivalent-in-vc for another way to do this that would more closely mirror how it works on Linux.
I have use vlad & fv to complish a vehilce retrieval mission, but all of their precision is low(about 20%),
so i code the vlad by myself,with the same vocabulary ,the precision is 90% ,is there a bug in VLAD or FV? thank you!!
Hi,
In v.0.9.13, there is a minor bug in vl_test_pattern.m. It calls vlfeat_root.m twice but this function appears to have been renamed to vl_root.m. Other m-files ought to be checked for the same/similar bugs due to file name changes.
Hi Sir,
I downloaded the VLFEAT 0.9.17 package and wanted to learn LBP algorithem. I found there is a Matlab LBP test program in "vlfeat-0.9.17.tar\vlfeat-0.9.17\vlfeat-0.9.17\toolbox\xtest\vl_test_lbp.m". But the test result seems not correct.
In function "test_one_on"
function test_one_on()
I = {} ;
I{1} = [0 0 0 ; 0 0 1 ; 0 0 0] ;
I{2} = [0 0 0 ; 0 0 0 ; 0 0 1] ;
I{3} = [0 0 0 ; 0 0 0 ; 0 1 0] ;
I{4} = [0 0 0 ; 0 0 0 ; 1 0 0] ;
I{5} = [0 0 0 ; 1 0 0 ; 0 0 0] ;
I{6} = [1 0 0 ; 0 0 0 ; 0 0 0] ;
I{7} = [0 1 0 ; 0 0 0 ; 0 0 0] ;
I{8} = [0 0 1 ; 0 0 0 ; 0 0 0] ;
for j=0:7
h = vl_lbp(single(I{j+1}), 3) ;
h = find(squeeze(h))
vl_assert_equal(h, j * 7 + 1) ;
end
I found in vllbp.c, this LBP object is created with transposed feature. For input array [0 0 0 ; 0 0 1 ; 0 0 0] , it assume the LBP value equal to 1. Abviously, the LBP value before quantizaiton is 00000001b, if the matrix is transposed, the LBP value before quantization is 00000100. The LBP value after quantizaiton is 14 which is not consistent with your result.
Could you check it?
Thank you,.
Adam
In vl_covdet, when using EstimateOrientations in conjunction with user defined Frames the number of returned descriptors can increase.
This, according to the doc, is given by multiple orientation assignment of some descriptors.
I think would be helpful to raise a warning in such cases.
In vlfeat-0.9.19\toolbox\fisher\vl_fisher, Line 151:
OUT(ENC) = mxCreateNumericMatrix (dimension * numClusters * 2, 1, classID, mxREAL) ;
the returned fisher code will always be one column, no matter how many columns exist in the input feature matrix!
I checked my installation and octave mex make and ran successfully vl_sift_demo_basic. Here is vl_version output:
octave:7> vl_version verbose
VLFeat version 0.9.17
Static config: X64, little_endian, GNU C 40201 LP64, POSIX_threads, SSE2, OpenMP
4 CPU(s): GenuineIntel MMX SSE SSE2 SSE3 SSE41 SSE42
OpenMP: max threads: 4 (library: 4)
Debug: no
SIMD enabled: yes
Initially it was failing for same reason ( error: vl_dsift: I must be a matrix of class SINGLE ) in line 159. So I changed the imread line to the following.
imu = imread(fullfile(conf.calDir, images{selTrainFeats(ii)}));
imu = im2single(imu);
if size(imu,3) > 1, im = rgb2gray(imu) ; else im = imu ; end
im = standarizeImage(im) ;
With this change baseline-vocab.mat is built. But now it fails in vl_phow line 140. Note that it always fails on this image.
kmeans: Elkan: total dist. calc.: 110869672 (3.70 % of Lloyd)
kmeans: K-means terminated in 60.86 s with energy 5.49657e+09
Processing BACKGROUND_Google/image_0001.jpg (0.01 %)
vl_phow: color space: gray
vl_phow: image size: 145 x 144
vl_phow: sizes: [ 4 6 8 10]
error: vl_dsift: I must be a matrix of class SINGLE.
error: called from:
error: /Users/arman/vlfeat/toolbox/sift/vl_phow.m at line 140, column 21
error: /Users/arman/vlfeat/apps/phow_caltech101.m at line 288, column 19
error: /Users/arman/vlfeat/apps/phow_caltech101.m at line 192, column 16
Hi,
I would like to use the C API of your library but I fail to compile the example given in the Documentation.
I tried compiling the library from sources but it fails with the error
/usr/bin/ld: cannot find -liomp5 collect2: error: ld returned 1 exit status make: *** [toolbox/mex/mexa64/libvl.so] Error 1
Is there a more comprehensive documentation about compiling from sources?
My OS is Ubuntu 14.04 with g++ 4.8.2
Thanks
PS: the same problem is encounter when trying to complie the mex interface for GNu Octave using mkoctfile 3.8.2 (latest stable).
While porting vlfeat to android I found a bug in the non optimised implementation of vl_distance_mahalanobis_sq_.
Using either the SSE2 or AVX implementation the distance is computed like this :
T a = *X++ ;
T b = *MU++ ;
T c = *S++ ;
T delta = a - b ;
acc += (delta * delta) * c;
However in the non optimised implementation is (mathop.c line 460) :
T const * X_end = X + dimension ;
T acc = 0.0 ;
while (X < X_end) {
T d = *X++ - *MU++ ;
acc += d * d / (*S++) ;
}
The division on acc += d * d / (*S++) ;
should be replaced by a multiplication to ensure the same behaviour of each version of the function.
Correction is :
T const * X_end = X + dimension ;
T acc = 0.0 ;
while (X < X_end) {
T d = *X++ - *MU++ ;
acc += d * d * (*S++) ; // using multiplication instead of division
}
This bug make the Fischer Vector implementation wrong if you disable any optimisations.
Thanks !
Jérémy
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.