BEL edge detector (download v1.5)
This software package is provided for research purpose only. Please cite the
paper below for reference:
Piotr Dollár, Zhuowen Tu, and Serge Belongie,
"Supervised Learning of Edges and Object Boundaries", CVPR, June, 2006.
This package is for Windows ONLY, and it includes:
(1) An executable program BEL.exe
(2) IPL dlls (developed by the Intel lab, an old version)
(3) The Berkeley training images and testing images (not complete).
David Martin, Charless Fowlkes and Jitendra Malik,
"Learning to Detect Natural Image Boundaries Using Local Brightness, Color and
Texture Cues", PAMI, 26(5), 530-549, May 2004.
(It may require some additional dlls related to Visual Studio)
(4) Two classifiers have been trained on the Berkeley training images, and they
are (name clf) saved in .\Data\bsd\edge and .\Data\bsd\edge_onCanny
You simply execute "BEL yoursetting.txt", and the "yoursetting.txt" file
specifies where are the training/testing images and how to tune some the
parameters for training/testing.
"BEL bsd_fast_edge.txt" is a fast version (around 12 seconds on an image of
481x321) with slightly
degraded performance, but still within the same range of BEL.
To train, simply set the training=1 in "setting.txt".
To test, set training=0
All the images are saved in a directory as names "I00000.tif" with the
corresponding annotation images (same size) named "I00000_label.tif". If you
want to work with color images, simply name the original images as
"I00000C.tif". These ".tif" images are saved in an un-compressed format.
In addition, you can also give a mask image, "I00000_premask.tif", if you wish
to only classify those pixels interested. But you should make sure that your
taining and testing stages are consistent. The parameter "mask" specifies
whether or not a mask image is used. If "mask=1", then the algorithm
automatically computes an edge map by Canny detector at a low scale (sigma=1.5),
and trains/tests those edge pixels. If "mask=2", the program trains/tests on
those specified by "_premask.tif" defined by users.
The most important parameters to tune in the training are the maximum depth of
the tree, size of image patch, how many cascade levels enforced, and the number
of weak classifiers for each node. The final classifier "clf" is saved at the
directory specified by "path results=". You can also specify the stopping
criterion on a leaf node: the threshold to allow the portion of pixels
miss-classified. Increasing the number of tree levels and lowering the
thresholds may result in longer training time and over-fitting, depending upon
the complexity of your taining data.
Note: Some system functions will be called to delete some intermediate files, which
may trigger some warnings. You may simply ignore them. The classifier, "clf",
will be removed automatically from the result directory if you train a new edge
detector. So make sure to BACKUP the classifier previously trained. Edge thining
is suggested to apply on the results if you want to get edges with better
localization.
The benchmark for various edge detectors can be found at