Forest Fire Image Segmentation Using Multivac

by Blake Shaw

 

Introduction

Setup

Walkthrough

Code Design

Known Issues

 

 

 

 

Introduction

 

Welcome! This document is a userŐs guide to the Forest Fire Image Segmentation package, designed to help new users install and run this package as well as modify it for their own uses.

 

Setup

 

Note:  This tutorial is intended for unix-based machines only.

 

  1. Unzip the downloaded file and open a new shell and cd into the main directory of the package
  2. To compile, type: make
  3. To run using the GUI: make runGui

 

Other commands in the makefile:

 

 

Note:  After installing, the directory structure inside the main folder must be preserved

 

 

 

Walkthrough

 

This following section is designed to walk a new user through segmenting the test fire image included in the package. 

 

  1. Launch the Java Gui for Multivac (make runGui from the main directory)
  2. On the Multivac Image Segmentation Panel
    1. Click Load Image
    2. Click Generate Image Data to generate the raw image data to be sent to Multivac.  Note:  This step can take a while depending how many Gaussian Iterations there are.  This step does all of the image preprocessing before Multivac actually segments the image. The terminal output should keep the user posted on when the preprocessing is done.
    3. Click an outline around the fire on image – or if you are using the test.jpg simply click read curve from file

                                               i.     If you mess up you can Delete Last Point or Delete Curve

    1. Click Write Curve on Screen as File
  1. On the Multivac Controls Panel
    1. Click Write and Run to write this configuration file to disk and run Multivac using it.  Note:  This step can take a few minutes.  The terminal output should keep the user posted on when Multivac is done.
  2. On the Multivac Image Segmentation Panel
    1. Click Generate Final Image to display the segmentation
  3. To save the curves that define the segmentation, the final image, and the configuration file Click Backup Last Run on the Multivac Controls Panel.  This will save the files associated with the last run, in the Previous Output folder in a directory with the name of the current date and time.

 

Code Design

 

Below is a picture showing the basic structure of the different parts of this package.

 

 

Here is a basic explanation of the different options of the program:

 

                                               i.     Working Directory  -- This is the main install directory of the package, when the GUI is launched the program should auto-detect where you have installed the package.  This parameter should not have to be changed unless it has been changed by reading in another configuration file.

                                             ii.     Parameter File Name – The name for the parameter file, which will be written in the working directory and fed into Multivac.

                                            iii.     Epsilon – Controls the coarseness of the segmentation.  As epsilon gets larger (e.g. greater than 0.02) the time step needs to be reduced in order to prevent computational instability errors.

                                            iv.     Boost – Controls how large a step the speed function takes at each level.  This is also related to the time step

                                             v.     slowdown – Controls how much dark values in the image data slow down the curve as it pushes against it

                                            vi.     Gaussian Iterations – The number of iterations of smoothing of the initial image in the preprocessing stage

                                          vii.     Final Time – How long the simulation runs for

                                         viii.     Time Step – Controls accuracy and computation time

                                            ix.     Grid Size – The size of the image you are working with.  Note:  Currently only supports square images

                                             x.     Tube Semi Width – Controls buffer room for detecting instabilities

                                            xi.     Number of Curves – The number of intermediate curves shown in blue

                                               i.     Image Name – The name of the image relative to the working directory to be segmented

                                             ii.     Image Data Filename – The name of the image data file to be passed to Multivac

                                            iii.     Initial Curve File – The initial curve from which Multivac starts

 

Some Notes on Extensibility

                 

This package has been designed to run on any unix-based machine.

 

á      Dependencies

o      Able to use makefiles, and shell scripts

o      Python

o      Gnuplot

o      Java

o      C++ compiler compliant with the  ANSI/ISO/IEC C++ standard (1998)

 

á      Note:  The only limitation for porting this code to a Windows system is replacing a few of the shell scripts and makefiles.  All of the major code for this package is cross-platform already.

 

á      This code is built around the Multivac level sets code.  For more information about using Multivac, see the Multivac documentation.

 

Known Issues