DOI: 10.5281/zenodo.8199394
title: Supplemental data for characterization of mixing in nanoparticle hetero-aggregates using convolutional neural networks

description: This is the supplemental data for the manuscript titled Characterization of mixing in nanoparticle hetero-aggregates using convolutional neural networks submitted to Nano Select.


Motivation:


Detection of nanoparticles and classification of the material type in scanning transmission electron microscopy (STEM) images can be a tedious task, if it has to be done manually. Therefore, a convolutional neural network is trained to do this task for STEM-images of TiO2-WO3 nanoparticle hetero-aggregates. The present dataset contains the training data and some jupyter-notebooks that can be used after installation of the MMDetection toolbox (https://github.com/open-mmlab/mmdetection) to train the CNN. Details are provided in the manuscript submitted to Nano Select and in the comments of the jupyter-notebooks.


Authors and funding:


The present dataset was created by the authors. The work was funded by the Deutsche Forschungsgemeinschaft within the priority program SPP2289 under contract numbers RO2057/17-1 and MA3333/25-1.


Dataset description:


Four jupyter-notebooks are provided, which can be used for different tasks, according to their names. Details can be found within the comments and markdowns. These notebooks can be run after installation of MMDetection within the mmdetection folder.



	
particle_detection_training.ipynb: This notebook can be used for network training.
	
particle_detection_evaluation.ipynb: This notebook is for evaluation of a trained network with simulated test images.
	
particle_detection_evaluation_experiment.ipynb: This notebook is for evaluation of a trained network with experimental test images.
	
particle_detection_measurement_experiment.ipynb: This notebook is for application of a trained network to experimental data.



In addition, a script titled particle_detection_functions.py is provided which contains functions required by the notebooks. Details can be found within the comments.


The zip archive training_data.zip contains the training data. The subfolder HAADF contains the images (sorted as training, validation and test images), the subfolder json contains the annotation (sorted as training, validation and test images). Each file within the json folder provides for each image the following information:



	
aggregat_no: image id, the number of the corresponding image file
	
particle_position_x: list of particle position x-coordinates in nm
	
particle_position_y: list of particle position y-coordinates in nm
	
particle_position_z: list of particle position z-coordinates in nm
	
particle_radius: list of volume equivalent particle radii in nm
	
particle_type: list of material types, 1: TiO2, 2: WO3
	
particle_shape: list of particle shapes: 0: sphere, 1: box, 2: icosahedron
	
rotation: list of particle rotations in rad. Each particle is rotated twice by the listed angle (before and after deformation)
	
deformation: list of particle deformations. After the first rotation the particle x-coordinates of the particle’s surface mesh are scaled by the factor listed in deformation, y- and z-coordinates are scaled according to 1/sqrt(deformation).
	
cluster_index: list of cluster indices for each particle
	
initial_cluster_index: list of initial cluster indices for each particle, before primary clusters of the same material were merged
	
fractal_dimension: the intended fractal dimension of the aggregate
	
fractal_dimension_true: the realized geometric fractal dimension of the aggregate (neglecting particle densities)
	
fractal_dimension_weight_true: the realized fractal dimension of the aggregate (including particle densities)
	
fractal_prefactor: fractal prefactor
	
mixing_ratio_intended: the intended mixing ratio (fraction of WO3 particles)
	
mixing_ratio_true: the realised mixing ratio (fraction of WO3 particles)
	
mixing_ratio_volume: the realised mixing ratio (fraction of WO3 volume)
	
mixing_ratio_weight: the realised mixing ratio (fraction of WO3 weight)
	
particle_1_rho: density of TiO2 used for the calculations
	
particle_1_size_mean: mean TiO2 radius
	
particle_1_size_min: smallest TiO2 radius
	
particle_1_size_max: largest TiO2 radius
	
particle_1_size_std: standard deviation of TiO2 radii
	
particle_1_clustersize: average TiO2 cluster size
	
particle_1_clustersize_init: average TiO2 cluster size of primary clusters (before merging into larger clusters)
	
particle_1_clustersize_init_intended: intended TiO2 cluster size of primary clusters
	
particle_2_rho: density of WO3 used for the calculations
	
particle_2_size_mean: mean WO3 radius
	
particle_2_size_min: smallest WO3 radius
	
particle_2_size_max: largest WO3 radius
	
particle_2_size_std: standard deviation of WO3 radii
	
particle_2_clustersize: average WO3 cluster size
	
particle_2_clustersize_init: average WO3 cluster size of primary clusters (before merging into larger clusters)
	
particle_2_clustersize_init_intended: intended WO3 cluster size of primary clusters
	
number_of_primary_particles: number of particles within the aggregate
	
gyration_radius_geometric: gyration radius of the aggregate (neglecting particle densities)
	
gyration_radius_weighted: gyration radius of the aggregate (including particle densities)
	
mean_coordination: mean total coordination number (particle contacts)
	
mean_coordination_heterogen: mean heterogeneous coordination number (contacts with particles of the different material)
	
mean_coordination_homogen: mean homogeneous coordination number (contacts with particles of the same material)
	
radius_equiv: list of area equivalent particle radii (in projection)
	
k_proj: projection direction of the aggregate: 0: z-direction (axis = 2), 1: x-direction (axis = 1), 2: y-direction (axis = 0)
	
polygons: list of polygons that surround the particle (COCO annotation)
	
bboxes: list of particle bounding boxes
	
aggregate_size: projected area of the aggregate translated into the radius of a circle in nm
	
n_pix: number of pixel per image in horizontal and vertical direction (squared images)
	
pixel_size: pixel size in nm
	
image_size: image size in nm
	
add_poisson_noise: 1 if poisson noise was added, 0 otherwise
	
frame_time: simulated frame time (required for poisson noise)
	
dwell_time: dwell time per pixel (required for poisson noise)
	
beam_current: beam current (required for poisson noise)
	
electrons_per_pixel: number of electrons per pixel
	
dose: electron dose in electrons per Å2
	
add_scan_noise: 1 if scan noise was added, 0 otherwise
	
beam misposition: parameter that describes how far the beam can be misplaced in pm (required for scan noise)
	
scan_noise: parameter that describes how far the beam can be misplaced in pixel (required for scan noise)
	
add_focus_dependence: 1 if a focus effect is included, 0 otherwise
	
data_format: data format of the images, e.g. uint8



There are 24000 training images, 5500 validation images, 5500 test images, and their corresponding annotations. Aggregates and STEM images were obtained with the algorithm explained in the main work. The important data for CNN training is extracted from the files of individual aggregates and concluded in the subfolder COCO. For training, validation and test data there is a file annotation_COCO.json that includes all information required for the CNN training.


The zip archive experiment_test_data.zip includes manually annotated experimental images. All experimental images were filtered as explained in the main work. The subfolder HAADF includes thirteen images. The subfolder json includes an annotation file for each image in COCO format. A single file concluding all annotations is stored in json/COCO/annotation_COCO.json.


The zip archive experiment_measurement.zip includes the experimental images investigated in the manuscript. It contains four subfolders corresponding to the four investigated samples. All experimental images were filtered as explained in the manuscript.


The zip archive particle_detection.zip includes the network, that was trained, evaluated and used for the investigation in the manuscript. The network weights are stored in the file particle_detection/logs/fit/20230622-222721/iter_60000.pth. These weights can be loaded with the jupyter-notebook files. Furthermore, a configuration file, which is required by the notebooks, is stored as particle_detection/logs/fit/20230622-222721/config_file.py.


There is no confidential data in this dataset. It is neither offensive, nor insulting or threatening.


The dataset was generated to discriminate between TiO2 and WO3 nanoparticles in STEM-images. It might be possible that it can discriminate between different materials if the STEM contrast is similar to the contrast of TiO2 and WO3 but there is no guarantee.