/ODISF

Object-based Dynamic and Iterative Spanning Forest (ODISF) Superpixel Segmentation

Primary LanguageCMIT LicenseMIT

Object-based Dynamic and Iterative Spanning Forest (ODISF)

This is the implementation of the superpixel segmentation method Object-based Dynamic and Iterative Spanning Forest(ODISF) as proposed in

This software includes a program for running the ODISF method, and another one for assisting the visualization of the segmentation by overlaying the superpixel borders. Please cite the aforementioned paper if you use any of this software in your own project.

Hardware, Setup and Requirements

The project was developed in C under a Linux-based operational system; therefore, it is NOT GUARANTEED to work properly in other systems (e.g. Windows and macOS). Moreover, the same applies for non-GCC compilers, such as Clang and MinGW.

All code within this project were developed, compiled and tested using the following programs:

This code was implemented and evaluated in a computer with the following specifications:

  • Model: Acer X555LB
  • Operational System: Linux Mint v20.2 x86_64 kernel version 5.4.0-86-generic
  • Order: Little-Endian
  • CPU: 4x Dual-core Intel(R) Core(TM) i5-5200 @ 2.20 GHz
  • Memory: 8GB RAM ; 480 SSD

The library has in-built support for handling PNM images. For enabling external library support, please refer to the README file within the externals folder.

Compiling

If your computer meets the aforementioned requirements, you may run the commands below for compiling the library and all the demonstration programs.

make lib
make demo

Or simply run one of the following commands for compiling both latter at once.

make
make all

For removing the files generated from compilation, one may run the following rule.

make clean

Running

After compiling, one may run ODISF for segmenting an image through the following command

./bin/RunODISF --img path/to/image.ppm --objsm path/to/objsm.pgm --out path/to/segm.pgm

Briefly, --img,--objsm, and --out indicate the paths to the image to be segmented and its object saliency map, and to the resulting segmentation, respectively. For other arguments, one may run

./bin/RunODISF --help

for more information.

Given such segmentation, it is possible to draw the superpixel borders over the original image for a better visualization by the following command

./bin/RunOvlayBorders --img path/to/image.ppm --labels path/to/segm.pgm --out path/to/overlay.ppm

In this case, --img,--labels, and --out indicate the paths to the original image and segmentation, and to the resulting overlay image, respectively. Likewise, for other arguments, one may run

./bin/RunOvlayBorders --help

for more information.

License

All codes within this project are under the MIT License. See the LICENSE file for more details.

Acknowledgements

This work was financially supported by the following brazilian research funding agencies:

  • Conselho Nacional de Desenvolvimento Científico e Tecnológico (CNPq)
  • Coordenação de Aperfeiçoamento de Pessoal de Nível Superior (CAPES)
  • Fundação de Amparo à Pesquisa do Estado de Minas Gerais (FAPEMIG)
  • Fundação de Amparo à Pesquisa do Estado de São Paulo (FAPESP)

Contact

If you have any questions or faced an unexpected behavior (e.g. bugs), please feel free to contact the authors through the following email addresses: