Ignore:
Timestamp:
08/06/2009 11:30:26 AM (10 years ago)
Author:
dave
Message:

benchmarking in faceident

File:
1 edited

Legend:

Unmodified
Added
Removed
  • foam/trunk/faceclassifier/src/App.cpp

    r96 r111  
    2424using namespace std; 
    2525 
    26 //int w=50; 
    27 //int h=80; 
    28  
    29 int w=20; 
    30 int h=30; 
     26int w=50; 
     27int h=80; 
     28 
     29//int w=20; 
     30//int h=30; 
    3131 
    3232App::App(const string &filename) : 
     
    5959         
    6060        PCA pca(w*h); 
    61         //FILE *f=fopen("../data/eigenspaces/spacek-50x80.pca", "rb"); 
    62         FILE *f=fopen("../data/eigenspaces/spacek-20x30.pca", "rb"); 
     61        FILE *f=fopen("../no-redist/eigenspaces/spacek-50x80.pca", "rb"); 
     62        //FILE *f=fopen("../data/eigenspaces/spacek-20x30.pca", "rb"); 
    6363        pca.Load(f); 
    6464        fclose(f); 
    65         pca.Compress(20,300); 
     65        pca.Compress(10,500); 
    6666         
    6767        m_Classifier = new PCAClassifier(pca); 
    6868        m_FaceBank = new FaceBank(w,h,0.4,0.1,m_Classifier); 
    6969        cvInitFont( &m_Font, CV_FONT_HERSHEY_PLAIN, 0.5, 0.5, 0, 1, CV_AA ); 
     70        cvInitFont( &m_LargeFont, CV_FONT_HERSHEY_PLAIN, 25, 25, 0, 10, CV_AA ); 
    7071     
    7172        cvNamedWindow( "face classifier", 1 ); 
    7273         
    73         Benchmark(); 
     74        Benchmark("yale"); 
    7475} 
    7576 
     
    8081static CvScalar colors[] = 
    8182    { 
    82         {{255,255,255}}, 
    83         {{0,0,0}}, 
     83        {{0,0,255}}, 
    8484        {{0,128,255}}, 
    8585        {{0,255,255}}, 
     
    8888        {{255,255,0}}, 
    8989        {{255,0,0}}, 
    90         {{255,0,255}} 
     90        {{255,0,255}}, 
    9191    }; 
    9292 
     
    191191                        if (d!=m_DebugNames.end()) 
    192192                        { 
    193                                 sprintf(s,"%s %0.2f",d->second.c_str(),confidence); 
     193                                sprintf(s,"%s",d->second.c_str()); 
    194194                        } 
    195195                        else 
    196196                        { 
    197                                 sprintf(s,"%d %0.2f",ID,confidence); 
     197                                sprintf(s,"%d",ID); 
    198198                        } 
    199199                         
    200                         cvPutText(camera.m_Image, s, cvPoint(r->x,r->y+r->height-5), &m_Font, colors[0]); 
     200                        cvPutText(camera.m_Image, s, cvPoint(r->x,r->y+r->height-5), &m_LargeFont, colors[ID]); 
    201201 
    202202                        if (!m_Learn) 
     
    218218                { 
    219219                        Vector<float> p = c->GetGroupMean(m_FaceNum); 
    220                         cerr<<p.Magnitude()<<endl; 
    221220                        Vector<float> r = c->GetPCA().Synth(p); 
    222221                        camera.Blit(Image(w,h,1,r),0,100); 
     
    234233} 
    235234 
    236 void App::Benchmark() 
     235void App::Benchmark(const string &test) 
    237236{ 
    238237        cerr<<"Running benchmark test"<<endl; 
    239         vector<string> people=Glob("../data/benchmark/trek/training/*"); 
     238        string path(string("../data/benchmark/")+test); 
     239        vector<string> people=Glob(path+string("/training/*")); 
    240240        int ID=0; 
    241241        m_Learn=true; 
     
    251251                        Image image(*ii); 
    252252                        Update(image); 
    253                         string fn=*ii+"-out.png"; 
    254                         cvSaveImage(fn.c_str(),image.m_Image); 
     253                        //string fn=*ii+"-out.png"; 
     254                        //cvSaveImage(fn.c_str(),image.m_Image); 
    255255                } 
    256256                ID++; 
     
    259259        m_Learn=false; 
    260260         
    261         vector<string> images=Glob("../data/benchmark/trek/control/*.jpg"); 
     261        /*vector<string> images=Glob(path+string("/control/*.jpg")); 
    262262        for(vector<string>::iterator ti=images.begin(); ti!=images.end(); ++ti) 
    263263        {        
     
    267267                string fn=*ti+"-out.png"; 
    268268                cvSaveImage(fn.c_str(),test.m_Image); 
    269         } 
    270  
    271         images=Glob("../data/benchmark/trek/test/*.jpg"); 
     269        }*/ 
     270 
     271        int imgw=1024; 
     272        int imgh=768; 
     273        Image out(imgw,imgh,8,3); 
     274        int across=13; 
     275        int down=13; 
     276        int w=imgw/across; 
     277        int h=imgh/down; 
     278 
     279        int i=0; 
     280        vector<string> images=Glob(path+string("/test/*.jpg")); 
    272281        for(vector<string>::iterator ti=images.begin(); ti!=images.end(); ++ti) 
    273282        {        
     
    275284                Image test(*ti);         
    276285                Update(test); 
    277                 string fn=*ti+"-out.png"; 
    278                 cvSaveImage(fn.c_str(),test.m_Image); 
    279         } 
    280 } 
     286                int x=i%across; 
     287                int y=i/across; 
     288                out.Blit(test.Scale(w,h),x*w,y*h); 
     289                cerr<<x*w<<" "<<y*h<<endl; 
     290                i++; 
     291        } 
     292         
     293        char fn[256]; 
     294        snprintf(fn,256,"%s/out.jpg",path.c_str()); 
     295        cvSaveImage(fn,out.m_Image); 
     296} 
Note: See TracChangeset for help on using the changeset viewer.