[OpenSPIM] Registration plugin software torture-test
Luke Stuyvenberg
stuyvenberg at wisc.edu
Mon Mar 10 15:14:46 CDT 2014
Hey everyone,
To try to get a feel for which parts of the reconstruction process were holding us up, I ran a registration torture test on some data acquired while I was in Dresden at the MPI.
The data was taken on an OpenSPIM 1.0. The sample was a zebrafish embryo infected with a fungus that fluoresced. Nine views, in 20-degree increments, each consisting of a stack ranging from 300 - 450 um (at 3 um steps) were recorded. The Cube laser was set to 3 mW, and the Orca ER camera was set to 100ms exposure time.
I ran the registration plugin in both modes (Difference of Gaussians and Difference of Mean), and with threshold values ranging from 0.004 to 0.018 in steps of 0.002. The bead radii (sigma) values passed to the plugin were 1 and 2. Each combination of these settings was run 100 times, and scored as follows: Each time the RANSAC algorithm deduced a model, denoted in the logs by "Remaining inliers after RANSAC:", the percentage of remaining inliers was included in a running average.
The results are as follows:
Difference-of-Mean (Integral image based):
Average score for threshold 0.004: 89.19%
Average score for threshold 0.006: 91.72%
Average score for threshold 0.008: 86.44%
Average score for threshold 0.010: 69.39%
Average score for threshold 0.012: 25.00%
Average score for threshold 0.014: 7.39%
Average score for threshold 0.016: 0.00%
Average score for threshold 0.018: 0.00%
Difference-of-Gaussian:
Average score for threshold 0.004: 93.94%
Average score for threshold 0.006: 93.53%
Average score for threshold 0.008: 92.75%
Average score for threshold 0.010: 48.25%
Average score for threshold 0.012: 12.31%
Average score for threshold 0.014: 2.42%
Average score for threshold 0.016: 0.00%
Average score for threshold 0.018: 0.00%
I have two notes to make:
- First, any score above ~ 50% might have been able to be fused into a final image, though whether or not the reconstruction is correct would be a different matter.
- Second, despite the nature of the RANSAC algorithm, the results were largely deterministic -- for a given threshold and mode, each view combination seemed to end up with the same number of remaining inliers.
Given the results of this test, I have a few suggestions for problematic registrations:
- First, and above all else, no amount of software processing can make up for noisy data or a low number of beads. When recording, it might help to make stacks overlong, to get more beads before and after the sample in the recorded volume. Play around with bead concentrations -- make bead-only samples at varying concentrations and see if they look too dense or sparse. Keep in mind that it's difficult to get beads close to the sample.
- Second, choose the threshold carefully. Although the data above seem to indicate that lower is better, this is only true so far. For OpenSPIM data with settings similar to these (3 mW, 100 ms), I'd suggest starting with 0.008 (If I recall correctly, this is the default threshold for the Difference-of-Gaussians method). If you're having trouble, try experimenting with the radii as well -- 1/2 should work for subresolution beads, but if your system is slightly misaligned, 2/3 might work better. (If you can't seem to find the right setting, try recording a macro and putting it in a loop to test different values.)
- Third, if your processing computer can handle it, Difference of Gaussians might produce better results -- it's a more complex calculation and (I believe) requires more memory than the alternative, but it seems to produce more consistent results.
Sorry for the long e-mail!
Luke Stuyvenberg
More information about the OpenSPIM
mailing list