Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

locator.h

Go to the documentation of this file.
00001 #ifndef __LOCATOR_TAG
00002 #define __LOCATOR_TAG
00003 
00004 #include "locator_defines.h"
00005 #include "frame.h"
00006 #include "annie/annie.h"
00007 
00009 #define VERBOSE false
00010 
00013 #define INPUT_NODES 345
00014 
00018 #define ITERATIONS 500
00019 
00021 #define LEARNING_RATE 0.25
00022 
00023 #define MOMENTUM 0.15
00024 
00029 #define OK_ERROR 0.015
00030 
00033 #define TRUE_OUTPUT 0.95
00034 
00036 #define FALSE_OUTPUT 0.05
00037 
00040 #define CUT_OFF ((TRUE_OUTPUT + FALSE_OUTPUT)/2.0)
00041 
00044 #define MAX_OK_ERROR ((TRUE_OUTPUT - CUT_OFF) - .05)
00045 
00050 #define MAX_COUNTER_PER_CYCLE 500
00051 
00053 #define MAX_FACES_PER_CYCLE 100
00054 
00056 #define FACE_DISTANCE 6
00057 
00060 #define FACE_MIN 15
00061 
00065 class face_locator_network
00066 {
00067 public:
00070   face_locator_network(int hidden);
00071 
00074   face_locator_network(string FileName);
00075 
00076   ~face_locator_network();
00081   bool save(string FileName);
00082 
00087   float run_net(annie::VECTOR & data);
00088 
00093   float run_net(double * data);
00094   
00095 private:
00097   annie::TwoLayerNetwork * net;
00098   bool is_set;
00099 };
00100 
00108 annie::TrainingSet * make_face_training_set(string FaceDir, string fileName);
00109 
00110 
00124 bool training_set_guess(string FaceDir, string NonFaceDir, string fileName, int num_images);
00125 
00126 bool add_non_training_set(string NonFaceDir, annie::TrainingSet & T );
00127 void newTrain(annie::TrainingSet & ts,unsigned int hidden);
00128 
00131 void trainNN(string NonFaceDir,  annie::TrainingSet & all, annie::TrainingSet & ts, string fileName, int hidden);
00132 
00135 class locator_filter: public Filter
00136 {
00137 public:
00142   locator_filter(string FileName);
00143   
00145   locator_filter();
00146 
00148   virtual ~locator_filter();
00149   
00150   
00160   virtual bool filter_frame(FrameClass & frame);
00161   virtual void property_changed();
00162   
00163 private:
00164   string filename;
00165   face_locator_network * net;
00166   bool set;
00167 };
00168 
00169 
00174 extern unsigned int start_stop[INPUT_HEIGHT*2];
00175 
00176 #ifdef DYNAMIC_LINK
00177 extern "C"{
00178   Filter * create_instance();
00179 #ifndef NO_GUI
00180   GdkPixmap *create_icon(GtkWidget *drawing_area);
00181 #endif
00182 }
00183 #endif
00184 
00185 #endif

Generated on Wed Apr 23 10:42:33 2003 for BioFilter by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002