DeepParticleNet icon indicating copy to clipboard operation
DeepParticleNet copied to clipboard

A deep neural network for particle size and shape analysis.

:exclamation: ATTENTION :exclamation:

This code is no longer maintained and has been superseeded by the paddle toolbox.


Paper (Powder Technology) Paper (arXiv) License Docker Cloud Automated build

DeepParticleNet

This repository is a toolbox for the easy, deep learning-based primary particle size analysis of agglomerated, aggregated, partially sintered or simply occluded particles. It accompanies the following publication:

Image-Based Size Determination of Agglomerated and Partially Sintered Particles via Convolutional Neural Networks

The utilized convolutional neural network was inspired by the Mask R-CNN architecture, developed by He et al. and is based on an implementation of Abdulla, realized with Keras and TensorFlow, controlled by Python.

Table of Contents

  • DeepParticleNet
  • Table of Contents
  • Examples
  • Citation
  • Setup
  • Getting started

Examples

Detection

Example Detection

PSD Measurement

Example PSD Measurement

Citation

If you use this repository for a publication, then please cite it using the following bibtex-entry:

@article{Frei.2019,
    author = {Frei, Max and Kruis, Frank Einar},
    year = {2019},
    title = {Image-Based Size Analysis of Agglomerated and Partially Sintered Particles via Convolutional Neural Networks},
    url = {https://doi.org/10.1016/j.powtec.2019.10.020}
}

Setup

CPU only (Linux & Windows)

Click to expand ...
  1. Install docker.
  2. Open a command line.
  3. Clone this repository: git clone --recurse-submodules https://github.com/maxfrei750/DeepParticleNet.git
  4. Change into the folder of the repository: cd DeepParticleNet
  5. Spin up the docker container (adjust paths according to your folder structure):
docker run -i --name deepparticlenet -p 8888:8888 -p 6006:6006 -v /path/to/code:/tf -v /path/to/datasets:/tf/datasets -v /path/to/logs:/tf/logs maxfrei750/deepparticlenet:cpu

Optional: Start Tensorboard

  1. Open a command line.
  2. Start Tensorboard: docker exec -i deepparticlenet tensorboard --logdir=/tf/logs
  3. Access localhost:6006 in your browser.

GPU support (Linux)

Click to expand ...
  1. Install docker.
  2. Install nvidia-docker.
  3. Open a command line.
  4. Clone this repository: git clone --recurse-submodules https://github.com/maxfrei750/DeepParticleNet.git
  5. Change into the folder of the repository: cd DeepParticleNet
  6. Spin up the docker container (adjust paths according to your folder structure):
nvidia-docker run -i --shm-size=1g --ulimit memlock=-1 --name deepparticlenet -p 8888:8888 -p 6006:6006 -v /path/to/code:/tf -v /path/to/datasets:/tf/datasets -v /path/to/logs:/tf/logs maxfrei750/deepparticlenet:gpu

Optional: Start Tensorboard

  1. Open a command line.
  2. Start Tensorboard: docker exec -i deepparticlenet tensorboard --logdir=/tf/logs
  3. Access localhost:6006 in your browser.

GPU support (Windows)

Click to expand ...

Nvidia-docker does not support Windows. Therefore, if you are running Windows and need GPU support, then you need to setup a python environment (e.g. conda).

  1. Install conda.
  2. Open a command line.
  3. Clone this repository: git clone --recurse-submodules https://github.com/maxfrei750/DeepParticleNet.git
  4. Change into the folder of the repository: cd DeepParticleNet
  5. Create a new conda environment: conda env create --file dpn-gpu-environment.yml
  6. Activate the new conda environment: activate dpn-gpu-env
  7. Start jupyter lab: jupyter lab

Optional: Start Tensorboard

  1. Open a command line.
  2. Activate the conda environment: activate dpn-gpu-env
  3. Start Tensorboard: tensorboard --logdir=/path/to/logs
  4. Access localhost:6006 in your browser.

Getting started

  1. Copy the jupyter token from your command line.
  2. Enter the jupyter server by accessing localhost:8888/lab in your browser and pasting the jupyter token that you just copied.