Featured image of post Turntable Photogrammetry Workflow

Turntable Photogrammetry Workflow

The workflow that I use to do photogrammetry scans capturing all sides of an object

A few people asked me about my workflow for doing photogrammetry scans of small to medium-sized object (mainly keyboards). This is the turntable workflow that I have used successfully after many poor scans. Keyboards are particularly tricky because they are so flat (lacking geometry), so it can be difficult to get the top and bottom to recognize each other. For this example I chose to scan a unique trackball that I have, called Spaceball 3000.

Overview

The goal of this workflow is to capture all sides of an object. This is accomplished by taking taking photos at multiple angles while the object rotates on a turntable. The important technique here is to first generate some rough meshes of the object from each angle, trim the meshes to ignore the turntable/stand, and finally realign all of the newly masked photos.

Capture (Photos)

I used an 85mm lens at f/8 aperture and took 160 photos total (30 photos * 6 angles). I have an automatic turntable that is triggered to move after each photo, so this part of the process is mostly automated for me now. In the past I’ve used a camera remote trigger in one hand and a turntable remote control in the other to take the photos and advance the turntable manually.

Photogrammetry Photos

Initial Photo Alignment

Import the images into separate chunks, one for each camera angle (e.g. 6 chunks for me). Then I run camera alignment on each separate chunk with the following alignment settings:

Align Photos

These are the two key settings:

  • Apply masks to: None
    • We do not have any masked images
  • Exclude stationary tie points: Yes
    • This will tell the software to ignore non-moving background features

Initial Mesh Generation

The next step is to generate meshes for each of the chunks. At this point I’m not interested in having a perfect model, only good enough to extract masks from. These are the settings that I use:

Build Mesh

After the meshes have been generated, I delete the parts that contain the stand/turntable. I find the lasso select tool the most useful for this step.

Trim Mesh

Import Masks from Models

Right click on any image and select Masks > Import Masks. The method for import should be Model and applied to Entire Workspace. These are the default settings to use:

Import Masks from Models

This will analyze each image against the mesh and mask out any parts that have been deleted from the model. This will allow us to align all photos in the set as a single chunk, which usually gives a better result than merging chunks.

Masked Photo

Align Masked Photos

Move all photos from the separate chunks into a single chunk. Run photo alignment on the new chunk with the following settings:

Align Photos Apply Masks to Keypoints

This time the important differences are:

  • Apply masks to: Key Points
    • This will tell the software to only look for features and do matching on the unmasked portion of the images
  • Exclude stationary tie points: No
    • The background features have been masked out from the images

After running photo alignment, it’s best to delete bad points and optimize the alignment. Use the Gradual Selection (located in the Model menu) and select bad points using each of the tools. Delete the bad points and run optimize cameras between each tool.

Generate Mesh

Next I run generate mesh with the following settings:

Build Final Mesh

Build Texture

Finally, I build the texture with these settings:

Build Texture

Built with Hugo
Theme Stack designed by Jimmy