[Steven] needed to come up with a project for the Computer Vision course he was taking, so he decided to try building a portable 3D camera. His goal was to build a Kinect-like 3D scanner, though his solution is better suited for very detailed still scenes, while the Kinect performs shallow, less detailed scans of dynamic scenes.
The device uses a TI DLP Pico projector for displaying the structured light patterns, while a cheap VGA camera is tasked with taking snapshots of the scene he is capturing. The data is fed into a Beagleboard, where OpenCV is used to create point clouds of the objects he is scanning. That data is then handed off to Meshlab, where the point clouds can be combined and tweaked to create the final 3D image.
As [Steven] points out, the resultant images are pretty impressive considering his rig is completely portable and that it only uses an HVGA projector with a VGA camera. He says that someone using higher resolution equipment would certainly be able to generate fantastically detailed 3D images with ease.
Be sure to check out his page for more details on the project, as well as links to the code he uses to put these images together.
I think this is a structure light scanner, not a 3D camera.
When I read 3D camera I went meh. Looking closer at the project I agree with Joe, this is a 3D scanner. This should be an interesting read. I look forward to following Stevens work on this project.
Did anyone catch how long it takes to scan through the patterns?
Project is yet to be optimized for speed with scans in the ~3-5 second range. Pico projector actually has built in Structured light features enabling really really fast scans up to 2400hz!
Wow, that’s pretty nice, but $350 for the projector is way out of my budget. Does anyone know if there are there static structured light projectors on the market like the device used in the Kinect?
Maybe $35* scanner would be better? http://www.vision.caltech.edu/bouguetj/ICCV98/
If you already have webcam, desk lamp and pencil, it’s free!
Holly crap, it’s a web page from the last century !
Nice one!
That’s pretty neat. Not what I was looking for, but very clever.
There was an arduino project I saw a while back that did 3d scanning with just a web cam and 4 white LEDs. The LEDs were placed at random locations and the object was lit up with them (in a dark chamber) and a picture was snapped. And from there, software spent about 10 minutes figuring out what the 3d mesh was supposed to be.
I think I like the pencil projector idea better though. I’m thinking rotating platform holding the object to be scanned combined with a stationary bright white led, and a stationary pencil (or string or “obstacle” of some kind…) and a webcam. Alternately, the string could move left to right and the platform be stationary (or neither need be stationary, as you may be able to scan in greater detail that way and still get a full 360 degrees.)
This has real potential! I can’t wait to see what else Steven comes up with.
I have a projector that will connect to iOS devices. I may try to implement something similar in Objective C 😀
Dear Boris
Don’t listen to the negative talk, your work is fantastic. You beat caltech 🙂
I need to talk to you about my project, I have a UAV (a copter) already working I Would like to add beagleboard to it, could you contact me please.
I would like to Neural Network control software to my UAVs
I could not find your email
Dara