Changeset 27 for foam/trunk
- Timestamp:
- 03/20/2009 10:51:05 AM (12 years ago)
- Location:
- foam/trunk/simple-faceident
- Files:
-
- 1 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
foam/trunk/simple-faceident/Makefile
r14 r27 2 2 CV_INCLUDE_PATH = /usr/local/include/opencv 3 3 CV_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 4 ACE_LINK_PATH = /usr/lib 5 LIBS = -lcv -lcxcore -lhighgui -lYARP_dev -lYARP_sig -lYARP_OS -lACE 6 CCFLAGS = -ggdb -Wall -O3 -ffast-math -Wno-unused -fPIC 7 CCCOMMANDS = -I$(CV_INCLUDE_PATH) -L$(CV_LINK_PATH) -L$(ACE_LINK_PATH) $(CCFLAGS) 6 8 7 9 all: simple-faceident 8 10 9 11 simple-faceident: main.o FaceBank.o ImageUtils.o 10 $(CC) $(CC FLAGS) $(LIBS) main.o FaceBank.o ImageUtils.o -o simple-faceident12 $(CC) $(CCCOMMANDS) main.o FaceBank.o ImageUtils.o -rdynamic -o simple-faceident $(LIBS) 11 13 12 14 main.o: src/main.cpp 13 $(CC) $(CC FLAGS) -c src/main.cpp15 $(CC) $(CCCOMMANDS) -c src/main.cpp 14 16 15 17 FaceBank.o: src/FaceBank.cpp 16 $(CC) $(CC FLAGS) -c src/FaceBank.cpp18 $(CC) $(CCCOMMANDS) -c src/FaceBank.cpp 17 19 18 20 ImageUtils.o: src/ImageUtils.cpp 19 $(CC) $(CC FLAGS) -c src/ImageUtils.cpp21 $(CC) $(CCCOMMANDS) -c src/ImageUtils.cpp 20 22 21 23 clean: -
foam/trunk/simple-faceident/README
r14 r27 2 2 -------------------------- 3 3 4 Uses OpenCV's face finder to record and detect identity. 4 Uses OpenCV's face finder to record and detect identity. Sends bottles over 5 yarp on port /faceident containing the ID and confidence value. 5 6 6 7 Use the number keys to train the system against different individuals. The idea -
foam/trunk/simple-faceident/src/main.cpp
r15 r27 29 29 #include <time.h> 30 30 #include <ctype.h> 31 #include <yarp/os/all.h> 31 32 32 33 #include "FaceBank.h" … … 34 35 35 36 using namespace std; 37 using namespace yarp::os; 36 38 37 39 #ifdef _EiC … … 56 58 ////////////////////////////////////////////////////////// 57 59 // These are the tweakable bits - see comments in FaceBank.h 58 59 60 FaceBank facebank(30, 40, 0.15); 60 61 // number of frames to detect new faces for62 int calibrate_frames = 200;63 61 64 62 // show all faces currently detected 65 63 #define SHOW_FACES 66 67 64 //#define SAVE_FRAMES 68 65 … … 71 68 int facenum=0; 72 69 int framenum=0; 70 71 Network YarpNetwork; 72 Port YarpPort; 73 73 74 74 ////////////////////////////////////////////////////////// … … 112 112 input_name = argv[i]; 113 113 } 114 115 ///////////////////////////////// 116 // yarp init 117 118 YarpPort.open("/faceident"); 119 120 ///////////////////////////////// 114 121 115 122 cascade = (CvHaarClassifierCascade*)cvLoad( cascade_name, 0, 0, 0 ); … … 244 251 CvSeq* faces = cvHaarDetectObjects( small_img, cascade, storage, 245 252 1.1, 2, 0 246 //|CV_HAAR_FIND_BIGGEST_OBJECT253 |CV_HAAR_FIND_BIGGEST_OBJECT 247 254 //|CV_HAAR_DO_ROUGH_SEARCH 248 |CV_HAAR_DO_CANNY_PRUNING255 //|CV_HAAR_DO_CANNY_PRUNING 249 256 //|CV_HAAR_SCALE_IMAGE 250 257 , … … 293 300 294 301 unsigned int ID=999; 295 float error=0;302 float confidence=0; 296 303 // get the face area as a sub image 297 304 IplImage *face = SubImage(img, *r); … … 299 306 if (learn) 300 307 { 301 error=facebank.Suggest(face,facenum);308 confidence=facebank.Suggest(face,facenum); 302 309 ID=facenum; 303 310 } 304 311 else 305 312 { 306 error=facebank.Identify(face,ID);313 confidence=facebank.Identify(face,ID); 307 314 } 308 315 … … 314 321 { 315 322 char s[32]; 316 sprintf(s,"%d %0.2f",ID, error);323 sprintf(s,"%d %0.2f",ID,confidence); 317 324 cvPutText(img, s, cvPoint(r->x,r->y+25), &font, color); 318 325 int x=(facebank.GetFaceWidth()+1)*ID; … … 320 327 cvLine(img, cvPoint(r->x+r->width/2,r->y+r->height/2), 321 328 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 322 341 } 323 342 … … 346 365 cvPutText(img, info, cvPoint(20,80), &helpfont, CV_RGB(0,0,0)); 347 366 348 349 367 #ifdef SHOW_FACES 350 368 for(map<unsigned int,Face*>::iterator ii=facebank.GetFaceMap().begin();
Note: See TracChangeset
for help on using the changeset viewer.