aniketkt / TomoEncoders

Feature extraction for X-ray Tomographic data

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

TomoEncoders

This code (1) trains a convolutional auto-encoder (CAE) against pairs of grayscale and binarized data (2) extracts the latent space of the CAE and projects it to 2D space. For certain configurations of the architecture it is possible to order the clusters based on porosity metrics. More details are in our upcoming paper at IEEE-ICIP 2021. See the jupyter notebooks section for results. Data will be available shortly.

The architecture is defined with synthesis and analysis blocks inspired by the 3D U-net (note the skip connections).

The encoder-decoder (segmenter or denoiser) is trained by sampling patches of data from the 3D image pairs (grayscale and binarized image) around random coordinates to generate training data. Then, the encoder part is separated, and latent vectors are projected to 2D by PCA. Once trained, patches can be sampled from a given list of coordinates in the grayscale volume to identify morphological similarities.

Installation

To install using pip do this in your python environment:

git clone https://github.com/aniketkt/TomoEncoders.git
cd TomoEncoders
pip install .

Train Encoders for Porosity

python bin/train_porosity_encoders.py

atekawade [at] anl [dot] gov

About

Feature extraction for X-ray Tomographic data

License:Other


Languages

Language:Jupyter Notebook 98.5%Language:Python 1.5%Language:Makefile 0.0%Language:Batchfile 0.0%Language:CMake 0.0%Language:C++ 0.0%Language:CSS 0.0%Language:TeX 0.0%Language:Shell 0.0%