Changeset 113 for foam


Ignore:
Timestamp:
09/09/2009 12:19:44 PM (11 years ago)
Author:
dave
Message:

first pass expression recgn

Location:
foam/trunk
Files:
8 added
8 edited

Legend:

Unmodified
Added
Removed
  • foam/trunk/eigentools/src/main.cpp

    r111 r113  
    4949double scale = 1; 
    5050 
    51 int w=50; 
    52 int h=80; 
    53 //int w=20; 
    54 //int h=30; 
     51//int w=50; 
     52//int h=80; 
     53int w=20; 
     54int h=30; 
    5555 
    5656PCA pca(w*h); 
     
    123123        //FILE *f=fopen("davelight-20x30.pca", "wb"); 
    124124        //pca.Save(f); 
    125         pca = LoadPCA("../no-redist/eigenspaces/spacek-50x80.pca"); 
     125        //pca = LoadPCA("../no-redist/eigenspaces/spacek-50x80.pca"); 
     126        pca = LoadPCA("../no-redist/eigenspaces/yalefaces-expression-20x30.pca"); 
    126127        //PCA subspace = LoadPCA("../data/eigenspaces/davelight-spacek-20x30.pca"); 
    127128                 
  • foam/trunk/faceclassifier/src/App.cpp

    r112 r113  
    3232App::App(const string &filename) : 
    3333m_Capture(NULL), 
    34 m_Cascade(NULL), 
    35 m_Storage(NULL), 
    3634m_Classifier(NULL), 
    3735m_FaceBank(NULL), 
     
    4341{ 
    4442        m_CtrlPort.open("/faceident-ctrl");  
    45         m_Cascade = (CvHaarClassifierCascade*)cvLoad("haarcascade_frontalface_alt.xml", 0, 0, 0); 
    46         assert(m_Cascade); 
    47         m_Storage = cvCreateMemStorage(0); 
    4843         
    4944        if (filename=="") 
     
    124119void App::Update(Image &camera) 
    125120{        
    126         cvClearMemStorage(m_Storage); 
    127  
    128         int flags=0; 
    129         if (m_Learn) flags|=CV_HAAR_FIND_BIGGEST_OBJECT; 
    130  
    131         CvSeq* faces = cvHaarDetectObjects( camera.m_Image, m_Cascade, m_Storage, 
    132                         1.1, 2, flags 
    133                         //|CV_HAAR_FIND_BIGGEST_OBJECT 
    134                         //|CV_HAAR_DO_ROUGH_SEARCH 
    135                         //|CV_HAAR_DO_CANNY_PRUNING 
    136                         //|CV_HAAR_SCALE_IMAGE 
    137                         , 
    138                         cvSize(30, 30) ); 
    139                  
    140121        /////////////////////////////////// 
    141122        // dispatch from input 
     
    159140        } 
    160141                         
    161         for(int i = 0; i < (faces ? faces->total : 0); i++ ) 
    162         { 
    163                 CvRect* r = (CvRect*)cvGetSeqElem( faces, i ); 
    164                 CvMat small_img_roi; 
    165  
     142        vector<Rect> rects = m_FaceFinder.Find(camera,m_Learn); 
     143        for(vector<Rect>::iterator i = rects.begin(); i!=rects.end(); i++ ) 
     144        { 
    166145                unsigned int ID=999; 
    167146                int imagenum=-1; 
    168147                float confidence=0; 
    169148                // get the face area as a sub image 
    170                 Image face = camera.SubImage(r->x, r->y, r->width, r->height); 
     149                Image face = camera.SubImage(*i); 
    171150                 
    172151                //face.SubMean(); 
     
    198177                        } 
    199178                         
    200                         cvPutText(camera.m_Image, s, cvPoint(r->x,r->y+r->height-5), &m_LargeFont, colors[ID]); 
     179                        cvPutText(camera.m_Image, s, cvPoint(i->x,i->y+i->h-5), &m_LargeFont, colors[ID]); 
    201180 
    202181                        if (!m_Learn) 
     
    206185                } 
    207186 
    208                 cvRectangle(camera.m_Image, cvPoint(r->x,r->y), cvPoint(r->x+r->width,r->y+r->height), colors[0]); 
     187                cvRectangle(camera.m_Image, cvPoint(i->x,i->y), cvPoint(i->x+i->w,i->y+i->h), colors[0]); 
    209188        } 
    210189 
  • foam/trunk/faceclassifier/src/App.h

    r111 r113  
    2020#include <string> 
    2121 
     22#include "FaceFinder.h" 
    2223#include "FaceBank.h" 
    2324#include "SceneState.h" 
     
    3940         
    4041        CvCapture* m_Capture; 
    41         CvHaarClassifierCascade* m_Cascade; 
    42         CvMemStorage* m_Storage; 
    4342         
     43        FaceFinder m_FaceFinder; 
    4444        Classifier *m_Classifier; 
    4545        FaceBank *m_FaceBank; 
  • foam/trunk/python/build-pca.py

    r112 r113  
    11#!/usr/bin/env python 
    22 
    3 import glob 
     3import glob,string 
    44from vision import * 
     5from faces import * 
    56 
    6 imagepath = "../no-redist/spacek-large/*.png" 
    7 images = glob.glob(imagepath) 
    8 w = 20 
    9 h = 30 
    10 pca = PCA(w*h) 
     7#get_faces("../no-redist/yalefaces/orig/*.png", "../no-redist/yalefaces/processed/") 
     8# calculate("../no-redist/spacek-large/*.png",20,30,"test.pca") 
    119 
    12 for image in images: 
    13         im = Image(image) 
    14         v = im.Scale(w,h).RGB2GRAY().ToFloatVector() 
    15         pca.AddFeature(v) 
    16  
    17 pca.Calculate() 
    18  
    19 f = OpenFile("test.pca", "wb") 
    20 pca.Save(f) 
    21 CloseFile(f) 
     10build_pca("../no-redist/yalefaces/processed/*.png",20,30,"yalefaces-expression-20x30.pca") 
  • foam/trunk/vision/Makefile

    r112 r113  
    1010        src/SVD.cpp\ 
    1111        src/FileTools.cpp\ 
     12        src/FaceFinder.cpp\ 
     13        src/Geometry.cpp\ 
    1214        src/tinyxml.cpp\ 
    1315        src/tinyxmlerror.cpp\ 
  • foam/trunk/vision/src/Image.cpp

    r112 r113  
    3434} 
    3535 
    36 Image::Image(char *filename) 
    37 { 
    38         m_Image=cvLoadImage(filename); 
    39         if (m_Image==NULL) cerr<<"Could not open image: "<<filename<<endl; 
    40         assert(m_Image); 
    41 } 
    42  
    4336Image::Image(const Image &other) 
    4437{ 
     
    178171        cvReleaseImage(&m_Image); 
    179172        m_Image=newimage; 
     173} 
     174 
     175Image Image::SubImage(Rect r) 
     176{ 
     177        return SubImage(r.x, r.y, r.w, r.h); 
    180178} 
    181179 
     
    410408        return v; 
    411409} 
     410 
     411void Image::Save(const string &filename) 
     412{ 
     413        cvSaveImage(filename.c_str(),m_Image); 
     414} 
     415 
  • foam/trunk/vision/src/Image.h

    r112 r113  
    1717#include "cv.h" 
    1818#include "Vector.h" 
     19#include "Geometry.h" 
    1920#include <string> 
    2021 
     
    2829        Image(int w, int h, int d, int c); 
    2930        Image(const std::string &filename); 
    30         Image(char *filename); 
    3131        Image(const Image &other); 
    3232        Image(const IplImage *other); // copies the given image 
     
    4545        Image Scale(int w, int h); 
    4646        Image SubImage(int x, int y, int w, int h); 
     47        Image SubImage(Rect r); 
    4748 
    4849        // Paste an image into this one 
     
    6970        unsigned int NumElements() { return m_Image->width*m_Image->height*m_Image->nChannels; } 
    7071         
     72        void Save(const std::string &filename); 
     73         
    7174        IplImage *m_Image; 
    7275         
  • foam/trunk/vision/src/vision.i

    r112 r113  
    1010#include "SVD.h" 
    1111#include "FileTools.h" 
     12#include "Geometry.h" 
     13#include "FaceFinder.h" 
    1214%} 
    1315 
    14  
     16%include "stl.i" 
     17%include "typemaps.i" 
     18%include "std_vector.i" 
    1519%include "PCA.h" 
    1620%include "Classifier.h" 
     
    2226%include "SVD.h" 
    2327%include "FileTools.h" 
     28%include "Geometry.h" 
     29%include "FaceFinder.h" 
    2430 
    2531%template(FloatVector) Vector<float>; 
    2632%template(FloatMatrix) Matrix<float>; 
     33 
     34namespace std 
     35{ 
     36  %template(RectVector) vector<Rect>; 
     37} 
    2738 
    2839%extend Vector<float> { 
     
    4960 
    5061 
    51  
Note: See TracChangeset for help on using the changeset viewer.