TreeNet - A tree skeleton database

Andrin Jenal, ETH Zurich

https://arxiv.org/abs/1901.03991

About
The TreeNet database is a collection of artificially created tree silhouettes using Blender and the sapling add-on. It is useful for people who are interestd in learning techniques and pattern recognition on tree skeleton data. To download use the links below. The datasets vary in size, types and formats.

The Dataset

The tree samples are available in two different formats: hdf5 and zip. The default dataset for our paper is: tree_skel_all_15k_250_4v_64x64.h5. There are other formats and other datasets with higher image resolution available.

hdf5

The storage layout of a hdf5 file is a collection of 2D numpy arrays of unique file names which serve as keys. The numpy array of size (width x height) contains pixel values ranging from 0 to 255.

example code snippet: read a hdf5 file with python3+ and h5py (prerequisite: install h5py module)
import h5py
with h5py.File('filename', 'r') as f:
    for k in f.keys():
        numpy_ndarray_image = f[k].value

zip

The zip files contain png image data.

The default dataset tree_skel_all_15k_250_4v_64x64.h5 consists of 15'000 binarized 64x64 black and white images of tree silhouettes. The pixel value ranges from 0 and 255. All samples are generated in a complete random fashion. Tree characteristic parameters are changed randomly. There are 15 tree species that serve as presets created manually by a human. Each tree sample comes with a sample number and an angle signifying to the camera angle during render time. A higher sample number in the database means also a more complex tree. This means that the tree skeletons are added linearly increasing complexity. E.g. more second level branches, different trunk splits, sharply curved branches etc. Internally Blender creates a 3D model of a tree in a procedural fashion and renders it from different angles. Then it captures the tree silhouette from these specific angles from where the median axis along the branches are computed. This results in skeletons stored in the database.



How To Read The Numbers

Example name of a dataset: tree_skel_all_15k_250_4v_64x64.h5

<all> states that this dataset contains all tree species,
<15k> is the total number of samples,
<250> signifies the number of different random 3D trees created,
<4v> states the number of random views captures of the same tree while the camera moves aroun the tree,
<64x64> is the image size width x height



More About The Data Generation

Data generation is based on altering a procedurally created tree randomly. The procedural trees are modelled by human in Blender using a photograph of a real tree and serve as presets. The following tree species are used as model: Acacia, Beech, Callistemon, Cedar, Chestnut, Elm, Japanese Maple, Kauri, Larch, Linden, Pine, Quaking Aspen, Small Maple, Teak, White Birch

Sample generation scripts can be found on the github repository (https://github.com/TheRiddance/treenet_sample_generation).


Ablation Study

We perform a user study to evaluate qualitative performance of all models. In the study participants are asked to label a given image of a skeletal tree structure as fake (generated sample) or real (training data). Before the study begins subjects are shown eight samples of arbitrarily chosen real images and we inform about the origin of these specific samples. Whenever participants are ready they start labeling single images as real or fake. The samples are drawn randomly from a balanced dataset and appear in a sequential but random order. No sample is ever shown twice.

Take the user study


How to cite the paper


@techreport{treenet2019,
  title       = {{RNN-based Generative Model for Fine-Grained Sketching}},
  author      = {Jenal, Andrin and Savinov, Nikolay and Sattler, Torsten and Chaurasia, Gaurav},
  number      = {arXiv:1901.03991 [cs.CV]},
  institution = {ETH Zurich},
  year        = {2019}
}
        

HDF5 Datasets

Demo Dataset

This is a small demo dataset of 1500 samples. It gives an idea about the data.

Number samples: 1500
Image size: 64 x 64
Type: Tree skeletons
File size: 6 MB

Default Dataset

This dataset was the standard dataset used in our paper. It contains 15'000 samples and can be conveniently used for training networks on a single GPU machine.

Number samples: 15'000
Image size: 64 x 64
Type: Tree skeletons
File size: 60 MB

Large Dataset

This dataset contains 90'000 samples.

Number samples: 15'000
Image size: 64 x 64
Type: Tree skeletons
File size: 400 MB

High Resolution Dataset

This dataset contains 15'000 samples in high-resolution.

Number samples: 15'000
Image size: 256 x 256
Type: Tree skeletons
File size: 1 GB

ZIP Datasets

Demo Samples

This zip file contains 30 png images of rendered trees and their respective tree skeleton images.

Number samples: 30
Image size: 512 x 512
Type: Rendered trees and tree skeletons

Default Dataset

This dataset was the standard dataset used in our paper. It contains 15'000 samples and can be conveniently used for training networks on a single GPU machine.

Number samples: 15'000
Image size: 64 x 64
Type: Tree skeletons
File size: 30 MB

Large Dataset

This dataset contains 90'000 samples.

Number samples: 15'000
Image size: 64 x 64
Type: Tree skeletons
File size: 170 MB

High Resolution Dataset

This dataset contains 15'000 samples in high-resolution.

Number samples: 15'000
Image size: 256 x 256
Type: Tree skeletons
File size: 160 MB