123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- /**
- * @file laplaceTests.cpp
- * @brief Laplace Approximation Tests
- * @author Erik Rodner
- * @date 02/17/2010
- */
- #include "core/imagedisplay/ImageDisplay.h"
- #include "core/basics/Config.h"
- #include "vislearning/baselib/ICETools.h"
- #include "vislearning/cbaselib/LabeledSet.h"
- #include "vislearning/classifier/kernelclassifier/LikelihoodFunction.h"
- #include "vislearning/classifier/kernelclassifier/LaplaceApproximation.h"
- #include "vislearning/classifier/kernelclassifier/KCGPLaplace.h"
- #include "vislearning/math/kernels/KernelData.h"
- #include "vislearning/math/kernels/Kernel.h"
- #include "vislearning/math/kernels/KernelRBF.h"
- #include "vislearning/math/kernels/KernelExp.h"
- using namespace std;
- using namespace OBJREC;
- using namespace NICE;
- /**
- Laplace Approximation Tests
- */
- int main (int argc, char **argv)
- {
- #ifdef __GLIBCXX__
- std::set_terminate(__gnu_cxx::__verbose_terminate_handler);
- #endif
- Config conf ( argc, argv );
- LabeledSetVector train;
- train.read ( conf.gS("main", "set" ), LabeledSetVector::FILEFORMAT_NOINDEX );
- LOOP_ALL_NONCONST ( train )
- {
- EACH_NONCONST (classno, v );
- v[0] /= 300.0;
- v[1] /= 300.0;
- }
- double rbf_sigma = conf.gD("main", "rbf_sigma", -2.0 );
- KernelRBF kernelFunction ( rbf_sigma, 0.0 );
- //KernelExp kernelFunction ( rbf_sigma, 0.0, 0.0 );
- KernelClassifier *classifier = new KCGPLaplace ( &conf, &kernelFunction );
- classifier->teach( train );
- FloatImage predictions ( 100, 100 );
- for ( uint i = 0 ; i < (uint)predictions.height(); i++ )
- for ( uint j = 0 ; j < (uint)predictions.width(); j++ )
- {
- double yy = i/(double)predictions.height();
- double xx = j/(double)predictions.width();
- Vector vec (2);
- vec[0] = xx;
- vec[1] = yy;
- if ( train.dimension() == 3 )
- vec.append(1.0);
- ClassificationResult r = classifier->classify ( vec );
- predictions.setPixel(j,i,r.scores[1]);
- }
- ColorImage img;
- ICETools::convertToRGB ( predictions, img );
- LOOP_ALL(train)
- {
- EACH(classno,vec);
- int xx = vec[0]*predictions.width();
- int yy = vec[1]*predictions.height();
- img.setPixel(xx,yy,0, 255*classno );
- img.setPixel(xx,yy,1, 255*classno );
- img.setPixel(xx,yy,2, 255*classno );
- }
- showImage ( img );
- return 0;
- }
|