Introduction: Capturing Full Body Scans in Color
This tutorial will teach you how to capture full body scans of people using photogrammetry and to prepare them for 3D printing. By utilizing a few DSLRs, lights, a turntable, a good pc, a couple relatively inexpensive software programs, and with patience and practice, you can capture professional quality scans with full color textures for 3D printing (or other uses). Let's begin...
Step 1: Equipment
1 large turntable - Arqspin 24" Pro Turntable. $350.00 (Arqspin)
6 photo light fixtures and stands (minimum lighting) - 2 Top Lighting photo lighting kits. Color balanced CFLs for photography. Total of 1,080 Watts. $265.00 (Amazon)
4 DSLRs - Make sure they are of the same make and model. I used Canon EOS 1100D cameras with standard 18 - 55mm kit lenses. $1,800.00 (Amazon)
4 AC adapters for camera power - AC adapter CA-PS700. Model #WP-ACO7420. $37.00 (Amazon)
1 light stand. This is for the cameras. $10.00 (Amazon)
4 camera mounts. $40.00 (Amazon)
4 USB to miniUSB cable - 6' Amazon Basics. $6.00 (Amazon)
1 USB hub with 4 ports - Sabrent Model: HB-U3P4. $15.00 (Amazon)
1 remote shutter release - SHOOT remote switch. $24.00 (Amazon)
1 white vinyl backdrop 9' x 15' (or 6' x 12' minimum). $63.00 (Amazon)
6 clamps (or more) for backdrop. $9.00 (Amazon)
3 power strips. $20.00 (Amazon)
* 1 circuit board for connecting remote shutter to all 4 cameras. This was done for me and I don't have a cost associated with it. You will probably have to do this step yourself.
* Computer. You will also need a notebook or desktop computer. It may be helpful to have a dedicated computer for capture and another one for image processing and scan cleanup or a render farm, if you intend on doing a lot of scanning.
All the following programs are available for both Windows and Mac.
SmartShooter - To capture the images. $50.00 (SmartShooter)
Agisoft PhotoScan - This program analyzes the shot and positions them as virtual cameras in order to create the 3D model. $179.00 (Agisoft)
ZBrush - You'll need this to clean the PhotoScan model to make it ready for printing. (I already owned this software so it was free for me). $795.00 (ZBrush)
2 rolls of gaffers tape - 1 brightly colored for marking stand placements and gear 1/2" wide. 1 neutral roll (standard black or brown) 2" wide for taping down cords and cables. $35.00 (Amazon)
7 sandbags - 5 lb. sandbags should be sufficient for weighing down the light and camera stands. (Will need to add sand). $40.00 (Amazon)
Total Cost: $3,738.00
Note: Some prices are approximate and subject to change. You may find these or similar items for more or less than listed here.
While this system may seem expensive, it gets great results. Most 3D scanners that cost less than this can only scan small objects and get poor detail. Laser scanning systems that are comparable to the level of detail that my photogrammetry system can achieve cost around this much or more and can record surface detail but not color information. There are a number of ways to reduce the cost of the system, such as building a DIY turntable.
Step 2: Setting the Stage
Above are photos of two different implementations of the system and in different states of completion; different spaces require different orientations of the lights. A backdrop is essential to provide adequate reflected light and help the software separate the subject from the background. You will have to experiment with your setup to find what works best in your space.
The key is to get your subject lit well, get a good amount of light reflected off the backdrop and to minimize shadows. It is preferable to position the lights in such a way that the subject's shadow falls behind them and their body blocks the shadow from the cameras' collective view. The large backdrop will also allow you to lay part of it on floor. Place the turntable on top of it to reflect light up onto the subject. Reflectors and bounce boards (foil or foamboard) can also be used for this purpose.
For my setup the distance between the cameras and the center of the turntable (where the subject will be standing) is roughly 6'. This is the minimum distance needed if setting the camera lenses to 50mm. At least another 2' of distance between the backdrop and the center of the turntable will also be required. The opposing lights, to stage right and left, are around 7' from each other.
You will also need some room to position your lights, adjust camera settings and a small space for your workstation.
Plan on setting aside a 9' L x 9' W x 8' H space for the complete set; backdrop, turntable, lights, cameras and workstation.
Keep in mind that the turntable is 6" higher than the floor. (For DIY turntables the height may be greater). Therefore a 6' 2" subject will actually be 6' 8" from the floor to the top of the head. The top camera in your setup will need to be above that to shoot the top of the head properly.
Step 3: Camera Setup
Mount the cameras on the camera stand at least 8" apart from each other. They will be mounted sideways as seen in the photos above.
Insert DC coupler into each camera's battery port and connect the AC adapter to an outlet, preferably through a powerstrip with surge protection. Insert one end of the remote shutter cord into the remote shutter port on the camera and the other end into the remote shutter board. Plug the remote shutter switch into the remote shutter board as well. Insert the small end of the miniUSB to USB cable into the miniUSB port on the camera and the full-sized USB end to the USB hub. Connect the USB hub to the computer through a USB port and power on the USB hub.
Choose the focal length for your setup. It may be preferable to use fixed local length camera lenses of 35mm or 50mm. 50mm is the better of the two. This is what is called a "normal" lens and it "sees" what a human eye would see. Since the cameras came with the standard 18mm-55mm kit zoom lens, I guesstimated where 50mm would be (by counting the rings between 35mm and 55mm) and marked it off with bright gaffers tape and a sharpie. At the distance my cameras were from the subject 50mm worked very well, just framing the subject without much extra space. Set the camera to manual operation and manual focus on the lens, i.e. turn the dial on top of the camera to full manual and flip the switch on the lens from AF to MF.
Go into the Menu Settings on the cameras. Make sure that Auto Power is set to OFF. The AC adapter will enable you to keep shooting without having to worry about power loss.
RAW files are too big to be handled over USB while continuously shooting with multiple cameras. High quality JPEGs work very well and will save you time and storage. (RAW files would need to be converted to JPEGs before being imported into PhotoScan and PhotoScan actually prefers unadulterated files). Make sure that Quality is set to Large JPEG.
Set Auto ISO to 3200. Enable Live View so you can easily check your shot and focus on your subject.
Step 4: Capturing Photos in Smart Shooter
Open SmartShooter. When all the cameras are connected to the computer through USB, SmartShooter should recognize all 4 cameras. If it doesn't or you encounter any other issues syncing the cameras, skip ahead to my troubleshooting steps.
When SmartShooter recognizes all 4 cameras, make sure "Multiple Cameras" from the pull down list under Camera Controls AND in the Viewer are selected and press the Connect button. You should be connected to all 4 cameras through Smart Shooter but you won't see the view from the cameras yet. To see the Live View from all 4 cameras, make sure "Multiple Cameras" from the pull down list under Camera Controls AND in the Viewer are selected and check Enable button under Live View in the Camera Controls panel. You will now see all 4 camera views but the view will be sideways since the cameras are mounted sideways on the camera stand. To correct for this press the rotate button in the Viewer until the cameras are right side up.
SmartShooter can control many of the camera settings through the USB connection to the cameras. Under Camera Controls set the cameras up as follows (some of this may change due to your available lighting): Aperture = 8, Shutter Speed = 1/40, ISO = 200, Exposure = 0, Quality = Jpeg Large Fine, Metering Mode = Evaluative, White Balance = AUTO, Focus Mode = Manual.
Have your subject stand in the center of the turntable so you can manually focus each camera. Press the magnification button on the upper right corner of the camera to zoom in the Live View to 10x. Rack the focus until the image is tack sharp and then press the magnification button again to return to normal view.
When you are ready to capture have the subject strike a relaxed pose with them standing towards the center of the turntable. Turn on the turntable. Have the subject remain very still as the turntable spins. It may be helpful for them to focus on an imaginary point in space that rotates with them in order to keep their eyes focused in one position. When they are facing the backdrop, with their back to you, beginning shooting with the remote shutter switch. Try to press the switch about 1.5 seconds apart to get 60 shoots, which Smart Shooter will resolve as 60 virtual cameras. Stop shooting just before the subject faces the backdrop again. If you end up with your last shots being identical or very similar to your first shots, throw those last shots out. If the shots are the same or very similar it will confuse PhotoScan and get a poor result.
Above are some shots of me, from my scan. (Someone else had to press the shutter release). While the images may seem similar, they are from different cameras; 1) high angle camera looking down to get the top of my head and getting another angle on my face and torso, 2) My head and torso from a more or less level view, 3) A camera with a slight low angle on my lower body, 4) A high angle shot of my lower body.
You need at least 2 angles of the same parts of the body to have the software make a mesh. Note that the photos of my upper body and lower body have a little overlap; you can see my hands and the top part of my pants in the upper body shots and the lower body shots. This is essential for PhotoScan to create a full body 3D model.
Step 5: Aligning Cameras in PhotoScan
In PhotoScan start a new project and import all the photos from your scan. When all the photos are loaded, go to Workflow - Align Cameras. Change the settings for aligning cameras under General to Accuracy: High, and under Advanced to Point Limit: 40,000. Press OK.
It will take some time to for PhotoScan to align the cameras, probably a few hours. When it is done, carefully check to make sure all the virtual cameras are in the correct positions. If the scan was a complete failure then PhotoScan will lump all the cameras on top of each other and only project points in one direction. If it was a good shoot the cameras should be in the correct position.
Often a few cameras may be out of alignment. It this occurs, select the affected cameras individually and right-click. In the pop-up menu select Reset Camera Alignment. Complete for all misalign cameras. These cameras will now show up in the Workspace window with NA next to them. Select one of these cameras, right-click and select Align Selected Cameras. Repeat until all cameras are positioned properly. If it is still a problem, try reseting and aligning the misaligned cameras again.
Step 6: Generating the Dense Point Cloud
When the camera were aligned they create a sparse point cloud. If the sparse point cloud looks good, you will generate a dense point cloud. First select rotate around the sparse point cloud to double-check. Then, select the bounding box rotation icon. Rotate the bounding box so it is aligned with the model, then select the bound box size icon and conform the bounding box until it fits just around the subject. When that is completed select Build Dense Cloud under the Workflow menu tab. Change the Dense Cloud settings under General to Quality: Medium, and under Advanced to Depth Filtering: Aggressive and press OK.
Step 7: Cleaning Up the Dense Point Cloud
When PhotoScan creates the Dense Point Cloud there will be some garbage, attached to the model, primarily bits of backdrop. Use the lasso tool to select as many of these extra point as possible and delete them. Make sure not to delete good point from your scan. It is helpful to rotate around the model to get different angles while doing this. Generally you will see the most garbage points in between the legs, around the feet and about the head. Once you've removed these bad points you are ready to proceed to generating the mesh.
Step 8: Building the Mesh
Once the Dense Point Cloud is cleaned up, the next step is to generate the mesh, which will give you a wireframe mesh and model. Under Workflow select Build Mesh. Adjust the settings under General to Surface Type: Arbitrary; Source Data: Dense Cloud; Polygon count: 5,000,000 and press OK. The mesh should generate within minutes.
Step 9: Building the Texture
Go to Workflow - Build Texture. Set it to General to Mapping mode: Generic; Blending mode: Mosaic (default); Texture size/count: 4096 x 1 and press OK. This will render very quickly and you can export the textured model as an .obj for cleanup.
Step 10: Cleaning Up the Model in ZBrush (and Maya)
If you were able to produce a successful model in PhotoScan you still have some work to do in ZBrush to make it suitable for 3D printing. You'll definitely has some scanning errors/problems that will need repair. The images above are of a model being cleaned in ZBrush. Note the missing chunk of ear that needs to be fixed.
The common issues you will run across are as follows:
Lumpiness, or bumps across the the surface of the model. These can be resolved using the flatten brush for even them out, followed by the smooth brush for final cleanup. You don't want to just use the smooth brush or you will lose all your nice scanned cloth folds, skin texture, facial features, etc.
Webbing and bit of backdrop attached to model. You will need to cut out webbing in between the legs, between the arms and the body, extra material attached to the face or head, etc.
Holes in the mesh or missing features. You may have some holes in the mesh, either from the scan itself or when you remove the additional material and webbing from your model. PhotoScan can only create models based on what is in the photos you give it. If in your scan the subject's arm blocks part of his/her torso so that part of the arm or body is not visible in enough shots for example, then PhotoScan will either mesh the arm to the body or leave a hole in the mesh where the one part occluded the view of the other. Some of this can be fixed in ZBrush but you may need another 3D program to help repair the mesh.
Long or flyaway hair or other small projecting features. Hair will possibly need to be re-sculpted especially if it is long. This is one instance where baldness is a blessing. Small features that project from the surface of the model will either not print or will break off when printed. For example, a hanging strap that is not flush/embedded on the model will not work. Best to cut these small pieces off.
Lester Banks published a great video tutorial on cleaning up AgiSoft PhotoScan models in ZBrush, that will very clearly show you the steps to prepare your model.
Step 11: Tips, Tricks & Troubleshooting
The following steps will help with best practices to prepare for a successful shoot, potential problems, addressing software issues, etc.
Step 12: What Not to Wear
PhotoScan works best when there is a good amount of variation between adjacent pixels.
Here are some things that you should avoid...
1) Solid black clothing.
A black suit, dress, skirt, etc. will probably not scan well.
2) Tight patterns, especially stripes.
This will confuse the software when it tries to align the photos. (It will also make fixing the textures very difficult).
3) Very bright or very dark colors could be problematic.
4) Reflective surfaces.
This means no watches, jewelry or glasses. Glasses are especially bad because they will also distort facial features.
If you must have these items in the scan or on the model you can lightly dust them with baking powder. You may want to shoot this as a second pass or scan the items separately from the main subject. Alternatively, these items can be individual 3D models added to the main model in post.
Step 13: Problems With Syncing Cameras
If the cameras start going crazy and fire their shutters, go dark or won't turn off...
Or if the remote switch doesn't release the shutters on all the cameras or work at all...
Or if Smart Shooter won't recognize all the cameras or won't live view all the cameras, etc.
If you do the following, in the order described, it should resolve all these issues:
1) Turn off all cameras, shutdown the computer, disconnect all cables and the USB hub and turn the power off on the hub, too.
2) Restart the computer.
3) Open Smart Shooter.
4) Turn on all cameras and press Live View button on each camera.
5) Connect one camera at a time to the remote shutter board and to the unpowered and untethered USB hub.
6) Plug the remote switch into the remote shutter board. Test fire. All cameras should fire.
7) Plug USB hub into the computer with the hub still powered off.
8) Turn on the USB hub. Cameras may all go dark, with only one activated by remote switch. Don't worry. Move on to next step.
9) Smart Shooter should recognize all 4 cameras. Make sure "Multiple Cameras" from the pull down list under Camera Controls is selected and press the Connect button.
Now all 4 cameras should fire again with the remote switch. Test fire.
10) With "Multiple Cameras" selected under camera controls AND in the viewer, check off the Live View - Enable box under Camera Controls.
All cameras will probably go dark and the remote shutter may not work either. Don't worry, move on to next step.
11) Go to each camera and press the Live View button on the back of each camera until all 4 camera displays are active again.
12) Remote should work again. Test fire. Everything should be working now. You're ready to roll!
Step 14: Final Print
And there you go...
My model was printed at 12" tall on a Z Corp 3D printer in full color by iMakr. (A proprietary finishing method was used to make the colors pop and give it a light glossy finish).
If you like this tutorial please vote for it in the tech contest and formlabs contest! If I get a form1 I'll print my scans on it and share the results with the community.
Please post images of your setups, scans and printed models, too. I'd love to see your results!