How does it work
The Raspberry Pi 3D Scanner is based on the popular single board computer Raspberry PI Model B (+) and the 5 Megapixel PI Camera. It is designed to make a full body scan of a person in a single "shot". Each Raspberry PI unit (Camera Unit) stores the photo for later processing.
With the a set of 100 photos, you can use photogrammetry software/service like Autodesk Recap 360 or Agisoft Photoscan to turn the images into a 3D Model, with full texture (full color). These 3D models then can be used to make a 3D print (3D mini figurine), measure body or place the model in a game.
You can find sample scans in the download section, these include the original images and the 3D Model (.OBJ and texture).
Why 100 Cameras?
There are many ways to make a 3D scan of something. A popular method is by using a "hand-scanner" that typically uses RGBD depth sensing camera. This camera projects many infrared dots onto the subject and uses a camera to figure out where these dots are. A microsoft kinect camera or an Arctech EVA is an example of this method of scanning.
The downside with most other scanning solutions is that it takes some time to make a 3D scan, from 6 seconds to a few minutes. If you want to scan a high volume or want to scan things that can not stand still (childeren / animals), you need a solution that can scan the object in a fraction of a second.
Using a multiple camera system is not new. This has been used in the last few years typically based on 60 to 120 digital SLR cameras (canon/nikon). As you can imagine, this is a very expensive solution.
The Raspberry PI 3D scanner is a multi-camera solution for a fraction of the price. The total hardware cost (self build), including lighting is around $10,000 / € 10,000.
Scanning with projection
The Scanning Network
All the camera units, projector units and preview units are connected using standard ethernet connectivity, using the build-in 100Mb/sec ethernet card on the Raspberry PI. To make cabling a bit easier, I have made custom ethernet cables. As 100Mb ethernet only uses 4 of the 8 wires, I split 2 wires out to deliver the 5V the raspberry PI needs to run from powerful central power-supplies. (UDP) Multicasting is used to talk to all the units, in order to make sure there is perfect synchronisation at the moment a trigger signal is given. Tests have shown that the accuracy of synchronisation is greater then 1millisecond.