00001
00002 #ifndef clsfy_adaboost_trainer_h_
00003 #define clsfy_adaboost_trainer_h_
00004 #ifdef VCL_NEEDS_PRAGMA_INTERFACE
00005 #pragma interface
00006 #endif
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #include <vcl_string.h>
00020 #include <vsl/vsl_binary_io.h>
00021 #include <clsfy/clsfy_simple_adaboost.h>
00022 #include <clsfy/clsfy_builder_1d.h>
00023 #include <mbl/mbl_data_wrapper.h>
00024
00025
00026
00027
00028
00029 class clsfy_adaboost_trainer
00030 {
00031 public:
00032
00033
00034 clsfy_adaboost_trainer();
00035
00036
00037 virtual ~clsfy_adaboost_trainer();
00038
00039
00040
00041
00042 void build_strong_classifier(clsfy_simple_adaboost& strong_classifier,
00043 int max_n_clfrs,
00044 clsfy_builder_1d& builder,
00045 mbl_data_wrapper<vnl_vector<double> >& egs0,
00046 mbl_data_wrapper<vnl_vector<double> >& egs1);
00047
00048
00049 void clsfy_update_weights_weak(vnl_vector<double> &wts,
00050 const vnl_vector<double>& data,
00051 clsfy_classifier_1d& classifier,
00052 int class_number,
00053 double beta);
00054
00055
00056 void clsfy_get_elements(vnl_vector<double>& v,
00057 mbl_data_wrapper<vnl_vector<double> >& data, int j);
00058
00059
00060 short version_no() const;
00061
00062
00063 vcl_string is_a() const;
00064
00065
00066 virtual bool is_class(vcl_string const& s) const;
00067
00068
00069 void print_summary(vcl_ostream& os) const;
00070
00071
00072 void b_write(vsl_b_ostream& bfs) const;
00073
00074
00075 void b_read(vsl_b_istream& bfs);
00076
00077 protected:
00078 #if 0
00079
00080
00081
00082
00083
00084
00085
00086
00087 clsfy_adaboost_trainer( const clsfy_adaboost_trainer& b );
00088
00089
00090 clsfy_adaboost_trainer& operator=( const clsfy_adaboost_trainer& b );
00091 #endif
00092 };
00093
00094
00095
00096
00097 void vsl_b_write(vsl_b_ostream& bfs, const clsfy_adaboost_trainer& b);
00098
00099
00100 void vsl_b_read(vsl_b_istream& bfs, clsfy_adaboost_trainer& b);
00101
00102
00103 vcl_ostream& operator<<(vcl_ostream& os,const clsfy_adaboost_trainer& b);
00104
00105
00106 void vsl_print_summary(vcl_ostream& os,const clsfy_adaboost_trainer& b);
00107
00108 #endif // clsfy_adaboost_trainer_h_