I thought I’d write a quick post about my photogrammetry set-up for small objects, because I’ve been doing a lot recently, and as a result I’ve spent some time optimizing my workflow.
The long and the short of it is that it looks like this:
I’ve got a small light box from Amazon, which includes soft background and LED lighting. (Affiliate link: https://amzn.to/2wn4mra).
My Sony Nex-6 with 16-55mm lens, fully zoomed and manually focused, supported by a normal camera tripod.
Then I’ve got my Samsung note 8, upside down balanced using a flip case. Being upside down, I’m able to get the lens really close to the table (wine helps with photogrammetry):
This gives this kind of image:
Which, as you can see is nice and low, while the Nex-6 is taking photos from a higher level.
Now, the beauty of this setup: The Note 8 (and likely some other phone cameras) can be activated by voice! So I can press the shutter button on the Nex-6, and say ‘Cheese’ or ‘Snap’ and both cameras will take a photo. I then reach in, rotate the object by a small amount, and repeat.
I try and take about 40 pictures per revolution of the object, but having both cameras firing simultaneously means I can get 80 photos in two circles at different heights, in just a minute or two.
A successful reconstruction in AliceVision Meshroom looks like this:
You can see the two circles, the smaller lower one from the phone camera, and the larger higher circle from the DSLR, both providing full coverage.
Hopefully that’s of use for people who want to speed up data collection without resorting to expensive camera synchronization (or pushing lots of shutter buttons), relying on just a camera and a phone.
thank you for your inspiring work!
If you are interested, I wrote a couple of papers about this topic (the last one is still under peer review).
Excellent as always. I have read many of your posts and have found valuable advice.
I was wondering whether you have considered using hacked cameras? Wen I built my 8mm film scanner using Arduino, I found the CHDK, Caon Hack Development Kit, and that enables me to shoot thousands of pictures of 8mm frames without any manual interaction. Details at http://www.sabulo.com/sb/8mm-film/the-8mm-film-scanner-telecine-project-part-2/
I am also building a servo motor operated turntable for scanning purposes, which may be of interest you once I get the parts printed and the Arduino robot coded.
Ah, yes I’m very interested in setting up a servo motor operated turntable! Thanks for the link.
Have you considered building a custom camera rig? With a Raspberry Pi and an expansion bus you could run several cameras simultaneously for ~$200 total, and I imagine it could also be used to control a servo operated turntable simultaneously and automatically trigger the cameras at specified intervals of rotation. Resolution would be limited to 8MP; since I’m new to SfM and haven’t really brushed up on literature I’m not sure how models scale with image resolution, or if the increased volume of images would compensate for the loss of data per image (therefore I’m also not sure whether or not this would be a justifiable project from a cost perspective, since $200 is enough for another decent standalone camera). I think subject sizing would also be an issue, since most Pi compatible cameras have cables that are around 6 inches long, so at most you could get a 12-inch spread without buying additional cabling.
The Pi definitely isn’t capable of running any of the processing software, but it should be able to handle image capture at a rate of about 1 image per second from each camera. I’d like to hear what you think about the potential here (or lack thereof).
I have indeed. I have a set-up with raspberry pi for motion capture (see here: https://figshare.com/articles/Reconstructing_moving_morphology_using_RaspberryPi_PiROMM_Range_of_motion_in_ostrich_cervical_vertebrae_at_progressive_stages_of_dissection/5155462), but I think for photogrammetry the cameras just aren’t good enough (at least the v1 and v2 I’ve tried). I’d like to get a turntable plus camera trigger set up (probably controlled by a pi) but I haven’t had time to do so yet sadly.
I would like to share a short clip of my HD webcam / Arduino rig. i am using SkyStudio Pro to do the capturing at 3 sec intervals, then do the mesh in Autodesk’s Recap at the moment. Due to Dr Falkingham’s excellent blog, I have also got academic licensing for the Zephyr softweare, which looks promising.
I will write up a blog on how I made this system in the near future.
Hello, If i understand correctly, did you move the object manually in between shots?
I have a question. How did you manage to reconstruct the cameras in the 3D view on meshroom, since you manually rotated your object (turntable effect).
I have taken some photos with a stationary camera with different vertical angles. My object is on top of a turntable. With this, I’m only able to capture the front of the object and the back becomes hollow. The cameras created on the 3D view are positioned on top of each other forming +/- 180º angle on turn of the object. Of what I can see in your image your cameras go around your object, I only get half of that.
Just wondering how did you manage to solve this issue in meshroom.
Thanks a lot and really nice job!
It sounds like you need more photos around the end, because it’s failing see the continuous sequence from one half to the other. There’s not nough overlap between the two 180 degree coverages. If you’ve run it with the object on it’s top and bottom, try another circle of photos with the object in it’s side (or two circles one for each side), alternatively, if it’s difficult to position the object on it’s side, take each set of photos twice and move the camera up and angled down for the second set.
Alternatively, it might be that you have too much background visible – make sure there’s no (or little) features behind the object (e.g. a white cloth).
Did you consider using a macro lens? If you decided against it, can you explain why?
I have been using a point and shoot (Canon Powershot G12) to create 3D models of corals. By repeatedly imaging the same coral, I would like to accurately track growth. Eventually, my set up will be underwater. As a test, I’ve been doing dry runs with a coral skeleton, but my models are incomplete in places, and missing information. I’m planning to invest in a better camera/lens (full-frame with macro lens). But after reading your post, I wondered if a macro lens should be avoided.
Your blog is very helpful. Thanks for sharing your experience!
The reason not to use a macro lens is that generally you get a really small depth of field, and photogrammetry software doesn’t particularly deal well with that. There are options for focus stacking, but that’s more effort than it’s worth. As such, the small sensor in the phone’s camera is actually better in many ways for really small objects.
So yeah, the G12 should be great – just make sure you set a high F-stop and use a tripod, and take twice as many photos as you think you’ll need.
Have you tried focus stacking using a device with the ability to create the stacked image in the camera? There aren’t many cameras that can do this in-body stacking, but Olympus make a few, including a compact, and possibly Panasonic. There are more machines that can do the focus bracketing part of the process, but this would require manual stacking in Photoshop or Affinity Photo or the like.
We have successfully used an Olympus camera to make models of human teeth. All items were very small and required the use of a macro lens. Using stacking enabled us to achieve enough depth of field to have all the object in focus. We needed to do this for 22 objects (19 tiny milk teeth plus some others). We couldn’t have got the results without stacking and wouldn’t have tried without in-body stacking, as it would have taken too long to run the image sets through Photoshop.
Many thanks for the really helpful info in your blog. The comparison of software is really valuable.
No, I’ve not tried focus stacking because my camera can’t do it in-camera, and it’s just too much work to do it externally at the moment, but I’m certain, as you’ve found, it will be a massive boon for small object photogrammetry.
Glad you’ve found the comparisons of software useful!