Photogrammetry Booth
- alejandro escobar
- Feb 22, 2019
- 4 min read
I recently joined a group interested in photogrammetry. It is worth saying that I have been exploring this technology for the past three years. I believe that there is a huge ground yet to be covered and also that it has huge potential for VR, AR, and game development industries.
A month ago, I had the opportunity to attend a quite interesting meeting held at CSM where a research team shared their experience in building a portable photogrammetry booth that could be used by both museums and similar organisations interested in documenting their collections.

I was really impressed by the array of 7 DSLR cameras, all reacting to the synchronised movement of a rotating platform holding the 3D Model. This project inspired me to create a low-cost alternative using Raspberry Pi as I already knew you could use them as cheap DSLR cameras.
I was really impressed by the array of 7 DSLR cameras, all reacting to the synchronized movement of a rotating platform holding the 3D Model. This project inspired me to create a low-cost alternative using Raspberry Pys as I already knew you could use them as cheap DSLR cameras.
I started my research by looking at the Raspberry Pi camera features and I was lucky enough to have access to both 5MP and 8MP versions so it was easy for me to run a series of tests using both cameras.

First, I learned how to take a single image using a python script that was executed from the Raspberry Pi. On the first two lines, it just calls some libraries needed to take the photo, the third line calls the camera object and the forth activates it, from there, all the consecutive lines set different parameters for the camera. Next, ” camera.capture” saves the image in a specific folder and the last line shuts the camera off.
from picamera import PiCamera
from time import sleep
camera = PiCamera()
camera.start_preview()
sleep(3)
camera.iso = 100
camera.shutter_speed =8000
camera.sharpness = 10
camera.resolution = camera.MAX_RESOLUTION
camera.capture('/home/pi/Desktop/test3.jpg')
camera.stop_preview ()
It worked!

Next, I wanted to create a code that would allow me to take simultaneous photographs of an object from 8 different angles. As I did not have a rotating platform, I was aware that I needed enough time to manually rotate the object up to 45 degrees each time in order to achieve a full 360 rotation in 8 steps.

And this is the code I managed to create, it is basically the single image code duplicated eight times and separated by a small delay (sleep (X)).
from picamera import PiCamera
from time import sleep
camera = PiCamera()
camera.start_preview()
sleep(3)
camera.iso = 150
camera.shutter_speed =7000
camera.sharpness = 100
camera.capture('/home/pi/Desktop/imagesP4/imageA1.jpg')
camera.stop_preview ()
sleep(5)
camera.start_preview()
camera.iso = 150
camera.shutter_speed =7000
camera.sharpness = 100
camera.capture('/home/pi/Desktop/imagesP4/imageA2.jpg')
camera.stop_preview ()
sleep(5)
camera.start_preview()
camera.iso = 150
camera.shutter_speed =7000
camera.sharpness = 100
camera.capture('/home/pi/Desktop/imagesP4/imageA3.jpg')
camera.stop_preview ()
sleep(5)
camera.start_preview()
camera.iso = 150
camera.shutter_speed =7000
camera.sharpness = 100
camera.capture('/home/pi/Desktop/imagesP4/imageA4.jpg')
camera.stop_preview ()
sleep(5)
camera.start_preview()
camera.iso = 150
camera.shutter_speed =7000
camera.sharpness = 100
camera.capture('/home/pi/Desktop/imagesP4/imageA5.jpg')
camera.stop_preview ()
sleep(5)
camera.start_preview()
camera.iso = 150
camera.shutter_speed =7000
camera.sharpness = 100
camera.capture('/home/pi/Desktop/imagesP4/imageA6.jpg')
camera.stop_preview ()
sleep(5)
camera.start_preview()
camera.iso = 150
camera.shutter_speed =7000
camera.sharpness = 100
camera.capture('/home/pi/Desktop/imagesP4/imageA7.jpg')
camera.stop_preview ()
sleep(5)
camera.start_preview()
camera.iso = 150
camera.shutter_speed =7000
camera.sharpness = 100
camera.capture('/home/pi/Desktop/imagesP4/imageA8.jpg')
camera.stop_preview ()
I also managed to create a proper setup using two sidelights and a lightbox to fade shadows as much as possible. I also managed to create a quite practical camera tripod by using a flexible desk light I had around.



To my surprise, the photos taken with the 5MP camera were substantially better than the ones from the 8MP camera.

I used Photoscan (Photogrammetry software) to render a 3D model from images taken from both cameras; the 3D models from each set of images were quite bad. My first guess was that the images from the 5MP camera did not have enough resolution and that the ones from the 8MP camera were actually out of focus. After doing a bit of research on this issue, I learned that sometimes you have to manually adjust the focus of the lenses; otherwise, you will get pretty blurry images.
I saw a tutorial that encouraged me to manually fix the focus for the 8MP camera, and the next photographs were much better than the ones taken with the 5MP camera.

At this point I started to think that the first experiment went wrong not only because of the image quality but also from the camera setup, in my past photogrammetry projects, I always held the camera in my hand whilst moving around the object and in that case, elements from the background were essential to help Photoscan build the 3D meshes. The new setup works in a very different way, as you need to remove all the background from the images (I did it using masks), but perhaps I just need to do more testing to learn more about how to do this other process using Photoscan.
I have also been doing more research on how to build a proper photogrammetry boot,h and I already know you could potentially connect 8 Raspberry Pi cameras onto a single Raspberry Pi board. Having an array of cameras pointing at the object from 8 different angles will make the process go much faster. I also plan to build a 3D printed Arduino controlled platform for a fully automated process with a budget under £350.


So now I am focused on getting the funding to create the Photogrammetry booth and to continue my research.



Comments