README.dxy

00001 /** \dir src/CINNIC
00002 
00003     \brief Contour integration classes and programs
00004 
00005     This is an over view and documentation of the CINNIC classes and
00006     files.
00007 
00008     CINNICtest.C - This is the standard entry binary exec for
00009     CINNIC. it makes calles to create the 4D kernal and then can
00010     display the kernal properties if no command line is given or it
00011     can call the full CINNIC alg. with proper command line args.
00012 
00013              example: CINNICtest input.pgm output_files configfile
00014              where input.pgm is a PGM file, ouput_files is a prefix for a
00015              file and its directory for all output files and configFile
00016              is a valid config file for CINNIC (see) contour.conf
00017 
00018     cascadeHold.H - Holder for cascade energys. Is most likely depricated
00019 
00020     readConfig.H/.C - A generic class for opening and parsing config files
00021 
00022     CINNIC.H/.C - These are entry level methods into CINNIC. For
00023     instance you can use this to view the neuron template
00024     (Kernel). However, you will more than likely call RunSimpleIMage
00025     which is a call to the main CINNIC loop. The image is
00026     rescaled,filtered and in general pre-processed.
00027 
00028             PreImage - is responsible for setting group sizes.
00029 
00030             runImage - is the inner most loop of this class and calls
00031             contourRunMain which does the CINNIC neural
00032             implementations and processes results and writes most (but
00033             not all) of the results to disk. Results are writen as
00034             both image (e.g %s%s.max.out.%d.%d.%d.%d) and as a
00035             tab-delim file with more precise values
00036             (%s%s.table.out.txt) the later is used for precise
00037             analysis for instance Polat and Sagi 1993
00038             
00039 
00040     contourRun.H/.C - This is the meat of the CINNIC package. This is
00041     where the neurons operate on the orientation filtered
00042     images. Group values are computered here as will as the fast
00043     plasticity term. Much old code still exists for doing cascade in
00044     CINNIC that is no longer used. It will not be discused. The flow
00045     here is dedicated to iterating over the kernals and orientation
00046     filtered images. The iterations are handled outside on CINNIC.H/.C
00047     (i.e. methods this class will be called once for each
00048     iteration). Many small methods exist here for handeling the
00049     saliency map as well as sigmoidal functions and the various
00050     storage matricses used in testing.
00051 
00052                 contourRunMain - Mainly resets verious data structures
00053                 at the first iteration then calls runImageSigmoid
00054 
00055                 runImageSigmoid - This is the out loop for the 6 layer
00056                 psuedo-convolution. It also controls the group supression
00057                 modifier. Here the change in a groups potential is detected 
00058                 from one iteration to the next. This adjusts the group 
00059                 supression. It next calls iterateConvolve which manages the
00060                 inner loop for the CINNIC pseudo convolution.
00061 
00062                 iterateConvolve - Simply decides if cascade should be used
00063                 calls convolveSimple which is the inner loop
00064 
00065                 convolveSimple - Is the inner loop. It manages the fast 
00066                 plasticity term for this neuron. This loop is i,j,k,l
00067                 while the outer loop is alpha,beta. Optimizations and
00068                 tests are used here to skip near zero values. THE TRICK
00069                 here is that the result is stored in the other neuron
00070                 (I had my reasons for doing it this way) that is each simple 
00071                 interaction is stored in the neuron that is in defined in
00072                 the outer loop. This means that the result is put into
00073                 beta,k,l while alpha,i,j is treated on the fly. beta,k,l and
00074                 alpha,i,j are reversed in the paper from what they are called 
00075                 here.           
00076 
00077                 All potential is stored in the NeuronMatrix which has the
00078                 form matrix[iteration][beta][k][l]. This is of type
00079                 ContourNeuronProp.
00080 
00081     contourNeuronProp.H - This is a basic class for holding the
00082     propertie of each neuron. In essence it holds the potential of
00083     each neuron. It was initially designed so that cascade values
00084     could be tracked. Since it is imbedded in the code it has stayed
00085     for a little while. It should be replaced at some point by a more
00086     efficent data structure. Important methods are getCharge and
00087     Charge.
00088 
00089     contourNeuron.H/.C - This creates and then stores the generic
00090     neuron template kernal in PropHold. This has a variety of crazy
00091     experimental calculations that are used in the creation of the
00092     CINNIC kernel. note that values of PropHold are stored in the 4D
00093     neural matrix called FourDNeuralMap[i][j][k][l] where i and j are
00094     the alpha/beta angles and k and l are the coords in each kernel
00095     slice.
00096 
00097     -----
00098 
00099     Other semi-related classes:
00100 
00101     CINNICstats - is a basic statistical anal. package.
00102 
00103     CINNICstatsRun - executes some states used by CINNICstats
00104 
00105     CINNICanova - an analysis of variance package
00106 
00107     for dependency graphs:
00108     rankdir: TB
00109 */
00110 
00111 // $HeadURL: svn://isvn.usc.edu/software/invt/trunk/saliency/src/CINNIC/README.dxy $
00112 // $Id: README.dxy 5749 2005-10-19 08:15:48Z itti $
00113 
00114 // //////////////////////////////////////////////////////////////////// //
00115 // The iLab Neuromorphic Vision C++ Toolkit - Copyright (C) 2001 by the //
00116 // University of Southern California (USC) and the iLab at USC.         //
00117 // See http://iLab.usc.edu for information about this project.          //
00118 // //////////////////////////////////////////////////////////////////// //
00119 // Major portions of the iLab Neuromorphic Vision Toolkit are protected //
00120 // under the U.S. patent ``Computation of Intrinsic Perceptual Saliency //
00121 // in Visual Environments, and Applications'' by Christof Koch and      //
00122 // Laurent Itti, California Institute of Technology, 2001 (patent       //
00123 // pending; application number 09/912,225 filed July 23, 2001; see      //
00124 // http://pair.uspto.gov/cgi-bin/final/home.pl for current status).     //
00125 // //////////////////////////////////////////////////////////////////// //
00126 // This file is part of the iLab Neuromorphic Vision C++ Toolkit.       //
00127 //                                                                      //
00128 // The iLab Neuromorphic Vision C++ Toolkit is free software; you can   //
00129 // redistribute it and/or modify it under the terms of the GNU General  //
00130 // Public License as published by the Free Software Foundation; either  //
00131 // version 2 of the License, or (at your option) any later version.     //
00132 //                                                                      //
00133 // The iLab Neuromorphic Vision C++ Toolkit is distributed in the hope  //
00134 // that it will be useful, but WITHOUT ANY WARRANTY; without even the   //
00135 // implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR      //
00136 // PURPOSE.  See the GNU General Public License for more details.       //
00137 //                                                                      //
00138 // You should have received a copy of the GNU General Public License    //
00139 // along with the iLab Neuromorphic Vision C++ Toolkit; if not, write   //
00140 // to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,   //
00141 // Boston, MA 02111-1307 USA.                                           //
00142 // //////////////////////////////////////////////////////////////////// //
Generated on Sun May 8 08:40:07 2011 for iLab Neuromorphic Vision Toolkit by  doxygen 1.6.3