Exploration of open source photogrammetry
About me
CTO & Co-Founder of Obrary
Focused on Product Visualization and Manufacturing automation
Out product is a sales experience SDK for brands, retailers and manufacturers of personalized & customized products
Our interest in VR
VR provides new opportunities to create interactive/engaging sales experiences for products
Extreme interest in Reality Capture & WebVR
Research Objective(s)
Q: can we develop a cost effective workflow for capturing products.
-
Textures quality is critical
-
Wide range of object:
- Shapes
- Sizes
- Reflectance
Questions:
- Are there open source solutions that we can use commercially?
- Are open source solutions mature enough to use?
- Can a fixed time investment to capture session ensure success?
- What Type of Capture rigs might we have to design/build?
- How much compute (time) is required to process
- What operator skills are required
Next: What Technologies?
OPTIONS for Reality Capture - RGB-D (IR)
- ($$) Kinect
- ($$) Structure (Occipital)
- ($$$$$$) ArcTec EVA
- ($$) Tango (tablet/phone) *
*If you have a tango device, i would like to chat with you.
OPTIONS FOR REALITY CAPTURE - SL/Laser
- ($$$$-$$$$$) David Laser
- ($$) Eora-3d
- ($) DIY Laser
OPTIONS FOR REALITY CAPTURE - Photogrammetry
Commercial*
- AutoDesk ReCap/Memento/ReMake
- Agisoft PhotoScan
- Capturing Reality(.com)
- Pix4D
Open Source*
- VisualSFM /CMMS + MeshLab
- VisualSFM/OpenMVS
*For an appropriately comprehensive list:
https://en.wikipedia.org/wiki/Comparison_of_photogrammetry_software
The focus of this talk
Why Photogrammetry?
-
Easy to "overcapture"
-
Highest quality textures
-
Software solution
-
Many vendors (Free/Paid)
-
Not everything has CAD file(s)
-
Realistic Aesthetic
The chief objective of a photogrammetric process is to determine the distance between points in 3d space.
Simple Right?
Basics
- Point - simple a point in 3D space (x:0, y:0, z:0)
- Point Cloud - a collection of point in space, generally representing a multitude of points on a physical object.
Basics
Point clouds can have color, but they can't represent textures
Basics
In order to have textures, a point cloud but be converted to a mesh.
- There are many algorithms to convert clouds to meshes.
- It is difficult for a single algorithm to perfectly reconstruct any arbitrarily shaped point cloud.
- This a practical sense, this is the hardest (experimental) part of the process.
Basics
Structure from motion (SfM)
A range imaging technique; it refers to the process of estimating three-dimensional structures from two-dimensional image sequences which may be coupled with local motion signals.
tl;dr
Alogrithms + many pictures = form
A (simplified) Workflow
- Capture (The Object)
- Feature Detection/Matching
- Sparse Reconstruction
- Dense Reconstruction
- Mesh Reconstruction
- Texturization
- Export
Wait
Wait Longer
Cleanup
More Cleanup
2.
3.
4.
visualsfm + cmvs
meshlab
Experiment 1
Business Card Box
Experiment 2
Bicycle
Comparisons
Canon SX 230 HS (circa 2011 - 12MP)
Bicycle - 52 Image Capture
Autodesk Memento vs VisualSFM + Meshlab vs Agisoft PhotoScan
Takeaway: Commerical Not always better
Walthrough
Business Card Box - 43 image capture
- Smoother Mesh
- Close to Manfold
- Rounded corner with highlight depressed.
- Flat Surface Missing points; causing rough mesh
- Open Mesh
- Handled rounded corner with highlight better.
Walthrough
Open Source Photogrammetry
By Eric Schleicher
Open Source Photogrammetry
- 909