Changeset 27


Ignore:
Timestamp:
03/20/2009 10:51:05 AM (11 years ago)
Author:
dave
Message:

simple yarp interface added

Location:
foam/trunk/simple-faceident
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • foam/trunk/simple-faceident/Makefile

    r14 r27  
    22CV_INCLUDE_PATH = /usr/local/include/opencv 
    33CV_LINK_PATH = /usr/local/lib 
    4 LIBS = -lcv -lcxcore -lhighgui 
    5 CCFLAGS = -I$(CV_INCLUDE_PATH) -L$(CV_LINK_PATH) -ggdb -Wall -O3 -ffast-math -Wno-unused 
     4ACE_LINK_PATH = /usr/lib 
     5LIBS = -lcv -lcxcore -lhighgui -lYARP_dev -lYARP_sig -lYARP_OS -lACE 
     6CCFLAGS = -ggdb -Wall -O3 -ffast-math -Wno-unused -fPIC 
     7CCCOMMANDS = -I$(CV_INCLUDE_PATH) -L$(CV_LINK_PATH) -L$(ACE_LINK_PATH) $(CCFLAGS)  
    68 
    79all: simple-faceident 
    810 
    911simple-faceident: main.o FaceBank.o ImageUtils.o 
    10         $(CC) $(CCFLAGS) $(LIBS) main.o FaceBank.o ImageUtils.o -o simple-faceident 
     12        $(CC) $(CCCOMMANDS) main.o FaceBank.o ImageUtils.o -rdynamic -o simple-faceident $(LIBS) 
    1113 
    1214main.o: src/main.cpp 
    13         $(CC) $(CCFLAGS) -c src/main.cpp 
     15        $(CC) $(CCCOMMANDS) -c src/main.cpp 
    1416 
    1517FaceBank.o: src/FaceBank.cpp 
    16         $(CC) $(CCFLAGS) -c src/FaceBank.cpp 
     18        $(CC) $(CCCOMMANDS) -c src/FaceBank.cpp 
    1719 
    1820ImageUtils.o: src/ImageUtils.cpp 
    19         $(CC) $(CCFLAGS) -c src/ImageUtils.cpp 
     21        $(CC) $(CCCOMMANDS) -c src/ImageUtils.cpp 
    2022 
    2123clean: 
  • foam/trunk/simple-faceident/README

    r14 r27  
    22-------------------------- 
    33 
    4 Uses OpenCV's face finder to record and detect identity. 
     4Uses OpenCV's face finder to record and detect identity. Sends bottles over  
     5yarp on port /faceident containing the ID and confidence value. 
    56 
    67Use the number keys to train the system against different individuals. The idea  
  • foam/trunk/simple-faceident/src/main.cpp

    r15 r27  
    2929#include <time.h> 
    3030#include <ctype.h> 
     31#include <yarp/os/all.h> 
    3132 
    3233#include "FaceBank.h" 
     
    3435 
    3536using namespace std; 
     37using namespace yarp::os; 
    3638 
    3739#ifdef _EiC 
     
    5658////////////////////////////////////////////////////////// 
    5759// These are the tweakable bits - see comments in FaceBank.h 
    58  
    5960FaceBank facebank(30, 40, 0.15);  
    60  
    61 // number of frames to detect new faces for 
    62 int calibrate_frames = 200; 
    6361 
    6462// show all faces currently detected  
    6563#define SHOW_FACES 
    66  
    6764//#define SAVE_FRAMES 
    6865 
     
    7168int facenum=0; 
    7269int framenum=0; 
     70 
     71Network YarpNetwork; 
     72Port YarpPort; 
    7373 
    7474////////////////////////////////////////////////////////// 
     
    112112            input_name = argv[i]; 
    113113    } 
     114 
     115        ///////////////////////////////// 
     116        // yarp init 
     117         
     118        YarpPort.open("/faceident"); 
     119         
     120        ///////////////////////////////// 
    114121 
    115122    cascade = (CvHaarClassifierCascade*)cvLoad( cascade_name, 0, 0, 0 ); 
     
    244251        CvSeq* faces = cvHaarDetectObjects( small_img, cascade, storage, 
    245252                                            1.1, 2, 0 
    246                                             //|CV_HAAR_FIND_BIGGEST_OBJECT 
     253                                            |CV_HAAR_FIND_BIGGEST_OBJECT 
    247254                                            //|CV_HAAR_DO_ROUGH_SEARCH 
    248                                             |CV_HAAR_DO_CANNY_PRUNING 
     255                                            //|CV_HAAR_DO_CANNY_PRUNING 
    249256                                            //|CV_HAAR_SCALE_IMAGE 
    250257                                            , 
     
    293300                         
    294301                        unsigned int ID=999; 
    295                         float error=0; 
     302                        float confidence=0; 
    296303                        // get the face area as a sub image 
    297304                        IplImage *face = SubImage(img, *r); 
     
    299306                        if (learn) 
    300307                        { 
    301                                 error=facebank.Suggest(face,facenum); 
     308                                confidence=facebank.Suggest(face,facenum); 
    302309                                ID=facenum; 
    303310                        } 
    304311                        else 
    305312                        {        
    306                                 error=facebank.Identify(face,ID); 
     313                                confidence=facebank.Identify(face,ID); 
    307314                        } 
    308315                         
     
    314321                        { 
    315322                                char s[32]; 
    316                                 sprintf(s,"%d %0.2f",ID,error); 
     323                                sprintf(s,"%d %0.2f",ID,confidence); 
    317324                                cvPutText(img, s, cvPoint(r->x,r->y+25), &font, color); 
    318325                                int x=(facebank.GetFaceWidth()+1)*ID; 
     
    320327                                cvLine(img, cvPoint(r->x+r->width/2,r->y+r->height/2), 
    321328                                        cvPoint(x+facebank.GetFaceWidth()/2,y), color); 
     329 
     330                                ///////////////////// 
     331                                // YARP send 
     332                                 
     333                                Bottle b;   
     334                                b.clear(); 
     335                                b.add((int)ID); 
     336                                b.add(confidence); 
     337                                YarpPort.write(b); 
     338 
     339                                //////////////////// 
     340 
    322341                        } 
    323342 
     
    346365        cvPutText(img, info, cvPoint(20,80), &helpfont, CV_RGB(0,0,0)); 
    347366 
    348  
    349367        #ifdef SHOW_FACES 
    350368        for(map<unsigned int,Face*>::iterator ii=facebank.GetFaceMap().begin();  
Note: See TracChangeset for help on using the changeset viewer.