Black-Box Demos
Introduction
The Black-Box Toolbox provides functions for computations involving
large linear systems. The system is used as a black-box, which means
that it is accessed only via matrix-vector products.
In large-scale computations the operator is usually structured in a
way that can be exploited in computations involving these operators.
The demos below shows how BBTools can be used to manipulate and
solve such problems of this kind.
All the demos are playscripts, i.e. if you install BBTools you
may run the examples from Matlab and compare the results with you
own configuration.
Image deblurring
Deblurring an images is a classical problem in ill-posed problems.
The following three demos shows an example where BBTools can cope with a
reasonably large image. To show off, we use a circular image, and the
blurring kernel is non-seperable. This is usually difficult to handle
for other software packages.
- Step 1
Set up an operator to describe the problem
- Step 2
Solve a problem without noise
- Step 3
Solve a problem with noise, using regularization
Tomographic reconstruction
Tomography is the science that allows e.g. medical scanners at hospitals
to look inside people for diagnosis. A CT scanner, for instance, produces
images much like x-ray. However, instead of a flat image, it produces a
number of slices and allowes the doctor to see an a virtual arbitrary
cut of the scanned area.
This toolbox was largely developed to address another kind of scanners:
PET and SPECT. These scanners are able to track a molecule which have been
made radioactive, and are used to find cancer (tracing sugar-molecules known
as FDG) and receptor-systems in the brain.
The following demos demonstrate the technique using two widely used
algorithms.
- Filtered Back-Projection
This illustrates the Filtered Back-Projection (FBP) algorithm.
This is a linear, widely used, classical algorithm.
- EM Reconstruction
The EM-Algorithm includes a noise-model, and is also widely used.
However, it is non-linear which can be a disadvantage.
This demo illustrates the way it works, and its advantages and
disadvantages.
- Simple reconstruction using BBTools
BBTools can compute regularized solutions to noisy linear systems.
This demo shows how this core functionality can be utilized in the
reconstruction. The result is, by design, intended to be similar
to Filtered Back-Projection.
- Advanced reconstruction using BBTools
This demo builds in the previous demo, and shows how more advanced
methods can be used to increase the resolution of the reconstructed
image. To give useful results, it is necessary to suppress noise
in another way (i.e. without reducing the resolution). This can be
accomplished by filtering out noise using regularization, or by
restricting the reconstruction using knowledge about anatomical
structures.
SVD Problems
These provides a short introduction to the SVD capabilities of BBTools.
They are not flashy, but demonstrate how to use BBTools and how to make a
trade-off between memory and computation. Although these are toy problems,
the techniques demonstrated in the demo may be useful if you encounter a
large-scale problem.
- Example 1
This example creates an operator with known singular values.
It then computes the SVD while timing it and determining its
amount of memory. It compares the result with with a second
computation which is restricted to a lower amount of memory.
- Example 2
This extends the first example, by reducing the memory usage
by accepting a lower accuracy. It compares several trade-offs
between resource usage and accuracy.
It demonstrates that the loss of accuracy is limited to orthogonality
of singular vectors, not singular values or the error in
low-rank approximations.