Chasing microns - OpenScan Mini accuracy test part 2
TLDR: I improved the setup and got myself some highly accurate steel spheres with nominal diameter of 20 and 25 mm ± 0.0025mm. I used the OpenScan Mini to scan a scene with both spheres, scaled it using a reference measurement from one sphere, and analyzed the diameter and surface deviation of the second one. I reliably get a diameter of ~20±0.03mm as well as a surface deviation within 2σ = 0.03mm
I knew that my latest post claiming a bold 0.008mm accuracy made a very click-baity claim, but it triggered enough professionals, so that I got a lot of feedback and valuable input. Thanks to all those people, sharing their knowledge. This is a great help to improve this project!
And even more thanks goes to those people supporting the project with donations through Patreon. I probably couldn't face my wife, after spending >100€ on some steel balls, so thank you for making this kind of experiments possible! :)
The setup: Chrome Alloy Steel spheres
Sample image showing the illumination and surface preparation
two spheres of 20 and 25mm diameter (claimed accuracy within 0.0025mm)
using the OpenScan Mini with Polarizer module (cross polarization setup)
covered the scene in a thin layer of Aesub Orange self-vanishing 3D Scanning spray
took 150 photos per set (--> 230-250MB total data) and a total
capture process takes 11 mins per set
a total of 8 sets within two days (temperature within 20°C ± 2K)
processing was done using the OpenScanCloud and took 6-8 mins per set
Just let me know if you want to check the raw image data or resulting raw/scaled 3d models, and I will happily share all files.
The scaling procedure (using free Autodesk Meshmixer)
Measuring the diameter of the sphere to calculate the scaling factor in Meshmixer
I can not repeat this point enough: Photogrammetry models naturally come without any information about scale. But it is absolutely possible to scale the model accurately with various methods:
include markers in the scene with known distance
know the camera positions and parameters
include an object with known dimensions
Unfortunately, the first two options are not implemented in the OpenScanCloud yet (but would work with different software packages).
For this reason, I used the 25 mm sphere to take 5 measurements and calculate the mean. See the image above, where the raw scan shows a diameter of ~ 0.3128mm (--> scaling factor: 79.923). I used the measuring tool in "Analyse --> Measure" (select the type and direct as shown in the image). I scribble over the surface of the sphere and collect several values and calculate the scaling factor.
Scaling was done in Meshmixer too ("Edit --> Transform --> Scale XYZ").
I understand, that this method is not perfect and introduces quite a bit of uncertainty, but from a practical point of view, it just works fine. And we shall see in the results of this post, if scaling can be done reliably...
Getting the scaling factor for each dataset using five measurements
Unfortunately, this blog just lets me post images and videos (no tables), so let me know if you are interested in the raw Excel sheet containing all the measured and derived values ;)