| Author |
Message |
< extend ~ ofxCvHaarFinder: OpenCV face/eye/mouth tracking |
|
pacesetter
|
Posted: Sun May 31, 2009 1:19 pm |
|
|
Joined: Wed Dec 26, 2007 11:22 amPosts: 16Location: Antwerp, Belgium |
|
|
Top
|
|
|
johnavila2
|
Posted: Mon Jun 01, 2009 1:02 am |
|
|
| Joined: Tue Feb 24, 2009 5:47 pmPosts: 123 |
hey kylemcdonald look i can, this is the example for codeblocks in windows if anyone nedd remember put in folder 0.06/apps/addonExample and make a folder in 0.06/addond/ofxCvhaarFinder/src and put .h and .cpp haarfinder and finish http://rapidshare.com/files/239437524/F ... e.rar.htmlthx man
Last edited by johnavila2 on Tue Jun 16, 2009 5:05 pm, edited 1 time in total.
|
|
Top
|
|
|
johnavila2
|
Posted: Mon Jun 01, 2009 1:22 am |
|
|
| Joined: Tue Feb 24, 2009 5:47 pmPosts: 123 |
|
|
Top
|
|
|
kylemcdonald
|
Posted: Mon Jun 01, 2009 3:55 pm |
|
|
| Joined: Fri Jun 27, 2008 4:49 amPosts: 453Location: Brooklyn |
Just found this link that has all the haar cascades I mentioned above, plus a few more: http://www.alereimondo.com.ar/OpenCV/34Personally, I'm really excited to use "the wall clock detector" at some point
|
|
Top
|
|
|
Richy
|
Posted: Tue Jun 02, 2009 11:12 pm |
|
|
| Joined: Sun Apr 26, 2009 7:28 amPosts: 16 |
Hey there, I'm trying to get this working to, however I get: Code: ../../../addons/ofxOpenCv/libs/opencv/lib/linux/libcv.a(cvhaar.o)||In function `cvSetImagesForHaarClassifierCascade.omp_fn.1':|
/src/testApp.h(.text+0x3f3a)||undefined reference to `GOMP_loop_dynamic_start'| any ideas? thanks once again! Richard
|
|
Top
|
|
|
kylemcdonald
|
Posted: Tue Jun 02, 2009 11:16 pm |
|
|
| Joined: Fri Jun 27, 2008 4:49 amPosts: 453Location: Brooklyn |
Are you able to use other OpenCV functions (like the contour finder)? It looks like it might be a general OpenCV problem, in which case you should ask on the Linux subforum instead.
|
|
Top
|
|
|
Richy
|
Posted: Wed Jun 03, 2009 12:48 pm |
|
|
| Joined: Sun Apr 26, 2009 7:28 amPosts: 16 |
I'm using contour-finder and ofxOpenCVBlobTracker in another project. They work just fine.
I guess, however, that this might just be another Linux probleme never the less.
|
|
Top
|
|
|
julapy
|
Posted: Sun Jun 07, 2009 11:31 am |
|
|
Joined: Mon Jan 19, 2009 7:02 amPosts: 214Location: sydney |
hey, top effort cleaning up ofxCvHaarFinder... looking really good now! ive been working with haar cascades for face finding lately on a couple of projects and had to find a way of tracking faces, so if there are multiple faces in a moving image, its possible to track each face and know which one is which. so i created ofxCvHaarTracker which is a wrapper for ofxCvHaarFinder, although the two can be used saperately or side by side. ofxCvHaarTracker assigns an id to each new haar object it finds so it can be tracked. if it is an existing haar object, it simply updates its position and size. it also has a buffer to help track haar objects which also helps in removing any false haar objects which sometimes flicker even though they're not supposed to be there. this new version of ofxCvHaarTracker incorporates the latest ofxCvHaarFinder code from this thread and includes example code on how to use it. http://julapy.com/source/ofxCvHaarTracker.zipplease let me know what you think. L.
|
|
Top
|
|
|
kylemcdonald
|
Posted: Sun Jun 07, 2009 3:27 pm |
|
|
| Joined: Fri Jun 27, 2008 4:49 amPosts: 453Location: Brooklyn |
Hey julapy, this looks like a great addition of functionality. I don't have a situation to test it with right now (tracking multiple objects in video) but next time I do I'll share my thoughts :)
|
|
Top
|
|
|
johnavila2
|
Posted: Tue Jul 07, 2009 11:30 pm |
|
|
| Joined: Tue Feb 24, 2009 5:47 pmPosts: 123 |
hi kylemcdonald i tried with al haar types and dosn't make work haarcascade_fullbody.xml haarcascade_lowerbody.xml haarcascade_upperbody.xml you have any idea why?? all the others like eyes and face works fine
|
|
Top
|
|
|
kylemcdonald
|
Posted: Wed Jul 08, 2009 12:46 am |
|
|
| Joined: Fri Jun 27, 2008 4:49 amPosts: 453Location: Brooklyn |
johnavila2 wrote: i tried with al haar types and dosn't make work I've tried those cascades and had results, but they are more sensitive than the others. Could you post the example images you're testing against? If you're trying with the image I posted before, for example, I don't think any of those would match. (They're more for people standing upright).
|
|
Top
|
|
|
yaya
|
Posted: Thu Jul 16, 2009 2:38 am |
|
|
| Joined: Wed Apr 29, 2009 6:56 amPosts: 43Location: Shanghai |
julapy wrote: hey, top effort cleaning up ofxCvHaarFinder... looking really good now! ive been working with haar cascades for face finding lately on a couple of projects and had to find a way of tracking faces, so if there are multiple faces in a moving image, its possible to track each face and know which one is which. so i created ofxCvHaarTracker which is a wrapper for ofxCvHaarFinder, although the two can be used saperately or side by side. ofxCvHaarTracker assigns an id to each new haar object it finds so it can be tracked. if it is an existing haar object, it simply updates its position and size. it also has a buffer to help track haar objects which also helps in removing any false haar objects which sometimes flicker even though they're not supposed to be there. this new version of ofxCvHaarTracker incorporates the latest ofxCvHaarFinder code from this thread and includes example code on how to use it. http://julapy.com/source/ofxCvHaarTracker.zipplease let me know what you think. L. hi~ thanks for your sharing. i try to compile them but there are 3 errors. so i make some changes accordingly. ofxCvHaarTracker.cpp 1) in ofxCvHaarFinder* ofxCvHaarTracker :: setup( string haarFile ), add: return haarFinder; 2) in ofxCvHaarFinder* ofxCvHaarTracker :: setup( ofxCvHaarFinder* hf ), add: return haarFinder; 3) in int ofxCvHaarTracker :: getHaarItemID (), add: return before haarItems[ haarItemIndex ].getID(); BTW, could you explain your tracking algorithm briefly?
|
|
Top
|
|
|
julapy
|
Posted: Thu Jul 16, 2009 2:58 am |
|
|
Joined: Mon Jan 19, 2009 7:02 amPosts: 214Location: sydney |
hi yaya, thanks for pointing out that the return was not included in 1) and 2). not sure why it wasn't throwing an error in my IDE, im running XCode and maybe different compilers have different strictness levels. with 3), just had a look at its returning haarItems[ haarItemIndex ].getID(), so not sure what you mean. Code: int ofxCvHaarTracker :: getHaarItemID () { return haarItems[ haarItemIndex ].getID(); }
the tracking algorithm is very simple at the moment, just tracks faces based on position. so if a face if found again on the second frame and its within a certain range of a face in the previous frame, it assumes it is the same face. of course you can take this further... compare size and direction of movement, for a more precise result. or even combine this with OpticalFlow... this is something ive been meaning to look at but haven't had time to do yet. L.
|
|
Top
|
|
|
yaya
|
Posted: Fri Jul 17, 2009 1:03 am |
|
|
| Joined: Wed Apr 29, 2009 6:56 amPosts: 43Location: Shanghai |
julapy wrote: hi yaya, thanks for pointing out that the return was not included in 1) and 2). not sure why it wasn't throwing an error in my IDE, im running XCode and maybe different compilers have different strictness levels. with 3), just had a look at its returning haarItems[ haarItemIndex ].getID(), so not sure what you mean. Code: int ofxCvHaarTracker :: getHaarItemID () { return haarItems[ haarItemIndex ].getID(); }
the tracking algorithm is very simple at the moment, just tracks faces based on position. so if a face if found again on the second frame and its within a certain range of a face in the previous frame, it assumes it is the same face. of course you can take this further... compare size and direction of movement, for a more precise result. or even combine this with OpticalFlow... this is something ive been meaning to look at but haven't had time to do yet. L. hi~ i'm using VS2008. and for 3) that's just what i mean  Code: int ofxCvHaarTracker :: getHaarItemID () { return haarItems[ haarItemIndex ].getID(); }
|
|
Top
|
|
|
charli_e
|
Posted: Mon Aug 03, 2009 1:18 am |
|
|
| Joined: Fri Jan 18, 2008 3:59 pmPosts: 147Location: Barcelona |
Hi all , Wow, it has improved a lot since i had that first haar tracking. Now looks really more usable and clean. Should be a nice point rewrite all your collaboration at the header. Top about improve that simple blobtracking, I've see up some comment about ofxOpenCVBlobTracker. (Is there any public code?) Make then some extend to use that class and be able to select what method is enough could be really cool. Also for any addon that can use multidetection purpose. What about ghost detections? Could be great add some solution... easy but non supper solution, i guess, will be add a timer for detection of stable haarObject. Code: setTimerStableHaar(int timemillis); all the best,
_________________ carles gutierrez |
|
|
Top
|
|
|
|