123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- /**
- * @file computeLocalFeatures.cpp
- * @brief compute some features for training and testing (separate specifications possible)
- * @author Alexander Freytag
- * @date 14-06-2013
- */
- //STL
- #include <iostream>
- #include <limits>
- //core -- basic stuff
- #include <core/basics/Config.h>
- #include <core/basics/ResourceStatistics.h>
- #include <core/basics/Timer.h>
- #include <core/image/Convert.h>
- #include <core/vector/VectorT.h>
- //vislearning -- basic stuff
- #include <vislearning/baselib/Globals.h>
- #include <vislearning/baselib/ICETools.h>
- #include <vislearning/cbaselib/MultiDataset.h>
- #include <vislearning/cbaselib/Example.h>
- #include <vislearning/cbaselib/ClassificationResult.h>
- #include <vislearning/cbaselib/ClassificationResults.h>
- // vislearning -- local features
- #include <vislearning/features/localfeatures/GenericLFSelection.h>
- //
- using namespace std;
- using namespace NICE;
- using namespace OBJREC;
- /**
- a complete BoW pipeline
-
- possibly, we can make use of objrec/progs/testClassifier.cpp
- */
- int main( int argc, char **argv )
- {
- #ifndef __clang__
- #ifndef __llvm__
- std::set_terminate( __gnu_cxx::__verbose_terminate_handler );
- #endif
- #endif
- NICE::Config * conf = new NICE::Config ( argc, argv );
-
- const std::string resultsfile = conf->gS( "main", "resultsfile", "/tmp/results.txt" );
-
- ResourceStatistics rs;
-
- // ========================================================================
- // TRAINING STEP
- // ========================================================================
- MultiDataset md( conf );
- const LabeledSet *trainFiles = md["train"];
-
- //**********************************************
- //
- // FEATURE EXTRACTION FOR TRAINING IMAGES
- //
- //**********************************************
-
- std::cerr << "FEATURE EXTRACTION FOR TRAINING IMAGES" << std::endl;
-
- OBJREC::LocalFeatureRepresentation * featureExtractor = OBJREC::GenericLFSelection::selectLocalFeatureRep ( conf, "features", OBJREC::GenericLFSelection::TRAINING );
-
-
- //TODO replace the nasty makro by a suitable for-loop to make it omp-ready (parallelization)
- int imgCnt ( 0 );
-
- // the corresponding nasty makro: LOOP_ALL_S( *trainFiles )
- for(LabeledSet::const_iterator classIt = trainFiles->begin() ; classIt != trainFiles->end() ; classIt++)
- {
- for ( std::vector<ImageInfo *>::const_iterator imgIt = classIt->second.begin();
- imgIt != classIt->second.end();
- imgIt++, imgCnt++
- )
- {
- // the corresponding nasty makro: EACH_INFO( classno, info );
- int classno ( classIt->first );
- const ImageInfo imgInfo = *(*imgIt);
-
- std::string filename = imgInfo.img();
-
- NICE::ColorImage img( filename );
-
- //compute features
-
- //variables to store feature information
- NICE::VVector features;
- NICE::VVector positions;
-
- Globals::setCurrentImgFN ( filename );
- featureExtractor->extractFeatures ( img, features, positions );
-
- }
- }
-
-
- // ========================================================================
- // TEST STEP
- // ========================================================================
-
- const LabeledSet *testFiles = md["test"];
- delete featureExtractor;
- featureExtractor = OBJREC::GenericLFSelection::selectLocalFeatureRep ( conf, "features", OBJREC::GenericLFSelection::TESTING );
-
- LOOP_ALL_S( *testFiles )
- {
- EACH_INFO( classno, info );
- std::string filename = info.img();
-
- //**********************************************
- //
- // FEATURE EXTRACTION FOR TEST IMAGES
- //
- //**********************************************
-
- NICE::ColorImage img( filename );
-
- //compute features
-
- //variables to store feature information
- NICE::VVector features;
- NICE::VVector positions;
-
- Globals::setCurrentImgFN ( filename );
- featureExtractor->extractFeatures ( img, features, positions );
- }
-
- return 0;
- }
|