pdollar / edges Goto Github PK
View Code? Open in Web Editor NEWStructured Edge Detection Toolbox
License: Other
Structured Edge Detection Toolbox
License: Other
I am confused about the function of correspondPixels().And there is a compiled lib so I can't see code. Can you give some explanation about it?
Thank you
Hello,
I want to use the edge box on my dataset and compare its performance with Selective search.
In the edgeBoxesDemo.m, I have run the code with split='val' which i used the training set of Voc2007.
The 2 graphs with the default setting like
model=load('models/forest/modelBsds'); model=model.model;
model.opts.multiscale=0; model.opts.sharpen=2; model.opts.nThreads=4;
%% set up opts for edgeBoxes (see edgeBoxes.m)
opts = edgeBoxes;
opts.alpha = .65; % step size of sliding window search
opts.beta = .75; % nms threshold for object proposals
opts.minScore = .01; % min score of boxes to detect
opts.maxBoxes = 1e4; % max number of boxes to detect
it shows me an output:
EdgeBoxes70 T=0.70 A=0.46 M= 804 R=0.87
Which is similar to Figure 5 (I guess). But it is mentioned in the paper that for the comparison of Edge Box with other methods you used test set.
So for the test set I have changed the training set with testing set in the \boxes folder and changed this part in the code
split='test'; data=boxesData('split',split);
and I am getting this output
EdgeBoxes70 T=0.70 A=0.47 M= 656 R=0.88
Therefore, I have couple of questions:
Why the test result is different from the paper. like According to table 2, the value of should be 800 not 656 ? Or i did something wrong
How can I plot the Figure 5 graph for the selective search method using VOC 2007 dataset?
Also, if i used the Edge box for different dataset do I need to train new model?
Please help me to solve this
Hi,
The link to Piotr's Matlab Toolbox (http://vision.ucsd.edu/~pdollar/toolbox/doc/index.html) is not accessible. Is there any other web page where I can download the toolbox?
Thank you!
Hi Piotr,
Have you thought of extending the future version to classifying edges in 3D? I have been using now your code on a slice-by-slice basis for our 2-PM microscope stacks trained with our own ground truths, and the results are quite good :) I would assume that the results would be even better if full 3D context would be taken into account?
Petteri
Hi! Thanks for your work!
Is it possible to get xml of your model for this example
I am trying to convert this file to xml.
Also I didn't look yet deep inside implementation. But maybe there is some other implementation (I suppose it's your code)? It looks heavy and slowly.
Thank you!
Hi, I have a trouble when I compile the edgesDetectMex.cpp within Matlab.
There are some errors about the type of variable pointers.
Just as below:
mex private/edgesDetectMex.cpp -outdir private
Building with 'MinGW64 Compiler (C++)'.
Error using mex
E:\Users\User\Documents\Projects\edge\edges-master\private\edgesDetectMex.cpp: In function 'void
mexFunction(int, mxArray**, int, const mxArray**)':
E:\Users\User\Documents\Projects\edge\edges-master\private\edgesDetectMex.cpp:99:63: error: cannot convert
'const int*' to 'const size_t* {aka const long long unsigned int*}' for argument '2' to 'mxArray*
mxCreateNumericArray_730(size_t, const size_t*, mxClassID, mxComplexity)'
pl[0] = mxCreateNumericArray(3,outDims,mxSINGLE_CLASS,mxREAL);
^
E:\Users\User\Documents\Projects\edge\edges-master\private\edgesDetectMex.cpp:101:63: error: cannot convert
'const int*' to 'const size_t* {aka const long long unsigned int*}' for argument '2' to 'mxArray*
mxCreateNumericArray_730(size_t, const size_t*, mxClassID, mxComplexity)'
pl[1] = mxCreateNumericArray(3,indDims,mxUINT32_CLASS,mxREAL);
^
E:\Users\User\Documents\Projects\edge\edges-master\private\edgesDetectMex.cpp:103:71: error: cannot convert
'const int*' to 'const size_t* {aka const long long unsigned int*}' for argument '2' to 'mxArray*
mxCreateNumericArray_730(size_t, const size_t*, mxClassID, mxComplexity)'
if(nl>2) pl[2] = mxCreateNumericArray(5,segDims,mxUINT8_CLASS,mxREAL);
^
What should I do to ignore these errors? Is there anyone encounter the same problems?
Thanks
I evaluated proposals generated using edgeBoxes.m
on PASCAL VOC 2007 test set and achieved a maximum recall of 76% with IoU = 0.7, which is far lower than 87% reported in your paper. I used default values for all parameters. Any suggestions?
Could anyone please tell me the meaning of maxDist parameter?
I have been trying to find proposals for the pepper.jpg image but have been shown this error
Hello.
I have satellite images which are more than three dimension. When I try to run that images and try to extract edgeboxes. I got this error. Is there any possible to resolve this error?
Error using edgesChns (line 40)
Assertion failed.
Error in edgesDetect (line 55)
[chnsReg,chnsSim] = edgesChns( I, opts );
Error in edgeBoxes>edgeBoxesImg (line 92)
model.opts.nms=0; [E,O]=edgesDetect(I,model);
Error in edgeBoxes (line 82)
if(~iscell(I)), bbs=edgeBoxesImg(I,model,o); else n=length(I);
Error in edgeBoxesDemo (line 16)
tic, bbs=edgeBoxes(I,model,opts); toc
??? Error: File: edgesTrain.m Line: 157 Column: 18
The variable eBins in a parfor cannot be classified.
See Parallel for Loops in MATLAB, "Overview".
I am getting this error while trying to run edgesDemo. It looks like the error stems from using two different indices within the loop. The variables need sliced to operate correctly.
Switching to something like this:
parfor i=1:nTrees*nNodes if(model.child(i) || model.nSegs(i)==1), continue;end %#ok<PFBNS> E=gradientMag(single(model.segs(:,:,i)))>.01; E0=0; sliceBins = eBins{i}; sliceBnds = eBnds(i); for j=1:nBnds, %eBins{i,j}=uint16(find(E & ~E0)'-1); E0=E; %eBnds(i,j)=length(eBins{i,j}); E=convTri(single(E),1)>.01; end sliceBins{j} = unit16(find(E&~E0)'-1); E0=E; sliceBnds(j)=length(sliceBins{j}); E=convTri(single(E),1)>0.1; end
Solves the issue.
EDIT: Solved the issue that results from the solution of this issue. I needed to add the toolbox path back in because it got removed.
Hi,pdollar.
I try train tree myself,but it alaways have the error:
Unable to read file 'BSR/BSDS500/data//groundTruth/train/Thumb.mat'. No such file or directory.
PS:when I reduce the number of the patch,it run ok.I guess if it is related to the number of data?
can you help me?thanks a lot
I am getting the following error while executing edgesDemo.m
Reference to non-existent field 'nTrees'
Hi!
Thanks pdollar for this excellent work. I'm trying to run edgesDemo.m, before that, I install it as Installation in readme.txt.
But when the program running to the 25 line in edgesDemo.m, it call the edgesDetect.m, and then edgesDetect call the edgesChns.m, in 58 lines in edgesChns.m, it call gradientMag.cpp, and Matlab was down. I have tried several times and it is same.
Help!
The environment I use:
Mac OS Mojave 10.14 5
Matlab 2017
Xcode Clang++ to configure mex
Hi,
I have a problem in understanding the Alpha parameter from the edgeBoxesMex.c file. In which function the Alpha parameter is used? I want to see how the step size alpha is related to the IoU
nonMaxSupr?
nonMaxSuprList?
nonMaxSuprWin?
Hi Piotr,
Thanks! for the great toolbox.
While training, object specific edges (t=gt.segmentation) are provided but model.segs (tree nodes) stores sparse patches not reflecting labels. So only edge probability plane (all edges) is estimated. Does the toolbox accommodate to store object specific edges/labels.
Thanks,
SPK Karri
I'm running this in R2014a.
After running edgesDemo, I get this error message:
Error using imPadMex
Out of memory. Type HELP MEMORY for your options.Error in imPad (line 39)
J = imPadMex( I, pad, type );Error in edgesDetect (line 52)
I = imPad(I,p,'symmetric');Error in edgesDemo (line 26)
tic, E=edgesDetect(I,model); toc
I don't think it's a memory problem, however. I believe this because if I go into the edgesDemo.m code and adapt the 'peppers.png' image, called on line 24, to make it a 25:25:3 image (by adding a line at line 25, "I = I(1:25, 1:25, :);" it still outputs "Out of memory". Any ideas would be appreciated.
I downloaded NYUD dataset and get only on '.mat' file. can you tell me how to evluate result on this dataset?
Hi @pdollar
I got the following error when using your edges_demo.m
Error using edgesChns (line 41)
Assertion failed.
Error in edgesDetect (line 55)
[chnsReg,chnsSim] = edgesChns( I, opts );
Error in edgeBoxesIedgeBoxesImg (line 92)
model.opts.nms=0; [E,O]=edgesDetect(I,model);
Error in edgeBoxes (line 82)
if(~iscell(I)), bbs=edgeBoxesImg(I,model,o); else n=length(I);
Error in edgeBoxesDemo (line 16)
tic, bbs=edgeBoxes(I,model,opts); toc
Which was fixed by converting the grayscale pepper.png
into a RGB image. Do the images always have to be converted to RGB or could the code be used for grayscale images as well?
The code computes superpixels used an iterative approach motivated by both SLIC and SEEDS.
I'd like to know how the iterative approach works ?
Could you please explain it ?
Thank you very much !
I am able to train the Structured Forest using the BSDS500 image dataset. But I am confused with the ground truth label in this directory BSR/BSDS500/data/groundTruth/train
.
For each image, the groundTruth label in .mat
format consists of 6 struct with 2 fields: (Segmentation and Boundaries).
Question 1:
I don't understand why we have 6 labels for each image. Isn't it more natural to have one label (one struct) per image?
Question 2:
And also, If I want to train my own dataset, how can I setup my own ground truth label (both Segmentation and Boundaries)?
Thanks.
Hi pdollar,
Where can I find the additional model 'modelNyuRgbd'?
Many thanks.
Hi, @pdollar
I'm working with Mac OS. I'm facing some problems when compiling in "3. Installation, Step c)". I have downloaded the Matlab toolbox successfully and ran toolboxCompile. But then in step c), when I omit the parameters, it returns errors saying "no matching function for call to 'mxCreateNumericArray_730'". Could you tell me how to solve this problem? Do I need another [OMPPARAMS] for Mac OS?
Thank you very much for your time and help! :)
Hi @pdollar,
What is the meaning of multiscale and sharpen option? According to your documents, I set
model.opts.multiscale=1; model.opts.sharpen=0;
The running time is faster and the accuracy is better. Multiscale is multiscale bounding box, isn't it? I am not sure clear about sharpen option.
I've installed the toolbox and trying to compile the mex file. But I keep getting this error with or without [OMPPARAMS]. I'm using Linux and 6.3 version of gcc.
private/edgesDetectMex.cpp:103:71: error: cannot convert ‘const int*’ to ‘const mwSize* {aka const long unsigned int*}’ for argument ‘2’ to ‘mxArray* mxCreateNumericArray_730(mwSize, const mwSize*, mxClassID, mxComplexity)’
if(nl>2) pl[2] = mxCreateNumericArray(5,segDims,mxUINT8_CLASS,mxREAL);
Any idea what the issue is?
How to get this code run for grayscale images? @pdollar
I've seen in README there are additional models online, but I can't find them on the Internet. Would you give a specific link where I can download them? Many thanks!
i'm new to matlab and I got some problems trying to make it work :
I did everything carefully in the installation method a but then when I try to run edgesDemo.m I got this error :
Error using imPadMex Requested 137438953888x1726576853504x7598263500303858035 (17179869184.0GB) array exceeds maximum array size preference. Creation of arrays greater than this limit may take a long time and cause MATLAB to become unresponsive. See array size limit or preference panel for more information.
and several others but they come from the first one I think
Error in imPad (line 39) J = imPadMex( I, pad, type ); Error in edgesDetect (line 52) I = imPad(I,p,'symmetric'); Error in edgesDemo (line 25) tic, E=edgesDetect(I,model); toc
As I said i'm quite new to matlab and didn't find yet where this imPadMex error does come from, any help would be greatly appreciated.
Hi there !
first thanks pdollar for sharing your work, the results are astonishing !
however i'm new to matlab and I got some problems trying to make it work :
I did everything carefully in the installation method but then when I try to run edgesDemo.m I got this error :
Error using imPadMex
Requested 137438953888x1726576853504x7598263500303858035 (17179869184.0GB) array exceeds
maximum array size preference. Creation of arrays greater than
this limit may take a long time and cause MATLAB to become unresponsive.
See array size limit or preference panel for more information.
and several others but they come from the first one I think
Error in imPad (line 39)
J = imPadMex( I, pad, type );
Error in edgesDetect (line 52)
I = imPad(I,p,'symmetric');
Error in edgesDemo (line 25)
tic, E=edgesDetect(I,model); toc
As I said i'm quite new to matlab and didn't find yet where this imPadMex error does come from, any help would be greatly appreciated.
Thanks for your continuous work on edge detection and kind sharing.
Excuse me. I came up against a problem when testing my model on NYU depth dataset.
I could not find the NYUD edge ground truth file after training on its training sets, could you please give me any advice?
Thanks in advance.
hi, @pdollar .
i'm wondering what's the use of "opts.shrink" and "nTreesEval"?
i've read the edgesTrain.m, but i still didn't understand them... : (
and i don't know where to find them in your paper?
many thanks
: )
Hi, thanks a lot for your works.
i want to use the model to predict the boundary(edges) from depth image, your github page says it is aviable on internet,but i cant find it .So where can i find that model?
In the ICCV paper you describe many different kind of features for each pixel, like color, illumination difference etc.
But I have a new kind of feature that I want to use instead of these. For each pixel I can generate a fixed sized dimension feature vector which I like to use. I want everything else to be the same.
I'm asking to tell me where should I change in your code. Please tell me what is the best way to do it.
Thanks,
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.