tracking up to 6 objects in a room


    Oct 03 2006 | 2:29 pm
    Hi list,
    I'm working on a project for an artist that wishes to be able to track the motion of up to 6 people in a room and get x,y coordinates for each of them as they move. What is the best camera based solution for doing this at this time? I'm familiar with SoftVNS, JitCV, Big Eye, Cyclops and Eyesweb, but have only used Big Eye extensively and played with Cyclops a bit. Big Eye is no longer an option as all my OS9 machines are dead. Anyone more familiar than I with these others or are there other solutions out there that are simple to use and do what I need? I have a budget, so this is not a primary consideration. Any wisdom from the group on this? As usual, I'm pressed for time and some of the stuff I've been kludging together in Jitter isn't working very nicely.
    Thanks for the help!
    Shawn Pinchbeck shawn@artun.ee

    • Oct 03 2006 | 3:09 pm
      Quote: Shawn wrote on Tue, 03 October 2006 08:29 ---------------------------------------------------- > Hi list, > > I'm working on a project for an artist that wishes to be able to track > the motion of up to 6 people in a room and get x,y coordinates for each > of them as they move. What is the best camera based solution for doing > this at this time? I'm familiar with SoftVNS, JitCV, Big Eye, Cyclops > and Eyesweb, but have only used Big Eye extensively and played with > Cyclops a bit. Big Eye is no longer an option as all my OS9 machines are > dead. Anyone more familiar than I with these others or are there other > solutions out there that are simple to use and do what I need? I have a > budget, so this is not a primary consideration. Any wisdom from the > group on this? As usual, I'm pressed for time and some of the stuff I've > been kludging together in Jitter isn't working very nicely. > > Thanks for the help! > > Shawn Pinchbeck > shawn@artun.ee > > ----------------------------------------------------
      i like softvns best, but cv.jit is pretty good too and even has some advantages. more than what software, your environment will matter i.e. lighting conditions. do remember that you will always have some diffiulty tracking 6 people separately with one camera.
      best
      isjtar
    • Oct 03 2006 | 3:26 pm
      hi im looking forward to some nice answers to your post too, because im interested into as well. Im making a similar project and I was thinking about 3 options:
      1) using gps sensors to be held by each person on the stage: too low resolution: 10 meters. No good for doing music in real time in a normal space;
      2) tracking people with distance senors on each corner of the stage, that recognize the identical ID of the thing/person that needs to be tracked: too slow ;
      3) using a firewire camera or similar to be used with cyclop. The camera is set above the stage with the appropriate lens: then the stage should be of a unique color, then the people should be of a unique color. (for example :white for the stage/black for the people...); this is fast enought, but it will only track the 6 people as a unique thing, in 6 different points on a background. Or i can program cyclops to look for a certain color, and the people should be tracked as i think you might need.
      Hope that mr Singer can post something about this here, im sure he knows :-)
      cheers
      tom
      Il giorno 03/ott/06, alle ore 16:29, Shawn Pinchbeck ha scritto:
      > Hi list, > > I'm working on a project for an artist that wishes to be able to > track the motion of up to 6 people in a room and get x,y > coordinates for each of them as they move. What is the best camera > based solution for doing this at this time? I'm familiar with > SoftVNS, JitCV, Big Eye, Cyclops and Eyesweb, but have only used > Big Eye extensively and played with Cyclops a bit. Big Eye is no > longer an option as all my OS9 machines are dead. Anyone more > familiar than I with these others or are there other solutions out > there that are simple to use and do what I need? I have a budget, > so this is not a primary consideration. Any wisdom from the group > on this? As usual, I'm pressed for time and some of the stuff I've > been kludging together in Jitter isn't working very nicely. > > Thanks for the help! > > Shawn Pinchbeck > shawn@artun.ee > >
    • Oct 03 2006 | 4:20 pm
      Quote: tommy wrote on Tue, 03 October 2006 09:26 ---------------------------------------------------- > > camera is set above the stage with the appropriate lens: then the > stage should be of a unique color, ---------------------------------------------------- no need for that, since the stage itself is static, you can subtract it from the image. just control the lighting, natural light is too unstable.
      besides, search the archives, it has come up plenty of times.
    • Oct 04 2006 | 12:53 am
      oh, how can you subtract background image? with jitter?
      well, i'll search the archives, but thank u!
      Il giorno 03/ott/06, alle ore 18:20, Isjtar ha scritto:
      > > Quote: tommy wrote on Tue, 03 October 2006 09:26 > ---------------------------------------------------- >> >> camera is set above the stage with the appropriate lens: then the >> stage should be of a unique color, > ---------------------------------------------------- > no need for that, since the stage itself is static, you can > subtract it from the image. > just control the lighting, natural light is too unstable. > > besides, search the archives, it has come up plenty of times. > >
    • Oct 04 2006 | 7:52 am
      Quote: tommy wrote on Tue, 03 October 2006 18:53 ---------------------------------------------------- > oh, how can you subtract background image? with jitter? > > well, i'll search the archives, but thank u! > > ---------------------------------------------------- in jitter, store a frame of the stage in a matrix and subtract it from incoming footage. that's jit.op if i remember right, don't do jitter often. but the cv.jit package is free and the help patches are pretty complete applications.
      for softvns you don't need jitter, but it's less flexible for other stuff. still kicks ass for this kind of thing though, it's pretty fast too.
    • Oct 04 2006 | 8:04 am
      >Quote: tommy wrote on Tue, 03 October 2006 18:53 >---------------------------------------------------- >> oh, how can you subtract background image? with jitter?
      like this for instance:
      > > >> well, i'll search the archives, but thank u! >> >> >---------------------------------------------------- >in jitter, store a frame of the stage in a matrix and subtract it >from incoming footage. that's jit.op if i remember right, don't do >jitter often. >but the cv.jit package is free and the help patches are pretty >complete applications. > >for softvns you don't need jitter, but it's less flexible for other stuff. >still kicks ass for this kind of thing though, it's pretty fast too. >
      -- Yves Bernard yb@imal.org asbl iMAL vzw rue d'Alost straat 7 1000 Bruxelles/Brussel tel 32 2 213 37 10
    • Oct 04 2006 | 1:50 pm
      Hi All,
      I heard from David Rokeby. He says the upcoming release of VNS 3 will have many more tracking capabilities and this type of tracking will be better with a new VNS object "v.blob".
      He didn't mention a release date, probably when it's done. :-)
      cheers, Shawn
      Yves Bernard wrote: >> Quote: tommy wrote on Tue, 03 October 2006 18:53 >> ---------------------------------------------------- >>> oh, how can you subtract background image? with jitter? > > > like this for instance: > > #P window setfont "Sans Serif" 9.; > #P number 682 520 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; > #P number 645 520 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; > #P number 602 520 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; > #P number 565 520 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; > #P window linecount 1; > #N vpatcher 85 203 685 603; > #P outlet 491 298 15 0; > #P outlet 385 298 15 0; > #P outlet 224 299 15 0; > #P outlet 125 303 15 0; > #P window setfont Times 10.; > #P comment 172 150 62 1310730 bottom; > #P comment 134 150 28 1310730 right; > #P window setfont "Sans Serif" 9.; > #P comment 536 258 100 196617 h; > #P flonum 495 256 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; > #P newex 493 231 79 196617 expr ($f1-$f2); > #P flonum 387 255 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; > #P newex 385 230 79 196617 expr ($f1-$f2); > #P comment 429 256 100 196617 w; > #P comment 274 254 100 196617 y; > #P flonum 234 253 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; > #P newex 232 228 101 196617 expr ($f1+$f2)/2.0; > #P flonum 126 252 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; > #P newex 124 227 101 196617 expr ($f1+$f2)/2.0; > #P comment 168 253 100 196617 x; > #P window setfont Times 10.; > #P comment 93 145 21 1310730 top; > #P window setfont "Fixedwidth Serif" 10.; > #P number 168 129 35 10 0 0 0 22 0 0 0 221 221 221 222 222 222 0 0 0; > #P number 130 128 35 10 0 0 0 22 0 0 0 221 221 221 222 222 222 0 0 0; > #P number 88 125 35 10 0 0 0 22 0 0 0 221 221 221 222 222 222 0 0 0; > #P number 50 125 35 10 0 0 0 22 0 0 0 221 221 221 222 222 222 0 0 0; > #P newex 130 107 48 1441802 unpack; > #P newex 50 104 48 1441802 unpack; > #P newex 54 58 196 1441802 jit.findbounds @min 0.9 @max 1.; > #B color 5; > #P window setfont Times 10.; > #P comment 55 145 20 1310730 left; > #P inlet 54 38 15 0; > #P connect 2 0 3 0; > #P connect 3 0 5 0; > #P connect 0 0 2 0; > #P connect 3 1 6 0; > #P connect 5 0 11 0; > #P connect 12 0 24 0; > #P connect 11 0 12 0; > #P fasten 2 1 4 0 152 103 135 103; > #P connect 4 0 7 0; > #P connect 4 1 8 0; > #P connect 7 0 11 1; > #P connect 14 0 25 0; > #P connect 6 0 13 0; > #P connect 13 0 14 0; > #P connect 8 0 13 1; > #P connect 7 0 17 0; > #P connect 18 0 26 0; > #P connect 17 0 18 0; > #P connect 5 0 17 1; > #P connect 20 0 27 0; > #P connect 8 0 19 0; > #P connect 19 0 20 0; > #P connect 6 0 19 1; > #P pop; > #P newobj 582 491 67 196617 p findXY_WH; > #P window linecount 3; > #P user com 389 175 100 196617 19; > #K set 0 25448 25955 27439 30062 25448 25955 27424 29807 8307 29807 > 29285 8306 25958 25970 25966 25445 8294 29281 28005; > #K end; > #P window linecount 1; > #P comment 110 283 100 196617 current frame; > #P number 450 511 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; > #P button 441 591 15 0; > #P button 401 591 15 0; > #P newex 402 569 44 196617 togedge; > #P number 402 550 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; > #P newex 401 529 59 196617 > 20; > #P flonum 195 125 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; > #P flonum 50 125 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; > #P flonum 127 125 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; > #P message 195 142 69 196617 saturation $1; > #P message 50 142 70 196617 brightness $1; > #P message 127 142 61 196617 contrast $1; > #P newex 25 165 54 196617 jit.brcosa; > #P number 400 510 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; > #P newex 386 489 53 196617 jit.3m; > #P newex 25 189 53 196617 jit.change; > #P newex 160 558 49 196617 s vdiffer; > #P flonum 254 417 49 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; > #P newex 25 213 65 196617 jit.rgb2luma; > #P user jit.pwindow 159 469 82 62 0 1 0 0 1 0; > #P newex 160 439 105 196617 jit.op @op > @val 0.5; > #B color 5; > #P user jit.pwindow 159 363 82 62 0 1 0 0 1 0; > #P newex 160 327 88 196617 jit.op @op absdiff; > #B color 5; > #P user jit.pwindow 24 243 82 62 0 1 0 0 1 0; > #P user jit.pwindow 357 232 82 62 0 1 0 0 1 0; > #P toggle 357 174 15 0; > #P newex 357 192 27 196617 gate; > #P message 98 71 32 196617 close; > #P message 63 71 29 196617 open; > #P flonum 58 34 35 9 0.5 0 1 3 0 0 0 221 221 221 222 222 222 0 0 0; > #P toggle 24 34 15 0; > #P newex 25 52 44 196617 metro 2; > #P newex 25 104 55 196617 jit.qt.grab; > #P window linecount 2; > #P comment 335 49 100 196617 background substraction; > #P window linecount 1; > #P comment 442 280 100 196617 reference frame; > #P comment 449 490 100 196617 decides what do do; > #P comment 267 124 100 196617 preprocess video; > #P connect 39 3 43 0; > #P connect 39 2 42 0; > #P connect 39 1 41 0; > #P connect 16 0 17 0; > #P connect 16 0 22 0; > #P connect 16 0 39 0; > #P connect 39 0 40 0; > #P connect 36 0 31 1; > #P connect 33 1 35 0; > #P connect 32 0 33 0; > #P connect 31 0 32 0; > #P connect 33 0 34 0; > #P connect 23 0 31 0; > #P connect 22 1 23 0; > #P connect 18 0 13 0; > #P fasten 18 0 10 1 30 235 341 235 341 163 379 163; > #P fasten 10 0 12 0 362 209 363 209; > #P connect 11 0 10 0; > #P connect 19 0 16 1; > #P connect 12 0 14 1; > #P connect 30 0 27 0; > #P connect 17 0 20 0; > #P connect 15 0 16 0; > #P connect 14 0 15 0; > #P connect 13 0 14 0; > #P connect 28 0 25 0; > #P connect 7 0 5 1; > #P connect 29 0 26 0; > #P connect 21 0 18 0; > #P connect 24 0 21 0; > #P connect 4 0 24 0; > #P connect 27 0 24 0; > #P connect 25 0 24 0; > #P connect 26 0 24 0; > #P connect 5 0 4 0; > #P fasten 8 0 4 0 68 93 30 93; > #P fasten 9 0 4 0 103 91 30 91; > #P connect 6 0 5 0; > #P window clipboard copycount 44; > > > >> > >>> well, i'll search the archives, but thank u! >>> >>> >> ---------------------------------------------------- >> in jitter, store a frame of the stage in a matrix and subtract it >> from incoming footage. that's jit.op if i remember right, don't do >> jitter often. >> but the cv.jit package is free and the help patches are pretty >> complete applications. >> >> for softvns you don't need jitter, but it's less flexible for other >> stuff. >> still kicks ass for this kind of thing though, it's pretty fast too. >> > >
    • Oct 04 2006 | 8:00 pm
      Cyclops is not necessarily well suited to persistent tracking of people/objects. It is really just looking for grey levels and colors in zones. However, you could, after the fact, create some kind of persistence by distinguishing the movement of different "color-coded" (costumed) people through consecutive zones. There are probably much better algorithms out there for doing this though.
      Eric
      At 5:26 PM +0200 10/3/06, tommaso perego wrote: >hi >im looking forward to some nice answers to your post too, because im >interested into as well. >Im making a similar project and I was thinking about 3 options: > >1) using gps sensors to be held by each person on the stage: too low >resolution: 10 meters. No good for doing music in real time in a >normal space; > >2) tracking people with distance senors on each corner of the stage, >that recognize the identical ID of the thing/person that needs to be >tracked: too slow ; > >3) using a firewire camera or similar to be used with cyclop. The >camera is set above the stage with the appropriate lens: then the >stage should be of a unique color, then the people should be of a >unique color. (for example :white for the stage/black for the >people...); this is fast enought, but it will only track the 6 >people as a unique thing, in 6 different points on a background. Or >i can program cyclops to look for a certain color, and the people >should >be tracked as i think you might need. > >Hope that mr Singer can post something about this here, im sure he knows :-) > > >cheers > >tom > > > >Il giorno 03/ott/06, alle ore 16:29, Shawn Pinchbeck ha scritto: > >>Hi list, >> >>I'm working on a project for an artist that wishes to be able to >>track the motion of up to 6 people in a room and get x,y >>coordinates for each of them as they move. What is the best camera >>based solution for doing this at this time? I'm familiar with >>SoftVNS, JitCV, Big Eye, Cyclops and Eyesweb, but have only used >>Big Eye extensively and played with Cyclops a bit. Big Eye is no >>longer an option as all my OS9 machines are dead. Anyone more >>familiar than I with these others or are there other solutions out >>there that are simple to use and do what I need? I have a budget, >>so this is not a primary consideration. Any wisdom from the group >>on this? As usual, I'm pressed for time and some of the stuff I've >>been kludging together in Jitter isn't working very nicely. >> >>Thanks for the help! >> >>Shawn Pinchbeck >>shawn@artun.ee >> >> >
    • Oct 05 2006 | 9:34 am
      thanks eric!
      Il giorno 04/ott/06, alle ore 22:00, Eric Singer ha scritto:
      > Cyclops is not necessarily well suited to persistent tracking of > people/objects. It is really just looking for grey levels and > colors in zones. However, you could, after the fact, create some > kind of persistence by distinguishing the movement of different > "color-coded" (costumed) people through consecutive zones. There > are probably much better algorithms out there for doing this though. > > Eric > > At 5:26 PM +0200 10/3/06, tommaso perego wrote: >> hi >> im looking forward to some nice answers to your post too, because >> im interested into as well. >> Im making a similar project and I was thinking about 3 options: >> >> 1) using gps sensors to be held by each person on the stage: too >> low resolution: 10 meters. No good for doing music in real time in >> a normal space; >> >> 2) tracking people with distance senors on each corner of the >> stage, that recognize the identical ID of the thing/person that >> needs to be tracked: too slow ; >> >> 3) using a firewire camera or similar to be used with cyclop. The >> camera is set above the stage with the appropriate lens: then the >> stage should be of a unique color, then the people should be of a >> unique color. (for example :white for the stage/black for the >> people...); this is fast enought, but it will only track the 6 >> people as a unique thing, in 6 different points on a background. >> Or i can program cyclops to look for a certain color, and the >> people should be tracked as i think you might need. >> >> Hope that mr Singer can post something about this here, im sure he >> knows :-) >> >> >> cheers >> >> tom >> >> >> >> Il giorno 03/ott/06, alle ore 16:29, Shawn Pinchbeck ha scritto: >> >>> Hi list, >>> >>> I'm working on a project for an artist that wishes to be able to >>> track the motion of up to 6 people in a room and get x,y >>> coordinates for each of them as they move. What is the best >>> camera based solution for doing this at this time? I'm familiar >>> with SoftVNS, JitCV, Big Eye, Cyclops and Eyesweb, but have only >>> used Big Eye extensively and played with Cyclops a bit. Big Eye >>> is no longer an option as all my OS9 machines are dead. Anyone >>> more familiar than I with these others or are there other >>> solutions out there that are simple to use and do what I need? I >>> have a budget, so this is not a primary consideration. Any wisdom >>> from the group on this? As usual, I'm pressed for time and some >>> of the stuff I've been kludging together in Jitter isn't working >>> very nicely. >>> >>> Thanks for the help! >>> >>> Shawn Pinchbeck >>> shawn@artun.ee >>> >>> >> > >