Kinect Body Scanner

Creating full body scans using the Kinect or other depth cameras is well worn territory, however after attending the Inside 3D Printing Expo earlier this year, and trying out The Great Fredini’s fine 3D scanning booth, we decided to build our own. We took some inspiration from Fred’s open sourced design, but also wanted to automate the camera movement and eventually to make the booth self operating. We will follow this post of up with documentation for anyone that wants to build their own.
 

3D Scanning

A little background: Microsoft released the Kinect body sensing camera around 5 years ago as a gestural input device for their Xbox game system. Shortly after, SDKs were developed allowing developers to create a wealth of interactive software, including object scanning. Software like ReconstructMe and Skanect were released and made the job of scanning a lot easier. The basic methodology is to walk around a subject with the Kinect camera, slowly filling in a 3D model as the camera scans sections of the person and stitches it to the model in progress. Moving the camera too quickly, or if the subject moves, will kill the scan and it need to be restarted. Fred’s rotating platform and hand-cranked linear camera motion makes the process easier. More expensive multi-camera scanners will deliver better results, but we wanted to see what we could get out of a single-camera set up.
 

Building our Scanner

IMG_4361
 
* Parts now available to print from Thingiverse

The basic architecture of our scanner is a Kinect v1 scanner traveling up a linear rail as a photography turntable slowly rotates a subject. The scanning software we use is ReconstructMe, which necessitated using the v1 Kinect scanner rather than newer v2 (as of this writing I don’t know of a software package that supports the v2, though please correct me if I’m wrong). The scan is first started in ReconstructMe, then the button on the scanner is pressed to initiate the motors. The next version will be a one-button solution:
 

 
Our design methodology was to build this utilizing as much as possible that was already in the Lab or that could be printed on our Ultimaker2. The 80-20 building set has been pretty indispensable for us and we had a pile of extrusions and connectors we could make use of for the frame. The various stepper brackets, camera mounts and limit switch mounts were all 3D printed. We decided to just buy a photography turntable rather than build from scratch as Fredini did. A set of casters rounded it out and let’s us easily move the scanner around:
 
IMG_4371IMG_4364
IMG_2221

IMG_2299IMG_4388

IMG_4376IMG_4379

 
The electronics are simply an Arduino driving a stepper driver, a mechanical relay, 2 limit switches, and an LED button for input and output.
 

IMG_4390

 

Results, Issues and Next Steps

Ultimately there are some limitations with a single camera setup: the subject needs to stand still for the duration of the scan and the camera will always miss something. A hand-cranked method allows an operator to watch the progress of the scan and adjust the speed to make sure coverage is more complete. Our version moves at a constant rate with no feedback from the software. Still, most of our scans came out fairly complete:
 
Screen Shot 2015-12-02 at 10.22.55 AM

Screen Shot 2015-12-02 at 10.29.05 AMHowever poses with more occlusion definitely had some issues: Screen Shot 2015-12-02 at 10.25.08 AM

View a sample model in our web viewer.

Leave a Reply