one thing just crossed my mind: what's the resolution of the kinect IR
sensor? In order for it to make sense out of the dot pattern, it needs
to see a "local neighborhood" around every depth pixel, correct? So the
actual image resolution should be at least on the order of full HD, or
am I missing something here?
Florian
I don't have the links (on my phone) but ifixit year down identified the CMOS sensors and you can look up the data sheets. Both rgb and ir sensors list 1280x1024 at 15 fps. Since we're getting 30 fps, they are likely running at a lower resolution.
Probably not possible to switch camera modes now, but with custom firmware yes.
It isn't necessary to detect every dot individually. Instead, it likely looks at the density of the dot field (as the IR brightness). The patent apps would detail the approach. (i haven't read them yet. :( )
I have worked on 3D laser scanners in the past. To assist in creating
a scanning system that could work with bright daytime conditions
(outside the warehouse) we used a very expensive ($200) optical filter
that was centred on the IR laser diodes we used.
I would imagine that replacing the IR diode in a Kinect and applying a
different filter on each Kinect used should isolate the viewed dot
patterns. Alternatively the notion of synchronizing the beams in a
time fashion would also work.
The use of multiple colour filters has assisted 3D scanning in the
past to achieve better resolution.
This group is amazing. Well done folks!
Adam
--
Adam Crow BEng (hons) MEngSc MIEEE
Technical Director
DC123 Pty Ltd
Suite 10, Level 2
13 Corporate Drive
HEATHERTON VIC 3202
http://dc123.com
phone: 1300 88 04 07
fax: +61 3 9923 6590
int: +61 3 8689 9798
The density of the dot field is only visible from our viewpoint! If
the camera is close to the emitter then it doesn't matter if the
object is 1 meter or 5 meter away, it's always seeing almost the
original pattern. I think the big thing in PrimeSense is the
processor, what is essentially:
0. doing a camera calibration using the checkerboard pattern (+central
brighter dots)
1. recognising each individual dot
2. calculating a depth information for each dot, using the same
technique as all laser range-finders use
3. does it all in parallel for all dots, in real time.
But it's just my theory. I would be happy if someone could tell something more.
I'd guess a few other things...
Intensity thresholding to find camera calibration points.
A Markov Chain from each point to determine the surrounding points.
Assumptions would be that the scanned object is a concave surface
(such as most of the scanned bodys part)
Different Clothing materials would provide a challenge. Intensities in
each region would roughly be in proprtion to each other.
Adam
--
I found some interesting things (thanks for the futurepicture images!):
Only thing I applied was levels to make it more contrasty:
color: http://imgur.com/bNObP
blue: http://imgur.com/i5Duo
red: http://imgur.com/vLViq
1. The blue channel contains much more dots compared to the red
channel (which is a bit more than the green channel). Why is this
happening? And actually why does IR light have a blue/violet color on
the images? Isn't infra-red supposed to be close to red, while
ultra-violet supposed to be close to blue/violet colors?
2. The 9 central dots seems to be white, while no other dot is white
on the color picture. How is it possible that the central dots are
white, while the other dots have this strange coloration? They are
emitted from the same 830 nm light source. Do you think all what we
see is just the problem of the digital camera's CMOS sensor's noise?
3. I manually counted the points on the edges of color image. In x
direction it had about 200 points, in the y direction it had about
170. So a very rought guess would be that here are 200x170 points
emitted, which is scanned by a 1280x960 CMOS sensor. It would roughly
put one dot in a 5x5 pixel region, which is I think enough for
detecting the points one by one.