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) and FreeImage
library.
(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