Structured Light 3D Scanning

Step 7Variations

Variations
Congratulations, you made a 3D scan from only three images! So where do we go from here? To keep track of where I take this technique next, watch my Vimeo. Here are some things I've been looking into. Feel free to leave any ideas or questions in the comments section!

3D Motion

This only gives us one scan. To capture motion with this technique requires a few more tricks. The first one is synchronizing a camera and projector so we can capture at a high rate. Commercial structured light systems use hardware and special electronics to do this. A DIY approach might use the vertical sync signal from a camera to drive a microcontroller that generates the three phase patterns for a projector. Without real sync, we can get pretty far with a 60 fps camera like the PS3Eye and a 60 Hz projector.

Exporting the Data
Exporting the 3D data for use with other applications is obviously important if you want to do something with the data. Maybe fabricating a miniature, or using the mesh for a character in a video game. A more complex application simply called decode.zip is available from the structured-light project. It can handle exporting into various 3D formats like .png depth maps, .ply and .obj triangle meshes and point clouds. It will also allow you to capture motion as described above. As this application develops, I'll write another Instructable describing how to capture 3D video.

More Accurate Unwrapping
Phase unwrapping, mentioned in Step 2, is a big part of phase-shift scanning. There isn't a single "right" answer to an unwrapping problem given the wrapped phase. However, the flood fill technique is clearly not ideal as it can create regions with large phase discontinuities along straight lines. Better phase unwrapping algorithms could avoid these obvious errors.

Automatic Calibration
We should be able to automatically approximate zskew, zscale and the noise threshold parameters by taking some test scans of reference subjects.

Absolute Position
Three phase scanning can only recover relative position by propagating phases during the unwrapping stage. In order to take absolute measurements of every position in a scene, we can use cosine patterns with many different frequencies, or use a technique called Gray code scanning. Gray codes assign a unique code to each stripe by using 10 patterns instead of 3.

Invisible Capture for Performance
Unless you like the aesthetic of flashing scrolling lines, structured light isn't the best way to capture 3D information on a stage in front of an audience. One solution to this involves modifying a projector to remove the infrared-cut filter and replace it with a visible light-cut filter. Then, with an IR camera, you can see the projected patterns without disturbing the scene in the visible spectrum.
« Previous StepDownload PDFView All StepsNext Step »
5 comments
Jul 18, 2011. 2:51 PMrphillips7 says:
I have been trying to get my head around using the decode .app prior to experimenting with structured light 3D scanning. For some reason the export options do not show up in the decode .app. Do you have any idea why?
Screen shot 2011-07-18 at 22.48.20.png
Jul 18, 2011. 2:53 PMrphillips7 says:
sorry, I was using the threephase.app, not the decode.app but the question still remains, why do the export functions not show up?
Aug 25, 2010. 10:40 PMdavIRE says:
for some reason i cant seem to get the export function to work. im not really sure how its supposed to work or if the program is outputting to someplace weird, but i would have assumed it would show up somewhere in the file system if it wasnt going to ask where to save. im just trying to export an object file from stills. no video involved. also im using macOS but windows is also an option. any help would be great because im at the banging-my-head-against-the-desk-shouting-just-work-dammit stage :P
Aug 29, 2010. 2:58 AMdavIRE says:
sorry i have just one more query. how are you making the renders with depth of field? ive been struggling along with nuke but its not working the best. then again im not the best with nuke
Aug 26, 2010. 8:54 PMdavIRE says:
ah fantastic, just needed a folder called output is that folder supposed to be in the file directory? i had capture and input. should there have been output as well? if not maybe that would be a handy thing to put in there. i mean its just a blank folder. thanks heaps for the rapid response. the instructable is excellent

Pro

Get More Out of Instructables

Already have an Account?

close

All Steps Viewing
View all steps of an Instructable on the same page when you're a Pro Member.

Upgrade to Pro today!
103
Followers
6
Author:kylemcdonald