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

simple yarp interface added

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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.