Author Message

<  extend  ~  ofxCvHaarFinder: OpenCV face/eye/mouth tracking

PostPosted: Sun May 31, 2009 1:19 pm
User avatarJoined: Wed Dec 26, 2007 11:22 amPosts: 16Location: Antwerp, Belgium
at the OF workshop in brussels, we made a little game with face tracking,
so I made this xcode example project with ofxCvHaarFinder for OF 0.06
(working with the FAT version)

was a very interesting workshop, thanks Arturo & Zach!

http://www.pacesetter2000.be/openframeworks/opencvFaceTrackingExample.zip



_________________
www.wereldderindianen.be
Offline Profile
PostPosted: 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.html


thx man


Last edited by johnavila2 on Tue Jun 16, 2009 5:05 pm, edited 1 time in total.

Offline Profile
PostPosted: Mon Jun 01, 2009 1:22 am
Joined: Tue Feb 24, 2009 5:47 pmPosts: 123

Offline Profile
PostPosted: 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/34

Personally, I'm really excited to use "the wall clock detector" at some point :)


Offline Profile
PostPosted: 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


Offline Profile
PostPosted: 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.


Offline Profile
PostPosted: 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.


Offline Profile
PostPosted: Sun Jun 07, 2009 11:31 am
User avatarJoined: 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.zip

please let me know what you think.

L.



_________________
http://julapy.com/blog
Offline Profile
PostPosted: 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 :)


Offline Profile
PostPosted: 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 :)


Offline Profile
PostPosted: 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).


Offline Profile
PostPosted: 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.zip

please 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?



_________________
http://www.cnblogs.com/yangyangcv
http://www.progenlabs.com/
Offline Profile
PostPosted: Thu Jul 16, 2009 2:58 am
User avatarJoined: 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.



_________________
http://julapy.com/blog
Offline Profile
PostPosted: 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();
}



_________________
http://www.cnblogs.com/yangyangcv
http://www.progenlabs.com/
Offline Profile
PostPosted: 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
Offline Profile

Display posts from previous:  Sort by:

All times are UTC
Page 2 of 6
84 posts
Go to page Previous  1, 2, 3, 4, 5, 6  Next
Users browsing this forum: No registered users and 2 guests
Search for:
Post new topic  Reply to topic
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum
cron