ITMNR-8, Beijing, Sept 1-4, 2016
Technische Universität München Forschungsneutronenquelle
Heinz Maier-Leibnitz (FRMII)
1
A freeware path to
neutron computed
tomography
Burkhard Schillinger Heinz Maier-Leibnitz Zentrum
Technische Universität München, Germany
Aaron Craft Idaho National Lab,
Advanced Post-Irradiation Examination Department, USA
ITMNR-8, Beijing, Sept 1-4, 2016
Technische Universität München Forschungsneutronenquelle
Heinz Maier-Leibnitz (FRMII)
B.Schillinger 2
• Neutron computed tomography is now being introduced even at smaller and
older reactors.
• Operators are often faced with a Hen-and-Egg problem:
First, they have to show that they can do tomography before they can obtain a
budget to build a tomography system.
• Building a cheap system first, and using free software, will deliver first results to
support a grant application, and give invaluable experience to design a more
advanced system.
ITMNR-8, Beijing, Sept 1-4, 2016
Technische Universität München Forschungsneutronenquelle
Heinz Maier-Leibnitz (FRMII)
B.Schillinger 3
This talk presents
• a freeware path for
image processing through reconstruction to 3D images
• a cheap tomography controller and camera system to obtain first results
than can be used for a grant application.
ITMNR-8, Beijing, Sept 1-4, 2016
Technische Universität München Forschungsneutronenquelle
Heinz Maier-Leibnitz (FRMII)
B.Schillinger 4
The tomography data processing steps are
• Preprocessing of images:
Removal of gamma spots, subtraction of dark current,
normalizing to open beam
• Reconstruction:
Sorting projection data into sinograms, tomographic reconstruction
of image layers
• 3D Imaging:
Rendering 3D views of the stack of reconstructed layers
ITMNR-8, Beijing, Sept 1-4, 2016
Technische Universität München Forschungsneutronenquelle
Heinz Maier-Leibnitz (FRMII)
B.Schillinger 5
Professional software for tomographic reconstruction requires a stiff investment.
Octopus by InsideMatters for tomographic reconstruction
https://octopusimaging.eu/
and
VGStudio by VolumeGraphics for 3D rendering
http://www.volumegraphics.com/
have been established as a quasi-standard for high-end computed tomography;
Octopus has even started its development from neutron computed tomography, so it takes into account
several specific requirements for neutron measurements.
ITMNR-8, Beijing, Sept 1-4, 2016
Technische Universität München Forschungsneutronenquelle
Heinz Maier-Leibnitz (FRMII)
B.Schillinger 6
Professional software for tomographic reconstruction requires a stiff investment.
Octopus by InsideMatters for tomographic reconstruction
https://octopusimaging.eu/
and
VGStudio by VolumeGraphics for 3D rendering
http://www.volumegraphics.com/
have been established as a quasi-standard for high-end computed tomography;
Octopus has even started its development from neutron computed tomography, so it takes into account
several specific requirements for neutron measurements.
Several packages are available on the web for free;
however, these have been developed for X-rays or synchrotron radiation and are not immediately useable
for neutron computed tomography.
Three reconstruction packages and three 3D-viewers have been identified and used even for Gigabyte
datasets.
We present the necessary additional preprocessing in ImageJ, some workarounds for bugs in the
software, and undocumented or badly documented parameters that need to be adapted for neutron
computed tomography.
ITMNR-8, Beijing, Sept 1-4, 2016
Technische Universität München Forschungsneutronenquelle
Heinz Maier-Leibnitz (FRMII)
B.Schillinger 7
General Image processing:
ImageJ from https://imagej.nih.gov/ij/
• Most important: X-ray packages expect a fully illuminated detector, black edges caused
by beam limiters are not permitted. These have to be cut off using ImageJ.
Load images together with open beam and dark frames to cut the same size.
• Run the despeckle noise filter to remove small gamma spots
• Save stack according to naming conventions of the reconstruction software, e.g. starting
at 0000 or at 0001, with specifix prefixes.
ITMNR-8, Beijing, Sept 1-4, 2016
Technische Universität München Forschungsneutronenquelle
Heinz Maier-Leibnitz (FRMII)
B.Schillinger 8
CT reconstruction with H-PITRE:
https://webint.ts.infn.it/en/research/exp/beats2/h-pitre-beta-version.html
H-Pitre is a reconstruction package developed by the Sychrotron ELETTRA in Trieste, Italy.
It runs on a NVIDIA Graphics card.
• H-PITRE was developed for attenuation and phase contrast measurements at synchrotrons, implying
low-contrast samples and parallel beam geometry.
For monochromatic parallel beams, 180 degree rotation is sufficient, but for polychromatic radiation
and large-contrast samples, a 360 degree scan would be helpful to reduce beam hardening artefacts,
however, this is not implemented in H-PITRE.
H-PITRE can read 8 and 16 bit integer and 32 bit float data in TIFF, PNG and BMP.
It requires a fixed naming and four digits numbering convention starting at 0001 with the names
tomo_0001, flat_0001, dark_0001.
ITMNR-8, Beijing, Sept 1-4, 2016
Technische Universität München Forschungsneutronenquelle
Heinz Maier-Leibnitz (FRMII)
B.Schillinger 9
screenshot of H-PITRE:
ITMNR-8, Beijing, Sept 1-4, 2016
Technische Universität München Forschungsneutronenquelle
Heinz Maier-Leibnitz (FRMII)
B.Schillinger 10
H-PITRE will do a dark frame and flat field correction, but the center of rotation must be found manually if it deviates from
the image center.
After converting all projections to sinograms, single slices can be reconstructed.
Small semicircles at edges are a sign for incorrect center of rotation; the correct value has to be found manually by trial and
error.
If the rotation axis is tilted, test slices must be reconstructed at top and bottom of the data set, and with the option ‘dynamic
rotation center’ set, the resulting values must be filled into the appropriate fields for ‘RoCenter’. For this, the reconstruction
range SinoSN(B-E) must be set to the same value for Begin and End to produce a single slice. The reconstructed stack is
saved as 16-bit TIFF.
H-PITRE runs very fast due to its use of the graphics board and produces accurate results on not-too-strong absorbing
samples, but has difficulties with beam hardening since only 180 degrees may be used as rotation range.
H-PITRE runs very fast due to its use of
the graphics board and produces accurate
results on not-too-strong absorbing
samples, but has difficulties with beam
hardening since only 180 degrees may be
used as rotation range.
ITMNR-8, Beijing, Sept 1-4, 2016
Technische Universität München Forschungsneutronenquelle
Heinz Maier-Leibnitz (FRMII)
B.Schillinger 11
CT reconstruction with N-RECON:
http://bruker-microct.com/products/downloads.htm
Bruker MicroCT sells distributed network licenses of NRECON, but provides a single-workstation license
for free, which comes as a server plus a single-client license.
With today’s PCs, this software is so fast that no network is required.
NRecon was designed to read the data from Bruker MicroCT scanning systems, but can also load 16 bit
TIFF images.
NRecon was developed for cone beam geometry, but assumes parallel beam geometry for any source-to-
detector distance greater than ten meters.
NRECON does not do dark image and flat field correction; this has to be done in ImageJ before
(subtract dark image from projections and open beam, divide projections by corrected open beam).
The resulting 32-bit float values must be scaled to 16-bit integer range and converted to 16-bit integer
type.
ITMNR-8, Beijing, Sept 1-4, 2016
Technische Universität München Forschungsneutronenquelle
Heinz Maier-Leibnitz (FRMII)
B.Schillinger 12
CT reconstruction with N-RECON:
On reading values produced by ImageJ, NRecon gives an error message declaring an invalid TIFF file.
ImageJ introduces a proprietory TIFF tag 50839 (0xc697) for its stack operations;
TIFF programming conventions state that unknown TIFF tags should simply be ignored,
but since NRecon was only produced for Bruker scanners, it ignores that rule and returns an error.
ImageJ provides no way to remove that tag; the simplest way is to read and write the TIFF files with the
very fast freeware ‘Advanced Batch Image Converter’, ABIC, from
https://sourceforge.net/projects/abic/?source=typ_redirect
which simply reads the TIFF files and writes them back with a new header without the proprietory tag.
ABIC requires the ending ‘tiff’, so all files must be renamed to ‘.tiff’ first, and after conversion back to ‘.tif’,
simply by command line ‘ren *.tif *.tiff’.
The very fast processing makes up for the inconvenience.
ITMNR-8, Beijing, Sept 1-4, 2016
Technische Universität München Forschungsneutronenquelle
Heinz Maier-Leibnitz (FRMII)
B.Schillinger 13
screenshot of N-RECON and its server:
ITMNR-8, Beijing, Sept 1-4, 2016
Technische Universität München Forschungsneutronenquelle
Heinz Maier-Leibnitz (FRMII)
B.Schillinger 14
screenshot of N-RECON and its server:
Nrecon requires a four-digit naming and numbering convention starting at zero like ‘name_0000.tif’, as well as a log file with
the same name without a number, called ‘name_.log’ that contains all parameters, including the option 180 or 360 degrees.
In the reconstruction window, the parameter ‘scales’ must be turned off, or scales will be written at the edges of the
reconstructed slices that prevent 3D rendering later on.
Output format must be set to ‘TIF(16)’, and in ‘Settings’, ’Misalignment compensation’ should be turned on to correct for a
tilted rotation axis.
In ‘Start’, this parameter can be tried out in ‘Fine tuning’.
There is also an option for beam hardening correction that only consists of a slider, which can only be used by trial and
error, since the algorithm may not be fit for neutrons, as the interaction process is very different.
NRecon is more tedious to use because of the
required preprocessing and image tag removing,
but gives more options than H-PITRE and allows
for a 360 degree scan, which helps to reduce
beam hardening artefacts for strongly absorbing
samples.
ITMNR-8, Beijing, Sept 1-4, 2016
Technische Universität München Forschungsneutronenquelle
Heinz Maier-Leibnitz (FRMII)
B.Schillinger 15
This information is provided by Author Anders Kaestner, because his brand new version
could not be tested yet:
CT reconstruction with MuhRec:
http://www.imagingscience.ch/muhrechome/index.html
• Was developed with three main goals
1) meeting the needs of neutron imaging reconstruction tasks supporting typical file formats,
artefact reduction
2) flexibility to add new processing features
3) To provide GUI to support the configuration
• Currently, only parallel beam is supported. Cone beam is under development.
• MuhRec can do the whole reconstruction chain from projection to reconstructed slices.
• Can be run in GUI mode or from the command line/scripting
• MuhRec is free of charge (no license needed anymore), 64-bit binaries can be downloaded for Windows,
MacOS, and Ubuntu.
• The open source release is under preparation.
ITMNR-8, Beijing, Sept 1-4, 2016
Technische Universität München Forschungsneutronenquelle
Heinz Maier-Leibnitz (FRMII)
B.Schillinger 16
Details, ordered as they came to my mind (Add it if you like):
• Handles arbitrary scan angles <180 (with missing wedge errors), 180-360 with correct weighting
• Golden ratio angle sequence as hard coded option
• Meta data can be added to reconstructed slices
• Input file formats: fits, tiff (nexus will come)
• Output: tiff (8-, 16-bits, floating point)
• Copes with moderate truncation
• “Correct” attenuation coefficients – air is = 0 out side the sample, forward projection original projection
• Removes retake projection using a list (maybe more relevant for spallation sources)
• Performs dose correction
• Preprocessing modules
- Filtering
- Polynomial correction (beam hardening)
- Spot cleaning (different approaches, including an untested version of your gamma clean)
- Ring cleaning (different approaches)
• Processing order can be rearranged
• Multithreaded processing with high CPU utilization.
• GUI using Qt5
• Viewers to observe projections and reconstructed slices, the later in different orthogonal planes.
ITMNR-8, Beijing, Sept 1-4, 2016
Technische Universität München Forschungsneutronenquelle
Heinz Maier-Leibnitz (FRMII)
B.Schillinger 17
Data configuration
Finalizing reconstructed data
ITMNR-8, Beijing, Sept 1-4, 2016
Technische Universität München Forschungsneutronenquelle
Heinz Maier-Leibnitz (FRMII)
B.Schillinger 18
Spot cleaning Ring cleaning
Projection processing modules can be loaded dynamically, GUI helps to tune.
ITMNR-8, Beijing, Sept 1-4, 2016
Technische Universität München Forschungsneutronenquelle
Heinz Maier-Leibnitz (FRMII)
B.Schillinger 19
Viewing of 3D Data Slices with Bruker DataViewer:
http://bruker-microct.com/products/downloads.htm
Bruker DataViewer has the same TIFF problem as NRecon and requires removing of the tag in the
header;
alternatively, it can also read 16 bit PNG images, which ImageJ can also write – but ImageJ’s PNG routine
is much slower than the tag removal for TIFF files.
DataViewer can slice the reconstructed volume in three directions, and also display three slices together
in one 3D image.
ITMNR-8, Beijing, Sept 1-4, 2016
Technische Universität München Forschungsneutronenquelle
Heinz Maier-Leibnitz (FRMII)
B.Schillinger 20
screenshot of DataViewer: Single slicing in three direction windows
ITMNR-8, Beijing, Sept 1-4, 2016
Technische Universität München Forschungsneutronenquelle
Heinz Maier-Leibnitz (FRMII)
B.Schillinger 21
screenshot of DataViewer: Three combined slices in one 3D view
ITMNR-8, Beijing, Sept 1-4, 2016
Technische Universität München Forschungsneutronenquelle
Heinz Maier-Leibnitz (FRMII)
B.Schillinger 22
3D Rendering with Bruker CTVox:
http://bruker-microct.com/products/downloads.htm
Also Bruker CTVox has the same TIFF problem as NRecon and requires removing of the tag in the
header, or loading PNG files.
CTVox is very fast and allows manipulation of opacity and brightness.
ITMNR-8, Beijing, Sept 1-4, 2016
Technische Universität München Forschungsneutronenquelle
Heinz Maier-Leibnitz (FRMII)
B.Schillinger 23
screenshot of CTVox:
ITMNR-8, Beijing, Sept 1-4, 2016
Technische Universität München Forschungsneutronenquelle
Heinz Maier-Leibnitz (FRMII)
B.Schillinger 24
3D Rendering with Slicer:
http://www.slicer.org
Slicer has started its development in the time of ‘486 computers (then called Dicer) as a commercial
product and one of the first powerful 3D programs that could handle data sets larger than the main
memory.
It was taken over as a freeware research aid by the medical community,
with many extensions for treating medical data sets.
Slicer is very powerful, but very obviously a system used and always changed by professionals.
There is a Wiki documentation, but no manual with the beginner in mind –
usage is not always intuitive, and icons not obvious.
Therefore, some hard-to-find settings need to be mentioned here to get the beginner started.
ITMNR-8, Beijing, Sept 1-4, 2016
Technische Universität München Forschungsneutronenquelle
Heinz Maier-Leibnitz (FRMII)
B.Schillinger 25
screenshot of Slicer:
ITMNR-8, Beijing, Sept 1-4, 2016
Technische Universität München Forschungsneutronenquelle
Heinz Maier-Leibnitz (FRMII)
B.Schillinger 26
3D Rendering with Slicer:
First, ‘Show text under icons in toolbar buttons’ should be activated in Edit/Application
settings/Appearance, which helps a lot to understand the somewhat cryptic icons.
If a stack of images is loaded with the standard command ‘load data’, the result will be all images overlaid
in the same position in 3D instead of a 3D volume, since Slicer seems to expect position information in
the TIFF headers.
To avoid this, ‘Show Options’ must be activated in ‘load data’.
Then, either a multiple layer TIFF file (as can be produced in ImageJ) can be loaded via ‘Choose File(s) to
add’ and ‘ignore orientation’ activated, or a stack of files can be loaded by selecting the first file in a set of
TIFFs via ‘Choose File(s) to add’ AND disabled ‘single file’ – this will cause the whole stack to be loaded
– AND ‘ignore orientation’ activated.
The stack of files will be loaded as a 3D volume, and slices in three directions will be displayed in three
separate windows. Size, rotation and thresholds can be varied with the three mouse buttons.
To start the actual 3D rendering, the module ‘Volume rendering’ must be loaded from ‘Modules’. There is a
tiny Eye symbol left of the active volume name that starts rendering. Fig. 6 shows a screenshot of Slicer
with a data set loaded and rendered.
Slicer is immensely powerful and offers a load of options and extension modules on the net, but has a
steep learning curve, and is not always overly intuitive to use.
ITMNR-8, Beijing, Sept 1-4, 2016
Technische Universität München Forschungsneutronenquelle
Heinz Maier-Leibnitz (FRMII)
B.Schillinger 27
Complete data processing with MuhRec:
http://imagingscience.ch/muhrechome/index.html
MuhRec is free of charge, but requires a machine-specific license issued by the author Anders Kaestner
on request, so it cannot be copied freely.
MuhRec can do the whole reconstruction chain from projection to reconstructed slices.
At the time of writing, a new version was coming out.
ITMNR-8, Beijing, Sept 1-4, 2016
Technische Universität München Forschungsneutronenquelle
Heinz Maier-Leibnitz (FRMII)
B.Schillinger 28
screenshot of MuhRec:
ITMNR-8, Beijing, Sept 1-4, 2016
Technische Universität München Forschungsneutronenquelle
Heinz Maier-Leibnitz (FRMII)
B.Schillinger 29
A budget tomography controller and camera system
A typical neutron imaging detector uses a neutron scintillation screen, a mirror and a cooled
CCD camera.
For computed tomography, a rotation table for the sample is required, and images must be
recorded of multiple angular positions of the sample.
Cheap, but good quality cameras (< € 500 to € 1200 ) are available at
https://astronomy-imaging-camera.com/
and whole simple systems at
http://www.neutronoptics.com/cameras.html
but…
ITMNR-8, Beijing, Sept 1-4, 2016
Technische Universität München Forschungsneutronenquelle
Heinz Maier-Leibnitz (FRMII)
B.Schillinger 30
…but all these budget cameras do not have a hardware interface (trigger input) to
synchronize the rotation table and the camera.
Some offer a programming kit, but this is a very tedious path.
So you must either control your motor and camera by hand, triggering each for hundreds of
images alternately,
Image:comfo.ca
ITMNR-8, Beijing, Sept 1-4, 2016
Technische Universität München Forschungsneutronenquelle
Heinz Maier-Leibnitz (FRMII)
B.Schillinger 31
…or you can ask your cat to do it for you…
Image: Dozens of
web pages, no
clear origin
ITMNR-8, Beijing, Sept 1-4, 2016
Technische Universität München Forschungsneutronenquelle
Heinz Maier-Leibnitz (FRMII)
B.Schillinger 32
…or you can ask a Raspberry Pi with a Gertbot motor controller to do it for you!
ITMNR-8, Beijing, Sept 1-4, 2016
Technische Universität München Forschungsneutronenquelle
Heinz Maier-Leibnitz (FRMII)
B.Schillinger 33
To let the Raspberry Pi click your mouse for the camera program, simply solder two wires to
the left mouse button, and connect these to the Raspberry Pi.
Place the mouse pointer on the trigger button of your camera software on your windows PC,
and the Raspberry Pi will control your rotation table, then start an image after each rotation.
ITMNR-8, Beijing, Sept 1-4, 2016
Technische Universität München Forschungsneutronenquelle
Heinz Maier-Leibnitz (FRMII)
B.Schillinger 34
All components needed for the Raspberry Pi tomography controller
ITMNR-8, Beijing, Sept 1-4, 2016
Technische Universität München Forschungsneutronenquelle
Heinz Maier-Leibnitz (FRMII)
B.Schillinger 35
The motor was built into a rudimentary rotation table with a 1:5 reduction, giving 1000 steps
per rotation instead of only 500.
ITMNR-8, Beijing, Sept 1-4, 2016
Technische Universität München Forschungsneutronenquelle
Heinz Maier-Leibnitz (FRMII)
B.Schillinger 36
Then, an old desktop radiation monitor from the trash bin was converted into a cheap camera box.
ITMNR-8, Beijing, Sept 1-4, 2016
Technische Universität München Forschungsneutronenquelle
Heinz Maier-Leibnitz (FRMII)
B.Schillinger 37
Holes were cut, two pocket mirrors were simply glued onto an Aluminium wedge.
ITMNR-8, Beijing, Sept 1-4, 2016
Technische Universität München Forschungsneutronenquelle
Heinz Maier-Leibnitz (FRMII)
B.Schillinger 38
An optical test pattern was installed.
Later, a piece of ZnS(AU,Cu) +LiF scintillation screen was quickly taped onto a paper, and
installed for a quick neutron test.
ITMNR-8, Beijing, Sept 1-4, 2016
Technische Universität München Forschungsneutronenquelle
Heinz Maier-Leibnitz (FRMII)
B.Schillinger 39
The first test with visible light was promising. The gap between the mirrors is visible.
ITMNR-8, Beijing, Sept 1-4, 2016
Technische Universität München Forschungsneutronenquelle
Heinz Maier-Leibnitz (FRMII)
B.Schillinger 40
The first neutron image was quickly taken between other beam times, just before the conference.
ITMNR-8, Beijing, Sept 1-4, 2016
Technische Universität München Forschungsneutronenquelle
Heinz Maier-Leibnitz (FRMII)
B.Schillinger 41
The first neutron image was quickly taken between other beam times, just before the conference.
The picture is not normalized, white spots are cause by gammas hitting the CCD directly.
ITMNR-8, Beijing, Sept 1-4, 2016
Technische Universität München Forschungsneutronenquelle
Heinz Maier-Leibnitz (FRMII)
B.Schillinger 42
The simple setup has a lot of faults as:
• Adjustment of camera and mirror
• Two mirrors instead of one – the gap is clearly visible
• Light reflections on tape etc. inside the box
• Crude mechanical work
• Bad fixation of the scintillation screen
• Mirror holder in the beam
So you can do much better than that!
Go ahead, and build your own!
ITMNR-8, Beijing, Sept 1-4, 2016
Technische Universität München Forschungsneutronenquelle
Heinz Maier-Leibnitz (FRMII)
B.Schillinger 43
ALL web links for hardware (Raspberry Pi, Gertbot, ZWO camera)
and software (H-PITRE, N-Recon, DatViewer, CTVox, Slicer)
PLUS text files with detailed instructions
as well as the software for the Raspberry controller
will be available for download on
www.isnr.de/index.php/tools
Good luck !